/* Paper Modern Theme - Light */
@media (prefers-color-scheme: light) {
  html:not([data-mode]),
  html[data-mode='light'] {
    /* Framework */
    --main-bg: #faf8f5;
    --mask-bg: #c8c3ba;
    --main-border-color: #e8e3db;

    /* Common */
    --text-color: #2c2c2c;
    --text-muted-color: #6b6560;
    --heading-color: #1a1a1a;
    --label-color: #4a4540;
    --blockquote-border-color: #d4cec4;
    --blockquote-text-color: #6b6560;
    --link-color: #8b5e3c;
    --link-underline-color: #d4cec4;
    --button-bg: #faf8f5;
    --btn-border-color: #e0dbd3;
    --btn-backtotop-color: #5a5550;
    --btn-backtotop-border-color: #e8e3db;
    --checkbox-color: #c5bfb5;
    --checkbox-checked-color: #8b5e3c;
    --img-bg: radial-gradient(circle, #faf8f5 0%, #ebe6de 100%);
    --shimmer-bg: linear-gradient(90deg, rgb(250 248 245 / 0%) 0%, rgb(224 219 211 / 100%) 50%, rgb(250 248 245 / 0%) 100%);

    /* Sidebar */
    --site-title-color: #5a5550;
    --site-subtitle-color: #6b6560;
    --sidebar-bg: #f0ece6;
    --sidebar-border-color: #e0dbd3;
    --sidebar-muted-color: #5a5550;
    --sidebar-active-color: #1a1a1a;
    --sidebar-hover-bg: rgb(214 207 196 / 40%);
    --sidebar-btn-bg: #faf8f5;
    --sidebar-btn-color: #8a8580;
    --avatar-border-color: #faf8f5;

    /* Topbar */
    --topbar-bg: rgb(250 248 245 / 70%);
    --topbar-text-color: #4a4540;
    --search-border-color: #e0dbd3;
    --search-icon-color: #b0a99e;
    --input-focus-border-color: #a09890;

    /* Home page */
    --post-list-text-color: #4a4540;
    --btn-patinator-text-color: #4a4540;
    --btn-paginator-hover-color: var(--sidebar-bg);

    /* Posts */
    --toc-highlight: #8b5e3c;
    --toc-popup-border-color: #d4cec4;
    --btn-share-color: #8a8580;
    --btn-share-hover-color: #8b5e3c;
    --card-bg: #faf8f5;
    --card-hover-bg: #ebe6dd;
    --card-shadow: rgb(120 110 100 / 6%) 0 2px 6px 0, rgb(200 195 186 / 18%) 0 0 0 1px;
    --footnote-target-bg: #f5efe5;
    --tb-odd-bg: #f5f2ed;
    --tb-border-color: #e0dbd3;
    --dash-color: #c8c3ba;
    --kbd-wrap-color: #b5b0a8;
    --kbd-text-color: var(--text-color);
    --kbd-bg-color: #faf8f5;
    --prompt-text-color: rgb(44 44 44 / 77%);
    --prompt-tip-bg: rgb(123 200 144 / 18%);
    --prompt-tip-icon-color: #2e8b57;
    --prompt-info-bg: rgb(200 220 240 / 30%);
    --prompt-info-icon-color: #5a7ea3;
    --prompt-warning-bg: rgb(245 230 195 / 40%);
    --prompt-warning-icon-color: #b8860b;
    --prompt-danger-bg: rgb(240 210 210 / 35%);
    --prompt-danger-icon-color: #b54a3f;

    /* Tags */
    --tag-border: #e0dbd3;
    --tag-shadow: var(--btn-border-color);
    --tag-hover: #e0dbd3;
    --search-tag-bg: #f5f2ed;

    /* Categories */
    --categories-border: rgb(0 0 0 / 10%);
    --categories-hover-bg: var(--btn-border-color);
    --categories-icon-hover-color: #5a4a3a;

    /* Archive */
    --timeline-color: rgb(0 0 0 / 7%);
    --timeline-node-bg: #b0a99e;
    --timeline-year-dot-color: #faf8f5;

    /* Code */
    --language-border-color: #e0dbd3;
    --highlight-bg-color: #f3efe9;
    --highlighter-rouge-color: #6b4226;
    --highlight-lineno-color: #a09890;
    --inline-code-bg: rgb(44 44 44 / 6%);
    --code-color: #3a3530;
    --code-header-text-color: #a09890;
    --code-header-muted-color: #e0dbd3;
    --code-header-icon-color: #c8c3ba;
    --clipboard-checked-color: #2e8b57;
  }

  /* Light syntax highlighting */
  html:not([data-mode]) .highlight,
  html:not([data-mode]) .highlight .w,
  html[data-mode='light'] .highlight,
  html[data-mode='light'] .highlight .w {
    color: #2c2c2c;
    background-color: #f3efe9;
  }

  html:not([data-mode]),
  html[data-mode='light'] {
    .highlight .k, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kt, .highlight .kv { color: #a3403b; }
    .highlight .nb, .highlight .nc, .highlight .no, .highlight .nn { color: #8b5e3c; }
    .highlight .sr, .highlight .na, .highlight .nt { color: #3a7a5a; }
    .highlight .gi { color: #3a7a5a; background-color: #e5f0e8; }
    .highlight .gd { color: #82071e; background-color: #f5e0de; }
    .highlight .kc, .highlight .l, .highlight .ld, .highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mx,
    .highlight .sb, .highlight .bp, .highlight .ne, .highlight .nl, .highlight .py,
    .highlight .nv, .highlight .vc, .highlight .vg, .highlight .vi, .highlight .vm,
    .highlight .o, .highlight .ow { color: #5a6e8a; }
    .highlight .gh, .highlight .gu { color: #5a6e8a; font-weight: bold; }
    .highlight .s, .highlight .sa, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .se, .highlight .sh, .highlight .sx, .highlight .s1, .highlight .ss { color: #6b4226; }
    .highlight .nd, .highlight .nf, .highlight .fm { color: #7a5a8a; }
    .highlight .err { color: #f3efe9; background-color: #a3403b; }
    .highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cp, .highlight .cpf, .highlight .c1, .highlight .cs, .highlight .gl, .highlight .gt { color: #8a8580; }
  }
}

/* Light mode forced via toggle */
@media (prefers-color-scheme: dark) {
  html[data-mode='light'] {
    /* Framework */
    --main-bg: #faf8f5;
    --mask-bg: #c8c3ba;
    --main-border-color: #e8e3db;
    --text-color: #2c2c2c;
    --text-muted-color: #6b6560;
    --heading-color: #1a1a1a;
    --label-color: #4a4540;
    --blockquote-border-color: #d4cec4;
    --blockquote-text-color: #6b6560;
    --link-color: #8b5e3c;
    --link-underline-color: #d4cec4;
    --button-bg: #faf8f5;
    --btn-border-color: #e0dbd3;
    --checkbox-checked-color: #8b5e3c;
    --sidebar-bg: #f0ece6;
    --sidebar-border-color: #e0dbd3;
    --sidebar-active-color: #1a1a1a;
    --sidebar-hover-bg: rgb(214 207 196 / 40%);
    --sidebar-btn-bg: #faf8f5;
    --avatar-border-color: #faf8f5;
    --topbar-bg: rgb(250 248 245 / 70%);
    --topbar-text-color: #4a4540;
    --search-border-color: #e0dbd3;
    --toc-highlight: #8b5e3c;
    --card-bg: #faf8f5;
    --card-hover-bg: #ebe6dd;
    --highlight-bg-color: #f3efe9;
    --highlighter-rouge-color: #6b4226;
    --inline-code-bg: rgb(44 44 44 / 6%);
    --code-color: #3a3530;
    --tag-border: #e0dbd3;
    --tag-hover: #e0dbd3;
    --search-tag-bg: #f5f2ed;
    --tb-odd-bg: #f5f2ed;
    --tb-border-color: #e0dbd3;
  }
}

/* Paper Modern Theme - Dark */
@media (prefers-color-scheme: dark) {
  html:not([data-mode]),
  html[data-mode='dark'] {
    /* Framework */
    --main-bg: #1e1c1a;
    --mask-bg: #4a4540;
    --main-border-color: #2e2a26;

    /* Common */
    --text-color: #d4cfc7;
    --text-muted-color: #8a8478;
    --text-muted-highlight-color: #b5aea4;
    --heading-color: #e8e2d8;
    --label-color: #a8a298;
    --blockquote-border-color: #3a3530;
    --blockquote-text-color: #8a8478;
    --link-color: #c49a6c;
    --link-underline-color: #5a4a3a;
    --button-bg: #242220;
    --btn-border-color: #3a3530;
    --btn-backtotop-color: var(--text-color);
    --btn-backtotop-border-color: #2a2622;
    --card-header-bg: #2a2622;
    --checkbox-color: rgb(118 112 105);
    --checkbox-checked-color: #c49a6c;
    --img-bg: radial-gradient(circle, #1e1c1a 0%, #262320 100%);
    --shimmer-bg: linear-gradient(90deg, rgb(255 255 255 / 0%) 0%, rgb(70 65 58 / 40%) 50%, rgb(255 255 255 / 0%) 100%);

    /* Sidebar */
    --site-title-color: #8a8478;
    --site-subtitle-color: #8a8478;
    --sidebar-bg: #181614;
    --sidebar-border-color: #2a2622;
    --sidebar-muted-color: #8a8478;
    --sidebar-active-color: rgb(232 226 216 / 95%);
    --sidebar-hover-bg: #2a2622;
    --sidebar-btn-bg: #222018;
    --sidebar-btn-color: #787068;
    --avatar-border-color: rgb(200 195 186 / 90%);

    /* Topbar */
    --topbar-bg: rgb(30 28 26 / 64%);
    --topbar-text-color: var(--text-color);
    --search-border-color: #3a3530;
    --search-icon-color: rgb(100 95 88);
    --input-focus-border-color: rgb(120 112 100);

    /* Home page */
    --post-list-text-color: #d4cfc7;
    --btn-patinator-text-color: var(--text-color);
    --btn-paginator-hover-color: #2e2a26;

    /* Posts */
    --toc-highlight: #c49a6c;
    --toc-popup-border-color: #3a3530;
    --tag-hover: rgb(58 50 40);
    --tb-odd-bg: #242220;
    --tb-even-bg: #1e1c1a;
    --tb-border-color: var(--tb-odd-bg);
    --footnote-target-bg: rgb(100 80 50 / 30%);
    --btn-share-color: #6c6560;
    --btn-share-hover-color: #c49a6c;
    --card-bg: #242220;
    --card-hover-bg: #3a3530;
    --card-shadow: rgb(10 8 6 / 72%) 0 6px 18px 0, rgb(80 75 68 / 12%) 0 0 0 1px;
    --kbd-wrap-color: #5a5550;
    --kbd-text-color: #d4cfc7;
    --kbd-bg-color: #2a2622;
    --prompt-text-color: rgb(212 207 199 / 75%);
    --prompt-tip-bg: rgb(30 65 40 / 60%);
    --prompt-tip-icon-color: rgb(46 139 87 / 85%);
    --prompt-info-bg: rgb(20 55 90 / 60%);
    --prompt-info-icon-color: #5a7ea3;
    --prompt-warning-bg: rgb(90 70 15 / 70%);
    --prompt-warning-icon-color: rgb(184 134 11 / 85%);
    --prompt-danger-bg: rgb(85 30 15 / 70%);
    --prompt-danger-icon-color: #b54a3f;

    /* Tags */
    --tag-border: #3a3530;
    --tag-shadow: #1e1c1a;
    --dash-color: #4a4540;
    --search-tag-bg: #2a2622;

    /* Categories */
    --categories-border: rgb(60 55 48 / 50%);
    --categories-hover-bg: #3a3530;
    --categories-icon-hover-color: #e8e2d8;

    /* Archive */
    --timeline-node-bg: rgb(150 142 130);
    --timeline-color: rgb(60 55 48);
    --timeline-year-dot-color: var(--timeline-color);

    /* Code */
    --language-border-color: #2e2a26;
    --highlight-bg-color: #1a1816;
    --highlighter-rouge-color: #d4b896;
    --highlight-lineno-color: #6a6458;
    --inline-code-bg: rgb(255 255 255 / 5%);
    --code-color: #c0b8a8;
    --code-header-text-color: #5a5550;
    --code-header-muted-color: #2e2a26;
    --code-header-icon-color: #4a4540;
    --clipboard-checked-color: #5aab5a;
    --filepath-text-color: #c8c0b4;
  }

  /* Dark syntax highlighting */
  html:not([data-mode]) .highlight,
  html:not([data-mode]) .highlight .w,
  html[data-mode='dark'] .highlight,
  html[data-mode='dark'] .highlight .w {
    color: #d4cfc7;
    background-color: #1a1816;
  }

  html:not([data-mode]),
  html[data-mode='dark'] {
    .highlight .gp { color: #8a8478; }
    .highlight .err { color: #1a1816; background-color: #b54a3f; }
    .highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cpf, .highlight .c1, .highlight .cs { color: #6a6458; }
    .highlight .cp, .highlight .nt, .highlight .nn, .highlight .nc, .highlight .no { color: #d4b896; }
    .highlight .o, .highlight .ow, .highlight .p, .highlight .pi { color: #d4cfc7; }
    .highlight .gi, .highlight .s, .highlight .sb, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1,
    .highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mx, .highlight .ss { color: #8aab6a; }
    .highlight .gd { color: #d48a8a; background-color: #3a1a1a; }
    .highlight .gh { color: #7aa8b8; font-weight: bold; }
    .highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv { color: #b08aaa; }
    .highlight .kc, .highlight .kt, .highlight .kd, .highlight .si, .highlight .se { color: #c49a6c; }
    .highlight .sa { color: #b08aaa; }
    .highlight .sr { color: #7ab0a0; }
    .highlight .na { color: #7aa8b8; }
  }
}

/* Dark mode forced via toggle in light-preferring system */
@media (prefers-color-scheme: light) {
  html[data-mode='dark'] {
    --main-bg: #1e1c1a;
    --mask-bg: #4a4540;
    --main-border-color: #2e2a26;
    --text-color: #d4cfc7;
    --text-muted-color: #8a8478;
    --heading-color: #e8e2d8;
    --label-color: #a8a298;
    --blockquote-border-color: #3a3530;
    --blockquote-text-color: #8a8478;
    --link-color: #c49a6c;
    --link-underline-color: #5a4a3a;
    --button-bg: #242220;
    --btn-border-color: #3a3530;
    --checkbox-checked-color: #c49a6c;
    --sidebar-bg: #181614;
    --sidebar-border-color: #2a2622;
    --sidebar-active-color: rgb(232 226 216 / 95%);
    --sidebar-hover-bg: #2a2622;
    --sidebar-btn-bg: #222018;
    --avatar-border-color: rgb(200 195 186 / 90%);
    --topbar-bg: rgb(30 28 26 / 64%);
    --topbar-text-color: var(--text-color);
    --search-border-color: #3a3530;
    --toc-highlight: #c49a6c;
    --card-bg: #242220;
    --card-hover-bg: #3a3530;
    --highlight-bg-color: #1a1816;
    --highlighter-rouge-color: #d4b896;
    --inline-code-bg: rgb(255 255 255 / 5%);
    --code-color: #c0b8a8;
    --tag-border: #3a3530;
    --tag-hover: rgb(58 50 40);
    --search-tag-bg: #2a2622;
    --tb-odd-bg: #242220;
    --tb-even-bg: #1e1c1a;
    --tb-border-color: var(--tb-odd-bg);
  }
}
