/* Three quiet, role-specific palettes; the app's layout and controls stay shared. */
:root[data-theme="hao"] {
  color-scheme: dark;
  --paper: #101619;
  --surface: #192226;
  --surface-soft: #202c30;
  --ink: #e5ecec;
  --muted: #9aa8aa;
  --green: #55d0c9;
  --soft: #203237;
  --line: #35464b;
  --accent: #e5a65e;
  --gold: #e5a65e;
  --blue: #20333a;
  --radius: 11px;
  --sidebar: #0c1114;
  --sidebar-ink: #e3ebeb;
  --sidebar-muted: #87979a;
  --sidebar-line: #29373b;
  --sidebar-active: #1d2d31;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, "Roboto Condensed", "Bahnschrift", system-ui, sans-serif;
}

:root[data-theme="han"] {
  color-scheme: light;
  --paper: #e9e7df;
  --surface: #f6f4ed;
  --surface-soft: #eeece3;
  --ink: #2d3730;
  --muted: #73796f;
  --green: #3c5946;
  --soft: #e5e9e0;
  --line: #d6d5ca;
  --accent: #a88a59;
  --gold: #b39460;
  --blue: #e6ebea;
  --radius: 16px;
  --sidebar: #29312b;
  --sidebar-ink: #eeeade;
  --sidebar-muted: #adb5a9;
  --sidebar-line: #404a41;
  --sidebar-active: #38473b;
  background: linear-gradient(145deg, #efede6, var(--paper));
  color: var(--ink);
  font-family: "Aptos", "Segoe UI", system-ui, "PingFang SC", sans-serif;
}

:root[data-theme="parent"] {
  color-scheme: light;
  --paper: #faf8f1;
  --surface: #fffefa;
  --surface-soft: #f3f5eb;
  --ink: #405348;
  --muted: #7c867b;
  --green: #66856b;
  --soft: #edf2e5;
  --line: #e2e6d9;
  --accent: #dfa984;
  --gold: #d2a260;
  --blue: #edf3f5;
  --radius: 21px;
  --sidebar: #f0f3e9;
  --sidebar-ink: #435b4b;
  --sidebar-muted: #819080;
  --sidebar-line: #e0e7d9;
  --sidebar-active: #f5e8d5;
  background: radial-gradient(ellipse at 8% 0%, #fffdf7 0, var(--paper) 60%);
  color: var(--ink);
  font-family: "Trebuchet MS", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}

:root[data-theme] body,
:root[data-theme] .shell {
  background: var(--paper);
  color: var(--ink);
}

:root[data-theme] .sidebar {
  background: var(--sidebar);
  border-color: var(--sidebar-line);
  color: var(--sidebar-ink);
}

:root[data-theme] .sidebar .brand strong,
:root[data-theme] .sidebar .profile strong {
  color: var(--sidebar-ink);
}

:root[data-theme] .sidebar .brand small,
:root[data-theme] .sidebar .profile-label,
:root[data-theme] .sidebar .profile small,
:root[data-theme] .sidebar .seed-note,
:root[data-theme] .sidebar .nav button {
  color: var(--sidebar-muted);
}

:root[data-theme] .sidebar .profile.active {
  background: var(--sidebar-active);
  border-color: var(--sidebar-line);
  box-shadow: none;
}

:root[data-theme] .sidebar .nav button.active {
  background: var(--sidebar-active);
  color: var(--sidebar-ink);
  box-shadow: inset 3px 0 var(--accent);
}

:root[data-theme] .sidebar .access-lock {
  color: var(--sidebar-ink);
  border-color: var(--sidebar-line);
  background: transparent;
}

:root[data-theme] .card,
:root[data-theme] .lesson-row,
:root[data-theme] .section-nav button,
:root[data-theme] .goal-card,
:root[data-theme] .subject-setting,
:root[data-theme] .api-state,
:root[data-theme] .timetable-preview,
:root[data-theme] .growth-step,
:root[data-theme] .growth-support,
:root[data-theme] .rhythm-activity,
:root[data-theme] .v2-loop span,
:root[data-theme] .v2-summary-signals span,
:root[data-theme] .v2-advanced,
:root[data-theme] .field-action-intro,
:root[data-theme] .v3-support-strip,
:root[data-theme] .independence-loop,
:root[data-theme] .independence-parent-rule,
:root[data-theme] .independence-boundaries > div,
:root[data-theme] .assistant-home,
:root[data-theme] .ai-launch-card,
:root[data-theme] .agent-openai-start {
  background: var(--surface);
  border-color: var(--line);
  color: var(--ink);
}

:root[data-theme] .goal-card.completed,
:root[data-theme] .v2-loop,
:root[data-theme] .v2-summary-signals span,
:root[data-theme] .rhythm-activity {
  background: var(--surface-soft);
}

:root[data-theme] .hero,
:root[data-theme] .v2-focus,
:root[data-theme] .v2-parent-focus,
:root[data-theme] .independence-hero,
:root[data-theme] .independence-parent-hero,
:root[data-theme] .material-intro {
  color: var(--ink);
  border-color: var(--line);
}

:root[data-theme] .hero p,
:root[data-theme] .hero .eyebrow,
:root[data-theme] .v2-focus-copy > p,
:root[data-theme] .v2-parent-focus p,
:root[data-theme] .field-action-intro p,
:root[data-theme] .independence-hero p,
:root[data-theme] .independence-parent-hero p {
  color: var(--muted);
}

:root[data-theme] .field input,
:root[data-theme] .field select,
:root[data-theme] .field textarea,
:root[data-theme] .answer-input,
:root[data-theme] .subject-setting select {
  background: var(--surface);
  border-color: var(--line);
  color: var(--ink);
}

:root[data-theme] .btn.secondary,
:root[data-theme] .btn.soft,
:root[data-theme] .circle-btn,
:root[data-theme] .modal-close {
  background: var(--surface-soft);
  border-color: var(--line);
  color: var(--green);
}

:root[data-theme] .section-nav button {
  border-color: var(--line);
  color: var(--ink);
}

:root[data-theme] .section-nav button.active {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

:root[data-theme] .badge {
  background: var(--soft);
  color: var(--green);
  border-radius: 999px;
}

:root[data-theme] .badge.blue {
  background: var(--blue);
  color: var(--green);
}

:root[data-theme] .badge.gold {
  background: color-mix(in srgb, var(--gold) 18%, var(--surface));
  color: var(--ink);
}

:root[data-theme] .empty {
  background: var(--surface-soft);
  border-color: var(--line);
  color: var(--muted);
}

:root[data-theme] dialog,
:root[data-theme] #study-dialog {
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--line);
}

:root[data-theme] .lesson-top {
  background: var(--surface-soft);
  border-color: var(--line);
}

:root[data-theme] #toast {
  background: var(--green);
  color: #fff;
}

