/* ws-site-kit — LIGHT overlay for the shared shell (2026-10-29, family56 bundle D).
   Serves wiastandards.com · wihp.wiastandards.com · wihp-ai.wiastandards.com (and any other page that loads
   /assets/site-kit/ws-site-kit.js — ~880 sub-standard pages, riemann). ORIGINAL = the kit's own look: rainbow
   header/footer with WHITE text, dark mobile drawer rgba(15,23,42,.97), dark family modal rgba(45,35,80,.85),
   dark breadcrumb bar; language modal already white; AI assistant modal (/ai-assistant/wia-ai-modal.css) dark #1a1a2e.
   The kit injects its rules at runtime as <style id="ws-site-kit-styles"> appended to <head> (ws-site-kit.js:163-333,
   init() 442) — i.e. AFTER this file — so every selector here carries the extra html[data-theme="light"] (0,1,1+)
   to beat the kit's (0,1,0). The kit uses !important only on .ws-header{padding;margin;height;box-shadow;border},
   .ws-nav-login{background;border;color;padding} and body{padding-top} → only .ws-nav-login needs !important here.
   KIT FILE IS NOT TOUCHED. Nothing here applies unless <html data-theme="light"> (engine sets it before first paint).
   `color-scheme` is set by the engine, not here.

   Light palette:  page #f7f8fb · card #fff · card-2 #f1f5f9 · text #0f172a (16:1) · text-2 #334155 (10:1)
     muted #475569 (7.5:1) · faint #64748b (4.7:1) · line #e2e8f0 (decorative) · line-strong #7b879c (3.6:1, inputs/chips)
     blue #005a9e (6.9:1) · indigo #4338ca (7.4:1) · gold #854d0e (7.5:1) · magenta #a21caf (6.1:1)
   Rainbow stays a rainbow — pastel stops with dark text (lowest-luminance stop #d6e4ff ≈ L 0.78 → #0f172a ≥ 13:1):
     270deg: #ffd9d9 #fff0bf #d2f0fb #ffdcf7 #d6e4ff #e4dcff #cdefef #ffd9d9   (same order as the kit's 8 stops)
   Not themed (not kit CSS): wiabook promo-banner loader output, wia-a11y-toolkit panel, wia-scan-button (shadow DOM —
   it picks its own tone from the ancestor background colour, so it turns light with the header automatically). */

/* ===================================================================
   HEADER  (.ws-header > .ws-header-content, fixed 64px, generateHeader() ws-site-kit.js:343)
   =================================================================== */
