/* Formal classroom archive palette.
   Loaded after page-specific styles so the formal surfaces share one visual
   language; the dedicated U07 Demo keeps its own separate stylesheet. */
:root {
  --page-bg: #F4F0E6;
  --surface: #FFFDF8;
  --surface-warm: #F4F0E6;
  --surface-muted: #EEE8DC;
  --brand: #6B4A3A;
  --brand-dark: #2F2924;
  --brand-bright: #6B4A3A;
  --brand-soft: #EDE5D9;
  --bronze: #8D6A4D;
  --bronze-soft: #EDE2D4;
  --ai: #6B4A3A;
  --ai-soft: #F0E8DD;
  --evidence: #5F755B;
  --evidence-soft: #E6EDE2;
  --warning: #B17A32;
  --warning-soft: #F4E9D2;
  --danger: #9D3B2E;
  --text: #292521;
  --text-2: #716A61;
  --muted: #716A61;
  --line: #D8D0C2;
  --line-strong: #BFB5A7;
  --shadow-sm: 0 4px 14px rgba(47, 41, 36, .06);
  --shadow-md: 0 12px 30px rgba(47, 41, 36, .08);
  --shadow-lg: 0 24px 60px rgba(47, 41, 36, .13);
  --focus-ring: 0 0 0 3px rgba(107, 74, 58, .16);
  --paper-grid: rgba(107, 74, 58, .035);
  --surface-glass: rgba(255, 253, 248, .92);
  --brand-on-dark: #F4F0E6;
  --accent-line: #B17A32;
  --quality-ink: #292521;
  --quality-text: #514A44;
  --quality-muted: #716A61;
  --quality-line: #D8D0C2;
  --quality-line-strong: #BFB5A7;
  --quality-surface: rgba(255, 253, 248, .96);
  --quality-bg: #F4F0E6;
  --quality-blue: #6B4A3A;
  --quality-indigo: #4F5140;
  --quality-green: #5F755B;
  --quality-amber: #B17A32;
  --quality-purple: #8D6A4D;
  --assistant-ink: #292521;
  --assistant-text: #514A44;
  --assistant-muted: #716A61;
  --assistant-line: #D8D0C2;
  --assistant-blue: #6B4A3A;
  --assistant-blue-dark: #4F392E;
  --assistant-purple: #8D6A4D;
  --assistant-soft: #F0E8DD;
  --assistant-sidebar: #EEE8DC;
}

body.app-page {
  background-color: var(--page-bg) !important;
  background-image:
    linear-gradient(rgba(107, 74, 58, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(107, 74, 58, .018) 1px, transparent 1px) !important;
  background-size: 34px 34px !important;
  color: var(--text) !important;
}

body.auth-page {
  background: #211416 !important;
  color: var(--text) !important;
}

body.auth-page .auth-shell {
  background: linear-gradient(90deg, rgba(30, 17, 18, .35), rgba(30, 17, 18, .72)), url('/static/img/login-bg.png') center/cover !important;
  color: var(--text) !important;
}

body.auth-page .auth-shell { min-height: 100vh; }
body.auth-page .login-card {
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow-lg) !important;
  backdrop-filter: none !important;
}
body.auth-page .login-card-heading h1 { color: var(--text) !important; }
body.auth-page .login-card-heading p,
body.auth-page .login-hint { color: var(--text-2) !important; }
body.auth-page .login-card input {
  border-color: var(--line-strong) !important;
  border-radius: 8px !important;
  background: #FFFDF8 !important;
  color: var(--text) !important;
}

