/* ===== LIGHT THEME — Flexoki (600 accent variants) ===== */

html[data-theme="light"] .highlight {
  background-color: #FFFCF0;

  /* Comments */
  .c, .cd, .cm, .c1, .cs { color: #6F6E69; font-style: italic; }
  .cp { color: #6F6E69; }

  /* Keywords */
  .k, .kc, .kd, .kn, .kp, .kr, .kv { color: #5E409D; font-weight: bold; }
  .kt { color: #24837B; font-weight: bold; }

  /* Strings */
  .s, .sb, .sc, .sd, .s2, .se, .sh, .si, .sx, .s1 { color: #66800B; }
  .sr { color: #24837B; }
  .ss { color: #BC5215; }

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

  /* Names */
  .na { color: #AD8301; }
  .nb { color: #205EA6; }
  .nc { color: #AD8301; font-weight: bold; }
  .nd { color: #205EA6; }
  .ne { color: #AF3029; font-weight: bold; }
  .nf { color: #205EA6; font-weight: bold; }
  .ni { color: #24837B; }
  .nl { color: #BC5215; }
  .nn { color: #AD8301; }
  .no { color: #BC5215; }
  .nt { color: #AF3029; }
  .nv, .vc, .vg, .vi { color: #A02F6F; }
  .bp { color: #205EA6; }

  /* Operators */
  .o, .ow { color: #24837B; }

  /* Punctuation */
  .p { color: var(--text); }

  /* Generic */
  .gd { color: #AF3029; background-color: rgba(175, 48, 41, 0.1); }
  .ge { font-style: italic; }
  .gh { color: var(--text); font-weight: bold; }
  .gi { color: #66800B; background-color: rgba(102, 128, 11, 0.1); }
  .go { color: #6F6E69; }
  .gp { color: #AD8301; font-weight: bold; }
  .gr { color: #AF3029; }
  .gs { font-weight: bold; }
  .gt { color: #AF3029; }
  .gu { color: #24837B; font-weight: bold; }

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

  /* Whitespace */
  .w { color: #6F6E69; }
}


/* ===== MOON THEME — Flexoki warm dark (400 accent variants) ===== */

html[data-theme="moon"] .highlight {
  background-color: #282726;

  /* Comments */
  .c, .cd, .cm, .c1, .cs { color: #575653; font-style: italic; }
  .cp { color: #575653; }

  /* Keywords */
  .k, .kc, .kd, .kn, .kp, .kr, .kv { color: #8B7EC8; font-weight: bold; }
  .kt { color: #3AA99F; font-weight: bold; }

  /* Strings */
  .s, .sb, .sc, .sd, .s2, .se, .sh, .si, .sx, .s1 { color: #879A39; }
  .sr { color: #3AA99F; }
  .ss { color: #DA702C; }

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

  /* Names */
  .na { color: #D0A215; }
  .nb { color: #4385BE; }
  .nc { color: #D0A215; font-weight: bold; }
  .nd { color: #4385BE; }
  .ne { color: #D14D41; font-weight: bold; }
  .nf { color: #4385BE; font-weight: bold; }
  .ni { color: #3AA99F; }
  .nl { color: #DA702C; }
  .nn { color: #D0A215; }
  .no { color: #DA702C; }
  .nt { color: #D14D41; }
  .nv, .vc, .vg, .vi { color: #CE5D97; }
  .bp { color: #4385BE; }

  /* Operators */
  .o, .ow { color: #3AA99F; }

  /* Punctuation */
  .p { color: var(--text); }

  /* Generic */
  .gd { color: #D14D41; background-color: rgba(209, 77, 65, 0.15); }
  .ge { font-style: italic; }
  .gh { color: var(--text); font-weight: bold; }
  .gi { color: #879A39; background-color: rgba(135, 154, 57, 0.15); }
  .go { color: #575653; }
  .gp { color: #D0A215; font-weight: bold; }
  .gr { color: #D14D41; }
  .gs { font-weight: bold; }
  .gt { color: #D14D41; }
  .gu { color: #3AA99F; font-weight: bold; }

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

  /* Whitespace */
  .w { color: #575653; }
}

/* ===== DARK THEME (default) ===== */

.highlight {
  background-color: var(--card-bg);
  border-radius: var(--radius);
  margin: var(--spacing) 0;
  overflow-x: auto;

  pre {
    margin: 0;
    padding: var(--spacing);
    background-color: transparent;
  }

  code {
    background-color: transparent;
    padding: 0;
  }

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

  /* Comments */
  .c, .cd, .cm, .c1, .cs { color: #546e7a; font-style: italic; }
  .cp { color: #546e7a; }

  /* Keywords */
  .k, .kc, .kd, .kn, .kp, .kr, .kv { color: #c792ea; font-weight: bold; }
  .kt { color: #ffcb6b; font-weight: bold; }

  /* Strings */
  .s, .sb, .sc, .sd, .s2, .se, .sh, .si, .sx, .s1 { color: #c3e88d; }
  .sr { color: #89ddff; }
  .ss { color: #f78c6c; }

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

  /* Names */
  .na { color: #ffcb6b; }
  .nb { color: #82aaff; }
  .nc { color: #ffcb6b; font-weight: bold; }
  .nd { color: #82aaff; }
  .ne { color: #ff5370; font-weight: bold; }
  .nf { color: #82aaff; font-weight: bold; }
  .ni { color: #89ddff; }
  .nl { color: #f78c6c; }
  .nn { color: #ffcb6b; }
  .no { color: #f78c6c; }
  .nt { color: #ff5370; }
  .nv, .vc, .vg, .vi { color: #f07178; }
  .bp { color: #82aaff; }

  /* Operators */
  .o, .ow { color: #89ddff; }

  /* Punctuation */
  .p { color: var(--text); }

  /* Generic */
  .gd { color: #ff5370; background-color: rgba(255, 83, 112, 0.1); }
  .ge { font-style: italic; }
  .gh { color: var(--text); font-weight: bold; }
  .gi { color: #c3e88d; background-color: rgba(195, 232, 141, 0.1); }
  .go { color: #546e7a; }
  .gp { color: #ffcb6b; font-weight: bold; }
  .gr { color: #ff5370; }
  .gs { font-weight: bold; }
  .gt { color: #ff5370; }
  .gu { color: #89ddff; font-weight: bold; }

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

  /* Whitespace */
  .w { color: #546e7a; }
}