html[data-theme="light"] .ws-header {
    background-image: linear-gradient(270deg, #ffd9d9, #fff0bf, #d2f0fb, #ffdcf7, #d6e4ff, #e4dcff, #cdefef, #ffd9d9);
    /* background-size / animation wsRainbow 15s stay as the kit set them */
    border-bottom-color: rgba(15, 23, 42, 0.12);
}
html[data-theme="light"] .ws-logo { color: #0f172a; }
html[data-theme="light"] .ws-logo-text { color: #0f172a; }
html[data-theme="light"] .ws-logo-text span { color: #334155; }
html[data-theme="light"] .ws-logo-badge { background: rgba(15, 23, 42, 0.08); color: #0f172a; }

html[data-theme="light"] .ws-nav-link { color: #1e293b; }
html[data-theme="light"] .ws-nav-link:hover { color: #0f172a; background: rgba(15, 23, 42, 0.08); }

/* language pill (desktop .ws-desktop-nav .ws-nav-lang and phone .ws-mobile-header-lang.ws-nav-lang share the class) */
html[data-theme="light"] .ws-nav-lang {
    background: rgba(255, 255, 255, 0.55);
    border-color: rgba(15, 23, 42, 0.45);   /* ≈ #7b879c on the pastel stops → 3:1 */
    color: #0f172a;
}
html[data-theme="light"] .ws-nav-lang:hover { background: rgba(255, 255, 255, 0.85); }

/* the 1px separator is an inline style= div (generateHeader(): width:1px;height:22px;background:rgba(255,255,255,.15)) → !important */
html[data-theme="light"] .ws-desktop-nav > div[style] { background: rgba(15, 23, 42, 0.2) !important; }

/* kit declares background/border/color with !important (ws-site-kit.js:197) → !important here too; (0,1,1) beats its (0,1,0) */
html[data-theme="light"] .ws-nav-login {
    background: rgba(255, 255, 255, 0.55) !important;
    border: 1px solid rgba(15, 23, 42, 0.45) !important;
    color: #0f172a !important;
}
html[data-theme="light"] .ws-nav-login:hover { background: rgba(255, 255, 255, 0.85) !important; }

html[data-theme="light"] .ws-hamburger-line { background: #0f172a; }

/* mobile drawer (≤1023px) */
html[data-theme="light"] .ws-mobile-nav {
    background: rgba(255, 255, 255, 0.97);
    border-bottom-color: #e2e8f0;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
}
html[data-theme="light"] .ws-mobile-nav a { color: #1e293b; }
html[data-theme="light"] .ws-mobile-nav a:hover { background: rgba(67, 56, 202, 0.1); color: #0f172a; }

/* breadcrumb bar (only some sub pages render it) */
html[data-theme="light"] .ws-breadcrumb-bar { background: #f1f5f9; border-bottom-color: #e2e8f0; }
html[data-theme="light"] .ws-breadcrumb a { color: #475569; }
html[data-theme="light"] .ws-breadcrumb a:hover { color: #005a9e; }
html[data-theme="light"] .ws-bc-sep { color: #94a3b8; }
html[data-theme="light"] .ws-bc-current { color: #0f172a; }

/* ===================================================================
   FOOTER  (.ws-footer, generateFooter() ws-site-kit.js:376)
   =================================================================== */
html[data-theme="light"] .ws-footer {
    background-image: linear-gradient(90deg, #ffd9d9, #fff0bf, #d2f0fb, #ffdcf7, #d6e4ff, #e4dcff, #cdefef, #ffd9d9);
    border-top-color: rgba(15, 23, 42, 0.12);
    color: #0f172a;
}
html[data-theme="light"] .ws-footer-logo-text { color: #0f172a; }
html[data-theme="light"] .ws-footer-logo-text span { color: #334155; }
html[data-theme="light"] .ws-footer-brand p { color: #334155; }
/* "Operated by SmileStory" link is inline style="color:#fff;text-decoration:underline" → !important */
html[data-theme="light"] .ws-footer-brand p a[style] { color: #0f172a !important; }
html[data-theme="light"] .ws-footer-philosophy { color: #854d0e; }
html[data-theme="light"] .ws-footer-stats { color: #0f172a; }

html[data-theme="light"] .ws-footer-section h3,
html[data-theme="light"] .ws-footer-family h3 { color: #0f172a; }
html[data-theme="light"] .ws-footer-section a { color: #334155; }
html[data-theme="light"] .ws-footer-section a:hover { color: #0f172a; text-shadow: none; text-decoration: underline; }
html[data-theme="light"] .ws-footer-family-sub,
html[data-theme="light"] .ws-footer-stats-small { color: #475569; }

html[data-theme="light"] .ws-family-btn {
    background: rgba(255, 255, 255, 0.6);
    border-color: rgba(15, 23, 42, 0.45);
    color: #0f172a;
}
html[data-theme="light"] .ws-family-btn:hover { background: #fff; border-color: #0f172a; }

html[data-theme="light"] .ws-social-label { color: #a21caf; text-shadow: none; }
/* .ws-donate-btn (red gradient + white) is no longer rendered (kit comment 2026-10-21) — left alone */

html[data-theme="light"] .ws-footer-bottom { border-top-color: rgba(15, 23, 42, 0.15); }
html[data-theme="light"] .ws-footer-bottom p { color: #334155; }
html[data-theme="light"] .ws-footer-bottom a { color: #0f172a; text-decoration: underline; }
/* self-audit caption is inline style="font-size:10px;color:#94a3b8" (2.3:1 on pastel) → !important */
html[data-theme="light"] .ws-footer-bottom div[style*="color:#94a3b8"] { color: #475569 !important; }

/* ===================================================================
   FAMILY SITES MODAL  (#ws-familyModal.ws-family-modal, generateFamilyModal() ws-site-kit.js:427)
   =================================================================== */
html[data-theme="light"] .ws-family-modal-content {
    background: rgba(255, 255, 255, 0.96);
    border-color: #e2e8f0;
    box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18);
}
html[data-theme="light"] .ws-family-modal-header { color: #0f172a; border-bottom-color: #e2e8f0; }
html[data-theme="light"] .ws-family-close { color: #475569; }
html[data-theme="light"] .ws-family-close:hover { color: #b91c1c; }
html[data-theme="light"] .ws-family-item { background: #f7f8fb; border-color: #e2e8f0; }
html[data-theme="light"] .ws-family-item:hover { background: #eef2ff; border-color: #4338ca; }
html[data-theme="light"] .ws-family-name { color: #0f172a; }
html[data-theme="light"] .ws-family-url { color: #475569; }

/* ===================================================================
   LANGUAGE MODAL — wiastandards/wihp-ai: #wiaNavLangModal (components/language-modal/language-modal.js:301,
   injected <style id="wia-nav-lang-modal-styles">), wihp: .slm-* (soom-language-modal.js:263, <style id="soom-lang-styles">).
   Both are already white cards; only the overlay and the low-contrast borders change.
   =================================================================== */
html[data-theme="light"] #wiaNavLangModal,
html[data-theme="light"] .slm-overlay { background: rgba(15, 23, 42, 0.55); }
html[data-theme="light"] .wia-nav-modal-content,
html[data-theme="light"] .slm-container { box-shadow: 0 24px 56px rgba(15, 23, 42, 0.25); }
/* header gradient #667eea→#764ba2 with white text: left end is 3.7:1 for 1.8rem bold — darken a step */
html[data-theme="light"] .wia-nav-modal-header,
html[data-theme="light"] .slm-header { background: linear-gradient(135deg, #4f5fd6, #5e3a8a); }
html[data-theme="light"] .wia-nav-modal-tab,
html[data-theme="light"] .slm-filter { border-color: #7b879c; color: #0f172a; }
html[data-theme="light"] .wia-nav-modal-tab.active,
html[data-theme="light"] .slm-filter.active { background: linear-gradient(135deg, #4f5fd6, #5e3a8a); border-color: #4338ca; }
/* search input: kit sets border with !important (language-modal.js) → !important here too */
html[data-theme="light"] .wia-nav-lang-search { border-color: #7b879c !important; color: #0f172a; background: #fff; }
html[data-theme="light"] .slm-search { border-color: #7b879c; color: #0f172a; }
html[data-theme="light"] .wia-nav-lang-search:focus,
html[data-theme="light"] .slm-search:focus { border-color: #4338ca !important; }
html[data-theme="light"] .wia-nav-lang-count,
html[data-theme="light"] .slm-count { color: #4338ca; }
html[data-theme="light"] .wia-nav-lang-item,
html[data-theme="light"] .slm-item { border-color: #7b879c; color: #0f172a; }
html[data-theme="light"] .wia-nav-lang-item:hover,
html[data-theme="light"] .wia-nav-lang-item.selected,
html[data-theme="light"] .slm-item:hover,
html[data-theme="light"] .slm-item.current { border-color: #4338ca; }
html[data-theme="light"] .wia-nav-modal-footer,
html[data-theme="light"] .slm-footer { color: #475569; }
html[data-theme="light"] .wia-nav-modal-footer a,
html[data-theme="light"] .slm-footer a { color: #4338ca; }
/* apology line is inline style="…color:#888" (3.5:1) → !important */
html[data-theme="light"] .slm-footer #lmApology[style] { color: #475569 !important; }
html[data-theme="light"] .slm-empty { color: #475569; }

/* ===================================================================
   AI ASSISTANT MODAL  (/ai-assistant/wia-ai-modal.css — loaded by wiastandards index.html:928; dark #1a1a2e / #16213e / #0a0a0f)
   The cyan→purple brand gradient (#00d4ff→#7b2cbf, white text; left end 1.6:1) is darkened to #0077b6→#5b21b6 (white ≥ 4.6:1).
   =================================================================== */
html[data-theme="light"] .wia-ai-fab {
    background: linear-gradient(135deg, #0077b6, #5b21b6);
    box-shadow: 0 4px 20px rgba(0, 90, 158, 0.35);
}
html[data-theme="light"] .wia-ai-overlay { background: rgba(15, 23, 42, 0.55); }
html[data-theme="light"] .wia-ai-modal {
    background: #fff;
    border-color: #e2e8f0;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.25);
}
html[data-theme="light"] .wia-ai-header { background: linear-gradient(135deg, #0077b6 0%, #5b21b6 100%); }
html[data-theme="light"] .wia-resize-handle:hover { background: rgba(0, 90, 158, 0.25); }
html[data-theme="light"] .wia-ai-tabs { background: #f1f5f9; border-bottom-color: #e2e8f0; }
html[data-theme="light"] .wia-ai-tab { color: #475569; }
html[data-theme="light"] .wia-ai-tab:hover { background: rgba(0, 90, 158, 0.08); color: #005a9e; }
html[data-theme="light"] .wia-ai-tab.active { background: rgba(0, 90, 158, 0.1); color: #005a9e; border-bottom-color: #005a9e; }
html[data-theme="light"] .wia-ai-tab .badge { background: #15803d; }
html[data-theme="light"] .wia-ai-api-section { background: #f1f5f9; border-bottom-color: #e2e8f0; }
html[data-theme="light"] .wia-ai-api-section input,
html[data-theme="light"] .wia-input-area input {
    background: #fff;
    border-color: #7b879c;
    color: #0f172a;
}
html[data-theme="light"] .wia-ai-api-section input:focus,
html[data-theme="light"] .wia-input-area input:focus { border-color: #005a9e; }
html[data-theme="light"] .wia-input-area input::placeholder { color: #64748b; }
html[data-theme="light"] .wia-save-btn,
html[data-theme="light"] .wia-send-btn,
html[data-theme="light"] .wia-message.user .wia-message-content { background: linear-gradient(135deg, #0077b6, #5b21b6); }
html[data-theme="light"] .wia-get-key { color: #005a9e; }
html[data-theme="light"] .wia-key-note { background: #f1f5f9; border-bottom-color: #e2e8f0; color: #475569; }
html[data-theme="light"] .wia-collapsible { border-bottom-color: #e2e8f0; }
html[data-theme="light"] .wia-section-header {
    background: linear-gradient(135deg, rgba(0, 90, 158, 0.08), rgba(91, 33, 182, 0.08));
    color: #005a9e;
}
html[data-theme="light"] .wia-section-header:hover { background: rgba(0, 90, 158, 0.12); }
html[data-theme="light"] .wia-toggle-icon { color: #64748b; }
html[data-theme="light"] .wia-section-content,
html[data-theme="light"] .wia-ai-body { background: #f7f8fb; }
html[data-theme="light"] .wia-tool-btn,
html[data-theme="light"] .wia-tools-row .wia-tool-btn {
    background: #fff;
    border-color: #7b879c;
    color: #334155;
}
html[data-theme="light"] .wia-tool-btn:hover,
html[data-theme="light"] .wia-tools-row .wia-tool-btn:hover {
    background: rgba(0, 90, 158, 0.08);
    border-color: #005a9e;
    color: #005a9e;
}
html[data-theme="light"] .wia-tools-row { border-top-color: #e2e8f0; }
html[data-theme="light"] .wia-message.assistant .wia-message-content { background: #fff; color: #0f172a; border-color: #e2e8f0; }
html[data-theme="light"] .wia-message-content a { color: #005a9e; }
html[data-theme="light"] .wia-input-area { background: #fff; border-top-color: #e2e8f0; }
html[data-theme="light"] .wia-welcome h4 { color: #005a9e; }
html[data-theme="light"] .wia-welcome p { color: #475569; }

/* wiastandards.com — site theme overlay, PAGE BODY ONLY (2026-10-29, family56 bundle D).
   ORIGINAL = DARK. The shared shell (#ws-header · mobile drawer · #ws-footer · family/language/AI modals) is drawn
   at runtime by /assets/site-kit/ws-site-kit.js and is themed by ../wskit/kit-light.css — nothing shell-related here.
   Pages covered:
     A) index.html (+ 88 language copies, same inline <style> 15-265): hard-coded #0a0a0f body, white text,
        154 hex values, no :root tokens — cards #1a1a2e→#16213e, accent #00d4ff / #7b2cbf, gold #ffd700
     B) partners.html · blockchain-lecture.html: :root {--bg --surface --surface2 --border --text --muted --accent --gold
        (+ --green --purple --pink --cyan --orange)} #060a14 family
     C) sub-standard shell (872 × <slug>/index.html, same kit; ~100 different inline templates — three samples read):
        cbdc-type :root {--bg --surface --surface-light --primary --primary-dark --text --text-muted --border},
        WIA-DATA_QUALITY-type :root {--bg --bg-card --text --text-secondary --primary --primary-dark --accent --border --success --shadow},
        images-type (no tokens: gradient body + glass .container + .link cards). Their own <header> is hidden by the kit
        (header:not(.ws-header){display:none!important}) so .logo/.nav-controls/.lang-toggle are not themed.
   Every rule is scoped to html[data-theme="light"] (engine sets it before first paint). Load just before </head>,
   after the page's own <style>. `color-scheme` is set by the engine, not here. !important only where an inline
   style= is in the way (each line says why).

   Light palette (contrast on #f7f8fb / #fff):
     page #f7f8fb · card #fff · card-2 #f1f5f9 · text #0f172a (16:1) · text-2 #334155 (10:1) · muted #475569 (7.5:1)
     faint #64748b (4.7:1) · line #e2e8f0 (decorative) · line-strong #7b879c (3.6:1, inputs/chips/buttons)
     blue #005a9e (6.9:1) · blue-2 #1d4ed8 (6.3:1) · purple #5b21b6 (9.6:1) / #6d28d9 (6.6:1) · green #15803d (5.0:1)
     gold #854d0e (7.5:1) / #b45309 (4.9:1) · orange #c2410c (5.3:1) · red #b91c1c (5.9:1) · cyan #0e7490 (5.4:1)
     brand gradient #00d4ff→#7b2cbf becomes #005a9e→#5b21b6 (white text ≥ 6.9:1 on both ends)
   KEPT DARK on purpose (self-contained d3 visualisation with SVG fills/gradient defs written by script, index.html 1138-1167):
     .network-section (+ header/legend/tooltip/controls) and the .drilldown-overlay/.drilldown-panel that opens from it,
     plus the .bigbang-message inside it. Only their outer border/background are made opaque so the light page
     does not bleed through. */

/* ===== tokens (families B and C share names; harmless on index) ===== */
html[data-theme="light"] {
    --wst-bg: #f7f8fb;
    --wst-card: #fff;
    --wst-card-2: #f1f5f9;
    --wst-text: #0f172a;
    --wst-text-2: #334155;
    --wst-muted: #475569;
    --wst-faint: #64748b;
    --wst-line: #e2e8f0;
    --wst-line-strong: #7b879c;
    --wst-blue: #005a9e;
    --wst-purple: #5b21b6;
    --wst-green: #15803d;
    --wst-gold: #854d0e;
    --wst-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
    --wst-shadow-lg: 0 12px 32px rgba(15, 23, 42, 0.14);
    --wst-grad: linear-gradient(135deg, #005a9e, #5b21b6);
    /* family B (partners · blockchain-lecture) */
    --bg: #f7f8fb;
    --surface: #fff;
    --surface2: #f1f5f9;
    --border: #cbd5e1;          /* cards/dividers; interactive borders get #7b879c below */
    --text: #0f172a;
    --muted: #475569;
    --accent: #1d4ed8;
    --gold: #854d0e;            /* text uses; the filled .btn-primary keeps #f59e0b below */
    --green: #15803d;
    --purple: #6d28d9;
    --pink: #be185d;
    --cyan: #0e7490;
    --orange: #c2410c;
    /* family C (sub-standard templates) — --primary / --primary-dark are each page's identity colour and are NOT
       replaced; where they colour TEXT they are darkened with color-mix() below */
    --surface-light: #f1f5f9;
    --bg-card: #fff;
    --text-muted: #475569;
    --text-secondary: #475569;
    --success: #15803d;
    --shadow: rgba(15, 23, 42, 0.1);
}
html[data-theme="light"] body { background: var(--wst-bg); color: var(--wst-text); }
html[data-theme="light"] ::selection { background: rgba(0, 90, 158, 0.18); }
html[data-theme="light"] .gradient-text { background: linear-gradient(90deg, #005a9e, #5b21b6); -webkit-background-clip: text; background-clip: text; }

/* ===================================================================
   A — index.html
   =================================================================== */
/* hero band (section.hero directly under body; :has() keeps partners/blockchain's transparent .hero untouched) */
html[data-theme="light"] .hero:has(.hero-philosophy),
html[data-theme="light"] .hero:has(.philosophy),
html[data-theme="light"] .hero:has(.hero-description) {
    background: linear-gradient(135deg, #eef2ff 0%, #e0f2fe 50%, #f5f3ff 100%);
    border-bottom: 1px solid var(--wst-line);
}
html[data-theme="light"] .hero::before { background: radial-gradient(circle at 50% 50%, rgba(0, 90, 158, 0.08) 0%, transparent 50%); }
html[data-theme="light"] .hero h1 { color: var(--wst-text); }
html[data-theme="light"] .hero p { color: var(--wst-muted); }
html[data-theme="light"] .hero-philosophy { color: var(--wst-gold); }
html[data-theme="light"] .hero-subtitle { color: var(--wst-muted); }
html[data-theme="light"] .hero-stat-num { background: var(--wst-grad); -webkit-background-clip: text; background-clip: text; }
html[data-theme="light"] .hero-stat-label { color: var(--wst-muted); }

/* tabs */
html[data-theme="light"] .tab-btn { border-color: var(--wst-line-strong); color: var(--wst-text-2); background: var(--wst-card); }
html[data-theme="light"] .tab-btn:hover { border-color: var(--wst-blue); color: var(--wst-blue); }
html[data-theme="light"] .tab-btn.active { background: var(--wst-grad); border-color: transparent; color: #fff; }

/* scoped to index's .tabs-container — blockchain-lecture and cbdc-type sub pages also have a .section-title (ink-coloured) */
html[data-theme="light"] .tabs-container .section-title { color: var(--wst-blue); }
html[data-theme="light"] .section-subtitle { color: var(--wst-muted); }

/* level headers (2.2rem/900 → 3:1 needed; #10b981 was 2.4:1 on light) */
html[data-theme="light"] .level-humanity { color: #15803d; border-color: #15803d; background: linear-gradient(135deg, rgba(21, 128, 61, 0.08), rgba(21, 128, 61, 0.03)); }
html[data-theme="light"] .level-technology { color: #1d4ed8; border-color: #1d4ed8; background: linear-gradient(135deg, rgba(29, 78, 216, 0.08), rgba(29, 78, 216, 0.03)); }
html[data-theme="light"] .level-world { color: #7e22ce; border-color: #7e22ce; background: linear-gradient(135deg, rgba(126, 34, 206, 0.08), rgba(126, 34, 206, 0.03)); }

/* browse-by-category cards: per-level accents are custom props set by the sibling selector → same selector, higher specificity */
html[data-theme="light"] .browse-cat-card {
    background: var(--wst-card);
    border-color: var(--card-accent, var(--wst-line));
    color: var(--wst-text);
    box-shadow: var(--wst-shadow);
}
html[data-theme="light"] .browse-cat-card:hover { box-shadow: var(--wst-shadow-lg); }
html[data-theme="light"] .bcc-name { color: var(--wst-text); }
html[data-theme="light"] .bcc-count { color: var(--count-color, var(--wst-blue)); }
html[data-theme="light"] .bcc-count::after { opacity: 0.85; color: var(--wst-muted); }
html[data-theme="light"] .level-humanity + .browse-cat-grid .browse-cat-card { --card-accent: rgba(21, 128, 61, 0.3); --card-accent-hover: #15803d; --card-glow: rgba(21, 128, 61, 0.15); --count-color: #15803d; }
html[data-theme="light"] .level-technology + .browse-cat-grid .browse-cat-card { --card-accent: rgba(29, 78, 216, 0.3); --card-accent-hover: #1d4ed8; --card-glow: rgba(29, 78, 216, 0.15); --count-color: #1d4ed8; }
html[data-theme="light"] .level-world + .browse-cat-grid .browse-cat-card { --card-accent: rgba(126, 34, 206, 0.3); --card-accent-hover: #7e22ce; --card-glow: rgba(126, 34, 206, 0.15); --count-color: #7e22ce; }
html[data-theme="light"] .browse-all-btn { background: var(--wst-grad); }
html[data-theme="light"] .browse-all-btn:hover { box-shadow: 0 8px 24px rgba(0, 90, 158, 0.3); }

/* standard cards */
html[data-theme="light"] .card { background: var(--wst-card); color: var(--wst-text); border-color: var(--wst-line); box-shadow: var(--wst-shadow); }
html[data-theme="light"] .card:hover { box-shadow: var(--wst-shadow-lg); border-color: rgba(0, 90, 158, 0.4); }
html[data-theme="light"] .card-id { color: var(--wst-faint); }
html[data-theme="light"] .card-desc { color: var(--wst-muted); }
html[data-theme="light"] .card-badge { color: #fff; }
html[data-theme="light"] .card-badge.done { background: #047857; }      /* was #10b981→#059669 (white 2.5:1) */
html[data-theme="light"] .card-badge.coming { background: #b45309; }    /* was #f59e0b→#d97706 (white 2.2:1) */
html[data-theme="light"] .card-badge.live { background: #6d28d9; }      /* was #8b5cf6→#7c3aed */

/* simulators · certifications · coin blocks */
html[data-theme="light"] .sim-section,
html[data-theme="light"] .cert-section,
html[data-theme="light"] .coin-hero { background: var(--wst-card); border: 1px solid var(--wst-line); box-shadow: var(--wst-shadow); }
html[data-theme="light"] .sim-title,
html[data-theme="light"] .cert-title,
html[data-theme="light"] .coin-name { color: var(--wst-blue); }
html[data-theme="light"] .sim-subtitle,
html[data-theme="light"] .coin-desc { color: var(--wst-muted); }
html[data-theme="light"] .sim-item { background: var(--wst-bg); color: var(--wst-text); border-color: var(--wst-line); }
html[data-theme="light"] .sim-item:hover { background: rgba(0, 90, 158, 0.08); border-color: rgba(0, 90, 158, 0.4); }
html[data-theme="light"] .sim-item-desc { color: var(--wst-muted); }
html[data-theme="light"] .cert-item { background: var(--wst-card-2); color: var(--wst-text); }
html[data-theme="light"] .cert-item:hover { background: rgba(0, 90, 158, 0.12); }
html[data-theme="light"] .cert-item.done { border-color: #15803d; }
html[data-theme="light"] .cert-item.coming { border-color: #b45309; opacity: 1; }
html[data-theme="light"] .coin-link { border-color: var(--wst-blue); color: var(--wst-blue); }
html[data-theme="light"] .coin-link:hover { background: var(--wst-blue); color: #fff; }

/* search */
html[data-theme="light"] .search-input { background: var(--wst-card); border-color: var(--wst-line-strong); color: var(--wst-text); }
html[data-theme="light"] .search-input:focus { border-color: var(--wst-blue); box-shadow: 0 0 0 3px rgba(0, 90, 158, 0.15); }
html[data-theme="light"] .search-input::placeholder { color: var(--wst-faint); }
html[data-theme="light"] .search-icon { color: var(--wst-faint); }
html[data-theme="light"] .search-results { background: var(--wst-card); border-color: #cbd5e1; box-shadow: var(--wst-shadow-lg); }
html[data-theme="light"] .search-result-item { border-bottom-color: var(--wst-line); }
html[data-theme="light"] .search-result-item:hover { background: #eef2ff; }
html[data-theme="light"] .search-result-info h4 { color: var(--wst-text); }
html[data-theme="light"] .search-result-info p,
html[data-theme="light"] .search-count { color: var(--wst-muted); }

/* network visualisation — stays dark (see header comment); make the shell opaque instead of 80% so #f7f8fb cannot show through */
html[data-theme="light"] .network-section { background: #0b1020; border-color: rgba(14, 116, 144, 0.5); box-shadow: var(--wst-shadow-lg); }
html[data-theme="light"] .network-legend { background: rgba(0, 0, 0, 0.35); color: #e2e8f0; }
/* drilldown overlay — stays dark too (its items/fills are tied to the network colours) */

/* inline colours in the light part of the page (index.html 707) → !important */
html[data-theme="light"] .sim-section p[style*="color: #666"] { color: var(--wst-muted) !important; }
html[data-theme="light"] .sim-section a[style*="color: #00d4ff"] { color: var(--wst-blue) !important; }
/* big "view all simulators" CTA: inline gradient #00d4ff→#7b2cbf + white (index.html 760) → !important */
html[data-theme="light"] a[style*="padding: 20px 50px"] { background: var(--wst-grad) !important; }
/* (the style="color:#00ffff|#00ff88|#ff9500|#00d4ff" spans and legend swatches all live inside the dark network/drilldown blocks — untouched) */

/* ===================================================================
   B — partners.html · blockchain-lecture.html (tokens above do most of it)
   =================================================================== */
html[data-theme="light"] body::before { opacity: 0.6; }   /* 40px grid lines rgba(59,130,246,.03) — a touch fainter on light */
html[data-theme="light"] .hero-eyebrow { color: var(--wst-gold); background: rgba(133, 77, 14, 0.08); border-color: rgba(133, 77, 14, 0.35); }
html[data-theme="light"] .hero h1 .chain { background: linear-gradient(135deg, #1d4ed8, #6d28d9, #be185d); -webkit-background-clip: text; background-clip: text; }
html[data-theme="light"] .hero-links .btn-primary { background: #f59e0b; color: #1a1206; }   /* filled gold keeps its original 9:1 look */
html[data-theme="light"] .hero-links .btn-ghost { border-color: var(--wst-line-strong); background: var(--wst-card); }
html[data-theme="light"] .stat-num { color: var(--accent); }
html[data-theme="light"] .section-tag { border-color: var(--wst-line-strong); }
html[data-theme="light"] .status-card,
html[data-theme="light"] .info-inner { box-shadow: var(--wst-shadow); }
html[data-theme="light"] .status-card .n { color: var(--wst-gold); }
html[data-theme="light"] .recruiting-banner { background: linear-gradient(135deg, rgba(245, 158, 11, 0.14), rgba(245, 158, 11, 0.04)); border-color: rgba(180, 83, 9, 0.35); }
html[data-theme="light"] .recruiting-dot { background: #b45309; box-shadow: 0 0 0 4px rgba(180, 83, 9, 0.18); }
html[data-theme="light"] .slot-card { border-color: var(--wst-line-strong); }
html[data-theme="light"] .slot-card .slot-mark { color: rgba(15, 23, 42, 0.4); }
html[data-theme="light"] .part-badge.part1 { background: rgba(29, 78, 216, 0.1); color: #1d4ed8; border-color: rgba(29, 78, 216, 0.35); }
html[data-theme="light"] .part-badge.part2 { background: rgba(109, 40, 217, 0.1); color: #6d28d9; border-color: rgba(109, 40, 217, 0.35); }
html[data-theme="light"] .sim-card { box-shadow: var(--wst-shadow); }
html[data-theme="light"] .sim-card:hover { border-color: #94a3b8; box-shadow: var(--wst-shadow-lg); }
/* per-card accent comes from inline style="--card-color:#f59e0b…" (13 cards) — darkened for 0.65rem text instead of overridden */
html[data-theme="light"] .card-std { color: color-mix(in srgb, var(--card-color, var(--accent)) 60%, #0f172a); opacity: 1; }
html[data-theme="light"] .card-btn { background: var(--wst-card-2); border-color: var(--wst-line-strong); color: var(--wst-text); }
html[data-theme="light"] .card-btn:hover { background: color-mix(in srgb, var(--card-color, var(--accent)) 75%, #0f172a); color: #fff; }
html[data-theme="light"] .sim-card.exam { background: rgba(245, 158, 11, 0.08); border-color: rgba(180, 83, 9, 0.3); }
html[data-theme="light"] .info-dot { box-shadow: 0 0 6px rgba(21, 128, 61, 0.6); }
html[data-theme="light"] .info-url { background: rgba(29, 78, 216, 0.08); }

/* ===================================================================
   C — sub-standard shell (tokens above + text that uses the page's own --primary)
   =================================================================== */
html[data-theme="light"] .wia-topnav { background: var(--wst-card); border-bottom-color: var(--wst-line); color: var(--wst-text); }
/* --primary-coloured text (#22C55E green = 2.1:1, #8B5CF6 = 3.6:1 on white …) → 60 % primary + 40 % ink keeps the hue, lands ≥ 4.5:1 */
html[data-theme="light"] .stat-card h3,
html[data-theme="light"] .feature-card h3,
html[data-theme="light"] .logo-text h1,
html[data-theme="light"] .hero h2,
html[data-theme="light"] .philosophy,
html[data-theme="light"] .specs h2,
html[data-theme="light"] .footer-philosophy,
html[data-theme="light"] .btn-secondary,
html[data-theme="light"] .footer-links a:hover { color: color-mix(in srgb, var(--primary, #005a9e) 60%, #0f172a); }
html[data-theme="light"] .hero h2 { text-shadow: none; }
html[data-theme="light"] .header-text h1 { background: linear-gradient(135deg, color-mix(in srgb, var(--primary, #005a9e) 60%, #0f172a), #0f766e); -webkit-background-clip: text; background-clip: text; }
html[data-theme="light"] .btn-secondary { border-color: color-mix(in srgb, var(--primary, #005a9e) 60%, #0f172a); }
html[data-theme="light"] .btn-secondary:hover { color: #fff; }
/* filled --primary blocks used var(--bg) (now #f7f8fb) as text colour → ink instead (dark on #22C55E 8:1, on #8B5CF6 4.3:1) */
html[data-theme="light"] .badge,
html[data-theme="light"] .phase-number { color: #0f172a; }
html[data-theme="light"] .spec-table th { color: #0f172a; }
html[data-theme="light"] .stat-card,
html[data-theme="light"] .feature-card,
html[data-theme="light"] .phase-card { box-shadow: var(--wst-shadow); }
html[data-theme="light"] .spec-table { background: var(--wst-card); border: 1px solid var(--wst-line); }
html[data-theme="light"] .spec-table tr:hover { background: rgba(15, 23, 42, 0.04); }
html[data-theme="light"] footer:not(.ws-footer) { background: var(--wst-card-2); color: var(--wst-text-2); }
html[data-theme="light"] .footer-links a,
html[data-theme="light"] .copyright { color: var(--wst-muted); }
/* images-type (gradient body, glass container): the rgba(255,255,255,.05) glass is near-invisible on light — fine; cards get real edges */
html[data-theme="light"] .links .link { background: var(--wst-card); color: var(--wst-text); border-color: var(--wst-line); box-shadow: var(--wst-shadow); }
html[data-theme="light"] .links .link:hover { background: #eef2ff; border-color: rgba(67, 56, 202, 0.4); }
html[data-theme="light"] .desc,
html[data-theme="light"] .link-desc { color: var(--wst-muted); }
html[data-theme="light"] body > .container > h1 { background: linear-gradient(135deg, #4338ca 0%, #5e3a8a 100%); -webkit-background-clip: text; background-clip: text; }
