:root {
  --ink: #20342d;
  --muted: #65716b;
  --paper: #f6f0e4;
  --cream: #fffaf0;
  --card: rgba(255, 253, 247, 0.9);
  --line: #d8d5c9;
  --moss: #355d4c;
  --moss-2: #587c69;
  --clay: #c56b4b;
  --clay-light: #f1d2bf;
  --gold: #e4b95d;
  --blue: #7da3ad;
  --violet: #78688d;
  --shadow: 0 18px 60px rgba(39, 58, 49, 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:
    radial-gradient(circle at 13% 15%, rgba(228,185,93,.13), transparent 28rem),
    linear-gradient(180deg, #f7f1e6 0%, #f4efe5 65%, #eaeadd 100%);
  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(247,241,230,.82); backdrop-filter: blur(18px);
}
.brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; }
.brand-mark { width: 38px; height: 38px; border-radius: 50% 50% 45% 55%; display: grid; place-items: center; color: #fff; background: var(--moss); transform: rotate(-9deg); }
.brand span:last-child { display: grid; line-height: 1.05; }
.brand b { font: 600 1.1rem var(--serif); letter-spacing: .01em; }
.brand small { font-size: .62rem; text-transform: uppercase; letter-spacing: .17em; 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(--moss); outline:3px solid rgba(53,93,76,.14); 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:#fffaf0; 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 { display:grid; grid-template-columns:1fr; gap:.12rem; width:100%; padding:.72rem .7rem; border:0; border-radius:.7rem; background:transparent; text-align:left; cursor:pointer; }
.account-menu button:hover,.account-menu button:focus-visible { background:rgba(53,93,76,.08); outline:0; }
.account-menu button span { font-size:.78rem; font-weight:800; }
.account-menu button 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::after { content:""; position:absolute; inset:auto 0 0; height: 150px; background: linear-gradient(transparent, rgba(245,239,226,.88)); 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: #4d5d56; 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); }
.primary-button:hover { transform: translateY(-1px); background: #294b3d; }
.secondary-button:hover { background: #fffaf2; }
.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; }
.hero-art { position: absolute; width: min(48vw, 630px); aspect-ratio: 1; right: -3%; top: 8%; opacity: .9; }
.hero-art::before { content:""; position: absolute; inset: 9%; border: 1px solid rgba(53,93,76,.22); border-radius: 50%; }
.hero-art::after { content:""; position:absolute; left:50%; top:10%; width:1px; height:86%; background:rgba(53,93,76,.28); transform:rotate(-18deg); transform-origin: bottom; }
.hero-art i { position:absolute; width:29%; height:48%; background:linear-gradient(135deg, rgba(88,124,105,.16), rgba(53,93,76,.48)); border-radius:100% 0 100% 0; box-shadow: inset 0 0 0 1px rgba(53,93,76,.18); }
.hero-art i:nth-child(1){ left:23%; top:8%; transform:rotate(18deg); }
.hero-art i:nth-child(2){ right:14%; top:28%; transform:rotate(112deg); background:linear-gradient(135deg, rgba(197,107,75,.16), rgba(197,107,75,.55)); }
.hero-art i:nth-child(3){ left:8%; bottom:13%; transform:rotate(-65deg); background:linear-gradient(135deg, rgba(228,185,93,.18), rgba(228,185,93,.6)); }
.hero-art i:nth-child(4){ right:29%; bottom:1%; transform:rotate(146deg); }

.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: conic-gradient(var(--clay) var(--progress), rgba(197,107,75,.15) 0); 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: #c0473a; }
.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:#9d3e34; 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); }

.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:#e5e4d6; 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:#daddca; }
.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:#ecebdd; 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:#fbede2; }
.teacher-prep .section-title { margin-bottom:.45rem; }
.teacher-prep .section-title span { background:#b94f3f; }
.teacher-prep > p { margin:.25rem 0 1rem; color:#76554d; font-size:.75rem; line-height:1.5; }
.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:#a3473c; background:#fff8f1; }
.prep-task .check { width:21px; height:21px; border:1.5px solid #a3473c; border-radius:50%; display:grid; place-items:center; color:#fff; }
.prep-task.done .check { background:#a3473c; }.prep-task.done .check::before { content:"✓"; }
.prep-task b { display:block; font-size:.78rem; }.prep-task small { display:block; margin-top:.2rem; color:#765d56; line-height:1.45; }
.prep-when { display:inline-block; margin-bottom:.25rem; color:#a3473c; 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:#edf0e5; 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:#fffdf7; }
.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:#dce7dd; border-color:#9db49f; text-decoration:line-through; }
.parent-cue { padding:1rem 1.1rem; border-radius:.9rem; background:#eff0e4; color:#49564f; 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:#eff0e4; 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:#eff0e4; 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) {
  .hero-art { right:-18%; opacity:.58; }
  .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-art{width:95vw; right:-50%; top:12%}.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,.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:#eef0e5; }
.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:#a3473c; color:#913d34; }
.compact-button.danger:hover { background:#a3473c; 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:repeating-linear-gradient(135deg,rgba(120,105,95,.07),rgba(120,105,95,.07) 8px,rgba(255,253,247,.45) 8px,rgba(255,253,247,.45) 16px); }
.day-card.closed h3,.day-card.closed p { color:#847b75; }
.day-card.open-buffer { background:#f6f0dc; }
.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:#9b6a16; 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:#eef0e5; 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)); }
.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:#fffdf7; 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:#fffdf7; 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:#fffdf7; }
.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:#fffdf7; }
.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:#fbede2; color:#76554d; 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:#f6f1e7; 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:#eef0e5; }
.learner-path { margin-top:.8rem; padding:.9rem; border-radius:.8rem; border-left:5px solid var(--profile-color); background:#fffdf7; }
.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:#fffdf7; }
.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:#fffdf7; 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:#fff8ef; }
.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:#f0dfcd; color:#86533d; 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:#fff8ef; }
.empty-library { grid-column:1/-1; padding:2rem; text-align:center; border:1px dashed var(--line); border-radius:1rem; color:var(--muted); }

@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 { 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; }
}
@media (max-width:430px) {
  .settings-row,.form-grid,.form-grid.three,.profile-head { grid-template-columns:1fr; }
}
