/* Rouge syntax highlighting - Monokai theme with dark mode support */

.highlight table td { padding: 5px; }
.highlight table pre { margin: 0; }

/* Comments */
.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf {
  color: #75715e;
  font-style: italic;
}
.highlight .cm {
  color: #75715e;
  font-style: italic;
}
.highlight .c1 {
  color: #75715e;
  font-style: italic;
}
.highlight .cp {
  color: #75715e;
  font-weight: bold;
}
.highlight .cs {
  color: #75715e;
  font-weight: bold;
  font-style: italic;
}

/* Errors */
.highlight .err {
  color: #f8f8f2;
  background-color: transparent;
}

/* Git diff */
.highlight .gi {
  color: #a6e22e;
  background-color: rgba(166, 226, 46, 0.1);
}
.highlight .gd {
  color: #f92672;
  background-color: rgba(249, 38, 114, 0.1);
}
.highlight .ge {
  font-style: italic;
}
.highlight .ges {
  font-weight: bold;
  font-style: italic;
}
.highlight .gr {
  color: #f92672;
}
.highlight .gt {
  color: #f92672;
}
.highlight .gh {
  color: #a1a1aa;
}
.highlight .go {
  color: #71717a;
}
.highlight .gp {
  color: #71717a;
}
.highlight .gs {
  font-weight: bold;
}
.highlight .gu {
  color: #a1a1aa;
}

/* Keywords */
.highlight .k, .highlight .kv {
  color: #66d9ef;
  font-weight: bold;
}
.highlight .kc {
  color: #66d9ef;
  font-weight: bold;
}
.highlight .kd {
  color: #66d9ef;
  font-weight: bold;
}
.highlight .kp {
  color: #66d9ef;
  font-weight: bold;
}
.highlight .kr {
  color: #66d9ef;
  font-weight: bold;
}
.highlight .kt {
  color: #66d9ef;
  font-weight: bold;
}
.highlight .kn {
  color: #f92672;
  font-weight: bold;
}

/* Operators */
.highlight .ow {
  color: #f92672;
  font-weight: bold;
}
.highlight .o {
  color: #f92672;
}

/* Numbers */
.highlight .mf {
  color: #ae81ff;
}
.highlight .mh {
  color: #ae81ff;
}
.highlight .il {
  color: #ae81ff;
}
.highlight .mi {
  color: #ae81ff;
}
.highlight .mo {
  color: #ae81ff;
}
.highlight .m, .highlight .mb, .highlight .mx {
  color: #ae81ff;
}

/* Strings */
.highlight .se {
  color: #ae81ff;
}
.highlight .sa {
  color: #66d9ef;
  font-weight: bold;
}
.highlight .sb {
  color: #e6db74;
}
.highlight .sc {
  color: #e6db74;
}
.highlight .sd {
  color: #e6db74;
}
.highlight .s2 {
  color: #e6db74;
}
.highlight .sh {
  color: #e6db74;
}
.highlight .si {
  color: #e6db74;
}
.highlight .sx {
  color: #e6db74;
}
.highlight .sr {
  color: #e6db74;
}
.highlight .s1 {
  color: #e6db74;
}
.highlight .ss {
  color: #e6db74;
}
.highlight .s, .highlight .dl {
  color: #e6db74;
}

/* Names */
.highlight .na {
  color: #a6e22e;
}
.highlight .nc {
  color: #a6e22e;
  font-weight: bold;
}
.highlight .nd {
  color: #a6e22e;
  font-weight: bold;
}
.highlight .ne {
  color: #a6e22e;
  font-weight: bold;
}
.highlight .nf, .highlight .fm {
  color: #a6e22e;
  font-weight: bold;
}
.highlight .no {
  color: #66d9ef;
}
.highlight .bp {
  color: #f8f8f2;
}
.highlight .nb {
  color: #f8f8f2;
}
.highlight .ni {
  color: #f8f8f2;
}
.highlight .nn {
  color: #f8f8f2;
}
.highlight .vc {
  color: #f8f8f2;
}
.highlight .vg {
  color: #f8f8f2;
}
.highlight .vi {
  color: #f8f8f2;
}
.highlight .nv, .highlight .vm {
  color: #f8f8f2;
}
.highlight .w {
  color: #f8f8f2;
}
.highlight .nl {
  color: #f8f8f2;
  font-weight: bold;
}
.highlight .nt {
  color: #f92672;
}

/* Main highlight container */
.highlight {
  color: #f8f8f2;
  background-color: #18181b;
  border-radius: 0.5rem;
  padding: 1rem;
  overflow-x: auto;
  margin: 1.5rem 0;
  border: 1px solid #27272a;
}

.highlight pre {
  margin: 0;
  background: transparent;
  padding: 0;
}

.highlight code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.875rem;
  line-height: 1.7;
}

/* Override prose code styles inside highlight blocks */
.prose .highlight {
  background-color: #18181b;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.prose .highlight code {
  background: transparent;
  padding: 0;
  color: inherit;
  font-size: 0.875rem;
  font-weight: 400;
}

.prose .highlight code::before,
.prose .highlight code::after {
  content: none;
}

/* Dark mode - same styles apply since we're using dark theme by default */
.dark .highlight {
  background-color: #18181b;
  border-color: #27272a;
}

/* Code block with copy button */
.highlight-wrapper {
  position: relative;
}

.highlight-wrapper .copy-button {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.375rem 0.625rem;
  font-size: 0.75rem;
  color: #a1a1aa;
  background-color: #27272a;
  border: 1px solid #3f3f46;
  border-radius: 0.375rem;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.15s, background-color 0.15s;
}

.highlight-wrapper:hover .copy-button {
  opacity: 1;
}

.highlight-wrapper .copy-button:hover {
  background-color: #3f3f46;
  color: #fafafa;
}

.highlight-wrapper .copy-button.copied {
  color: #34d399;
}

/* JSON-specific styling */
.highlight .p {
  color: #f8f8f2;
}

/* Shell/Bash prompts */
.highlight .nv {
  color: #f8f8f2;
}

/* URL styling */
.highlight .s1 a,
.highlight .s2 a {
  color: inherit;
  text-decoration: underline;
}

/* Inline code in prose (not in highlight blocks) */
.prose :not(.highlight) > code {
  background-color: #f4f4f5;
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  font-size: 0.875em;
  font-weight: 500;
  color: #18181b;
}

.dark .prose :not(.highlight) > code {
  background-color: #27272a;
  color: #fafafa;
}

.prose :not(.highlight) > code::before,
.prose :not(.highlight) > code::after {
  content: none;
}

/* Line numbers (if enabled) */
.highlight .lineno {
  color: #52525b;
  padding-right: 1rem;
  user-select: none;
}

/* Language label for code blocks */
.code-language {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.25rem 0.5rem;
  font-size: 0.625rem;
  font-weight: 500;
  text-transform: uppercase;
  color: #71717a;
  background-color: #27272a;
  border-radius: 0 0.5rem 0 0.375rem;
}
