/* ─────────────────────────────────────────────────────────────────
   Light (white) theme. Active when <html data-theme="light">.
   The switch is shared/_theme_toggle (theme_controller.js); the saved
   choice is applied before paint by shared/_theme_head.
   Code editors, code blocks and lesson diagrams stay dark ("islands").
   The second half lists darker copies of bright text colours from
   application.css / design.css, so they stay readable on white. When you
   add a new bright text colour elsewhere, add its darker copy here.
   ───────────────────────────────────────────────────────────────── */

/* ── Switch button (both themes) ─────────────────────────────── */
.theme-toggle { width: 38px; height: 38px; flex-shrink: 0; display: inline-grid; place-items: center; border-radius: 10px;
  border: 1px solid var(--border2); background: transparent; color: var(--txt2); cursor: pointer;
  transition: color .15s, background .15s, border-color .15s; }
.theme-toggle:hover { color: var(--txt); background: var(--bg3); }
.theme-toggle .theme-icon-moon { display: none; }
html[data-theme="light"] .theme-toggle .theme-icon-sun { display: none; }
html[data-theme="light"] .theme-toggle .theme-icon-moon { display: block; }
.theme-toggle-sidebar { margin-left: auto; width: 32px; height: 32px; }
.theme-toggle-mobile { width: 34px; height: 34px; margin-left: auto; margin-right: 8px; }
.admin-nav-right .theme-toggle { width: 32px; height: 32px; }

/* ── Tokens ──────────────────────────────────────────────────── */
html[data-theme="light"] {
  color-scheme: light;
  --bg0: #f6f6fb;
  --bg1: #ffffff;
  --bg2: #f3f2fa;
  --bg3: #ebe9f6;
  --bg4: #dfdcf0;
  --txt: #17162b;
  --txt2: #4a4866;
  --txt3: #636182;
  --border: #e4e2f0;
  --border2: #d5d2e8;
  --brand: #7c3aed;
  --purple-lt: #7c3aed;
  --orange: #b45309;
  --green: #047857;
  --red: #dc2626;
  --blue: #2563eb;
  --shadow-sm: 0 1px 2px rgba(23,22,43,.06);
  --shadow: 0 8px 24px -10px rgba(23,22,43,.18), 0 2px 6px rgba(23,22,43,.06);
  --shadow-lg: 0 24px 60px -24px rgba(23,22,43,.25);
}
html[data-theme="dark"] { color-scheme: dark; }

/* Dark islands: code, editors and diagrams keep the dark tokens. */
html[data-theme="light"] :is(.live-editor, .lc-code-block, .lesson-rich-body pre, .lesson-rich-body .lc-code,
  .lesson-rich-body .lc-diagram, .blog-prose pre, .code-panel, .try-editor, .h-float, .terminal) {
  --bg0: #0b0b1e; --bg1: #111128; --bg2: #18183a; --bg3: #1f1f44; --bg4: #27274e;
  --txt: #e2e0f0; --txt2: #9b99b8; --txt3: #8a88a8; --border: #252545; --border2: #2f2f55;
  color-scheme: dark;
}

/* ── Page, navbar, sidebar ───────────────────────────────────── */
html[data-theme="light"] body { background: var(--bg0); color: var(--txt); }
html[data-theme="light"] .page-scrollable { background:
  radial-gradient(1200px 600px at 85% -10%, rgba(99,102,241,.07), transparent 60%),
  radial-gradient(900px 500px at -10% 10%, rgba(139,92,246,.06), transparent 60%), var(--bg0); }
