:root{
  --bg: #1F3A34;
  --bg-2: #24443D;
  --paper: #F5F1E6;
  --paper-2: #ECE6D6;
  --ink: #24302C;
  --ink-soft: #5B6660;
  --gold: #D4A62A;
  --gold-soft: #E8C766;
  --coral: #A94432;
  --sage: #3F7352;
  --gold-text: #765600;
  --line: #D8D0BA;
  --shadow: rgba(15, 30, 26, 0.35);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --native-safe-top: 0px;
  --native-safe-right: 0px;
  --native-safe-bottom: 0px;
  --native-safe-left: 0px;
  --native-ime-offset: 0px;
  --visual-viewport-ime-offset: 0px;
  --viewport-height: 100dvh;
  --chrome-top: max(var(--safe-top), var(--native-safe-top));
  --chrome-right: max(var(--safe-right), var(--native-safe-right));
  --chrome-bottom: max(var(--safe-bottom), var(--native-safe-bottom));
  --chrome-left: max(var(--safe-left), var(--native-safe-left));
  --keyboard-offset: max(var(--native-ime-offset), var(--visual-viewport-ime-offset));
}

.skip-link{position:fixed;z-index:200;left:12px;top:8px;transform:translateY(-160%);background:#fff;color:#111;padding:10px 14px;border-radius:8px;font-weight:800}.skip-link:focus{transform:none}
html[data-text-size="large"] #app{font-size:18px}html[data-text-size="large"] #app :is(button,input,select,textarea){font-size:max(14px,1em)}
html[data-text-size="extra-large"] #app{font-size:20px}html[data-text-size="extra-large"] #app :is(button,input,select,textarea,.s-desc,.section-helper,.sub,.yr,small){font-size:max(16px,1em);line-height:1.45}
html[data-appearance="dark"]{--bg:#0d211d;--bg-2:#14312b;--paper:#18332d;--paper-2:#203d36;--ink:#f7f2e7;--ink-soft:#d5cdbd;--line:#536b64;--shadow:rgba(0,0,0,.62);--gold-text:#f0cf69}
html[data-appearance="dark"] #app :is(input,select,textarea,.section-card,.add-form,.history-row,.pf-row,.todo-row,.search-results button,.notification-item,.week-work-card,.week-board-day,.hub-destination){background:#102823;color:var(--ink);border-color:var(--line)}
html[data-appearance="dark"] body{color:#f7f2e7}html[data-appearance="dark"] #app :is(.btn-primary,.settings-menu-badge,.lock-screen h1,.agenda-day-chip.active){color:#f7f2e7}
html[data-appearance="high-contrast"]{--bg:#000;--bg-2:#000;--paper:#fff;--paper-2:#f5f5f5;--ink:#000;--ink-soft:#222;--gold:#ffd800;--gold-soft:#ffe969;--gold-text:#4a3600;--coral:#9f0000;--sage:#075d25;--line:#111;--shadow:rgba(0,0,0,.8)}
html[data-appearance="high-contrast"] :focus-visible{outline:4px solid #006cff!important;outline-offset:3px!important}
@media(prefers-color-scheme:dark){html[data-appearance="system"]{--bg:#0d211d;--bg-2:#14312b;--paper:#18332d;--paper-2:#203d36;--ink:#f7f2e7;--ink-soft:#d5cdbd;--line:#536b64;--shadow:rgba(0,0,0,.62);--gold-text:#f0cf69}html[data-appearance="system"] #app :is(input,select,textarea,.section-card,.add-form,.history-row,.pf-row,.todo-row,.search-results button,.notification-item,.week-work-card,.week-board-day,.hub-destination){background:#102823;color:var(--ink);border-color:var(--line)}}
@media(prefers-color-scheme:dark){html[data-appearance="system"] body{color:#f7f2e7}html[data-appearance="system"] #app :is(.btn-primary,.settings-menu-badge,.lock-screen h1,.agenda-day-chip.active){color:#f7f2e7}}

/* ---------- Planning studio and focused workflows ---------- */
.planning-studio{border-color:rgba(212,166,42,.45)}
.planning-tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:14px;padding-bottom:2px}
.course-generator-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.course-generator-heading>div:first-child{flex:1;min-width:0}.course-generator-heading h4{margin:0 0 4px}.course-generator-heading .section-helper{margin-bottom:6px}.course-generator-save-top{flex:0 0 auto}.course-generator-save-top .btn{white-space:normal}.course-generator-save-bottom{margin-top:4px}.curriculum-schedule-row{align-items:flex-start}
.planner-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.planner-toolbar b{margin-right:auto}
.week-planner-board{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;overflow-x:auto;padding-bottom:8px}
.week-board-day{background:var(--paper,#fff);border:1px solid var(--line,#ddd);border-radius:12px;min-height:150px;overflow:hidden}
.week-board-day>header{display:flex;justify-content:space-between;padding:9px 10px;background:rgba(212,166,42,.1);border-bottom:1px solid var(--line,#ddd)}
.week-drop-zone{display:grid;gap:7px;padding:8px}
.week-drop-zone>p{color:var(--muted,#777);text-align:center;font-size:12px;margin:25px 0}
.week-work-card{border:1px solid var(--line,#ddd);border-radius:9px;padding:8px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.week-work-card[draggable="true"]{cursor:grab;touch-action:pan-y}.week-work-card.dragging{opacity:.4;cursor:grabbing}.week-board-day.drag-over{outline:3px solid var(--gold,#d4a62a);outline-offset:-3px;background:rgba(212,166,42,.08)}
.drag-handle{float:right;margin:-4px -3px 3px 6px;padding:3px 6px;border-radius:5px;color:var(--muted,#777);font-weight:800;letter-spacing:-2px;cursor:grab;touch-action:none}
.week-work-card label{display:flex;gap:6px;align-items:flex-start;font-size:12px;line-height:1.35}
.week-work-card.done{opacity:.58}.week-work-card.done span{text-decoration:line-through}
.week-card-moves{display:flex;justify-content:space-between;margin-top:6px}
.week-card-moves button,.inline-action{border:0;background:transparent;color:var(--accent,#765b00);font-size:11px;padding:4px;cursor:pointer}
.planning-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.planning-two-col>section{min-width:0}
.stacked-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.mastery-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line,#ddd)}
.mastery-row select{width:auto;min-width:130px}
.weekday-picks{display:flex;gap:5px;flex-wrap:wrap}.weekday-picks label{position:relative}.weekday-picks label input{position:absolute;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0}.weekday-picks span{display:block;border:1px solid var(--line,#ddd);border-radius:999px;padding:6px 9px;font-size:12px}.weekday-picks input:checked+span{background:var(--ink,#28251f);color:#fff;border-color:var(--ink,#28251f)}
.modal-search{max-width:620px}.global-search-input{font-size:17px}.search-results{display:grid;gap:5px;max-height:58vh;overflow:auto;margin-top:10px}.search-results button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;border:1px solid var(--line,#ddd);border-radius:10px;background:#fff;padding:10px;text-align:left}.search-results button:active{background:rgba(212,166,42,.12)}.search-results span{font-size:11px;color:var(--muted,#777)}
.workflow-status,.workflow-badge{border:1px solid currentColor;border-radius:999px;padding:4px 7px;font-size:11px;text-transform:capitalize;background:transparent}.status-submitted{color:#6954a3}.status-approved{color:#36764a}.status-revision{color:#a24e42}.status-working{color:#8a6912}.status-assigned{color:#666}
.backup-health-card{border-left:3px solid var(--gold,#d4a62a)}
.search-header-btn{margin-left:auto}
.header-action-btn{border:0;background:transparent;color:inherit;font:inherit;font-size:12px;padding:8px;cursor:pointer}
.notification-btn{position:relative}.notification-btn span{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--gold,#d4a62a);color:#172f29;font-size:11px;font-weight:800}
.notification-list{display:grid;gap:8px;max-height:60vh;overflow:auto}.notification-item{display:flex;border:1px solid var(--line,#ddd);border-left:4px solid #8d8b83;border-radius:10px;background:#fff;overflow:hidden}.notification-item.priority-3{border-left-color:#a24e42}.notification-item.priority-2{border-left-color:#d4a62a}.notification-main{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:2px;padding:10px;border:0;background:transparent;text-align:left}.notification-main small{text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#777);font-size:11px}.notification-main span{font-size:11px;color:var(--muted,#777)}
.schedule-impact{display:grid;gap:3px;padding:10px;border-radius:10px;margin-top:10px;font-size:12px}.schedule-impact.fits{background:#e9f4eb;color:#285c37}.schedule-impact.risk{background:#f8e7e4;color:#8d3d33}.schedule-impact span{display:block}
.sequence-editor{min-height:190px;font-family:inherit;line-height:1.5}.sequence-list{display:grid;gap:4px;max-height:190px;overflow:auto;margin-top:10px}.sequence-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid var(--line,#ddd);border-radius:8px}.sequence-row b{font-size:12px}.sequence-row>div{display:flex;gap:4px}
[data-hint]{position:relative}
[data-hint]:is(:hover,:focus-visible)::after{content:attr(data-hint);position:absolute;z-index:80;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:max-content;max-width:min(280px,75vw);padding:7px 9px;border-radius:8px;background:#183c34;color:#fff;font-size:11px;font-weight:500;line-height:1.35;text-align:left;box-shadow:0 4px 14px rgba(0,0,0,.24);pointer-events:none;white-space:normal}
.topbar [data-hint]:is(:hover,:focus-visible)::after{top:calc(100% + 7px);bottom:auto}
.modal [data-hint]:is(:hover,:focus-visible)::after{position:fixed;left:50%;bottom:18px;top:auto;transform:translateX(-50%)}

@media(max-width:720px){
  .week-planner-board{grid-template-columns:repeat(5,78vw);scroll-snap-type:x proximity}.week-board-day{scroll-snap-align:start}
  .planning-two-col{grid-template-columns:1fr}.planner-toolbar b{width:100%;order:-1}.stacked-actions{justify-content:flex-start}
  .search-header-btn{margin-left:0}.student-mode-task{align-items:flex-start}.workflow-status{min-width:66px}
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;min-height:100%;-webkit-text-size-adjust:100%;}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
body{
  background: var(--bg);
  background-image:
    radial-gradient(circle at 15% 8%, rgba(255,255,255,0.04) 0, transparent 45%),
    radial-gradient(circle at 85% 90%, rgba(255,255,255,0.03) 0, transparent 40%);
  font-family: 'Inter', sans-serif;
  color: var(--paper);
  min-height: var(--viewport-height);
  padding-left: var(--chrome-left);
  padding-right: var(--chrome-right);
  overflow-x: hidden;
  -webkit-tap-highlight-color: transparent;
}

h1,h2,h3,.display{font-family:'Zilla Slab', serif;}
.mono{font-family:'IBM Plex Mono', monospace;}

::-webkit-scrollbar{ height:6px; width:6px; }
::-webkit-scrollbar-thumb{ background: rgba(255,255,255,0.15); border-radius:3px; }

/* ---------- Utilities ---------- */
.btn-outline{ border:1px solid var(--line); }
.small-link-danger{ color:var(--coral); }
.record-file-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.file-attachment{border:1px solid var(--line);border-radius:8px;background:var(--paper-2);color:var(--ink);padding:8px 10px;text-align:left;cursor:pointer}.file-attachment small{display:block;color:var(--ink-soft)}
.del-x-muted{ color:var(--ink-soft); }
.dot-ink{ background:var(--ink); }
.dot-gold{ background:var(--gold); }
.dot-sage{ background:var(--sage); }
.u-hidden{ display:none; }
.u-inline-block{ display:inline-block; }
.u-mt-0{ margin-top:0; }
.u-mt-6{ margin-top:6px; }
.u-mt-8{ margin-top:8px; }
.u-mt-10{ margin-top:10px; }
.u-mt-12{ margin-top:12px; }
.u-mt-14{ margin-top:14px; }
.u-mt-16{ margin-top:16px; }
.u-mt-18{ margin-top:18px; }
.u-mb-8{ margin-bottom:8px; }
.u-my-6{ margin-top:6px; margin-bottom:6px; }

/* ---------- App shell ---------- */
#app{
  max-width: 720px;
  margin: 0 auto;
  padding: 0 0 calc(150px + var(--chrome-bottom) + var(--keyboard-offset)) 0;
  min-height: var(--viewport-height);
}
#app-header,#app-content,#app-footer,#app-modal{ display:contents; }

.topbar{
  padding: calc(16px + var(--chrome-top)) 18px 0 18px;
  position: sticky; top:0; z-index: 20;
  background: var(--bg);
  box-shadow:0 7px 16px rgba(15,30,26,.16);
}
.brand{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.brand-text{ flex:1; min-width:0; }
.brand-text h1{ font-size:21px; margin:0; font-weight:600; letter-spacing:0.1px; line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.brand-text span{ font-size:11.5px; color: rgba(245,241,230,0.55); letter-spacing:0.6px; text-transform:uppercase; }
.settings-btn{
  min-width:72px; height:44px; padding:0 12px; border-radius:999px; border:1px solid rgba(245,241,230,0.18);
  background:rgba(255,255,255,0.05); color:rgba(245,241,230,0.82); font-size:11px; font-weight:700;
  letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; flex-shrink:0;
  transition: background .15s, color .15s, border-color .15s, transform .15s;
}
.settings-btn:hover{ transform: translateY(-1px); }
.settings-btn:hover, .settings-btn.active{ background: var(--gold); color: var(--bg); border-color:transparent; }
.quick-add-btn{
  min-width:44px; height:44px; padding:0 12px; border-radius:999px; border:1px solid rgba(245,241,230,0.18);
  background:rgba(255,255,255,0.08); color:rgba(245,241,230,0.92); font-size:18px; font-weight:700;
  cursor:pointer; flex-shrink:0; display:flex;align-items:center;gap:5px;
}
.quick-add-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.quick-add-btn:hover{ background:rgba(255,255,255,0.14); }
.compact-topbar{ padding-top:calc(6px + var(--chrome-top)); }
.compact-topbar .brand{ margin-bottom:8px; }
.compact-topbar .brand-text h1{ font-size:18px; }
.compact-topbar .brand-text span{ font-size:11px; }
.compact-topbar .nav-row{ margin-bottom:8px; }
.onboarding-topbar .brand{ margin-bottom:6px; }

/* Primary nav: segmented control + overflow */
.nav-row{ display:flex; align-items:center; gap:8px; margin-bottom: 14px; }
.segmented{
  display:flex; background: rgba(255,255,255,0.06); border-radius:10px; padding:3px; flex:1;
}
.seg-btn{
  flex:1; border:none; background:transparent; color: rgba(245,241,230,0.65);
  padding:9px 10px; border-radius:8px; font-size:13.5px; font-weight:600; cursor:pointer;
  font-family:'Inter',sans-serif; transition: background .15s, color .15s;
}
.seg-btn.active{ background: var(--paper); color: var(--ink); }
.student-selector{ display:flex; align-items:center; justify-content:center; gap:6px; min-width:0; }
.student-selector-label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.student-selector .care{ color:rgba(245,241,230,0.45); font-size:11px; flex-shrink:0; }
.student-selector.active .care{ color:var(--ink-soft); }
.current-area{min-height:44px;display:flex;align-items:center;padding:0 12px;border:1px solid rgba(245,241,230,.18);border-radius:10px;color:rgba(245,241,230,.86);font-size:13px;font-weight:700;white-space:nowrap}
.more-btn{
  border:1px solid rgba(245,241,230,0.18); background:transparent; color: rgba(245,241,230,0.8);
  padding:9px 14px; border-radius:10px; font-size:13.5px; font-weight:600; cursor:pointer;
  font-family:'Inter',sans-serif; white-space:nowrap; flex-shrink:0;
}
.more-btn .care{ color: rgba(245,241,230,0.45); font-size:11px; margin-left:2px; }
.more-btn.active{ background: var(--gold); color: var(--bg); border-color:transparent; }
.more-btn.active .care{ color: rgba(31,58,52,0.6); }

/* Nav overflow menu (rendered inside the shared modal) */
.nav-menu-list{ display:flex; flex-direction:column; gap:2px; }
.nav-menu-item{
  display:flex; align-items:center; justify-content:space-between;
  width:100%; text-align:left; border:none; background:transparent;
  padding:14px 4px; font-size:15px; font-family:'Inter',sans-serif; font-weight:500;
  color: var(--ink); cursor:pointer; border-bottom:1px solid var(--line);
}
.nav-menu-item:last-child{ border-bottom:none; }
.nav-menu-item.active{ font-weight:700; }
.danger-menu-item{color:var(--coral)}
.nav-menu-item .check{ color: var(--sage); font-weight:700; }
.student-menu-name{ display:flex; align-items:center; min-width:0; }
.student-menu-name .dot{ width:9px; height:9px; border-radius:50%; margin-right:9px; flex-shrink:0; }

/* ---------- Page / paper surface ---------- */
.paper{
  background: var(--paper);
  color: var(--ink);
  border-radius: 0 4px 14px 14px;
  padding: 22px 18px 8px 18px;
  box-shadow: 0 20px 40px var(--shadow);
  min-height: 60vh;
}

/* Overall dial header */
.overall-row{
  display:flex; align-items:center; gap:16px; padding: 6px 4px 20px 4px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 18px;
}
.gradebook-hero{
  margin:0 0 12px;padding:18px;border:1px solid rgba(47,119,103,.24);border-radius:16px;
  background:linear-gradient(135deg,rgba(47,119,103,.1),rgba(225,170,62,.06));
}
.gradebook-hero .page-eyebrow{margin-bottom:2px}
.gradebook-hero .overall-meta{min-width:0}
.gradebook-hero .overall-meta h2{font:700 27px/1.1 'Zilla Slab',serif}
.gradebook-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.gradebook-kpis>div{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--paper-2)}
.gradebook-kpis b{font:700 19px/1 'IBM Plex Mono',monospace;color:var(--sage)}
.gradebook-kpis span{color:var(--ink-soft);font-size:10px;font-weight:800;text-transform:uppercase}
.gradebook-kpis .attention{border-color:rgba(225,170,62,.42);background:rgba(225,170,62,.09)}
.gradebook-kpis .attention b{color:var(--gold-text)}
.gradebook-subject-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:22px 2px 12px}
.gradebook-subject-heading h2{margin:1px 0 2px;font:700 24px/1.1 'Zilla Slab',serif}
.gradebook-subject-heading p{margin:0;color:var(--ink-soft);font-size:12px}
.gradebook-subject-heading+.add-form{margin:0 0 14px}
.dial{ position:relative; width:74px;height:74px; flex-shrink:0; }
.dial svg{ transform: rotate(-90deg); }
.dial-track{ fill:none; stroke: var(--paper-2); stroke-width:8; }
.dial-fill{ fill:none; stroke-width:8; stroke-linecap:round; transition: stroke-dashoffset .6s ease; }
.dial-label{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:15px;
}
.overall-meta h2{ margin:0 0 2px 0; font-size:19px; }
.overall-meta .sub{ font-size:12.5px; color: var(--ink-soft); }
.overall-meta .letter{ font-family:'Zilla Slab',serif; font-weight:700; }

/* Student name row edit/delete */
.grade-level-row{
  display:flex; align-items:center; gap:8px; margin-top:4px; flex-wrap:wrap;
}
.grade-level-pill{
  display:inline-flex; align-items:center; gap:6px;
  background: var(--paper-2); color: var(--ink);
  padding: 4px 10px; border-radius: 999px;
  font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600;
}
.grade-level-pill-muted{ opacity:0.6; }
.grade-level-pill .yr{ color: var(--ink-soft); font-weight:500; }
.history-list{ margin-top:4px; }
.history-row{
  display:flex; justify-content:space-between; align-items:center; gap:8px;
  padding:8px 0; border-bottom:1px dotted var(--line); font-size:14px;
}
.history-row-button{
  width:100%;
  text-align:left;
  background:none;
  border:none;
  padding:10px 0;
  cursor:pointer;
}
.history-row:last-child{ border-bottom:none; }
.history-row .lvl{ font-weight:600; }
.history-row .yr{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; color: var(--ink-soft); }
.history-empty{ font-size:13px; color: var(--ink-soft); font-style:italic; padding:6px 0; }

.student-actions{ margin-left:auto; display:flex; gap:6px; }
.gradebook-hero .student-actions{align-items:center;flex-wrap:wrap;justify-content:flex-end}
.gradebook-options-button{min-height:40px;padding:8px 13px;font-size:12px}
.icon-btn{
  border:none; background: var(--paper-2); color: var(--ink-soft);
  width:32px;height:32px;border-radius:8px; cursor:pointer; font-size:14px;
  display:flex;align-items:center;justify-content:center;
}
.icon-btn:hover{ background: var(--line); }

/* ---------- Subject cards ---------- */
.subject-card{
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 14px;
  overflow: hidden;
  background: var(--paper-2);
  transition: box-shadow .15s, border-color .15s;
}
.subject-head{
  display:flex; align-items:center; gap:12px;
  padding: 14px 14px;
  cursor:pointer;
  transition: background .12s;
}
.subject-head:hover{ background: rgba(0,0,0,0.02); }
.subject-head-main{ flex:1; min-width:0; }
.subject-head .badge{
  font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:13px;
  padding: 5px 9px; border-radius:7px; color:#fff; flex-shrink:0; min-width:48px; text-align:center;
}
.subject-head h3{ margin:0; font-size:16.5px; }
.subject-head-meta{ font-size:11.5px; color:var(--ink-soft); margin-top:3px; }
.subject-head .chev{ transition: transform .2s; color: var(--ink-soft); font-size:13px; }
.subject-head .chev.open{ transform: rotate(90deg); }
.subject-head .no-data{ font-size:11.5px; color:var(--ink-soft); font-style:italic; }
.subject-menu-btn{min-width:44px;min-height:44px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-size:22px;cursor:pointer}
.subject-options-btn{flex:0 0 auto}

.gradebook-option-global,.gradebook-option-subject{margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--paper-2)}
.gradebook-option-global h4,.gradebook-option-subject h4{margin:2px 0 10px;font-size:17px}
.gradebook-option-list{display:grid;gap:2px}
.gradebook-option-subject.focused{border-color:var(--sage);box-shadow:0 0 0 2px rgba(47,111,94,.12)}
.gradebook-option-subject-head{display:flex;align-items:start;justify-content:space-between;gap:14px}
.gradebook-option-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:3px 0 12px;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gradebook-option-toggle>div{display:grid;gap:3px}
.gradebook-option-toggle small{color:var(--ink-soft);font-size:12px;line-height:1.4}
.gradebook-option-toggle .switch{flex:0 0 auto}

.subject-body{ display:none; padding: 4px 14px 16px 14px; border-top:1px solid var(--line); }
.subject-body.open{ display:block; }

.section-label{
  font-family:'Zilla Slab',serif; font-weight:600; font-size:13.5px;
  text-transform: uppercase; letter-spacing:0.6px; color: var(--ink-soft);
  margin: 14px 0 8px 0; display:flex; align-items:center; justify-content:space-between;
}
.small-link{
  font-family:'Inter',sans-serif; font-weight:600; font-size:12px; color: var(--sage);
  background:none; border:none; cursor:pointer; text-transform:none; letter-spacing:0;
}

/* Weight editor */
.cat-name{ flex:1; font-size:14px; }
.cat-name input{
  width:100%; border:none; background:transparent; font-size:14px; font-family:'Inter',sans-serif;
  color:var(--ink); padding:4px 2px; border-radius:4px;
}
.cat-name input:focus{ background: var(--paper-2); outline:none; }
.weight-input{
  width:52px; text-align:right; border:1px solid var(--line); border-radius:6px;
  padding:5px 6px; font-family:'IBM Plex Mono',monospace; font-size:13px; background:#fff;
}
.weight-pct{ font-size:12px; color:var(--ink-soft); }
.weight-total{
  margin-top:8px; font-size:12px; display:flex; justify-content:space-between; align-items:center;
  font-family:'IBM Plex Mono',monospace;
}
.weight-total.bad{ color: var(--coral); font-weight:600; }
.weight-total.good{ color: var(--sage); font-weight:600; }
.tiny-btn{
  border:none; background: var(--paper-2); color:var(--ink); font-size:11.5px;
  padding:4px 8px; border-radius:6px; cursor:pointer; font-family:'Inter',sans-serif; font-weight:600;
}
.del-x{border:1px solid rgba(169,68,50,.28);background:rgba(169,68,50,.05);color:var(--coral);cursor:pointer;font-size:11px;font-weight:700;padding:5px 9px;border-radius:7px}
.del-x-muted{border-color:var(--line);background:var(--paper-2);color:var(--ink-soft)}

/* Comfortable touch targets and visible keyboard focus are shared across the
   compact desktop and Android layouts. */
.tiny-btn,.small-link,.del-x,.preset-btn,.scope-btn,.module-customize,.week-card-moves button{min-height:44px;min-width:44px}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #2f7767;outline-offset:2px}
.settings-module-card{border:1px solid var(--line);border-radius:14px;margin:8px 0;overflow:hidden;background:#fff}
.settings-module-card.disabled{background:#f7f5ef}.settings-module-card .settings-row{border:0;margin:0}
.module-customize{width:100%;border:0;border-top:1px solid var(--line);background:rgba(212,166,42,.08);color:var(--forest);font-weight:700;text-align:left;padding:9px 16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.module-options{padding-left:16px;border-top:1px solid var(--line)}.nested-setting.setting-disabled{opacity:.58}
.module-detail-panel{margin:-4px 10px 12px;padding:0 8px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;background:#fbfaf6}
.undo-snackbar{position:fixed;z-index:95;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:18px;max-width:min(92vw,520px);background:#183c34;color:#fff;padding:11px 14px;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.25)}
.undo-snackbar button{min-height:40px;border:0;border-radius:8px;background:var(--gold);color:#172a25;font-weight:800;padding:0 14px}.more-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--coral);color:#fff;font-size:11px}
.data-operation{position:fixed;z-index:94;left:50%;bottom:calc(76px + var(--chrome-bottom));transform:translateX(-50%);display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:8px 12px;width:min(92vw,520px);padding:12px 14px;border-radius:12px;background:#183c34;color:#fff;box-shadow:0 8px 28px rgba(0,0,0,.25)}.data-operation>div{display:flex;justify-content:space-between;gap:12px;grid-column:1/-1}.data-operation progress{width:100%;height:8px;accent-color:var(--gold)}.data-operation button{min-height:36px;border:0;border-radius:8px;background:var(--gold);color:#172a25;font-weight:800;padding:0 12px}
.bottom-nav{position:fixed;z-index:70;left:50%;bottom:0;transform:translateX(-50%);width:min(720px,100%);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:6px max(8px,var(--chrome-right)) calc(6px + var(--chrome-bottom)) max(8px,var(--chrome-left));background:#17342e;border-top:1px solid rgba(255,255,255,.16);box-shadow:0 -6px 18px rgba(0,0,0,.2)}
.bottom-nav-item{position:relative;min-width:0;min-height:52px;border:0;border-radius:10px;background:transparent;color:rgba(245,241,230,.72);font:700 11px/1.2 'Inter',sans-serif;padding:7px 4px;cursor:pointer}
.bottom-nav-item.active{background:rgba(212,166,42,.18);color:#fff}.bottom-nav-item b{position:absolute;right:8px;top:4px;display:grid;place-items:center;min-width:18px;height:18px;border-radius:9px;background:var(--coral);color:#fff;font-size:11px}
.bottom-nav-add .bottom-nav-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--sage);color:#fff;font-size:22px;line-height:1;box-shadow:0 4px 10px rgba(30,70,59,.22)}
.app-notice{position:fixed;z-index:96;left:50%;bottom:calc(76px + var(--chrome-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:14px;width:min(92vw,520px);background:#183c34;color:#fff;padding:11px 14px;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.25)}
.app-notice.error{background:#7b2d22}.app-notice span{flex:1}.app-notice button{min-height:40px;border:0;background:transparent;color:#fff;font-weight:800}
.undo-snackbar{bottom:calc(136px + var(--chrome-bottom))}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Collapsible category blocks (grades live directly under each category) */
.category-block{
  border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; overflow:hidden; background:#fff;
}
.category-head{
  display:flex; align-items:center; gap:8px; padding: 9px 10px; background: var(--paper-2);
}
.chev-btn{
  border:none; background:transparent; cursor:pointer; padding:4px 2px; color:var(--ink-soft);
  flex-shrink:0; display:flex; align-items:center;
}
.category-body{ display:none; padding: 8px 12px 12px 12px; }
.category-body.open{ display:block; }

/* Assignments table */
.assign-row{
  display:flex; gap:10px; align-items:center;
  padding:8px 0; border-bottom:1px solid var(--line);
}
.assign-row:last-child{ border-bottom:none; }
.assign-main{ flex:1; min-width:0; }
.assign-main .a-name{ font-size:14px; font-weight:500; }
.assign-main .a-meta{ font-size:11.5px; color: var(--ink-soft); font-family:'IBM Plex Mono',monospace; }
.assign-score{ font-family:'IBM Plex Mono',monospace; font-size:13.5px; text-align:right; flex-shrink:0; }
.assign-score-grade{ font-weight:600; }
.no-items{ font-size:13px; color: var(--ink-soft); font-style:italic; padding:8px 0; }

.add-form{
  display:flex; flex-direction:column; gap:8px; margin-top:10px;
  background: var(--paper-2); padding:12px; border-radius:10px;
}
.row2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.row3{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:8px; }
.row2>*,.row3>*{min-width:0}
.add-form input, .add-form select, .add-form textarea{
  border:1px solid var(--line); border-radius:7px; padding:9px 10px; font-size:14px;
  font-family:'Inter',sans-serif; background:#fff; color:var(--ink); width:100%;
}
.add-form textarea{ min-height:88px; resize:vertical; }
.add-form .actions{ display:flex; gap:8px; margin-top:2px; flex-wrap:wrap; }
.btn{
  border:none; border-radius:8px; padding:10px 15px; font-weight:600; font-size:13.5px;
  cursor:pointer; font-family:'Inter',sans-serif; transition: filter .12s, background .12s;
}
.btn:hover{ filter: brightness(1.08); }
.btn:active{ filter: brightness(0.95); }
.btn-primary{ background: var(--bg); color: var(--paper); }
.btn-ghost{ background: transparent; color: var(--ink-soft); }
.btn-ghost:hover{ background: var(--paper-2); filter:none; }

.add-subject-btn{
  width:100%; padding:13px; border-radius:12px; border: 1.5px dashed var(--line);
  background: transparent; color: var(--ink-soft); font-weight:600; font-size:14px;
  cursor:pointer; margin-top:6px; font-family:'Inter',sans-serif; transition: background .12s, border-color .12s;
}
.add-subject-btn:hover{ background: var(--paper-2); border-color: var(--ink-soft); }

/* Focus visibility for accessibility */
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline: 2px solid var(--gold); outline-offset: 2px;
}
.add-form input:focus, .add-form select:focus, .notes-area:focus{
  outline:none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(212,166,42,0.18);
}

/* Empty state */
.empty{ text-align:center; padding: 50px 20px; color: var(--ink-soft); }
.empty-compact{ padding:30px 10px; }
.empty h2{ color: var(--ink); margin-bottom:6px; }
.empty .btn-primary{ margin-top:14px; padding:11px 20px; }

/* Modal */
.modal-back{
  position:fixed; inset:0; background: rgba(15,25,22,0.55); z-index:100;
  display:flex; align-items:flex-end; justify-content:center;
  padding: calc(12px + var(--chrome-top)) var(--chrome-right) var(--keyboard-offset) var(--chrome-left);
  overflow-y:auto;
}
.workspace-page{padding-top:12px}.workspace-back{border:0;background:transparent;color:var(--ink);font-weight:800;padding:10px 4px;margin-bottom:4px;cursor:pointer}.modal-back-workspace{position:static;display:block;min-height:0;padding:0;background:transparent;backdrop-filter:none}.modal-workspace{width:100%;max-width:none;max-height:none;min-height:0;box-shadow:none;border:0;background:transparent;padding:8px 0 24px;overflow:visible}.modal-workspace::before{display:none}.modal-workspace>.display{font-size:28px}.modal-workspace .modal-form-body{max-height:none;overflow:visible}
.modal{
  background: var(--paper); color:var(--ink); width:100%; max-width:720px;
  border-radius: 18px 18px 0 0; padding: 10px 20px calc(26px + var(--chrome-bottom)) 20px;
  animation: slideup .18s ease;
  box-shadow: 0 -8px 30px rgba(0,0,0,0.25);
  max-height: calc(var(--viewport-height) - var(--chrome-top) - 18px);
  overflow-y: auto;
  overflow-x:hidden;
  overscroll-behavior: contain;
  scroll-padding-top: 72px;
  scroll-padding-bottom: calc(160px + var(--keyboard-offset));
}
.modal::before{
  content:''; display:block; width:36px; height:4px; border-radius:99px;
  background: var(--line); margin: 0 auto 16px auto;
}
@keyframes slideup{ from{ transform: translateY(30px); opacity:0;} to{transform:translateY(0);opacity:1;} }
.modal h3{ margin:0 0 14px 0; }
.modal-copy{
  font-size:12.5px;
  color:var(--ink-soft);
  margin:-6px 0 12px 0;
}
.modal-copy-tight{
  margin-top:-6px;
}
.modal-copy-strong{
  font-size:13.5px;
}
.modal-copy-body{
  font-size:14px;
  color:var(--ink-soft);
  margin:0;
}
.modal-error{
  color:var(--coral);
  font-size:12.5px;
  margin-top:-6px;
}
.modal-photo{
  width:100%;
  border-radius:10px;
  display:block;
  margin-bottom:14px;
}
.modal-grid-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:10px;
}
.modal-checklist{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.modal-check-row{
  display:flex;
  gap:8px;
  align-items:center;
  font-size:14px;
}
.modal .modal-check-row input[type="checkbox"],.modal .modal-check-row input[type="radio"]{width:20px;height:20px;flex:0 0 20px;padding:0;margin:0;accent-color:var(--sage)}
.modal-grade-row{
  border-bottom:1px dotted var(--line);
  padding:7px 0;
}
.modal-grade-row-total{
  margin-top:8px;
  padding-top:8px;
  border-top:2px solid var(--ink);
  border-bottom:none;
  font-weight:600;
}
.modal input, .modal select, .modal textarea{
  width:100%; max-width:100%; min-width:0; border:1px solid var(--line); border-radius:8px; padding:11px 12px;
  font-size:15px; margin-bottom:10px; font-family:'Inter',sans-serif;
  scroll-margin-bottom: calc(160px + var(--keyboard-offset));
  scroll-margin-top: 72px;
}
.modal textarea{ min-height:96px; resize:vertical; background:#fff; color:var(--ink); }
.discard-draft-back{z-index:130;background:rgba(15,25,22,.72)}
.discard-draft-modal{max-width:460px;border-radius:18px;margin:auto;padding-bottom:24px}
.swatches{ display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.swatch{ width:30px;height:30px;border-radius:50%; cursor:pointer; border:2px solid transparent; }
.swatch.sel{ border-color: var(--ink); }
.color-fieldset{border:0;padding:0;margin:10px 0}.color-fieldset legend{font-size:13px;font-weight:700;color:var(--ink-soft);margin-bottom:8px}.color-choice{position:relative;display:grid;place-items:center;gap:3px;min-width:48px;cursor:pointer}.color-choice input{position:absolute;opacity:0}.color-choice span{width:42px;height:42px;border-radius:50%;border:3px solid transparent}.color-choice input:checked+span{border-color:var(--ink);box-shadow:0 0 0 2px #fff inset}.color-choice b{font-size:11px;color:var(--ink-soft)}
.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px;flex-wrap:wrap;max-width:100%}.modal .actions .btn{min-width:0;white-space:normal}
.modal-back-form{
  align-items:flex-end;
  justify-content:center;
  padding: calc(12px + var(--chrome-top)) var(--chrome-right) calc(12px + var(--keyboard-offset)) var(--chrome-left);
  background: rgba(15,25,22,0.6);
}
.modal-form-card{
  width:100%;
  max-width:720px;
  max-height: calc(var(--viewport-height) - var(--chrome-top) - 24px);
  border-radius: 18px;
  padding: 16px 18px calc(18px + var(--chrome-bottom)) 18px;
  overflow:hidden;
}
.modal-form-card::before{ display:none; }
.modal-form-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.modal-form-header h3{
  margin:0;
  font-size:22px;
}
.modal-form-header .actions{
  margin-top:0;
  flex-shrink:0;
}
.modal-form-copy{
  font-size:13px;
  color: var(--ink-soft);
  margin-bottom:10px;
}
.modal-form-body{
  overflow-y:auto;
  overscroll-behavior:contain;
  max-height: min(42vh, 320px);
  padding-bottom:8px;
}
.modal-form-card input,
.modal-form-card select{
  font-size:16px;
}
@media (max-width: 600px){
  .brand{flex-wrap:wrap;gap:6px}.brand-text{flex:1 0 100%}.brand-text span{display:none}.brand :is(.quick-add-btn,.header-action-btn,.settings-btn){flex:1;justify-content:center;min-width:0;height:40px;margin:0}.header-action-btn{border:1px solid rgba(245,241,230,.18);border-radius:999px;background:rgba(255,255,255,.05)}
  input,select,textarea{font-size:16px!important}
  .modal-form-header{
    align-items:flex-start;
    flex-direction:column;
  }
  .modal-form-header .actions{
    width:100%;
    justify-content:flex-end;
  }
  .modal-form-body{
    max-height: min(48vh, 360px);
  }
  .modal-form-card{min-height:var(--viewport-height);max-height:var(--viewport-height);border-radius:0;padding-top:calc(14px + var(--chrome-top));display:flex;flex-direction:column}
  .modal-form-card .modal-form-body{flex:1;max-height:none}
}

.footer-note{
  text-align:center; font-size:11.5px; color: rgba(245,241,230,0.72); padding: 18px 20px 0 20px;
}
.footer-retry{
  border:0; background:transparent; color:var(--gold-soft); font:inherit; font-weight:700;
  padding:4px 6px; text-decoration:underline; cursor:pointer;
}
/* Curriculum links */
.link-row{
  display:flex; align-items:center; gap:8px; padding:7px 0;
  border-bottom: 1px dotted var(--line);
}
.link-row:last-child{ border-bottom:none; }
.link-row a{ color: var(--bg-2); font-weight:600; font-size:14px; text-decoration:none; flex:1; }
.link-row a span{ display:block; font-size:11.5px; color: var(--ink-soft); font-weight:400; font-family:'IBM Plex Mono',monospace; }
.link-row a:hover{ text-decoration:underline; }

/* Notes */
.notes-area{
  width:100%; min-height:70px; border:1px solid var(--line); border-radius:9px;
  padding:10px 11px; font-family:'Inter',sans-serif; font-size:13.5px; color:var(--ink);
  resize:vertical; background:#fff;
}

/* Daily assignments view */
.daily-header{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding: 4px 4px 18px 4px;
  border-bottom:1px solid var(--line); margin-bottom:16px;
}
.daily-header input[type=date]{
  border:1px solid var(--line); border-radius:8px; padding:9px 10px; font-family:'IBM Plex Mono',monospace; font-size:13.5px;
}
.daily-header h2{ margin:0; font-size:19px; flex:1; }
.day-navigation{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.day-navigation input{min-height:44px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}
.view-mode-toggle{ display:flex; gap:4px; }
.week-toolbar{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.week-toolbar b{ flex:1; text-align:center; font-size:13px; }
.week-student-block{ border:1px solid var(--line); border-radius:12px; background:#fbf9f2; overflow:hidden; margin-bottom:16px; }
.week-grid{ display:grid; grid-template-columns:repeat(7,minmax(150px,1fr)); overflow-x:auto; border-top:1px solid var(--line); }
.week-day{ min-height:180px; padding:10px; border-right:1px solid var(--line); background:#fff; }
.week-day:last-child{ border-right:0; }
.week-day.is-today{ background:rgba(212,166,42,.08); }
.week-day-label{ width:100%; border:0; background:transparent; color:var(--ink); font-weight:700; text-align:left; padding:0 0 8px; cursor:pointer; }
.week-day-items{ display:grid; gap:8px; }
.week-item{ border:1px solid var(--line); background:#fbf9f2; border-radius:8px; padding:8px; font-size:12px; }
.week-item.done{ opacity:.62; }
.week-item.done span{ text-decoration:line-through; }
.week-item label{ display:flex; align-items:flex-start; gap:6px; }
.week-item-actions{ display:flex; justify-content:flex-end; gap:5px; margin-top:6px; }
.week-item-actions button{ border:0; border-radius:6px; background:var(--paper); cursor:pointer; }
.week-empty{ color:var(--ink-soft); font-size:11px; padding:8px 0; }
.week-add{ border:0; background:transparent; color:var(--sage-dark); font-weight:700; padding:10px 0 0; cursor:pointer; }
.agenda-day-strip{ display:grid; grid-template-columns:repeat(7,minmax(42px,1fr)); gap:5px; margin-bottom:14px; }
.agenda-day-chip{ position:relative; display:grid; justify-items:center; gap:2px; border:1px solid var(--line); border-radius:10px; padding:7px 2px; background:#fff; color:var(--ink-soft); cursor:pointer; }
.agenda-day-chip span{ font-size:11px; text-transform:uppercase; }
.agenda-day-chip b{ font-size:16px; }
.agenda-day-chip small{ position:absolute; right:4px; top:3px; min-width:14px; font-size:11px; color:var(--coral); }
.agenda-day-chip.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.agenda-day-chip.is-today:not(.active){ border-color:var(--gold); }
.agenda-list{ display:grid; gap:8px; padding-top:12px; }
.agenda-item{ border:1px solid var(--line); border-radius:9px; padding:10px; background:#fff; }
.agenda-item > label{ display:flex; gap:8px; align-items:flex-start; font-size:13px; font-weight:600; }
.agenda-item.done > label span{ text-decoration:line-through; color:var(--ink-soft); }
.month-weekdays,.month-grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.month-weekdays span{ padding:5px 2px; text-align:center; color:var(--ink-soft); font-size:11px; font-weight:700; }
.month-grid{ border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--line); gap:1px; }
.month-cell{ min-height:82px; display:flex; flex-direction:column; gap:3px; align-items:flex-start; border:0; padding:7px 5px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; overflow:hidden; }
.month-cell.outside{ opacity:.43; }
.month-cell.today{ box-shadow:inset 0 0 0 2px var(--gold); }
.month-cell.break{ background:rgba(111,156,125,.12); }
.month-cell b{ font-size:12px; }
.month-cell span,.month-cell small{ max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; color:var(--ink-soft); }
.student-mode-header{ padding-bottom:8px; }
.student-mode-header .brand{ margin-bottom:0; }
.student-mode-task{ display:flex; align-items:flex-start; gap:10px; padding:12px 0; border-bottom:1px dotted var(--line); }
.student-mode-task:last-child{ border-bottom:0; }
.student-mode-task input{ width:22px; height:22px; accent-color:var(--sage); }
.student-mode-task span{ display:grid; gap:3px; }
.student-mode-task small{ color:var(--ink-soft); }
.student-mode-task.done b{ text-decoration:line-through; color:var(--ink-soft); }
.student-todo-card{
  border:1px solid var(--line); border-radius:12px; margin-bottom:16px; background:#FBF9F2; overflow:hidden;
}
.student-todo-head{
  display:flex; align-items:center; gap:10px; padding:13px 14px; border-bottom:1px solid var(--line);
}
.student-todo-head .dot{ width:11px;height:11px;border-radius:50%; flex-shrink:0; }
.student-todo-head h3{ margin:0; font-size:16px; flex:1; }
.card-head-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.student-todo-body{ padding:6px 14px 14px 14px; }
.todo-row{ display:flex; align-items:flex-start; gap:10px; padding:8px 0; border-bottom:1px dotted var(--line); }
.todo-row:last-child{ border-bottom:none; }
.todo-check{ width:19px;height:19px; margin-top:2px; flex-shrink:0; cursor:pointer; accent-color: var(--sage); }
.todo-text{ flex:1; font-size:14px; }
.todo-text.done{ text-decoration: line-through; color: var(--ink-soft); }
.todo-source-link{
  display:inline-block; margin-top:4px; font-size:11px; color:var(--sage);
  font-family:'IBM Plex Mono',monospace;
}
.todo-subject-tag{
  font-size:11px; font-family:'IBM Plex Mono',monospace; color:#fff; padding:2px 7px;
  border-radius:5px; display:inline-block; margin-top:3px;
}
.todo-add-row{ display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.todo-add-row input[type=text]{ flex:2; min-width:120px; }
.todo-add-row select{ flex:1; min-width:100px; }
.todo-add-row input, .todo-add-row select{
  border:1px solid var(--line); border-radius:7px; padding:8px 9px; font-size:13.5px; font-family:'Inter',sans-serif;
}

/* Term row */
.term-row{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding: 9px 10px; margin-bottom:14px; border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.35);
}
.term-row select{
  border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-size:13.5px; font-family:'Inter',sans-serif;
}

/* Generic module card */
.module-card{
  border:1px solid var(--line); border-radius:12px; margin-bottom:16px; background:#FBF9F2; overflow:hidden;
}
.module-card-head{
  display:flex; align-items:center; gap:10px; padding:13px 14px; border-bottom:1px solid var(--line);
}
.module-card-head .dot{ width:11px;height:11px;border-radius:50%; flex-shrink:0; }
.module-card-head h3{ margin:0; font-size:16px; flex:1; }
.module-card-head-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.module-card-body{ padding:6px 14px 14px 14px; }
.lesson-plan-subtext{ margin-bottom:10px; }
.overview-student-summary{
  display:flex;
  align-items:center;
  gap:14px;
}
.overview-student-meta{
  flex:1;
  min-width:0;
}

/* Attendance */
.att-summary{ display:flex; gap:18px; margin-bottom:10px; flex-wrap:wrap; }
.att-stat{ font-family:'IBM Plex Mono',monospace; }
.att-stat b{ font-size:18px; display:block; }
.att-stat span{ font-size:11px; color:var(--ink-soft); }
.today-progress{ display:grid; gap:8px; margin-bottom:14px; }
.today-progress > div:first-child{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.today-progress b,.today-empty-callout b{ font-size:14px; }
.today-progress span,.today-empty-callout span{ font-size:11.5px; color:var(--ink-soft); }
.today-progress-track{ height:8px; border-radius:999px; background:var(--line); overflow:hidden; }
.today-progress-track span{ display:block; height:100%; background:var(--sage); border-radius:inherit; }
.today-empty-callout{ display:flex; flex-direction:column; gap:3px; padding:11px 12px; margin-bottom:14px; border-radius:9px; background:rgba(212,166,42,0.10); border:1px solid rgba(212,166,42,0.28); }
.insight-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:8px; }
.insight-card{ display:grid; gap:2px; padding:10px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.insight-card b{ font-size:18px; }
.insight-card span{ font-size:12px; font-weight:700; }
.insight-card small{ font-size:11px; color:var(--ink-soft); }
.read-count-badge{ display:inline-block; margin-left:6px; padding:2px 7px; border-radius:999px; background:rgba(111,156,125,.16); color:var(--sage-dark); font-family:'Inter',sans-serif; font-size:11px; vertical-align:middle; }
.read-history{ display:grid; gap:4px; margin-top:5px; }
.att-quickmark{ display:flex; gap:8px; align-items:center; margin:10px 0; flex-wrap:wrap; }
.att-quickmark input[type=date]{ border:1px solid var(--line); border-radius:7px; padding:8px 9px; font-family:'IBM Plex Mono',monospace; font-size:13px; }
.status-btn{ border:1px solid var(--line); background:#fff; border-radius:7px; padding:7px 11px; font-size:12.5px; font-weight:600; cursor:pointer; font-family:'Inter',sans-serif; }
.status-btn.present{ border-color: var(--sage); }
.status-btn.absent{ border-color: var(--coral); }
.status-btn.half{ border-color: var(--gold); }
.att-log-row{ display:flex; justify-content:space-between; align-items:center; padding:7px 0; border-bottom:1px dotted var(--line); font-size:13.5px; }
.att-log-row:last-child{ border-bottom:none; }
.att-log-row>span:first-child{display:grid;gap:2px}.att-log-row>span:first-child small{color:var(--ink-soft);font-size:9px;font-weight:650}
.att-pill{ font-size:11px; padding:2px 8px; border-radius:999px; font-weight:600; color:#fff; }
.att-pill-present{ background:#6F9C7D; }
.att-pill-half{ background:#D4A62A; }
.att-pill-absent{ background:#E2725B; }
.attendance-grid-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.att-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:14px;
  margin-top:14px;
}

/* Lesson plans */
.lp-row{ display:flex; align-items:flex-start; gap:10px; padding:9px 0; border-bottom:1px dotted var(--line); }
.lp-row:last-child{ border-bottom:none; }
.lp-main .lp-title{ font-size:14px; font-weight:600; }
.lp-main .lp-title.done{ text-decoration:line-through; color:var(--ink-soft); }
.lp-main .lp-meta{ font-size:11.5px; color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; margin-top:2px; }
.lp-main .lp-notes{ font-size:13px; margin-top:4px; color:var(--ink); }
.lp-main .lp-link-meta{ font-size:11px; margin-top:4px; color:var(--sage); font-family:'IBM Plex Mono',monospace; }
.lp-stats{ display:flex; gap:12px; flex-wrap:wrap; margin:4px 0 12px 0; }
.lp-stat{
  min-width:92px; padding:9px 10px; border:1px solid var(--line); border-radius:10px; background:#fff;
  font-family:'IBM Plex Mono',monospace;
}
.lp-stat b{ display:block; font-size:17px; }
.lp-stat span{ display:block; margin-top:2px; font-size:11px; color:var(--ink-soft); }
.card-toolbar{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.lp-split{
  display:grid; grid-template-columns: 1.1fr 0.9fr; gap:12px; align-items:start;
}
.lp-panel{
  border:1px solid var(--line); border-radius:11px; background:#fff; padding:12px;
}
.lp-panel-title{
  display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; flex-wrap:wrap;
}
.lp-panel-title .card-toolbar{margin-bottom:0}
.lp-panel-title h4{
  margin:0; font-size:14px; font-family:'Zilla Slab',serif;
}
.section-helper{ font-size:12px; color:var(--ink-soft); margin:0 0 10px 0; }
.section-empty{ font-size:12.5px; color:var(--ink-soft); padding:4px 0; }
.weekday-picks{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.weekday-fieldset{min-width:0;margin:2px 0 10px;padding:8px 10px 10px;border:1px solid var(--line);border-radius:10px}.weekday-fieldset legend{padding:0 5px;color:var(--ink-soft);font-size:11px;font-weight:800}.weekday-fieldset .weekday-picks{margin-top:0}
.weekday-pill{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
}
.weekday-pill input{
  position:absolute; opacity:0; pointer-events:none;
}
.weekday-pill span{
  min-width:38px; text-align:center; padding:8px 10px; border:1px solid var(--line); border-radius:999px;
  background:#F7F2E6; font-size:12px; font-weight:600; cursor:pointer; user-select:none;
}
.weekday-pill input:checked + span{
  background:var(--sage); color:#fff; border-color:var(--sage);
}
.preset-row{ display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 4px 0; }
.preset-btn{
  border:1px solid var(--line); background:#fff; border-radius:999px; padding:7px 10px; font-size:12px; cursor:pointer;
  font-family:'Inter',sans-serif; font-weight:600;
}
.template-row{
  display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px dotted var(--line);
}
.template-row:last-child{ border-bottom:none; }
.template-main{ flex:1; min-width:0; }
.template-meta{ font-size:11.5px; color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; margin-top:2px; }
.template-notes{ font-size:12.5px; color:var(--ink); margin-top:4px; }
@media (max-width: 780px){
  .lp-split{ grid-template-columns: 1fr; }
}

/* Reading log */
.book-row{ display:flex; align-items:flex-start; gap:10px; padding:10px 0; border-bottom:1px dotted var(--line); }
.book-row:last-child{ border-bottom:none; }
.book-main{ flex:1; min-width:0; }
.book-title{ font-size:14.5px; font-weight:600; }
.book-author{ font-size:12.5px; color:var(--ink-soft); font-style:italic; }
.book-suggestions{border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:0 10px 24px rgba(30,48,42,.14);max-height:330px;overflow-y:auto}.book-suggestions[hidden]{display:none}.book-suggestion{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.book-suggestion:last-of-type{border-bottom:0}.book-suggestion:hover,.book-suggestion:focus-visible{background:var(--paper-2);outline:2px solid var(--sage);outline-offset:-2px}.book-suggestion img,.book-cover-placeholder{flex:0 0 40px;width:40px;height:54px;border-radius:5px;object-fit:cover;background:#e7e0d1}.book-cover-placeholder{display:grid;place-items:center;color:var(--ink-soft);font-size:10px;font-weight:700}.book-suggestion-copy{display:grid;gap:3px;min-width:0}.book-suggestion-copy b{font-size:14px}.book-suggestion-copy small{color:var(--ink-soft);font-size:12px}.book-lookup-message{padding:13px;color:var(--ink-soft)}.book-lookup-message.error{color:var(--coral)}.book-lookup-credit{padding:8px 10px;text-align:right;color:var(--ink-soft);font-size:11px}.book-lookup-credit a,.book-source-link{color:var(--sage);font-weight:700}.book-lookup-privacy{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.45}.reading-book-cover{flex:0 0 54px;width:54px;height:76px;object-fit:cover;border-radius:6px;background:#e7e0d1}.book-catalog-meta{margin-top:2px;color:var(--ink-soft);font-size:11px}.book-source-link{display:inline-block;margin-top:3px;font-size:11px}
.book-meta{ font-size:11.5px; color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; margin-top:3px; }
.stars{ color: var(--gold-text); font-size:13px; letter-spacing:1px; }

/* Portfolio */
.pf-row{ padding:10px 0; border-bottom:1px dotted var(--line); }
.pf-row-flex{
  display:flex;
  gap:8px;
  align-items:flex-start;
}
.pf-row:last-child{ border-bottom:none; }
.pf-main{
  flex:1;
  min-width:0;
}
.pf-title{ font-size:14.5px; font-weight:600; }
.pf-meta{ font-size:11.5px; color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; margin:2px 0 4px 0; }
.pf-desc{ font-size:13.5px; }
.pf-link{ font-size:12.5px; color:var(--bg-2); font-weight:600; }
.pf-tags{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:6px;
}
.pf-attachments{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
}

/* Transcript */
.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.transcript-table{ width:100%; min-width:640px; border-collapse:collapse; margin-bottom:10px; }
.transcript-table th, .transcript-table td{ text-align:left; padding:8px 6px; border-bottom:1px solid var(--line); font-size:13px; }
.transcript-table th{ font-family:'Zilla Slab',serif; font-weight:600; color:var(--ink-soft); font-size:12px; text-transform:uppercase; }
.transcript-credit-input{
  width:52px;
  border:1px solid var(--line);
  border-radius:6px;
  padding:5px 6px;
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;
}
.transcript-check-row{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
}
.transcript-actions-spaced{ margin-top:10px; }
.transcript-summary{ display:flex; gap:24px; margin: 12px 0 16px 0; flex-wrap:wrap; }
.transcript-group-row th{
  background:rgba(92, 74, 54, 0.06);
  color:var(--ink);
  font-size:11px;
  letter-spacing:0.04em;
}
.transcript-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:14px;
  margin-top:14px;
}

/* Settings */
.settings-row{
  display:flex; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--line);
}
.settings-row:last-child{ border-bottom:none; }
.settings-info{ flex:1; }
.settings-info .s-title{ font-weight:600; font-size:14.5px; }
.settings-info .s-desc{ font-size:12.5px; color:var(--ink-soft); margin-top:2px; }
.settings-input,
.settings-select,
.settings-number-input{
  border:1px solid var(--line);
  border-radius:8px;
  padding:8px 10px;
  font-size:14px;
  font-family:'Inter',sans-serif;
  background:#fff;
  color:var(--ink);
}
.settings-input{ width:min(180px, 100%); }
.settings-select{ width:min(190px, 100%); }
.settings-number-input{ width:80px; }
.settings-copy{
  font-size:13px;
  color:var(--ink-soft);
  margin:0 0 4px 0;
}
.switch{
  position:relative; width:48px; height:44px; flex-shrink:0; cursor:pointer;
}
.switch input{ opacity:0; width:0; height:0; }
.switch-track{
  position:absolute; left:2px; right:2px; top:9px; bottom:9px; background: var(--line); border-radius:999px; transition: background .15s;
}
.switch-track::before{
  content:''; position:absolute; width:19px;height:19px; left:3px; top:3px; background:#fff; border-radius:50%;
  transition: transform .15s; box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.switch input:checked + .switch-track{ background: var(--sage); }
.switch input:checked + .switch-track::before{ transform: translateX(19px); }
[aria-invalid="true"]{border-color:var(--coral)!important;box-shadow:0 0 0 2px rgba(169,68,50,.16)}
.add-disclosure{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.add-disclosure summary{min-height:44px;display:flex;align-items:center;color:var(--sage);font-weight:700;cursor:pointer}.add-disclosure[open] summary{margin-bottom:8px}
.settings-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
.settings-menu-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;width:100%;min-height:112px;padding:16px;text-align:left;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--ink);font:inherit;cursor:pointer;box-shadow:0 2px 8px rgba(34,43,39,.04);transition:border-color .15s,background .15s,transform .15s}
.settings-menu-card:hover,.settings-menu-card:focus-visible{border-color:var(--sage);background:rgba(111,156,125,.07);transform:translateY(-1px)}
.settings-menu-badge{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--bg);color:var(--paper);font-size:11px;font-weight:800;letter-spacing:.03em}
.settings-menu-copy{display:grid;gap:4px;min-width:0}.settings-menu-copy strong{font-size:15px}.settings-menu-copy small{color:var(--ink-soft);font-size:12.5px;line-height:1.35}.settings-menu-copy em{color:var(--sage);font-size:11.5px;font-style:normal;font-weight:700}.settings-menu-chevron{color:var(--sage);font-size:28px;line-height:1}
.settings-page-header{display:grid;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line)}.settings-page-header h2{margin:0}.settings-page-header p{margin:4px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.4}.settings-back-button{justify-self:start;min-height:44px;border:0;background:transparent;color:var(--sage);font:inherit;font-size:13px;font-weight:800;padding:0;cursor:pointer}
.settings-page-body{max-width:820px}.settings-callout,.settings-empty-card{display:grid;gap:4px;margin-top:12px;padding:14px;border:1px dashed var(--line);border-radius:12px;background:rgba(111,156,125,.06);color:var(--ink-soft);font-size:13px}.settings-empty-card b{color:var(--ink)}
.student-settings-list,.settings-student-cards{display:grid;gap:10px;margin-top:14px}.settings-student-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.settings-student-row>div{display:grid;gap:2px}.settings-student-row small{color:var(--ink-soft)}
.settings-student-card{display:grid;gap:13px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff}.settings-student-summary{display:flex;align-items:center;gap:10px}.settings-student-summary h3{margin:0;font-size:16px}.settings-student-summary p{margin:3px 0 0;color:var(--ink-soft);font-size:12.5px}.settings-student-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line)}
.row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.modal-field-grid{display:grid;gap:12px}.reading-edit-row{margin-top:12px}.reading-edit-row legend{padding:0 6px;font-weight:700}
.settings-section-title{
  font-family:'Zilla Slab',serif; font-weight:600; font-size:15px; margin: 22px 0 4px 0; color: var(--ink);
}
.settings-section-title:first-child{ margin-top:4px; }
.backup-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; }
.backup-status{
  font-size:12.5px; font-weight:600; padding:8px 11px; border-radius:8px; margin-top:6px;
}
.backup-status.good{ background: rgba(111,156,125,0.15); color: var(--sage); }
.backup-status.bad{ background: rgba(226,114,91,0.12); color: var(--coral); }

/* Lock screen */
.lock-screen{
  min-height:var(--viewport-height); display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding: calc(24px + var(--chrome-top)) 24px calc(24px + var(--chrome-bottom)) 24px; text-align:center;
}
.lock-mark{ font-size:34px; margin-bottom:14px; opacity:0.8; }
.lock-screen h1{ font-family:'Zilla Slab',serif; color:var(--paper); font-size:21px; margin:0 0 4px 0; }
.lock-screen p{ color: rgba(245,241,230,0.55); font-size:13px; margin:0 0 20px 0; }
.lock-screen input{
  text-align:center; font-size:22px; letter-spacing:8px; padding:13px; border-radius:10px;
  border:1px solid var(--line); width:170px; font-family:'IBM Plex Mono',monospace;
}
.lock-submit-btn{
  margin-top:12px;
  padding:11px 26px;
}
.lock-error{ color: var(--coral); font-size:13px; margin-top:10px; font-weight:600; }

/* Danger zone */
.danger-toggle{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  background:transparent; border:1px solid var(--line); border-radius:9px;
  padding:12px 14px; cursor:pointer; font-family:'Inter',sans-serif; font-size:13.5px;
  font-weight:600; color: var(--ink-soft); margin-top:4px;
}
.danger-toggle-spaced{ margin-top:10px; }
.danger-toggle .care{ transition: transform .15s; }
.danger-toggle .care.open{ transform: rotate(180deg); }
.danger-body{
  border:1px solid var(--line); border-top:none; border-radius:0 0 9px 9px;
  padding: 4px 14px 10px 14px;
}
.danger-body-padded{ padding-top:10px; }
.danger-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:11px 0; border-bottom:1px dotted var(--line); font-size:14px;
}
.danger-row:last-child{ border-bottom:none; }
.danger-link{
  border:none; background:none; color: var(--ink-soft); font-size:12px;
  cursor:pointer; font-family:'Inter',sans-serif; text-decoration:underline; padding:4px;
}
.danger-link:hover{ color: var(--coral); }

/* Photo proof attachments */
.photo-thumb{
  width:44px; height:44px; border-radius:8px; object-fit:cover; cursor:pointer;
  border:1px solid var(--line); flex-shrink:0; display:block;
}
.photo-hint{ font-size:11.5px; color: var(--ink-soft); margin: -2px 0 2px 2px; }
.file-input-row{
  display:flex; align-items:center; gap:10px; margin-top:2px;
}
.file-input-row input[type=file]{
  font-size:12.5px; color: var(--ink-soft); max-width:100%;
}
.scope-toggle{
  display:flex; gap:8px; flex-wrap:wrap; margin:0 0 14px 0;
}
.scope-btn{
  border:1px solid var(--line); background:#fff; color:var(--ink-soft);
  border-radius:999px; padding:8px 12px; font-size:12.5px; cursor:pointer; font-family:'Inter',sans-serif; font-weight:600;
}
.scope-btn.active{
  background:var(--ink); color:var(--paper); border-color:var(--ink);
}
.section-card{
  border:1px solid var(--line); border-radius:10px; padding:10px 11px; background:#fff; margin-top:12px;
}
.section-card-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px;
}
.section-card-head h4{
  margin:0; font-size:13.5px; font-family:'Zilla Slab',serif; color:var(--ink);
}
.credit-row{
  display:flex; align-items:center; gap:10px; margin-top:10px;
}
.credit-input{
  width:88px; border:1px solid var(--line); border-radius:8px; padding:9px 10px; font-size:14px;
}
.credit-help{
  font-size:12px; color:var(--ink-soft);
}
.group-block{ margin-top:12px; }
.group-title{
  font-size:11.5px; color:var(--ink-soft); font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:0.04em;
  margin-bottom:4px;
}
.quick-action-strip{
  display:flex; gap:8px; flex-wrap:wrap; margin:0 0 12px 0;
}
.quick-action-pill,
.quick-action-card,
.template-chip{
  border:1px solid var(--line); background:#fff; color:var(--ink);
  border-radius:999px; padding:8px 12px; font-size:12.5px; cursor:pointer; font-family:'Inter',sans-serif; font-weight:600;
}
.quick-action-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr)); gap:10px; margin-top:10px;
}
.quick-action-card{
  border-radius:12px; text-align:left; min-height:54px;
}
.report-card-button{display:grid;align-content:center;gap:4px}.report-card-button strong{font-size:13px}.report-card-button span{color:var(--ink-soft);font-size:11.5px;font-weight:500;line-height:1.35}
.field-label{display:block;margin-bottom:4px;color:var(--ink-soft);font-size:11px;font-weight:800;letter-spacing:.02em}.report-date-range label{display:block}
.quick-actions-label{ margin-top:12px; margin-bottom:7px; }
.today-quick-actions{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:0; }
.today-quick-actions .quick-action-card{ display:flex; align-items:center; gap:9px; min-height:46px; padding:9px 11px; border-radius:10px; background:rgba(255,255,255,.72); }
.today-quick-actions .quick-action-card.primary-action{ background:rgba(111,156,125,.14); border-color:rgba(111,156,125,.42); }
.quick-action-symbol{ display:grid; place-items:center; width:24px; height:24px; flex:0 0 24px; border-radius:7px; background:var(--paper-2); color:var(--ink); font-size:15px; font-weight:800; line-height:1; }
.primary-action .quick-action-symbol{ background:var(--sage); color:#fff; }
.analytic-card{
  border:1px solid var(--line); border-radius:12px; background:#fff; padding:12px;
}
.analytic-card-head{
  display:flex; align-items:center; gap:8px; margin-bottom:10px;
}
.analytic-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:8px;
}
.analytic-grid b,
.analytic-grid span{
  display:block;
}
.analytic-grid span{
  color:var(--ink-soft); font-size:11.5px;
}
.bulk-toolbar{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 10px 0;
}
.bulk-check{
  width:18px;height:18px;margin-top:4px;accent-color:var(--gold);outline:1px dashed rgba(36,48,44,.45);outline-offset:2px;
}
.todo-check{width:22px;height:22px;accent-color:var(--sage)}
.bulk-selection-count{font-size:11px;font-weight:800;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.small-link:disabled,.tiny-btn:disabled{opacity:.42;cursor:not-allowed}
.history-more{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 2px;color:var(--ink-soft);font-size:12px;border-top:1px solid var(--line)}
.template-strip{
  display:flex; gap:8px; flex-wrap:wrap; margin:10px 0 12px 0;
}
.settings-inline-fields{
  display:flex; align-items:center; gap:10px;
}
.settings-input-sm{
  width:120px;
}
.file-input-row label{
  min-width:110px; color:var(--ink-soft); font-size:12px; font-weight:600;
}
.assignment-lifecycle{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 16px}.assignment-lifecycle span{padding:8px 6px;border-radius:9px;background:var(--paper-2);color:var(--ink-soft);font-size:11px;font-weight:800;text-align:center}.assignment-lifecycle span.complete{background:rgba(111,156,125,.18);color:#285c4f}.lifecycle-complete-toggle{margin:10px 0}.grade-lifecycle-section{margin-top:16px;border:1px solid var(--line);border-radius:12px;padding:11px;background:rgba(255,255,255,.5)}.grade-lifecycle-section summary{cursor:pointer;font-weight:800}.grade-lifecycle-section[open] summary{margin-bottom:12px}.lifecycle-grade-link{color:#285c4f;font-weight:700}
.att-stat-action{font:inherit;color:inherit;cursor:pointer;text-align:left}.att-stat-action:hover,.att-stat-action:focus-visible,.insight-card-action:hover,.insight-card-action:focus-visible{border-color:var(--sage);background:rgba(111,156,125,.1)}.insight-card-action{font:inherit;color:inherit;text-align:left;cursor:pointer}.catch-up-callout{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0;padding:12px;border:1px solid rgba(212,166,42,.4);border-radius:12px;background:rgba(212,166,42,.09)}.catch-up-callout div{display:grid;gap:3px}.catch-up-callout span{font-size:12px;color:var(--ink-soft)}.catch-up-summary{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.catch-up-summary span{padding:6px 9px;border-radius:999px;background:var(--paper-2);font-size:12px;font-weight:700}.catch-up-preview{max-height:210px;overflow:auto;margin-bottom:13px}.catch-up-options{display:grid;gap:8px;margin-top:12px}.catch-up-options .nav-menu-item span{display:grid;gap:3px}.catch-up-options small{color:var(--ink-soft)}.catch-up-subject{display:grid;gap:8px;padding-top:8px;border-top:1px solid var(--line)}
.report-config-group{margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.report-config-group legend{padding:0 6px;font-weight:800}.report-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.report-detail-choice{align-self:end;margin-bottom:4px}.report-preview-wrap{margin-top:16px}.report-preview-label{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--ink-soft);letter-spacing:.06em;margin-bottom:6px}.report-preview-sheet{max-height:360px;overflow:auto;padding:18px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#222;box-shadow:0 4px 16px rgba(0,0,0,.08)}.report-preview-sheet h1{font-size:19px}.report-preview-sheet h2{font-size:15px;margin-top:16px}.report-preview-sheet table{width:100%;border-collapse:collapse}.report-preview-sheet th,.report-preview-sheet td{padding:5px;border-bottom:1px solid #ddd;text-align:left;font-size:12px}.report-preview-sheet .p-grade-row{display:flex;justify-content:space-between;gap:15px;padding:5px 0;border-bottom:1px solid #ddd}.report-preview-sheet .p-note{font-size:11px;color:#666;margin-top:3px}
.family-library-card{border-color:rgba(212,166,42,.45)}.family-library-list{display:grid;gap:8px}.family-library-row{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.48)}.family-library-row .book-main{flex:1;min-width:0}.family-library-row .book-cover-placeholder{flex:0 0 40px}.planning-discovery{display:grid;gap:8px;margin-bottom:12px}.feature-discovery{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;padding:11px 12px;border:1px dashed rgba(47,119,103,.45);border-radius:11px;background:rgba(111,156,125,.08)}.feature-discovery div{display:grid;gap:3px}.feature-discovery span{font-size:12px;color:var(--ink-soft)}
.planning-tools-disclosure{margin:10px 0;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.35)}.planning-tools-disclosure>summary{min-height:44px;padding:12px 14px;cursor:pointer;font-weight:800;color:var(--ink)}.planning-tools-disclosure .planning-discovery{padding:0 12px 4px}.curriculum-import-callout{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:12px;border:1px solid rgba(47,119,103,.35);border-radius:12px;background:rgba(111,156,125,.09)}.curriculum-import-callout>div,.import-format-help{display:grid;gap:4px}.curriculum-import-callout span,.import-format-help span{font-size:12px;color:var(--ink-soft)}.import-format-help{margin:10px 0;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2)}.report-preset-save{display:grid;grid-template-columns:1fr auto;align-items:end;gap:9px;margin-top:12px;padding:11px;border:1px solid var(--line);border-radius:11px;background:rgba(212,166,42,.07)}.saved-report-list{display:grid;gap:8px}.saved-report-row{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:5px}.saved-report-main{display:flex;flex:1;min-width:0;flex-direction:column;align-items:flex-start;gap:2px;border:0;background:transparent;padding:8px;text-align:left;color:var(--ink)}.saved-report-main span{font-size:11px;color:var(--ink-soft)}.empty-state-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.setup-progress{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:11px;background:rgba(111,156,125,.07)}.setup-progress>div:first-child{display:grid;gap:3px}.setup-progress>div:first-child span{font-size:12px;color:var(--ink-soft)}.setup-checklist{display:grid;gap:7px;margin:12px 0}.setup-check-row{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:10px}.setup-check-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--paper-2);font-weight:800}.setup-check-row.complete .setup-check-mark{background:var(--sage);color:#fff}.setup-check-row>div{display:grid;gap:2px;flex:1}.setup-check-row small{color:var(--ink-soft)}.help-concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.help-concept-grid>div{padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff}.help-concept-grid span{display:block;margin-top:3px;font-size:12px;color:var(--ink-soft)}
@media(max-width:560px){.curriculum-import-callout{align-items:flex-start;flex-direction:column}.report-preset-save{grid-template-columns:1fr}.help-concept-grid{grid-template-columns:1fr}}

/* ---------- Responsive ---------- */
@media (max-width: 600px){
  .row2,.row3{grid-template-columns:1fr!important;}
  .course-generator-heading{flex-direction:column}
  .course-generator-save-top,.course-generator-save-top .btn,.course-generator-save-bottom .btn{width:100%}
  .curriculum-schedule-row{flex-direction:column;gap:9px;padding:12px 0}
  .curriculum-schedule-row .stacked-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .curriculum-schedule-row .stacked-actions button{width:100%;min-width:0;min-height:44px;white-space:normal}
  .curriculum-schedule-row .curriculum-primary-action{grid-column:1/-1}
  .plan-editor-modal{padding-left:16px;padding-right:16px}
  .plan-editor-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .plan-editor-actions .btn{width:100%}
  .plan-editor-actions .btn-primary{grid-column:1/-1;grid-row:1}
  .add-form .actions .btn{flex:1 1 140px}
  .topbar{ padding-top: calc(16px + var(--chrome-top)); }
  .brand{ margin-bottom: 14px; }
  .nav-row{ margin-bottom: 10px; }
  .overview-student-summary{
    align-items:flex-start;
  }
  .module-card-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .module-card-head-actions{
    width:100%;
    justify-content:flex-start;
  }
  .card-head-actions{
    width:100%;
    justify-content:flex-start;
  }
  .student-todo-head{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .settings-row{
    align-items:flex-start;
    flex-direction:column;
  }
  .settings-module-card > .settings-row{
    align-items:center;
    flex-direction:row;
    padding:14px 16px;
  }
  .settings-input,
  .settings-select{
    width:100%;
  }
  .settings-inline-fields{
    width:100%;
  }
  .settings-menu-grid{grid-template-columns:1fr}
  .settings-menu-card{min-height:104px;padding:14px}
  .settings-menu-badge{width:46px;height:46px;border-radius:12px}
  .settings-student-row{grid-template-columns:auto minmax(0,1fr)}
  .settings-student-row .btn{grid-column:1/-1;width:100%}
  .settings-student-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .settings-student-actions button{width:100%}
  .settings-student-actions .danger-link{grid-column:1/-1;min-height:44px}
  .quick-action-grid{
    grid-template-columns:1fr;
  }
  .today-quick-actions{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .history-more{align-items:flex-start;flex-direction:column}
  .assignment-lifecycle{grid-template-columns:repeat(2,1fr)}
  .catch-up-callout,.feature-discovery,.family-library-row{align-items:flex-start;flex-direction:column}
  .catch-up-callout .btn,.feature-discovery .tiny-btn{width:100%}
  .report-choice-grid{grid-template-columns:1fr}
  .family-library-row .stacked-actions{width:100%;flex-direction:row;flex-wrap:wrap}
}

/* ---------- Print ---------- */
#print-area{ display:none; }
.desktop-sidebar{display:none}
.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.bottom-nav-icon{font-size:17px;line-height:1}
.hub-page{min-height:70vh}.hub-destination-list{display:grid;gap:10px}.hub-destination{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;min-height:82px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.hub-destination>span:first-child{display:grid;gap:4px}.hub-destination b{font-size:16px}.hub-destination small{color:var(--ink-soft);font-size:12px;line-height:1.4}.hub-destination em{min-width:32px;padding:5px 8px;border-radius:999px;background:var(--paper-2);color:var(--sage);font-size:12px;font-style:normal;font-weight:800;text-align:center}.hub-chevron{color:var(--sage);font-size:28px}
.calendar-filter-panel{margin:10px 0 16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.55)}.calendar-filter-panel>summary{min-height:44px;padding:12px 14px;color:var(--sage);font-weight:800;cursor:pointer}.calendar-filter-panel[open]>summary{border-bottom:1px solid var(--line)}.calendar-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:12px 12px 6px}.calendar-filter-grid select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px}.calendar-filter-panel>.small-link{margin:0 12px 10px}
@media(max-width:760px){.calendar-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.calendar-filter-grid{grid-template-columns:1fr}}

@media (min-width:960px){
  #app{max-width:1280px;padding-left:252px;padding-right:16px;padding-bottom:44px}
  .desktop-sidebar{position:fixed;z-index:75;top:16px;bottom:16px;left:max(16px,calc(50% - 640px));display:flex;flex-direction:column;width:228px;padding:18px 12px;border-radius:18px;background:#17342e;color:#fff;box-shadow:0 14px 34px rgba(15,30,26,.2);overflow-y:auto}
  .desktop-sidebar-title{display:grid;gap:3px;padding:2px 8px 16px;border-bottom:1px solid rgba(255,255,255,.14)}.desktop-sidebar-title b{font:600 20px/1.2 'Zilla Slab',serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desktop-sidebar-title span,.desktop-nav-section>span{color:rgba(255,255,255,.58);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
  .desktop-sidebar nav{display:grid;gap:4px;padding:14px 0}.desktop-nav-primary,.desktop-nav-secondary{width:100%;min-height:44px;border:0;border-radius:10px;background:transparent;color:rgba(255,255,255,.78);font:700 13px/1.2 'Inter',sans-serif;text-align:left;cursor:pointer}.desktop-nav-primary{display:flex;align-items:center;gap:10px;padding:9px 10px}.desktop-nav-primary>span{width:22px;text-align:center;font-size:17px}.desktop-nav-primary.active,.desktop-nav-secondary.active{background:rgba(212,166,42,.2);color:#fff}
  .desktop-nav-section{display:grid;gap:2px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}.desktop-nav-section>span{padding:0 8px 7px}.desktop-nav-secondary{padding:8px 12px;font-size:12px;font-weight:600}
  .bottom-nav{display:none}.topbar{border-radius:0 0 14px 14px}.paper{border-radius:4px 4px 14px 14px;min-height:calc(var(--viewport-height) - 160px)}
  .settings-page-body{max-width:none}.week-planner-board{grid-template-columns:repeat(5,minmax(170px,1fr))}
}

@media (max-width:600px){
  .editor-full,.report-config-modal,.plan-editor-modal{min-height:var(--viewport-height);max-height:var(--viewport-height);border-radius:0;padding-top:calc(14px + var(--chrome-top));padding-bottom:calc(18px + var(--chrome-bottom))}
  .editor-full::before,.report-config-modal::before,.plan-editor-modal::before{display:none}
  .editor-full>.actions,.report-config-modal>.actions,.plan-editor-modal>.actions{position:sticky;z-index:2;bottom:calc(-18px - var(--chrome-bottom));margin:14px -20px 0;padding:10px 20px calc(10px + var(--chrome-bottom));background:var(--paper);border-top:1px solid var(--line)}
  .plan-editor-modal>.actions{margin-left:0;margin-right:0;padding-left:0;padding-right:0}
}

.footer-retry,.swatch{min-width:44px;min-height:44px}
.month-cell span,.month-cell small,.color-choice b,.compact-topbar .brand-text span,.notification-item small{font-size:11px}
.book-cover-placeholder{font-size:11px}
.attendance-review-callout{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--cream)}
.attendance-review-callout div{display:flex;flex-direction:column;gap:3px}.attendance-review-callout span{font-size:12px;color:var(--muted)}
.attendance-suggestion-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.attendance-suggestion-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:10px}
.attendance-suggestion-main{display:flex;align-items:flex-start;gap:10px;flex:1}.attendance-suggestion-main input{margin-top:3px}.attendance-suggestion-main span{display:flex;flex-direction:column;gap:3px}.attendance-suggestion-main small{color:var(--muted);line-height:1.35}
.attendance-suggestion-row select{width:auto;min-width:112px}
.search-field{display:grid;gap:4px;flex:1;min-width:0}.search-field input{width:100%}
.report-schedule-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;align-items:end;gap:10px}.report-schedule-grid select,.report-schedule-grid input{width:100%}.report-schedule-enable{min-height:44px;align-self:end}.report-archive-row{grid-template-columns:minmax(0,1fr) auto}
@media(max-width:600px){.attendance-review-callout,.attendance-suggestion-row{align-items:stretch;flex-direction:column}.attendance-suggestion-row select{width:100%}}
@media(max-width:840px){.report-schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-schedule-enable{grid-column:1/-1}}
@media(max-width:500px){.report-schedule-grid{grid-template-columns:1fr}.report-schedule-enable{grid-column:auto}.report-archive-row{grid-template-columns:1fr}.report-archive-row .row-actions{justify-content:flex-end}}

/* ---------- Calm workspace refresh ---------- */
:root{
  --bg:#e8efec;
  --bg-2:#dbe7e2;
  --paper:#fffdf8;
  --paper-2:#f4f0e6;
  --ink:#18332d;
  --ink-soft:#65736e;
  --gold:#e1aa3e;
  --gold-soft:#f2d58a;
  --coral:#d96150;
  --sage:#2f7767;
  --line:#d9e0dc;
  --shadow:rgba(25,55,47,.14);
}
body{
  background-image:radial-gradient(circle at 9% 0,rgba(255,255,255,.9),transparent 34%),linear-gradient(145deg,var(--bg),var(--bg-2));
}
.topbar{
  background:#173b33;
  border-radius:0 0 18px 18px;
  box-shadow:0 10px 30px rgba(15,48,40,.18);
}
.paper{
  margin-top:10px;
  border:1px solid rgba(255,255,255,.76);
  border-radius:18px;
  box-shadow:0 18px 50px var(--shadow);
}
.module-card,.section-card,.week-board-day,.hub-destination{
  box-shadow:0 5px 18px rgba(25,55,47,.055);
}
.btn,.tiny-btn,.small-link,.scope-btn,.bottom-nav-item,.planning-workspace-tab{
  transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.btn:active,.tiny-btn:active,.small-link:active,.scope-btn:active,.planning-workspace-tab:active{transform:translateY(1px)}
.btn-primary{box-shadow:0 6px 14px rgba(47,119,103,.18)}
.btn-primary{background:var(--sage);color:#fff}
.btn-primary.btn-danger{background:var(--coral);color:#fff}
.btn-primary:disabled{background:#d8dedb;color:#5b645f;box-shadow:none}
.settings-menu-badge{background:var(--sage);color:#fff}
.settings-search{display:block;max-width:560px;margin:0 0 18px}.settings-search input{width:100%;margin-top:6px}
.student-preference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.student-preference-grid fieldset{border:1px solid var(--line);border-radius:12px;padding:10px}.student-preference-grid legend{font-weight:800;padding:0 5px}.student-pref{display:block;margin:8px 0;color:var(--ink-soft)}
@media(max-width:620px){.student-preference-grid{grid-template-columns:1fr}}
.grading-scale-editor{display:grid;gap:8px;margin:12px 0}.grading-scale-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(100px,1fr) auto;gap:8px;align-items:end}.grading-scale-row input{width:100%}
.page-eyebrow{
  display:block;
  margin-bottom:5px;
  color:var(--sage);
  font-size:11px;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.theme-toggle-btn{display:flex;align-items:center;gap:5px;white-space:nowrap}
.theme-toggle-icon{font-size:17px;line-height:1}
.theme-toggle-label{font-size:11px;font-weight:800}
.settings-theme-row{align-items:flex-start;flex-direction:column}
.theme-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;margin:4px 0 0;padding:0;border:0}
.theme-picker>legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.theme-choice{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px;padding:7px;border:1px solid var(--line);border-radius:12px;background:var(--paper);cursor:pointer}
.theme-choice input{position:absolute;width:1px!important;height:1px!important;opacity:0}
.theme-choice:has(input:checked){border-color:var(--sage);box-shadow:0 0 0 2px rgba(47,119,103,.14)}
.theme-choice:has(input:focus-visible){outline:3px solid var(--gold);outline-offset:2px}
.theme-choice b{font-size:11px}
.theme-choice small{align-self:center;color:var(--ink-soft);font-size:9px;font-weight:700;text-transform:uppercase}
.theme-preview{grid-column:1/-1;display:grid;grid-template-columns:12px 1fr;grid-template-rows:8px 1fr;gap:3px;height:42px;padding:5px;border:1px solid rgba(0,0,0,.14);border-radius:7px;background:#fff}
.theme-preview i{display:block;border-radius:2px;background:#dde7e3}
.theme-preview i:first-child{grid-row:1/-1;background:#1a4037}
.theme-preview i:nth-child(2){background:#d7ab46}
.theme-choice-dark .theme-preview{border-color:#516b64;background:#102823}.theme-choice-dark .theme-preview i{background:#36574f}.theme-choice-dark .theme-preview i:first-child{background:#071a16}.theme-choice-dark .theme-preview i:nth-child(2){background:#d7ab46}
.theme-choice-system .theme-preview{background:linear-gradient(135deg,#fff 0 49%,#102823 51% 100%)}
.theme-choice-high-contrast .theme-preview{border:2px solid #000;background:#fff}.theme-choice-high-contrast .theme-preview i{background:#000}.theme-choice-high-contrast .theme-preview i:nth-child(2){background:#ffd800}
.quick-add-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.quick-add-card{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 10px;align-items:center;min-height:72px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.quick-add-card>span{grid-row:1/-1;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--paper-2);color:var(--sage);font-size:15px;font-weight:900}
.quick-add-card b{font-size:13px}.quick-add-card small{color:var(--ink-soft);font-size:10.5px}
.quick-add-card.primary{border-color:rgba(47,119,103,.38);background:rgba(47,119,103,.09)}
.quick-add-card.primary>span{background:var(--sage);color:#fff}
.quick-add-card:hover{border-color:var(--sage);transform:translateY(-1px);box-shadow:0 6px 14px rgba(25,55,47,.08)}
.quick-add-more{margin-top:6px;border-top:1px solid var(--line)}
.quick-add-more>summary{display:flex;align-items:center;min-height:46px;color:var(--sage);font-size:12px;font-weight:800;cursor:pointer}
.quick-add-more .nav-menu-item{align-items:flex-start;flex-direction:column;gap:3px;padding:11px 4px}
.quick-add-more .nav-menu-item small{color:var(--ink-soft);font-size:10.5px;font-weight:500}
#app-content>.paper{animation:workspace-enter .2s ease-out both}
@keyframes workspace-enter{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#app-content>.paper{animation:none}}

.daily-page-header{align-items:center;padding:4px 4px 18px;margin-bottom:14px}
.daily-page-title{display:grid;gap:2px;margin-right:auto}
.daily-page-title .page-eyebrow{margin:0}
.daily-page-title h2{font-size:30px}
.daily-page-title>span:last-child{color:var(--ink-soft);font-size:12px}
.daily-page-header .view-mode-toggle{padding:4px;border-radius:11px;background:var(--paper-2)}
.daily-page-header .day-navigation{padding-left:8px;border-left:1px solid var(--line)}
.records-hero{padding:4px 4px 20px}
.records-hero h2{margin:0;font-size:32px;line-height:1.05}
.records-hero p{margin:8px 0 0;color:var(--ink-soft);font-size:13px}
.records-page .hub-destination-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.records-page .hub-destination{min-height:104px}
.records-page .hub-destination:hover{border-color:rgba(47,119,103,.42);transform:translateY(-1px);box-shadow:0 8px 20px rgba(25,55,47,.09)}

/* One planning workspace, with the grid and lesson planner as peers. */
.planning-hero,.transcript-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
  padding:4px 4px 20px;
}
.planning-hero>div,.transcript-hero>div{max-width:650px}
.planning-hero h2,.transcript-hero h2{margin:0;font-size:32px;line-height:1.05}
.planning-hero p,.transcript-hero p{margin:8px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.5}
.planning-hero>.btn,.transcript-hero>.btn{flex:0 0 auto;white-space:nowrap}
.planning-workspace-tabs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin:0 0 18px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--paper-2);
}
.planning-workspace-tab{
  display:grid;
  gap:3px;
  min-width:0;
  min-height:58px;
  padding:9px 11px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:var(--ink-soft);
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.planning-workspace-tab b{color:var(--ink);font-size:13px}
.planning-workspace-tab span{overflow:hidden;font-size:10.5px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.planning-workspace-tab.active{
  border-color:rgba(47,119,103,.2);
  background:var(--paper);
  box-shadow:0 4px 12px rgba(25,55,47,.08);
}
.planning-workspace-tab.active b{color:var(--sage)}
.planning-studio-panel{
  padding:16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.52);
}
.planner-toolbar{margin:0 0 14px}
.planner-week-title{display:grid;gap:2px;margin-right:auto}
.planner-week-title span{color:var(--ink-soft);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.planner-week-title b{font:600 18px/1.25 'Zilla Slab',serif}
.planner-week-actions{display:flex;gap:6px;flex-wrap:wrap}
.planner-week-actions .tiny-btn{min-height:38px;padding:7px 11px;background:var(--paper)}
.planner-bulk-toolbar{padding:9px 11px;border-radius:10px;background:rgba(225,170,62,.1)}
.week-planner-board{align-items:stretch;gap:10px}
.week-board-day{
  min-height:250px;
  border-color:var(--line);
  border-radius:14px;
  background:rgba(255,253,248,.72);
}
.week-board-day>header{
  align-items:center;
  padding:11px 12px;
  background:transparent;
}
.week-board-day>header>span{display:grid;gap:1px}
.week-board-day>header b{font-size:13px}
.week-board-day>header small{color:var(--ink-soft);font-size:10.5px}
.week-board-day>header em{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:var(--paper-2);color:var(--ink-soft);font-size:11px;font-style:normal;font-weight:900}
.week-board-day.is-today{border-color:var(--sage);box-shadow:0 7px 20px rgba(47,119,103,.12)}
.week-board-day.is-today>header{background:rgba(47,119,103,.1)}
.week-board-day.is-today>header b{color:var(--sage)}
.week-board-day>footer{padding:0 9px 9px}
.week-board-day>footer button{width:100%;min-height:34px;border:1px dashed var(--line);border-radius:8px;background:transparent;color:var(--sage);font:800 10.5px/1.2 'Inter',sans-serif;cursor:pointer}
.week-board-day>footer button:hover{border-color:var(--sage);background:rgba(47,119,103,.07)}
.week-drop-zone{align-content:start;min-height:198px;padding:9px}
.week-drop-zone>p{display:grid;gap:4px;margin:42px 5px;color:var(--ink-soft);font-size:11px;line-height:1.4}
.week-drop-zone>p b{color:var(--ink);font-size:12px}
.week-work-card{
  position:relative;
  overflow:hidden;
  padding:9px 9px 7px 12px;
  border:0;
  border-radius:10px;
  background:var(--paper);
  box-shadow:0 3px 11px rgba(25,55,47,.09);
}
.week-work-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--work-color,var(--sage))}
.week-card-subject{margin:0 22px 5px 0;color:var(--ink-soft);font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.week-work-card label{font-size:12.5px;font-weight:700}
.week-work-card label input{accent-color:var(--sage)}
.week-card-moves{opacity:.66}
.planner-board-help{margin:8px 2px 0;color:var(--ink-soft);font-size:11px}
.planning-workspace .planning-tools-disclosure{margin-top:14px}

/* Daily execution keeps the checklist first and administration secondary. */
.today-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr);align-items:start;gap:14px}
.today-work-column,.today-side-column{min-width:0}
.today-side-column .today-dashboard{position:sticky;top:132px;margin-top:0;border-color:rgba(47,119,103,.22)}
.today-side-column .today-dashboard .module-card-head{background:rgba(47,119,103,.07)}
.student-day-heading{display:grid;gap:2px;min-width:110px}
.student-day-heading h3{margin:0}
.student-day-heading span{color:var(--ink-soft);font-size:10.5px;font-weight:700}
.student-day-progress{width:84px;height:6px;overflow:hidden;border-radius:999px;background:var(--line)}
.student-day-progress span{display:block;height:100%;border-radius:inherit;background:var(--sage)}
.task-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-2px 0 8px;padding:0 2px 8px;border-bottom:1px solid var(--line)}
.task-list-toolbar>span{color:var(--ink-soft);font-size:11px;font-weight:800}
.active-bulk-toolbar{margin:0 0 8px;padding:8px 10px;border:1px solid rgba(225,170,62,.3);border-radius:10px;background:rgba(225,170,62,.09)}
.daily-task-list{display:grid;gap:7px}
.daily-task-list>.todo-row{margin:0;padding:10px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.64)}
.daily-task-list>.todo-row:hover{border-color:rgba(47,119,103,.38);background:var(--paper)}
.daily-task-list>.no-items{padding:22px 12px;border:1px dashed var(--line);border-radius:11px;text-align:center}
.task-select-control{display:grid;justify-items:center;gap:1px;min-width:44px;color:var(--ink-soft);font-size:9px;font-weight:800;cursor:pointer}
.task-select-control .bulk-check{margin:1px 0 0}

/* Transcript reads like a document on wide screens and like cards on phones. */
.transcript-page .module-card{overflow:hidden;border-color:rgba(47,119,103,.24)}
.transcript-page .module-card-head{background:linear-gradient(90deg,rgba(47,119,103,.12),rgba(225,170,62,.08))}
.transcript-summary{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;margin:0 0 14px}
.transcript-summary .att-stat{padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--paper)}
.transcript-summary .att-stat b{font:700 25px/1 'Zilla Slab',serif;color:var(--sage)}
.transcript-summary .att-stat span{display:block;margin-top:5px;color:var(--ink-soft);font-size:11px;font-weight:800;text-transform:uppercase}
.transcript-table{margin-bottom:0}
.transcript-table th{padding-top:11px;padding-bottom:11px;background:var(--paper-2);letter-spacing:.04em}
.transcript-table td{padding-top:11px;padding-bottom:11px}
.transcript-table tbody tr:not(.transcript-group-row):hover{background:rgba(47,119,103,.045)}
.transcript-readiness{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,.8fr);gap:10px 20px;margin:0 0 12px;padding:14px;border:1px solid rgba(47,119,103,.25);border-radius:14px;background:linear-gradient(135deg,rgba(47,119,103,.09),rgba(225,170,62,.06))}
.transcript-readiness>div:first-child{display:grid;gap:3px}
.transcript-readiness .page-eyebrow{margin:0}
.transcript-readiness small{color:var(--ink-soft);font-size:11px;line-height:1.4}
.transcript-readiness-meter{align-self:center;height:9px;overflow:hidden;border-radius:999px;background:rgba(24,51,45,.11)}
.transcript-readiness-meter span{display:block;height:100%;border-radius:inherit;background:var(--sage)}
.transcript-readiness-checks{display:flex;grid-column:1/-1;gap:6px;flex-wrap:wrap}
.transcript-readiness-checks span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-soft);font-size:10.5px;font-weight:800}
.transcript-readiness-checks span.complete{border-color:rgba(47,119,103,.28);background:rgba(47,119,103,.1);color:var(--sage)}
.record-section-nav{position:sticky;z-index:5;top:118px;display:flex;gap:6px;overflow-x:auto;margin:0 0 12px;padding:7px;border:1px solid var(--line);border-radius:12px;background:rgba(255,253,248,.92);backdrop-filter:blur(12px)}
.record-section-nav button{flex:1;min-width:max-content;min-height:36px;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink-soft);font:800 11px/1.2 'Inter',sans-serif;cursor:pointer}
.record-section-nav button:hover{background:var(--paper-2);color:var(--sage)}
.transcript-page [id^="transcript-"]{scroll-margin-top:170px}

/* Navigation is calmer and makes the three core records one tap away. */
.bottom-nav{background:rgba(20,54,46,.97);backdrop-filter:blur(18px)}
.bottom-nav-item{border-radius:12px}
.bottom-nav-item.active{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(225,170,62,.3)}
.bottom-nav-item.active .bottom-nav-icon{color:var(--gold-soft)}
.desktop-sidebar{background:linear-gradient(180deg,#173b33,#102c26)}
.desktop-nav-primary.active,.desktop-nav-secondary.active{box-shadow:inset 3px 0 0 var(--gold)}

/* Complete dark surfaces for explicit Dark and device-driven System modes. */
html[data-appearance="dark"]{color-scheme:dark}
html[data-appearance="light"],html[data-appearance="high-contrast"]{color-scheme:light}
html[data-appearance="dark"] #app :is(.module-card,.student-todo-card,.week-student-block,.category-block,.analytic-card,.insight-card,.settings-module-card,.module-detail-panel,.settings-menu-card,.settings-student-row,.settings-student-card,.saved-report-row,.help-concept-grid>div,.agenda-day-chip,.agenda-item,.month-cell,.week-day,.week-item,.status-btn,.record-section-nav,.theme-choice,.scope-btn,.quick-action-card,.template-chip,.family-library-row,.setup-check-row,.lp-stat,.lp-panel,.weekday-pill span,.preset-btn){background:#102823;color:var(--ink);border-color:var(--line)}
html[data-appearance="dark"] #app :is(.planning-studio-panel,.calendar-filter-panel,.planning-tools-disclosure){background:rgba(16,40,35,.72)}
html[data-appearance="dark"] #app :is(.transcript-readiness,.today-side-column .today-dashboard .module-card-head){background:linear-gradient(135deg,rgba(47,119,103,.17),rgba(225,170,62,.07))}
html[data-appearance="dark"] #app :is(.settings-module-card.disabled,.month-cell.outside){background:#17332d}
html[data-appearance="dark"] #app .daily-task-list>.todo-row{background:#102823}
html[data-appearance="dark"] #app :is(.gradebook-hero,.term-row){background:rgba(16,40,35,.78)}
html[data-appearance="dark"] #app .record-section-nav{background:rgba(16,40,35,.94)}
html[data-appearance="dark"] #app :is(.module-card-head,.student-todo-head,.section-card-head){border-color:var(--line)}
html[data-appearance="dark"] #app :is(.scope-btn.active,.agenda-day-chip.active){background:var(--sage);color:#fff;border-color:var(--sage)}
@media(prefers-color-scheme:dark){
  html[data-appearance="system"]{color-scheme:dark}
  html[data-appearance="system"] #app :is(.module-card,.student-todo-card,.week-student-block,.category-block,.analytic-card,.insight-card,.settings-module-card,.module-detail-panel,.settings-menu-card,.settings-student-row,.settings-student-card,.saved-report-row,.help-concept-grid>div,.agenda-day-chip,.agenda-item,.month-cell,.week-day,.week-item,.status-btn,.record-section-nav,.theme-choice,.scope-btn,.quick-action-card,.template-chip,.family-library-row,.setup-check-row,.lp-stat,.lp-panel,.weekday-pill span,.preset-btn){background:#102823;color:var(--ink);border-color:var(--line)}
  html[data-appearance="system"] #app :is(.planning-studio-panel,.calendar-filter-panel,.planning-tools-disclosure){background:rgba(16,40,35,.72)}
  html[data-appearance="system"] #app :is(.transcript-readiness,.today-side-column .today-dashboard .module-card-head){background:linear-gradient(135deg,rgba(47,119,103,.17),rgba(225,170,62,.07))}
  html[data-appearance="system"] #app :is(.settings-module-card.disabled,.month-cell.outside){background:#17332d}
  html[data-appearance="system"] #app .daily-task-list>.todo-row{background:#102823}
  html[data-appearance="system"] #app :is(.gradebook-hero,.term-row){background:rgba(16,40,35,.78)}
  html[data-appearance="system"] #app .record-section-nav{background:rgba(16,40,35,.94)}
  html[data-appearance="system"] #app :is(.scope-btn.active,.agenda-day-chip.active){background:var(--sage);color:#fff;border-color:var(--sage)}
}

@media(max-width:720px){
  .today-layout{grid-template-columns:1fr}
  .today-side-column .today-dashboard{position:static}
  .planning-workspace-tabs{display:flex;overflow-x:auto;scroll-snap-type:x proximity}
  .planning-workspace-tab{flex:0 0 150px;scroll-snap-align:start}
  .planning-studio-panel{margin:0 -8px;padding:13px 8px;border-left:0;border-right:0;border-radius:0}
  .week-planner-board{grid-template-columns:repeat(5,82vw);margin-right:-10px;padding-right:10px}
  .week-board-day{min-height:310px}
}
@media(max-width:600px){
  #app{padding-bottom:calc(128px + var(--chrome-bottom) + var(--keyboard-offset))}
  .paper{margin:8px 8px 0;padding:18px 14px 8px;border-radius:16px}
  .brand{gap:6px}
  .brand-text h1{font-size:17px}
  .brand-text span{display:none}
  .quick-add-btn{min-width:40px;width:40px;height:40px;padding:0;justify-content:center}
  .quick-add-label{display:none}
  .header-action-btn{display:grid;place-items:center;width:40px;height:40px;padding:0;font-size:0}
  .theme-toggle-btn{display:flex}
  .theme-toggle-label{display:none}
  .theme-toggle-icon{font-size:17px}
  .search-header-btn{margin-left:0}
  .search-header-btn::before{content:"⌕";font-size:22px;line-height:1}
  .notification-btn::before{content:"!";display:grid;place-items:center;width:20px;height:20px;border:1px solid currentColor;border-radius:50%;font-size:12px}
  .notification-btn span{position:absolute;right:0;top:0;font-size:10px}
  .settings-btn{min-width:40px;width:40px;height:40px;padding:0;font-size:0}
  .settings-btn::before{content:"⚙";font-size:17px}
  .planning-hero,.transcript-hero{align-items:stretch;flex-direction:column;gap:14px;padding-bottom:16px}
  .planning-hero h2,.transcript-hero h2{font-size:28px}
  .planning-hero>.btn,.transcript-hero>.btn{width:100%}
  .planner-toolbar{align-items:flex-start;flex-direction:column}
  .planner-week-actions{display:grid;grid-template-columns:auto 1fr auto;width:100%}
  .planner-week-actions .tiny-btn:last-child{grid-column:1/-1}
  .transcript-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .transcript-readiness{grid-template-columns:1fr}
  .transcript-readiness-meter,.transcript-readiness-checks{grid-column:1}
  .record-section-nav{position:static;margin-left:-6px;margin-right:-6px}
  .daily-page-header{align-items:stretch;flex-direction:column}
  .daily-page-title{width:100%}
  .daily-page-header .view-mode-toggle{width:100%}
  .daily-page-header .view-mode-toggle .scope-btn{flex:1}
  .daily-page-header .day-navigation{width:100%;padding:8px 0 0;border-top:1px solid var(--line);border-left:0}
  .daily-page-header .day-navigation input{flex:1;min-width:120px}
  .records-page .hub-destination-list{grid-template-columns:1fr}
  .theme-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gradebook-hero{align-items:flex-start;flex-wrap:wrap;padding:15px}
  .gradebook-hero .overall-meta{flex:1;min-width:190px}
  .gradebook-hero .student-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:2px 0 0}
  .gradebook-hero .student-actions button{width:100%}
  .gradebook-hero .student-actions .gradebook-options-button{grid-column:1/-1}
  .gradebook-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gradebook-subject-heading{align-items:stretch;flex-direction:column}
  .gradebook-subject-heading .btn{width:100%}
  .subject-head{gap:9px;padding:12px 10px}
  .subject-options-btn{min-height:40px;padding:7px 9px}
  .subject-head .no-data{display:none}
  .subject-body{padding:4px 9px 13px}
  .gradebook-option-subject-head{align-items:stretch;flex-direction:column;gap:3px}
  .gradebook-option-subject-head .small-link{align-self:flex-start;min-height:40px;padding:8px 0}
  .category-head{gap:5px;padding:9px 7px}
  .assign-row{align-items:flex-start;flex-wrap:wrap}
  .assign-main{flex:1 1 calc(100% - 60px)}
  .assign-score{margin-left:auto}
  .transcript-page .table-scroll{overflow:visible}
  .transcript-table{display:block;min-width:0}
  .transcript-table thead{display:none}
  .transcript-table tbody{display:block}
  .transcript-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;margin:0 0 10px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
  .transcript-table tr.transcript-group-row{display:block;margin:16px 0 7px;padding:0;border:0;background:transparent}
  .transcript-table .transcript-group-row th{display:block;padding:0;background:transparent}
  .transcript-table td{display:grid;align-content:start;gap:3px;padding:0;border:0;font-size:13px}
  .transcript-table td:first-child{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid var(--line);font-size:15px;font-weight:800}
  .transcript-table td::before{content:attr(data-label);color:var(--ink-soft);font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
  .transcript-table td:first-child::before{display:none}
  .transcript-table td:last-child{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:4px}
  .transcript-table td:last-child::before{display:none}
  .transcript-table .no-items{display:block!important;grid-column:1/-1!important}
}

/* ---------- Focused workspace revamp ---------- */
:root{
  --bg:#f6f7f6;
  --bg-2:#eef1ef;
  --paper:#ffffff;
  --paper-2:#f2f4f2;
  --ink:#202622;
  --ink-soft:#68716c;
  --sage:#2f6f5e;
  --line:#e1e6e3;
  --shadow:rgba(25,37,31,.08);
}
body{background:var(--bg);background-image:none}
h1,h2,h3,.display{font-family:'Inter',sans-serif;letter-spacing:-.025em}
#app{max-width:1180px}
.topbar{
  padding:calc(10px + var(--chrome-top)) 18px 10px;
  border-bottom:1px solid var(--line);border-radius:0;background:rgba(255,255,255,.94);color:var(--ink);
  box-shadow:none;backdrop-filter:blur(16px)
}
.brand{gap:8px;margin-bottom:8px}.brand-text h1{font-size:16px;font-weight:800}.brand-text span{color:var(--ink-soft);font-size:9px}
.quick-add-btn,.header-action-btn,.settings-btn{border-color:var(--line);background:var(--paper);color:var(--ink);box-shadow:none}
.quick-add-btn{background:var(--sage);color:#fff;border-color:var(--sage)}
.settings-btn:hover,.settings-btn.active{background:var(--paper-2);color:var(--sage);border-color:var(--line)}
.nav-row{margin:0;gap:8px}.nav-row .segmented{order:2;flex:0 1 auto;min-width:150px;padding:0;background:transparent}
.student-selector{min-height:40px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink)}
.student-selector .care{color:var(--ink-soft)}
.current-area{order:1;margin-right:auto;min-height:40px;padding:0;border:0;color:var(--ink);font-size:14px}
.paper{margin:0;padding:24px 22px 40px;border:0;border-radius:0;background:var(--paper);box-shadow:none}
#app-content>.paper{animation:workspace-fade .16s ease-out both}
@keyframes workspace-fade{from{opacity:.55}to{opacity:1}}

.bottom-nav{background:rgba(255,255,255,.97);border-color:var(--line);box-shadow:0 -8px 24px rgba(26,39,33,.08);backdrop-filter:blur(16px)}
.bottom-nav-item{color:var(--ink-soft)}
.bottom-nav-item.active{background:transparent;color:var(--sage);box-shadow:none}
.bottom-nav-item.active::before{content:"";position:absolute;top:0;width:30px;height:3px;border-radius:0 0 3px 3px;background:var(--sage)}
.bottom-nav-item.active .bottom-nav-icon{color:var(--sage)}
.footer-note{padding-top:12px;color:var(--ink-soft)}

.day-focus-summary{display:grid;grid-template-columns:minmax(240px,1fr) 150px 150px;gap:1px;margin:0 0 18px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--line)}
.day-focus-summary>*{min-height:74px;border:0;background:var(--paper);color:var(--ink)}
.day-focus-progress{display:grid;align-content:center;gap:9px;padding:12px 15px}.day-focus-progress>span{display:flex;justify-content:space-between;gap:12px}.day-focus-progress small{color:var(--ink-soft)}.day-focus-progress>div{height:5px;overflow:hidden;border-radius:999px;background:var(--paper-2)}.day-focus-progress i{display:block;height:100%;border-radius:inherit;background:var(--sage)}
.day-focus-stat{display:grid;place-content:center;gap:4px;padding:10px;text-align:center}.day-focus-stat b{font-size:19px}.day-focus-stat span{color:var(--ink-soft);font-size:10px;font-weight:800;text-transform:uppercase}.day-focus-stat.action{cursor:pointer}.day-focus-stat.action:hover{background:var(--paper-2)}
.today-layout{display:block}.today-work-column{max-width:860px;margin:0 auto}.today-side-column{display:none}
.student-todo-card{border:0;border-radius:0;background:transparent;overflow:visible;box-shadow:none}
.student-todo-head{padding:12px 2px;border-bottom:1px solid var(--line);background:transparent}
.student-todo-body{padding:10px 0 20px}
.student-day-progress{margin-left:auto}.card-head-actions{margin-left:4px}
.daily-task-list{gap:0;border-top:1px solid var(--line)}
.daily-task-list>.todo-row{position:relative;gap:12px;padding:13px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.daily-task-list>.todo-row:hover{border-color:var(--line);background:var(--paper-2)}
.todo-text{line-height:1.35}.todo-subject-tag{padding:2px 6px;font-size:9px}.todo-source-link{color:var(--ink-soft)}
.task-more,.card-more{position:relative;flex:0 0 auto}.task-more>summary,.card-more>summary{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;color:var(--ink-soft);font-size:20px;cursor:pointer;list-style:none}.task-more>summary::-webkit-details-marker,.card-more>summary::-webkit-details-marker{display:none}.task-more[open]>summary,.card-more[open]>summary{background:var(--paper-2);color:var(--ink)}
.task-more-menu,.card-more>div{position:absolute;z-index:12;right:0;top:44px;display:grid;width:220px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:0 14px 34px rgba(20,34,27,.16)}
.task-more-menu button,.task-more-menu label,.card-more>div button{min-height:42px;padding:10px;border:0;border-radius:7px;background:transparent;color:var(--ink);font:600 12px/1.3 'Inter',sans-serif;text-align:left;cursor:pointer}.task-more-menu button:hover,.task-more-menu label:hover,.card-more>div button:hover{background:var(--paper-2)}.task-more-menu label{display:flex;align-items:center;gap:8px}.task-more-menu .danger-menu-item{color:var(--coral)}
.quick-capture{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--paper-2)}
.quick-capture>label{min-width:0}.quick-capture input{min-height:42px;background:var(--paper)}.quick-capture>.btn{min-height:42px}
.quick-capture-options{grid-column:1/-1}.quick-capture-options>summary{min-height:36px;padding-top:10px;color:var(--sage);font-size:11px;font-weight:800;cursor:pointer}.quick-capture-options>div{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:end;gap:8px;padding-top:7px}
.template-strip:has(.section-helper){display:none}
.day-details{max-width:860px;margin:8px auto 0;border-top:1px solid var(--line)}.day-details>summary{min-height:52px;padding:16px 2px;color:var(--ink-soft);font-size:12px;font-weight:800;cursor:pointer}.day-details>.today-dashboard{border:0;box-shadow:none}.day-details>.today-dashboard>.module-card-head{display:none}.day-details>.today-dashboard>.module-card-body{padding:4px 0}

.planning-hero,.transcript-hero{padding:4px 0 18px}.planning-hero h2,.transcript-hero h2{font-size:29px}.planning-hero p,.transcript-hero p{margin-top:6px}
.planning-workspace-tabs{display:flex;gap:4px;margin:0;padding:4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;overflow-x:auto}
.planning-workspace-tab{display:block;flex:0 0 auto;min-height:42px;padding:9px 13px;border:0;border-radius:8px;font-size:12px;font-weight:750;text-align:center;white-space:nowrap}
.planning-workspace-tab.active{background:var(--paper-2);box-shadow:none;color:var(--sage)}
.planning-context{display:flex;align-items:baseline;gap:9px;padding:15px 2px 12px}.planning-context b{font-size:14px}.planning-context span{color:var(--ink-soft);font-size:11px}
.planning-studio-panel{margin:0;padding:0;border:0;border-radius:0;background:transparent}
.week-planner-board{gap:8px}.week-board-day{min-height:260px;border-radius:10px;background:var(--paper)}.week-board-day>header{padding:10px}.week-work-card{border:1px solid var(--line);box-shadow:none}.week-board-day.is-today{box-shadow:0 0 0 2px rgba(47,111,94,.12)}

.records-hero{padding:4px 0 20px}.records-hero h2{font-size:29px}.records-page .hub-destination-list{display:grid;grid-template-columns:1fr;gap:0;max-width:820px;border-top:1px solid var(--line)}
.records-page .hub-destination{min-height:70px;padding:13px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.records-page .hub-destination:hover{border-color:var(--line);background:var(--paper-2);box-shadow:none;transform:none}.records-page .hub-destination b{font-size:14px}.records-page .hub-chevron{font-size:22px}
.gradebook-hero{padding:15px;border-color:var(--line);border-radius:12px;background:var(--paper-2)}.gradebook-kpis{gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--line)}.gradebook-kpis>div{border:0;border-radius:0;background:var(--paper)}
.subject-card{margin-bottom:9px;border-radius:10px;background:var(--paper)}
.module-card,.section-card{border-color:var(--line);background:var(--paper);box-shadow:none}

html[data-appearance="dark"] .topbar,html[data-appearance="dark"] .bottom-nav{background:rgba(24,51,45,.96)}
html[data-appearance="dark"] :is(.quick-add-btn,.header-action-btn,.settings-btn,.student-selector){border-color:var(--line)}
@media(prefers-color-scheme:dark){html[data-appearance="system"] .topbar,html[data-appearance="system"] .bottom-nav{background:rgba(24,51,45,.96)}html[data-appearance="system"] :is(.quick-add-btn,.header-action-btn,.settings-btn,.student-selector){border-color:var(--line)}}

@media(min-width:960px){
  #app{max-width:1440px;padding:0 20px 44px 236px}
  .desktop-sidebar{top:0;bottom:0;left:max(0px,calc(50% - 720px));width:216px;padding:18px 12px;border-right:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);box-shadow:none;overflow-y:auto}
  .desktop-sidebar-title{display:flex;align-items:center;gap:10px;padding:2px 7px 18px;border-color:var(--line)}.sidebar-mark{display:grid!important;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--sage);color:#fff!important;font-size:16px!important;font-weight:900!important}.desktop-sidebar-title>span:last-child{display:grid;min-width:0;color:var(--ink);text-transform:none;letter-spacing:0}.desktop-sidebar-title b{font:800 13px/1.2 'Inter',sans-serif}.desktop-sidebar-title small{margin-top:2px;color:var(--ink-soft);font-size:9px;text-transform:uppercase;letter-spacing:.06em}
  .desktop-sidebar nav{gap:3px;padding:14px 0}.desktop-nav-primary,.desktop-nav-secondary{color:var(--ink-soft)}.desktop-nav-primary{padding:9px 10px}.desktop-nav-primary.active,.desktop-nav-secondary.active{background:var(--paper-2);color:var(--sage);box-shadow:none}.desktop-nav-primary.active{box-shadow:inset 3px 0 0 var(--sage)}
  .desktop-nav-section{border-color:var(--line)}.desktop-nav-section>span{color:var(--ink-soft)}
  .desktop-settings-link{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;margin-top:auto;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:var(--ink-soft);font:700 13px/1.2 'Inter',sans-serif;cursor:pointer}.desktop-settings-link:hover,.desktop-settings-link.active{background:var(--paper-2);color:var(--sage)}.desktop-settings-link span{width:22px;text-align:center}
  .topbar{margin:0 -20px 0 0;padding-left:24px;padding-right:24px}.topbar .brand-text{display:none}.topbar .brand{margin:0}.topbar .nav-row{position:absolute;left:24px;bottom:10px}.topbar .current-area{display:none}.topbar .brand{justify-content:flex-end;min-height:40px}.topbar .nav-row .segmented{min-width:170px}
  .paper{min-height:calc(var(--viewport-height) - 62px);padding:28px 28px 48px}
}

@media(max-width:959px){
  .topbar .quick-add-btn{display:none}
}

@media(max-width:600px){
  #app{padding-bottom:calc(98px + var(--chrome-bottom) + var(--keyboard-offset))}
  .topbar{padding:calc(8px + var(--chrome-top)) 12px 8px}.brand{flex-wrap:nowrap;margin:0}.brand-text{flex:1 1 auto}.brand-text span{display:none}.brand-text h1{font-size:15px}.brand :is(.header-action-btn,.settings-btn){flex:0 0 40px;min-width:40px;height:40px;margin:0;border-color:var(--line);background:var(--paper)}
  .search-header-btn::before{content:"\2315"}.settings-btn::before{content:"\2699"}
  .topbar .quick-add-btn{display:none}
  .nav-row{margin-top:8px}.current-area{font-size:13px}.nav-row .segmented{min-width:130px}.student-selector{padding:7px 9px}
  .paper{margin:0;padding:20px 14px 34px;border-radius:0}
  .bottom-nav{padding-bottom:calc(4px + var(--chrome-bottom))}.bottom-nav-item{min-height:56px}
  .daily-page-header{gap:12px;padding-bottom:14px}.daily-page-title h2{font-size:26px}.daily-page-header .day-navigation{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto}.daily-page-header .day-navigation .tiny-btn:last-child{display:none}
  .day-focus-summary{grid-template-columns:1fr 1fr}.day-focus-progress{grid-column:1/-1}.day-focus-summary>*{min-height:64px}
  .student-todo-head{gap:8px}.student-day-progress{display:none}.card-head-actions{margin-left:auto}.card-more>div{right:0}
  .daily-task-list>.todo-row{align-items:flex-start;padding:13px 2px}.todo-check{flex:0 0 auto}.task-more>summary{width:36px}
  .quick-capture{grid-template-columns:minmax(0,1fr) auto;padding:10px}.quick-capture-options>div{grid-template-columns:1fr}.quick-capture-options>div .btn{width:100%}
  .planning-hero{align-items:stretch}.planning-workspace-tabs{margin-left:-4px;margin-right:-4px}.planning-context{align-items:flex-start;flex-direction:column;gap:2px}
  .week-planner-board{grid-template-columns:repeat(5,84vw)}
  .gradebook-hero{padding:13px}.gradebook-kpis>div{padding:10px}.records-hero{padding-top:2px}
}

/* ---------- Warm, schedule-aware Today experience ---------- */
.schedule-outlook{
  margin:0 0 16px;padding:18px;border:1px solid rgba(225,170,62,.28);border-radius:18px;
  background:
    radial-gradient(circle at 92% 8%,rgba(233,137,115,.24),transparent 34%),
    linear-gradient(135deg,rgba(225,170,62,.18),rgba(47,111,94,.11) 58%,rgba(124,109,242,.10));
}
.schedule-outlook-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.schedule-outlook-head h3{margin:2px 0 3px;font-size:20px}.schedule-outlook-head p{margin:0;color:var(--ink-soft);font-size:11.5px}
.btn-vacation{flex:0 0 auto;border:1px solid rgba(225,170,62,.52);background:#fff7df;color:#73540e;font-weight:850}
.btn-vacation:hover{background:#f7df9a;transform:translateY(-1px)}
.schedule-outlook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.schedule-outlook-card{position:relative;display:grid;grid-template-columns:minmax(145px,1.1fr) repeat(2,minmax(125px,.8fr));align-items:center;gap:12px;padding:13px 14px;overflow:hidden;border:1px solid rgba(255,255,255,.78);border-radius:13px;background:rgba(255,255,255,.8);box-shadow:0 5px 16px rgba(28,48,39,.06)}
.schedule-outlook-card::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--student-color,var(--sage))}
.schedule-outlook-student{display:flex;align-items:center;gap:9px;min-width:0}.schedule-outlook-student>span:last-child{display:grid;gap:2px;min-width:0}.schedule-outlook-student b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-outlook-student small,.schedule-outlook-date small{color:var(--ink-soft);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.schedule-outlook-date{display:grid;gap:3px;padding-left:12px;border-left:1px solid var(--line)}.schedule-outlook-date b{font-size:13px}.schedule-outlook-date.graduation b{color:#6554cf}
.day-focus-summary{gap:9px;overflow:visible;border:0;background:transparent}
.day-focus-summary>*{border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#f4fbf8,#fff)}
.day-focus-summary>*:nth-child(2){border-color:rgba(225,170,62,.3);background:linear-gradient(135deg,#fff8e5,#fff)}
.day-focus-summary>*:nth-child(3){border-color:rgba(233,137,115,.3);background:linear-gradient(135deg,#fff1ed,#fff)}
.day-focus-progress i{background:linear-gradient(90deg,var(--sage),#66ad8e)}
.student-todo-card{margin:0 0 18px;border:1px solid var(--line);border-radius:16px;background:var(--paper);overflow:hidden;box-shadow:0 8px 24px rgba(25,55,47,.06)}
.student-todo-head{position:relative;padding:14px 16px;border-bottom:1px solid color-mix(in srgb,var(--student-color,var(--sage)) 23%,var(--line));background:linear-gradient(105deg,color-mix(in srgb,var(--student-color,var(--sage)) 12%,var(--paper)),var(--paper) 72%)}
.student-todo-head::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--student-color,var(--sage))}
.student-todo-body{padding:12px 15px 18px}
.daily-task-list{gap:8px;border:0}
.daily-task-list>.todo-row{position:relative;align-items:center;gap:11px;margin:0;padding:12px 10px 12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.daily-task-list>.todo-row::before{content:"";position:absolute;inset:9px auto 9px 0;width:3px;border-radius:0 3px 3px 0;background:color-mix(in srgb,var(--student-color,var(--sage)) 75%,white)}
.daily-task-list>.todo-row:hover{border-color:color-mix(in srgb,var(--student-color,var(--sage)) 34%,var(--line));background:color-mix(in srgb,var(--student-color,var(--sage)) 4%,var(--paper));box-shadow:0 5px 16px rgba(25,55,47,.06)}
.daily-task-list>.todo-row.is-complete{opacity:.68;background:var(--paper-2)}
.todo-check{width:20px;height:20px;accent-color:var(--student-color,var(--sage))}
.todo-subject-tag{display:inline-flex;margin-top:5px;border:1px solid color-mix(in srgb,var(--tag-color,var(--sage)) 30%,transparent);background:color-mix(in srgb,var(--tag-color,var(--sage)) 13%,transparent)!important;color:color-mix(in srgb,var(--tag-color,var(--sage)) 72%,var(--ink))!important}
.postpone-task-btn{flex:0 0 auto;min-height:32px;padding:6px 9px;border:1px solid rgba(225,170,62,.34);border-radius:9px;background:rgba(225,170,62,.09);color:var(--gold-text);font:800 10.5px/1 'Inter',sans-serif;cursor:pointer}
.postpone-task-btn:hover{background:rgba(225,170,62,.2);border-color:rgba(225,170,62,.55)}
.postpone-lesson-summary,.vacation-intro{display:flex;align-items:flex-start;gap:11px;margin-bottom:14px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2)}
.postpone-lesson-summary>div,.vacation-intro>div{display:grid;gap:4px}.postpone-lesson-summary small,.vacation-intro small{color:var(--ink-soft);font-size:11px;line-height:1.45}.vacation-intro>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#fff0bd;color:#8a6515;font-size:21px}
.postpone-weekend-choice{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;margin:12px 0;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--paper-2);cursor:pointer}.postpone-weekend-choice input{width:18px;height:18px;margin-top:1px;accent-color:var(--sage)}.postpone-weekend-choice>span{display:grid;gap:3px}.postpone-weekend-choice b{font-size:12px}.postpone-weekend-choice small{color:var(--ink-soft);font-size:10.5px;line-height:1.4}
.postpone-options{display:grid;gap:9px;margin-top:12px}.postpone-option{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.postpone-option:hover{border-color:var(--sage);transform:translateY(-1px);box-shadow:0 7px 18px rgba(25,55,47,.08)}.postpone-option>span:last-child{display:grid;gap:3px}.postpone-option small{color:var(--ink-soft);font-size:10.5px;line-height:1.4}.postpone-symbol{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:rgba(47,111,94,.12);color:var(--sage);font-weight:900}.postpone-option.related .postpone-symbol{background:rgba(225,170,62,.16);color:#8a6515}.postpone-option.all .postpone-symbol{background:rgba(124,109,242,.13);color:#6554cf}
.web-google-setup{display:grid;gap:10px;margin:12px 0 14px}.web-google-setup.configured{border-color:rgba(47,111,94,.3);background:rgba(47,111,94,.07)}.web-google-setup code{padding:2px 5px;border-radius:5px;background:rgba(0,0,0,.06);font-size:11px}.web-google-setup label{display:grid;gap:4px}.web-google-setup input{background:var(--paper)}
.first-run-restore{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:14px;border:1px solid rgba(47,111,94,.32);border-radius:12px;background:rgba(111,156,125,.09)}.first-run-restore>div{display:grid;gap:3px;flex:1}.first-run-restore span{font-size:12px;color:var(--ink-soft)}.sync-status-chip{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font:800 11.5px/1.15 'Inter',sans-serif;white-space:nowrap;cursor:pointer}.sync-status-mark{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:7px;background:var(--ink-soft);color:#fff;font-size:11px;font-weight:900}.sync-status-copy{display:grid;gap:1px;text-align:left}.sync-status-copy small{display:none;color:var(--ink-soft);font-size:9.5px;font-weight:600}.sync-status-manage{display:none;color:var(--sage);font-size:10px;font-weight:850}.sync-status-chip.connected .sync-status-mark,.sync-status-chip.synced .sync-status-mark{background:#2f775f}.sync-status-chip.waiting .sync-status-mark,.sync-status-chip.working .sync-status-mark{background:#b68718}.sync-status-chip.disconnected .sync-status-mark,.sync-status-chip.error .sync-status-mark{background:#b84040}.mobile-sync-status{display:none}
@media(max-width:700px){.first-run-restore{align-items:stretch;flex-direction:column}.header-sync-status{display:none}.mobile-sync-status{display:flex;width:100%;min-height:40px;margin-top:8px;padding:6px 9px;border-radius:10px}.mobile-sync-status .sync-status-copy{min-width:0;flex:1}.mobile-sync-status .sync-status-copy b,.mobile-sync-status .sync-status-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-sync-status .sync-status-manage{display:block}}
@media(pointer:coarse),(max-width:600px){#app :is(button,.tiny-btn,.small-link,.record-section-nav,.week-item-actions button,.planner-week-actions .tiny-btn,.postpone-task-btn){min-height:44px}#app :is(input:not([type="checkbox"]):not([type="radio"]),select){min-height:44px}}
.rubric-score-row{display:grid;grid-template-columns:minmax(140px,1fr) 82px auto 82px auto;gap:8px;align-items:center;margin:8px 0}.rubric-score-row input{min-width:0}.assignment-rubric-apply{display:flex;align-items:end;padding-bottom:1px}.grade-trend-wrap{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:14px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.grade-trend-wrap>div:first-child{display:grid;gap:2px}.grade-trend-wrap small{color:var(--ink-soft)}.grade-trend{height:48px;display:flex;align-items:end;gap:4px;min-width:120px}.grade-trend span{width:10px;max-height:100%;border-radius:4px 4px 2px 2px;background:var(--sage)}@media(max-width:600px){.rubric-score-row{grid-template-columns:1fr 70px auto 70px}.rubric-score-row .del-x{grid-column:1/-1}.grade-trend-wrap{align-items:stretch;flex-direction:column}.grade-trend{width:100%}}
.graduation-requirement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}.graduation-requirement{display:grid;gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px}.graduation-requirement span:first-child{display:grid;gap:2px}.graduation-requirement small{color:var(--ink-soft)}.graduation-requirement.complete{border-color:var(--sage);background:rgba(111,156,125,.08)}
.goal-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.goal-progress-grid>div{display:grid;gap:2px;padding:9px;border-radius:10px;background:var(--paper-2)}.goal-progress-grid span{font-size:12px;color:var(--ink-soft)}@media(max-width:600px){.goal-progress-grid{grid-template-columns:1fr}}
.record-backlinks{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.record-backlinks>span{font-size:11px;font-weight:800;color:var(--ink-soft);text-transform:uppercase}
.attendance-calendar-weekdays,.attendance-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.attendance-calendar-weekdays{margin-bottom:5px;text-align:center;font-size:11px;color:var(--ink-soft)}.attendance-calendar-day,.attendance-calendar-blank{min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--paper);display:grid;place-items:center;gap:0}.attendance-calendar-day small{font-size:10px}.attendance-calendar-day.present,.attendance-calendar-day.instructional{background:rgba(111,156,125,.18)}.attendance-calendar-day.half{background:rgba(212,166,42,.18)}.attendance-calendar-day.absent,.attendance-calendar-day.excused{background:rgba(226,114,91,.15)}
.startup-recovery{width:min(560px,calc(100% - 32px));margin:48px auto;padding:24px;box-sizing:border-box;border:1px solid #d6ddd9;border-radius:16px;background:#fff;color:#18332d;font-family:Inter,system-ui,sans-serif}.startup-recovery h1{margin:0 0 8px;font-size:22px}.startup-recovery p{margin:0;color:#60736e;line-height:1.5}.startup-recovery a{display:inline-flex;margin-top:18px;padding:11px 15px;border-radius:10px;background:#2f6f5e;color:#fff;font-weight:800;text-decoration:none}
.finish-day-row,.bulk-grade-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,180px);gap:10px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}.finish-day-row>label:first-child{display:flex;align-items:center;gap:9px}.finish-day-row span,.bulk-grade-row>div{display:grid;gap:2px}.finish-day-row small,.bulk-grade-row small{color:var(--ink-soft)}.bulk-grade-table{display:grid;overflow:auto}.bulk-grade-row{grid-template-columns:minmax(180px,1.5fr) minmax(190px,1fr) 100px 100px}.grade-calculation-explanation{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2)}.grade-calculation-explanation>summary{cursor:pointer;font-weight:800}.grade-calculation-explanation p{color:var(--ink-soft)}
@media(max-width:700px){.finish-day-row,.bulk-grade-row{grid-template-columns:1fr}.bulk-grade-row input,.bulk-grade-row select{width:100%}}
.record-select{display:grid;place-items:center;align-self:stretch;min-width:32px}.p-portfolio-images{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 16px}.p-portfolio-images img{max-width:220px;max-height:180px;object-fit:contain;border:1px solid #ccc}.p-signature-block{display:flex;justify-content:space-between;gap:24px;margin-top:36px;padding-top:16px}.transcript-identity-settings{margin-bottom:14px}.transcript-identity-settings>summary{cursor:pointer;padding:4px}
.compliance-check-row{display:grid;grid-template-columns:minmax(240px,1fr) 150px minmax(180px,.7fr);gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.compliance-check-row>label{display:flex;align-items:center;gap:9px}.compliance-check-row>label span{display:grid;gap:2px}.compliance-check-row small{color:var(--ink-soft)}@media(max-width:700px){.compliance-check-row{grid-template-columns:1fr}}
.search-command-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.google-account-setup{margin:14px 0 16px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 8px 24px rgba(25,55,47,.06)}
.google-account-hero{display:flex;align-items:flex-start;gap:13px;padding:17px 18px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,rgba(66,133,244,.10),rgba(52,168,83,.08) 55%,rgba(251,188,5,.10))}.google-account-hero>div{display:grid;gap:3px}.google-account-hero h3{margin:0;font-size:18px}.google-account-hero p{margin:0;color:var(--ink-soft);font-size:11.5px}.google-mark{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#4285f4,#34a853);color:#fff;font-size:19px;font-weight:900;box-shadow:0 4px 12px rgba(66,133,244,.22)}
.google-oauth-steps{display:grid;padding:4px 18px 17px}.google-oauth-step{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;padding:15px 0;border-bottom:1px solid var(--line)}.google-oauth-step:last-child{border-bottom:0}.google-oauth-step>div{display:grid;gap:7px}.google-oauth-step b{font-size:13px}.google-oauth-step p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.5}.oauth-step-number{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:var(--paper-2);color:var(--ink-soft);font-size:11px;font-weight:900}.google-oauth-step.active .oauth-step-number{border-color:var(--sage);background:var(--sage);color:#fff}.google-oauth-step.complete .oauth-step-number{border-color:#34a853;background:#34a853;color:#fff}.google-oauth-step.complete .oauth-step-number::after{content:"\2713"}.google-oauth-step.complete .oauth-step-number{font-size:0}.google-oauth-step.complete .oauth-step-number::after{font-size:13px}
.google-oauth-step code{display:block;width:max-content;max-width:100%;padding:7px 9px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);color:var(--ink);font:750 11px/1.2 'IBM Plex Mono',monospace}.google-oauth-step label{display:grid;gap:5px;margin-top:2px}.google-oauth-step input{width:100%;min-height:42px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;background:var(--paper);color:var(--ink);font-family:'IBM Plex Mono',monospace}.google-connect-btn{width:max-content;min-width:190px;margin-top:2px}.google-help-link{align-self:center}.account-settings-link{gap:8px}.account-settings-link .btn{width:max-content;margin-top:3px}
html[data-appearance="dark"] .google-account-setup{background:#102823}html[data-appearance="dark"] .google-account-hero{background:linear-gradient(120deg,rgba(66,133,244,.14),rgba(52,168,83,.10),rgba(251,188,5,.10))}
@media(prefers-color-scheme:dark){html[data-appearance="system"] .google-account-setup{background:#102823}html[data-appearance="system"] .google-account-hero{background:linear-gradient(120deg,rgba(66,133,244,.14),rgba(52,168,83,.10),rgba(251,188,5,.10))}}
@media(max-width:600px){.google-account-hero{padding:14px}.google-oauth-steps{padding:2px 13px 14px}.google-oauth-step{grid-template-columns:30px minmax(0,1fr);gap:9px}.google-connect-btn,.account-settings-link .btn{width:100%}}
html[data-appearance="dark"] :is(.schedule-outlook-card,.student-todo-card,.postpone-option){background:#102823}
html[data-appearance="dark"] .schedule-outlook{background:linear-gradient(135deg,rgba(225,170,62,.14),rgba(47,111,94,.15),rgba(124,109,242,.12))}
html[data-appearance="dark"] .btn-vacation{background:rgba(225,170,62,.16);color:#f0cf69}
html[data-appearance="dark"] .day-focus-summary>*{background:#102823}
@media(prefers-color-scheme:dark){html[data-appearance="system"] :is(.schedule-outlook-card,.student-todo-card,.postpone-option){background:#102823}html[data-appearance="system"] .schedule-outlook{background:linear-gradient(135deg,rgba(225,170,62,.14),rgba(47,111,94,.15),rgba(124,109,242,.12))}html[data-appearance="system"] .btn-vacation{background:rgba(225,170,62,.16);color:#f0cf69}html[data-appearance="system"] .day-focus-summary>*{background:#102823}}
@media(max-width:800px){.schedule-outlook-grid{grid-template-columns:1fr}.schedule-outlook-card{grid-template-columns:minmax(135px,1fr) repeat(2,minmax(115px,.8fr))}}
@media(max-width:600px){.schedule-outlook{margin-left:-4px;margin-right:-4px;padding:14px}.schedule-outlook-head{align-items:stretch;flex-direction:column}.btn-vacation{width:100%}.schedule-outlook-card{grid-template-columns:1fr 1fr}.schedule-outlook-student{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid var(--line)}.schedule-outlook-date{padding-left:0;border-left:0}.student-todo-body{padding:10px 10px 15px}.daily-task-list>.todo-row{align-items:flex-start;padding:12px 8px 12px 12px}.postpone-task-btn{width:auto;min-width:92px;height:34px;padding:6px 10px;font-size:10px}.postpone-option{grid-template-columns:38px minmax(0,1fr);padding:10px}.postpone-symbol{width:36px;height:36px}}

/* ---------- Desktop student command center ---------- */
.desktop-student-tools{display:none}
.app-loading-screen{display:flex;align-items:center;justify-content:center;gap:14px;min-height:calc(var(--viewport-height) - 80px);color:var(--ink)}.app-loading-screen>div{display:grid;gap:4px}.app-loading-screen b{font-size:16px}.app-loading-screen span{color:var(--ink-soft);font-size:11.5px}.app-loading-mark{display:grid!important;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--sage);color:#fff!important;font-size:19px!important;font-weight:900;box-shadow:0 7px 18px rgba(47,111,94,.2)}
@media(min-width:960px){
  .desktop-student-tools{display:grid;gap:8px;padding:14px 7px 12px;border-bottom:1px solid var(--line)}
  .desktop-tools-label{color:var(--ink-soft);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
  .desktop-student-tools .student-selector{justify-content:space-between;width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2);color:var(--ink);text-align:left}
  .desktop-student-tools .student-selector:hover{border-color:color-mix(in srgb,var(--sage) 55%,var(--line));background:color-mix(in srgb,var(--sage) 6%,var(--paper))}
  .desktop-quick-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:42px;border:0;border-radius:10px;background:var(--sage);color:#fff;font:850 12px/1 'Inter',sans-serif;cursor:pointer;box-shadow:0 5px 13px rgba(47,111,94,.18)}
  .desktop-quick-add>span{font-size:19px;line-height:1}.desktop-quick-add:hover{background:var(--sage-dark);transform:translateY(-1px)}
  .desktop-sidebar nav{padding-top:12px}
  .topbar .nav-row{display:none}
  .topbar .quick-add-btn{display:none}
  .topbar .brand{justify-content:flex-end;min-height:40px}
  .topbar .search-header-btn{margin-left:0}
}

/* ---------- More useful, more colorful week view ---------- */
.week-command-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 12px;padding:15px 18px;border:1px solid rgba(124,109,242,.25);border-radius:15px;background:linear-gradient(120deg,rgba(124,109,242,.14),rgba(47,111,94,.12) 58%,rgba(225,170,62,.15))}
.week-command-bar>div{display:grid;gap:2px}.week-command-bar b{font-size:18px}.week-command-bar small{color:var(--ink-soft);font-size:11px}
.week-progress-ring{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle closest-side,var(--paper) 76%,transparent 78%),conic-gradient(#7c6df2 var(--week-progress),var(--line) 0);color:var(--ink);font-size:10px;font-weight:900}
.mobile-week-agenda .week-toolbar{min-height:46px;margin-bottom:10px;padding:6px 8px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.mobile-week-agenda .agenda-day-strip{gap:7px;margin:0 0 16px;padding:4px}
.mobile-week-agenda .agenda-day-chip{min-height:70px;gap:3px;padding:8px 3px;border-radius:12px;background:var(--paper);transition:transform .15s,border-color .15s,box-shadow .15s}
.mobile-week-agenda .agenda-day-chip:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--sage) 42%,var(--line));box-shadow:0 5px 14px rgba(25,55,47,.08)}
.mobile-week-agenda .agenda-day-chip.active{border-color:transparent;background:linear-gradient(145deg,var(--sage),#487f72);color:#fff;box-shadow:0 7px 16px rgba(47,111,94,.23)}
.mobile-week-agenda .agenda-day-chip small{display:grid;place-items:center;top:5px;right:5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:rgba(233,137,115,.16);color:var(--coral);font-size:9px;font-weight:900}
.mobile-week-agenda .agenda-day-chip.active small{background:rgba(255,255,255,.18);color:#fff}
.week-agenda-student{box-shadow:0 8px 22px rgba(25,55,47,.055)}
.week-agenda-count{margin-left:auto;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--student-color,var(--sage)) 12%,var(--paper));color:color-mix(in srgb,var(--student-color,var(--sage)) 78%,var(--ink));font-size:9px;font-weight:850;white-space:nowrap}
.week-agenda-student .student-todo-head .tiny-btn{margin-left:2px}
.agenda-list{gap:9px}.agenda-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;overflow:hidden;padding:12px 12px 12px 16px;border-radius:12px;background:var(--paper)}
.agenda-item::before{content:"";position:absolute;inset:8px auto 8px 0;width:4px;border-radius:0 4px 4px 0;background:var(--student-color,var(--sage))}
.agenda-item>label{align-items:center}.agenda-item>label>span{display:grid;gap:4px}.agenda-item>label b{font-size:12.5px}.agenda-item>label small{color:var(--ink-soft);font-size:9.5px;font-weight:750;text-transform:uppercase;letter-spacing:.03em}
.agenda-item.done{opacity:.65}.agenda-item.done>label span{text-decoration:none}.agenda-item.done>label b{text-decoration:line-through}
.agenda-item .week-item-actions{margin:0}.agenda-item .week-item-actions button{min-height:30px;padding:5px 8px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink-soft);font:750 9.5px/1 'Inter',sans-serif}.agenda-item .week-item-actions .postpone-task-btn{border-color:rgba(225,170,62,.36);background:rgba(225,170,62,.12);color:var(--gold-text)}
.week-agenda-empty{display:grid;gap:3px;padding:18px;border:1px dashed var(--line);border-radius:12px;background:color-mix(in srgb,var(--student-color,var(--sage)) 5%,var(--paper));color:var(--ink-soft)}.week-agenda-empty b{color:var(--ink);font-size:13px}.week-agenda-empty span{font-size:11px}
html[data-appearance="dark"] .week-progress-ring{background:radial-gradient(circle closest-side,#102823 76%,transparent 78%),conic-gradient(#988bfd var(--week-progress),var(--line) 0)}
@media(prefers-color-scheme:dark){html[data-appearance="system"] .week-progress-ring{background:radial-gradient(circle closest-side,#102823 76%,transparent 78%),conic-gradient(#988bfd var(--week-progress),var(--line) 0)}}
@media(max-width:700px){.agenda-item{grid-template-columns:1fr}.agenda-item .week-item-actions{justify-content:flex-start}.week-agenda-count{display:none}.week-command-bar{padding:13px}.week-toolbar{flex-wrap:wrap}.week-toolbar b{order:-1;flex:1 0 70%}}

@media print{
  body{ background:#fff !important; }
  #app{ display:none !important; }
  #print-area{ display:block !important; background:#fff; color:#111; padding: 10px; }
  #print-area h1{ font-family:'Zilla Slab',serif; font-size:20px; margin:0 0 2px 0; }
  #print-area .p-sub{ font-size:12px; color:#555; margin-bottom:16px; }
  #print-area .p-student{ margin-bottom:22px; page-break-inside: avoid; }
  #print-area .p-student h2{ font-family:'Zilla Slab',serif; font-size:16px; border-bottom:1px solid #999; padding-bottom:4px; margin-bottom:8px; }
  #print-area .p-item{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; padding:5px 0; }
  #print-area .p-box{ width:14px;height:14px; border:1.4px solid #333; flex-shrink:0; margin-top:2px; }
  #print-area .p-subject{ font-size:11px; color:#666; }
  #print-area .p-empty{ font-size:12.5px; color:#777; font-style:italic; }
  #print-area .p-grade-row{ display:flex; justify-content:space-between; padding:5px 0; border-bottom:1px solid #ddd; font-size:13.5px; }
  #print-area .p-grade-row-total{ border-top:2px solid #333; margin-top:8px; padding-top:8px; font-weight:600; }
  #print-area table{ width:100%; border-collapse:collapse; margin-top:8px; }
  #print-area th, #print-area td{ text-align:left; padding:6px 4px; border-bottom:1px solid #ccc; font-size:12.5px; }
  #print-area .report-compact .p-note{display:none}
  #print-area .report-compact .p-grade-row,#print-area .report-compact th,#print-area .report-compact td{padding-top:3px;padding-bottom:3px;font-size:11.5px}
}
.sync-conflict-list{display:grid;gap:8px;margin:12px 0;max-height:220px;overflow:auto}
.sync-conflict-item{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--border,#d6ddd9);border-radius:10px;background:var(--surface-soft,#f6f8f7)}
.sync-conflict-item span{font-size:.82rem;color:var(--muted,#60736e)}
.graduation-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 14px}.graduation-policy-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:8px;padding:9px;border:1px solid var(--line);border-radius:10px}.attachment-preview-frame{width:100%;min-height:62vh;border:1px solid var(--line);border-radius:10px;background:#fff}.attachment-preview-modal{width:min(900px,94vw)}
@media(max-width:700px){.graduation-policy-grid{grid-template-columns:1fr}.attachment-preview-frame{min-height:55vh}}