.app-sidebar {
  background: #2F2924 !important;
  background-image: none !important;
  box-shadow: 8px 0 28px rgba(47, 41, 36, .14) !important;
}
.brand-lockup { color: #FFFDF8 !important; }
.side-nav a.is-active {
  background: #4F5140 !important;
  box-shadow: inset 3px 0 0 #B17A32 !important;
}
.side-nav a:hover,
.nav-group summary:hover,
.nav-group[open] > summary { background: rgba(255, 253, 248, .09) !important; }
.app-topbar {
  border-color: var(--line) !important;
  background: rgba(244, 240, 230, .94) !important;
}
.system-status,
.role-chip { border-color: var(--line) !important; background: rgba(255, 253, 248, .8) !important; }
.role-chip { color: var(--brand) !important; background: var(--brand-soft) !important; }
.system-status i { background: var(--evidence) !important; box-shadow: 0 0 0 4px rgba(95, 117, 91, .12) !important; }

.button.primary,
.quality-button-primary {
  border-color: #6B4A3A !important;
  color: #FFFDF8 !important;
  background: #6B4A3A !important;
  box-shadow: 0 5px 12px rgba(107, 74, 58, .14) !important;
}
.button.secondary,
.quality-button-secondary {
  border-color: var(--line-strong) !important;
  color: var(--brand) !important;
  background: rgba(255, 253, 248, .88) !important;
  box-shadow: none !important;
}
.button.danger { border-color: rgba(157, 59, 46, .28) !important; color: var(--danger) !important; background: #F8E9E5 !important; }
.button:hover,
.quality-button:hover { box-shadow: 0 7px 16px rgba(47, 41, 36, .1) !important; }
input:focus,
select:focus,
textarea:focus,
.button:focus-visible,
a:focus-visible,
button:focus-visible { outline-color: var(--brand) !important; box-shadow: var(--focus-ring) !important; }

.section-tabs {
  border-color: var(--line) !important;
  border-radius: 9px !important;
  background: rgba(255, 253, 248, .92) !important;
  box-shadow: var(--shadow-sm) !important;
}
.section-tabs a.is-active {
  color: var(--brand-on-dark) !important;
  background: #4F5140 !important;
  box-shadow: none !important;
}
.section-tabs a,
.breadcrumb a,
.pagination a { color: var(--brand) !important; }
.hero-slide,
.hero-carousel { background-color: #2F2924 !important; }
.hero-slide::before { background: linear-gradient(90deg, rgba(47, 41, 36, .96), rgba(79, 81, 64, .78), rgba(47, 41, 36, .2)) !important; }

.topic-catalog-intro {
  border-color: var(--line) !important;
  border-radius: 10px !important;
  background: linear-gradient(135deg, #FFFDF8 0%, #F4F0E6 70%, #EDE5D9 100%) !important;
  box-shadow: var(--shadow-md) !important;
}
.topic-catalog-intro::after { display: none !important; }
.chapter-grid { gap: 10px !important; }
.chapter-card {
  border-color: var(--line) !important;
  border-radius: 8px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}
.chapter-card::after { display: none !important; }
.chapter-card:hover,
.chapter-card.is-launched { border-color: #8D6A4D !important; box-shadow: 0 5px 13px rgba(47, 41, 36, .08) !important; }
.chapter-card.is-launched { background: #FBF6ED !important; }
/* Pair each compact label with a foreground that belongs to its surface. */
.chapter-no,
.home-flow-index { color: var(--bronze) !important; }
.volume-index { color: var(--brand-on-dark) !important; }
.chapter-card .source-count {
  color: var(--brand) !important;
  background: var(--bronze-soft) !important;
}
.chapter-card.is-launched .source-count {
  color: var(--evidence) !important;
  background: var(--evidence-soft) !important;
}

.home-command,
.student-home-entry {
  border-color: var(--line) !important;
  border-radius: 10px !important;
  background: linear-gradient(135deg, #FFFDF8 0%, #F4F0E6 72%, #EDE5D9 100%) !important;
  box-shadow: var(--shadow-md) !important;
}
.home-command-copy h1,
.student-home-entry h1,
.home-primary-flow h2,
.home-support-strip h2 { color: var(--text) !important; }
.home-command-copy > p,
.student-home-entry p,
.home-command-status span,
.home-flow-card p,
.home-support-strip header p { color: var(--text-2) !important; }
.home-command-status,
.home-flow-card,
.home-support-strip nav a {
  border-color: var(--line) !important;
  border-radius: 8px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}
.home-command-status strong,
.home-flow-card h3 { color: var(--brand) !important; }
.home-flow-card.is-primary { border-top-color: var(--bronze) !important; }
.home-flow-card > b,
.home-support-strip nav svg { color: var(--brand) !important; stroke: var(--brand) !important; }
.home-flow-card:hover,
.home-flow-card:focus-visible,
.home-support-strip nav a:hover { border-color: var(--bronze) !important; box-shadow: var(--shadow-sm) !important; }
.home-support-strip { border-color: var(--line) !important; }

.teacher-workbench { margin-top: 24px; }
.teacher-workbench-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 12px; }
.teacher-workbench-heading h2 { margin: 4px 0 0; color: var(--text); font-size: clamp(1.35rem, 2.2vw, 2rem); }
.teacher-workbench-heading > span { color: var(--text-2); font-size: 11px; }
.teacher-workbench-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.teacher-workbench-grid article {
  display: grid; gap: 7px; min-height: 150px; padding: 17px;
  border: 1px solid var(--line); border-radius: 8px; background: var(--surface);
}
.teacher-workbench-grid article > span { color: var(--text-2); font-size: 10px; letter-spacing: .1em; }
.teacher-workbench-grid article strong { color: var(--text); font-size: 17px; line-height: 1.35; }
.teacher-workbench-grid article small { color: var(--text-2); font-size: 10px; line-height: 1.5; }
.teacher-workbench-grid article a { align-self: end; color: var(--brand); font-size: 11px; font-weight: 800; }
.teacher-workbench-grid article.is-action { border-top: 3px solid var(--bronze); }
.teacher-workbench-grid article.is-action strong { font-size: 28px; }

.student-identity-form {
  display: grid; gap: 15px; max-width: 620px; margin-top: 24px; padding: 22px;
  border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: var(--shadow-sm);
}
.student-identity-form label { display: grid; gap: 7px; }
.student-identity-form label > span { color: var(--text); font-size: 12px; font-weight: 800; }
.student-identity-form input { min-height: 46px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--text); background: #FFFDF8; }
.student-identity-note,
.student-identity-current { color: var(--text-2); font-size: 11px; line-height: 1.7; }
.student-identity-form .form-actions { margin-top: 4px; }

.idm-dashboard-tabs,
.idm-dashboard-metrics article,
.idm-dashboard-section {
  border-color: var(--line) !important;
  border-radius: 9px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}
.idm-dashboard-tabs a.is-active {
  color: var(--brand-on-dark) !important;
  background: #4F5140 !important;
  box-shadow: none !important;
}
.idm-dashboard-metrics article strong { color: var(--brand) !important; }
.idm-unit-row { border-color: var(--line) !important; border-radius: 8px !important; background: var(--surface) !important; }
.idm-unit-index { color: var(--brand) !important; background: var(--brand-soft) !important; }
.idm-unit-actions a,
.idm-unit-actions a.is-primary { color: var(--brand) !important; background: var(--brand-soft) !important; }
.idm-unit-actions a.is-primary { color: #FFFDF8 !important; background: var(--brand) !important; }

/* Formal student-learning-quality view */
.quality-hero {
  border-color: var(--line) !important; border-radius: 10px !important;
  background: linear-gradient(135deg, #FFFDF8 0%, #F4F0E6 70%, #EDE5D9 100%) !important;
  box-shadow: var(--shadow-md) !important;
}
.quality-hero .eyebrow,
.quality-section-kicker,
.quality-hero-card-label,
.quality-control-link,
.quality-focus-link,
.quality-method-card > a,
.quality-row-link { color: var(--brand) !important; }
.quality-hero h1,
.quality-hero-card strong,
.quality-section-intro h2,
.quality-chart-header h3 { color: var(--text) !important; }
.quality-hero-copy > p:not(.eyebrow),
.quality-chart-header p,
.quality-section-intro > p { color: var(--text-2) !important; }
.quality-hero-card,
.quality-control-bar,
.quality-kpi-card,
.quality-chart-card,
.quality-student-section,
.quality-method-card {
  border-color: var(--line) !important; border-radius: 8px !important;
  background: var(--surface) !important; box-shadow: none !important;
}
.quality-hero-card > div span { color: var(--text-2) !important; background: var(--surface-muted) !important; }
.quality-boundary { border-color: #D8CDBE !important; border-radius: 8px !important; background: #F5EEE3 !important; }
.quality-boundary-mark { color: var(--brand) !important; background: var(--brand-soft) !important; }
.quality-boundary strong { color: var(--brand) !important; }
.quality-boundary p { color: var(--text-2) !important; }
.quality-data-status { color: var(--evidence) !important; background: var(--evidence-soft) !important; }
.quality-data-status i,
.quality-live-pill i { background: var(--evidence) !important; box-shadow: 0 0 0 4px rgba(95, 117, 91, .12) !important; }
.quality-select-wrap select,
.quality-table-tools select,
.quality-search input { border-color: var(--line-strong) !important; color: var(--text) !important; background: #FFFDF8 !important; }
.quality-kpi-card.is-blue,
.quality-kpi-card.is-brown { color: var(--brand) !important; border-top-color: var(--brand) !important; }
.quality-kpi-card.is-indigo { color: #4F5140 !important; border-top-color: #4F5140 !important; }
.quality-kpi-card.is-green { color: var(--evidence) !important; border-top-color: var(--evidence) !important; }
.quality-kpi-card.is-amber,
.quality-kpi-card.is-ochre { color: var(--warning) !important; border-top-color: var(--warning) !important; }
.quality-kpi-card.is-purple { color: var(--bronze) !important; border-top-color: var(--bronze) !important; }
.quality-kpi-card.is-slate { color: var(--text-2) !important; border-top-color: var(--text-2) !important; }
.quality-focus-card { border-radius: 8px !important; background: linear-gradient(150deg, #4F5140 0%, #3E4234 56%, #2F2924 100%) !important; box-shadow: 0 12px 28px rgba(47, 41, 36, .16) !important; }
.quality-focus-card .quality-section-kicker,
.quality-focus-code { color: #E7D3A9 !important; }
.quality-focus-link { color: #F4E9D2 !important; }
.quality-dimension-track i { background: linear-gradient(90deg, #6B4A3A, #B17A32) !important; }
.quality-score-bar { background: linear-gradient(180deg, #6B4A3A, #C5A276) !important; }
.quality-insight-line { border-left-color: var(--bronze) !important; color: var(--text-2) !important; background: #F4F0E6 !important; }
.quality-status-evaluated { color: var(--evidence) !important; background: var(--evidence-soft) !important; }
.quality-status-submitted { color: #9D6A45 !important; background: #F4E9D2 !important; }
.quality-status-in_progress { color: var(--warning) !important; background: #F4E9D2 !important; }
.quality-status-not_started { color: var(--text-2) !important; background: var(--surface-muted) !important; }
.quality-evidence-pips i { background: var(--line) !important; }
.quality-evidence-pips i.is-filled { background: var(--bronze) !important; }
.quality-method-card { border-color: #D8CDBE !important; background: linear-gradient(100deg, #F5EEE3, #FBF6ED) !important; }
.quality-method-icon { background: var(--brand) !important; }

/* Teacher-only assistant uses the same formal palette. */
.assistant-shell { border-color: var(--line) !important; border-radius: 10px !important; background: var(--surface) !important; box-shadow: var(--shadow-md) !important; }
.assistant-sidebar { border-color: var(--line) !important; background: #EEE8DC !important; }
.assistant-brand-mark { border-radius: 8px !important; background: var(--brand) !important; box-shadow: none !important; }
.assistant-new-button { border-color: var(--line) !important; border-radius: 8px !important; color: var(--brand) !important; background: var(--surface) !important; box-shadow: none !important; }
.assistant-unit-select select,
.assistant-input-form { border-color: var(--line-strong) !important; border-radius: 8px !important; background: var(--surface) !important; box-shadow: none !important; }
.assistant-history-item:hover,
.assistant-history-item.is-active { border-color: var(--line) !important; background: var(--surface) !important; box-shadow: none !important; }
.assistant-history-icon,
.assistant-suggestion-grid button > span,
.assistant-message-avatar { color: var(--brand) !important; background: var(--brand-soft) !important; }
.assistant-topbar { border-color: var(--line) !important; }
.assistant-topbar-actions > a,
.assistant-sidebar-bottom > a,
.assistant-welcome-eyebrow { color: var(--brand) !important; }
.assistant-conversation { background: radial-gradient(circle at 50% 0%, rgba(237, 229, 217, .8), transparent 48%), var(--surface) !important; }
.assistant-welcome-orb { border-radius: 10px !important; background: var(--brand) !important; box-shadow: none !important; }
.assistant-context-card,
.assistant-suggestion-grid button { border-color: var(--line) !important; border-radius: 8px !important; background: #FBF6ED !important; box-shadow: none !important; }
.assistant-suggestion-grid button:hover { border-color: var(--bronze) !important; background: var(--surface) !important; box-shadow: var(--shadow-sm) !important; }
.assistant-message.is-user .assistant-message-avatar,
.assistant-message.is-user .assistant-message-bubble,
.assistant-send-button { background: var(--brand) !important; box-shadow: none !important; }
.assistant-message-bubble,
.assistant-typing { border-color: var(--line) !important; background: #FBF6ED !important; }
.assistant-input-dock { border-color: var(--line) !important; background: rgba(255, 253, 248, .96) !important; }
.assistant-input-context b { color: var(--brand) !important; }

@media (max-width: 900px) {
  .teacher-workbench-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .teacher-workbench-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .teacher-workbench-grid { grid-template-columns: 1fr; }
  .student-identity-form { margin-top: 18px; padding: 17px; }
}