html[data-theme="light"] ::selection { background: rgba(124,58,237,.22); color: var(--txt); }
html[data-theme="light"] .site-nav { background: rgba(255,255,255,.9); border-bottom: 1px solid var(--border); }
@media (max-width: 900px) {
  html[data-theme="light"] .site-nav, html[data-theme="light"] .site-nav .nav-links { background: #fff; }
}
html[data-theme="light"] .sidebar { background: var(--bg1); border-right: 1px solid var(--border); }
html[data-theme="light"] .mobile-bar { background: #fff; border-bottom: 1px solid var(--border); }
html[data-theme="light"] .site-footer { background: var(--bg1); border-top: 1px solid var(--border); }

/* Headings that were pure white on the dark theme */
html[data-theme="light"] :is(.h-title, .h-stat strong, .h-cta-band h2, .d-hello h1, .d-stat strong, .d-feature h3,
  .course-hero-title, .blog-title, .blog-card h2, .blog-card h3, .lesson-text-title, .lc-title) { color: var(--txt); }
html[data-theme="light"] .h-title :is(span, em, .grad), html[data-theme="light"] .grad-text { -webkit-text-fill-color: initial; }
html[data-theme="light"] .blog-prose { color: #2b2a42; }
html[data-theme="light"] .c-card-pct { color: color-mix(in srgb, var(--c) 70%, #000); }
html[data-theme="light"] .course-hero-cat { color: color-mix(in srgb, var(--course-c, #7c3aed) 70%, #000); }
html[data-theme="light"] .course-section-divider { color: color-mix(in srgb, var(--course-c, #7c3aed) 70%, #000); }

/* Inline code in lessons and the blog */
html[data-theme="light"] .lesson-rich-body :not(pre) > code,
html[data-theme="light"] .blog-prose :not(pre) > code { background: rgba(124,58,237,.1); color: #5b21b6; }
html[data-theme="light"] .lesson-rich-body pre, html[data-theme="light"] .blog-prose pre { color: #d6d4ee; }

/* Form fields */
html[data-theme="light"] :is(input, textarea, select):not(.live-editor *):not(.le-textarea) { color: var(--txt); }

/* Editor page: the page follows the theme, the editor itself stays dark */
html[data-theme="light"] .editor-page { color: var(--txt); }
html[data-theme="light"] .try-editor { color: #f8fafc; }

/* ── Generated: light text colours darkened for white backgrounds ── */
html[data-theme="light"] .flash-alert:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #b55252; }
html[data-theme="light"] .exercise-feedback.wrong:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #b55252; }
html[data-theme="light"] .auth-error:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #b55252; }
html[data-theme="light"] .home-hero-floating-kicker:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #6f6f7f; }
html[data-theme="light"] .badge-red:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #b55252; }
html[data-theme="light"] .le-badge-yellow:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #8f6d15; }
html[data-theme="light"] .le-badge-ruby:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #b55252; }
html[data-theme="light"] .le-badge-java:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #a66028; }
html[data-theme="light"] .le-badge-php:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #885eb3; }
html[data-theme="light"] .le-badge-sql:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #24799f; }
html[data-theme="light"] .le-badge-mysql:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #a66028; }
html[data-theme="light"] .le-badge-postgresql:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #4576a2; }
html[data-theme="light"] .le-badge-bootstrap:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #7c67a1; }
html[data-theme="light"] .le-badge-react:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #367a8d; }
html[data-theme="light"] .le-badge-pandas:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #a053ac; }
html[data-theme="light"] .le-badge-numpy:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #377993; }
html[data-theme="light"] .le-badge-typescript:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #4373af; }
html[data-theme="light"] .le-badge-ai:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #66709c; }
html[data-theme="light"] .le-badge-django:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #2b814a; }
html[data-theme="light"] .le-badge-deep-learning:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #746b95; }
html[data-theme="light"] .le-badge-nodejs:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #467c59; }
html[data-theme="light"] .le-badge-git:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #906a42; }
html[data-theme="light"] .le-badge-github:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #6b7189; }
html[data-theme="light"] .lc-lesson-section:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #746b95; }
html[data-theme="light"] .course-section-divider:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #746b95; }
html[data-theme="light"] .category-pill:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #707278; }
html[data-theme="light"] .category-pill.active:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #5f7a16; }
html[data-theme="light"] .home-link-button:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #707071; }
html[data-theme="light"] .hero-stat-icon:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #7f5ad1; }
html[data-theme="light"] .signup-card__eyebrow:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #5f7a16; }
html[data-theme="light"] .hero-tutor-widget__status:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #4d7d26; }
html[data-theme="light"] .tutor-prompt span:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #6e7075; }
html[data-theme="light"] .tutor-prompt.violet strong:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #895fab; }
html[data-theme="light"] .tutor-prompt.green strong:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #1b7f69; }
html[data-theme="light"] .tutor-prompt.amber strong:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #856f26; }
html[data-theme="light"] .le-badge-aad:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #477890; }
html[data-theme="light"] .lesson-rich-body .lcw-why:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #976363; }
html[data-theme="light"] .le-badge-vdb:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #93637d; }
html[data-theme="light"] .lesson-rich-body .lcw-btn-danger:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #976363; }
html[data-theme="light"] .lesson-rich-body .lcw-sc-score:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #746b95; }
html[data-theme="light"] .le-badge-rag:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #337e72; }
html[data-theme="light"] .lesson-rich-body .lcw-cite:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #776d82; }
html[data-theme="light"] .le-badge-agt:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #867029; }
html[data-theme="light"] .blog-prose:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #72717d; }
html[data-theme="light"] .nav-link-special:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #746b95; }
html[data-theme="light"] .eyebrow:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #746b95; }
html[data-theme="light"] .lesson-row.completed .lr-num:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *),
html[data-theme="light"] .lesson-row.skipped .lr-num:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #20815d; }
html[data-theme="light"] .le-badge-pe:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #7d6893; }
html[data-theme="light"] .le-badge-mcp:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #906a42; }
html[data-theme="light"] .le-badge-eval:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #3b7d63; }
html[data-theme="light"] .le-badge-cv:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #93637d; }
html[data-theme="light"] .le-badge-ft:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #817224; }
html[data-theme="light"] .le-badge-safe:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #577495; }
html[data-theme="light"] .lesson-rich-body .pl-pass .pl-badge:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #3b7d63; }
html[data-theme="light"] .lesson-rich-body .pl-fail .pl-badge:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #976363; }
html[data-theme="light"] .lesson-rich-body .pl-sent:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #746b95; }
html[data-theme="light"] .lesson-rich-body .pl-err:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #976363; }
html[data-theme="light"] .le-badge-llm:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #377b84; }
html[data-theme="light"] .lesson-rich-body .nt-result strong:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #3b7d63; }
html[data-theme="light"] .le-badge-mkt:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #986269; }
html[data-theme="light"] .le-badge-fin:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #467c59; }
html[data-theme="light"] .le-badge-sales:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #867029; }
html[data-theme="light"] .le-badge-hr:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #746b95; }
html[data-theme="light"] .le-badge-cs:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #377b84; }
html[data-theme="light"] .le-badge-ecom:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #3b7d63; }
html[data-theme="light"] .le-badge-biz:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #577495; }
html[data-theme="light"] .le-badge-health:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #976363; }
html[data-theme="light"] .le-badge-law:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #66709c; }
html[data-theme="light"] .le-badge-create:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #8b6392; }
html[data-theme="light"] .le-badge-qa:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #0f766e; }
html[data-theme="light"] .le-badge-mgmt:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #92400e; }
html[data-theme="light"] .le-badge-genai:not(:is(.live-editor, pre, .lc-diagram, .lc-code-block, .code-panel) *) { color: #9d174d; }
