/* Dark Mode Syntax Highlighting */
/* VS Code Dark+ inspired color scheme for better readability */

:root[data-theme="dark"] .highlight,
:root[data-theme="dark"] .highlight pre,
:root[data-theme="dark"] .code-block-wrapper pre {
  background-color: #1e1e1e !important;
  color: #d4d4d4;
}

/* Comments - gray/green */
:root[data-theme="dark"] .highlight .c,
:root[data-theme="dark"] .highlight .cm,
:root[data-theme="dark"] .highlight .cp,
:root[data-theme="dark"] .highlight .c1,
:root[data-theme="dark"] .highlight .cs {
  color: #6a9955;
  font-style: italic;
}

/* Keywords - purple/magenta */
:root[data-theme="dark"] .highlight .k,
:root[data-theme="dark"] .highlight .kc,
:root[data-theme="dark"] .highlight .kd,
:root[data-theme="dark"] .highlight .kp,
:root[data-theme="dark"] .highlight .kr,
:root[data-theme="dark"] .highlight .ow {
  color: #c586c0;
  font-weight: normal;
}

/* Keyword types - teal */
:root[data-theme="dark"] .highlight .kt {
  color: #4ec9b0;
  font-weight: normal;
}

/* Strings - orange/red */
:root[data-theme="dark"] .highlight .s,
:root[data-theme="dark"] .highlight .sb,
:root[data-theme="dark"] .highlight .sc,
:root[data-theme="dark"] .highlight .sd,
:root[data-theme="dark"] .highlight .s2,
:root[data-theme="dark"] .highlight .se,
:root[data-theme="dark"] .highlight .sh,
:root[data-theme="dark"] .highlight .si,
:root[data-theme="dark"] .highlight .sx,
:root[data-theme="dark"] .highlight .sr,
:root[data-theme="dark"] .highlight .s1,
:root[data-theme="dark"] .highlight .ss {
  color: #ce9178;
}

/* Numbers - light green */
:root[data-theme="dark"] .highlight .m,
:root[data-theme="dark"] .highlight .mf,
:root[data-theme="dark"] .highlight .mh,
:root[data-theme="dark"] .highlight .mi,
:root[data-theme="dark"] .highlight .mo {
  color: #b5cea8;
}

/* Functions - yellow */
:root[data-theme="dark"] .highlight .nf,
:root[data-theme="dark"] .highlight .fm {
  color: #dcdcaa;
}

/* Classes - teal */
:root[data-theme="dark"] .highlight .nc,
:root[data-theme="dark"] .highlight .nn {
  color: #4ec9b0;
}

/* Variables - light blue */
:root[data-theme="dark"] .highlight .nv,
:root[data-theme="dark"] .highlight .vi,
:root[data-theme="dark"] .highlight .vg {
  color: #9cdcfe;
}

/* Attributes - light blue */
:root[data-theme="dark"] .highlight .na {
  color: #9cdcfe;
}

/* Built-ins - teal */
:root[data-theme="dark"] .highlight .nb,
:root[data-theme="dark"] .highlight .bp {
  color: #4ec9b0;
}

/* Constants - light blue */
:root[data-theme="dark"] .highlight .no {
  color: #9cdcfe;
}

/* Entities - yellow */
:root[data-theme="dark"] .highlight .ni {
  color: #dcdcaa;
}

/* Exceptions - yellow */
:root[data-theme="dark"] .highlight .ne {
  color: #dcdcaa;
}

/* Tags (HTML/XML) - blue */
:root[data-theme="dark"] .highlight .nt {
  color: #569cd6;
}

/* Operators - light gray */
:root[data-theme="dark"] .highlight .o {
  color: #d4d4d4;
  font-weight: normal;
}

/* Punctuation - light gray */
:root[data-theme="dark"] .highlight .p {
  color: #d4d4d4;
}

/* Generic - light gray */
:root[data-theme="dark"] .highlight .w {
  color: #d4d4d4;
}

/* Errors - red background */
:root[data-theme="dark"] .highlight .err {
  color: #f48771;
  background-color: transparent;
}

/* Generic additions - green background */
:root[data-theme="dark"] .highlight .gi,
:root[data-theme="dark"] .highlight .gi .x {
  color: #b5cea8;
  background-color: rgba(57, 185, 144, 0.2);
}

/* Generic deletions - red background */
:root[data-theme="dark"] .highlight .gd,
:root[data-theme="dark"] .highlight .gd .x {
  color: #f48771;
  background-color: rgba(244, 135, 113, 0.2);
}

/* Generic emphasis */
:root[data-theme="dark"] .highlight .ge {
  font-style: italic;
}

/* Generic strong */
:root[data-theme="dark"] .highlight .gs {
  font-weight: bold;
}

