/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-mono:var(--font-mono);--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-lg:1.125rem;--text-xl:1.25rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.hidden{display:none}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--color-paper:lab(98.4554% 1.22133 .655913);--color-surface:lab(100% 0 0);--color-ink:lab(9.43262% -.0548959 -5.89982);--color-muted:lab(45.4151% -.2487 -5.24961);--color-line:lab(90.0666% 2.44439 1.31364);--color-soft:lab(95.7138% 3.66852 1.97265);--color-accent:lab(44.3587% 71.1387 54.3798);--color-accent-ink:lab(100% 0 0);--color-accent-dark:lab(35.2633% 64.9608 52.6625);--color-accent-soft:lab(94.6654% 7.65795 4.12682);--color-violet:lab(48.1883% 33.3101 -33.2239);--color-violet-soft:lab(94.4585% 6.0901 -6.62212);--color-green:lab(53.0337% -42.3709 28.0513);--color-green-soft:lab(94.6016% -8.87287 5.65853);--color-amber:lab(62.7263% 19.0613 64.9727);--color-amber-soft:lab(95.4054% 3.30067 13.1485);--color-math:lab(50.152% -35.592 -7.02462);--color-math-soft:lab(94.4859% -8.33616 -1.72294);--color-focus:lab(53.0032% 56.2898 36.8121);--font-display:var(--font-geist-sans), "Pretendard", system-ui, sans-serif;--font-body:var(--font-geist-sans), "Pretendard", system-ui, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, monospace;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4.5rem;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-display-s:clamp(1.75rem, 3vw, 2.75rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--rule:1px solid var(--color-line);--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--control-height:2.75rem;--shadow-whisper:0 1px 2px lab(7.13988% 2.93779 1.47844/.05)}*{box-sizing:border-box}html,body{min-height:100%;margin:0;overflow-x:clip}html{scroll-behavior:smooth}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body)}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}:is(button:focus-visible,a:focus-visible,input:focus-visible){outline:3px solid var(--color-focus);outline-offset:3px}button:disabled{opacity:.55;cursor:not-allowed}button,.manage-link,.topbar nav a,footer a{white-space:nowrap}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-shell{width:min(100% - 2rem,1440px);margin-inline:auto}.topbar{align-items:center;gap:var(--space-lg);border-bottom:var(--rule);grid-template-columns:1fr auto 1fr;min-height:82px;display:grid}.wordmark{align-items:center;gap:var(--space-sm);width:max-content;text-decoration:none;display:inline-flex}.wordmark-mark{border-radius:var(--radius-md);background:var(--color-accent);width:38px;height:38px;color:var(--color-accent-ink);font-weight:850;font-size:var(--text-lg);place-items:center;display:grid}.wordmark>span:last-child{line-height:1.05;display:grid}.wordmark strong{font-size:var(--text-sm)}.wordmark small{color:var(--color-muted);margin-top:var(--space-2xs);font-size:.65rem}.topbar nav{gap:var(--space-xl);font-size:var(--text-sm);display:flex}.topbar nav a{padding-block:var(--space-md);color:var(--color-muted);white-space:nowrap;font-weight:650;text-decoration:none;position:relative}.topbar nav a:hover,.topbar nav a.nav-active{color:var(--color-ink)}.topbar nav a.nav-active:after{content:"";background:var(--color-accent);height:2px;position:absolute;bottom:6px;left:0;right:0}.manage-link{border:var(--rule);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--text-sm);white-space:nowrap;transition:transform var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);justify-self:end;padding:.65rem 1rem;font-weight:700;text-decoration:none}.manage-link:hover{border-color:var(--color-accent);transform:translateY(-1px)}.manage-link:active{transform:translateY(0)}.intro{align-items:end;gap:var(--space-2xl);padding:var(--space-2xl) clamp(0rem, 4vw, var(--space-2xl)) var(--space-3xl);grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);display:grid}.eyebrow{margin:0 0 var(--space-sm);color:var(--color-accent);font-size:var(--text-xs);font-weight:800}.intro h1{min-width:0;font-family:var(--font-display);font-size:var(--text-display-s);letter-spacing:-.045em;overflow-wrap:anywhere;margin:0;line-height:1.12}.intro-copy{max-width:33rem;color:var(--color-muted);font-size:var(--text-sm);margin:0;line-height:1.8}.workbench{background:var(--color-surface);border:var(--rule);border-radius:var(--radius-xl);min-height:720px;box-shadow:var(--shadow-whisper);grid-template-columns:330px minmax(0,1fr);display:grid;overflow:clip}.school-rail{padding:var(--space-lg);background:var(--color-soft);border-right:var(--rule)}.rail-head,.detail-head,.calendar-head{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.rail-head h2,.detail-head h2,.calendar-head h3{margin:0}.rail-head h2{font-size:var(--text-lg)}.rail-head span{color:var(--color-muted);font-size:var(--text-xs)}.search-field{align-items:center;gap:var(--space-xs);margin-block:var(--space-lg) var(--space-sm);padding:.7rem var(--space-sm);border:var(--rule);border-radius:var(--radius-sm);background:var(--color-surface);display:flex}.search-field input{width:100%;min-width:0;color:var(--color-ink);font-size:var(--text-sm);background:0 0;border:0;outline:0}.search-field kbd{border:var(--rule);border-radius:var(--space-2xs);color:var(--color-muted);background:var(--color-paper);font-family:var(--font-mono);padding:.15rem .3rem;font-size:.65rem}.segment,.term-switch{gap:var(--space-2xs);padding:var(--space-2xs);border-radius:var(--radius-sm);background:var(--color-line);display:flex}.segment button,.term-switch button{border-radius:calc(var(--radius-sm) - var(--space-2xs));padding:.48rem var(--space-xs);color:var(--color-muted);font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;flex:1;font-weight:700}.segment button:hover,.term-switch button:hover{color:var(--color-ink)}.segment button.selected,.term-switch button.active{background:var(--color-surface);color:var(--color-ink)}.school-list{gap:var(--space-xs);margin-top:var(--space-md);display:grid}.school-item{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:transform var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out);background:0 0;border:1px solid #0000;grid-template-columns:40px minmax(0,1fr) auto;display:grid}.school-item:hover{background:var(--color-surface);transform:translateY(-1px)}.school-item:active{transform:translateY(0)}.school-item.active{background:var(--color-surface);border-color:var(--color-line)}.school-initial{border-radius:var(--radius-md);background:var(--color-accent-soft);width:40px;height:40px;color:var(--color-accent);place-items:center;font-weight:800;display:grid}.school-initial.violet{background:var(--color-violet-soft);color:var(--color-violet)}.school-initial.math{background:var(--color-math-soft);color:var(--color-math);font-size:.58rem}.school-item.all-schools{margin-bottom:var(--space-xs);border-color:var(--color-line);background:var(--color-surface)}.school-item>span:nth-child(2){gap:var(--space-2xs);min-width:0;display:grid}.school-item strong,.school-item small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.school-item strong{font-size:var(--text-sm)}.school-item small{color:var(--color-muted);font-size:.68rem}.school-item i{color:var(--color-muted);font-style:normal}.school-detail{min-width:0;padding:clamp(var(--space-lg), 4vw, var(--space-2xl))}.detail-head p{margin:0 0 var(--space-xs);color:var(--color-muted);font-size:var(--text-xs)}.detail-head h2{font-size:var(--text-xl);letter-spacing:-.03em}.term-switch{width:170px}.exam-tabs{gap:var(--space-xs);margin-top:var(--space-xl);padding-bottom:var(--space-xs);display:flex;overflow-x:auto}.exam-tabs button{min-height:var(--control-height);padding-inline:var(--space-lg);border:var(--rule);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-muted);font-size:var(--text-sm);cursor:pointer;font-weight:750}.exam-tabs button:hover,.exam-tabs button.active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-dark)}.exam-tabs+.exam-summary{margin-top:var(--space-sm)}.exam-summary{align-items:center;gap:var(--space-lg);margin-top:var(--space-xl);padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--color-ink);color:var(--color-surface);grid-template-columns:1fr auto;display:grid}.exam-summary>div:first-child{gap:var(--space-xs);display:grid}.exam-summary span,.exam-summary small{color:var(--color-line);font-size:var(--text-xs)}.exam-summary strong{font-size:var(--text-lg)}.d-day{padding-left:var(--space-xl);border-left:1px solid var(--color-muted);text-align:right}.d-day strong{margin-top:var(--space-2xs);color:var(--color-accent-soft);font-size:var(--text-xl);font-variant-numeric:tabular-nums;display:block}.info-grid{gap:var(--space-md);margin-top:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.info-card{min-width:0;padding:var(--space-lg);border:var(--rule);border-radius:var(--radius-lg);background:var(--color-surface)}.card-kicker{justify-content:space-between;align-items:center;gap:var(--space-md);color:var(--color-muted);font-size:var(--text-xs);display:flex}.card-kicker b{padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent)}.info-card h3{margin:var(--space-lg) 0 var(--space-xs);font-size:var(--text-md)}.info-card p{color:var(--color-muted);font-size:var(--text-xs);margin:0}.range-card{background:var(--color-accent-soft);border-color:#0000}.range-card a{gap:var(--space-xs);margin-top:var(--space-lg);color:var(--color-accent-dark);font-size:var(--text-xs);white-space:nowrap;font-weight:800;text-decoration:none;display:inline-flex}.resource-card{grid-column:1/-1}.resource-card ul{gap:var(--space-sm);margin:var(--space-md) 0 0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.resource-card li{align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--color-soft);border-radius:var(--radius-md);grid-template-columns:38px minmax(0,1fr) auto;display:grid}.file-type{border-radius:var(--radius-sm);background:var(--color-accent-soft);width:38px;height:38px;color:var(--color-accent);place-items:center;font-size:.6rem;font-weight:850;display:grid}.file-type.violet{background:var(--color-violet-soft);color:var(--color-violet)}.resource-card li>span:nth-child(2){gap:var(--space-2xs);min-width:0;display:grid}.resource-card li strong,.resource-card li small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.resource-card li strong{font-size:var(--text-xs)}.resource-card li small{color:var(--color-muted);font-size:.65rem}.resource-card li button{border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;border:0;width:34px;height:34px}.resource-card li button:hover{color:var(--color-accent)}.resource-card li>a{border-radius:var(--radius-sm);background:var(--color-surface);place-items:center;width:34px;height:34px;text-decoration:none;display:grid}.resource-card li>a:hover{color:var(--color-accent)}.resource-empty,.calendar-empty,.rail-empty{margin:var(--space-md) 0 0;color:var(--color-muted);font-size:var(--text-xs);line-height:1.7}.demo-notice{align-items:center;gap:var(--space-sm);margin:0 clamp(0rem, 4vw, var(--space-2xl)) var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-amber);border-radius:var(--radius-md);background:var(--color-amber-soft);color:var(--color-ink);font-size:var(--text-xs);display:flex}.demo-notice strong{color:var(--color-accent-dark);white-space:nowrap}.empty-detail{text-align:center;min-height:290px;padding:var(--space-xl);border:var(--rule);border-radius:var(--radius-lg);margin-top:var(--space-xl);place-content:center;justify-items:center;display:grid}.empty-detail>span{border-radius:var(--radius-md);background:var(--color-accent-soft);width:42px;height:42px;color:var(--color-accent);font-size:var(--text-xl);place-items:center;display:grid}.empty-plus{border-radius:var(--radius-md);background:var(--color-accent-soft);width:42px;height:42px;color:var(--color-accent);font-size:var(--text-xl);place-items:center;text-decoration:none;display:grid}.empty-plus:hover{background:var(--color-accent);color:var(--color-accent-ink)}.empty-detail h3{margin:var(--space-md) 0 var(--space-xs);font-size:var(--text-md)}.empty-detail p{color:var(--color-muted);font-size:var(--text-xs);margin:0}.empty-detail.compact{min-height:220px}.empty-action{margin-top:var(--space-lg);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-ink);font-size:var(--text-xs);font-weight:800;text-decoration:none}.overview-calendar{margin-top:var(--space-xl)}.overview-calendar-toolbar{justify-content:space-between;align-items:center;gap:var(--space-md);display:flex}.calendar-month-nav{align-items:center;gap:var(--space-sm);display:flex}.calendar-month-nav strong{min-width:112px;font-size:var(--text-md);text-align:center;font-variant-numeric:tabular-nums}.calendar-month-nav button{border:var(--rule);background:var(--color-surface);width:34px;height:34px;color:var(--color-ink);cursor:pointer;border-radius:50%}.calendar-month-nav button:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.calendar-legend{justify-content:flex-end;gap:var(--space-md);color:var(--color-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.calendar-legend span{align-items:center;gap:var(--space-xs);display:inline-flex}.calendar-legend i{background:var(--color-accent-soft);border:1px solid var(--color-accent);border-radius:99px;width:18px;height:7px}.calendar-legend i.math{background:var(--color-math);border-color:var(--color-math);width:7px}.calendar-legend i.holiday{background:var(--color-accent);border-color:var(--color-accent);width:7px}.exam-month-tabs{gap:var(--space-xs);margin-top:var(--space-md);display:flex}.exam-month-tabs button{padding:var(--space-xs) var(--space-md);border:var(--rule);background:var(--color-surface);color:var(--color-muted);font-size:var(--text-xs);cursor:pointer;border-radius:99px;font-weight:750}.exam-month-tabs button:hover,.exam-month-tabs button.active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-dark)}.month-calendar-scroll{margin-top:var(--space-sm);border:var(--rule);border-radius:var(--radius-lg);background:var(--color-surface);overflow-x:auto}.month-calendar{min-width:760px}.calendar-weekdays{border-bottom:var(--rule);background:var(--color-soft);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays span{padding:var(--space-sm);color:var(--color-muted);font-size:var(--text-xs);text-align:center;font-weight:750}.calendar-weekdays span:first-child{color:var(--color-accent)}.calendar-weekdays span:last-child{color:var(--color-violet)}.calendar-week{border-bottom:var(--rule);position:relative}.calendar-week:last-child{border-bottom:0}.calendar-day-grid{pointer-events:none;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;position:absolute;inset:0}.calendar-day-grid>div{justify-content:space-between;align-items:flex-start;gap:var(--space-xs);min-width:0;padding:var(--space-xs) var(--space-sm);border-right:var(--rule);display:flex}.calendar-day-grid>div:last-child{border-right:0}.calendar-day-grid time{color:var(--color-ink);font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:700}.calendar-day-grid .outside time{color:var(--color-line)}.calendar-day-grid .sunday time{color:var(--color-accent)}.calendar-day-grid .saturday time{color:var(--color-violet)}.calendar-day-grid .holiday{background:var(--color-accent-soft)}@supports (color:color-mix(in lab, red, red)){.calendar-day-grid .holiday{background:color-mix(in oklab, var(--color-accent-soft) 35%, transparent)}}.calendar-day-grid .holiday time{color:var(--color-accent)}.calendar-day-grid .holiday span{min-width:0;color:var(--color-accent);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;font-weight:750;line-height:1.35;overflow:hidden}.calendar-event-grid{z-index:1;pointer-events:none;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:24px;gap:4px 0;padding-top:38px;display:grid;position:relative}.calendar-event{min-width:0;padding:0 var(--space-xs);background:var(--color-accent-soft);color:var(--color-accent-dark);text-align:left;text-overflow:ellipsis;cursor:pointer;pointer-events:auto;border:0;border-radius:5px;margin-inline:2px;font-size:.66rem;font-weight:750;overflow:hidden}.calendar-event:hover{filter:saturate(1.2);box-shadow:inset 0 0 0 1px}.calendar-event span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.calendar-event i{background:var(--color-math);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:2px;display:inline-block}.calendar-event.tone-1{background:var(--color-violet-soft);color:var(--color-violet)}.calendar-event.tone-2{background:var(--color-math-soft);color:#126a69}.calendar-event.tone-3{background:var(--color-amber-soft);color:#8a5800}.calendar-event.tone-4{background:var(--color-green-soft);color:#27633e}.calendar-event.tone-5{background:var(--color-soft);color:var(--color-ink)}.overview-help{margin:var(--space-sm) 0 0;color:var(--color-muted);font-size:var(--text-xs);line-height:1.6}.overview-empty{margin-top:var(--space-xl);padding:var(--space-xl);border:var(--rule);border-radius:var(--radius-lg);text-align:center}.calendar-strip{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:var(--rule)}.calendar-head h3{font-size:var(--text-md)}.calendar-head>div{gap:var(--space-2xs);display:grid}.calendar-head p{align-items:center;gap:var(--space-xs);color:var(--color-muted);font-size:var(--text-xs);margin:0;display:flex}.calendar-head button{padding:var(--space-xs) var(--space-sm);border:var(--rule);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-muted);font-size:var(--text-xs);cursor:pointer;font-weight:750}.calendar-head button:hover,.calendar-head button.active{border-color:var(--color-math);background:var(--color-math-soft);color:var(--color-ink)}.calendar-head a{color:var(--color-accent);font-size:var(--text-xs);white-space:nowrap;font-weight:700;text-decoration:none}.timeline-row{padding-block:var(--space-md);border-bottom:var(--rule);grid-template-columns:92px minmax(0,1fr);align-items:center;display:grid}.timeline-row.math-exam{margin-inline:calc(var(--space-sm) * -1);padding-inline:var(--space-sm);border-radius:var(--radius-md);background:var(--color-math-soft)}.timeline-row time{align-items:center;gap:var(--space-xs);grid-template-columns:auto 1fr;display:grid}.timeline-row time strong{font-size:var(--text-xl);font-variant-numeric:tabular-nums}.timeline-row time span{color:var(--color-muted);font-size:.65rem}.timeline-row>div{align-items:center;gap:var(--space-sm);grid-template-columns:8px minmax(0,1fr);display:grid}.timeline-row>div>span{gap:var(--space-2xs);display:grid}.timeline-row small{color:var(--color-muted);font-size:var(--text-xs)}.dot{background:var(--color-accent);border-radius:50%;width:8px;height:8px}.dot.school{background:var(--color-violet)}.dot.math{background:var(--color-math);flex:none;display:inline-block}.learning-library{scroll-margin-top:var(--space-lg);margin-top:var(--space-3xl);padding:clamp(var(--space-lg), 4vw, var(--space-2xl));border:var(--rule);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-whisper)}.learning-library>header{justify-content:space-between;align-items:end;gap:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:var(--rule);display:flex}.learning-library h2{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.03em;margin:0}.learning-library>header>p{max-width:34rem;color:var(--color-muted);font-size:var(--text-xs);text-align:right;margin:0;line-height:1.7}.learning-library-grid{gap:var(--space-sm);margin-top:var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.learning-library-grid article{align-items:center;gap:var(--space-sm);min-width:0;padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-soft);grid-template-columns:38px minmax(0,1fr) auto;display:grid}.learning-library-grid article>span:nth-child(2){gap:var(--space-2xs);min-width:0;display:grid}.learning-library-grid small{color:var(--color-accent);font-size:.65rem;font-weight:800}.learning-library-grid strong,.learning-library-grid em{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.learning-library-grid strong{font-size:var(--text-sm)}.learning-library-grid em{color:var(--color-muted);font-size:.65rem;font-style:normal}.learning-library-grid a{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-xs);font-weight:800;text-decoration:none}.learning-library-grid a:hover{color:var(--color-accent)}.learning-library-empty{padding:var(--space-xl);text-align:center}.learning-library-empty strong{font-size:var(--text-sm)}.learning-library-empty p{margin:var(--space-xs) 0 0;color:var(--color-muted);font-size:var(--text-xs);line-height:1.7}footer{gap:var(--space-lg);margin-top:var(--space-3xl);padding-block:var(--space-lg);border-top:var(--rule);color:var(--color-muted);font-size:var(--text-xs);grid-template-columns:auto 1fr auto;align-items:center;display:grid}footer strong{color:var(--color-ink)}.admin-login-shell{min-height:100vh;padding:var(--space-lg);background:var(--color-soft);place-items:center;display:grid}.admin-login-card{width:min(100%,470px);padding:clamp(var(--space-xl), 6vw, var(--space-2xl));border:var(--rule);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-whisper)}.admin-login-card .wordmark{margin-bottom:var(--space-2xl)}.admin-login-card h1{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.03em;margin:0}.admin-login-card>p:not(.eyebrow){margin:var(--space-sm) 0 var(--space-xl);color:var(--color-muted);font-size:var(--text-sm);line-height:1.7}.admin-login-card form{gap:var(--space-md);display:grid}.admin-login-card label{gap:var(--space-xs);color:var(--color-muted);font-size:var(--text-xs);font-weight:750;display:grid}.admin-login-card input{width:100%;min-height:var(--control-height);padding:var(--space-sm);border:var(--rule);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink)}.admin-login-card form button{min-height:var(--control-height);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-ink);font-size:var(--text-sm);cursor:pointer;border:0;font-weight:800}.login-error{padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent-dark);font-size:var(--text-xs)}.login-back{margin-top:var(--space-lg);color:var(--color-muted);font-size:var(--text-xs);font-weight:700;text-decoration:none;display:inline-block}.login-back:hover{color:var(--color-accent)}.manage-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.manage-sidebar{height:100vh;padding:var(--space-lg);border-right:var(--rule);background:var(--color-surface);flex-direction:column;display:flex;position:sticky;top:0}.manage-sidebar .wordmark{margin-bottom:var(--space-2xl)}.manage-sidebar nav{gap:var(--space-xs);display:grid}.manage-sidebar nav button{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm);border-radius:var(--radius-md);color:var(--color-muted);font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:28px 1fr;font-weight:700;display:grid}.manage-sidebar nav button span{font-family:var(--font-mono);font-size:.65rem}.manage-sidebar nav button:hover{background:var(--color-soft);color:var(--color-ink)}.manage-sidebar nav button.active{background:var(--color-accent-soft);color:var(--color-accent-dark)}.manage-user{gap:var(--space-2xs);padding-top:var(--space-lg);border-top:var(--rule);margin-top:auto;display:grid}.manage-user>span{font-size:var(--text-sm);font-weight:750}.manage-user small{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;overflow:hidden}.manage-user a{margin-top:var(--space-sm);color:var(--color-accent);font-size:var(--text-xs);white-space:nowrap;font-weight:700;text-decoration:none}.manage-content{width:min(100%,1180px);min-width:0;padding:var(--space-2xl) clamp(var(--space-lg), 5vw, var(--space-3xl))}.manage-head{justify-content:space-between;align-items:end;gap:var(--space-xl);margin-bottom:var(--space-xl);display:flex}.manage-head p{margin:0 0 var(--space-xs);color:var(--color-accent);font-size:var(--text-xs);font-weight:800}.manage-head h1{font-size:var(--text-display-s);letter-spacing:-.04em;overflow-wrap:anywhere;margin:0;line-height:1.1}.manage-head>span{max-width:250px;color:var(--color-muted);font-size:var(--text-xs);text-align:right;line-height:1.6}.save-notice{margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-green);border-radius:var(--radius-md);background:var(--color-green-soft);color:var(--color-ink);font-size:var(--text-sm)}.record-stack{gap:var(--space-lg);display:grid}.manage-grid{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) 320px;align-items:start;display:grid}.manage-form,.saved-list{min-width:0;padding:var(--space-xl);border:var(--rule);border-radius:var(--radius-lg);background:var(--color-surface)}.manage-form{gap:var(--space-lg);display:grid}.manage-form.wide{max-width:1000px}.form-intro{align-items:flex-start;gap:var(--space-md);padding-bottom:var(--space-lg);border-bottom:var(--rule);display:flex}.form-intro>div{min-width:0}.form-intro>span{border-radius:var(--radius-sm);background:var(--color-accent-soft);width:34px;height:34px;color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);place-items:center;font-weight:800;display:grid}.form-intro h2{margin:0 0 var(--space-xs);font-size:var(--text-lg)}.form-intro p{color:var(--color-muted);font-size:var(--text-xs);overflow-wrap:anywhere;margin:0;line-height:1.6}.form-fields{gap:var(--space-md);display:grid}.form-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-fields.four{grid-template-columns:repeat(4,minmax(0,1fr))}.form-fields .span-two{grid-column:span 2}.manage-form label{gap:var(--space-xs);min-width:0;color:var(--color-muted);font-size:var(--text-xs);font-weight:700;display:grid}.manage-form input,.manage-form select,.manage-form textarea{width:100%;min-width:0;min-height:var(--control-height);padding:.72rem var(--space-sm);border:var(--rule);border-radius:var(--radius-sm);outline-offset:1px;background:var(--color-surface);color:var(--color-ink);font-size:var(--text-sm);outline:2px solid #0000}.manage-form input:focus,.manage-form select:focus,.manage-form textarea:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px var(--color-accent-soft)}.manage-form textarea{resize:vertical;line-height:1.6}.school-search{gap:var(--space-xs);display:grid}.school-search>span{color:var(--color-muted);font-size:var(--text-xs)}.search-results{border:var(--rule);border-radius:var(--radius-md);max-height:260px;display:grid;overflow:auto}.search-results button{gap:var(--space-2xs);padding:var(--space-sm);border:0;border-bottom:var(--rule);background:var(--color-surface);color:var(--color-ink);text-align:left;cursor:pointer;display:grid}.search-results button:hover{background:var(--color-accent-soft)}.search-results small,.form-hint,.form-error{color:var(--color-muted);font-size:var(--text-xs);margin:0;line-height:1.6}.form-error{color:var(--color-accent-dark)}.math-check{padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--color-math-soft);grid-template-columns:auto 1fr;align-items:center;color:var(--color-ink)!important;display:flex!important}.math-check input{width:18px;min-height:18px;accent-color:var(--color-math);margin:0}.math-check span{overflow-wrap:anywhere;min-width:0;line-height:1.5}.save-button{min-width:160px;min-height:var(--control-height);padding:.78rem var(--space-lg);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-ink);font-size:var(--text-sm);cursor:pointer;transition:transform var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out);border:0;justify-self:end;font-weight:800}.save-button:hover{background:var(--color-accent-dark);transform:translateY(-1px)}.save-button:active{transform:translateY(0)}.save-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.saved-list{gap:var(--space-sm);max-height:580px;display:grid;overflow:auto}.saved-list>div{justify-content:space-between;align-items:center;gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:var(--rule);display:flex}.saved-list h2{font-size:var(--text-md);margin:0}.saved-list>div span,.saved-list>p{color:var(--color-muted);font-size:var(--text-xs)}.saved-list article{gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:var(--rule);grid-template-columns:52px minmax(0,1fr) auto;align-items:center;display:grid}.saved-list article b{padding:var(--space-xs);border-radius:var(--radius-sm);background:var(--color-soft);color:var(--color-accent);font-size:var(--text-xs);text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.saved-list article>span{gap:var(--space-2xs);min-width:0;display:grid}.saved-list article strong,.saved-list article small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.saved-list article strong{font-size:var(--text-xs)}.saved-list article small{color:var(--color-muted);font-size:.65rem}.delete-school{padding:var(--space-xs);color:var(--color-muted);cursor:pointer;background:0 0;border:0;font-size:.65rem;font-weight:700}.delete-school:hover{color:var(--color-accent)}.school-actions{justify-items:end;gap:var(--space-2xs);display:grid}.school-actions button{padding:var(--space-2xs) var(--space-xs);color:var(--color-muted);cursor:pointer;background:0 0;border:0;font-size:.65rem;font-weight:700}.school-actions button:hover{color:var(--color-accent)}.file-drop{min-height:190px;padding:var(--space-xl);border:1px dashed var(--color-muted);border-radius:var(--radius-lg);background:var(--color-soft);text-align:center;cursor:pointer;place-content:center;justify-items:center}.file-drop input{background:0 0;border:0;width:auto;max-width:100%}.file-drop span{color:var(--color-ink);font-size:var(--text-sm)}.file-drop small{font-weight:500}@media (max-width:900px){.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}.intro{gap:var(--space-lg);grid-template-columns:1fr}.workbench{grid-template-columns:280px minmax(0,1fr)}.info-grid{grid-template-columns:1fr}.resource-card{grid-column:auto}.resource-card ul,.manage-grid{grid-template-columns:1fr}.form-fields.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.site-shell{width:min(100% - 1rem,1440px)}.topbar{min-height:68px}.wordmark small{display:none}.manage-link{padding:.55rem .75rem}.intro{padding:var(--space-xl) var(--space-sm)}.workbench{border-radius:var(--radius-lg);grid-template-columns:1fr}.school-rail{border-right:0;border-bottom:var(--rule)}.school-list{grid-template-columns:repeat(2,minmax(0,1fr))}.school-list .school-item:nth-child(n+3){display:none}.school-detail{padding:var(--space-lg)}.detail-head{align-items:flex-start}.term-switch{width:142px}.exam-summary{padding:var(--space-md)}.d-day{padding-left:var(--space-md)}footer{grid-template-columns:1fr auto}footer span{grid-area:2/1/auto/-1}.demo-notice{margin-inline:var(--space-sm);align-items:flex-start}.manage-shell{grid-template-columns:1fr}.manage-sidebar{height:auto;padding:var(--space-md);border-right:0;border-bottom:var(--rule);position:static}.manage-sidebar .wordmark{margin-bottom:var(--space-md)}.manage-sidebar nav{display:flex;overflow-x:auto}.manage-sidebar nav button{min-width:max-content}.manage-user{display:none}.manage-content{padding:var(--space-xl) var(--space-md)}.manage-head{display:grid}.manage-head>span{text-align:left}.overview-calendar-toolbar{flex-direction:column;align-items:flex-start}.calendar-legend{justify-content:flex-start}.month-calendar{min-width:700px}.learning-library>header{flex-direction:column;align-items:flex-start}.learning-library>header>p{text-align:left}.learning-library-grid{grid-template-columns:1fr}.manage-form,.saved-list{padding:var(--space-lg)}.form-fields.three,.form-fields.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:414px){.school-list{grid-template-columns:1fr}.school-list .school-item:nth-child(2){display:none}.detail-head{display:grid}.term-switch{width:100%}.exam-summary{grid-template-columns:1fr}.d-day{padding:var(--space-md) 0 0;border-left:0;border-top:1px solid var(--color-muted);text-align:left}.timeline-row{grid-template-columns:72px minmax(0,1fr)}.exam-tabs button{padding-inline:var(--space-md)}.demo-notice{display:grid}.form-fields.two,.form-fields.three,.form-fields.four{grid-template-columns:1fr}.form-fields .span-two{grid-column:auto}.manage-head h1{font-size:var(--text-xl)}.save-button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.15s!important;animation-duration:.15s!important}}