:root[data-theme="hao"] .nav {
  background: rgba(12, 17, 20, .96);
  border-color: var(--sidebar-line);
}

:root[data-theme="hao"] .hero,
:root[data-theme="hao"] .v2-focus,
:root[data-theme="hao"] .v2-parent-focus {
  background-color: #172126;
  background-image: linear-gradient(115deg, rgba(85, 208, 201, .11), transparent 58%), repeating-linear-gradient(90deg, transparent 0 31px, rgba(220, 239, 239, .035) 31px 32px);
}

:root[data-theme="hao"] .card {
  box-shadow: 0 7px 20px rgba(0, 0, 0, .17);
}

:root[data-theme="hao"] .profile.active {
  border-left: 2px solid var(--accent);
}

:root[data-theme="hao"] .avatar {
  background: #26373a;
  color: var(--green);
  border-radius: 9px;
}

:root[data-theme="hao"] .btn {
  color: #0c1718;
}

:root[data-theme="hao"] .btn.secondary,
:root[data-theme="hao"] .btn.soft {
  color: var(--ink);
}

:root[data-theme="hao"] .section-nav button.active {
  color: #0c1718;
}

:root[data-theme="hao"] h1,
:root[data-theme="hao"] h2,
:root[data-theme="hao"] h3 {
  letter-spacing: .015em;
}

:root[data-theme="hao"] .eyebrow {
  color: #a9b8ba;
}

:root[data-theme="han"] .nav {
  background: rgba(41, 49, 43, .97);
  border-color: var(--sidebar-line);
}

:root[data-theme="han"] .hero,
:root[data-theme="han"] .v2-focus,
:root[data-theme="han"] .v2-parent-focus {
  background: linear-gradient(118deg, #e4e0d3, #f5f2e9 74%);
}

:root[data-theme="han"] .card {
  box-shadow: 0 8px 24px rgba(54, 53, 39, .045);
  padding: clamp(19px, 2vw, 26px);
}

:root[data-theme="han"] .avatar {
  background: #ded5c2;
  color: #75603d;
  border-radius: 50%;
}

:root[data-theme="han"] h1,
:root[data-theme="han"] h2,
:root[data-theme="han"] h3,
:root[data-theme="han"] .brand strong {
  font-family: Georgia, "Times New Roman", "Songti SC", serif;
  font-weight: 500;
}

:root[data-theme="han"] .hero h2,
:root[data-theme="han"] .v2-focus-copy h2,
:root[data-theme="han"] .v2-parent-focus h2 {
  color: #344d3c;
}

:root[data-theme="han"] .btn {
  border-radius: 8px;
}

:root[data-theme="parent"] .nav {
  background: rgba(240, 243, 233, .97);
  border-color: var(--sidebar-line);
}

:root[data-theme="parent"] .hero,
:root[data-theme="parent"] .v2-focus,
:root[data-theme="parent"] .v2-parent-focus,
:root[data-theme="parent"] .independence-hero,
:root[data-theme="parent"] .independence-parent-hero {
  background: linear-gradient(135deg, #edf3e8, #fff5e8);
  border-radius: 25px;
}

:root[data-theme="parent"] .card {
  box-shadow: 0 7px 20px rgba(89, 96, 71, .045);
}

:root[data-theme="parent"] .avatar {
  border-radius: 50%;
  background: #f3dfcb;
  color: #8d6650;
}

:root[data-theme="parent"] .avatar.han {
  background: #e4e8d8;
  color: #59735d;
}

:root[data-theme="parent"] .btn {
  border-radius: 14px;
}

:root[data-theme="parent"] .section-nav button {
  border-radius: 999px;
}

:root[data-theme="parent"] .rhythm-chip,
:root[data-theme="parent"] .pill {
  border-radius: 999px;
}

:root[data-theme="parent"] .rhythm-chip.chinese {
  background: #eef4e6;
  color: #537052;
}

:root[data-theme="parent"] *:focus-visible {
  outline-color: var(--accent);
}

:root[data-theme="hao"] *:focus-visible {
  outline-color: var(--accent);
}

@media (max-width: 700px) {
  :root[data-theme="hao"] .nav {
    background: rgba(12, 17, 20, .97);
  }

  :root[data-theme="han"] .nav {
    background: rgba(41, 49, 43, .97);
  }

  :root[data-theme="parent"] .nav {
    background: rgba(240, 243, 233, .98);
  }
}