/* Generic heading - blue */
:root[data-theme="dark"] .highlight .gh,
:root[data-theme="dark"] .highlight .gu {
  color: #569cd6;
}

/* Generic output - gray */
:root[data-theme="dark"] .highlight .go {
  color: #808080;
}

/* Generic prompt - gray */
:root[data-theme="dark"] .highlight .gp {
  color: #808080;
}

/* Generic error/traceback - red */
:root[data-theme="dark"] .highlight .gr,
:root[data-theme="dark"] .highlight .gt {
  color: #f48771;
}

/* Decorators - yellow */
:root[data-theme="dark"] .highlight .nd {
  color: #dcdcaa;
}

/* Labels - light blue */
:root[data-theme="dark"] .highlight .nl {
  color: #9cdcfe;
}

/* Property - light blue */
:root[data-theme="dark"] .highlight .py {
  color: #9cdcfe;
}

/* Name other - light gray */
:root[data-theme="dark"] .highlight .nx {
  color: #d4d4d4;
}

/* Heredoc delimiter - orange */
:root[data-theme="dark"] .highlight .dl {
  color: #ce9178;
}

/* Interpolation - orange */
:root[data-theme="dark"] .highlight .il {
  color: #b5cea8;
}

/* Line numbers in dark mode */
:root[data-theme="dark"] .highlight .lineno,
:root[data-theme="dark"] .highlight .gl {
  color: #858585;
  background-color: #1e1e1e;
  border-right-color: #404040;
}

/* Rouge table line numbers */
:root[data-theme="dark"] .rouge-table {
  border-color: #404040;
}

:root[data-theme="dark"] .rouge-table .rouge-gutter {
  background-color: #252526;
  border-right: 1px solid #404040;
}

:root[data-theme="dark"] .rouge-table .rouge-code {
  background-color: #1e1e1e;
}

:root[data-theme="dark"] .rouge-gutter .lineno {
  color: #858585;
  padding: 0 0.5em;
  text-align: right;
}

/* Ensure text remains visible */
:root[data-theme="dark"] .code-block-wrapper pre code,
:root[data-theme="dark"] .highlight pre code {
  color: #d4d4d4;
}

/* Media query support for auto dark mode */
:root:not([data-theme]) {
  @media (prefers-color-scheme: dark) {
    .highlight,
    .highlight pre,
    .code-block-wrapper pre {
      background-color: #1e1e1e !important;
      color: #d4d4d4;
    }

    .highlight .c,
    .highlight .cm,
    .highlight .cp,
    .highlight .c1,
    .highlight .cs {
      color: #6a9955;
      font-style: italic;
    }

    .highlight .k,
    .highlight .kc,
    .highlight .kd,
    .highlight .kp,
    .highlight .kr,
    .highlight .ow {
      color: #c586c0;
      font-weight: normal;
    }

    .highlight .kt {
      color: #4ec9b0;
      font-weight: normal;
    }

    .highlight .s,
    .highlight .sb,
    .highlight .sc,
    .highlight .sd,
    .highlight .s2,
    .highlight .se,
    .highlight .sh,
    .highlight .si,
    .highlight .sx,
    .highlight .sr,
    .highlight .s1,
    .highlight .ss {
      color: #ce9178;
    }

    .highlight .m,
    .highlight .mf,
    .highlight .mh,
    .highlight .mi,
    .highlight .mo {
      color: #b5cea8;
    }

    .highlight .nf,
    .highlight .fm {
      color: #dcdcaa;
    }

    .highlight .nc,
    .highlight .nn {
      color: #4ec9b0;
    }

    .highlight .nv,
    .highlight .vi,
    .highlight .vg,
    .highlight .na {
      color: #9cdcfe;
    }

    .highlight .nb,
    .highlight .bp {
      color: #4ec9b0;
    }

    .highlight .no {
      color: #9cdcfe;
    }

    .highlight .nt {
      color: #569cd6;
    }

    .highlight .o,
    .highlight .p,
    .highlight .w {
      color: #d4d4d4;
      font-weight: normal;
    }

    .highlight .err {
      color: #f48771;
      background-color: transparent;
    }

    .highlight .lineno,
    .highlight .gl {
      color: #858585;
      background-color: #1e1e1e;
      border-right-color: #404040;
    }

    .rouge-table {
      border-color: #404040;
    }

    .rouge-table .rouge-gutter {
      background-color: #252526;
      border-right: 1px solid #404040;
    }

    .rouge-table .rouge-code {
      background-color: #1e1e1e;
    }

    .rouge-gutter .lineno {
      color: #858585;
    }

    .code-block-wrapper pre code,
    .highlight pre code {
      color: #d4d4d4;
    }
  }
}
