@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2) format("woff2")}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/outfit-latin-800-normal-CQna6-G7.woff2) format("woff2")}:root{--navy: #1E2C5E;--navy-dark: #141F45;--maroon: #8A1C3C;--ink: #1A2140;--muted: #4F5875;--faint: #6A7290;--bg: #F4F5F8;--surface: #FFFFFF;--surface-2: #EEF0F5;--border: #DDE0E8;--border-strong: #B9BFCE;--line: #E3E6EE;--band-text: #C9D0E6;--band-border: #8D97BE;--warn-bg: #FFF1E0;--warn-border: #E9BE8C;--warn-ink: #5C2D00;--warn-strong: #7A3B00;--error-bg: #FDECEC;--error-border: #E3A3A3;--error-ink: #7A1212;--ok-bg: #E6F2EA;--ok-border: #A9CFB6;--ok-ink: #1E5B3A;--theory: #FFF8E1;--theory-border: #EBDDA8;--practical: #EAF2FA;--practical-border: #B9D0E6;--overall: #E7F2E4;--overall-border: #B8D6B0;--phase-idle: #1E2C5E;--phase-prepare: #8A1C3C;--phase-work: #1B6B3E;--phase-rest: #1E2C5E;--phase-changeover: #8A4B00;--phase-recovery: #0E5D6E;--phase-done: #3A4160;--stage: #141F45;--team-red: #C62828;--team-blue: #1565C0;--team-green: #2E7D32;--team-yellow: #FDD835;--team-orange: #FB8C00;--team-pink: #F48FB1;--team-purple: #6A1B9A;--team-navy: #1E2C5E;--team-maroon: #8A1C3C;--team-teal: #00796B;--team-black: #1A1A1A;--team-white: #FFFFFF;--radius: 4px;--radius-sm: 2px;--shadow-dialog: 0 16px 40px rgba(20, 31, 69, .22);--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-brand: "Outfit", "Inter", system-ui, sans-serif;--focus-ring: 0 0 0 3px #FFFFFF, 0 0 0 6px var(--navy);--page-max: 1280px;--gutter: 24px}@media(max-width:640px){:root{--gutter: 16px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:15px;line-height:1.5}h1,h2,h3{line-height:1.25;margin:0}p{margin:0}a{color:var(--navy)}a:hover{color:var(--navy-dark)}button,input,select,textarea{font:inherit;color:inherit}img,svg{display:block}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:8px;top:-60px;background:var(--navy);color:#fff;padding:10px 14px;z-index:100;border-radius:var(--radius-sm)}.skip-link:focus{top:8px;color:#fff}.container{max-width:var(--page-max);margin:0 auto;padding-inline:var(--gutter)}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.app-header{background:var(--surface);box-shadow:0 1px 0 var(--border)}.app-header__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 32px;padding-block:14px}.wordmark{font-family:var(--font-brand);font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--navy);text-decoration:none;line-height:1.1;display:inline-flex;align-items:center;min-height:44px}.wordmark__light{font-weight:400;color:var(--maroon);margin-left:.25em}.wordmark:hover{color:var(--navy)}.header-nav ol,.header-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 28px;font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.header-nav a,.header-nav button,.header-nav .nav-item{display:inline-flex;align-items:center;min-height:44px;color:var(--navy);text-decoration:none;background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.header-nav [aria-current]{color:var(--maroon);box-shadow:inset 0 -2px 0 var(--maroon)}.header-nav [aria-disabled=true]{color:var(--faint);cursor:default}.header-nav a:hover,.header-nav button:not([aria-disabled=true]):hover{color:var(--maroon)}.band{background:var(--navy);color:#fff}.band__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-block:22px}.band__kicker{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--band-text)}.band__title{margin-top:4px;font-size:28px;font-weight:600}.band__title small{font-size:20px;font-weight:300;margin-left:6px}.band__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.band__pill{padding:8px 14px;border:1px solid var(--band-border);font-size:14px;letter-spacing:.02em}.save-status{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 14px;border:1px solid var(--band-border);color:#fff;text-decoration:none;font-size:14px}.save-status:hover{color:#fff;background:#ffffff14}.save-status svg{flex:none}.save-status[data-state=session]{border-style:dashed}.save-status[data-state=error],.save-status[data-state=conflict]{background:#fff;color:var(--error-ink);border-color:#fff}.page{padding-block:20px 56px;display:flex;flex-direction:column;gap:16px}.page>*{min-width:0;max-width:100%}.split{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.split__main{flex:999 1 600px;min-width:0;display:flex;flex-direction:column;gap:16px}.split__side{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;display:flex;flex-direction:column;gap:14px}@media(max-width:640px){.card{padding:16px}}.card__head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;justify-content:space-between}.card__title{font-size:20px;font-weight:500;color:var(--navy)}.card__subtitle{font-size:16px;font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.row--between{justify-content:space-between}.row--end{justify-content:flex-end}.stack{display:flex;flex-direction:column;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--radius-sm);font:500 14px var(--font-ui);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:1px solid transparent;white-space:nowrap}.btn svg{flex:none}.btn--primary{background:var(--navy);color:#fff;border-color:var(--navy)}.btn--primary:hover{background:var(--navy-dark);color:#fff}.btn--ghost{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn--ghost:hover{background:var(--surface-2);color:var(--ink)}.btn--danger{background:var(--error-ink);color:#fff;border-color:var(--error-ink)}.btn--danger:hover{background:#5a0d0d;color:#fff}.btn--warn{background:#9a4a00;color:#fff;border-color:#9a4a00}.btn--small{min-height:36px;padding:0 12px;font-size:13px}.btn:disabled,.btn[aria-disabled=true]{background:var(--border-strong);border-color:var(--border-strong);color:#fff;cursor:not-allowed}.btn--ghost:disabled{background:var(--surface-2);color:var(--faint);border-color:var(--border)}.btn--light{background:#fff;color:var(--navy);border-color:#fff}.btn--light:hover{background:var(--surface-2);color:var(--navy-dark)}.btn--on-dark{background:transparent;color:#fff;border-color:#ffffffbf}.btn--on-dark:hover{background:#ffffff24;color:#fff}.btn--light:disabled,.btn--on-dark:disabled{background:transparent;color:#ffffff8c;border-color:#ffffff59}.link-btn{background:none;border:0;padding:0;color:var(--navy);text-decoration:underline;cursor:pointer;font:inherit}.icon-btn{width:44px;height:44px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none}.icon-btn:hover{background:var(--surface-2);color:var(--navy)}.icon-btn[aria-pressed=true]{color:var(--maroon);border-color:var(--maroon)}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}.input,.select,.textarea{min-height:44px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);padding:0 12px;font-size:15px;font-weight:400;width:100%}.textarea{padding:10px 12px;min-height:140px;resize:vertical;line-height:1.5}.textarea--mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--error-ink);background:var(--error-bg)}.field-hint{color:var(--muted);font-weight:400;font-size:13px;line-height:1.4}.field-error{color:var(--error-ink);font-weight:500;font-size:13px}.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:15px}.check input{width:22px;height:22px;margin:1px 0 0;flex:none;accent-color:var(--navy)}.check--box{padding:14px 16px;border:2px solid #C6CBD8;border-radius:var(--radius);background:var(--bg)}.check--box:has(input:checked){border-color:var(--navy)}.check--box:has(input:disabled){cursor:not-allowed}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.choice{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;background:var(--surface)}.choice input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--navy)}.choice:has(input:checked){border:2px solid var(--navy);padding:12px 14px;background:var(--bg)}.choice__title{display:block;font-weight:600}.choice__text{display:block;font-size:13px;color:var(--muted);line-height:1.45;margin-top:2px}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;background:#fafbfc}.dropzone--over{border-color:var(--navy);background:var(--surface-2)}.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.add-student{display:flex;gap:8px}.add-student .input{flex:1}.roster-editor__table{max-height:420px;overflow-y:auto}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius);border:1px solid;font-size:14px;line-height:1.45}.alert svg{flex:none;margin-top:2px}.alert--warn{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-ink)}.alert--error{background:var(--error-bg);border-color:var(--error-border);color:var(--error-ink)}.alert--ok{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-ink)}.alert--info{background:var(--surface-2);border-color:#c6cbd8;color:var(--ink)}.alert__body{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid;border-radius:var(--radius-sm);white-space:nowrap}.badge--draft{background:var(--warn-bg);color:var(--warn-strong);border-color:var(--warn-border)}.badge--final{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-border)}.badge--planned{background:var(--surface-2);color:var(--muted);border-color:#c6cbd8}.badge--override{background:var(--warn-bg);color:var(--warn-strong);border-color:var(--warn-border);text-transform:none;letter-spacing:0;font-weight:600}.table-wrap{overflow-x:auto;position:relative}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:2px solid #C6CBD8}.table td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody th{text-align:left;font-size:14px;font-weight:500;color:var(--ink);padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.status-ok{color:var(--navy);font-weight:500}.status-warn{color:var(--warn-strong);font-weight:500}.status-removed{color:var(--faint);text-decoration:line-through}dialog.dialog{border:1px solid #C6CBD8;border-radius:var(--radius);padding:0;width:min(520px,calc(100vw - 32px));box-shadow:var(--shadow-dialog);color:var(--ink);background:var(--surface)}dialog.dialog::backdrop{background:#141f4573}.dialog__form{padding:22px;display:flex;flex-direction:column;gap:14px}.dialog__title{font-size:18px;font-weight:600;color:var(--navy)}.dialog__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:4px}.toast-region{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;gap:8px;width:min(480px,calc(100vw - 32px))}.toast{background:var(--ink);color:#fff;padding:12px 16px;border-radius:var(--radius);font-size:14px;box-shadow:var(--shadow-dialog)}.toast--error{background:var(--error-ink)}.app-footer{border-top:1px solid var(--border);padding-block:20px 32px;font-size:13px;color:var(--muted)}
