/* BILIMCHECK shared themes (stage 3A). Every theme is a complete variable set; all surfaces and text read these variables.
   Verified by tools/contrast-check.js (WCAG). Do not hard-code colours in module CSS: use var(--bc-*). */
/* language switcher */
.bc-lang-switch{position:fixed;top:14px;right:14px;z-index:10000;display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--bc-bar,rgba(10,12,30,.9));border:1px solid var(--bc-border,rgba(255,255,255,.2));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 6px 24px rgba(0,0,0,.2)}
.bc-lang-switch button{border:0;background:transparent;color:var(--bc-text,#dfe6ff);font:600 12px/1 inherit;font-family:inherit;padding:8px 12px;border-radius:999px;cursor:pointer;transition:background .2s}
.bc-lang-switch button:hover{background:var(--bc-card2,rgba(255,255,255,.12))}
.bc-lang-switch button.active{background:linear-gradient(135deg,var(--bc-accent,#7b5cff),var(--bc-accent2,#3fa9ff));color:var(--bc-onaccent,#fff)}
@media(max-width:520px){.bc-lang-switch{top:8px;right:8px}.bc-lang-switch button{padding:7px 9px;font-size:11px}}
.bc-set-note{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--bc-muted)}
.bc-lang-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.bc-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}
.bc-theme-card{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:14px;border:1px solid var(--bc-border,rgba(255,255,255,.16));background:var(--bc-card2,rgba(255,255,255,.04));color:var(--bc-text,inherit);cursor:pointer;text-align:left;font:inherit;font-weight:600;transition:transform .15s,box-shadow .15s}
.bc-theme-card:hover{transform:translateY(-2px)}
.bc-theme-card.active{border-color:var(--bc-accent,#7b8cff);box-shadow:0 0 0 2px var(--bc-accent,#7b8cff) inset}
.bc-swatch{display:flex;align-items:flex-end;gap:4px;height:52px;border-radius:9px;border:1px solid var(--bc-border,rgba(255,255,255,.2));padding:6px;overflow:hidden}
.bc-swatch i{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(128,128,128,.6);font-style:normal}
.bc-swatch b{margin-left:auto;font:700 13px/1 inherit;font-family:inherit;padding:2px 6px;border-radius:6px}
/* ---- theme variable sets ---- */
html[data-bc-theme="light"]{--bc-bgcolor:#eef3fb;--bc-bg:linear-gradient(135deg,#eef3fb,#cfdcff);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(255,255,255,.94);--bc-card:rgba(255,255,255,.95);--bc-card2:rgba(40,60,130,.07);--bc-input:#ffffff;--bc-border:rgba(60,80,140,.26);--bc-accent:#3450d0;--bc-accent2:#1a6fb5;--bc-text:#162033;--bc-muted:#46566f;--bc-onaccent:#ffffff;--bc-link:#2641bd;--bc-ph:#5d6b83;--bc-disabled:#6b778c;--bc-danger:#a8201a;--bc-ok:#17663a;--bc-warn:#7a4f00;--bc-glow:0 4px 18px rgba(40,60,130,.10);--bc-scheme:light}
html[data-bc-theme="dark"]{--bc-bgcolor:#0b0e22;--bc-bg:linear-gradient(135deg,#1b1f3a,#0b0e22);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(16,20,44,.94);--bc-card:rgba(26,31,64,.92);--bc-card2:rgba(255,255,255,.08);--bc-input:#151a38;--bc-border:rgba(150,160,255,.26);--bc-accent:#7b8cff;--bc-accent2:#3fa9ff;--bc-text:#eef1ff;--bc-muted:#b6bfe2;--bc-onaccent:#0a0f2a;--bc-link:#a3b4ff;--bc-ph:#a0a9cc;--bc-disabled:#9aa3c4;--bc-danger:#ff9a9a;--bc-ok:#7ee8a8;--bc-warn:#ffd77a;--bc-glow:none;--bc-scheme:dark}
html[data-bc-theme="space"]{--bc-bgcolor:#05030f;--bc-bg:radial-gradient(ellipse at 20% 10%,rgba(120,70,255,.55),transparent 45%),radial-gradient(ellipse at 85% 85%,rgba(0,170,255,.35),transparent 45%),radial-gradient(ellipse at 60% 40%,rgba(255,80,200,.18),transparent 40%),linear-gradient(180deg,#05030f,#0b0726 60%,#050a1e);--bc-overlay:radial-gradient(1.5px 1.5px at 20px 30px,#fff,transparent),radial-gradient(1px 1px at 90px 120px,#cfe8ff,transparent),radial-gradient(1.5px 1.5px at 160px 60px,#fff,transparent),radial-gradient(1px 1px at 230px 180px,#fff,transparent),radial-gradient(2px 2px at 300px 90px,#c9d4ff,transparent);--bc-overlay-size:320px 220px;--bc-bar:rgba(12,8,38,.94);--bc-card:rgba(24,16,66,.9);--bc-card2:rgba(255,255,255,.08);--bc-input:#140e3a;--bc-border:rgba(150,130,255,.32);--bc-accent:#9b80ff;--bc-accent2:#27c8ff;--bc-text:#eef0ff;--bc-muted:#bfc3ee;--bc-onaccent:#0c0630;--bc-link:#a9c4ff;--bc-ph:#a6a9d6;--bc-disabled:#9ea0cc;--bc-danger:#ff9a9a;--bc-ok:#7ee8a8;--bc-warn:#ffd77a;--bc-glow:0 0 22px rgba(120,90,255,.22);--bc-scheme:dark}
html[data-bc-theme="blue"]{--bc-bgcolor:#061233;--bc-bg:linear-gradient(135deg,#143a9a,#061233);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(7,20,60,.94);--bc-card:rgba(12,34,92,.9);--bc-card2:rgba(255,255,255,.09);--bc-input:#0d2663;--bc-border:rgba(140,180,255,.34);--bc-accent:#6aa8ff;--bc-accent2:#3ad0ff;--bc-text:#eef4ff;--bc-muted:#bfd2f6;--bc-onaccent:#04112e;--bc-link:#a9d0ff;--bc-ph:#a3b8e6;--bc-disabled:#9db2e0;--bc-danger:#ff9a9a;--bc-ok:#7ee8a8;--bc-warn:#ffd77a;--bc-glow:none;--bc-scheme:dark}
html[data-bc-theme="neon"]{--bc-bgcolor:#07000f;--bc-bg:radial-gradient(circle at 15% 20%,rgba(255,0,170,.35),transparent 40%),radial-gradient(circle at 85% 75%,rgba(0,255,230,.28),transparent 40%),linear-gradient(135deg,#0a0016,#12002b);--bc-overlay:linear-gradient(rgba(255,0,200,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,230,.06) 1px,transparent 1px);--bc-overlay-size:44px 44px;--bc-bar:rgba(14,0,30,.94);--bc-card:rgba(22,0,48,.9);--bc-card2:rgba(255,255,255,.08);--bc-input:#1a0038;--bc-border:rgba(255,0,200,.6);--bc-accent:#ff2bd6;--bc-accent2:#00f0ff;--bc-text:#f8eeff;--bc-muted:#d9c2f0;--bc-onaccent:#12001f;--bc-link:#6ff3ff;--bc-ph:#c0a6dc;--bc-disabled:#b79fd2;--bc-danger:#ff9a9a;--bc-ok:#7ee8a8;--bc-warn:#ffd77a;--bc-glow:0 0 18px rgba(255,0,200,.35);--bc-scheme:dark}
html[data-bc-theme="forest"]{--bc-bgcolor:#06140d;--bc-bg:radial-gradient(circle at 15% 15%,rgba(60,170,90,.4),transparent 45%),radial-gradient(circle at 85% 85%,rgba(20,110,80,.45),transparent 45%),linear-gradient(160deg,#07170f,#0d2a1a 55%,#0a1f16);--bc-overlay:radial-gradient(circle at 50% 120%,rgba(190,230,120,.16),transparent 55%);--bc-overlay-size:auto;--bc-bar:rgba(6,24,15,.94);--bc-card:rgba(12,40,26,.9);--bc-card2:rgba(255,255,255,.08);--bc-input:#0f3322;--bc-border:rgba(130,210,140,.3);--bc-accent:#4cc470;--bc-accent2:#c8e66b;--bc-text:#eaf7ea;--bc-muted:#b5d4b8;--bc-onaccent:#05210f;--bc-link:#a8e8a0;--bc-ph:#9fc1a3;--bc-disabled:#98b99c;--bc-danger:#ff9a9a;--bc-ok:#7ee8a8;--bc-warn:#ffd77a;--bc-glow:0 0 18px rgba(76,196,112,.14);--bc-scheme:dark}
html[data-bc-theme="sunset"]{--bc-bgcolor:#1a0a14;--bc-bg:linear-gradient(180deg,#2a0f3a 0%,#5e1a4e 38%,#8a2a2e 72%,#85360f 100%);--bc-overlay:radial-gradient(circle at 50% 108%,rgba(255,200,110,.22),transparent 46%);--bc-overlay-size:auto;--bc-bar:rgba(36,8,36,.94);--bc-card:rgba(52,12,46,.92);--bc-card2:rgba(255,255,255,.1);--bc-input:#3d0e38;--bc-border:rgba(255,170,120,.4);--bc-accent:#ff8a55;--bc-accent2:#ffc15e;--bc-text:#fff4ec;--bc-muted:#ffe0d0;--bc-onaccent:#2a0f1a;--bc-link:#ffd08a;--bc-ph:#e0b8a8;--bc-disabled:#d8b0a0;--bc-danger:#ff9a9a;--bc-ok:#7ee8a8;--bc-warn:#ffd77a;--bc-glow:0 0 20px rgba(255,122,69,.2);--bc-scheme:dark}
html[data-bc-theme="terminal"]{--bc-bgcolor:#020a02;--bc-bg:#020a02;--bc-overlay:repeating-linear-gradient(0deg,rgba(0,255,70,.05) 0 1px,transparent 1px 3px);--bc-overlay-size:auto;--bc-bar:rgba(0,14,0,.95);--bc-card:rgba(0,22,0,.9);--bc-card2:rgba(0,255,90,.1);--bc-input:#001a05;--bc-border:rgba(0,255,90,.5);--bc-accent:#00ff5a;--bc-accent2:#7dffa0;--bc-text:#b6ffc4;--bc-muted:#8fe0a0;--bc-onaccent:#001a08;--bc-link:#7dffa0;--bc-ph:#6fc084;--bc-disabled:#5da872;--bc-danger:#ff8c8c;--bc-ok:#7dffa0;--bc-warn:#e8ff7a;--bc-glow:0 0 12px rgba(0,255,90,.16);--bc-scheme:dark}
html[data-bc-theme="ocean"]{--bc-bgcolor:#04202e;--bc-bg:linear-gradient(160deg,#0a4a63,#04202e 60%,#062a3a);--bc-overlay:radial-gradient(ellipse at 50% 120%,rgba(110,227,181,.16),transparent 55%);--bc-overlay-size:auto;--bc-bar:rgba(4,30,44,.95);--bc-card:rgba(8,52,72,.92);--bc-card2:rgba(255,255,255,.08);--bc-input:#0a4560;--bc-border:rgba(110,210,230,.32);--bc-accent:#2cc4d9;--bc-accent2:#6be3b5;--bc-text:#e8fbff;--bc-muted:#acd6e0;--bc-onaccent:#03222c;--bc-link:#8eeaff;--bc-ph:#9bc6d1;--bc-disabled:#92bcc7;--bc-danger:#ff9a9a;--bc-ok:#7ee8a8;--bc-warn:#ffd77a;--bc-glow:0 0 18px rgba(44,196,217,.16);--bc-scheme:dark}
html[data-bc-theme="sakura"]{--bc-bgcolor:#fff1f5;--bc-bg:linear-gradient(135deg,#ffeef4,#f9d2e2 60%,#e8d5ff);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(255,255,255,.93);--bc-card:rgba(255,255,255,.94);--bc-card2:rgba(170,50,100,.07);--bc-input:#ffffff;--bc-border:rgba(170,60,110,.3);--bc-accent:#b0305c;--bc-accent2:#8a3fc4;--bc-text:#3b1a2a;--bc-muted:#6a3a50;--bc-onaccent:#ffffff;--bc-link:#9a2554;--bc-ph:#7d5368;--bc-disabled:#7a5a6a;--bc-danger:#a8201a;--bc-ok:#17663a;--bc-warn:#7a4f00;--bc-glow:0 4px 18px rgba(176,48,92,.10);--bc-scheme:light}
html[data-bc-theme="desert"]{--bc-bgcolor:#f6ecd9;--bc-bg:linear-gradient(160deg,#fbf3e3,#f0dcb6 70%,#e8c98f);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(255,249,235,.94);--bc-card:rgba(255,251,241,.95);--bc-card2:rgba(120,80,20,.08);--bc-input:#fffdf6;--bc-border:rgba(140,100,40,.34);--bc-accent:#92520c;--bc-accent2:#7a4a10;--bc-text:#33240f;--bc-muted:#5f4a29;--bc-onaccent:#ffffff;--bc-link:#7d430a;--bc-ph:#7a6540;--bc-disabled:#76623f;--bc-danger:#a8201a;--bc-ok:#17663a;--bc-warn:#7a4f00;--bc-glow:0 4px 18px rgba(140,100,40,.12);--bc-scheme:light}
html[data-bc-theme="amethyst"]{--bc-bgcolor:#120826;--bc-bg:linear-gradient(150deg,#2a1156,#120826 60%,#1b0a3a);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(20,9,44,.95);--bc-card:rgba(40,20,80,.92);--bc-card2:rgba(255,255,255,.08);--bc-input:#2a1558;--bc-border:rgba(190,150,255,.32);--bc-accent:#b48cff;--bc-accent2:#ff8fd0;--bc-text:#f3ecff;--bc-muted:#cdbdf0;--bc-onaccent:#1a0936;--bc-link:#d2b8ff;--bc-ph:#b5a3da;--bc-disabled:#ad9bd2;--bc-danger:#ff9a9a;--bc-ok:#7ee8a8;--bc-warn:#ffd77a;--bc-glow:0 0 20px rgba(180,140,255,.18);--bc-scheme:dark}
html[data-bc-theme="contrast"]{--bc-bgcolor:#000000;--bc-bg:#000000;--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:#000000;--bc-card:#000000;--bc-card2:#1a1a1a;--bc-input:#000000;--bc-border:#ffffff;--bc-accent:#ffe600;--bc-accent2:#00e5ff;--bc-text:#ffffff;--bc-muted:#e6e6e6;--bc-onaccent:#000000;--bc-link:#8ff0ff;--bc-ph:#cfcfcf;--bc-disabled:#bdbdbd;--bc-danger:#ff9b9b;--bc-ok:#6dff9f;--bc-warn:#ffe600;--bc-glow:none;--bc-scheme:dark}
html[data-bc-theme="coffee"]{--bc-bgcolor:#f3e9dc;--bc-bg:linear-gradient(160deg,#f8f0e4,#e9d8c0);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(247,238,224,.95);--bc-card:rgba(252,247,238,.96);--bc-card2:rgba(90,60,35,.08);--bc-input:#fffaf2;--bc-border:rgba(90,60,35,.34);--bc-accent:#6f4325;--bc-accent2:#8a4f22;--bc-text:#2b1d12;--bc-muted:#5a442e;--bc-onaccent:#ffffff;--bc-link:#5e3519;--bc-ph:#7b6650;--bc-disabled:#74604a;--bc-danger:#a8201a;--bc-ok:#17663a;--bc-warn:#7a4f00;--bc-glow:0 4px 18px rgba(90,60,35,.12);--bc-scheme:light}
html[data-bc-theme="aurora"]{--bc-bgcolor:#07131a;--bc-bg:linear-gradient(150deg,#0a2a33,#07131a 55%,#1a1040);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(8,24,32,.95);--bc-card:rgba(12,32,44,.92);--bc-card2:rgba(255,255,255,.07);--bc-input:#0f2a38;--bc-border:rgba(90,240,200,.34);--bc-accent:#3ef2c0;--bc-accent2:#8b7bff;--bc-text:#e8fff8;--bc-muted:#a9d6cf;--bc-onaccent:#04241c;--bc-link:#7dffe0;--bc-ph:#8fb8b0;--bc-disabled:#8aa8a3;--bc-danger:#ff8d8d;--bc-ok:#7dffb0;--bc-warn:#ffd06b;--bc-glow:0 4px 24px rgba(62,242,192,.18);--bc-scheme:dark}
html[data-bc-theme="volcano"]{--bc-bgcolor:#1a0a08;--bc-bg:linear-gradient(160deg,#3a120a,#1a0a08 60%,#2a0d12);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(30,10,8,.95);--bc-card:rgba(46,18,14,.94);--bc-card2:rgba(255,255,255,.07);--bc-input:#2e1612;--bc-border:rgba(255,130,80,.36);--bc-accent:#ff6a2b;--bc-accent2:#ffb347;--bc-text:#fff0e8;--bc-muted:#f0bfae;--bc-onaccent:#1a0600;--bc-link:#ffb48a;--bc-ph:#d9a592;--bc-disabled:#c9a393;--bc-danger:#ff9a8f;--bc-ok:#8be9a0;--bc-warn:#ffd27a;--bc-glow:0 4px 24px rgba(255,106,43,.2);--bc-scheme:dark}
html[data-bc-theme="mint"]{--bc-bgcolor:#e9f8f1;--bc-bg:linear-gradient(160deg,#f2fcf7,#d3f0e3);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(240,252,247,.95);--bc-card:rgba(255,255,255,.96);--bc-card2:rgba(15,122,90,.08);--bc-input:#ffffff;--bc-border:rgba(15,90,66,.34);--bc-accent:#0f7a5a;--bc-accent2:#0a7488;--bc-text:#0f2e24;--bc-muted:#3c5f52;--bc-onaccent:#ffffff;--bc-link:#0b6a4d;--bc-ph:#5f7d71;--bc-disabled:#5a776b;--bc-danger:#a8201a;--bc-ok:#146c3d;--bc-warn:#7a4f00;--bc-glow:0 4px 18px rgba(15,122,90,.14);--bc-scheme:light}
html[data-bc-theme="cyberpunk"]{--bc-bgcolor:#0d0221;--bc-bg:linear-gradient(150deg,#240046,#0d0221 55%,#3a0a3e);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(14,3,34,.96);--bc-card:rgba(28,8,56,.94);--bc-card2:rgba(255,255,255,.08);--bc-input:#240a47;--bc-border:rgba(255,46,151,.55);--bc-accent:#ffe900;--bc-accent2:#ff2e97;--bc-text:#f4ecff;--bc-muted:#c9b4ee;--bc-onaccent:#1a0a2e;--bc-link:#5cf0ff;--bc-ph:#b49ad9;--bc-disabled:#a893cc;--bc-danger:#ff8fa8;--bc-ok:#7dffb0;--bc-warn:#ffe066;--bc-glow:0 0 22px rgba(255,46,151,.3);--bc-scheme:dark}
html[data-bc-theme="eink"]{--bc-bgcolor:#efefef;--bc-bg:#efefef;--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(245,245,245,.98);--bc-card:#fafafa;--bc-card2:rgba(0,0,0,.06);--bc-input:#ffffff;--bc-border:rgba(0,0,0,.5);--bc-accent:#222222;--bc-accent2:#555555;--bc-text:#111111;--bc-muted:#444444;--bc-onaccent:#ffffff;--bc-link:#003c9e;--bc-ph:#5c5c5c;--bc-disabled:#666666;--bc-danger:#a00000;--bc-ok:#0b5d1e;--bc-warn:#6b4600;--bc-glow:none;--bc-scheme:light}
html[data-bc-theme="royal"]{--bc-bgcolor:#0a1226;--bc-bg:linear-gradient(160deg,#142048,#0a1226 60%,#1a1630);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(10,18,38,.96);--bc-card:rgba(18,28,58,.94);--bc-card2:rgba(255,255,255,.07);--bc-input:#16224a;--bc-border:rgba(230,184,74,.4);--bc-accent:#e6b84a;--bc-accent2:#7aa2ff;--bc-text:#f6f1e3;--bc-muted:#cdbf98;--bc-onaccent:#1b1300;--bc-link:#f1cd7a;--bc-ph:#a99f80;--bc-disabled:#a69d82;--bc-danger:#ff9b9b;--bc-ok:#88e0a6;--bc-warn:#ffd37a;--bc-glow:0 4px 24px rgba(230,184,74,.16);--bc-scheme:dark}
html[data-bc-theme="candy"]{--bc-bgcolor:#fff0f7;--bc-bg:linear-gradient(150deg,#fff5fa,#f3e1ff 55%,#ffe0ec);--bc-overlay:none;--bc-overlay-size:auto;--bc-bar:rgba(255,244,250,.95);--bc-card:rgba(255,255,255,.96);--bc-card2:rgba(176,20,122,.07);--bc-input:#ffffff;--bc-border:rgba(140,40,110,.34);--bc-accent:#b0147a;--bc-accent2:#6a3fd0;--bc-text:#3a1233;--bc-muted:#6c3a62;--bc-onaccent:#ffffff;--bc-link:#8a0f66;--bc-ph:#7d5a76;--bc-disabled:#7a5a73;--bc-danger:#a8201a;--bc-ok:#146c3d;--bc-warn:#7a4f00;--bc-glow:0 4px 18px rgba(176,20,122,.14);--bc-scheme:light}

/* ---- application layer: every surface/text reads the variables ---- */
html[data-bc-theme]{color-scheme:var(--bc-scheme)}
html[data-bc-theme] body{background:var(--bc-bgcolor)!important;color:var(--bc-text)!important}
html[data-bc-theme] .background{background:var(--bc-bg)!important;opacity:1!important;filter:none!important;animation:none!important}
html[data-bc-theme] .overlay{background:var(--bc-overlay)!important;background-size:var(--bc-overlay-size,auto)!important}
/* text */
html[data-bc-theme] body :is(*):not(svg *){color:var(--bc-text)!important}
html[data-bc-theme] body :is(small,.hint,.form-note,.bc-set-note,.menu-title,.eyebrow,.student-ai-kicker,.bck-kicker,.bck-muted,.bch-meta span,.bch-stat span,.bch-grow p,.page-header p,.student-ai-choice small,.mock-v8-card-text small,.quick-card small,.history-table-head span,.stat-label,.user-role,.card p,.card small,.empty-text,.muted,[class*="muted"],[class*="-sub"],[class*="subtitle"],[class*="caption"],[class*="hint"],[class*="-note"],[class*="meta"]){color:var(--bc-muted)!important}
html[data-bc-theme] body :is(a:not([class]),a.bc-link,.link-btn,.edu-link){color:var(--bc-link)!important}
html[data-bc-theme] body :is(.danger,.danger-btn,.bch-btn.danger,.profile-logout,[class*="error"],[class*="danger"],.bct-err){color:var(--bc-danger)!important}
html[data-bc-theme] body :is([class*="success"],.bct-ok,.bck-chip.ok,.student-ai-online:not(.bct-warn)){color:var(--bc-ok)!important}
html[data-bc-theme] body :is(.bct-warn,[class*="warn"],.bck-chip.warn){color:var(--bc-warn)!important}
html[data-bc-theme] body ::placeholder{color:var(--bc-ph)!important;opacity:1!important;-webkit-text-fill-color:var(--bc-ph)!important}
html[data-bc-theme] body :is(input,select,textarea,button):disabled,html[data-bc-theme] body :is(.disabled,[aria-disabled="true"]){color:var(--bc-disabled)!important;opacity:1!important;cursor:not-allowed}
html[data-bc-theme] body :is(input,textarea)::selection{background:var(--bc-accent);color:var(--bc-onaccent)}
html[data-bc-theme] ::selection{background:var(--bc-accent);color:var(--bc-onaccent)}
/* bars */
html[data-bc-theme] :is(.sidebar,.top-bar){background:var(--bc-bar)!important;border-color:var(--bc-border)!important}
/* surfaces */
html[data-bc-theme] body :is(.panel-card,.hero-card,.class-card,.chat-card,.modal-content,.profile-modal-content,.login-container,.student-ai-hero,.student-academic-head,.student-ai-setup,.student-ai-chat,.student-grade-card,.student-settings-grid section,.j3-toolbar,.teacher-setting-card,.card,.exam-card,.stat-card,.quick-card,.edu-support-card,.edu-chat-bubble,.chat-bubble,.mock-v8-card,.bch-card,.bch-stat,.bch-empty,.connection-state,.history-card,.notes-tree,.notes-list,.doc-catalog-v5,.doc-editor-v5,.journal-empty,.welcome-screen .welcome-card,.bck-hero,.bck-card,.bck-toast,.bck-panel,.bck-stat,.bck-row,.bck-tabs,.bck-modal-box,.bck-head,.bch-sec,.bck-hwlist,.bck-table,.bch-svg,.bck-select,.student-ai-online,.ai-live,.empty-icon,.profile-photo-placeholder,.student-ai-number,.bc-theme-card){background:var(--bc-card)!important;border-color:var(--bc-border)!important;box-shadow:var(--bc-glow)}
html[data-bc-theme] body :is(.menu-icon,.card-icon,.stat-icon,.badge,.status-dot,.soft-btn,.ghost-btn,.top-back-btn,.profile-close,.top-nav-btn,.back-button,.chat-composer,.notes-search,.edu-support-secondary,.edu-support-contact-note,.modal-btn.cancel,.secondary-button,.bch-btn:not(.primary),.bch-pill,.remember-device,.bc-theme-card,.mock-v8-icon,.mock-v8-badge,.doc-badge-v5,.bch-ico,.bch-bar,.note-folder-btn,.doc-item-v5,.student-ai-choice,.chat-suggestions button,.doc-cats-v5 button,.setting-choice,.bck-chip,.bck-btn:not(.primary),.bck-tab,.bck-pill,.history-table-head){background:var(--bc-card2)!important;border-color:var(--bc-border)!important}
html[data-bc-theme] body :is(input,select,textarea,option,.bch-input,.bc-server-input,.bck-input){background:var(--bc-input)!important;border-color:var(--bc-border)!important}
html[data-bc-theme] body :is(.menu-btn:hover,.menu-btn.active,.top-nav-btn.active,.note-folder-btn.active,.doc-item-v5.active,button.active:not(.bc-theme-card)){background:color-mix(in srgb,var(--bc-accent) 24%,var(--bc-card))!important;border-color:var(--bc-accent)!important}
html[data-bc-theme] body :is(.menu-btn:not(:hover):not(.active)){background:transparent!important}
/* primary (accent) surfaces: text = on-accent */
html[data-bc-theme] body :is(.main-button,.primary-btn,.profile-save,.modal-btn.start,.photo-button,.bch-btn.primary,.bcs-btn.pri,.bcs-tab.on,.bcs-msg.me,.bcpr-btn.pri,.bcpr-tab.on,.bt-btn.pri,.tw-btn.pri,.tw-tab.on,.tw-chip.on,.bcx-btn.pri,.bcx-seg.on,.tw5-av,.tw5-ai,.bt-chips button.on,.bck-btn.primary,.edu-support-primary,.student-ai-start button,.logo,.avatar,.modal-icon,.bck-orb,.hero-orb,.edu-chat-avatar,.chat-avatar,.profile-avatar-large,.bc-lang-switch button.active,.hero-actions .primary-btn){background:linear-gradient(135deg,var(--bc-accent),var(--bc-accent2))!important;border-color:transparent!important}
html[data-bc-theme] body :is(.main-button,.primary-btn,.profile-save,.modal-btn.start,.photo-button,.bch-btn.primary,.bcs-btn.pri,.bcs-tab.on,.bcs-msg.me,.bcpr-btn.pri,.bcpr-tab.on,.bt-btn.pri,.tw-btn.pri,.tw-tab.on,.tw-chip.on,.bcx-btn.pri,.bcx-seg.on,.tw5-av,.tw5-ai,.bt-chips button.on,.bck-btn.primary,.edu-support-primary,.student-ai-start button,.logo,.logo *,.avatar,.avatar *,.modal-icon,.bck-orb,.hero-orb,.edu-chat-avatar,.chat-avatar,.profile-avatar-large,.bc-lang-switch button.active,.hero-actions .primary-btn,.main-button *,.primary-btn *,.bck-btn.primary *,.hero-orb *,.modal-icon *,.bck-orb *,.edu-chat-avatar *,.chat-avatar *,.profile-avatar-large *,.photo-button *,.profile-save *,.modal-btn.start *,.bch-btn.primary *,.edu-support-primary *,.student-ai-start button *){color:var(--bc-onaccent)!important}
html[data-bc-theme] body :is(.eyebrow,.student-ai-kicker,.bck-kicker){color:var(--bc-muted)!important}
html[data-bc-theme] body :is(.menu-btn.active,.menu-btn:hover) :is(span,div){color:var(--bc-text)!important}
html[data-bc-theme] body :is(input,select,textarea):focus{border-color:var(--bc-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--bc-accent) 28%,transparent)!important;outline:none}
html[data-bc-theme] body :is(h1,h2,h3,h4) {color:var(--bc-text)!important}
html[data-bc-theme] body table :is(th,td){border-color:var(--bc-border)!important}
html[data-bc-theme] body table th{background:var(--bc-card2)!important}
html[data-bc-theme] body table td{background:transparent}
html[data-bc-theme] body table{background:var(--bc-card)!important}
html[data-bc-theme] svg text,html[data-bc-theme] svg tspan{fill:var(--bc-text)!important}
html[data-bc-theme] svg :is(line,.grid,.axis){stroke:var(--bc-border)}
html[data-bc-theme] body hr{border-color:var(--bc-border)!important}
html[data-bc-theme] body [class*="toast"],html[data-bc-theme] body [role="alert"],html[data-bc-theme] body [role="status"]{background:var(--bc-card)!important;border-color:var(--bc-border)!important}
html[data-bc-theme] .modal.active,html[data-bc-theme] .modal-overlay,html[data-bc-theme] .profile-modal.show{background:color-mix(in srgb,var(--bc-bgcolor) 72%,transparent)!important}
html[data-bc-theme] body :is(.off,.locked,.is-locked,[class*="locked"]){opacity:1!important}
html[data-bc-theme] body :is(input,textarea)[readonly]{color:var(--bc-muted)!important;opacity:1!important}
html[data-bc-theme] body :is(.notes-empty,.empty-state,.journal-empty,[class*="-empty"]){opacity:1!important}
html[data-bc-theme] body :is(.bck-fchip.on,.bch-tabs button.active,.bck-toast,.bct-btn:hover){background:var(--bc-accent)!important;color:var(--bc-onaccent)!important;border-color:transparent!important}
html[data-bc-theme] body :is(small,.hint,[class*="muted"],[class*="meta"],[class*="note"],[class*="hint"]){opacity:1!important}
html[data-bc-theme] body .bc-swatch>b.bc-sw-aa{color:var(--sw-t)!important;background:var(--sw-c)!important}
html[data-bc-theme="neon"] :is(.logo,h1,.logo-name){text-shadow:0 0 12px var(--bc-accent)}
html[data-bc-theme="terminal"] *{font-family:Consolas,"Courier New",monospace!important;border-radius:3px!important}
html[data-bc-theme="contrast"] :is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--bc-accent)!important;outline-offset:2px}
html[data-bc-theme="contrast"] body :is(.sidebar,.top-bar,.panel-card,.modal-content,.card,input,select,textarea,button){border:2px solid var(--bc-border)!important}
/* stage 2B: server address row in settings */
.bc-server-row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.bc-server-input{flex:1;min-width:200px;padding:10px 12px;border-radius:10px;border:1px solid var(--bc-border,rgba(128,128,128,.4));background:var(--bc-card,transparent);color:inherit;font:inherit}

/* stage 4A: achievement toast keeps contrast in light themes */
html[data-bc-theme] body #notification{background:var(--bc-card2,var(--bc-card))!important;color:var(--bc-text)!important;border:1px solid var(--bc-border)!important}

/* sidebars: no visible scrollbars, no sideways scroll (still scrollable by wheel/touch/keys) */
.sidebar,.sidebar *,.sidebar nav,.side-nav,.menu-list{scrollbar-width:none!important;-ms-overflow-style:none!important}
.sidebar{overflow-x:hidden!important;overflow-y:auto!important;min-width:0;box-sizing:border-box}
.sidebar *{overflow-x:clip!important;min-width:0;box-sizing:border-box}
.sidebar .student-main-nav-v10,.sidebar .student-sidebar-bottom-v10,.sidebar [class*="-nav-v"]{overflow-x:hidden!important;overflow-y:auto!important}
.sidebar::-webkit-scrollbar,.sidebar *::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}
.sidebar *::-webkit-scrollbar-thumb,.sidebar *::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-track,.sidebar::-webkit-scrollbar-button,.sidebar *::-webkit-scrollbar-button{display:none!important;width:0!important;height:0!important}
