:root {
  --antique-canvas: #FAF0E6;
  --deep-forest: #0C2E24;
  --burnt-terracotta: #CD6F3D;
  --sage-leaf: #A2BC9F;
  --dusty-rose: #E4B7A5;
  --muted-ochre: #E2C08A;
  --walnut-brown: #947863;
  --ink: var(--deep-forest);
  --muted: var(--walnut-brown);
  --paper: var(--antique-canvas);
  --cream: var(--antique-canvas);
  --card: rgba(250, 240, 230, 0.92);
  --line: rgba(12, 46, 36, 0.16);
  --moss: var(--deep-forest);
  --moss-2: var(--sage-leaf);
  --clay: var(--burnt-terracotta);
  --clay-light: var(--dusty-rose);
  --gold: var(--muted-ochre);
  --blue: var(--sage-leaf);
  --violet: var(--dusty-rose);
  --shadow: 0 18px 60px rgba(12, 46, 36, 0.13);
  --serif: "Fraunces", Georgia, serif;
  --sans: "DM Sans", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--antique-canvas);
  font-family: var(--sans);
  min-height: 100vh;
}
body.drawer-open, body.dialog-open { overflow: hidden; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 100; padding: .8rem 1rem; background: var(--ink); color: #fff; border-radius: 0 0 .6rem .6rem; }
.skip-link:focus { top: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

.topbar {
  position: sticky; top: 0; z-index: 30;
  min-height: 72px; display: flex; align-items: center; justify-content: space-between;
  padding: .8rem clamp(1rem, 4vw, 4.5rem);
  border-bottom: 1px solid rgba(53,93,76,.15);
  background: rgba(250,240,230,.92); backdrop-filter: blur(18px);
}
.brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; }
.brand-mark { width: 48px; height: 48px; display: grid; place-items: center; }
.brand-mark img { width:48px; height:48px; object-fit:contain; object-position:center; }
.brand-lockup { display: grid; line-height: 1.05; }
.brand-wordmark { display:block; width:132px; height:auto; }
.brand small { font-size: .58rem; letter-spacing: .08em; color: var(--muted); }
nav { display: flex; align-items: center; gap: .35rem; }
.text-button, .icon-button { border: 0; background: transparent; cursor: pointer; border-radius: 2rem; }
.text-button { padding: .7rem .85rem; font-size: .82rem; font-weight: 600; }
.text-button:hover, .text-button:focus-visible { background: rgba(53,93,76,.08); }
.icon-button { width: 40px; height: 40px; background: var(--ink); color: #fff; }
.account-menu-wrap { position:relative; }
.avatar-button { width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(53,93,76,.18); border-radius:50%; background:var(--ink); color:#fff; box-shadow:0 8px 22px rgba(32,52,45,.16); cursor:pointer; }
.avatar-button:hover,.avatar-button:focus-visible,.avatar-button[aria-expanded="true"] { background:var(--burnt-terracotta); outline:3px solid rgba(205,111,61,.2); outline-offset:2px; }
.avatar-button svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.account-menu { position:absolute; z-index:60; top:calc(100% + .7rem); right:0; width:min(290px,calc(100vw - 2rem)); display:grid; gap:.2rem; padding:.65rem; border:1px solid rgba(53,93,76,.16); border-radius:1rem; background:rgba(255,250,240,.98); box-shadow:0 22px 65px rgba(32,52,45,.22); backdrop-filter:blur(18px); }
.account-menu[hidden] { display:none; }
.account-menu::before { content:""; position:absolute; top:-7px; right:15px; width:12px; height:12px; border-left:1px solid rgba(53,93,76,.16); border-top:1px solid rgba(53,93,76,.16); background:var(--antique-canvas); transform:rotate(45deg); }
.account-menu-label { padding:.45rem .65rem .35rem; color:var(--clay); font-size:.58rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.account-menu button,.account-menu a { display:grid; grid-template-columns:1fr; gap:.12rem; width:100%; padding:.72rem .7rem; border:0; border-radius:.7rem; background:transparent; text-align:left; text-decoration:none; cursor:pointer; }
.account-menu button:hover,.account-menu button:focus-visible,.account-menu a:hover,.account-menu a:focus-visible { background:rgba(53,93,76,.08); outline:0; }
.account-menu button span,.account-menu a span { font-size:.78rem; font-weight:800; }
.account-menu button small,.account-menu a small { color:var(--muted); font-size:.62rem; }
.account-menu .menu-print { grid-template-columns:28px 1fr; align-items:center; margin-top:.25rem; border-top:1px solid var(--line); border-radius:0 0 .7rem .7rem; }
.menu-print svg { grid-row:1; width:20px; height:20px; fill:none; stroke:var(--moss); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.menu-print span { grid-column:2; }

.hero {
  min-height: 625px; position: relative; overflow: hidden;
  padding: clamp(5rem, 9vw, 8.5rem) clamp(1rem, 8vw, 9rem) 4rem;
  border-bottom: 1px solid rgba(53,93,76,.17);
}
.hero::before { content:""; position:absolute; width:34rem; height:18rem; right:18%; top:8%; border-radius:52% 48% 66% 34%; background:var(--sage-leaf); opacity:.16; transform:rotate(-8deg); pointer-events:none; }
.hero::after { content:""; position:absolute; width:26rem; height:15rem; right:-4%; bottom:5%; border-radius:44% 56% 34% 66%; background:var(--dusty-rose); opacity:.2; transform:rotate(14deg); pointer-events:none; }
.eyebrow, .section-kicker { display: block; margin-bottom: 1.15rem; color: var(--clay); font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3 { font-family: var(--serif); margin: 0; font-weight: 500; }
h1 { max-width: 860px; font-size: clamp(4rem, 10vw, 8.8rem); line-height: .82; letter-spacing: -.055em; position: relative; z-index: 2; }
h1 em { color: var(--moss-2); font-weight: 500; }
.hero-copy { max-width: 610px; margin: 2rem 0 0 .45rem; font-size: clamp(1.05rem, 1.5vw, 1.35rem); line-height: 1.65; color: var(--walnut-brown); position: relative; z-index: 2; }
.hero-actions { margin: 2rem 0 0 .45rem; display: flex; gap: .7rem; flex-wrap: wrap; position: relative; z-index: 2; }
.primary-button, .secondary-button { min-height: 48px; border-radius: 999px; padding: .75rem 1.2rem; cursor: pointer; border: 1px solid var(--moss); font-weight: 700; font-size: .82rem; }
.primary-button { background: var(--moss); color: #fff; box-shadow: 0 10px 28px rgba(53,93,76,.2); }
.primary-button span { margin-left: .75rem; }
.secondary-button { background: rgba(255,255,255,.35); }
.hero-actions a.secondary-button { display:inline-flex; align-items:center; text-decoration:none; }
.primary-button:hover,.primary-button:focus-visible { transform: translateY(-1px); background: var(--burnt-terracotta); border-color:var(--burnt-terracotta); }
.secondary-button:hover,.secondary-button:focus-visible { background: var(--dusty-rose); }
.hero-meta { margin: 4.5rem 0 0 .45rem; display: flex; gap: clamp(2rem, 5vw, 5rem); position: relative; z-index: 2; }
.hero-meta div { display: grid; }
.hero-meta strong { font: 600 1.7rem var(--serif); }
.hero-meta span { color: var(--muted); font-size: .69rem; text-transform: uppercase; letter-spacing: .1em; }

.calendar-shell { padding: clamp(3.5rem, 7vw, 7rem) clamp(1rem, 5vw, 5.5rem); max-width: 1600px; margin: auto; }
.calendar-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2.5rem; }
.calendar-heading h2 { font-size: clamp(2.8rem, 6vw, 5.7rem); line-height: .95; }
.calendar-heading h2 span { color: var(--moss-2); font-style: italic; }
.progress-card { display: flex; gap: 1rem; align-items: center; padding: .8rem 1rem .8rem .8rem; border: 1px solid var(--line); border-radius: 1rem; background: rgba(255,255,255,.35); }
.progress-card > div:last-child { display: grid; }
.progress-card strong { font-size: .82rem; }
.progress-card small { color: var(--muted); margin-top: .2rem; }
.progress-ring { --progress: 0deg; width: 48px; height:48px; border-radius:50%; display:grid; place-items:center; background:var(--burnt-terracotta); border:5px solid var(--dusty-rose); position:relative; }
.progress-ring::after { content:""; position:absolute; inset:5px; border-radius:50%; background:var(--paper); }
.progress-ring span { z-index:1; font-weight:700; font-size:.66rem; }

.toolbar { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.filters { display: flex; flex-wrap: wrap; gap: .45rem; }
.filter { border: 1px solid var(--line); background: rgba(255,255,255,.36); border-radius: 999px; padding: .6rem .86rem; font-size: .76rem; font-weight: 700; cursor: pointer; }
.filter.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.dot { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:.42rem; }
.dot.together { background: var(--gold); }.dot.age7 { background: var(--clay); }.dot.age11 { background: var(--violet); }
.dot.prep { background: var(--burnt-terracotta); }
.dot.learners { background:var(--violet); }
.search-box { display: flex; align-items:center; gap:.5rem; min-width: 245px; padding: .5rem .75rem; border-bottom:1px solid var(--ink); }
.search-box input { border:0; outline:0; background:transparent; width:100%; color:var(--ink); font-size:.8rem; }
.weekdays, .calendar-grid { display:grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.weekdays { color: var(--muted); font-size:.64rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; text-align:right; padding:0 .65rem .6rem; }
.calendar-grid { border-left:1px solid var(--line); border-top:1px solid var(--line); background:rgba(255,255,255,.18); }
.day-card { min-height: 210px; position:relative; padding: .8rem; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,253,247,.55); text-align:left; cursor:pointer; overflow:hidden; transition: background .18s, transform .18s, box-shadow .18s; }
.day-card:hover, .day-card:focus-visible { z-index:2; background:var(--cream); box-shadow:var(--shadow); transform:translateY(-2px); outline:0; }
.day-card.weekend { background:rgba(225,229,211,.48); }
.day-card.completed::after { content:"✓"; position:absolute; right:.65rem; bottom:.6rem; width:22px; height:22px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--moss); font-size:.7rem; }
.day-top { display:flex; justify-content:space-between; align-items:start; }
.day-number { font:600 1.25rem var(--serif); }
.day-time { color:var(--muted); font-size:.62rem; }
.arc-label { display:inline-block; margin-top:1.3rem; color:var(--clay); text-transform:uppercase; letter-spacing:.12em; font-size:.54rem; font-weight:700; }
.day-card h3 { margin-top:.35rem; font-size:clamp(.95rem, 1.15vw, 1.2rem); line-height:1.12; }
.day-card p { color:var(--muted); font-size:.67rem; line-height:1.4; margin:.5rem 0 0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.track-dots { display:flex; gap:.3rem; position:absolute; left:.8rem; bottom:.75rem; }
.track-dots i { width:6px; height:6px; border-radius:50%; background:var(--gold); }.track-dots i:nth-child(2){background:var(--clay)}.track-dots i:nth-child(3){background:var(--violet)}
.day-card[data-hidden="true"] { display:none; }
.prep-flag { position:absolute; right:.65rem; bottom:.65rem; display:flex; align-items:center; gap:.25rem; color:var(--burnt-terracotta); font-size:.58rem; font-weight:700; letter-spacing:.04em; }
.day-card.completed .prep-flag { right:2.35rem; }
.calendar-grid.filtered { grid-template-columns:repeat(4,minmax(0,1fr)); }
.calendar-note { margin:1.2rem 0 0; font-size:.72rem; color:var(--muted); text-align:right; }
.calendar-note span { color:var(--clay); }

.year-curriculum { max-width:1600px; margin:0 auto clamp(4rem,8vw,8rem); padding:clamp(2.5rem,5vw,5rem) clamp(1rem,5vw,5.5rem); border-top:1px solid rgba(53,93,76,.17); }
.year-heading { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:clamp(2rem,5vw,5rem); align-items:end; }
.year-heading h2 { max-width:780px; font-size:clamp(2.6rem,5vw,5.2rem); line-height:.96; }
.year-heading p { max-width:760px; color:var(--muted); line-height:1.7; }
.year-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; }
.year-stats div { display:grid; gap:.2rem; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:rgba(255,255,255,.42); }
.year-stats strong { font:600 1.7rem var(--serif); color:var(--moss); }
.year-stats span { color:var(--muted); font-size:.61rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.year-controls { display:grid; grid-template-columns:minmax(240px,1fr) minmax(180px,.55fr) minmax(260px,1fr); gap:.75rem; align-items:end; margin:2rem 0 1rem; }
.year-search { width:100%; background:var(--canvas-lift); }
.year-progress { display:flex; justify-content:space-between; gap:1rem; padding:.9rem 1rem; border-radius:.8rem; background:var(--sage-wash); color:var(--muted); font-size:.7rem; line-height:1.5; }
.year-progress b { color:var(--ink); }
.year-lesson-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
.year-lesson-card { display:grid; gap:.45rem; min-height:230px; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:var(--canvas-lift); color:inherit; text-align:left; cursor:pointer; }
.year-lesson-card:hover,.year-lesson-card:focus-visible { border-color:var(--moss); box-shadow:0 12px 32px rgba(53,93,76,.12); outline:none; transform:translateY(-1px); }
.year-card-date { color:var(--clay); font-size:.68rem; font-weight:900; }
.year-lesson-card h3 { font-size:1.3rem; }
.year-lesson-card p { margin:0; color:var(--muted); font-size:.72rem; line-height:1.5; }
.year-lesson-card small { color:var(--moss); font-size:.63rem; font-weight:700; }
.year-card-action { align-self:end; color:var(--clay); font-size:.68rem; font-weight:900; }
.year-loading { grid-column:1/-1; padding:2rem; border:1px dashed var(--line); border-radius:1rem; color:var(--muted); text-align:center; }
.grade-focus { color:var(--muted); font-size:.7rem; line-height:1.55; }

.method-strip { display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:1px; background:rgba(255,255,255,.25); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.method-intro, .principle { min-height:230px; padding:2.4rem; background:var(--sage-wash); text-align:left; }
.method-intro h2 { font-size:clamp(1.7rem,3vw,2.8rem); line-height:1.15; }
.principle { border:0; border-left:1px solid rgba(53,93,76,.16); cursor:pointer; display:flex; flex-direction:column; justify-content:flex-end; }
.principle:hover { background:var(--muted-ochre); }
.principle > span { margin-bottom:auto; color:var(--clay); font:500 2rem var(--serif); }
.principle b { font:500 1.3rem var(--serif); }
.principle small { margin-top:.35rem; color:var(--muted); }

.lesson-drawer { position:fixed; inset:0; z-index:60; visibility:hidden; pointer-events:none; }
.lesson-drawer.open { visibility:visible; pointer-events:auto; }
.drawer-scrim { position:absolute; inset:0; background:rgba(22,36,30,.52); opacity:0; transition:opacity .25s; }
.lesson-drawer.open .drawer-scrim { opacity:1; }
.drawer-panel { position:absolute; top:0; right:0; height:100%; width:min(760px, 100%); overflow-y:auto; padding:clamp(1.2rem,5vw,4rem); background:var(--cream); box-shadow:-20px 0 60px rgba(20,35,29,.2); transform:translateX(100%); transition:transform .3s ease; }
.lesson-drawer.open .drawer-panel { transform:translateX(0); }
.drawer-close, .dialog-close { position:absolute; right:1rem; top:1rem; width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:transparent; font-size:1.5rem; cursor:pointer; }
.drawer-date { color:var(--clay); text-transform:uppercase; letter-spacing:.15em; font-size:.65rem; font-weight:700; }
.drawer-panel h2 { font-size:clamp(2.3rem,6vw,4.6rem); line-height:.95; margin:.8rem 3rem 1rem 0; }
.big-question { font:500 clamp(1.15rem,2.2vw,1.5rem)/1.45 var(--serif); color:var(--moss-2); border-left:3px solid var(--gold); padding-left:1rem; }
.lesson-meta { display:flex; flex-wrap:wrap; gap:.45rem; margin:1.4rem 0 2.2rem; }
.pill { padding:.4rem .7rem; border-radius:99px; background:var(--sage-wash); font-size:.68rem; font-weight:700; }
.lesson-section { margin:2.2rem 0; }
.teacher-prep { margin:1.5rem 0 2.4rem; padding:1.2rem; border:1px solid rgba(192,71,58,.28); border-radius:1rem; background:var(--terracotta-wash); }
.teacher-prep .section-title { margin-bottom:.45rem; }
.teacher-prep .section-title span { background:var(--burnt-terracotta); }
.teacher-prep > p { margin:.25rem 0 1rem; color:var(--walnut-brown); font-size:.75rem; line-height:1.5; }
.prep-item { display:grid; grid-template-columns:minmax(8rem,.7fr) minmax(0,1.8fr); gap:.35rem 1rem; padding:.65rem 0; border-top:1px solid rgba(192,71,58,.16); }
.prep-item:first-of-type { border-top:0; }
.prep-item > span { display:flex; flex-direction:column; gap:.18rem; min-width:0; }
.prep-item b { line-height:1.3; }
.prep-item small { color:var(--walnut-brown); font-size:.76rem; line-height:1.45; }
.prep-list { display:grid; gap:.55rem; }
.prep-task { display:grid; grid-template-columns:auto 1fr; gap:.75rem; width:100%; padding:.8rem; border:1px solid rgba(155,69,55,.2); border-radius:.75rem; background:rgba(255,255,255,.55); text-align:left; cursor:pointer; }
.prep-task:hover { border-color:var(--burnt-terracotta); background:var(--terracotta-wash); }
.prep-task .check { width:21px; height:21px; border:1.5px solid var(--burnt-terracotta); border-radius:50%; display:grid; place-items:center; color:#fff; }
.prep-task.done .check { background:var(--burnt-terracotta); }.prep-task.done .check::before { content:"✓"; }
.prep-task b { display:block; font-size:.78rem; }.prep-task small { display:block; margin-top:.2rem; color:var(--walnut-brown); line-height:1.45; }
.prep-when { display:inline-block; margin-bottom:.25rem; color:var(--burnt-terracotta); font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.day-schedule { display:grid; border-top:1px solid var(--line); }
.schedule-row { display:grid; grid-template-columns:64px 1fr auto; gap:.8rem; align-items:start; padding:.72rem .25rem; border:0; border-bottom:1px solid var(--line); background:transparent; text-align:left; cursor:pointer; }
.schedule-row:hover { background:rgba(53,93,76,.05); }.schedule-row.done { opacity:.55; text-decoration:line-through; }
.schedule-row time { color:var(--clay); font:600 .83rem var(--serif); }.schedule-row b { display:block; font-size:.77rem; }.schedule-row small { display:block; color:var(--muted); line-height:1.4; margin-top:.18rem; }.schedule-row > span:last-child { color:var(--muted); font-size:.61rem; white-space:nowrap; }
.load-proof { display:grid; grid-template-columns:repeat(3,1fr); gap:.55rem; margin:1rem 0 2rem; }
.load-proof div { padding:.75rem; border-radius:.75rem; background:var(--sage-wash); display:grid; }.load-proof b { font:600 1rem var(--serif); }.load-proof small { color:var(--muted); font-size:.62rem; }
.section-title { display:flex; gap:.65rem; align-items:center; margin-bottom:.8rem; }
.section-title span { width:28px; height:28px; display:grid; place-items:center; color:#fff; border-radius:50%; background:var(--gold); font-size:.65rem; }
.section-title.age7 span { background:var(--clay); }.section-title.age11 span { background:var(--violet); }.section-title.studio span { background:var(--moss); }
.section-title h3 { font-size:1.35rem; }
.task-list { display:grid; gap:.55rem; }
.task { display:grid; grid-template-columns:auto 1fr auto; gap:.8rem; align-items:start; width:100%; padding:.85rem; border:1px solid var(--line); border-radius:.8rem; background:rgba(255,255,255,.45); text-align:left; cursor:pointer; }
.task:hover { border-color:var(--moss-2); background:var(--ochre-wash); }
.task .check { width:21px; height:21px; margin-top:.1rem; border:1.5px solid var(--moss-2); border-radius:50%; display:grid; place-items:center; font-size:.65rem; color:#fff; }
.task.done .check { background:var(--moss); border-color:var(--moss); }
.task.done .check::before { content:"✓"; }
.task b { display:block; font-size:.8rem; }.task small { display:block; color:var(--muted); line-height:1.45; margin-top:.2rem; }
.task .minutes { color:var(--muted); font-size:.62rem; white-space:nowrap; }
.materials { display:flex; flex-wrap:wrap; gap:.45rem; }
.material { border:1px solid var(--line); border-radius:99px; background:transparent; padding:.48rem .7rem; font-size:.7rem; cursor:pointer; }
.material.checked { background:var(--sage-wash); border-color:var(--sage-leaf); text-decoration:line-through; }
.parent-cue { padding:1rem 1.1rem; border-radius:.9rem; background:var(--sage-wash); color:var(--deep-forest); line-height:1.55; font-size:.78rem; }
.parent-cue b { color:var(--ink); }
.resource-list { display:grid; gap:.55rem; }
.resource-link { display:flex; justify-content:space-between; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--line); text-decoration:none; font-size:.78rem; font-weight:700; }
.resource-link small { color:var(--muted); font-weight:400; }.resource-link:hover { color:var(--clay); }
.finish-day { width:100%; margin-top:1rem; }

.info-dialog { width:min(820px, calc(100% - 2rem)); max-height:90vh; overflow:auto; padding:clamp(1.5rem,5vw,4rem); border:0; border-radius:1.2rem; color:var(--ink); background:var(--cream); box-shadow:var(--shadow); }
.info-dialog::backdrop { background:rgba(22,36,30,.55); backdrop-filter:blur(3px); }
.info-dialog h2 { font-size:clamp(2.1rem,5vw,4.2rem); line-height:1; margin:0 2rem 1.3rem 0; }
.info-dialog > p { color:var(--muted); line-height:1.65; }
.dialog-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); margin:2rem 0; border:1px solid var(--line); }
.dialog-grid article { background:var(--cream); padding:1.3rem; }.dialog-grid b { font-family:var(--serif); }.dialog-grid p { color:var(--muted); font-size:.78rem; line-height:1.55; }
.source-links { display:flex; flex-wrap:wrap; gap:.6rem; }.source-links a { padding:.65rem .8rem; border:1px solid var(--line); border-radius:99px; font-size:.72rem; font-weight:700; text-decoration:none; }
.timeline { list-style:none; margin:2rem 0; padding:0; }
.timeline li { display:grid; grid-template-columns:70px 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); }.timeline time { color:var(--clay); font:600 1.05rem var(--serif); }.timeline div { display:grid; }.timeline span { color:var(--muted); font-size:.78rem; margin-top:.2rem; }
.soft-note { background:var(--sage-wash); padding:1rem; border-radius:.8rem; }
.library-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.65rem; margin-top:2rem; }
.library-card { display:flex; flex-direction:column; min-height:125px; padding:1rem; border:1px solid var(--line); border-radius:.8rem; text-decoration:none; background:rgba(255,255,255,.4); }
.library-card:hover { border-color:var(--moss); transform:translateY(-1px); }.library-card b { font-family:var(--serif); }.library-card span { color:var(--muted); font-size:.72rem; line-height:1.45; margin:.4rem 0 auto; }.library-card small { margin-top:.6rem; color:var(--clay); font-weight:700; }
.toast { position:fixed; z-index:100; left:50%; bottom:1.5rem; transform:translate(-50%, 150%); background:var(--ink); color:#fff; padding:.7rem 1rem; border-radius:99px; font-size:.75rem; transition:transform .25s; box-shadow:var(--shadow); }.toast.show { transform:translate(-50%,0); }
.audit-hours { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; margin:1.6rem 0; }.audit-hours article { padding:1rem; border-radius:.8rem; background:var(--sage-wash); display:grid; }.audit-hours strong { font:600 1.8rem var(--serif); }.audit-hours span { color:var(--muted); font-size:.68rem; }
.coverage-table { margin:1.5rem 0; border-top:1px solid var(--line); }.coverage-table [role="row"] { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:.8rem; padding:.7rem .3rem; border-bottom:1px solid var(--line); font-size:.74rem; }.coverage-table [role="row"]:first-child { color:var(--clay); text-transform:uppercase; letter-spacing:.08em; font-size:.62rem; }

@media (max-width: 1050px) {
  .calendar-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.weekdays { display:none; }
  .method-strip { grid-template-columns:1fr 1fr; }.principle:nth-child(4){grid-column:2}.method-intro{grid-row:span 2}
}
@media (max-width: 700px) {
  .topbar { min-height:64px; padding:.65rem 1rem; }
  .brand-mark { width:34px; height:34px; }
  .avatar-button { width:40px; height:40px; }
  .hero { min-height:620px; padding-top:5rem; }.hero-copy{max-width:86%}.hero-meta{gap:1.3rem;margin-top:3rem}.hero-meta strong{font-size:1.35rem}.hero-meta span{font-size:.56rem}
  .calendar-heading { align-items:start; flex-direction:column; }.progress-card { width:100%; }.toolbar { flex-direction:column; }.search-box{min-width:0}.calendar-grid, .calendar-grid.filtered { grid-template-columns:repeat(2,minmax(0,1fr)); }.day-card{min-height:190px}
  .method-strip { grid-template-columns:1fr; }.method-intro,.principle{min-height:180px}.method-intro{grid-row:auto}.principle:nth-child(4){grid-column:auto}
  .dialog-grid,.library-grid { grid-template-columns:1fr; }
  .audit-hours,.load-proof { grid-template-columns:1fr; }.coverage-table [role="row"] { grid-template-columns:1.3fr .8fr .8fr; }
}
@media (max-width: 390px) { .calendar-grid,.calendar-grid.filtered{grid-template-columns:1fr}.day-card{min-height:165px}.hero-meta{flex-wrap:wrap} }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
@media print { .topbar,.hero,.year-curriculum,.toolbar,.calendar-note,.method-strip,.lesson-drawer,dialog,.toast{display:none!important}.calendar-shell{padding:1rem}.calendar-grid{grid-template-columns:repeat(5,1fr)}.day-card{min-height:150px;break-inside:avoid}.progress-card{display:none}body{background:#fff} }

/* Scheduling studio */
.schedule-status { margin: 0 0 1rem; padding: 1rem 1.1rem; display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center; border:1px solid rgba(53,93,76,.2); border-radius:1rem; background:var(--ochre-wash); }
.schedule-status h3 { font-size:1.15rem; }
.schedule-status p { margin:.25rem 0 0; color:var(--muted); font-size:.73rem; line-height:1.5; }
.schedule-status .status-actions { display:flex; gap:.45rem; flex-wrap:wrap; justify-content:flex-end; }
.compact-button { border:1px solid var(--moss); border-radius:999px; background:transparent; padding:.55rem .8rem; font-size:.68rem; font-weight:800; cursor:pointer; }
.compact-button:hover { background:var(--moss); color:#fff; }
.compact-button.danger { border-color:var(--burnt-terracotta); color:var(--burnt-terracotta); }
.compact-button.danger:hover { background:var(--burnt-terracotta); color:#fff; }

.calendar-grid .day-card { display:block; padding:0; }
.day-open { width:100%; min-height:238px; padding:.85rem .8rem 3.35rem; border:0; background:transparent; text-align:left; color:inherit; cursor:pointer; }
.day-card:hover .day-open,.day-open:focus-visible { outline:0; }
.day-card.closed { background:rgba(148,120,99,.12); box-shadow:inset 5px 0 0 var(--walnut-brown); }
.day-card.closed h3,.day-card.closed p { color:var(--walnut-brown); }
.day-card.open-buffer { background:var(--ochre-wash); }
.day-card.moved { box-shadow:inset 0 3px 0 var(--gold); }
.availability-toggle { position:absolute; z-index:3; right:.55rem; top:.55rem; min-width:58px; padding:.32rem .52rem; border:1px solid var(--line); border-radius:99px; background:rgba(255,253,247,.94); color:var(--muted); font-size:.55rem; font-weight:800; line-height:1.1; cursor:pointer; }
.availability-toggle:hover { border-color:var(--moss); color:var(--moss); }
.day-open .day-top { min-height:1.5rem; padding-right:4.2rem; }
.day-open .day-time { position:absolute; top:2.55rem; right:.65rem; max-width:4.3rem; text-align:right; line-height:1.2; }
.day-open .arc-label { min-height:1.55rem; margin-top:1.05rem; padding-right:3.65rem; line-height:1.35; }
.move-label { display:block; min-height:.78rem; margin:.18rem 0 .02rem; color:var(--burnt-terracotta); font-size:.52rem; font-weight:800; line-height:1.25; text-transform:uppercase; letter-spacing:.065em; }
.slot-label { position:absolute; left:.8rem; bottom:1.7rem; color:var(--moss); font-size:.58rem; font-weight:800; }
.day-card .prep-flag { bottom:.55rem; }
.day-card .track-dots { bottom:.6rem; }

.schedule-banner { margin:-.2rem 0 1.2rem; padding:1rem; border-radius:.9rem; background:var(--ochre-wash); border:1px solid rgba(53,93,76,.18); }
.schedule-banner strong { display:block; font:600 1.05rem var(--serif); }
.schedule-banner p { margin:.3rem 0 .7rem; color:var(--muted); font-size:.74rem; line-height:1.5; }
.empty-day { padding:2rem 0; }
.empty-day h2 { margin-top:.7rem; }
.empty-day .primary-button { margin-right:.5rem; }

.settings-dialog { width:min(1040px,calc(100% - 1.2rem)); }
.settings-dialog > p { max-width:760px; }
.settings-tabs { display:flex; gap:.4rem; margin:1.4rem 0; overflow-x:auto; padding-bottom:.2rem; }
.settings-tab { border:1px solid var(--line); border-radius:999px; background:transparent; padding:.6rem .85rem; white-space:nowrap; font-size:.7rem; font-weight:800; cursor:pointer; }
.settings-tab.active { background:var(--ink); color:#fff; border-color:var(--ink); }
.settings-panel { display:grid; gap:1rem; }
.settings-card { padding:1.1rem; border:1px solid var(--line); border-radius:1rem; background:rgba(255,255,255,.35); }
.settings-card h3 { margin-bottom:.35rem; font-size:1.25rem; }
.settings-card > p { margin:.25rem 0 1rem; color:var(--muted); font-size:.73rem; line-height:1.5; }
.settings-row,.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.form-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.form-grid.four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.field { display:grid; gap:.3rem; color:var(--muted); font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.field input,.field select { width:100%; min-height:42px; border:1px solid var(--line); border-radius:.65rem; background:var(--canvas-lift); color:var(--ink); padding:.55rem .65rem; font:500 .76rem var(--sans); text-transform:none; letter-spacing:0; }
.weekday-toggles { display:flex; gap:.4rem; flex-wrap:wrap; }
.weekday-toggle { position:relative; }
.weekday-toggle input { position:absolute; opacity:0; }
.weekday-toggle span { display:grid; place-items:center; min-width:48px; min-height:42px; border:1px solid var(--line); border-radius:.65rem; background:var(--canvas-lift); font-size:.7rem; font-weight:800; cursor:pointer; }
.weekday-toggle input:checked + span { background:var(--moss); color:#fff; border-color:var(--moss); }
.profile-list,.block-list,.source-list { display:grid; gap:.7rem; }
.profile-card { border:1px solid var(--line); border-left:5px solid var(--profile-color,var(--moss)); border-radius:.85rem; padding:1rem; background:var(--canvas-lift); }
.profile-head { display:grid; grid-template-columns:1.5fr .8fr auto auto; gap:.55rem; align-items:end; }
.profile-head .compact-button { margin-bottom:1px; }
.check-field { display:flex; align-items:center; gap:.4rem; min-height:42px; font-size:.7rem; font-weight:700; }
.availability-list { display:grid; gap:.45rem; margin-top:.8rem; }
.availability-row { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:.5rem; align-items:center; }
.availability-row select,.availability-row input { min-height:38px; border:1px solid var(--line); border-radius:.55rem; background:#fff; padding:.45rem; font:500 .72rem var(--sans); }
.inline-item { display:grid; grid-template-columns:1fr auto; gap:.7rem; align-items:center; padding:.75rem; border:1px solid var(--line); border-radius:.75rem; background:var(--canvas-lift); }
.inline-item b { display:block; font-size:.78rem; }
.inline-item small { display:block; color:var(--muted); margin-top:.2rem; line-height:1.4; }
.audience-list { display:flex; flex-wrap:wrap; gap:.5rem; margin:.6rem 0; }
.audience-list label { display:flex; align-items:center; gap:.35rem; padding:.4rem .55rem; border:1px solid var(--line); border-radius:99px; font-size:.67rem; }
.settings-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.8rem; }
.file-button { position:relative; overflow:hidden; }
.file-button input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.privacy-note { padding:.8rem; border-radius:.7rem; background:var(--terracotta-wash); color:var(--deep-forest); font-size:.7rem; line-height:1.5; }
.overflow-list { display:grid; gap:.4rem; margin-top:.7rem; }
.overflow-item { display:grid; width:100%; grid-template-columns:92px 1fr auto; gap:.6rem; align-items:center; padding:.65rem .35rem; border:0; border-bottom:1px solid var(--line); background:transparent; color:inherit; text-align:left; font:inherit; font-size:.7rem; cursor:pointer; }
.overflow-item:hover, .overflow-item:focus-visible { background:var(--sage-wash); outline:none; }
.overflow-item time { color:var(--clay); font-weight:800; }
.generated-paths { padding:1rem; border:1px solid rgba(53,93,76,.2); border-radius:1rem; background:var(--sage-wash); }
.learner-path { margin-top:.8rem; padding:.9rem; border-radius:.8rem; border-left:5px solid var(--profile-color); background:var(--canvas-lift); }
.learner-path-head { display:flex; justify-content:space-between; gap:1rem; align-items:baseline; margin-bottom:.7rem; }
.learner-path-head b { font:600 1.08rem var(--serif); }
.learner-path-head span { color:var(--muted); font-size:.65rem; }
.content-dialog { width:min(1080px,calc(100% - 1.2rem)); }
.content-toolbar { display:flex; justify-content:space-between; gap:.7rem; align-items:center; margin:1.4rem 0; }
.content-filters { display:flex; flex-wrap:wrap; gap:.4rem; }
.content-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.content-card { display:grid; gap:.55rem; padding:1rem; border:1px solid var(--line); border-radius:.9rem; background:var(--canvas-lift); }
.content-card-head { display:flex; justify-content:space-between; gap:1rem; align-items:start; }
.content-kind { color:var(--clay); font-size:.58rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.content-card h3 { font-size:1.2rem; }
.content-card p { margin:0; color:var(--muted); font-size:.73rem; line-height:1.5; }
.content-card small { color:var(--muted); font-size:.62rem; }
.content-card-actions { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.2rem; }
.content-form { display:grid; gap:1rem; }
.content-form textarea { min-height:105px; resize:vertical; width:100%; border:1px solid var(--line); border-radius:.65rem; background:var(--canvas-lift); color:var(--ink); padding:.65rem; font:500 .76rem/1.5 var(--sans); text-transform:none; letter-spacing:0; }
.content-editor-head { display:flex; justify-content:space-between; gap:1rem; align-items:start; margin-bottom:.8rem; }
.teacher-additions { padding:1rem; border:1px dashed rgba(197,107,75,.5); border-radius:1rem; background:var(--terracotta-wash); }
.addition-list { display:grid; gap:.55rem; }
.addition-item { display:grid; grid-template-columns:auto 1fr auto; gap:.7rem; align-items:start; padding:.8rem; border:1px solid rgba(197,107,75,.22); border-radius:.75rem; background:rgba(255,255,255,.62); }
.addition-icon { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--clay); color:#fff; font-size:.7rem; }
.addition-item b { display:block; font-size:.8rem; }
.addition-item small { display:block; color:var(--muted); line-height:1.45; margin-top:.2rem; }
.addition-item a { font-size:.68rem; font-weight:800; }
.inheritance-badge { display:inline-block; margin-top:.35rem; padding:.25rem .45rem; border-radius:99px; background:var(--ochre-wash); color:var(--deep-forest); font-size:.55rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.custom-lesson-card { box-shadow:inset 0 3px 0 var(--clay); }
.custom-lesson-drawer .teacher-prep { background:var(--terracotta-wash); }
.empty-library { grid-column:1/-1; padding:2rem; text-align:center; border:1px dashed var(--line); border-radius:1rem; color:var(--muted); }
.jurisdiction-grid { display:grid; grid-template-columns:.65fr 1fr 1fr 1.35fr; gap:.65rem; margin:.8rem 0; padding:.8rem; border-radius:.8rem; background:rgba(53,93,76,.055); }
.standards-workspace { display:grid; gap:1rem; }
.standards-learners { display:grid; gap:1rem; margin-top:1rem; }
.standards-learner { padding:1rem; border:1px solid var(--line); border-radius:1rem; background:var(--canvas-lift); }
.standards-learner-head,.lesson-framework-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.standards-learner-head h3,.framework-card h4,.lesson-framework h4,.goal-pathway-card h4 { margin:.15rem 0; }
.standards-learner-head p { margin:.15rem 0 .7rem; color:var(--muted); font-size:.72rem; }
.field-help { display:block; margin:.3rem 0 .8rem; color:var(--muted); line-height:1.45; }
.framework-list { display:grid; gap:.55rem; margin-top:.8rem; }
.framework-card { display:flex; justify-content:space-between; gap:1rem; padding:.75rem; border:1px solid var(--line); border-radius:.75rem; background:var(--cream); }
.framework-card a,.lesson-framework a,.standards-links a { color:var(--green); font-size:.7rem; font-weight:800; }
.goal-stack { margin-top:1rem; padding-top:.85rem; border-top:1px solid var(--line); }
.goal-choice { display:flex; gap:.7rem; align-items:flex-start; margin-top:.6rem; }
.goal-choice input { margin-top:.25rem; }
.goal-choice span { display:grid; gap:.2rem; }
.goal-choice small { color:var(--muted); line-height:1.45; }
.standards-empty,.coverage-gap { padding:.75rem; border:1px dashed var(--line); border-radius:.7rem; color:var(--muted); background:rgba(255,255,255,.5); }
.lesson-standards { margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line); }
.lesson-standards .section-title > span { background:var(--walnut-brown); }
.alignment-note { color:var(--muted); font-size:.72rem; line-height:1.5; }
.lesson-framework,.goal-pathway-card { margin:.7rem 0; padding:.85rem; border:1px solid rgba(53,93,76,.2); border-radius:.8rem; background:var(--canvas-lift); }
.standard-candidate { width:100%; display:grid; gap:.25rem; margin-top:.55rem; padding:.7rem; border:1px solid var(--line); border-radius:.65rem; background:#fff; text-align:left; color:var(--ink); }
.standard-candidate span { line-height:1.45; }
.standard-candidate small { color:var(--burnt-terracotta); font-weight:800; }
.standard-candidate.confirmed { border-color:var(--green); background:var(--sage-wash); }
.standard-candidate.confirmed small { color:var(--green); }
.goal-pathway-card { border-color:var(--walnut-brown); background:var(--rose-wash); }
.goal-pathway-card p,.goal-pathway-card small { line-height:1.5; }
.standards-links { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:.65rem; }
.stack-intro { display:grid; gap:.2rem; margin:1rem 0 .65rem; }
.stack-intro span { color:var(--muted); font-size:.76rem; line-height:1.45; }
.learning-stack-list { display:grid; gap:.65rem; }
.learning-source-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(13rem,17rem); gap:1rem; padding:.85rem; border:1px solid var(--line); border-left:4px solid var(--green); border-radius:.8rem; background:var(--canvas-lift); }
.learning-source-card.inactive { border-left-color:var(--walnut-brown); opacity:.72; }
.learning-source-main p { margin:.35rem 0; color:var(--muted); font-size:.76rem; }
.learning-source-toggle { display:flex; align-items:flex-start; gap:.55rem; cursor:pointer; }
.learning-source-toggle span { display:grid; gap:.1rem; }
.learning-source-toggle small { color:var(--terracotta); font-size:.58rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.learning-source-toggle strong { font-family:Georgia,serif; font-size:1rem; }
.activation-reason { color:var(--muted); font-size:.65rem; }
.learning-source-controls { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; align-items:end; }
.learning-source-controls label { display:grid; gap:.25rem; color:var(--muted); font-size:.65rem; font-weight:800; }
.learning-source-controls output { float:right; color:var(--ink); }
.source-discovery { margin-top:1rem; border-top:1px solid var(--line); padding-top:.8rem; }
.source-discovery summary { cursor:pointer; color:var(--green); font-weight:900; }
.epoch-list { display:grid; gap:.55rem; }
.epoch-list article { display:grid; grid-template-columns:7rem 1fr; gap:.75rem; padding:.7rem 0; border-bottom:1px solid var(--line); }
.epoch-list time { color:var(--terracotta); font-weight:900; font-size:.72rem; }
.epoch-list p { margin:.15rem 0; }
.epoch-list small { color:var(--muted); }
.stack-contributions { display:grid; gap:.55rem; margin:.75rem 0; }
.stack-contributions article { padding:.65rem .75rem; border-left:4px solid var(--gold); border-radius:.45rem; background:var(--ochre-wash); }
.stack-contributions span { display:block; color:var(--terracotta); font-size:.58rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.stack-contributions b { display:block; margin:.15rem 0; }
.stack-contributions p { margin:0; color:var(--muted); font-size:.74rem; }

@media (max-width:700px) {
  .settings-nav,[data-open-content] { display:inline-flex!important; }
  .schedule-status { grid-template-columns:1fr; }
  .schedule-status .status-actions { justify-content:flex-start; }
  .profile-head,.form-grid.three,.form-grid.four { grid-template-columns:1fr 1fr; }
  .availability-row { grid-template-columns:1fr 1fr; }
  .availability-row .compact-button { grid-column:2; }
  .day-open { min-height:190px; }
  .content-grid { grid-template-columns:1fr; }
  .content-toolbar { align-items:flex-start; flex-direction:column; }
  .year-heading { grid-template-columns:1fr; }
  .year-stats { grid-template-columns:repeat(3,1fr); }
  .year-controls { grid-template-columns:1fr; }
  .year-progress { display:grid; }
  .year-lesson-grid { grid-template-columns:1fr; }
  .prep-item { grid-template-columns:1fr; gap:.5rem; }
  .jurisdiction-grid { grid-template-columns:1fr 1fr; }
  .standards-learner-head,.lesson-framework-head,.framework-card { align-items:flex-start; flex-direction:column; }
  .learning-source-card { grid-template-columns:1fr; }
  .learning-source-controls { grid-template-columns:1fr; }
}
@media (max-width:430px) {
  .settings-row,.form-grid,.form-grid.three,.form-grid.four,.profile-head { grid-template-columns:1fr; }
  .year-stats { grid-template-columns:1fr; }
  .jurisdiction-grid { grid-template-columns:1fr; }
}

/* Curriculope whole-site brand system */
:root {
  --canvas-lift: color-mix(in srgb,var(--antique-canvas) 95%,var(--deep-forest));
  --forest-line: rgba(12,46,36,.18);
  --forest-soft: color-mix(in srgb,var(--deep-forest) 7%,var(--antique-canvas));
  --terracotta-wash: color-mix(in srgb,var(--burnt-terracotta) 16%,var(--antique-canvas));
  --sage-wash: color-mix(in srgb,var(--sage-leaf) 26%,var(--antique-canvas));
  --rose-wash: color-mix(in srgb,var(--dusty-rose) 30%,var(--antique-canvas));
  --ochre-wash: color-mix(in srgb,var(--muted-ochre) 34%,var(--antique-canvas));
  --walnut-wash: color-mix(in srgb,var(--walnut-brown) 18%,var(--antique-canvas));
  --green: var(--deep-forest);
  --terracotta: var(--burnt-terracotta);
}

::selection { background:var(--muted-ochre); color:var(--deep-forest); }
body { background:var(--antique-canvas); }

.topbar {
  min-height:96px;
  border-bottom:1px solid var(--forest-line);
  background:var(--antique-canvas);
  box-shadow:0 4px 10px rgba(12,46,36,.08);
  overflow:visible;
}
.brand { position:relative; min-height:80px; padding-left:170px; gap:0; }
.brand::before { content:""; position:absolute; z-index:1; left:-22px; top:106px; width:176px; height:53px; pointer-events:none; clip-path:polygon(0 0,100% 0,50% 100%); background:rgba(12,46,36,.10); filter:blur(4px); }
.brand-mark { position:absolute; z-index:2; left:-22px; top:-18px; width:176px; height:158px; margin:0; }
.brand-mark::before { content:""; position:absolute; z-index:0; left:0; top:105px; width:176px; height:53px; pointer-events:none; clip-path:polygon(0 0,100% 0,50% 100%); background:var(--antique-canvas); }
.brand-mark img { position:absolute; z-index:2; left:14px; top:6px; width:148px; height:148px; filter:drop-shadow(0 5px 3px rgba(12,46,36,.18)); }
.brand-lockup { position:relative; z-index:3; }
.brand-wordmark { width:178px; }
.avatar-button { border-color:var(--deep-forest); background:var(--deep-forest); box-shadow:none; }
.avatar-button:hover,.avatar-button:focus-visible,.avatar-button[aria-expanded="true"] { background:var(--burnt-terracotta); }
.account-menu { overflow:hidden; border:1px solid var(--deep-forest); background:var(--antique-canvas); box-shadow:12px 16px 0 var(--ochre-wash); }
.account-menu::after { content:""; position:absolute; inset:0 0 auto; height:5px; background:var(--burnt-terracotta); }
.account-menu::before { background:var(--antique-canvas); border-color:var(--deep-forest); }
.account-menu button:hover,.account-menu button:focus-visible,.account-menu a:hover,.account-menu a:focus-visible { background:var(--sage-wash); }
.menu-print svg { stroke:var(--deep-forest); }

.hero {
  min-height:650px;
  display:grid;
  align-content:center;
  padding-top:6.8rem;
  border-bottom:0;
  isolation:isolate;
}
.hero::before { width:35rem; height:24rem; right:4%; top:13%; border-radius:58% 42% 45% 55%; background:var(--sage-leaf); opacity:.26; transform:rotate(-9deg); }
.hero::after { width:29rem; height:21rem; right:-5%; bottom:3%; border-radius:42% 58% 61% 39%; background:var(--dusty-rose); opacity:.34; transform:rotate(13deg); }
.hero .eyebrow { position:relative; z-index:3; }
.hero h1 { max-width:760px; color:var(--deep-forest); }
.hero h1 em { color:var(--burnt-terracotta); }
.hero-copy { color:var(--walnut-brown); }
.hero-visual { position:absolute; z-index:1; right:5%; top:17%; width:min(39vw,560px); height:68%; pointer-events:none; }
.hero-pattern {
  position:absolute; right:1%; top:2%; width:88%; aspect-ratio:1;
  display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(3,1fr); gap:8px;
  padding:2.1rem; border:8px solid var(--deep-forest); border-radius:49% 51% 44% 56%;
  background:var(--antique-canvas); transform:rotate(5deg); box-shadow:18px 18px 0 var(--muted-ochre);
}
.hero-pattern::before,.hero-pattern::after { content:""; position:absolute; background:var(--deep-forest); border-radius:999px; }
.hero-pattern::before { width:38%; height:9px; left:-13%; top:22%; transform:rotate(-34deg); }
.hero-pattern::after { width:34%; height:9px; right:-12%; bottom:23%; transform:rotate(-34deg); }
.hero-pattern i { border:3px solid var(--deep-forest); border-radius:48% 52% 44% 56%; transform:rotate(45deg); background:var(--burnt-terracotta); }
.hero-pattern i:nth-child(2),.hero-pattern i:nth-child(6),.hero-pattern i:nth-child(7) { background:var(--sage-leaf); }
.hero-pattern i:nth-child(3),.hero-pattern i:nth-child(8) { background:var(--dusty-rose); }
.hero-pattern i:nth-child(4),.hero-pattern i:nth-child(9) { background:var(--muted-ochre); }
.hero-pattern i:nth-child(5) { background:var(--walnut-brown); border-radius:50%; }
.brand-panel { position:absolute; z-index:2; right:-2%; bottom:-1%; width:68%; padding:1rem 1.1rem; border:2px solid var(--deep-forest); border-radius:1.1rem; background:var(--antique-canvas); box-shadow:10px 10px 0 var(--burnt-terracotta); transform:rotate(-3deg); }
.brand-panel span { display:block; color:var(--burnt-terracotta); font-size:.58rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.brand-panel b { display:block; margin-top:.35rem; font:500 1.1rem/1.15 var(--serif); }
.hero-meta div { padding-left:.8rem; border-left:3px solid var(--muted-ochre); }

.primary-button,.finish-day { background:var(--deep-forest); border-color:var(--deep-forest); color:var(--antique-canvas); box-shadow:none; }
.primary-button:hover,.primary-button:focus-visible,.finish-day:hover,.finish-day:focus-visible { background:var(--burnt-terracotta); border-color:var(--burnt-terracotta); color:var(--antique-canvas); }
.secondary-button,.compact-button,.filter,.settings-tab,.source-links a { background:var(--canvas-lift); border-color:var(--deep-forest); }
.secondary-button:hover,.secondary-button:focus-visible,.compact-button:hover,.compact-button:focus-visible,.source-links a:hover,.source-links a:focus-visible { background:var(--burnt-terracotta); border-color:var(--burnt-terracotta); color:var(--antique-canvas); }

.year-curriculum {
  position:relative; max-width:none; margin:0; overflow:hidden;
  padding-inline:clamp(1rem,8vw,9rem); border:0;
  background:var(--sage-wash);
}
.year-curriculum::before { content:""; position:absolute; width:28rem; height:18rem; left:-12rem; bottom:-7rem; border:3px solid var(--deep-forest); border-radius:52% 48% 62% 38%; opacity:.12; transform:rotate(16deg); }
.year-heading,.year-controls,.year-progress,.year-lesson-grid { position:relative; z-index:1; }
.year-heading h2,.calendar-heading h2,.info-dialog h2,.drawer-panel h2 { color:var(--deep-forest); }
.year-stats div { border:2px solid var(--deep-forest); border-radius:1.1rem; background:var(--antique-canvas); box-shadow:6px 6px 0 var(--muted-ochre); }
.year-stats div:nth-child(2) { box-shadow:6px 6px 0 var(--dusty-rose); }
.year-stats div:nth-child(3) { box-shadow:6px 6px 0 var(--burnt-terracotta); }
.year-progress { border:1px solid var(--deep-forest); background:var(--antique-canvas); }
.year-lesson-card { border:1px solid var(--deep-forest); border-top:6px solid var(--burnt-terracotta); background:var(--antique-canvas); box-shadow:none; }
.year-lesson-card:nth-child(3n+2) { border-top-color:var(--sage-leaf); }
.year-lesson-card:nth-child(3n) { border-top-color:var(--muted-ochre); }
.year-lesson-card:hover,.year-lesson-card:focus-visible { border-color:var(--deep-forest); box-shadow:8px 8px 0 var(--dusty-rose); transform:translate(-2px,-2px); }
.year-card-action,.year-card-date { color:var(--burnt-terracotta); }

.calendar-shell { position:relative; max-width:none; overflow:hidden; padding-inline:clamp(1rem,5vw,5.5rem); background:var(--antique-canvas); isolation:isolate; }
.calendar-shell::before { content:""; position:absolute; z-index:-1; width:24rem; height:18rem; right:-7rem; top:2rem; border-radius:64% 36% 48% 52%; background:var(--dusty-rose); opacity:.22; transform:rotate(-17deg); }
.calendar-heading h2 span { color:var(--burnt-terracotta); }
.progress-card { border:1px solid var(--deep-forest); background:var(--antique-canvas); box-shadow:6px 6px 0 var(--sage-leaf); }
.progress-ring { background:var(--burnt-terracotta); border-color:var(--dusty-rose); }
.filter.active,.settings-tab.active { background:var(--deep-forest); color:var(--antique-canvas); border-color:var(--deep-forest); }
.filter:hover,.filter:focus-visible,.settings-tab:hover,.settings-tab:focus-visible { border-color:var(--burnt-terracotta); }
.search-box { border:1px solid var(--deep-forest); border-radius:999px; background:var(--antique-canvas); }
.calendar-grid { gap:1px; border:1px solid var(--deep-forest); background:var(--antique-canvas); }
.day-card { border:0; outline:1px solid var(--forest-line); outline-offset:-1px; background:var(--antique-canvas); }
.day-card:nth-child(5n+2) { background:var(--sage-wash); }
.day-card:nth-child(5n+3) { background:var(--rose-wash); }
.day-card:nth-child(5n+4) { background:var(--ochre-wash); }
.day-card.weekend { background:var(--walnut-wash); }
.day-card:hover,.day-card:focus-within { z-index:2; background:var(--antique-canvas); box-shadow:inset 0 6px 0 var(--burnt-terracotta); transform:none; }
.day-card.moved { box-shadow:inset 0 5px 0 var(--muted-ochre); }
.day-card.closed { background:var(--walnut-wash); box-shadow:inset 5px 0 0 var(--walnut-brown); }
.availability-toggle { border-color:var(--deep-forest); background:var(--antique-canvas); color:var(--deep-forest); }
.arc-label,.prep-flag,.move-label { color:var(--burnt-terracotta); }
.schedule-status,.schedule-banner { border:1px solid var(--deep-forest); background:var(--ochre-wash); }

.method-strip { position:relative; overflow:hidden; gap:0; border:0; background:var(--deep-forest); }
.method-strip::before { content:""; position:absolute; width:15rem; height:15rem; left:-4rem; top:-5rem; border:2px solid var(--antique-canvas); border-radius:48% 52% 42% 58%; opacity:.16; }
.method-intro,.principle { position:relative; border:0; border-right:1px solid var(--deep-forest); background:var(--sage-leaf); color:var(--deep-forest); }
.method-intro { background:var(--deep-forest); color:var(--antique-canvas); }
.method-intro .section-kicker { color:var(--muted-ochre); }
.principle:nth-child(2) { background:var(--burnt-terracotta); color:var(--antique-canvas); }
.principle:nth-child(3) { background:var(--sage-leaf); }
.principle:nth-child(4) { background:var(--dusty-rose); }
.principle:hover,.principle:focus-visible { background:var(--muted-ochre); color:var(--deep-forest); outline:0; }
.principle > span { color:inherit; opacity:.66; }
.principle small { color:inherit; opacity:.74; }

.drawer-panel,.info-dialog { border:2px solid var(--deep-forest); background:var(--antique-canvas); }
.drawer-panel { box-shadow:-14px 0 0 var(--burnt-terracotta); }
.drawer-panel::before,.info-dialog::before { content:""; display:block; width:72px; height:8px; margin-bottom:1.2rem; border-radius:99px; background:var(--burnt-terracotta); }
.drawer-close,.dialog-close { border-color:var(--deep-forest); color:var(--deep-forest); }
.drawer-close:hover,.dialog-close:hover { background:var(--burnt-terracotta); color:var(--antique-canvas); }
.big-question { color:var(--deep-forest); border-color:var(--muted-ochre); }
.pill { background:var(--sage-wash); }
.teacher-prep,.privacy-note,.teacher-additions,.custom-lesson-drawer .teacher-prep { border-color:var(--burnt-terracotta); background:var(--terracotta-wash); color:var(--deep-forest); }
.section-title span,.teacher-prep .section-title span,.addition-icon { background:var(--burnt-terracotta); }
.section-title.age11 span,.lesson-standards .section-title > span { background:var(--walnut-brown); }
.task,.prep-task,.library-card,.content-card,.profile-card,.inline-item,.learner-path,.standards-learner,.learning-source-card,.standard-candidate,.framework-card,.lesson-framework,.goal-pathway-card { border-color:var(--forest-line); background:var(--canvas-lift); }
.task:hover,.prep-task:hover,.library-card:hover,.content-card:hover { border-color:var(--burnt-terracotta); background:var(--ochre-wash); }
.soft-note,.load-proof div,.audit-hours article,.generated-paths,.parent-cue,.stack-contributions article { background:var(--sage-wash); color:var(--deep-forest); }
.dialog-grid { background:var(--deep-forest); border-color:var(--deep-forest); }
.dialog-grid article { background:var(--antique-canvas); }
.settings-card { border-color:var(--deep-forest); background:var(--sage-wash); }
.field input,.field select,.content-form textarea,.weekday-toggle span,.availability-row select,.availability-row input { border-color:var(--deep-forest); background:var(--antique-canvas); }
.weekday-toggle input:checked + span { background:var(--burnt-terracotta); border-color:var(--burnt-terracotta); }
.standard-candidate.confirmed { border-color:var(--deep-forest); background:var(--sage-wash); }
.goal-pathway-card { border-color:var(--walnut-brown); background:var(--rose-wash); }
.learning-source-card { border-left-color:var(--burnt-terracotta); }
.source-discovery summary,.framework-card a,.lesson-framework a,.standards-links a { color:var(--burnt-terracotta); }
.toast { background:var(--deep-forest); color:var(--antique-canvas); }

@media (max-width:1050px) {
  .hero-visual { right:-8%; width:48vw; opacity:.72; }
  .brand-panel { right:2%; }
}
@media (max-width:700px) {
  .topbar { min-height:66px; }
  .brand { min-height:0; padding-left:0; gap:.7rem; }
  .brand-mark { position:relative; left:auto; top:auto; align-self:center; width:36px; height:36px; margin:0; }
  .brand::before,.brand-mark::before { display:none; }
  .brand-mark img { position:static; width:36px; height:36px; filter:none; }
  .brand-wordmark { width:124px; }
  .hero { min-height:650px; padding-top:4.8rem; }
  .hero-visual { right:-41%; top:15%; width:88vw; height:62%; opacity:.34; }
  .hero-pattern { border-width:6px; gap:5px; padding:1.3rem; }
  .brand-panel { display:none; }
  .hero-copy { max-width:92%; color:var(--deep-forest); }
  .hero-meta { gap:1.2rem; }
  .year-curriculum { padding-inline:1rem; }
  .method-intro,.principle { border-right:0; border-bottom:1px solid var(--deep-forest); }
}
@media (max-width:390px) {
  .brand-wordmark { width:108px; }
  .hero-visual { right:-55%; }
}
