:root {
  --ink:#24382f; --muted:#53675d; --green:#12614f; --coral:#a63b4c;
  --blue:#245b99; --amber:#7b5317; --line:#d6e1d9; --wash:#f3f7f4;
  --paper:#fff; --mint:#e3f6ee; --sky:#eaf1ff; --sun:#fff1b8; --peach:#ffe8df;
  --on-primary:#fff; color-scheme:light;
}
html[data-theme=dark] {
  --ink:#f2f5ef; --muted:#c3cdc4; --green:#8ce0bf; --coral:#ffb5a8;
  --blue:#a6c8ff; --amber:#f1d185; --line:#586359; --wash:#30362f;
  --paper:#202321; --mint:#243b33; --sky:#263547; --sun:#3b3525; --peach:#422e2a;
  --on-primary:#14261f; color-scheme:dark;
}
body {background:var(--paper);font-size:16px;color:var(--ink)}
h1,h2,h3,p,a,button,label,summary {overflow-wrap:anywhere}
h1 {font-size:36px} h2 {font-size:22px}
button,input,select,textarea {font:inherit}
button,a,input,select,textarea,summary {scroll-margin:90px 0}
input,select,textarea,button {min-height:44px}
input[type=checkbox],input[type=radio] {min-height:0}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible {outline:3px solid var(--blue);outline-offset:4px}
.wrap {max-width:1320px}
.preview-bar {background:var(--sun);color:var(--ink);font-size:12px;padding:8px 16px}
.header {min-height:88px;gap:18px;flex-wrap:wrap}
.brand {font-size:22px;max-width:none;flex-shrink:1}
.brand>svg {background:var(--sun);color:var(--ink);padding:8px;border-radius:8px;box-sizing:content-box;width:26px;height:26px;transform:rotate(-6deg)}
.header-actions {display:flex;align-items:center;gap:18px;min-width:0}
.header nav {gap:20px;flex-wrap:wrap}
nav a {min-height:44px;display:inline-flex;align-items:center;gap:6px;font-size:14px}
.theme-toggle {width:44px;height:44px}
.page-heading {padding:30px 0 22px}
.page-heading>p:last-child {font-size:17px;max-width:720px}
.eyebrow {font-size:12px;color:var(--green)}
.audience-switch {display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:8px}
.audience-switch button {display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:6px;font-size:15px;color:var(--muted);border:1px solid transparent}
.audience-switch button[aria-pressed=true] {background:var(--sun);color:var(--ink);border-color:var(--amber);font-weight:700}
.audience-panel {display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:120px;padding:20px 0}
.audience-panel h2 {font-size:22px;margin-bottom:6px}.audience-panel p {color:var(--muted);font-size:15px;max-width:470px}
.audience-actions {display:flex;gap:10px;flex-wrap:wrap;max-width:610px}
.button {background:var(--green);color:var(--on-primary);border-color:var(--green);border-radius:6px;font-size:15px;min-height:46px;line-height:1.4;text-align:center}
.button.secondary,.icon-button {background:var(--paper);color:var(--green);border-color:var(--line)}
.button.secondary:hover,.icon-button:hover {border-color:var(--green);background:var(--mint)}
.icon-button {width:44px;height:44px;border-radius:6px}
.icon-button[aria-pressed=true] {background:var(--mint);border-color:var(--green)}
.search {height:56px;border-radius:6px;border:2px solid var(--green);margin-bottom:16px;overflow:visible;background:var(--paper)}
.search input {font-size:16px;background:transparent}
.search button {height:52px;width:52px;border-radius:0 3px 3px 0;color:var(--on-primary);flex-shrink:0}
.subject-shortcuts {display:flex;gap:10px;flex-wrap:wrap;margin:0 0 24px}
.subject-shortcuts button {display:flex;gap:8px;align-items:center;padding:9px 14px;border-radius:6px;border:1px solid var(--line);background:var(--paper);font-size:14px}
.subject-shortcuts button[data-subject=Mathematics] {background:var(--sky)}
.subject-shortcuts button[data-subject=Science] {background:var(--mint)}
.subject-shortcuts button[data-subject=Cross-curricular] {background:var(--peach)}
.subject-shortcuts button[aria-pressed=true] {border-color:var(--ink);box-shadow:inset 0 -3px 0 var(--ink);font-weight:700}
.catalog-layout {grid-template-columns:185px minmax(0,1fr);gap:28px}
.filter-fields label {font-size:14px}
select {background:var(--paper);border-color:var(--line);border-radius:6px;padding:10px;min-width:0}
.filter-fields .text-button {font-size:14px}
.resource-grid {gap:20px}
.resource-card {border-radius:8px;box-shadow:0 3px 0 var(--wash);transition:transform .16s ease,border-color .16s ease}
.resource-card:hover {transform:translateY(-3px);border-color:var(--green)}
.resource-art {background:var(--sky);border-bottom:4px solid var(--blue);padding:10px}
.resource-card:nth-child(3n+2) .resource-art {background:var(--mint);border-color:var(--green)}
.resource-card:nth-child(3n) .resource-art {background:var(--peach);border-color:var(--coral)}
.resource-art img {background:#fff;border-radius:4px;object-fit:contain}
.card-content {padding:18px}.card-content h3 {font-size:19px}
.card-meta {font-size:12px;flex-wrap:wrap}.card-content p,.creator-link {font-size:14px}
.availability {color:var(--coral);font-size:13px}
.results-toolbar h2 {font-size:19px}.results-toolbar>span,.sort {font-size:13px}
.empty {background:var(--wash);padding:36px 18px;border-top:2px solid var(--line)}
.empty svg {color:var(--blue)}
.section-links a {font-size:15px;min-height:44px}
.directory-entry {border-top:4px solid var(--blue);border-radius:8px}
.directory-entry:nth-child(3n+2) {border-top-color:var(--green)}
.directory-entry:nth-child(3n) {border-top-color:var(--coral)}
.directory-entry p:last-child {font-size:16px}
.notice {font-size:14px;color:var(--coral)}
.detail-meta dt,.detail-meta dd {font-size:15px}
.detail-copy>p,.resource-notes p,.lesson-copy p,.lesson-copy li {font-size:17px}
.lesson-copy {min-width:0}.lesson-copy h2 {font-size:24px}
.quiz label {padding:14px 12px;font-size:16px;border-radius:6px;background:var(--paper);min-height:48px}
.quiz .correct {background:var(--mint);border-color:var(--green)}
.quiz .incorrect {background:var(--peach);border-color:var(--coral)}
.quiz .explanation {font-size:16px}
.lesson-notes h3 {font-size:16px}
.reasoning {background:var(--mint)}
#vendor-form input:not([type=checkbox]),#vendor-form textarea,.directory-filters input,input:not([type=checkbox],[type=range],[type=radio]),textarea {background:var(--paper);border-color:var(--line);color:var(--ink)}
.desk-heading h1 {font-size:30px}
.desk-heading p:last-child {font-size:14px}
.desk-controls {background:var(--wash);padding:18px 14px}
.desk-controls>label:not(.mode-toggle) {font-size:14px;min-width:0;flex-basis:200px}
.desk-summary strong {color:var(--green)}
.desk-summary span {font-size:14px}
.bottleneck {background:var(--sky);border-color:var(--blue)}
.bottleneck p {font-size:14px}
.station>h2 {background:var(--mint);padding:12px;font-size:18px;border-color:var(--green)}
.station[data-station=small-group]>h2 {background:var(--sun);border-color:var(--amber)}
.station[data-station=catch-up]>h2 {background:var(--sky);border-color:var(--blue)}
.station>p {font-size:14px;padding:10px 0}
.learner-head strong {font-size:16px}.learner-row p,.learner-row summary,.learner-row label,.learner-row ul,.learner-row select {font-size:14px}
.learner-row select {min-height:44px}.learner-row {padding:16px 0}
.review-queue {border-color:var(--coral)}
.review-queue h2 {color:var(--coral)}
.projector-grid section:nth-child(1) {border-color:var(--green)}
.projector-grid section:nth-child(2) {border-color:var(--amber)}
.projector-grid section:nth-child(3) {border-color:var(--blue)}
.funding-item label,.desk-fields label,.field {font-size:14px}
.funding-item input[type=checkbox] {width:20px;height:20px}
footer {font-size:14px;flex-wrap:wrap}footer a,footer button {min-height:44px;display:inline-flex;align-items:center}
dialog {background:var(--paper);color:var(--ink)}
dialog::backdrop {background:#101712a6}
.mobile-nav {display:none}
@media(max-width:1100px) {
  .header {flex-direction:row;align-items:center}.header-actions {margin-left:auto}
  .header nav {gap:12px}.brand {font-size:20px}
  .resource-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .audience-panel {align-items:flex-start;flex-direction:column;min-height:160px}
}
@media(max-width:760px) {
  .wrap {padding-left:18px;padding-right:18px}
  h1 {font-size:30px}.page-heading {padding:24px 0 18px}
  .catalog-layout {grid-template-columns:minmax(0,1fr)}
  .header {padding-top:12px;padding-bottom:12px;min-height:76px}
  .marketplace-workspace .header nav {display:none}
  .marketplace-workspace {padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .mobile-nav {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;gap:0;z-index:5;background:var(--paper);border-top:1px solid var(--line);padding:4px 6px calc(4px + env(safe-area-inset-bottom,0px))}
  .mobile-nav a {display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;min-height:64px;padding:6px 2px;font-size:12px;line-height:1.4;white-space:normal;text-align:center;border:0;border-radius:6px}
  .mobile-nav a[aria-current] {background:var(--mint);color:var(--green)}
  .audience-switch {gap:4px}.audience-switch button {font-size:14px;padding:8px 10px;flex:1;justify-content:center}
  .audience-switch button svg {display:none}
  .audience-panel {padding:18px 0;min-height:175px;gap:14px}
  .audience-actions {width:100%;gap:8px}.audience-actions .button {flex:1;min-width:140px}
  .subject-shortcuts {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .subject-shortcuts button {font-size:14px;padding:8px 10px}
  .filter-fields {grid-template-columns:1fr}
  .resource-grid {gap:14px}.card-content {padding:14px}
  .resource-art {padding:6px}.card-meta {flex-direction:column}
  .teacher-workspace .header {align-items:flex-start}
  .teacher-workspace .header-actions {width:100%;justify-content:space-between}
  .teacher-workspace .header nav {gap:12px;flex:1;width:auto}
  .teacher-workspace .header nav a {font-size:14px}
}
@media(max-width:500px) {
  .resource-grid {grid-template-columns:minmax(0,1fr)}
  .brand {font-size:18px;max-width:calc(100% - 62px)}.brand>svg {width:24px;height:24px;padding:7px}
  .header-actions {gap:8px}.audience-panel h2 {font-size:21px}
  .audience-actions .button {font-size:14px}
  .card-content h3 {font-size:20px}.card-meta {flex-direction:row}
  .desk-controls>label:not(.mode-toggle) {flex-basis:100%}
  .desk-heading h1 {font-size:26px}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .resource-card:hover {transform:none}
}
@media print {
  html[data-theme] {--ink:#111;--muted:#333;--paper:#fff;--green:#174d3b;--line:#999;color-scheme:light}
  .mobile-nav,.theme-toggle {display:none!important}
  .marketplace-workspace {padding-bottom:0}
}
