/* Theme controls */
:root { color-scheme: light; }
.theme-toggle { display: none; flex-shrink: 0; border-color: var(--border); background: var(--paper); color: var(--ink); }
:root[data-theme-ready] .theme-toggle { display: inline-flex; }
.theme-toggle .icon { width: 20px; height: 20px; }
.theme-toggle .theme-sun { display: none; }
:root[data-theme="dark"] .theme-toggle .theme-moon { display: none; }
:root[data-theme="dark"] .theme-toggle .theme-sun { display: block; }
:root[data-theme-switching] body,
:root[data-theme-switching] :is(.site-header, .campus-sidebar, .campus-card, .lesson-card, .course-card, .pricing-card, .learning-step, dialog) {
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

/* Dark foundation */
:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #e7efff;
  --muted: #a6b5ce;
  --blue: #8bb6ff;
  --blue-deep: #b3d1ff;
  --sky: #172b4b;
  --border: #2a3b55;
  --paper: #0b1220;
  --wash: #0e1829;
  --navy: #203c68;
  --green: #7bd8b4;
  --shadow: 0 14px 40px -18px #0009;
  --surface: #111e32;
  --raised: #182a44;
  --soft: #14253e;
  --soft-border: #304b72;
  --copy: #c0cde2;
  scrollbar-color: #435a7b #0b1220;
}
:root[data-theme="dark"] body { background: var(--paper); color: var(--ink); }
:root[data-theme="dark"] body.campus { background: var(--wash); }
:root[data-theme="dark"] ::selection { background: #2955a1; color: #fff; }
:root[data-theme="dark"] .gradient-text { background-image: linear-gradient(100deg, #87aaff 12%, #7fbfff 58%, #9bd8ff); }
:root[data-theme="dark"] :is(.site-header, .campus-sidebar, .main-nav.open) { background: #0e1829f5; border-color: var(--border); }
:root[data-theme="dark"] .main-nav { color: var(--copy); }
:root[data-theme="dark"] .main-nav a:hover { color: var(--blue); }
:root[data-theme="dark"] .brand-mark { background: #2c65dd; box-shadow: 0 3px 0 #17386f; }
:root[data-theme="dark"] .button.ghost { background: var(--surface); color: var(--ink); border-color: var(--border); }
:root[data-theme="dark"] .button.ghost:hover { background: var(--raised); border-color: #4e6c96; }
:root[data-theme="dark"] .button.white { color: #194ba7; }
:root[data-theme="dark"] .button.outline { color: var(--blue); border-color: #5775a3; }
:root[data-theme="dark"] .button:not(.ghost):not(.white):not(.outline):not(.dark) { background: linear-gradient(140deg, #2c63d8, #214fba); border-color: #5281df; box-shadow: 0 3px 0 #102c64; }
:root[data-theme="dark"] .button:not(.ghost):not(.white):not(.outline):not(.dark):hover { background: linear-gradient(140deg, #3571e3, #285bc7); }
:root[data-theme="dark"] .button:disabled { box-shadow: none; }
:root[data-theme="dark"] .theme-toggle:hover { background: var(--raised); }
:root[data-theme="dark"] .skip-link { background: var(--surface); }
:root[data-theme="dark"] .pill.gray { background: #25334a; color: #bdcce2; }
:root[data-theme="dark"] .pill.green { background: #15382f; color: #8ee3bf; }

/* Landing and project */
:root[data-theme="dark"] :is(.hero-plan, .course-label, .studio-label, .curriculum-list-header, .path-checks, .check-list, .progress-rules) { color: var(--copy); }
:root[data-theme="dark"] :is(.course-label-icon, .xp-symbol, .path-illustration, .empty-emblem, .offer-icon, .gift-box) { background: var(--sky); border-color: var(--soft-border); color: var(--blue); }
:root[data-theme="dark"] .xp-symbol .icon { fill: #315899; }
:root[data-theme="dark"] .studio-label-line { background: var(--border); }
:root[data-theme="dark"] .studio-block { box-shadow: 3px 3px 0 #253c65; }
:root[data-theme="dark"] .hero-visual::before { background: radial-gradient(ellipse at 55% 55%, #2357d026, transparent 70%); }
:root[data-theme="dark"] .project-window { background: var(--surface); border-color: #385479; box-shadow: 0 22px 50px -23px #000a, 0 3px 0 #20344f; }
:root[data-theme="dark"] :is(.window-top, .project-toolbar, .window-bottom) { background: #132139; color: var(--copy); border-color: var(--border); }
:root[data-theme="dark"] .window-dots i { background: #486080; }
:root[data-theme="dark"] .window-dots i:first-child { background: #7099d3; }
:root[data-theme="dark"] .play-control { background: #22416c; color: #c7dcff; }
:root[data-theme="dark"] .play-control:hover { background: #2e5082; }
:root[data-theme="dark"] .world-viewport { background: #13233e; }
:root[data-theme="dark"] #sky stop:first-child { stop-color: #15233d; }
:root[data-theme="dark"] #sky stop:last-child { stop-color: #223e65; }
:root[data-theme="dark"] #world-grid path { stroke: #6387bd; opacity: .3; }
:root[data-theme="dark"] .cloud { opacity: .13; }
:root[data-theme="dark"] .world-hud { background: #0c1a2ee8; color: #eef5ff; box-shadow: 0 2px 8px #0003; }
:root[data-theme="dark"] .hud-caption { color: #b5c6e0; }
:root[data-theme="dark"] .world-instruction { background: #10213bdd; border-color: #476185; color: #d0def4; }
:root[data-theme="dark"] .stats-strip { background: var(--wash); border-color: var(--border); }
:root[data-theme="dark"] .stats-inner > div { border-color: var(--border); }
:root[data-theme="dark"] .stats-inner span { color: var(--copy); }
:root[data-theme="dark"] .stats-inner strong { color: #b4cdff; }
:root[data-theme="dark"] .stats-inner .stats-icon { background: var(--sky); color: var(--blue); }
:root[data-theme="dark"] .learning-step { background: var(--surface); border-color: var(--border); }
:root[data-theme="dark"] .step-block { background: linear-gradient(145deg, #223c63, #182c4a); color: #a9c9ff; border-color: #46628a; box-shadow: 0 3px 0 #0b192e; }
:root[data-theme="dark"] .step-number { color: var(--muted); }
:root[data-theme="dark"] .path-intro { background: linear-gradient(150deg, #14243c, #111e32); }
:root[data-theme="dark"] .module-number,
:root[data-theme="dark"] .module-row:first-child .module-number { background: #1b3151; color: #b2ceff; border-color: #3b557c; box-shadow: 0 2px 0 #101c2d; }
:root[data-theme="dark"] .module-lesson-link { color: var(--copy); }
:root[data-theme="dark"] .module-lesson-link:hover { color: var(--blue); }
:root[data-theme="dark"] .outcome-note { color: #b3d0ff; }
:root[data-theme="dark"] .progress-section { background: linear-gradient(140deg, #101c30, #132541); border-color: var(--border); }
:root[data-theme="dark"] .progress-rules b { color: #c7dbff; }
:root[data-theme="dark"] .level-showcase { background: radial-gradient(ellipse at 50% 20%, #23447680, transparent 70%), var(--surface); border-color: var(--soft-border); box-shadow: 0 8px 22px -15px #0009; }
:root[data-theme="dark"] :is(.level-showcase > .tiny-label, .rank-node) { color: var(--muted); }
:root[data-theme="dark"] :is(.level-medal > span, .rank-node.current) { color: #a4c5ff; }
:root[data-theme="dark"] .rank-path::before { background: #3a4e6c; }
:root[data-theme="dark"] .rank-node i { background: #465c7d; border-color: var(--surface); outline-color: #465c7d; }
:root[data-theme="dark"] .rank-node.done i { background: #9cbbff; outline-color: #9cbbff; }
:root[data-theme="dark"] .rank-node.current i { background: #74a7ff; outline-color: #74a7ff; }
:root[data-theme="dark"] .level-card-bottom { background: #112039; border-color: var(--border); color: var(--copy); }
:root[data-theme="dark"] .pricing-card { background: var(--surface); border-color: #426aa5; border-top-color: #6898ff; box-shadow: 0 12px 40px -25px #000a; }
:root[data-theme="dark"] .pricing-card-top > .tiny-label { color: #b9cef1; }
:root[data-theme="dark"] :is(.price > span, .pricing-disclosure, .free-call div > span) { color: var(--muted); }
:root[data-theme="dark"] .free-call { background: var(--soft); border-color: var(--soft-border); }
:root[data-theme="dark"] .free-call b { color: #c3d8ff; }
:root[data-theme="dark"] :is(.pricing-preview-link, .path-illustration > .icon, .check-list .icon, .progress-rules .icon) { color: var(--blue); }
:root[data-theme="dark"] :is(.bottom-cta, .dashboard-hero, .community-hero) { background: linear-gradient(115deg, #13316a, #2457bc); }
:root[data-theme="dark"] :is(.footer-top > span, .footer-top nav, .footer-bottom) { color: var(--muted); border-color: var(--border); }

/* Classroom and community */
:root[data-theme="dark"] :is(.campus-card, .course-card, .metric-card, .trial-prompt, .lesson-outline, .lesson-card, .request-card, .mini-booking, .mentor-option) { background: var(--surface); border-color: var(--border); }
:root[data-theme="dark"] .course-card:hover { border-color: #6084bc; }
:root[data-theme="dark"] .sidebar-xp { background: linear-gradient(145deg, #162947, #14243b); border-color: var(--soft-border); }
:root[data-theme="dark"] .sidebar-nav a { color: var(--copy); }
:root[data-theme="dark"] :is(.sidebar-nav a.active, .sidebar-nav a.active:hover, .outline-lesson.active) { background: #213b64; color: #c0d7ff; }
:root[data-theme="dark"] :is(.sidebar-nav a:hover, .outline-lesson:hover) { background: var(--raised); color: var(--blue); }
:root[data-theme="dark"] .level-square { background: #2e5cc4; }
:root[data-theme="dark"] .progress-track { background: #2c405e; }
:root[data-theme="dark"] :is(.sidebar-eyebrow, .sidebar-xp small, .sidebar-preview, .xp-caption, .metric-card span, .course-card .phase-label, .course-card-bottom, .lesson-breadcrumb, .lesson-metadata, .outline-lesson, .outline-module summary > span:first-child, .booking-price > span, .booking-meta) { color: var(--muted); }
:root[data-theme="dark"] :is(.outline-module, .channel-list .channel, .rank-table > div, .leaderboard-table td) { border-color: var(--border); }
:root[data-theme="dark"] .outline-lesson.complete { color: #7bd8b4; }
:root[data-theme="dark"] :is(.lesson-body, .lesson-body p, .check-field, .detail-item b, .channel-list .channel strong, .rank-table > div, .leaderboard-table td, .learner-cell b) { color: var(--copy); }
:root[data-theme="dark"] :is(.lesson-body h4, .lesson-body strong) { color: var(--ink); }
:root[data-theme="dark"] .lesson-body > p:first-child { color: #c5d9fb; }
:root[data-theme="dark"] .lesson-body code { background: #213750; color: #c2d8ff; }
:root[data-theme="dark"] .lesson-body pre { background: #09111f; color: #dce9ff; }
:root[data-theme="dark"] .lesson-body pre code { background: transparent; color: inherit; }
:root[data-theme="dark"] :is(.lesson-body blockquote, .request-card blockquote) { background: var(--soft); border-color: #6894e0; color: var(--copy); }
:root[data-theme="dark"] :is(.completion-box, .onboarding-strip, .request-benefit) { background: var(--soft); border-color: var(--soft-border); }
:root[data-theme="dark"] .lesson-locked { background: radial-gradient(ellipse at 50% 0, #1c3457, var(--surface) 65%); }
:root[data-theme="dark"] :is(.filter-tabs, .empty-availability) { background: #132139; border-color: var(--border); }
:root[data-theme="dark"] .filter-tabs button { color: var(--copy); }
:root[data-theme="dark"] .filter-tabs button.active { background: #28466e; color: #e4eeff; }
:root[data-theme="dark"] :is(.request-steps .step-count, .rank-table .rank-chip) { background: #213856; color: #c4daff; border-color: #436089; }
:root[data-theme="dark"] .leaderboard-table th { background: #16243a; color: var(--copy); }
:root[data-theme="dark"] :is(.channel-list .channel small, .learner-cell small) { color: var(--muted); }

/* Forms and feedback */
:root[data-theme="dark"] :is(.field > span, .field > label) { color: var(--copy); }
:root[data-theme="dark"] :is(.field input, .field textarea, .field select) { background: #0d1728; color: var(--ink); border-color: #486080; }
:root[data-theme="dark"] :is(.field input, .field textarea)::placeholder { color: #9bacc7; }
:root[data-theme="dark"] :is(.field input, .field textarea, .field select):focus { border-color: #9bbdff; outline-color: #5c85cc; }
:root[data-theme="dark"] :is(.field small, .form-micro, .dialog-footer, .dialog-plan small, .dialog-plan > strong > span, .loading-placeholder) { color: var(--muted); }
:root[data-theme="dark"] .timezone-note { color: var(--muted) !important; }
:root[data-theme="dark"] dialog { background: var(--surface); border-color: #426084; box-shadow: 0 30px 100px #0009; }
:root[data-theme="dark"] dialog::backdrop { background: #030812b3; }
:root[data-theme="dark"] .dialog-close { color: var(--copy); }
:root[data-theme="dark"] .dialog-plan { background: var(--soft); border-color: var(--soft-border); }
:root[data-theme="dark"] .dialog-notice { background: #142238; border-color: var(--border); color: var(--copy); }
:root[data-theme="dark"] .purchase-steps b { color: var(--blue); }
:root[data-theme="dark"] .notice { background: #172d4c; border-color: #365781; color: #bad4ff; }
:root[data-theme="dark"] .notice b { color: #d6e5ff; }
:root[data-theme="dark"] .notice.warning { background: #322819; border-color: #73603b; color: #efd3a0; }
:root[data-theme="dark"] .notice.success { background: #15352e; border-color: #397663; color: #a0e0c9; }
:root[data-theme="dark"] .notice.error { background: #381f2b; border-color: #82485a; color: #ffbdcb; }
:root[data-theme="dark"] .form-error { color: #ffbdcb; }
:root[data-theme="dark"] .form-success { color: #94ddbd; }
:root[data-theme="dark"] .toast { background: #1b3151; border-color: #526f98; box-shadow: 0 9px 30px #0006; }
:root[data-theme="dark"] .toast.error { background: #512737; border-color: #a2677b; }
:root[data-theme="dark"] .toast.success { background: #173c35; border-color: #4b8975; }

/* Responsive controls */
@media (max-width: 1050px) {
  .main-nav { display: none; }
  .mobile-toggle { display: flex; }
  .main-nav.open { display: flex; flex-direction: column; position: absolute; left: 24px; right: 24px; top: 80px; padding: 16px 22px; background: #fff; border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow); gap: 3px; align-items: stretch; }
}
@media (max-width: 700px) {
  .nav-wrap { width: calc(100% - 24px); gap: 8px; }
  .nav-actions { gap: 3px; }
  .theme-toggle, .mobile-toggle { width: 40px; height: 44px; padding: 8px; }
  .nav-enroll .icon { display: none; }
  .nav-enroll.button.small { padding-inline: 10px; }
  .main-nav.open { top: 72px; left: 16px; right: 16px; }
}
@media (max-width: 370px) {
  .brand { font-size: 20px; }
  .brand-mark { width: 26px; height: 28px; margin-right: 5px; }
  .nav-wrap { gap: 5px; }
  .nav-actions { gap: 2px; }
  .nav-enroll.button.small { padding-inline: 7px; font-size: 11px; }
  .theme-toggle, .mobile-toggle { width: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  :root[data-theme-switching] body,
  :root[data-theme-switching] :is(.site-header, .campus-sidebar, .campus-card, .lesson-card, .course-card, .pricing-card, .learning-step, dialog) { transition: none; }
}
