.ui-modal-backdrop{z-index:3000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a73;justify-content:center;align-items:flex-start;padding:18vh 20px 20px;animation:.16s both ui-backdrop-in;display:flex;position:fixed;inset:0}.ui-modal-panel{background:var(--card,#fff);border-radius:var(--radius-lg,12px);outline:none;flex-direction:column;width:100%;max-height:calc(82vh - 40px);animation:.22s cubic-bezier(.16,1,.3,1) both ui-panel-in;display:flex;overflow:hidden;box-shadow:0 24px 70px #02061759}.ui-modal-panel.is-sm{max-width:420px}.ui-modal-panel.is-md{max-width:560px}.ui-modal-panel.is-lg{max-width:780px}.ui-modal-panel.is-xl{max-width:1020px}@media (width<=640px){.ui-modal-backdrop{padding:10px}.ui-modal-panel{max-height:calc(100dvh - 20px)}}@keyframes ui-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes ui-panel-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.ui-modal-backdrop,.ui-modal-panel{animation:none}}.ui-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:16px 20px;display:flex}.ui-modal-header h2{flex:1;margin:0;font-size:16px}.ui-modal-icon{background:var(--primary-light);width:30px;height:30px;color:var(--primary);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.ui-modal-icon.is-danger{background:var(--danger-bg);color:var(--danger-ink)}.ui-modal-close{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm,6px);background:0 0;border:none;padding:2px 6px;font-size:20px;line-height:1;position:relative}.ui-modal-close:hover{color:var(--text);background:var(--bg)}.ui-modal-close:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ui-modal-body{padding:18px 20px;overflow-y:auto}.ui-field{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.ui-field-label{color:var(--text-muted);font-size:12px;font-weight:600}.ui-field-row{gap:12px;display:flex}@media (width<=640px){.ui-field-row{flex-wrap:wrap}.ui-field-row>.ui-field{flex-basis:100%}}.ui-modal-note{color:var(--text-muted);margin:0;font-size:12px}.ui-modal-footer{border-top:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;flex-shrink:0;justify-content:safe flex-end;gap:10px;padding:14px 20px;display:flex}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#dbeafe;--table-fs:12.5px;--table-pad:6px 10px;--table-head-bg:#f8fafc;--table-hover:#dbeafe;--bulk-hover:var(--table-hover);--bg:#f1f5f9;--card:#fcfdff;--surface:var(--card);--surface-2:#f8fafc;--bg-subtle:var(--surface-2);--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--muted:#556577;--text-muted:#556577;--light:#94a3b8;--success:#10b981;--success-bg:#d1fae5;--success-ink:#065f46;--warning:#f59e0b;--warning-bg:#fef3c7;--warning-ink:#92400e;--danger:#ef4444;--danger-bg:#fee2e2;--danger-ink:#b91c1c;--info:#3b82f6;--info-bg:#dbeafe;--info-ink:#1e40af;--due-soon:#ea580c;--due-soon-bg:#ffedd5;--due-soon-ink:#9a3412;--due-late:var(--danger);--due-late-bg:var(--danger-bg);--due-late-ink:var(--danger-ink);--due-done:#64748b;--due-done-bg:#e6ebf2;--due-done-ink:#475569;--clash-homeroom:var(--danger);--clash-teacher:#b45309;--clash-room:#a16207;--clash-hours:#0369a1;--clash-week:#4338ca;--purple:#7c3aed;--purple-bg:#ede9fe;--purple-ink:#5b21b6;--cyan:#06b6d4;--cyan-bg:#cffafe;--cyan-ink:#155e75;--teal:#0d9488;--teal-bg:#ccfbf1;--teal-ink:#115e59;--yellow:#eab308;--yellow-bg:#fef9c3;--yellow-ink:#854d0e;--orange:#f97316;--orange-bg:#ffedd5;--orange-ink:#9a3412;--hatch-ink:#78808c29;--kind-lunch:var(--orange);--kind-lunch-bg:var(--orange-bg);--kind-lunch-ink:var(--orange-ink);--kind-lunch-hatch:var(--hatch-ink);--kind-planning:var(--yellow);--kind-planning-bg:var(--yellow-bg);--kind-planning-ink:var(--yellow-ink);--kind-planning-hatch:var(--hatch-ink);--kind-homeroom:var(--teal);--kind-homeroom-bg:var(--teal-bg);--kind-homeroom-ink:var(--teal-ink);--kind-homeroom-hatch:transparent;--kind-duty:var(--border-strong);--kind-duty-bg:var(--chip-on-bg);--kind-duty-ink:var(--chip-on-ink);--kind-duty-hatch:var(--hatch-ink);--act-teacher:var(--primary);--act-teacher-bg:#eff6ff;--act-teacher-ink:#1e40af;--act-student:var(--teal);--act-student-bg:#f0fdfa;--act-student-ink:var(--teal-ink);--act-class:var(--purple);--act-class-bg:#f5f3ff;--act-class-ink:var(--purple-ink);--sidebar-bg:#0f172a;--sidebar-border:#ffffff12;--sidebar-text:#94a3b8;--sidebar-hover:#ffffff0d;--sidebar-active:#2563eb38;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--fs-xs:.6875rem;--fs-sm:.75rem;--fs-md:.8125rem;--fs-base:.875rem;--fs-lg:.9375rem;--fs-h3:clamp(.9375rem, .9rem + .2vw, 1.0625rem);--fs-h2:clamp(1rem, .92rem + .35vw, 1.1875rem);--fs-h1:clamp(1.125rem, 1rem + .6vw, 1.375rem);--fs-stat:clamp(1.5rem, 1.3rem + .9vw, 1.75rem);--lh:1.5;--radius-sm:.375rem;--radius:.5rem;--radius-md:.625rem;--radius-lg:.75rem;--radius-full:999px;--shadow-sm:0 1px 2px #0f172a0d;--shadow:0 1px 3px #0f172a1a, 0 1px 2px #0f172a0f;--shadow-md:0 4px 6px #0f172a12, 0 2px 4px #0f172a0d;--shadow-lg:0 12px 28px #0f172a1f;--skeleton-base:#e7ecf2;--sidebar-w:240px;--header-h:60px;--actband-h:57px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:var(--fs-base);line-height:var(--lh);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}#root{height:100%}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}h1,h2,h3{margin:0}.page-header{background:var(--card);border-bottom:1px solid var(--border);padding:var(--space-4) var(--space-6);min-height:var(--header-h);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.page-header-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.page-header-left h1{font-size:var(--fs-h2);letter-spacing:-.01em;font-weight:600}.page-header-left p{font-size:var(--fs-sm);color:var(--muted);text-wrap:pretty;max-width:75ch;margin-top:.0625rem}.page-content{padding:var(--space-6);flex:1;animation:.28s cubic-bezier(.16,1,.3,1) both page-content-in}@keyframes page-content-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.page-content{animation:none}}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg)}.card-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.card-header h2{font-size:var(--fs-h3);font-weight:600}.card-body{padding:var(--space-5)}.stat-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(11.875rem,1fr));display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-card-icon{margin-bottom:var(--space-3);font-size:1.375rem}.stat-card-icon.is-box{border-radius:var(--radius);background:var(--icon-bg,var(--primary-light));justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;display:inline-flex}.stat-card-label{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.stat-card-value{font-size:var(--fs-stat);margin-top:var(--space-1);letter-spacing:-.02em;font-weight:700;line-height:1.15}.stat-card-sub{font-size:var(--fs-sm);color:var(--muted);margin-top:var(--space-1)}.btn{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);border-radius:var(--radius);font-size:var(--fs-md);white-space:nowrap;border:1px solid #0000;font-weight:500;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--card);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{color:var(--muted);padding:var(--space-2) var(--space-3);background:0 0;border:none}.btn-ghost:hover{color:var(--primary)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--fs-sm)}:root{--nav-active:var(--primary-light);--nav-active-ink:var(--primary-dark);--chip-on-bg:#e2e8f0;--chip-on-border:#cbd5e1;--chip-on-ink:#1e293b;--do-border:#cbd5e1;--do-ink:#334155;--do-hover-bg:#f1f5f9;--control-accent:#334155;--control-accent-hover:#1e293b;--control-accent-press:var(--text);--control-accent-ink:#f8fafc;--control-accent-ink-soft:#cbd5e1;--control-accent-shadow:0 2px 6px #0f172a2e, 0 1px 2px #0f172a1a}.btn-create{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.btn-create:hover{background:var(--primary-dark)}.btn-act{color:var(--do-ink);border-color:var(--do-border);background:0 0;font-weight:500}.btn-act:hover{background:var(--do-hover-bg);color:var(--text)}.btn-act[disabled]{opacity:.55}.btn-act-group{display:inline-flex}.btn-act-group>.btn-act{border-radius:0;margin-left:-1px}.btn-act-group>.btn-act:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);margin-left:0}.btn-act-group>.btn-act:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.btn-act-group>.btn-act:hover{z-index:1;position:relative}.btn-choose{background:var(--control-accent);color:var(--control-accent-ink);border-color:var(--control-accent);box-shadow:var(--control-accent-shadow);font-weight:600}.btn.btn-choose:hover:not(:disabled){background:var(--control-accent-hover);border-color:var(--control-accent-hover);box-shadow:var(--control-accent-shadow)}.btn.btn-choose:active:not(:disabled),.btn.btn-choose[aria-expanded=true]:not(:disabled){background:var(--control-accent-press);border-color:var(--control-accent-press)}.btn-choose-caret{line-height:1;transition:transform .12s;display:inline-block}.btn-choose[aria-expanded=true] .btn-choose-caret{transform:rotate(180deg)}.btn-choose:focus-visible{outline:2px solid var(--control-accent-ink);outline-offset:-4px}@media (prefers-reduced-motion:reduce){.btn-choose-caret{transition:none}}.btn-icon{border:1px solid var(--border);background:var(--card);border-radius:var(--radius);width:2.5rem;height:2.5rem;color:var(--text);justify-content:center;padding:0;font-size:1.25rem;line-height:1;position:relative}.btn-icon:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.btn-icon:hover:not(:disabled){background:var(--bg);border-color:var(--primary);color:var(--primary)}.form-group{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.form-label{font-size:var(--fs-sm);font-weight:500}.form-hint{font-size:var(--fs-xs);color:var(--muted);margin-top:.125rem}.form-input,.form-select,.form-textarea{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-md);color:var(--text);background:var(--card);outline:none;width:100%;transition:border-color .14s,box-shadow .14s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-grid-2{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-grid-3{gap:var(--space-4);grid-template-columns:1fr 1fr 1fr;display:grid}.form-grid-2>*,.form-grid-3>*,.info-grid>*{min-width:0}.form-textarea{resize:vertical;min-height:5.625rem}.table-wrapper{max-width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--table-fs)}.data-table th{text-align:left;padding:var(--table-pad);font-size:var(--table-fs);color:var(--text-muted);background:var(--table-head-bg);border-bottom:2px solid var(--border);border-right:1px solid var(--border);font-weight:600}.data-table td{padding:var(--table-pad);font-size:var(--table-fs);color:var(--text);border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle}.data-table th:last-child,.data-table td:last-child{border-right:none}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .12s}.data-table tbody tr:hover td{background:var(--table-hover)}.data-table .actions{gap:var(--space-2);display:flex}.warn-note{background:var(--warning-bg);border:1px solid var(--warning);border-radius:var(--radius-sm,8px);color:var(--warning-ink);padding:10px 14px}.hr-unplaced-note{margin:var(--space-3) 0 0;font-size:var(--fs-sm)}.ok-note{background:var(--success-bg);border:1px solid var(--success);border-radius:var(--radius-sm,8px);color:var(--success-ink);padding:10px 14px}.school-save-status{align-items:center;gap:4px;font-size:12px;font-weight:500;display:inline-flex}.school-save-status.saving{color:var(--text-muted,#64748b)}.school-save-status.saved{color:var(--success-ink)}.school-save-status.error{color:var(--danger-ink)}.toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.table-toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.table-toolbar-right{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;margin-left:auto;display:flex}.search-wrap{position:relative}.search-wrap svg{left:var(--space-2);color:var(--light);pointer-events:none;width:.875rem;height:.875rem;position:absolute;top:50%;transform:translateY(-50%)}.search-input{padding:var(--space-2) var(--space-3) var(--space-2) 1.875rem;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-md);background:var(--card);outline:none;width:13.125rem;transition:border-color .14s,box-shadow .14s}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.badge{padding:.125rem var(--space-2);border-radius:var(--radius-full);font-size:var(--fs-xs);align-items:center;font-weight:500;display:inline-flex}.badge-green{background:var(--success-bg);color:var(--success-ink)}.badge-yellow{background:var(--warning-bg);color:var(--warning-ink)}.badge-lemon{background:var(--yellow-bg);color:var(--yellow-ink)}.badge-orange{background:var(--orange-bg);color:var(--orange-ink)}.badge-red{background:var(--danger-bg);color:#991b1b}.badge-blue{background:var(--info-bg);color:var(--info-ink)}.badge-purple{background:var(--purple-bg);color:var(--purple-ink)}.badge-gray{background:var(--bg);color:#475569}.badge-teal{background:var(--teal-bg);color:#134e4a}.avatar{background:var(--primary-light);width:1.875rem;height:1.875rem;color:var(--primary);font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.avatar-sm{width:1.5rem;height:1.5rem;font-size:.625rem}.dash-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));display:grid}.dash-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;color:inherit;text-decoration:none;transition:box-shadow .14s,transform .14s,border-color .14s;display:block}.dash-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-1px)}button.dash-card{text-align:left;width:100%;font:inherit}.dash-card-icon{margin-bottom:var(--space-3);font-size:1.5rem}.dash-card-title{font-size:var(--fs-h3);margin-bottom:var(--space-1);font-weight:600}.dash-card-desc{font-size:var(--fs-sm);color:var(--muted);line-height:1.45}.cal-grid{background:var(--border);border-radius:var(--radius);grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.cal-dow{background:var(--surface-2);padding:var(--space-2) var(--space-1);text-align:center;font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.cal-cell{background:var(--card);padding:var(--space-2);min-height:4.875rem;position:relative}.cal-day{font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--space-1);font-weight:500}.cal-cell.today .cal-day{color:var(--primary);font-weight:700}.cal-cell.today{background:#eff6ff}.cal-event{font-size:var(--fs-xs);padding:.125rem var(--space-1);border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary-dark);white-space:nowrap;text-overflow:ellipsis;margin-bottom:.125rem;overflow:hidden}.cal-event.danger{background:var(--danger-bg);color:#991b1b}.cal-event.success{background:var(--success-bg);color:#065f46}.cal-cell.other-month .cal-day{color:#cbd5e1}.cal-cell.other-month{background:#fafbfc}.period-row{border-bottom:1px solid var(--border);align-items:stretch;display:flex}.period-row:last-child{border-bottom:none}.period-time{width:5.625rem;padding:var(--space-4) var(--space-3);font-size:var(--fs-sm);color:var(--muted);background:var(--surface-2);border-right:1px solid var(--border);flex-shrink:0;align-items:center;font-weight:600;display:flex}.period-class{padding:var(--space-3) var(--space-4);flex:1}.period-class-name{font-size:var(--fs-base);margin-bottom:.1875rem;font-weight:600}.period-class-meta{font-size:var(--fs-sm);color:var(--muted);gap:var(--space-4);display:flex}.lp-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-3)}.lp-card-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:flex-start;display:flex}.lp-card-title{font-size:var(--fs-h3);font-weight:600}.lp-review-foot{gap:var(--space-2);flex-direction:column;display:flex}.lp-review-note{gap:var(--space-1);flex-direction:column;display:flex}.lp-review-note-label{font-size:var(--fs-sm);color:var(--text-muted)}.lp-review-note textarea{resize:vertical;width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);padding:var(--space-2);border-radius:8px}.lp-review-note textarea:focus{border-color:var(--primary);outline:none}.lp-review-acts{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.lp-review-state{font-size:var(--fs-sm);color:var(--text-muted)}.lp-review-buttons{gap:var(--space-2);display:flex}.lp-card-date{font-size:var(--fs-sm);color:var(--muted);margin-top:.1875rem}.lp-card-body{font-size:var(--fs-md);color:var(--muted);line-height:1.55}.lp-window-nav{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.lp-coverage{gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3);font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;align-items:center;display:flex}.lp-coverage-ok{color:#065f46}.lp-coverage-gap{color:#92400e;font-weight:600}.lp-group-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.lp-group-teacher{color:var(--muted);font-weight:500}.lp-card-editnote{font-size:var(--fs-xs);padding-top:var(--space-2);border-top:1px solid var(--border)}.incident-row{align-items:flex-start;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--border);display:flex}.incident-row:last-child{border-bottom:none}.incident-icon{flex-shrink:0;padding-top:1px;font-size:1.125rem}.incident-body{flex:1}.incident-title{font-size:var(--fs-md);margin-bottom:.1875rem;font-weight:600}.incident-meta{font-size:var(--fs-sm);color:var(--muted)}.att-student-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);display:flex}.att-student-row:last-child{border-bottom:none}.att-student-row.is-outside{opacity:.55}.att-outside-why{color:var(--muted);font-size:11.5px;font-weight:400;display:block}.att-not-on-register{color:var(--danger-ink);font-size:11.5px;font-weight:400;display:block}.att-name{font-size:var(--fs-md);flex:1;font-weight:500}.att-btns{gap:var(--space-2);display:flex}.att-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--fs-sm);border:1px solid var(--border);background:var(--card);font-weight:500;transition:all .12s}.att-btn.present.active{background:var(--success-bg);border-color:var(--success);color:#065f46}.att-btn.absent.active{background:var(--danger-bg);border-color:var(--danger);color:#991b1b}.att-btn.late.active{background:var(--warning-bg);border-color:var(--warning);color:var(--warning-ink)}.info-grid{gap:var(--space-3) var(--space-6);grid-template-columns:1fr 1fr;display:grid}.info-item-label{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.125rem;font-weight:600}.info-item-value{font-size:var(--fs-base);color:var(--text)}.login-page{min-height:100vh;padding:var(--space-6);background:linear-gradient(135deg,#0f172a 0%,#1e3659 60%,#0f172a 100%);justify-content:center;align-items:center;display:flex}.login-card{background:var(--card);border-radius:var(--radius-lg);padding:var(--space-8);width:100%;max-width:25rem;box-shadow:0 24px 64px #0f172a4d}.login-brand{align-items:center;gap:var(--space-3);margin-bottom:var(--space-8);color:inherit;text-decoration:none;display:flex}.login-brand:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:var(--radius)}.login-brand-logo{object-fit:contain;background:#fff;border-radius:50%;flex:none;width:2.5rem;height:2.5rem;padding:1px}.login-brand-icon{background:var(--primary);border-radius:var(--radius);justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;display:flex}.login-brand-name{font-size:var(--fs-h1);white-space:nowrap;font-weight:700}.login-brand-sub{font-size:var(--fs-xs);color:var(--muted)}.login-title{font-size:var(--fs-h1);margin-bottom:var(--space-1);font-weight:700}.login-sub{font-size:var(--fs-md);color:var(--muted);margin-bottom:var(--space-6)}.login-error{background:var(--danger-bg);color:#991b1b;padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:var(--fs-md);margin-bottom:var(--space-4)}.ws-load-error{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.sched-unplaced{margin-top:var(--space-3);flex-direction:column;gap:6px;font-size:13px;display:flex}.sched-unplaced-list{flex-direction:column;gap:2px;margin:0;padding-left:18px;display:flex}.sched-unplaced-list li{line-height:1.45}.sched-unplaced-why{opacity:.85;font-size:12px}.sched-unplaced-why:before{content:" — "}.sched-unplaced-do{opacity:.9}.sched-print-warn{border-left:2.5px solid var(--text);color:var(--text);break-after:avoid;page-break-after:avoid;margin:0 0 8px;padding:5px 0 5px 9px;font-size:11px;line-height:1.45}.login-btn{width:100%;padding:var(--space-3);margin-top:var(--space-1);font-size:var(--fs-base);background:var(--primary);color:#fff;border-radius:var(--radius);border:none;font-weight:600;transition:background .14s}.login-btn:hover{background:var(--primary-dark)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-alt{margin-top:var(--space-5);text-align:center;font-size:var(--fs-sm);color:var(--muted)}.login-alt a{color:var(--primary);font-weight:600;text-decoration:none}.login-alt a:hover{text-decoration:underline}.google-signin{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border);justify-content:center;display:flex;position:relative}.google-signin:before{content:"or";background:var(--surface);padding:0 var(--space-2);font-size:var(--fs-sm);color:var(--muted);position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.google-signin-holder.is-disabled{pointer-events:none;opacity:.6}.login-google-lead{margin:var(--space-2) 0}.login-google-lead .google-signin{border-top:none;align-items:center;min-height:44px;margin-top:0;padding-top:0}.login-google-lead .google-signin:before{content:none}.login-or{align-items:center;gap:var(--space-2);margin:var(--space-5) 0 var(--space-4);font-size:var(--fs-sm);color:var(--muted);display:flex}.login-or:before,.login-or:after{content:"";border-top:1px solid var(--border);flex:1}.login-schools{gap:var(--space-2);flex-direction:column;display:flex}.login-school-option{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:border-color .14s,background .14s;display:flex}.login-school-option:hover{border-color:var(--primary);background:var(--surface-2)}.login-school-option:disabled{opacity:.6;cursor:not-allowed}.login-school-name{color:var(--text);font-weight:600}.login-school-role{font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.loading-screen{justify-content:center;align-items:center;gap:var(--space-1);text-align:center;height:100vh;font-size:var(--fs-base);color:var(--muted);flex-direction:column;display:flex}.loading-screen strong{font-size:var(--fs-h3);color:var(--text);font-weight:600}.empty-state{text-align:center;padding:var(--space-10) var(--space-6);color:var(--muted)}.empty-state-icon{margin-bottom:var(--space-3);opacity:.85;font-size:2.25rem}.empty-state h3{font-size:var(--fs-h3);color:var(--text);margin-bottom:var(--space-1);font-weight:600}.empty-state p{font-size:var(--fs-md);max-width:36ch;margin:0 auto;line-height:1.5}.empty-state-actions{margin-top:var(--space-5);gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.section-gap{margin-bottom:var(--space-5)}.eyebrow{font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-3);font-weight:600}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.flex-1{flex:1}.min-w-0{min-width:0}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.text-muted{color:var(--muted);font-size:var(--fs-sm)}.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}.text-nowrap{white-space:nowrap}.text-danger{color:var(--danger-ink)}.font-medium{font-weight:500}.font-semibold{font-weight:600}:root{--btg-gutter:78px;--st-present-bg:#d1fae5;--st-present-fg:#065f46;--st-present-border:#6ee7b7;--st-absent-bg:#fee2e2;--st-absent-fg:#b91c1c;--st-absent-border:#fca5a5;--st-tardy-bg:#fef3c7;--st-tardy-fg:#b45309;--st-tardy-border:#fcd34d;--st-excused-bg:#dbeafe;--st-excused-fg:#1d4ed8;--st-excused-border:#93c5fd;--st-suspended-bg:#ede9fe;--st-suspended-fg:#5b21b6;--st-suspended-border:#c4b5fd;--st-graded-bg:#dcfce7;--st-graded-fg:#15803d;--st-late-bg:#ffedd5;--st-late-fg:#c2410c;--st-missing-bg:#fee2e2;--st-missing-fg:#b91c1c;--st-excused2-bg:#ede9fe;--st-excused2-fg:#6d28d9;--st-pending-bg:#f1f5f9;--st-pending-fg:#64748b}.status-pill{padding:.125rem var(--space-3);border-radius:var(--radius-full);font-size:var(--fs-sm);white-space:nowrap;align-items:center;gap:.3125rem;font-weight:700;line-height:1.5;transition:transform .12s,filter .12s;display:inline-flex}.status-pill .dot{background:currentColor;border-radius:50%;width:.4375rem;height:.4375rem}button.status-pill{cursor:pointer;border:none}button.status-pill:hover{filter:brightness(.96)}button.status-pill:active{transform:scale(.94)}.status-pill.present{background:var(--st-present-bg);color:var(--st-present-fg)}.status-pill.absent{background:var(--st-absent-bg);color:var(--st-absent-fg)}.status-pill.tardy{background:var(--st-tardy-bg);color:var(--st-tardy-fg)}.status-pill.excused{background:var(--st-excused-bg);color:var(--st-excused-fg)}.status-pill.graded{background:var(--st-graded-bg);color:var(--st-graded-fg)}.status-pill.late{background:var(--st-late-bg);color:var(--st-late-fg)}.status-pill.missing{background:var(--st-missing-bg);color:var(--st-missing-fg)}.status-pill.excused2{background:var(--st-excused2-bg);color:var(--st-excused2-fg)}.status-pill.pending,.status-pill.none{background:var(--st-pending-bg);color:var(--st-pending-fg)}.btn{transition:background .14s,border-color .14s,box-shadow .14s,transform 90ms}.btn:hover:not(:disabled){box-shadow:0 2px 8px #0206171a}.btn:active:not(:disabled){box-shadow:none;transform:translateY(1px)scale(.985)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary:active:not(:disabled){background:var(--primary-dark)}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}.classcard,.dash-card,.teacher-class-row{transition:transform .16s,box-shadow .16s,border-color .16s}.classcard:hover,.dash-card:hover,.teacher-class-row:hover{transform:translateY(-2px)}.classcard:active,.dash-card:active,.teacher-class-row:active{transform:translateY(0)scale(.99)}tr.is-clickable{cursor:pointer}tr.is-clickable:active>td{background:color-mix(in srgb, var(--primary) 14%, var(--card));transition-duration:60ms}@media (prefers-reduced-motion:reduce){tr.is-clickable:active>td,.btn,.status-pill,.classcard,.dash-card,.teacher-class-row{transition:none}.btn:active,.classcard:hover,.dash-card:hover,.teacher-class-row:hover,.classcard:active,.dash-card:active,.teacher-class-row:active{transform:none}}.anim-switch{animation:.14s cubic-bezier(.2,.8,.3,1) backwards anim-rise-in}.anim-load-fast{animation:.14s ease-out backwards anim-rise-in}.anim-load-slow{animation:.42s cubic-bezier(.16,1,.3,1) backwards anim-rise-in-far}@keyframes anim-rise-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes anim-rise-in-far{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.anim-exit{pointer-events:none;animation:.14s cubic-bezier(.4,0,1,1) both anim-fade-out}@keyframes anim-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.anim-shake{animation:.35s anim-shake-x}@keyframes anim-shake-x{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.anim-switch,.anim-load-fast,.anim-load-slow,.anim-shake,.anim-exit{animation:none}}@media print{*,:before,:after{transition:none!important;animation:none!important}.anim-switch,.anim-load-fast,.anim-load-slow,.anim-shake,.anim-exit{opacity:1!important;transform:none!important}}@media (width<=640px){:is(.form-input,.form-select,.form-textarea):not(.bulk-input,.table-input,.sec-cell-input,.emisrep-input){padding:.625rem var(--space-3)}:is(.form-input,.form-select,.form-textarea){font-size:1rem}.btn{min-height:2.75rem;padding:.625rem var(--space-4)}.btn-sm{min-height:2.375rem;padding:var(--space-2) var(--space-3)}button.status-pill{min-height:2.125rem}.page-content{padding:var(--space-4)}.page-header{padding:var(--space-3) var(--space-4);gap:var(--space-2) var(--space-3);flex-wrap:wrap}.page-header-left{flex:100%;min-width:0}.card-header{row-gap:var(--space-2);flex-wrap:wrap}.form-grid-2,.form-grid-3{grid-template-columns:1fr}.seg-tabs{max-width:100%}.seg-tab{padding:var(--space-2) var(--space-3);font-size:var(--fs-sm);min-height:2.75rem}.seg-count{margin-left:4px;padding:1px 5px}.search-input{min-height:2.75rem;font-size:1rem}}.seg-tabs{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;gap:.125rem;padding:.1875rem;display:inline-flex}.seg-tab{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-md);color:var(--text-muted);background:0 0;border:none;font-weight:600;transition:background .14s,color .14s,box-shadow .14s}.seg-tab:hover:not(.is-active){background:var(--surface-2,#e2e8f0);color:var(--text)}.seg-tab.is-active{background:var(--nav-active);color:var(--nav-active-ink);box-shadow:var(--shadow-sm)}.seg-count{font-size:var(--fs-xs);background:var(--surface-2,#e2e8f0);color:var(--text-muted);border-radius:999px;margin-left:6px;padding:1px 7px;font-weight:700}.seg-tab.is-active .seg-count{color:var(--nav-active-ink);background:#1d4ed824}:root{--term-active:var(--nav-active);--term-active-ink:var(--nav-active-ink)}.seg-tabs--term .seg-tab.is-active{background:var(--term-active);color:var(--term-active-ink)}.seg-tabs--term .seg-tab.is-active .seg-count{color:var(--term-active-ink);background:#1d4ed824}.people-table-wrap{overscroll-behavior-x:contain;touch-action:pan-x pan-y;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);overflow-x:auto}.people-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--table-fs)}@media (width<=640px){.people-table:has(thead th:nth-child(5)):has(tbody tr:nth-child(2)){min-width:720px}.people-table:has(thead th:nth-child(8)):has(tbody tr:nth-child(2)){min-width:1120px}.people-table:has(thead th:nth-child(11)):has(tbody tr:nth-child(2)){min-width:1540px}.people-table:has(thead th:nth-child(5)):has(tbody tr:nth-child(2)) td:first-child{white-space:nowrap}}.people-table th,.people-table td{padding:var(--table-pad);border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;vertical-align:middle}.people-table th:last-child,.people-table td:last-child{border-right:none}.people-table thead th{z-index:3;background:var(--table-head-bg);color:var(--text-muted);white-space:nowrap;border-bottom:2px solid var(--border);font-weight:600;position:sticky;top:0}.people-group-row td{background:color-mix(in srgb, var(--primary) 8%, var(--bg-subtle,#f1f5f9));color:var(--primary-dark);letter-spacing:.03em;text-transform:uppercase;border-top:2px solid var(--border);border-bottom:2px solid var(--border);border-right:none;font-size:12px;font-weight:700}.people-group-count{color:var(--text-muted);text-transform:none;font-weight:500}.people-group-role-name{text-transform:none}.people-row{cursor:pointer}.people-row:hover td{background:var(--table-hover)}.people-avatar{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;margin-right:8px;font-size:10.5px;font-weight:700;display:inline-flex}.people-row-name{color:var(--primary-dark);font-weight:600}.people-row:hover .people-row-name,tr.is-clickable:hover .people-row-name{text-decoration:underline}.people-actions{white-space:nowrap;justify-content:flex-end;gap:6px;display:flex}:root{--name-col-max-pinned:8.5rem}:is(.people-table,.rc-sec-table):has(thead th:nth-child(4)) :is(td,th):has(>.people-row-name){white-space:nowrap;width:1%}:is(.people-table,.rc-sec-table):has(thead th:nth-child(4)) :is(td,th).people-row-name{white-space:nowrap;width:1%}:is(.people-table,.rc-sec-table):has(thead th:nth-child(4)) :is(td,th):has(>.people-row-name){z-index:2;background:var(--card);position:sticky;left:0}:is(.people-table,.rc-sec-table):has(thead th:nth-child(4)) :is(td,th).people-row-name{z-index:2;background:var(--card);position:sticky;left:0}:is(.people-table,.rc-sec-table):has(thead th:nth-child(4)) thead :is(td,th):has(>.people-row-name){z-index:4;background:var(--table-head-bg)}:is(.people-table,.rc-sec-table):has(thead th:nth-child(4)) thead :is(td,th).people-row-name{z-index:4;background:var(--table-head-bg)}:is(.people-table,.rc-sec-table):has(thead th:nth-child(4)) tr.people-row:hover :is(td,th):has(>.people-row-name){background:var(--table-hover)}:is(.people-table,.rc-sec-table):has(thead th:nth-child(4)) tr.people-row:hover :is(td,th).people-row-name{background:var(--table-hover)}.table-input{box-sizing:border-box;width:100%;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 6px}.table-input:hover{border-color:var(--border)}.table-input:focus{border-color:var(--primary);background:var(--card);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 18%, transparent);outline:none}select.table-input{cursor:pointer}@media (width<=640px){.table-input{font-size:1rem}}.table-input-w{width:var(--table-input-w)}@media (width<=640px){.table-input-w{width:calc(var(--table-input-w) * 1.28)}:root{--btg-gutter:62px}}.pbis-points-note{font-size:var(--fs-sm);color:var(--muted);margin:0}.pbis-points-note strong{color:var(--text)}@keyframes ui-pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes ui-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.anim-pop{animation:.22s cubic-bezier(.2,.9,.3,1.4) both ui-pop}.school-save-status.saved{animation:.22s cubic-bezier(.2,.9,.3,1.4) both ui-pop;display:inline-block}.login-error{animation:.3s both ui-shake}.sec-row.is-clickable:active,.people-row:active,.class-row:active{transform:scale(.995)}.sec-row.is-clickable,.people-row,.class-row{transition:transform .12s}@media (prefers-reduced-motion:reduce){.anim-pop,.school-save-status.saved,.login-error{animation:none}.sec-row.is-clickable:active,.people-row:active,.class-row:active{transform:none}}.ss-lock-glyph{flex-shrink:0}.ss-lock-note{color:var(--text-muted);align-items:baseline;gap:5px;margin-top:4px;font-size:11.5px;line-height:1.35;display:flex}.classedit-backdrop{z-index:3000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a73;justify-content:center;align-items:center;padding:20px;animation:.18s both classedit-backdrop-in;display:flex;position:fixed;inset:0}.classedit-panel{background:var(--card);border-radius:var(--radius-lg,12px);transform-origin:50%;will-change:transform, opacity;flex-direction:column;width:100%;max-width:520px;max-height:90vh;animation:.24s cubic-bezier(.16,1,.3,1) both classedit-panel-in;display:flex;overflow:hidden;box-shadow:0 24px 70px #02061759}@keyframes classedit-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes classedit-panel-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.classedit-backdrop,.classedit-panel{animation:none}}.classedit-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.classedit-header h3{margin:0;font-size:16px}.classedit-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:2px 6px;font-size:22px;line-height:1}.classedit-body{padding:20px;overflow-y:auto}.classedit-section{margin-top:16px}.classedit-chips,.classedit-days{flex-wrap:wrap;gap:7px;display:flex}.classedit-chip{cursor:pointer;border:1.5px solid var(--border);background:var(--card);color:var(--text);border-radius:16px;padding:5px 13px;font-size:12px}.classedit-chip.active{border:2px solid var(--primary);background:var(--primary-light);color:var(--primary);font-weight:700}.classedit-chip:disabled,.classedit-day:disabled{cursor:default;opacity:.85}.classedit-day{cursor:pointer;border:1.5px solid var(--border);background:var(--card);width:40px;height:32px;color:var(--text-muted);border-radius:6px;font-size:12px;font-weight:600}.classedit-day.active{border:2px solid var(--chip-on-border);background:var(--chip-on-bg);color:var(--chip-on-ink)}.classedit-day--locked.active{border:2px solid var(--chip-on-border,#cbd5e1);background:var(--chip-on-bg,#e2e8f0);color:var(--chip-on-ink,#1e293b)}.classedit-day.classedit-day--clash-critical{border:2px solid var(--clash-homeroom);background:var(--clash-homeroom);color:#fff}.classedit-day.classedit-day--clash-minor{border:2px solid var(--clash-room);background:var(--clash-room);color:#fff}.classedit-day.classedit-day--clash-week{border:2px solid var(--clash-week);background:var(--clash-week);color:#fff}.classedit-footer{border-top:1px solid var(--border);align-items:center;gap:10px;padding:14px 20px;display:flex}.classedit-clash{align-items:flex-start;gap:8px;margin-top:4px;font-size:12.5px;line-height:1.45;display:flex}.skeleton{background:var(--skeleton-base,#e7ecf2);border-radius:8px;flex-shrink:0;position:relative;overflow:hidden}.skeleton:after{content:"";will-change:transform;background:linear-gradient(90deg,#0000 0%,#fff9 50%,#0000 100%);animation:1.4s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.skeleton-fade-in{animation:.32s both skeleton-fade}@keyframes skeleton-fade{0%{opacity:0}to{opacity:1}}.skeleton-cards{grid-template-columns:repeat(auto-fill, minmax(var(--skeleton-card-min,300px), 1fr));gap:var(--space-3,12px);display:grid}.skeleton-sheet{padding:var(--space-4,16px)}.skeleton-sheet-row{gap:var(--space-4,16px);padding:var(--space-3,12px) 0;display:flex}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}.skeleton{animation:1.8s ease-in-out infinite skeleton-pulse}.skeleton-fade-in{animation:none}}@keyframes skeleton-pulse{50%{opacity:.55}}.skeleton-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.room-picker-back{color:var(--primary);margin-top:4px;padding:2px 6px;font-size:11.5px;display:block}.room-picker-back:hover{color:var(--primary);text-decoration:underline}.room-picker-back:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ctp{border:1px solid var(--border);background:var(--surface,white);border-radius:10px;transition:border-color .14s,background .14s;overflow:hidden}.ctp-times{flex-wrap:wrap;align-items:flex-end;gap:10px;padding:10px 12px;display:flex}.ctp-time{flex-direction:column;gap:3px;display:flex}.ctp-time>span{color:var(--text-muted);font-size:11px}.ctp-time .form-input{width:128px}.ctp-length-field{align-items:center;gap:5px;display:inline-flex}.ctp-length .form-input{width:78px}.ctp-length-unit{color:var(--text-muted);font-size:12px}.ctp-ends{color:var(--primary);padding-bottom:8px;font-size:12px;font-weight:600}.ctp--clash{border-width:2px}.ctp--clash-critical{border-color:var(--clash-homeroom);background:color-mix(in srgb, var(--clash-homeroom) 6%, var(--surface,white))}.ctp--clash-minor{border-color:var(--clash-room);background:color-mix(in srgb, var(--clash-room) 6%, var(--surface,white))}.ctp-hint{color:var(--text-muted);padding:0 12px 10px;font-size:11.5px;font-style:italic}.ctp--locked{background:var(--surface-2,#f6f7f9);border-style:dashed}.ctp--locked .form-input:disabled{cursor:not-allowed}.ctp-locked-why{padding:0 12px 10px}@media (width<=520px){.ctp-time .form-input{width:110px}.ctp-length .form-input{width:70px}}.ctp-quick{align-items:center;gap:4px;display:inline-flex}.ctp-quick-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);min-width:34px;color:var(--text-muted);cursor:pointer;padding:6px 8px;font-size:12px;font-weight:600;line-height:1;transition:background .12s,border-color .12s,color .12s}.ctp-quick-btn:hover:not(:disabled):not(.is-active){border-color:var(--primary);color:var(--primary)}.ctp-quick-btn.is-active,.ctp-quick-btn.is-active:hover{background:var(--primary);border-color:var(--primary);color:#fff}.ctp-quick-btn:disabled{opacity:.45;cursor:not-allowed}@media (width<=768px){.ctp-quick-btn{min-width:44px;min-height:44px}}.pyb{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--warning-bg);color:var(--warning-ink);border-bottom:1px solid var(--warning);border-left:4px solid var(--warning);font-size:var(--fs-sm);z-index:60;line-height:1.45;display:flex;position:sticky;top:0}.pyb-quiet{background:var(--bg);color:var(--muted);border-bottom:1px solid var(--border);border-left:4px solid var(--border)}.pyb-glyph{flex-shrink:0;font-size:1rem;line-height:1.45}.pyb-body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;max-width:78ch;display:flex}.pyb-text{margin:0}.pyb-text strong{font-weight:700}.pyb-caveat{opacity:.92}.pyb-why{font-style:italic}.pyb-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.pyb-btn{background:var(--card);border-color:var(--warning);min-height:44px;color:var(--warning-ink);white-space:nowrap}.pyb-btn:hover:not(:disabled){background:var(--warning);color:#fff}.pyb-btn:focus-visible{outline:2px solid var(--warning-ink);outline-offset:2px}@media (width<=640px){.pyb{padding:var(--space-3);flex-wrap:wrap}.pyb-body{flex-basis:0}.pyb-actions{flex-basis:100%}.pyb-btn{width:100%}}@media print{.pyb{display:none!important}}.acct-identity{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3);margin-bottom:var(--space-4)}.acct-identity-row{gap:var(--space-3);font-size:var(--fs-base);padding:2px 0;display:flex}.acct-identity-label{width:5.5rem;color:var(--text-muted);flex-shrink:0;font-weight:600}.acct-identity-note{margin:var(--space-2) 0 0;font-size:var(--fs-xs);color:var(--text-muted)}.acct-form{flex-direction:column;display:flex}.acct-form .form-label{margin-top:var(--space-3)}.acct-form .form-label:first-of-type{margin-top:0}.acct-show{align-items:center;gap:var(--space-2);margin-top:var(--space-3);font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;display:flex}.acct-rules{margin:var(--space-3) 0 0;font-size:var(--fs-xs);color:var(--text-muted);gap:2px;padding:0;list-style:none;display:grid}.acct-rules li.is-ok{color:var(--success-ink)}.acct-warn{margin-top:var(--space-3);font-size:var(--fs-sm);color:var(--danger-ink)}.acct-done{font-size:var(--fs-base)}.acct-done p{margin:var(--space-2) 0 0;color:var(--text-muted);font-size:var(--fs-sm)}.rsp-note{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 var(--space-3)}.rsp-token{margin-top:var(--space-2);padding:var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-md);letter-spacing:.06em;word-break:break-all;-webkit-user-select:all;user-select:all;display:block}.rsp-expiry{margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--text-muted)}.rsp-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.rsp-warn{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--warning-bg);color:#92400e;font-size:var(--fs-sm)}.help-btn{border:1px solid var(--border);background:var(--surface-2);width:22px;height:22px;color:var(--muted);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:700;line-height:1;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.help-btn:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.help-btn{position:relative}.help-btn:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.help-blurb{color:var(--text);font-size:var(--fs-sm);margin:0 0 12px}.help-points{flex-direction:column;gap:7px;margin:0;padding-left:18px;display:flex}.help-points li{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.45}.opa-backdrop{z-index:3850;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a8c;justify-content:center;align-items:center;padding:20px;animation:.16s ease-out opa-fade;display:flex;position:fixed;inset:0}@keyframes opa-fade{0%{opacity:0}to{opacity:1}}.opa{width:100%;max-width:420px;max-height:calc(100vh - var(--space-8));max-height:calc(100dvh - var(--space-8));background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border-top:5px solid var(--danger);outline:none;padding:18px 20px 14px;animation:.2s cubic-bezier(.2,.9,.3,1) opa-in;overflow-y:auto}@keyframes opa-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}.opa-head{align-items:flex-start;gap:11px;display:flex}.opa-siren{font-size:26px;line-height:1;animation:1.6s ease-in-out infinite opa-pulse}@keyframes opa-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}@media (prefers-reduced-motion:reduce){.opa,.opa-backdrop,.opa-siren{animation:none}}.opa h2{font-size:var(--fs-lg);color:var(--text);margin:0;line-height:1.25}.opa-sub{font-size:var(--fs-sm);color:var(--muted);margin:3px 0 0}.opa-mute{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);cursor:pointer;flex-shrink:0;width:30px;height:30px;margin-left:auto;font-size:14px;line-height:1}.opa-mute:hover{background:var(--surface-2)}.opa-mute[aria-pressed=true]{background:var(--surface-2);opacity:.7}.opa-clock{text-align:center;font-variant-numeric:tabular-nums;color:var(--danger);margin:12px 0 14px;font-size:42px;font-weight:800;line-height:1}.opa-error{border-radius:var(--radius-sm,6px);background:color-mix(in srgb, var(--danger) 10%, var(--card,#fff));color:var(--danger-ink);font-size:var(--fs-sm);margin:0 0 10px;padding:8px 10px}.opa-actions{gap:8px;display:grid}.opa-btn{text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);width:100%;color:var(--text);flex-direction:column;gap:1px;padding:10px 13px;font-family:inherit;display:flex}.opa-btn strong{font-size:var(--fs-base);font-weight:700}.opa-btn small{font-size:var(--fs-xs);color:var(--muted)}.opa-btn:disabled{opacity:.55;cursor:default}.opa-btn.is-back:hover:not(:disabled){border-color:var(--success);background:var(--success-bg)}.opa-btn.is-wait:hover:not(:disabled){border-color:var(--warning);background:var(--warning-bg)}.opa-btn.is-tell:hover:not(:disabled),.opa-btn.is-incident:hover:not(:disabled){border-color:var(--danger);background:var(--danger-bg)}.opa-done{text-align:left;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-2,var(--card));width:100%;color:var(--text);flex-direction:column;gap:1px;padding:10px 13px;display:flex}.opa-done strong{font-size:var(--fs-base);font-weight:700}.opa-done small{font-size:var(--fs-xs);color:var(--muted)}.opa-lock{font-size:var(--fs-xs);color:var(--muted);margin:8px 0 0}.opa-scrim-click{position:absolute;inset:0}.opa-form-panel{position:relative}.opa-close{cursor:pointer;width:100%;color:var(--muted);font-family:inherit;font-size:var(--fs-sm);background:0 0;border:0;margin-top:10px;padding:6px;display:block}.opa-close:hover{color:var(--text);text-decoration:underline}@media (pointer:coarse) and (hover:none){.opa-mute{width:44px;height:44px}.opa-close{min-height:44px}}.opa-stale{border-radius:var(--radius-sm,6px);background:color-mix(in srgb, var(--warning) 12%, var(--card,#fff));color:var(--warning-ink);font-size:var(--fs-sm);margin:0 0 10px;padding:8px 10px}.opa-blind{z-index:2600;background:var(--card);border:1px solid var(--warning);border-left:4px solid var(--warning);border-radius:var(--radius-lg,12px);align-items:center;gap:11px;width:min(360px,100vw - 32px);padding:12px 14px;animation:.2s cubic-bezier(.16,1,.3,1) both obf-in;display:flex;position:fixed;bottom:16px;left:16px;box-shadow:0 18px 46px #02061747}@media (prefers-reduced-motion:reduce){.opa-blind{animation:none}}.opa-blind-icon{flex-shrink:0;font-size:17px;line-height:1}.opa-blind>div{flex-direction:column;flex:1;gap:1px;display:flex}.opa-blind strong{font-size:var(--fs-sm);color:var(--text);font-weight:700}.opa-blind small{font-size:var(--fs-xs);color:var(--muted)}.opa-blind .btn{flex-shrink:0}@media (width<=560px){.opa-blind{width:auto;bottom:16px;left:16px;right:16px}.opa-blind~.obf,.opa-blind~.notice-stack{bottom:96px}}.ana-backdrop{z-index:3800;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--space-5);background:#0f172a8c;justify-content:center;align-items:center;animation:.16s ease-out ana-fade;display:flex;position:fixed;inset:0}.ana-backdrop.is-emergency{z-index:3900;background:#450a0ab8}@keyframes ana-fade{0%{opacity:0}to{opacity:1}}.ana{width:100%;max-width:26.25rem;max-height:calc(100vh - var(--space-8));background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border-top:5px solid var(--primary);padding:var(--space-5) var(--space-5) var(--space-3);outline:none;animation:.2s cubic-bezier(.2,.9,.3,1) ana-in;overflow-y:auto}.ana.is-emergency{border-top-color:var(--danger)}@keyframes ana-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}.ana-head{align-items:flex-start;gap:var(--space-3);display:flex}.ana-head-text{min-width:0}.ana-icon{flex-shrink:0;font-size:1.625rem;line-height:1}.ana h2{font-size:var(--fs-h3);color:var(--text);margin:0;line-height:1.25}.ana-eyebrow{margin:0 0 var(--space-1);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--danger-ink);font-weight:800}.ana-body{margin:var(--space-3) 0 0;font-size:var(--fs-base);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.ana-procedures{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 8%, var(--card));border:1px solid color-mix(in srgb, var(--danger) 28%, transparent)}.ana-procedures-label{margin:0 0 var(--space-1);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--danger-ink);font-weight:800}.ana-procedures-text{font-size:var(--fs-base);color:var(--text);white-space:pre-wrap;margin:0;line-height:1.5}.ana-hear{width:100%;margin-top:var(--space-4);border:2px solid var(--danger);border-radius:var(--radius);background:var(--danger-bg);min-height:2.75rem;color:var(--danger-ink);font-family:inherit;font-size:var(--fs-base);cursor:pointer;padding:var(--space-2) var(--space-3);font-weight:700;display:block}.ana-hear:hover{background:color-mix(in srgb, var(--danger) 18%, var(--card))}.ana-error{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 10%, var(--card));color:var(--danger-ink);font-size:var(--fs-sm)}.ana-actions{gap:var(--space-2);margin-top:var(--space-4);display:grid}.ana-btn{text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);width:100%;min-height:2.75rem;color:var(--text);padding:var(--space-3) var(--space-4);flex-direction:column;gap:1px;font-family:inherit;display:flex}.ana-btn strong{font-size:var(--fs-base);font-weight:700}.ana-btn small{font-size:var(--fs-xs);color:var(--muted)}.ana-btn:disabled{opacity:.55;cursor:default}.ana-btn.is-read:hover:not(:disabled){border-color:var(--success);background:var(--success-bg)}.ana-btn.is-reply:hover:not(:disabled){border-color:var(--primary);background:var(--primary-light)}.ana-close{width:100%;margin-top:var(--space-2);cursor:pointer;min-height:2.75rem;color:var(--muted);font-family:inherit;font-size:var(--fs-sm);padding:var(--space-2);background:0 0;border:0;display:block}.ana-close:hover:not(:disabled){color:var(--text);text-decoration:underline}.ana-close:disabled{opacity:.55;cursor:default}.ana-blast{z-index:4000;background:var(--danger-ink);color:#fff;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-6);text-align:center;flex-direction:column;display:flex;position:fixed;inset:0}.ana-blast-sign{font-size:clamp(4.5rem,28vw,9rem);line-height:1;animation:1.6s ease-in-out infinite alternate ana-pulse}@keyframes ana-pulse{0%{opacity:.88;transform:scale(1)}to{opacity:1;transform:scale(1.12)}}.ana-blast-word{text-transform:uppercase;letter-spacing:.14em;margin:0;font-size:clamp(1.5rem,9vw,2.5rem);font-weight:900}.ana-blast-title{letter-spacing:-.01em;overflow-wrap:anywhere;max-width:40ch;margin:0;font-size:clamp(1.125rem,5.5vw,1.75rem);font-weight:700;line-height:1.3}@media (prefers-reduced-motion:reduce){.ana,.ana-backdrop,.ana-blast-sign{animation:none}}@media (width<=26.25rem){.ana-backdrop{padding:var(--space-3);align-items:flex-end}.ana{padding:var(--space-4) var(--space-4) var(--space-3);max-height:calc(100vh - var(--space-6))}}.obf{z-index:2600;background:var(--card);border:1px solid var(--danger);border-left:4px solid var(--danger);border-radius:var(--radius-lg,12px);flex-direction:column;gap:10px;width:min(380px,100vw - 32px);padding:14px 16px;animation:.2s cubic-bezier(.16,1,.3,1) both obf-in;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 18px 46px #02061747}@keyframes obf-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.obf{animation:none}}.obf-head{align-items:center;gap:9px;display:flex}.obf-icon{color:var(--danger-ink);font-size:15px;line-height:1}.obf-title{color:var(--text);flex:1;margin:0;font-size:14px;font-weight:700}.obf-close{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm,6px);background:0 0;border:none;padding:2px 6px;font-size:19px;line-height:1}.obf-close:hover{background:var(--bg);color:var(--text)}.obf-body{color:var(--text-muted);margin:0;font-size:13px}.obf-list{flex-direction:column;gap:6px;max-height:168px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.obf-list li{background:var(--danger-bg);border-radius:var(--radius-sm,6px);color:var(--danger-ink);flex-direction:column;gap:1px;padding:6px 9px;font-size:12.5px;display:flex}.obf-list strong{font-weight:650}.obf-reason{color:var(--danger-ink);opacity:.85;font-size:11.5px}.obf-ack{align-self:flex-start}.notice-stack{z-index:2600;pointer-events:none;flex-direction:column-reverse;gap:10px;width:min(380px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.notice-stack .obf.notice{pointer-events:auto;width:auto;position:static}.obf:not(.notice)~.notice-stack{bottom:200px}.obf.is-done{border-color:var(--success)}.obf.is-done .obf-icon{color:var(--success-ink)}.tour-root{z-index:3500;pointer-events:none;position:fixed;inset:0}.tour-dim{pointer-events:auto;background:#0f172a8c;animation:.16s ease-out tour-fade;position:fixed;inset:0}.tour-spot{pointer-events:none;box-shadow:0 0 0 9999px #0f172a8c, 0 0 0 2px var(--primary),  0 0 0 6px #2563eb59;border-radius:8px;transition:left .24s cubic-bezier(.22,1,.36,1),top .24s cubic-bezier(.22,1,.36,1),width .24s cubic-bezier(.22,1,.36,1),height .24s cubic-bezier(.22,1,.36,1);position:fixed}.tour-bubble{pointer-events:auto;width:min(340px,100vw - 24px);color:var(--text);background:#fff;border:1px solid #2563eb2e;border-radius:12px;padding:14px 16px 12px;transition:left .24s cubic-bezier(.22,1,.36,1),top .24s cubic-bezier(.22,1,.36,1);animation:.16s ease-out tour-pop;position:fixed;box-shadow:0 12px 32px #02061747,0 2px 6px #02061729}.tour-bubble-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.tour-step{letter-spacing:.04em;text-transform:uppercase;color:var(--primary);font-size:11px;font-weight:700}.tour-x{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 4px;font-size:15px;line-height:1;position:relative}.tour-x:hover{background:var(--bg);color:var(--text)}.tour-x:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tour-title{color:var(--text);margin:0 0 4px;font-size:15px;font-weight:700}.tour-body{color:#334155;margin:0 0 12px;font-size:13.5px;line-height:1.5}.tour-ctl{justify-content:space-between;align-items:center;gap:8px;display:flex}.tour-btn{border:1px solid var(--border-strong);color:#334155;cursor:pointer;background:#fff;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600}.tour-btn:hover{background:var(--surface-2)}.tour-btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.tour-btn--primary:hover{background:var(--primary-dark)}.tour-btn--primary:disabled{cursor:not-allowed;background:#93c5fd;border-color:#93c5fd}@keyframes tour-fade{0%{opacity:0}to{opacity:1}}@keyframes tour-pop{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}:root[data-theme=dark] .tour-bubble{color:#e2e8f0;background:#0f172a;border-color:#3b82f659}:root[data-theme=dark] .tour-title{color:#f1f5f9}:root[data-theme=dark] .tour-body{color:#cbd5e1}:root[data-theme=dark] .tour-btn{color:#e2e8f0;background:#1e293b;border-color:#334155}:root[data-theme=dark] .tour-btn:hover{background:#263449}:root[data-theme=dark] .tour-x:hover{color:#f1f5f9;background:#1e293b}@media (prefers-reduced-motion:reduce){.tour-dim,.tour-spot,.tour-bubble{transition:none;animation:none}}.gs-page{z-index:3500;background:var(--bg);justify-content:center;align-items:flex-start;padding:clamp(20px,5vw,56px) 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.gs-inner{width:100%;max-width:760px}.gs-head-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.gs-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:clamp(24px,4vw,32px);font-weight:800}.gs-close{border:1px solid var(--border-strong);color:#475569;cursor:pointer;background:#fff;border-radius:8px;flex:none;width:34px;height:34px;font-size:15px;position:relative}.gs-close:hover{background:var(--surface-2);color:var(--text)}.gs-close:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gs-sub{color:#475569;max-width:60ch;margin:8px 0 14px;font-size:15px;line-height:1.55}.gs-progress{background:var(--border);border-radius:999px;height:8px;margin-bottom:22px;overflow:hidden}.gs-progress-fill{background:linear-gradient(90deg, var(--primary), #3b82f6);border-radius:999px;height:100%;transition:width .3s cubic-bezier(.22,1,.36,1);display:block}.gs-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px;display:grid}.gs-tile{text-align:left;border:1px solid var(--border);cursor:pointer;font:inherit;background:#fff;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;transition:border-color .14s,box-shadow .14s,transform .14s;display:flex}.gs-tile:hover{border-color:#93c5fd;transform:translateY(-1px);box-shadow:0 6px 18px #2563eb1f}.gs-tile.is-done{background:var(--surface-2);border-color:var(--border-strong)}.gs-tile-icon{background:#eff6ff;border-radius:10px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;line-height:1;display:flex}.gs-tile.is-done .gs-tile-icon{background:#ecfdf5}.gs-tile-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gs-tile-label{color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.gs-check{background:var(--success);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:800;display:inline-flex}.gs-tile-blurb{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.gs-tile-cta{color:var(--primary);background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;flex:none;padding:6px 12px;font-size:12.5px;font-weight:700}.gs-tile.is-done .gs-tile-cta{color:#475569;border-color:var(--border);background:#fff}.gs-foot{color:var(--text-muted);margin:22px 2px 0;font-size:13px}:root[data-theme=dark] .gs-page{background:#0b1220}:root[data-theme=dark] .gs-title{color:#f1f5f9}:root[data-theme=dark] .gs-sub{color:#94a3b8}:root[data-theme=dark] .gs-progress{background:#1e293b}:root[data-theme=dark] .gs-tile{background:#0f172a;border-color:#1e293b}:root[data-theme=dark] .gs-tile.is-done{background:#0c1526}:root[data-theme=dark] .gs-tile-label{color:#e2e8f0}:root[data-theme=dark] .gs-tile-icon{background:#16233b}:root[data-theme=dark] .gs-close{color:#cbd5e1;background:#1e293b;border-color:#334155}@media (prefers-reduced-motion:reduce){.gs-tile,.gs-progress-fill{transition:none}}@media print{.shell-nav,.shell-nav-overlay,.shell-header,.skip-link,.impersonation-banner,.opa-backdrop,.obf,.notice-stack{display:none!important}.shell{min-height:0!important;display:block!important}.shell-content{margin-left:0!important;padding-top:0!important;overflow:visible!important}.shell-main{padding:0!important;overflow:visible!important}}.skip-link{top:-4rem;left:var(--space-3);z-index:2000;padding:var(--space-2) var(--space-4);background:var(--card);color:var(--primary);border:2px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow-lg,0 8px 24px #0f172a2e);font-weight:700;text-decoration:none;transition:top .14s ease-out;position:fixed}.skip-link:focus{top:var(--space-3)}@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}.shell{min-height:100dvh;display:flex}.shell-nav{width:var(--sidebar-w);background:var(--sidebar-bg);z-index:100;flex-direction:column;height:100dvh;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.shell-nav-logo{border-bottom:1px solid var(--sidebar-border);flex-shrink:0;align-items:center;gap:10px;padding:18px 16px;display:flex}.shell-nav-logo-img{object-fit:contain;background:#fff;border-radius:50%;flex:none;width:34px;height:34px;padding:1px}.shell-nav-logo-icon{background:var(--primary);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:17px;display:flex}.shell-nav-logo-name{color:#fff;font-size:14.5px;font-weight:700;line-height:1.2}.shell-nav-logo-role{color:var(--sidebar-text);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.shell-nav-list{flex:1;padding:10px 0;overflow-y:auto}.shell-nav-item{width:calc(100% - 16px);color:var(--sidebar-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:9px;margin:1px 8px;padding:8px 10px;font-size:13px;font-weight:450;transition:background .12s,color .12s;display:flex}.shell-nav-item:hover{background:var(--sidebar-hover);color:#e2e8f0}.shell-nav-item.active{background:var(--sidebar-active);color:#fff;font-weight:500}.shell-nav-icon{flex-shrink:0;font-size:15px;line-height:1}.shell-nav-caret{opacity:.55;flex-shrink:0;margin-left:auto;font-size:10px;transition:transform .24s}.shell-nav-item:not(.shell-nav-group)>.shell-nav-caret.open{transform:rotate(90deg)}.shell-nav-caret-glyph{transition:transform .24s;display:inline-block}.shell-nav-caret.open .shell-nav-caret-glyph{transform:rotate(90deg)}.shell-nav-badge+.shell-nav-caret{margin-left:6px}.shell-nav-group{background:linear-gradient(#ffffff13,#ffffff05);border-radius:8px;gap:0;margin-top:10px;padding:0;box-shadow:inset 0 1px #ffffff1a,0 1px 2px #02061773}.shell-nav-list>div:first-child>.shell-nav-group{margin-top:2px}.shell-nav-grouplabel{letter-spacing:.045em;color:#cbd5e1;font-size:12px;font-weight:700}.shell-nav-group:hover{background:linear-gradient(#ffffff1a,#ffffff0a)}.shell-nav-grouplabel:focus-visible,.shell-nav-group>.shell-nav-caret:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.shell-nav-group>.shell-nav-caret{width:26px;color:inherit;cursor:pointer;opacity:.85;background:0 0;border:none;border-radius:0 6px 6px 0;justify-content:center;align-self:stretch;align-items:center;margin-left:auto;padding:8px 0;font-size:13px;display:flex}.shell-nav-group>.shell-nav-caret:hover{opacity:1;background:var(--sidebar-hover)}.shell-nav-group>.shell-nav-caret:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.shell-nav-grouplabel{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px 0 0 6px;flex:1;align-items:center;gap:9px;padding:8px 10px;display:flex}.shell-nav-subwrap{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.shell-nav-subwrap.open{grid-template-rows:1fr}.shell-nav-sublist{flex-direction:column;min-height:0;padding:0 8px;display:flex;overflow:hidden}.shell-nav-subwrap.open .shell-nav-sublist{padding-bottom:4px}.shell-nav-group.open{background:linear-gradient(180deg, #ffffff1a, #ffffff08), var(--sidebar-hover);color:#e2e8f0;border-radius:8px 8px 0 0}.shell-nav-grouplist{background:#02061759;border-radius:0 0 8px 8px;flex-direction:column;min-height:0;margin:-4px 0 0;padding:4px 0 6px;display:flex;overflow:hidden;box-shadow:inset 0 1px 2px #02061780}.shell-nav-child{width:calc(100% - 30px);margin-left:22px;font-size:12.5px}.shell-nav-sublist-nested .shell-nav-subitem{width:calc(100% - 20px);margin-left:20px}.shell-nav-subitem{text-align:left;border:none;border-left:1px solid var(--sidebar-border);width:calc(100% - 24px);color:var(--sidebar-text);opacity:.85;cursor:pointer;background:0 0;border-radius:0 6px 6px 0;margin-left:24px;padding:5px 10px;font-size:12px;transition:background .15s,color .15s;display:block}.shell-nav-subitem:hover{background:var(--sidebar-hover);color:#e2e8f0}.shell-nav-subitem.active{background:var(--sidebar-active);color:#fff;border-left-color:var(--primary,#6366f1);font-weight:600}.shell-nav-subitem.shake{color:#fbbf24;animation:.4s shell-subnav-shake}@keyframes shell-subnav-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.shell-nav-subnote{color:#fbbf24;margin-left:24px;padding:1px 10px 4px;font-size:11px;animation:.2s shell-subnote-in}@keyframes shell-subnote-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.shell-nav-badge{background:var(--danger);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-left:auto}.shell-nav-footer{padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--sidebar-border);background:var(--sidebar-bg);flex-shrink:0;position:sticky;bottom:0}.shell-nav-user{align-items:center;gap:9px;padding:8px;display:flex}.shell-nav-avatar{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:600;display:flex}.shell-nav-user-name{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.shell-nav-user-email{color:var(--sidebar-text);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.shell-header{top:0;left:var(--sidebar-w);height:var(--header-h);background:var(--card);border-bottom:1px solid var(--border);z-index:90;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:fixed;right:0}.shell-header-title{color:var(--text);font-size:15px;font-weight:600}.shell-header-right{align-items:center;gap:14px;min-width:0;display:flex}.shell-header-role-badge{background:var(--primary-light);color:var(--primary-dark);text-transform:capitalize;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:600}.shell-header-avatar{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:flex}.shell-header-name{color:var(--text);font-size:13px;font-weight:500}.shell-content{margin-left:var(--sidebar-w);padding-top:var(--header-h);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex;overflow-x:clip}.shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.shell-placeholder{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.shell-placeholder-icon{font-size:48px}.shell-placeholder-title{color:var(--text);margin:0;font-size:18px;font-weight:600}.shell-placeholder-sub{font-size:14px}.shell-nav{transition:transform .28s cubic-bezier(.16,1,.3,1)}.shell-hamburger{border:1px solid var(--border);width:40px;height:40px;color:var(--text);cursor:pointer;background:#fff;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;transition:background .14s;display:none}.shell-hamburger:hover{background:var(--bg)}.shell-nav-overlay{display:none}@media (width<=768px){.shell-nav{visibility:hidden;z-index:1100;transition:transform .28s cubic-bezier(.16,1,.3,1),visibility 0s linear .28s;transform:translate(-100%);box-shadow:0 0 50px #02061766}.shell-nav.open{visibility:visible;transition-delay:0s,0s;transform:translate(0)}.shell-content{margin-left:0}.shell-nav-item{min-height:44px;padding:12px 10px}.shell-nav-group{padding:0}.shell-nav-grouplabel{min-height:44px;padding:12px 10px}.shell-nav-group>.shell-nav-caret{min-height:44px}.shell-nav-subitem{min-height:44px;padding:12px 10px}.shell-hamburger{width:44px;height:44px}.shell-header{gap:8px;padding:0 12px;left:0}.shell-header-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.shell-header-right{gap:8px}.shell-nav-overlay{z-index:1050;background:#0f172a73;animation:.18s both shell-overlay-in;display:block;position:fixed;inset:0}.shell-hamburger{display:inline-flex}}@media (width<=480px){.shell-header-role-badge{display:none}}@keyframes shell-overlay-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.shell-nav{transition:none}.shell-nav-overlay{animation:none}.shell-nav-subwrap,.shell-nav-caret,.shell-nav-caret-glyph{transition:none}.shell-nav-subitem.shake,.shell-nav-subnote{animation:none}}.shell-nav-count{background:var(--danger-ink);color:#fff;text-align:center;border-radius:999px;flex-shrink:0;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10px;font-weight:700;line-height:18px}.shell-nav-count+.shell-nav-caret{margin-left:6px}.profile-menu{position:relative}.profile-menu-trigger{border-radius:var(--radius-md);cursor:pointer;min-height:44px;color:var(--text);background:0 0;border:none;align-items:center;gap:8px;padding:4px 8px;display:flex}.profile-menu-trigger:hover{background:var(--surface-2)}.profile-menu-trigger:focus-visible,.profile-menu-item:focus-visible,.profile-menu-signout:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.profile-menu-caret{color:var(--text-muted);font-size:10px}.profile-menu-header-id{text-align:left;flex-direction:column;align-items:flex-start;min-width:0;max-width:200px;line-height:1.3;display:flex}.profile-menu-header-id .shell-header-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.shell-header-email{white-space:nowrap;text-overflow:ellipsis;max-width:100%;color:var(--text-muted);font-size:11px;overflow:hidden}@media (width<=480px){.profile-menu-header-id{display:none}}.profile-menu-list{background:var(--card);min-width:240px;max-width:min(320px,90vw);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);z-index:120;transform-origin:100% 0;max-height:70vh;margin:0;padding:6px;animation:.18s cubic-bezier(.2,.8,.3,1) backwards profile-menu-in;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 10px 30px #00000047}@keyframes profile-menu-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.profile-menu-list{animation:none}}.profile-menu-item{cursor:pointer;border-radius:var(--radius-sm);text-align:left;width:100%;min-height:44px;color:var(--text);background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.profile-menu-item:hover:not(:disabled){background:var(--surface-2)}.profile-menu-item:disabled{opacity:.6;cursor:default}.profile-menu-role.is-current{font-weight:700}.profile-menu-role-school{color:var(--text-muted);flex:1;min-width:0;font-size:11.5px}.profile-menu-tick{color:var(--primary)}.profile-menu-head{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 6px;padding:10px 10px 8px;display:flex}.profile-menu-school-code{color:var(--text);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700}.profile-menu-head-dot,.profile-menu-current-role{color:var(--text-muted);font-size:12px}.profile-menu-role-skeleton{vertical-align:middle;display:inline-block}.profile-menu-read-failed{color:var(--danger-ink);align-items:center;gap:8px;padding:6px 10px 8px;font-size:12px;display:flex}.profile-menu-read-failed-note{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.profile-menu-gap{border-top:1px solid var(--border);height:0;margin:6px 4px}.profile-menu-signout{justify-content:center;align-items:center;width:calc(100% - 12px);min-height:44px;margin:4px auto;font-size:13px;font-weight:600;display:flex}.profile-menu-signout:hover:not(:disabled){background:var(--danger-ink)}.profile-menu-error{color:var(--danger-ink);padding:8px 10px;font-size:12px}.profile-menu-footer{flex:1;min-width:0}.profile-menu-trigger-footer{border-radius:var(--radius-sm);text-align:left;width:100%;color:var(--sidebar-text);gap:9px;margin:-4px -6px;padding:4px 6px}.profile-menu-trigger-footer:hover{background:var(--sidebar-hover)}.profile-menu-footer-id{flex-direction:column;flex:1;min-width:0;display:flex}.profile-menu-list-above{min-width:0;width:calc(var(--sidebar-w) - 20px);transform-origin:0 100%;inset:auto auto calc(100% + 6px) -8px}.impersonation-banner{top:0;right:0;left:var(--sidebar-w);z-index:200;color:#fff;background:#7c2d12;align-items:center;gap:10px;padding:8px 16px;font-size:13px;line-height:1.4;display:flex;position:fixed;box-shadow:0 2px 12px #0000004d}.impersonation-banner-dot{background:#fbbf24;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite impersonation-pulse}@keyframes impersonation-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.impersonation-banner-dot{animation:none}}.impersonation-banner-text{flex:1;min-width:0}.impersonation-banner-text strong{font-weight:700}.impersonation-banner-error{color:#fecaca;font-weight:600}.impersonation-banner-stop{border-radius:var(--radius-md);color:#7c2d12;cursor:pointer;background:#fff;border:none;flex-shrink:0;padding:5px 12px;font-size:12.5px;font-weight:700}.impersonation-banner-stop:hover:not(:disabled){background:#fde68a}.impersonation-banner-stop:disabled{opacity:.7;cursor:default}.impersonation-banner.is-folded{left:auto;top:calc(var(--header-h) + 8px);box-shadow:none;pointer-events:none;background:0 0;padding:0;right:12px}.impersonation-banner-peek{pointer-events:auto;color:#fff;cursor:pointer;background:#7c2d12;border:none;border-radius:999px;align-items:center;gap:7px;max-width:46vw;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex;box-shadow:0 2px 10px #0000004d}.impersonation-banner-peek-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.impersonation-banner-peek:hover{background:#9a3412}.impersonation-banner-chev{opacity:.85;font-size:10px}.impersonation-banner-fold{border-radius:var(--radius-md);color:#fff;cursor:pointer;background:#ffffff26;border:none;flex-shrink:0;padding:4px 8px;font-size:12px;line-height:1}.impersonation-banner-fold:hover{background:#ffffff4d}body:has(.impersonation-banner:not(.is-folded)) .shell-header{top:var(--support-h,36px)}body:has(.impersonation-banner:not(.is-folded)) .shell-content{padding-top:calc(var(--header-h) + var(--support-h,36px))}@media (width<=768px){.impersonation-banner{left:0}}.pub{--pub-ink:oklch(22% .02 260);--pub-ink-soft:oklch(45% .02 260);--pub-paper:oklch(97.5% .004 250);--pub-card:oklch(99% .003 250);--pub-line:oklch(90% .01 250);--pub-dark:oklch(21% .03 262);--pub-dark-2:oklch(27% .045 262);--pub-dark-ink:oklch(93% .008 250);--pub-dark-soft:oklch(72% .02 255);--pub-blue:oklch(55% .19 262);--pub-blue-deep:oklch(48% .19 262);--pub-blue-tint:oklch(93% .04 262);--pub-green:oklch(62% .14 155);--pub-amber:oklch(75% .13 75);--pub-display:clamp(2.1rem, 1.2rem + 3.2vw, 3.4rem);--pub-h2:clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem);--pub-max:1120px;font-family:var(--font);color:var(--pub-ink);background:var(--pub-paper);line-height:1.6;overflow-x:clip}.pub *{box-sizing:border-box}.pub-wrap{max-width:var(--pub-max);margin:0 auto;padding:0 24px}.pub-btn{font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .16s cubic-bezier(.22,1,.36,1),box-shadow .16s,background .16s;display:inline-flex}.pub-btn:active{transform:translateY(1px)}.pub-btn-primary{background:var(--pub-blue);color:oklch(99% .002 250);box-shadow:0 8px 20px -8px oklch(55% .19 262/.55)}.pub-btn-primary:hover{background:var(--pub-blue-deep);transform:translateY(-1px);box-shadow:0 12px 26px -8px oklch(55% .19 262/.6)}.pub-btn-ghost{color:inherit;background:0 0;border-color:oklch(60% .02 255/.45)}.pub-btn-ghost:hover{border-color:currentColor;transform:translateY(-1px)}.pub-btn-lg{border-radius:12px;padding:15px 28px;font-size:16px}.pub-nav{z-index:50;-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);color:var(--pub-dark-ink);background:oklch(21% .03 262/.85);border-bottom:1px solid oklch(100% 0 0/.08);position:sticky;top:0}.pub-nav-inner{align-items:center;gap:26px;height:62px;display:flex}.pub-logo{color:inherit;letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:9px;min-width:0;font-size:17px;font-weight:800;text-decoration:none;display:flex}.pub-logo img{object-fit:contain;background:#fff;border-radius:50%;flex:none;width:28px;height:28px;padding:1px}.pub-logo span{font-size:21px}.pub-nav-links{align-items:center;gap:22px;margin-left:auto;display:flex}.pub-nav-links a{color:var(--pub-dark-soft);font-size:14px;font-weight:500;text-decoration:none;transition:color .14s}.pub-nav-links a:hover{color:var(--pub-dark-ink)}@media (width<=430px){.pub-nav-inner{gap:14px}.pub-logo{gap:0;font-size:0}.pub-logo img{width:30px;height:30px}.pub-nav-links{gap:14px}.pub-nav-links a{font-size:13px}}.pub-nav .pub-btn{padding:9px 16px;font-size:14px}.pub-hero{background:radial-gradient(900px 480px at 82% -10%, oklch(42% .13 262/.35), transparent 65%), radial-gradient(700px 420px at 8% 110%, oklch(35% .09 200/.25), transparent 60%), linear-gradient(160deg, var(--pub-dark) 0%, var(--pub-dark-2) 55%, var(--pub-dark) 100%);color:var(--pub-dark-ink);padding:clamp(56px,9vw,110px) 0 clamp(120px,14vw,170px);position:relative}.pub-hero-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:clamp(32px,5vw,72px);display:grid}.pub-kicker{letter-spacing:.08em;text-transform:uppercase;color:oklch(78% .09 262);background:oklch(55% .19 262/.14);border:1px solid oklch(60% .15 262/.35);border-radius:999px;align-items:center;gap:7px;margin-bottom:18px;padding:5px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.pub-hero h1{letter-spacing:-.025em;text-wrap:balance;margin:0 0 18px;font-size:clamp(2rem,1.1rem + 2vw,2.6rem);font-weight:800;line-height:1.1}.pub-hero h1 em{color:oklch(75% .13 262);font-style:normal}.pub-hero-sub{color:var(--pub-dark-soft);max-width:46ch;margin:0 0 28px;font-size:clamp(15px,1.05vw + 12px,18px)}.pub-hero-ctas{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pub-hero-note{color:var(--pub-dark-soft);margin-top:14px;font-size:13px}.pub-mock{color:var(--pub-ink);background:oklch(98.5% .003 250);border-radius:14px;font-size:11px;overflow:hidden;box-shadow:0 30px 70px -22px oklch(10% .03 262/.65),0 0 0 1px oklch(100% 0 0/.09)}.pub-mock-top{border-bottom:1px solid var(--pub-line);background:oklch(94% .006 250);align-items:center;gap:6px;padding:9px 12px;display:flex}.pub-mock-dot{background:oklch(82% .01 250);border-radius:50%;width:9px;height:9px}.pub-mock-url{background:var(--pub-card);border:1px solid var(--pub-line);color:var(--pub-ink-soft);border-radius:6px;margin-left:8px;padding:2px 10px;font-size:10px}.pub-mock-body{grid-template-columns:88px 1fr;min-height:320px;display:grid}.pub-mock-side{background:var(--pub-dark);color:var(--pub-dark-soft);flex-direction:column;gap:9px;padding:12px 10px;font-size:9.5px;display:flex}.pub-mock-side b{color:var(--pub-dark-ink);margin-bottom:4px;font-size:10px}.pub-mock-side i{border-radius:5px;padding:4px 7px;font-style:normal}.pub-mock-side i.on{background:var(--pub-blue);color:oklch(98% .005 250)}.pub-mock-main{flex-direction:column;gap:12px;padding:14px;display:flex}.pub-mock-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pub-mock-stat{background:var(--pub-card);border:1px solid var(--pub-line);border-radius:8px;flex-direction:column;justify-content:center;gap:2px;padding:10px 12px;display:flex}.pub-mock-stat b{letter-spacing:-.03em;font-size:24px;font-weight:800;line-height:1.1;display:block}.pub-mock-stat span{color:var(--pub-ink-soft);font-size:9.5px;font-weight:600}.pub-mock-stat-ring{flex-direction:row;align-items:center;gap:9px}.pub-mock-ring{--pct:97;background:radial-gradient(closest-side, var(--pub-card) 74%, transparent 75% 100%), conic-gradient(var(--pub-green) calc(var(--pct) * 1%), oklch(92% .008 250) 0);border-radius:50%;flex-shrink:0;place-items:center;width:46px;height:46px;display:grid}.pub-mock-ring b{letter-spacing:-.02em;font-size:11.5px;font-weight:800}.pub-mock-ring b i{font-style:normal}.pub-mock-stat-ring>span:last-child{flex:1}.pub-mock-panels{flex:1;grid-template-columns:3fr 2fr;gap:8px;display:grid}.pub-mock-panel{background:var(--pub-card);border:1px solid var(--pub-line);border-radius:8px;padding:10px}.pub-mock-panel h5{text-transform:uppercase;letter-spacing:.06em;color:var(--pub-ink-soft);margin:0 0 8px;font-size:9.5px}.pub-mock-month{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.pub-mock-month u{color:var(--pub-ink-soft);text-align:center;padding-bottom:2px;font-size:8px;font-weight:700;text-decoration:none}.pub-mock-month em{aspect-ratio:1;color:oklch(36% .08 155);background:oklch(93% .025 155);border-radius:5px;place-items:center;font-size:8.5px;font-style:normal;font-weight:650;display:grid}.pub-mock-month em.x{color:oklch(42% .13 25);background:oklch(91% .05 25)}.pub-mock-month em.t{color:oklch(46% .11 75);background:oklch(94% .06 75)}.pub-mock-bars{align-items:stretch;gap:6px;height:120px;padding-top:6px;display:flex}.pub-mock-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.pub-mock-bar i{background:linear-gradient(180deg, var(--pub-blue), oklch(62% .16 262));border-radius:4px 4px 0 0;width:100%}.pub-mock-bar span{color:var(--pub-ink-soft);flex-shrink:0;font-size:7.5px}.pub-seam{background:linear-gradient(to bottom, transparent, var(--pub-paper));height:72px;margin-top:-72px;position:relative}.pub-section{padding:clamp(56px,8vw,96px) 0;scroll-margin-top:62px}.pub-section-head{max-width:60ch;margin:0 0 clamp(32px,4vw,52px)}.pub-eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--pub-blue-deep);margin:0 0 10px;font-size:12.5px;font-weight:700}.pub-section h2{font-size:var(--pub-h2);letter-spacing:-.02em;margin:0 0 12px;font-weight:800;line-height:1.15}.pub-section-head p{color:var(--pub-ink-soft);margin:0;font-size:16px}.pub-feature{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:clamp(28px,4.5vw,64px);padding:clamp(28px,4vw,44px) 0;display:grid}.pub-feature.is-flipped .pub-feature-copy{order:2}.pub-feature.is-flipped .pub-feature-visual{order:1}.pub-feature h3{letter-spacing:-.015em;margin:0 0 10px;font-size:22px;font-weight:750}.pub-feature p{color:var(--pub-ink-soft);max-width:48ch;margin:0 0 14px;font-size:15.5px}.pub-feature ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pub-feature li{align-items:baseline;gap:9px;font-size:14.5px;display:flex}.pub-feature li:before{content:"✓";color:var(--pub-green);font-weight:800}.pub-feature-visual{border:1px solid var(--pub-line);background:var(--pub-card);border-radius:14px;padding:16px;font-size:11px;box-shadow:0 20px 44px -20px oklch(30% .04 262/.35)}.pub-vis-month-head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.pub-vis-month-head b{letter-spacing:-.01em;font-size:13px;font-weight:750}.pub-vis-month-head span{color:var(--pub-ink-soft);font-size:10.5px}.pub-vis-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.pub-vis-grid i{aspect-ratio:1.15;color:oklch(35% .08 155);background:oklch(93% .025 155);border-radius:7px;place-items:center;font-size:11px;font-style:normal;font-weight:650;display:grid}.pub-vis-grid i.a{color:oklch(40% .13 25);background:oklch(90% .05 25)}.pub-vis-grid i.t{color:oklch(46% .11 75);background:oklch(94% .06 75)}.pub-vis-grid i.e{background:var(--pub-blue-tint);color:var(--pub-blue-deep)}.pub-vis-grid i.hdr{color:var(--pub-ink-soft);aspect-ratio:auto;background:0 0;padding-bottom:2px;font-size:9.5px;font-weight:700}.pub-vis-caption{color:var(--pub-ink-soft);gap:14px;margin-top:12px;font-size:10.5px;display:flex}.pub-vis-caption i{align-items:center;gap:5px;font-style:normal;display:inline-flex}.pub-vis-caption i:before{content:"";background:oklch(93% .025 155);border-radius:3px;width:8px;height:8px}.pub-vis-caption i:nth-child(2):before{background:oklch(90% .05 25)}.pub-vis-caption i:nth-child(3):before{background:oklch(94% .06 75)}.pub-vis-caption i.e:before{background:var(--pub-blue-tint)}.pub-vis-report{gap:6px;display:grid}.pub-vis-report .rrow{grid-template-columns:2fr repeat(4,1fr);align-items:center;gap:6px;display:grid}.pub-vis-report .rrow>*{background:oklch(95.5% .004 250);border-radius:5px;height:18px}.pub-vis-report .rrow b{color:var(--pub-ink-soft);background:0 0;height:auto;font-size:9.5px;font-weight:600}.pub-vis-report .rrow .g{place-items:center;height:18px;font-size:9px;font-weight:800;display:grid}.pub-vis-report .rrow .g.a{color:oklch(38% .1 155);background:oklch(92% .06 155)}.pub-vis-report .rrow .g.b{background:var(--pub-blue-tint);color:var(--pub-blue-deep)}.pub-vis-report .rrow .g.c{color:oklch(48% .11 75);background:oklch(95% .06 75)}.pub-vis-sched{gap:6px;display:grid}.pub-vis-sched .srow{grid-template-columns:52px 1fr;align-items:center;gap:8px;display:grid}.pub-vis-sched .srow span{color:var(--pub-ink-soft);text-align:right;font-size:9px}.pub-vis-sched .srow i{border-radius:6px;align-items:center;height:22px;padding:0 9px;font-size:9px;font-style:normal;font-weight:700;display:flex}.pub-vis-sched .s1{background:var(--pub-blue-tint);color:var(--pub-blue-deep);width:88%}.pub-vis-sched .s2{color:oklch(38% .09 155);background:oklch(93% .05 155);width:72%}.pub-vis-sched .s3{color:oklch(45% .11 300);background:oklch(94% .05 300);width:95%}.pub-vis-sched .s4{color:oklch(48% .11 75);background:oklch(95% .06 75);width:63%}.pub-more{background:var(--pub-card);border-block:1px solid var(--pub-line)}.pub-more-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 40px;max-width:860px;display:grid}.pub-more-item{align-items:baseline;gap:11px;padding:9px 0;font-size:15px;display:flex}.pub-more-item b{font-weight:650}.pub-more-item span{color:var(--pub-ink-soft)}.pub-more-item:before{content:"·";color:var(--pub-blue);font-size:22px;font-weight:900;line-height:1}.pub-steps{counter-reset:step;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);display:grid}.pub-step{padding-top:14px;position:relative}.pub-step:before{counter-increment:step;content:counter(step, decimal-leading-zero);letter-spacing:-.03em;color:oklch(87% .03 262);margin-bottom:6px;font-size:42px;font-weight:800;line-height:1;display:block}.pub-step h3{margin:0 0 6px;font-size:17px;font-weight:700}.pub-step p{color:var(--pub-ink-soft);max-width:34ch;margin:0;font-size:14.5px}.pub-pricing{background:linear-gradient(180deg, var(--pub-paper), oklch(95.5% .008 255))}.pub-price-panel{background:var(--pub-card);border:1px solid var(--pub-line);border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 28px 60px -28px oklch(30% .05 262/.4)}.pub-price-left{padding:clamp(24px,3.5vw,44px)}.pub-price-left h3{margin:0 0 4px;font-size:19px;font-weight:750}.pub-price-left .one-plan{color:var(--pub-ink-soft);margin:0 0 22px;font-size:14.5px}.pub-price-figures{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:4px;display:flex}.pub-price-figure{align-items:baseline;gap:8px;display:flex}.pub-price-figure strong{letter-spacing:-.03em;font-size:clamp(2.4rem,2rem + 1.6vw,3.2rem);font-weight:800}.pub-price-figure span{color:var(--pub-ink-soft);font-size:15px}.pub-price-discount{border:1.5px solid var(--pub-line);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:8px 16px;transition:border-color .24s,background .24s;display:flex}.pub-price-discount strong{letter-spacing:-.02em;font-size:22px;font-weight:800;line-height:1.1}.pub-price-discount span{color:var(--pub-ink-soft);text-transform:uppercase;letter-spacing:.05em;font-size:10.5px;font-weight:650}.pub-price-discount.on{background:oklch(96% .025 155);border-color:oklch(62% .14 155/.5)}.pub-price-discount.on strong{color:oklch(45% .12 155)}.pub-price-per{color:var(--pub-ink-soft);margin-bottom:26px;font-size:13.5px}.pub-slider-row{justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:14px;font-weight:650;display:flex}.pub-slider-row output{color:var(--pub-blue-deep);font-variant-numeric:tabular-nums}.pub-range{width:100%;accent-color:var(--pub-blue);height:32px}.pub-price-blocks{color:var(--pub-ink-soft);margin-bottom:22px;font-size:12.5px}.pub-price-ctas{flex-wrap:wrap;gap:10px;display:flex}.pub-price-right{border-left:1px solid var(--pub-line);background:oklch(96.5% .006 255);padding:clamp(24px,3.5vw,44px)}.pub-price-right h4{text-transform:uppercase;letter-spacing:.07em;color:var(--pub-ink-soft);margin:0 0 14px;font-size:13px}.pub-price-right ul{gap:11px;margin:0;padding:0;list-style:none;display:grid}.pub-price-right li{align-items:baseline;gap:10px;font-size:14.5px;display:flex}.pub-price-right li:before{content:"✓";color:var(--pub-green);font-weight:800}.pub-faq{max-width:760px}.pub-faq details{border-bottom:1px solid var(--pub-line)}.pub-faq summary{cursor:pointer;justify-content:space-between;gap:16px;padding:18px 2px;font-size:15.5px;font-weight:650;list-style:none;display:flex}.pub-faq summary::-webkit-details-marker{display:none}.pub-faq summary:after{content:"+";color:var(--pub-ink-soft);font-size:22px;font-weight:400;transition:transform .18s cubic-bezier(.22,1,.36,1)}.pub-faq details[open] summary:after{transform:rotate(45deg)}.pub-faq details p{color:var(--pub-ink-soft);max-width:68ch;margin:0;padding:0 2px 18px;font-size:14.5px}.pub-cta{background:linear-gradient(150deg, var(--pub-dark), var(--pub-dark-2));color:var(--pub-dark-ink);text-align:center;padding:clamp(56px,8vw,92px) 0}.pub-cta h2{font-size:var(--pub-h2);letter-spacing:-.02em;margin:0 0 10px;font-weight:800}.pub-cta p{color:var(--pub-dark-soft);margin:0 0 26px;font-size:16px}.pub-footer{background:var(--pub-dark);color:var(--pub-dark-soft);border-top:1px solid oklch(100% 0 0/.07);padding:26px 0;font-size:13.5px}.pub-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.pub-footer a{color:var(--pub-dark-ink);text-decoration:none}.pub-footer a:hover{text-decoration:underline}.pub-foot-legal{border-top:1px solid oklch(100% 0 0/.07);margin-top:14px;padding-top:12px}.pub-foot-legal small{color:var(--pub-dark-soft);opacity:.85;font-size:12px;line-height:1.5}.pub-signup{grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:100vh;display:grid}.pub-signup-aside{background:linear-gradient(165deg, var(--pub-dark), var(--pub-dark-2));color:var(--pub-dark-ink);flex-direction:column;gap:22px;padding:clamp(28px,4vw,56px);display:flex}.pub-signup-aside .pub-logo{font-size:19px}.pub-signup-aside h2{letter-spacing:-.02em;margin:10px 0 0;font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);font-weight:800;line-height:1.15}.pub-signup-aside ul{gap:12px;margin:8px 0 0;padding:0;list-style:none;display:grid}.pub-signup-aside li{color:var(--pub-dark-soft);align-items:baseline;gap:10px;font-size:14.5px;display:flex}.pub-signup-aside li:before{content:"✓";color:oklch(72% .13 155);font-weight:800}.pub-signup-aside .price-line{color:var(--pub-dark-soft);border-top:1px solid oklch(100% 0 0/.1);margin-top:auto;padding-top:18px;font-size:13.5px}.pub-signup-main{justify-content:center;align-items:center;padding:clamp(24px,4vw,56px);display:flex}.pub-signup-card{width:100%;max-width:560px}.pub-signup-card h1{letter-spacing:-.02em;margin:0 0 4px;font-size:24px;font-weight:800}.pub-signup-card .sub{color:var(--pub-ink-soft);margin:0 0 24px;font-size:14.5px}.pub-form-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.pub-field{flex-direction:column;gap:5px;display:flex}.pub-field.span2{grid-column:span 2}.pub-field label{font-size:13px;font-weight:650}.pub-field input{font:inherit;border:1px solid var(--pub-line);background:var(--pub-card);border-radius:9px;padding:10px 12px;font-size:14.5px;transition:border-color .14s,box-shadow .14s}.pub-field input:focus{border-color:var(--pub-blue);outline:none;box-shadow:0 0 0 3px oklch(55% .19 262/.18)}@media (width<=640px){.pub-field input{font-size:1rem}}.pub-field .hint{color:var(--pub-ink-soft);font-size:11.5px}.pub-field .err{color:oklch(55% .19 25);font-size:11.5px}.pub-form-section{text-transform:uppercase;letter-spacing:.07em;color:var(--pub-ink-soft);grid-column:span 2;margin-top:10px;font-size:12px;font-weight:700}.pub-signup-error{color:oklch(45% .16 25);background:oklch(96% .03 25);border:1px solid oklch(88% .06 25);border-radius:9px;grid-column:span 2;padding:10px 13px;font-size:13.5px}.pub-plan-toggle{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;display:grid}.pub-plan-opt{border:1.5px solid var(--pub-line);cursor:pointer;background:var(--pub-card);text-align:left;font:inherit;border-radius:11px;padding:12px 14px;transition:border-color .14s,box-shadow .14s}.pub-plan-opt.on{border-color:var(--pub-blue);box-shadow:0 0 0 3px oklch(55% .19 262/.14)}.pub-plan-opt b{font-size:14.5px;display:block}.pub-plan-opt span{color:var(--pub-ink-soft);font-size:12px}.pub-stepper{align-items:center;gap:12px;display:flex}.pub-stepper button{border:1px solid var(--pub-line);background:var(--pub-card);cursor:pointer;border-radius:9px;width:34px;height:34px;font-size:17px;font-weight:700}.pub-stepper button:disabled{opacity:.4;cursor:default}.pub-stepper .val{text-align:center;min-width:130px}.pub-stepper .val b{font-size:16px}.pub-stepper .val span{color:var(--pub-ink-soft);font-size:11px;display:block}.pub-signup-success{text-align:center;padding:40px 0}.pub-signup-success .big{margin-bottom:10px;font-size:44px}.pub-signup-success code{background:var(--pub-blue-tint);color:var(--pub-blue-deep);border-radius:7px;padding:3px 10px;font-size:18px;font-weight:800}@media (width<=960px){.pub-hero-grid,.pub-feature,.pub-price-panel,.pub-signup{grid-template-columns:1fr}.pub-feature.is-flipped .pub-feature-copy{order:1}.pub-feature.is-flipped .pub-feature-visual{order:2}.pub-price-right{border-left:none;border-top:1px solid var(--pub-line)}.pub-steps,.pub-more-grid{grid-template-columns:1fr}.pub-nav-links a[href=\#features],.pub-nav-links a[href=\#faq]{display:none}.pub-signup-aside{flex-flow:wrap;align-items:center;gap:10px 16px;padding:16px clamp(16px,5vw,24px)}.pub-signup-aside h2,.pub-signup-aside ul{display:none}.pub-signup-aside .price-line{border-top:none;flex:100%;margin-top:0;padding-top:0;font-size:12.5px;line-height:1.45}}@media (width<=560px){.pub-form-grid{grid-template-columns:1fr}.pub-field.span2,.pub-form-section,.pub-signup-error{grid-column:span 1}.pub-plan-toggle{grid-template-columns:1fr}}@media (pointer:coarse){.pub-stepper button{width:44px;height:44px}.pub-nav-links a,.pub-footer a{padding-block:6px}}@keyframes pub-settle{0%{transform:translateY(7px)}to{transform:none}}.pub-hero-copy,.pub-mock,.pub-section>.pub-wrap{animation:.52s cubic-bezier(.16,1,.3,1) backwards pub-settle}.pub-mock{animation-delay:90ms}@media (prefers-reduced-motion:reduce){.pub-btn,.pub-faq summary:after{transition:none}.pub-hero-copy,.pub-mock,.pub-section>.pub-wrap{animation:none}}.pub-fallback-backdrop{z-index:200;background:#080f1eb8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.pub-fallback{color:#0f172a;background:#fff;border-radius:14px;width:min(560px,100%);max-height:88vh;padding:24px 26px 22px;position:relative;overflow-y:auto;box-shadow:0 24px 60px #00000059}.pub-fallback h3{margin:0 0 6px;font-size:20px;font-weight:800}.pub-fallback-note{color:#475569;margin:0 0 16px;font-size:13.5px;line-height:1.5}.pub-fallback-x{cursor:pointer;color:#64748b;background:0 0;border:0;font-size:24px;line-height:1;position:absolute;top:10px;right:12px}.pub-fallback-x:hover{color:#0f172a}.pub-fallback-label{letter-spacing:.05em;text-transform:uppercase;color:#64748b;margin:12px 0 4px;font-size:11px;font-weight:700;display:block}.pub-fallback-row{align-items:center;gap:10px;display:flex}.pub-fallback-row code{white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;flex:1;min-width:0;padding:8px 10px;font-size:13px;overflow-x:auto}.pub-fallback-body{color:#0f172a;resize:vertical;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;width:100%;margin-top:4px;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.55}.pub-fallback-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.pub-fallback .pub-btn-ghost{color:#0f172a;border-color:#cbd5e1}.pub-what{background:var(--pub-card);padding:clamp(44px,6vw,72px) 0 clamp(28px,4vw,44px)}.pub-what .pub-wrap{max-width:780px}.pub-what h2{font-size:var(--pub-h2);letter-spacing:-.02em;margin:0 0 18px}.pub-what h3{margin:26px 0 8px;font-size:1.05rem}.pub-what p{max-width:68ch;color:var(--pub-ink);margin:0 0 14px;font-size:16px;line-height:1.7}.pub-what-lead{font-size:17px!important}.pub-what-list{max-width:68ch;margin:0 0 16px;padding-left:20px}.pub-what-list li{margin-bottom:6px;font-size:15.5px;line-height:1.6}.pub-what a{color:var(--pub-blue);text-underline-offset:2px;text-decoration:underline}.pub-hero-purpose{max-width:52ch;color:var(--pub-dark-soft);background:oklch(100% 0 0/.06);border:1px solid oklch(100% 0 0/.12);border-radius:10px;margin:22px 0 0;padding:12px 14px;font-size:13.5px;line-height:1.6}.pub-hero-purpose strong{color:var(--pub-dark-ink)}.pub-hero-purpose a{color:oklch(78% .11 262);text-underline-offset:2px;white-space:nowrap;text-decoration:underline}.incident-form-columns{gap:var(--space-6);grid-template-columns:1.05fr .95fr;align-items:stretch;display:grid}.incident-template-row .form-group{align-items:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-4);flex-flow:wrap}.incident-template-row .form-label{white-space:nowrap;margin:0}.incident-template-row .form-select{flex:16rem;min-width:0}.incident-template-row .form-hint{flex-basis:100%;margin-top:0}.incident-form-desc{flex-direction:column;display:flex}.incident-form-desc-textarea{min-height:12rem}.incident-form-desc-group{flex:1;margin-bottom:0}.incident-form-desc-group .incident-form-desc-textarea{flex:1}.incident-fact-group{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);padding:var(--space-3) var(--space-4)}.incident-form-facts{gap:var(--space-2);flex-direction:column;display:flex}.incident-fact-group .eyebrow{margin-bottom:var(--space-2)}.incident-fact-group .form-group:last-child{margin-bottom:0}.incident-fact-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.incident-fact-head .eyebrow{margin-bottom:0}.incident-fact-group .form-group,.incident-fact-group .form-grid-2{margin-bottom:var(--space-2)}.incident-fact-group .form-grid-2 .form-group{margin-bottom:0}.incident-form-bottom{margin-top:var(--space-3)}.incident-form-bottom .form-textarea{min-height:3.75rem}.incident-form-actions{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.incident-form-review{align-items:center;gap:var(--space-2);cursor:pointer;margin:0;display:inline-flex}.incident-location-chips{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.incident-location-other{flex:8rem;min-width:6.5rem}.incident-location-chip{border-radius:var(--radius-full);min-height:2rem;font-size:var(--fs-sm);border:1.5px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;padding:4px 12px;font-family:inherit;font-weight:600;transition:border-color .12s,color .12s}.incident-location-chip.is-on{border-color:var(--chip-on-border,#cbd5e1);background:var(--chip-on-bg,#e2e8f0);color:var(--chip-on-ink,#1e293b)}.incident-location-chip:hover:not(.is-on){border-color:var(--primary);color:var(--primary)}.incident-location-chip:active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.incident-location-chip{transition:none}.incident-location-chip:active{transform:none}}.incident-severity-value{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.incident-severity-value .form-label{color:var(--muted)}.incident-fact-row{margin-top:var(--space-2)}.incident-fact-chip{border-radius:var(--radius-full);font-size:var(--fs-xs);background:var(--chip-on-bg,#e2e8f0);color:var(--chip-on-ink,#1e293b);align-items:center;padding:2px 10px;font-weight:600;display:inline-flex}@media (width<=640px){.incident-form-columns{gap:var(--space-4);grid-template-columns:1fr}.incident-form-desc-textarea{min-height:10rem}.incident-location-chip{min-height:2.75rem}.incident-location-other,.incident-fact-group .incident-type-other{flex-basis:100%;min-height:2.75rem}}.student-search{position:relative}.student-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:2px 4px;font-size:18px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.student-search-menu{z-index:50;border:1px solid var(--border);background:#fff;border-radius:10px;max-height:260px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 28px #00000024}.student-search-option{text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #f1f5f9;flex-direction:column;align-items:flex-start;width:100%;padding:8px 12px;display:flex}.student-search-option-mark{white-space:normal;max-width:100%;margin-top:4px}.student-search-option:last-child{border-bottom:none}.student-search-option:hover{background:#f0f9ff}.student-search-option-name{color:var(--text);font-size:13px;font-weight:600}.student-search-option-meta{color:var(--text-muted);margin-top:1px;font-size:11px}.student-search-empty{color:var(--text-muted);padding:10px 12px;font-size:13px}.student-search-group{color:var(--text-muted);background:var(--table-head-bg);border-top:1px solid var(--border);border-bottom:1px solid #f1f5f9;padding:6px 12px;font-size:11px}.student-search-option+.student-search-group{border-top-color:#0000}.student-search-option-unlisted{border-top:1px solid var(--border)}.student-search-option-unlisted .student-search-option-name{font-style:italic}.student-search-error{color:var(--danger-ink);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.student-search-loading{display:block}.student-search-option-skel{cursor:default;gap:1px}.student-search-option-skel:hover{background:0 0}.student-search-skel-name{width:46%;height:17px;display:block}.student-search-skel-meta{width:30%;height:15px;display:block}.involved-persons{flex-direction:column;gap:8px;display:flex}.involved-person-row{grid-template-columns:120px 1fr auto;align-items:start;gap:8px;min-width:0;display:grid}.involved-person-row>*{min-width:0}.involved-person-role{align-self:stretch}.involved-person-remove{align-self:center}.incident-notes-log{flex-direction:column;gap:6px;margin:8px 0;display:flex}.incident-note{border:1px solid var(--border);background:#f8fafc;border-radius:8px;padding:6px 9px;font-size:12px}.incident-note-meta{color:var(--text-muted);margin-top:2px;font-size:11px}.incident-note-add{align-items:flex-start;gap:8px;margin-top:6px;display:flex}.incident-note-add .form-input{flex:1}.incident-resolve-box{border:1px solid var(--border);background:#f8fafc;border-radius:8px;padding:10px}.incident-resolve-box .form-label{margin-bottom:4px;display:block}.incident-resolve-actions{gap:8px;margin-top:8px;display:flex}.iep-badge{letter-spacing:.06em;border-radius:var(--radius-sm);background:var(--chip-on-bg);color:var(--chip-on-ink);vertical-align:middle;white-space:nowrap;margin-left:.4em;padding:0 .4em;font-size:.72em;font-weight:600;line-height:1.6;display:inline-block}.incident-type-checklist{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.incident-type-option{color:var(--text);cursor:pointer;border:1.5px solid var(--border);background:var(--card);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.incident-type-option:has(input:checked){border-color:var(--chip-on-border,#cbd5e1);background:var(--chip-on-bg,#e2e8f0);color:var(--chip-on-ink,#1e293b);font-weight:600}.incident-type-option:hover{border-color:var(--primary)}@media (prefers-reduced-motion:reduce){.incident-type-option{transition:none}}.incident-type-other{flex:180px;min-width:140px}@media (width<=640px){.incident-type-option{min-height:2.75rem}}.hp-error{background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger-ink);border-radius:var(--radius);font-size:var(--fs-sm);margin-bottom:12px;padding:9px 13px}.hp-notice{background:var(--primary-light);border:1px solid var(--primary);color:var(--primary-dark);border-radius:var(--radius);font-size:var(--fs-sm);margin-bottom:12px;padding:9px 13px}.hp-loading{color:var(--muted);font-size:var(--fs-sm);padding:6px 2px}.hp-board{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:18px;padding:14px 16px}.hp-board-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.hp-board-head h2{font-size:var(--fs-h3);color:var(--text);align-items:center;gap:8px;margin:0;display:flex}.hp-board-count{background:var(--surface-2);border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-full);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;padding:1px 9px;font-weight:700}.hp-board-count.is-overdue{background:var(--danger-bg);border-color:var(--danger);color:var(--danger-ink)}.hp-capacity-strip{flex-wrap:wrap;gap:8px;display:flex}.hp-capacity{border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--fs-sm);color:var(--text);background:var(--surface-2);align-items:center;gap:6px;padding:4px 12px;font-weight:600;display:inline-flex}.hp-capacity strong{font-variant-numeric:tabular-nums}.hp-capacity-n{white-space:nowrap}.hp-capacity-icon{font-size:14px}.hp-line{border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary-light);margin-bottom:12px;padding:9px 11px}.hp-line-head{align-items:center;gap:7px;margin-bottom:7px;display:flex}.hp-line-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--primary-dark);font-weight:800}.hp-line-count{background:var(--primary);color:#fff;border-radius:var(--radius-full);font-size:var(--fs-xs);padding:0 8px;font-weight:700}.hp-line-note{font-size:var(--fs-xs);color:var(--primary-dark);opacity:.75}.hp-line-list{gap:5px;margin:0;padding:0;list-style:none;display:grid}.hp-line-item{background:var(--card);border-radius:var(--radius-sm);font-size:var(--fs-sm);border:1px solid #0000;align-items:center;gap:9px;padding:5px 9px;display:flex}.hp-line-item.is-next{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.hp-line-pos{border-radius:var(--radius-full);background:var(--surface-2);width:19px;height:19px;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0;place-items:center;font-size:10px;font-weight:800;display:grid}.hp-line-item.is-next .hp-line-pos{background:var(--primary);color:#fff}.hp-line-who-wrap{flex-direction:column;min-width:0;display:flex}.hp-line-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.hp-line-waited{color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;margin-left:auto}.hp-line-why{color:var(--muted);font-size:var(--fs-xs);text-align:right;max-width:22rem}.hp-capacity-queue{font-style:normal;font-size:var(--fs-xs);opacity:.8;border-left:1px solid;margin-left:2px;padding-left:4px;font-weight:700}.hp-student.is-queueable{border-style:dashed;border-color:var(--primary)}.hp-student-queue{font-size:var(--fs-xs);color:var(--primary-dark);white-space:normal;font-weight:600}.hp-board-empty{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);font-size:var(--fs-sm);padding:22px}.hp-cards{gap:8px;margin:0;padding:0;list-style:none;display:grid}@media (width>=900px){.hp-cards{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}.hp-card{border:1px solid var(--border);border-left:4px solid var(--success);border-radius:var(--radius);background:var(--card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex}.hp-card.is-due{border-left-color:var(--warning);background:#fffdf5}.hp-card.is-overdue{border-left-color:var(--danger);background:#fff5f5}.hp-card.is-unauthorised{border-color:var(--danger);border-left-color:var(--danger);background:var(--danger-bg)}.hp-card.is-unauthorised .hp-card-clock,.hp-card.is-unauthorised .hp-card-clock small{color:var(--danger-ink)}.hp-card.is-unauthorised .hp-card-name{white-space:normal}.hp-lwop-chip{background:var(--danger);color:#fff;width:fit-content;font-size:var(--fs-xs);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border-radius:999px;margin:3px 0 0;padding:1px 7px;font-weight:700;display:block}.hp-confirm.hp-confirm-wide{text-align:left;width:min(720px,96vw);max-width:720px;max-height:90vh;padding:0;overflow:auto}.hp-confirm.hp-confirm-wide .card{box-shadow:none;border:0;margin:0}.hp-dest.is-danger{border-color:var(--danger);color:var(--danger-ink)}.hp-dest.is-danger.is-active{background:var(--danger);border-color:var(--danger);color:#fff}.hp-dest.is-danger.is-active small{color:#fff;opacity:.9}.hp-card.is-pending{opacity:.6}.hp-card.hp-highlight{outline:2px solid var(--primary);outline-offset:2px;animation:1.8s ease-out hp-highlight-flash}@keyframes hp-highlight-flash{0%,45%{box-shadow:0 0 0 6px var(--primary-light)}to{box-shadow:0 0 0 6px #0000}}@media (prefers-reduced-motion:reduce){.hp-card.hp-highlight{animation:none}}.hp-card-main{flex:16rem;align-items:center;gap:10px;min-width:11rem;display:flex}.hp-card-dest{font-size:20px;line-height:1}.hp-card-who{flex-direction:column;min-width:0;display:flex}.hp-card-name{font-weight:700;font-size:var(--fs-base);color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hp-card-sub{font-size:var(--fs-xs);color:var(--muted);overflow-wrap:break-word}.hp-card-note{border-left:2px solid var(--border);font-size:var(--fs-xs);color:var(--text-muted);overflow-wrap:break-word;margin-top:3px;padding-left:7px;display:block}.hp-card-note-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:10px;font-weight:700}.hp-card-note-label:after{content:" · ";letter-spacing:0;font-weight:600}.hp-card-clock{font-variant-numeric:tabular-nums;color:var(--text);flex-direction:column;align-items:flex-end;margin-left:auto;font-size:19px;font-weight:800;line-height:1.1;display:flex}.hp-card-clock small{font-size:var(--fs-xs);color:var(--muted);font-weight:600}.hp-card.is-due .hp-card-clock{color:var(--warning-ink)}.hp-card.is-overdue .hp-card-clock,.hp-card.is-overdue .hp-card-clock small{color:var(--danger-ink)}.hp-card-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;display:flex}.hp-card-flagged{font-size:var(--fs-xs);color:var(--danger-ink);background:var(--danger-bg);border-radius:var(--radius-full);padding:3px 9px;font-weight:700}.hp-issue{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px}.hp-issue-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.hp-issue-head h2{font-size:var(--fs-h3);color:var(--text);margin:0}.hp-class-picker{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:8px;display:flex}.hp-class-picker .form-select{width:auto;font-size:var(--fs-sm);padding:4px 26px 4px 9px}@media (width<=640px){.hp-class-picker .form-select{font-size:1rem}}.hp-dest{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);min-width:96px;color:var(--text);font-size:var(--fs-sm);flex-direction:column;align-items:center;gap:1px;padding:8px 14px;font-weight:600;display:flex}.hp-dest small{font-size:var(--fs-xs);color:var(--muted);font-weight:500}.hp-dest:hover{border-color:var(--primary)}.hp-dest--bathroom,.hp-capacity--bathroom{background:var(--primary-light);border-color:var(--primary)}.hp-dest--bathroom small{color:var(--primary-dark)}.hp-dest--office,.hp-capacity--office{background:var(--warning-bg);border-color:var(--warning)}.hp-dest--office small{color:var(--warning-ink)}.hp-dest--nurse,.hp-capacity--nurse{background:var(--st-present-bg,#d1fae5);border-color:var(--st-present-fg,#065f46)}.hp-dest--nurse small{color:var(--st-present-fg,#065f46)}.hp-dest--left_without_permission,.hp-capacity--left_without_permission{background:var(--danger-bg)}.hp-cancel-out{color:var(--danger-ink);border-color:var(--danger)}.hp-cancel-out:hover{background:var(--danger-bg)}.hp-dest.is-active{background:var(--primary-light);border-color:var(--primary);color:var(--primary-dark)}.hp-dest.is-active small{color:var(--primary-dark)}.hp-search{max-width:320px;margin-bottom:12px}.hp-issue-empty{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);font-size:var(--fs-sm);padding:20px}.hp-roster-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);overflow:hidden}.hp-roster{border-collapse:collapse;width:100%;font-size:var(--table-fs)}.hp-roster th,.hp-roster td{padding:var(--table-pad);text-align:left;border-bottom:1px solid var(--border)}.hp-roster thead th{background:var(--table-head-bg);color:var(--text-muted);white-space:nowrap;font-weight:600}.hp-roster tbody tr:last-child td{border-bottom:none}.hp-roster-group th{padding:6px var(--table-pad);white-space:nowrap;color:var(--text-muted);background:var(--table-head-bg);border-top:1px solid var(--border);font-size:11px;font-weight:600}.hp-more-loading{padding:2px 0}.hp-roster-num{text-align:center;vertical-align:middle;width:8.5rem}.hp-confirm-allowance{border-radius:var(--radius-sm);font-size:var(--fs-sm);margin:4px 0 0;padding:6px 10px;font-weight:600}.hp-confirm-allowance.is-last{background:var(--warning-bg);color:var(--warning-ink)}.hp-confirm-allowance.is-spent{background:var(--danger-bg);color:var(--danger-ink)}.hp-roster-action{white-space:nowrap;text-align:right;width:1%}.hp-roster-name{text-align:left;color:var(--text);font-weight:600}.hp-roster-room{color:var(--text-muted);white-space:nowrap}.hp-roster-zero{color:var(--text-muted);font-weight:600}.hp-roster-row{cursor:pointer}.hp-roster-row:hover th,.hp-roster-row:hover td,.hp-roster-row:focus-visible th,.hp-roster-row:focus-visible td{background:var(--table-hover)}.hp-roster-row.is-queueable .hp-roster-name{font-style:italic}.hp-roster-row.is-blocked{cursor:not-allowed;background:var(--surface-2)}.hp-roster-row.is-blocked:hover th,.hp-roster-row.is-blocked:hover td{background:var(--surface-2)}.hp-roster-row.is-blocked .hp-roster-name{color:var(--muted)}.hp-roster-row.is-last-pass th,.hp-roster-row.is-last-pass td,.hp-roster-row.is-last-pass:hover th,.hp-roster-row.is-last-pass:hover td{background:var(--warning-bg)}.hp-roster-row.is-all-spent th,.hp-roster-row.is-all-spent td,.hp-roster-row.is-all-spent:hover th,.hp-roster-row.is-all-spent:hover td{background:var(--danger-bg)}.hp-left{font-size:var(--fs-xs);white-space:nowrap;margin-top:2px;font-weight:700;display:block}.hp-left.is-last{color:var(--warning-ink)}.hp-left.is-spent{color:var(--danger-ink)}.hp-roster-row.is-away{opacity:.55}.hp-away{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;margin-left:8px;font-weight:600;display:inline-block}.hp-away-unread{background:var(--warning-bg);border:1px solid var(--warning);border-radius:var(--radius);color:var(--warning-ink);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;padding:7px 11px;display:flex}.hp-confirm-away{font-size:var(--fs-sm);color:var(--muted);margin:2px 0 6px;font-weight:600}.hp-roster-why{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;text-align:right;margin-top:3px;font-weight:500;display:block}.hp-roster-send{opacity:.75;transition:opacity .1s}.hp-roster-row:hover .hp-roster-send,.hp-roster-send:focus-visible{opacity:1}.hp-roster-send:disabled{opacity:.4}@media (width<=560px){.hp-roster-room,.hp-roster thead th:nth-child(2){display:none}.hp-roster-num{width:5.5rem}}.hp-students{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.hp-student{text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);width:100%;color:var(--text);font-family:inherit;font-size:var(--fs-base);flex-direction:column;gap:3px;padding:10px 12px;font-weight:600;display:flex}.hp-student:hover:not(:disabled){border-color:var(--primary);background:var(--primary-light)}.hp-student:disabled{cursor:not-allowed}.hp-student-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hp-tally{border-radius:var(--radius-full);font-size:var(--fs-xs);background:var(--surface-2);color:var(--muted);border:1px solid var(--border);align-self:flex-start;padding:1px 8px;font-weight:700;display:inline-block}.hp-tally.is-frequent{background:var(--warning-bg);border-color:var(--warning);color:var(--warning-ink)}.hp-tally.is-excessive{background:var(--danger-bg);border-color:var(--danger);color:var(--danger-ink)}.hp-student.is-frequent{border-color:var(--warning)}.hp-student.is-excessive{border-color:var(--danger)}.hp-student.is-blocked{background:var(--surface-2);color:var(--muted);border-style:dashed}.hp-student-blocked{font-size:var(--fs-xs);color:var(--muted);white-space:normal;font-weight:500}.hp-prompt-line{font-size:var(--fs-base);color:var(--text);margin:0 0 14px}.hp-prompt-actions{gap:8px;display:grid}.hp-prompt-actions .btn{width:100%}.hp-prompt-later{width:100%;margin-top:10px}.hps{max-width:780px}.hps-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.hps-head h2{font-size:var(--fs-h3);color:var(--text);margin:0 0 2px}.hps-sub{font-size:var(--fs-sm);color:var(--muted);max-width:60ch;margin:0}.hps-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:14px;padding:14px 16px}.hps-card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:4px;padding-bottom:10px;display:flex}.hps-card-head h3{font-size:var(--fs-lg);color:var(--text);margin:0 0 2px}.hps-question{font-size:var(--fs-sm);color:var(--muted);max-width:62ch;margin:0}.hps-field{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.hps-field:last-child{border-bottom:0;padding-bottom:2px}.hps-field-text{flex:320px;min-width:0}.hps-label{font-size:var(--fs-base);color:var(--text);font-weight:600;display:block}.hps-hint{font-size:var(--fs-sm);color:var(--muted);max-width:58ch;margin:2px 0 0}.hps-stepper{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:2px;padding:3px;display:inline-flex}.hps-step{border-radius:var(--radius-sm);background:var(--card);width:34px;height:34px;color:var(--text);cursor:pointer;border:0;font-size:18px;line-height:1}@media (width<=768px){.hps-step{background-clip:content-box;width:44px;height:44px;padding:5px}}.hps-step:hover:not(:disabled){background:var(--primary-light);color:var(--primary-dark)}.hps-step:disabled{opacity:.35;cursor:default}.hps-value{text-align:center;min-width:76px;color:var(--text);font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.hps-value small{font-size:var(--fs-xs);color:var(--muted);margin-left:3px;font-weight:600}.hps-value.is-off{font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.hps-preview{background:var(--surface-2)}.hps-preview-row{border-bottom:1px solid var(--border);padding:12px 0}.hps-preview-row:last-of-type{border-bottom:0}.hps-preview-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px;font-weight:700;display:block}.hps-preview-students{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.hps-preview-students .hp-student{cursor:default}.hps-preview-note{font-size:var(--fs-sm);color:var(--muted);margin:10px 0 0}.hp-confirm-backdrop{z-index:1400;position:fixed;inset:0}.hp-confirm-scrim{position:absolute;inset:0}.hp-confirm-backdrop{background:#0f121c8c;grid-template-rows:minmax(min-content,50vh);place-items:center;padding:16px;display:grid;overflow-y:auto}.hp-confirm{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(380px,100%);box-shadow:var(--shadow-lg);text-align:center;padding:22px 22px 18px;position:relative}.hp-confirm-kicker{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-weight:700}.hp-confirm h3{font-size:var(--fs-h2);margin:6px 0 4px;line-height:1.15}.hp-confirm-detail{color:var(--muted);font-size:var(--fs-md);margin:0 0 18px}.hp-confirm-actions{gap:10px;display:flex}.hp-confirm-actions .btn{font-size:var(--fs-base);flex:1;padding-block:10px}.hp-confirm-who{color:var(--text-muted);margin:2px 0 6px;font-size:12.5px;font-weight:600}.hp-confirm-dests{grid-template-columns:1fr 1fr;gap:6px;margin:10px 0 12px;display:grid}.hp-confirm-dests .hp-dest{width:100%;min-width:0;padding:8px 6px}.hp-confirm-dests .hp-dest:disabled{cursor:not-allowed;background:var(--surface-2,#f8fafc);color:var(--muted)}.hp-confirm-dests .hp-dest:disabled:hover{border-color:var(--border)}.hp-dest-why{font-size:var(--fs-xs);color:var(--danger-ink);white-space:normal;font-weight:600;line-height:1.3}.hp-student-where{color:var(--text-muted);margin-top:2px;font-size:11px;font-weight:500;display:block}.hp-empty-line{margin:0 0 10px}.hp-line-who{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;display:block;overflow:hidden}.hp-roster-gender{white-space:nowrap}.hp-gchip{text-align:center;min-width:20px;font-size:var(--fs-xs);border-radius:var(--radius-full);padding:0 7px;font-weight:800;line-height:1.5;display:inline-block}.hp-gchip--male{color:#1d4ed8;background:#dbeafe}.hp-gchip--female{color:#9d174d;background:#fce7f3}.hp-card-name .hp-gchip,.hp-line-name .hp-gchip,.hp-confirm .hp-gchip{vertical-align:middle;margin-left:6px}.hp-class-select{max-width:340px;margin-bottom:10px}@media (width<=560px){.hp-capacity-strip{grid-template-columns:1fr 1fr;gap:6px;width:100%;display:grid}.hp-capacity{font-size:var(--fs-xs);justify-content:flex-start;padding:4px 8px}.hp-search,.hp-class-select{max-width:none}.hp-roster-gender{display:none}.hp-roster-why{white-space:normal;max-width:12rem}.hp-line-why{max-width:none}}.hp-confirm-override{border-top:1px solid var(--border);background:var(--surface-2,#f8fafc);border-radius:var(--radius-sm);text-align:left;margin:12px 0 0;padding:10px 12px}.hp-confirm-override label{font-size:var(--fs-sm);margin-bottom:6px;font-weight:600;display:block}.hp-confirm-override .form-input{width:100%}.hp-confirm-override .ui-modal-note{font-size:var(--fs-xs);margin:6px 0 0}.hp-told{border:1px solid #0000;border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.hp-told.is-frequent{background:var(--warning-bg);border-color:var(--warning);color:var(--warning-ink)}.hp-told.is-excessive{background:var(--danger-bg);border-color:var(--danger);color:var(--danger-ink)}.hp-office-head{color:var(--text-muted);margin:14px 0 6px;font-size:13px;font-weight:600}.hp-office-head small{font-weight:400}.ann-wrap{margin-bottom:var(--space-4)}.ann-manage-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ann-manage-title{color:var(--text-muted);font-size:13px;font-weight:700}.ann-error{margin-bottom:10px;font-size:13.5px}.ann-banner{background:var(--primary-light,#eff6ff);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:var(--radius-lg,12px);cursor:pointer;align-items:flex-start;gap:14px;margin-bottom:10px;padding:16px 18px;transition:box-shadow .14s,transform .14s;animation:.24s cubic-bezier(.16,1,.3,1) both ann-in;display:flex}.ann-banner:hover{box-shadow:var(--shadow-md,0 4px 14px #0f172a1f);transform:translateY(-1px)}@keyframes ann-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.ann-banner{transition:box-shadow .14s;animation:none}.ann-banner:hover{transform:none}}.ann-icon{font-size:24px;line-height:1.2}.ann-content{flex:1;min-width:0}.ann-title{color:var(--text);font-size:16px;font-weight:750}.ann-body{color:var(--text);white-space:pre-wrap;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:3px;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.ann-meta{color:var(--text-muted);flex-wrap:wrap;gap:12px;margin-top:8px;font-size:12px;display:flex}.ann-replies{color:var(--primary-dark);font-weight:650}.ann-dismiss{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm,6px);background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:18px;line-height:1;position:relative}.ann-dismiss:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ann-dismiss:hover{color:var(--text);background:#0f172a0f}.ann-mgr-list{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.ann-mgr-row{border:1px solid var(--border);border-radius:var(--radius-md,10px);align-items:center;gap:10px;padding:10px 12px;display:flex}.ann-mgr-main{flex:1;min-width:0}.ann-mgr-title{font-size:13.5px;font-weight:600}.ann-mgr-sub{color:var(--text-muted);margin-top:2px;font-size:12px}.ann-badge{border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.ann-badge.is-live{color:#15803d;background:#dcfce7}.ann-badge.is-upcoming{color:#b45309;background:#fef3c7}.ann-badge.is-expired{background:var(--chip-on-bg);color:var(--text-muted)}.ann-mgr-actions{flex-shrink:0;gap:6px;display:flex}.ann-mgr-delete{color:var(--danger-ink)}.ann-mgr-delete:hover:not(:disabled){color:var(--danger-ink);background:var(--danger-bg)}.ann-aud-checks{flex-wrap:wrap;gap:10px;display:flex}.ann-aud-checks label{cursor:pointer;align-items:center;gap:6px;min-height:2.75rem;font-size:13px;display:inline-flex}.ann-emg-badge{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--danger-ink);background:var(--danger-bg);border-radius:var(--radius-full);vertical-align:1px;margin-right:6px;padding:1px 7px;font-weight:800;display:inline-block}.multiselect{position:relative}.multiselect-trigger{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--text);font-size:var(--fs-md);cursor:pointer;text-align:left;transition:border-color .14s,box-shadow .14s;display:flex}.multiselect-trigger:hover:not(:disabled){border-color:var(--border-strong)}.multiselect-trigger:disabled{opacity:.6;cursor:not-allowed}.multiselect-trigger:focus-visible{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.multiselect-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.multiselect-trigger:not(.has-value) .multiselect-text{color:var(--muted)}.multiselect-caret{color:var(--muted);flex-shrink:0;font-size:.7rem}.multiselect-menu{z-index:3200;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);overscroll-behavior:contain;padding:var(--space-1);position:absolute;overflow-y:auto}.multiselect-option{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-md);display:flex}.multiselect-option:hover{background:var(--surface-2)}.multiselect-option input{accent-color:var(--primary);flex-shrink:0;width:.95rem;height:.95rem}.multiselect-empty{padding:var(--space-2);color:var(--muted);font-size:var(--fs-sm)}.ann-compose{gap:var(--space-3);display:grid}.ann-tpl-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ann-tpl-open{border-width:2px;border-color:var(--primary);min-height:2.75rem;color:var(--primary-dark);background:color-mix(in srgb, var(--primary) 6%, var(--card));font-weight:700}.ann-tpl-open:hover{background:var(--primary-light)}.ann-tpl-chosen{font-size:var(--fs-sm);color:var(--muted)}.ann-tpl-clear{margin-left:var(--space-2);cursor:pointer;padding:var(--space-1) var(--space-2);color:var(--primary);font-family:inherit;font-size:var(--fs-sm);background:0 0;border:0;text-decoration:underline;position:relative}.ann-tpl-clear:after{content:"";width:2.75rem;height:2.75rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ann-fill{padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--primary) 5%, var(--card))}.ann-fill-label{margin:0 0 var(--space-2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--primary-dark);font-weight:800}.ann-fill-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.ui-field.is-prefilled>.form-input{border-left:3px solid var(--primary);background:color-mix(in srgb, var(--primary) 4%, var(--card))}.ann-emg{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);gap:var(--space-3);display:grid}.ann-emg.is-on{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 6%, var(--card))}.ann-emg-switch{align-items:flex-start;gap:var(--space-3);cursor:pointer;min-height:2.75rem;display:flex}.ann-emg-switch input{flex-shrink:0;width:1.125rem;height:1.125rem;margin-top:.2rem}.ann-emg-text{flex-direction:column;gap:1px;min-width:0;display:flex}.ann-emg-text strong{font-size:var(--fs-base)}.ann-emg.is-on .ann-emg-text strong{color:var(--danger-ink)}.ann-emg-text small{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.ann-named-toggle{margin-top:var(--space-2);align-items:center;gap:var(--space-2);cursor:pointer;min-height:2.75rem;color:var(--primary);font-family:inherit;font-size:var(--fs-sm);background:0 0;border:0;padding:0;font-weight:650;display:inline-flex}.ann-named-count{border-radius:var(--radius-full);background:var(--primary);color:#fff;min-width:1.25rem;height:1.25rem;font-size:var(--fs-xs);justify-content:center;align-items:center;padding:0 .375rem;font-weight:700;display:inline-flex}.ann-named{gap:var(--space-3);margin-top:var(--space-2);display:grid}.ann-named-row{gap:var(--space-2);display:grid}.ann-named-label{font-size:var(--fs-sm);color:var(--text);font-weight:650}.ann-named-total{color:var(--muted);font-weight:400}.ann-named-note{font-size:var(--fs-sm);color:var(--muted);margin:0;font-style:italic}.ann-named-search{max-width:100%}.ann-tpl-grid{gap:var(--space-2);display:grid}.ann-tpl{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);min-width:0;transition:border-color .14s,background .14s,transform .14s;position:relative}.ann-tpl:hover{border-color:var(--primary);transform:translateY(-1px)}.ann-tpl.is-emergency{border-color:color-mix(in srgb, var(--danger) 45%, transparent)}.ann-tpl.is-emergency:hover{border-color:var(--danger);background:var(--danger-bg)}.ann-tpl.is-blocked{background:var(--surface-2);border-style:dashed}.ann-tpl.is-blocked:hover{border-color:var(--border);transform:none}.ann-tpl.is-blocked .ann-tpl-name{color:var(--muted)}.ann-tpl.is-blocked .ann-tpl-sub{white-space:normal}.ann-tpl-hit:disabled{cursor:default}.ann-tpl-hit{align-items:center;gap:var(--space-3);width:100%;min-height:4rem;padding:var(--space-3) var(--space-4);cursor:pointer;text-align:left;color:var(--text);border-radius:var(--radius);background:0 0;border:0;font-family:inherit;display:flex}.ann-tpl-icon{flex-shrink:0;font-size:1.5rem;line-height:1}.ann-tpl-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.ann-tpl-name{font-size:var(--fs-lg);font-weight:700}.ann-tpl-sub{font-size:var(--fs-xs);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ann-tpl-flag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--danger-ink);background:var(--danger-bg);border-radius:var(--radius-full);flex-shrink:0;padding:.125rem .5rem;font-weight:800}.ann-tpl-del{cursor:pointer;width:2.75rem;height:2.75rem;color:var(--muted);font-size:var(--fs-base);border-radius:var(--radius-sm);background:0 0;border:0;position:absolute;top:.25rem;right:.25rem}.ann-tpl-del:hover{color:var(--danger-ink);background:var(--danger-bg)}.ann-tpl-hit{padding-right:3rem}.ann-tpl-count{margin:var(--space-4) 0 0;font-size:var(--fs-sm);color:var(--muted)}.ann-tpl-save{justify-self:start;min-height:2.75rem}.ann-tpl-save-row{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px dashed var(--border);border-radius:var(--radius);display:grid}.ann-tpl-hint{font-size:var(--fs-xs);color:var(--muted);margin:0}.ann-compose-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.ann-compose-actions .btn{min-height:2.75rem}@media (prefers-reduced-motion:reduce){.ann-tpl{transition:none}.ann-tpl:hover{transform:none}}@media (width<=30rem){.ann-compose .ui-field-row{gap:var(--space-3);grid-template-columns:1fr;display:grid}.ann-tpl-row{display:grid}.ann-tpl-open{width:100%}}.stl{gap:16px;margin-bottom:20px;display:grid}.stl-block{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg,12px);padding:14px 16px}.stl-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.stl-title{font-size:14px;font-weight:700}.stl-sub{color:var(--text-muted);font-size:12.5px}.stl-sub strong{color:var(--text)}.stl-bar{border:1px solid var(--stl-edge);background:var(--stl-track);border-radius:8px;height:48px;position:relative;overflow:hidden}.stl-bar-year{--stl-track:#eef2f9;--stl-edge:#d7dfec;--stl-fill-a:#93b4f8;--stl-fill-b:#5b8bf0;--stl-needle:#1d4ed8}.stl-bar-day{--stl-track:#ecf7f5;--stl-edge:#cfe8e3;--stl-fill-a:#7dd4c8;--stl-fill-b:#34b3a0;--stl-needle:#0f766e}.stl-fill{background:linear-gradient(180deg, var(--stl-fill-a), var(--stl-fill-b));opacity:.55;transition:width .9s cubic-bezier(.22,.8,.36,1);display:block;position:absolute;inset:0 auto 0 0;overflow:hidden}@media (prefers-reduced-motion:reduce){.stl-fill{transition:none}}.skeleton.stl-skel{border-radius:6px;display:inline-block}.stl-skel-title{width:160px;height:14px}.stl-skel-sub{width:220px;height:12px}.stl-bar-skel{--stl-track:var(--skeleton-base,#e7ecf2);--stl-edge:var(--border)}.stl-bar-year .stl-fill{background-image:repeating-linear-gradient(90deg, transparent 0, transparent calc(var(--day-w,100%) - 1px), #ffffff47 calc(var(--day-w,100%) - 1px), #ffffff47 var(--day-w,100%)), linear-gradient(180deg, var(--stl-fill-a), var(--stl-fill-b))}.stl-fill:after{content:"";will-change:transform;background:linear-gradient(100deg,#0000 0%,#ffffff73 50%,#0000 100%);width:60%;animation:3.2s linear infinite stl-sweep;position:absolute;inset:0}@keyframes stl-sweep{0%{transform:translate(-170%)}to{transform:translate(270%)}}@media (prefers-reduced-motion:reduce){.stl-fill:after{animation:none;display:none}}.stl-seg{z-index:1;flex-direction:column;justify-content:center;align-items:center;padding:0 4px;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.stl-seg.has-divider{border-left:1px solid #0f172a2e}.stl-seg-label{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11.5px;font-weight:600;overflow:hidden}.stl-seg-time{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9.5px;overflow:hidden}.stl-seg.is-current .stl-seg-label{font-weight:800}.stl-needle{z-index:2;background:var(--stl-needle);opacity:.5;border-radius:2px;width:2px;position:absolute;top:0;bottom:0}.stl-bar-classes{height:64px}.stl-seg-period{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9.5px;font-weight:700;overflow:hidden}.stl-seg-part{z-index:0;background:#ffffff61;border-radius:5px}.stl-seg-part .stl-seg-label{color:#0f172aad;text-transform:uppercase;letter-spacing:.02em;font-size:10.5px;font-weight:600}.stl-seg-part .stl-seg-time{color:var(--muted)}.stl-seg-part.is-current{background:#ffffffb3}.stl-seg-part.is-behind .stl-seg-label,.stl-seg-part.is-behind .stl-seg-time{display:none}.stl-seg.is-clickable{cursor:pointer;transition:background .1s}.stl-seg.is-clickable:hover,.stl-seg.is-clickable:focus-visible{box-shadow:inset 0 0 0 2px var(--stl-needle);background:#ffffff8c;border-radius:6px}@media (width<=640px){.stl-block{min-width:0}.stl-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.stl-bar-day{min-width:560px}.stl-bar-year{min-width:420px}.stl-ruler-day{min-width:560px}.stl-ruler-year{min-width:420px}.stl-seg-label{font-size:10.5px}.stl-seg-time{font-size:8.5px}}.stl-tick{z-index:1;pointer-events:none;background:#0f172a38;width:1px;margin-left:-.5px;position:absolute;top:0;bottom:0}.stl-ruler{pointer-events:none;height:17px;margin-bottom:3px;position:relative}.stl-ruler-mark{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;padding-left:4px;font-size:9.5px;line-height:1;position:absolute;bottom:0}.stl-ruler-mark.at-end{padding-left:0;padding-right:4px;transform:translate(-100%)}.stl-ruler-mark:after{content:"";background:#0f172a47;width:1px;height:3px;margin-top:1px;position:absolute;top:100%;left:0}.stl-ruler-mark.at-end:after{left:auto;right:0}.stl-seg.is-overlap{outline:1px solid var(--danger-ink,#be123c);outline-offset:-1px}.stl-warn{background:var(--warning-bg,#fef3c7);color:var(--warning-ink,#92400e);border-radius:6px;margin:0 0 8px;padding:6px 10px;font-size:12px;line-height:1.45}.stl-dayevents{flex-wrap:wrap;gap:6px;margin:0 0 8px;display:flex}.stl-dayevent{border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.35}.wk-events-head{justify-content:space-between;align-items:baseline;gap:var(--space-3,12px);margin-bottom:8px;display:flex}.wk-events-title{letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:14px;font-weight:700}.wk-events-link{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:600}.wk-events-link:hover{text-decoration:underline}.wk-events-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.wk-day{background:var(--card);border:1px solid var(--border);min-width:0;box-shadow:var(--shadow-sm);border-radius:10px;padding:8px 10px 10px}.wk-day.is-today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset, var(--shadow-sm)}.wk-day-head{align-items:baseline;gap:6px;margin-bottom:6px;display:flex}.wk-day-dow{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:700}.wk-day.is-today .wk-day-dow{color:var(--primary)}.wk-day-num{font-size:15px;font-weight:700}.wk-day-body{flex-direction:column;gap:4px;min-height:26px;display:flex}.wk-day-empty{color:var(--text-muted);font-size:12px}.wk-chip{text-overflow:ellipsis;white-space:nowrap;background:var(--chip-bg);color:var(--chip-fg);border-radius:999px;padding:3px 7px;font-size:11px;font-weight:600;display:block;overflow:hidden}.wk-events-none{color:var(--text-muted);margin-top:6px;font-size:12px}.wk-events-failed{font-size:13px}@media (width<=720px){.wk-events{display:none}}@media (width<=768px){.wk-events-link{padding:13px 4px}}.rmast{text-align:center;margin-bottom:14px}.rmast-school{justify-content:center;align-items:center;gap:14px;display:flex}.rmast-logo{object-fit:contain;flex-shrink:0;width:76px;height:76px}.rmast-mark{color:#0f172a;letter-spacing:.02em;border:2px solid #0f172a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:76px;height:76px;font-size:24px;font-weight:800;display:flex}.rmast-id{text-align:left}.rmast-name{font-size:22px;font-weight:800;line-height:1.15}.rmast-contact{color:#334155;flex-wrap:wrap;gap:10px;font-size:11.5px;display:flex}.rmast-title{text-underline-offset:3px;margin:10px 0 0;font-size:17px;font-weight:800;text-decoration:underline}.rmast-subtitle{color:#475569;margin-top:2px;font-size:12px}.rdoc{border:1px solid var(--border,#e2e8f0);color:#0f172a;background:#fff;border-radius:12px;max-width:860px;margin:0 auto;padding:28px 32px}.rdoc+.rdoc{margin-top:18px}.rdoc-fields{flex-wrap:wrap;gap:24px;margin:12px 0 16px;font-size:13.5px;display:flex}.rdoc-field b{font-weight:700}.rdoc-field .rdoc-blank{border-bottom:1px solid #0f172a;padding:0 18px;font-weight:600}.rdoc-table{border-collapse:collapse;width:100%;font-size:13px}.rdoc-table th,.rdoc-table td{text-align:center;border:1px solid #94a3b8;padding:6px 8px}.rdoc-table th{background:#f1f5f9;font-weight:700}.rdoc-table td.rdoc-left,.rdoc-table th.rdoc-left{text-align:left}.rdoc-table tfoot .rdoc-total-row td{background:#f1f5f9;border-top:2px solid #94a3b8;font-weight:700}.rdoc-table .rdoc-muted{color:#475569}.rdoc-grade{font-weight:700}.rdoc-pct{color:#64748b;margin-left:4px;font-size:10.5px;font-weight:500}.rdoc-scale{color:#475569;text-align:center;margin-top:10px;font-size:11px}.rdoc-scale b{color:#0f172a}.rdoc-comments{border:1px solid #94a3b8;border-radius:4px;margin-top:16px;padding:10px 12px}.rdoc-comments-title{margin-bottom:6px;font-size:13px;font-weight:700}.rdoc-comment{margin-bottom:6px;font-size:12.5px;line-height:1.5}.rdoc-comment b{font-weight:700}.rdoc-comments-empty{color:#475569;font-size:12.5px;font-style:italic}.rdoc-signature{margin-top:26px;font-size:13px}.rdoc-signature .rdoc-sigline{border-bottom:1px solid #0f172a;width:60%;margin-left:8px;display:inline-block}.rdoc-table tr.rdoc-total td{background:#f8fafc;font-weight:700}.rdoc-section-title{margin:18px 0 6px;font-size:13.5px;font-weight:800}.rdoc-note{color:#0f172a;break-after:avoid;page-break-after:avoid;border-left:2.5px solid #0f172a;margin:0 0 6px;padding:5px 0 5px 9px;font-size:12px;line-height:1.45}@media print{.rdoc{border:none;border-radius:0;max-width:none;padding:0}.rdoc+.rdoc{margin-top:0}.rdoc-page{page-break-after:always}.rdoc-page:last-child{page-break-after:auto}.rdoc-screen-only{display:none!important}.rdoc-table tr{break-inside:avoid;page-break-inside:avoid}.rdoc-table thead{display:table-header-group}.rdoc-table tfoot{display:table-footer-group}@page{size:letter portrait;margin:8mm}.rmast-logo,.rmast-mark{width:60px;height:60px}.rmast-mark{font-size:20px}.rmast-name{font-size:18px}.rmast-contact,.rmast-subtitle{font-size:10px}.rmast-title{margin-top:6px;font-size:14px}.rdoc-fields{gap:16px;margin:8px 0 10px;font-size:11.5px}.rdoc-table{font-size:11px}.rdoc-table th,.rdoc-table td{padding:3px 6px}.rdoc-pct{font-size:9px}.rdoc-scale{margin-top:6px;font-size:9.5px}.rdoc-section-title{margin:10px 0 4px;font-size:12px}.rdoc-comments{margin-top:10px;padding:7px 9px}.rdoc-comments-title{margin-bottom:4px;font-size:12px}.rdoc-comment{margin-bottom:4px;font-size:11px;line-height:1.35}.rdoc-signature{margin-top:16px;font-size:11.5px}}.docstage-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.docstage-toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.docstage-stage{justify-content:center;align-items:center;gap:14px;display:flex}.docstage-doc{flex:0 auto;min-width:0}.docstage-nav{border:2px solid var(--primary);background:var(--primary-light);width:56px;height:56px;color:var(--primary-dark,var(--primary));cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;flex:none;justify-content:center;align-self:center;align-items:center;font-size:30px;font-weight:700;line-height:1;transition:background .1s,box-shadow .1s,opacity .1s,transform .1s;display:flex}.docstage-nav:hover:not(:disabled){background:var(--primary);color:#fff;box-shadow:var(--shadow-lg);transform:scale(1.06)}.docstage-nav:active:not(:disabled){transform:scale(.97)}.docstage-nav:disabled{opacity:.25;cursor:default;border-color:var(--border);background:var(--card);color:var(--text-muted)}@media (prefers-reduced-motion:reduce){.docstage-nav{transition:none}.docstage-nav:hover:not(:disabled){transform:none}}@media (width<=640px){.docstage-nav{width:46px;height:46px;font-size:24px}.docstage-stage{gap:6px}}.print-stage{display:none}@media print{body.is-printing>:not(.print-stage){display:none!important}body.is-printing .print-stage{display:block!important}body.is-printing .print-stage,body.is-printing .print-stage *{-webkit-print-color-adjust:exact;print-color-adjust:exact;visibility:visible!important}.print-stage-page{break-after:page;page-break-after:always}.print-stage-page:last-child{break-after:auto;page-break-after:auto}}.tabs-bar{margin-bottom:var(--space-4);top:var(--header-h);z-index:20;background:var(--bg);padding:4px 0;position:sticky}@media (width<=768px){.tabs-bar{overscroll-behavior-x:contain;scrollbar-width:none;overflow-x:auto}.tabs-bar::-webkit-scrollbar{display:none}.tabs-bar .seg-tabs{flex-wrap:nowrap}}.tabs-bar--inline{z-index:auto;background:0 0;margin:0;padding:0;position:static;top:auto}.table-toolbar .tabs-bar,.table-toolbar-right .tabs-bar{margin:0;padding:0;position:static}.ui-modal-panel .tabs-bar{z-index:auto;margin-bottom:var(--space-2);background:0 0;padding:0;position:static;top:auto}.seg-tabs:has(.seg-tab-mark) .seg-tab{padding-top:calc(var(--space-2) + 20px);position:relative}.seg-tab-mark{justify-content:center;align-items:center;height:20px;display:flex;position:absolute;top:3px;left:0;right:0}.seg-tab-mark .link-tab-mark{margin-right:0}@media (width<=768px){.seg-tabs--route .seg-tab{font-size:calc(var(--fs-sm) * .8);padding:calc(var(--space-2) * .8) calc(var(--space-3) * .8)}.seg-tabs--route .seg-count{font-size:calc(var(--fs-xs) * .8);padding:0 5px}}.seg-tab-abbr{display:none}@media (width>=769px){.tabs-bar--no-room .seg-tab{position:relative}.tabs-bar--no-room .seg-tab .seg-tab-full{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tabs-bar--no-room .seg-tab .seg-tab-abbr{display:inline}.tabs-bar--no-room .seg-tab--whole .seg-tab-abbr,.tabs-bar--no-room .seg-tab.is-active .seg-tab-abbr{display:none}.tabs-bar--no-room .seg-tab--whole .seg-tab-full,.tabs-bar--no-room .seg-tab.is-active .seg-tab-full,.tabs-bar--no-room .seg-tab--no-abbr .seg-tab-full{clip:auto;width:auto;height:auto;margin:0;position:static;overflow:visible}}@media (width<=768px){.seg-tabs{overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;padding:3px 4px;overflow-x:auto}.seg-tabs::-webkit-scrollbar{display:none}.seg-tabs:has(.seg-tab-abbr) .seg-tab{margin-left:-6px}.seg-tabs:has(.seg-tab-abbr) .seg-tab:first-child{margin-left:0}.seg-tabs:has(.seg-tab-abbr) .seg-tab.is-active{margin-left:0;margin-right:2px}.seg-tabs:has(.seg-tab-abbr) .seg-tab.is-active+.seg-tab{margin-left:0}.seg-tab{padding:var(--space-2) var(--space-3);white-space:nowrap;flex:none;transition:padding .18s cubic-bezier(.2,.8,.3,1),background .14s,color .14s,box-shadow .14s;position:relative}.tabs-bar--no-room .seg-tab .seg-tab-full{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tabs-bar--no-room .seg-tab .seg-tab-abbr{display:inline}.tabs-bar--no-room .seg-tab--whole .seg-tab-abbr{display:none}.tabs-bar--no-room .seg-tab--whole .seg-tab-full,.tabs-bar--no-room .seg-tab--no-abbr .seg-tab-full{clip:auto;width:auto;height:auto;margin:0;position:static;overflow:visible}.seg-tab.is-active{z-index:2;padding-left:var(--space-4);padding-right:var(--space-4);position:relative}.tabs-bar--no-room .seg-tab.is-active .seg-tab-full{clip:auto;width:auto;height:auto;margin:0;position:static;overflow:visible}.tabs-bar--no-room .seg-tab.is-active .seg-tab-abbr{display:none}.tabs-bar--no-room .seg-tab--whole .seg-tab-full,.tabs-bar--no-room .seg-tab--no-abbr .seg-tab-full,.tabs-bar--no-room .seg-tab.is-active .seg-tab-full{vertical-align:bottom;text-overflow:ellipsis;max-width:58vw;display:inline-block;overflow:hidden}@media (prefers-reduced-motion:reduce){.seg-tab{transition:none}}}.std-table-wrap{overscroll-behavior-x:contain;touch-action:pan-x pan-y;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);overflow-x:auto}.std-table{border-collapse:separate;border-spacing:0;font-size:var(--table-fs);width:100%}.std-table th,.std-table td{padding:var(--table-pad);border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:center;vertical-align:middle}.std-table th:last-child,.std-table td:last-child{border-right:none}.std-nowrap{white-space:nowrap}@media (width<=640px){.std-table:has(thead th:nth-child(4)):has(tbody tr:nth-child(2)){min-width:760px}.std-table:has(thead th:nth-child(8)):has(tbody tr:nth-child(2)){min-width:1120px}.std-table:has(thead th:nth-child(11)):has(tbody tr:nth-child(2)){min-width:1540px}}.std-table tbody tr:last-child td{border-bottom:none}.std-table thead th{z-index:2;background:var(--table-head-bg);color:var(--text-muted);white-space:nowrap;border-bottom:2px solid var(--border);font-weight:600;position:sticky;top:0}.std-table tbody td{transition:background .15s ease-out}.std-table tbody tr:hover td{background:var(--bulk-hover,#dbeafe)}.std-table tbody tr.pbis-student-row td,.std-table tbody tr.pbis-student-row:hover td{background:var(--surface-2,#f1f5f9)}.std-table tbody tr.pbis-highlight td{background:var(--primary-light);animation:1.8s ease-out pbis-flash}@keyframes pbis-flash{0%,45%{background:var(--primary-light)}to{background:0 0}}.std-table .std-left{text-align:left}.std-table .std-sticky-name{z-index:2;background:var(--card);position:sticky;left:0;box-shadow:6px 0 8px -6px #0f172a26}.std-table thead .std-sticky-name{z-index:3;background:var(--table-head-bg)}.std-table tbody tr:hover .std-sticky-name{background:var(--table-hover,#f8fafc)}@media (width<=720px){.std-table .std-sticky-name{max-width:var(--name-col-max-pinned);white-space:normal;overflow-wrap:break-word;line-height:1.25}}@media (prefers-reduced-motion:reduce){.std-table tbody td{transition:none}.std-table tbody tr.pbis-highlight td{animation:none}}.pdash-section{margin-bottom:var(--space-6)}.quick-actions{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(13.5rem,1fr));display:grid}.quick-action{align-items:flex-start;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--card);border:1px solid var(--border);cursor:pointer;text-align:left;font:inherit;flex-direction:column;transition:border-color .14s,box-shadow .14s,transform .14s;display:flex}.quick-action:hover{border-color:var(--qa-color,var(--primary));box-shadow:0 0 0 3px var(--qa-bg,var(--primary-light));transform:translateY(-1px)}.quick-action:active{transform:translateY(0)scale(.99)}.quick-action-icon{border-radius:var(--radius);background:var(--qa-bg,var(--primary-light));width:2.25rem;height:2.25rem;color:var(--qa-color,var(--primary));flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.quick-action-title{font-weight:600;font-size:var(--fs-base);color:var(--text);margin-bottom:.125rem;display:block}.quick-action-desc{font-size:var(--fs-sm);color:var(--muted);line-height:1.4;display:block}@media (prefers-reduced-motion:reduce){.quick-action{transition:none}.quick-action:hover,.quick-action:active{transform:none}}.stat-card-value.stat-card-failed{font-size:var(--fs-sm);letter-spacing:0;color:var(--warning-ink);font-weight:600}.stat-grid-note{align-items:center;gap:var(--space-2,8px);margin-top:var(--space-2,8px);font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;display:flex}.class-subject-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(18.75rem,1fr));display:grid}.class-subject-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .2s,box-shadow .2s;overflow:hidden}.class-subject-card.is-expanded{cursor:default;border-color:var(--primary);box-shadow:var(--shadow-lg)}.class-subject-card-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.class-subject-card-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--surface-2);cursor:pointer;transition:background 80ms;display:flex}.class-subject-card-row:hover{background:#eff6ff}.class-subject-card-more{padding:var(--space-2) var(--space-4);cursor:pointer;font-size:var(--fs-sm);text-align:center;border-top:1px solid var(--border);font-weight:600;transition:background 80ms}.class-subject-card-more:hover{background:#eff6ff}.subject-manager-tags{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.subject-tag{align-items:center;gap:var(--space-1);background:var(--primary-light);color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-full);padding:.1875rem var(--space-3);font-size:var(--fs-sm);font-weight:600;display:inline-flex}.class-slide-panel{background:var(--card);z-index:401;flex-direction:column;width:clamp(18.75rem,40vw,28.75rem);transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;right:0}.class-slide-panel.is-open{transform:translate(0);box-shadow:-6px 0 40px #0f172a2e}.class-slide-panel.is-closed{box-shadow:none;transform:translate(100%)}.class-slide-panel-backdrop{z-index:400;background:#0f172a73;position:fixed;inset:0}.class-roster-layout{gap:var(--space-4);grid-template-columns:1fr 18.75rem;align-items:start;display:grid}@media (width<=768px){.class-roster-layout{grid-template-columns:1fr}}.enroll-topbar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.enroll-topbar-label{font-size:var(--fs-sm);color:var(--muted);font-weight:600}.enroll-topbar .form-select{width:auto;min-width:11rem}.enroll-transfer{gap:var(--space-4);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=640px){.enroll-transfer{grid-template-columns:1fr}}.enroll-locked-why{margin-bottom:var(--space-2)}.enroll-transfer-head{gap:var(--space-4);margin-bottom:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.enroll-transfer-head-right{min-width:0}@media (width<=640px){.enroll-transfer-head{grid-template-columns:1fr}.enroll-transfer-head>[aria-hidden=true]{display:none}}.enroll-pane{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.enroll-pane-head{align-items:center;gap:var(--space-3);background:var(--primary);color:#fff;padding:var(--space-3) var(--space-4);display:flex}.enroll-pane-title{font-size:var(--fs-h3);color:#fff;text-align:center;flex:1;margin:0;font-weight:600}.enroll-pane-action{color:#fff;font-weight:700;font-size:var(--fs-md);padding:var(--space-1) var(--space-3);border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:#ffffff29;border:none;transition:background .12s}.enroll-pane-action:hover:not(:disabled){background:#ffffff4d}.enroll-pane-action:disabled{opacity:.45;cursor:not-allowed}.enroll-pane-note{font-size:var(--fs-xs);color:var(--muted);max-width:20rem}.enroll-pane-search{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2);display:flex}.enroll-pane-search .enroll-search-box{flex:1;min-width:0}.enroll-pane-search:has(>.enroll-hidden-ticks){flex-wrap:wrap}.enroll-hidden-ticks{font-size:var(--fs-sm);color:var(--muted);flex:1 0 100%}.enroll-pane-filter{flex:none}.enroll-pane-filter .form-select{max-width:11rem}.sr-only-label{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.enroll-search-box{position:relative}.enroll-search-box svg{left:var(--space-2);width:.9rem;height:.9rem;color:var(--light);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.enroll-search-box input{border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:var(--space-2) var(--space-2) var(--space-2) 1.9rem;font-size:var(--fs-md);background:var(--card);color:var(--text);outline:none}.enroll-search-box input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}@media (width<=640px){.enroll-search-box input{font-size:1rem}}.enroll-table-wrap{max-height:28rem;overflow-y:auto}.enroll-table{border-collapse:collapse;width:100%;font-size:var(--table-fs)}.enroll-table th{z-index:1;background:var(--table-head-bg);text-align:left;font-size:var(--table-fs);color:var(--text-muted);padding:var(--table-pad);border-bottom:2px solid var(--border);font-weight:600;position:sticky;top:0}.enroll-table td{padding:var(--table-pad);border-bottom:1px solid var(--surface-2);font-size:var(--table-fs);color:var(--text)}.enroll-table tbody tr{cursor:pointer;transition:background .1s}.enroll-table tbody tr:hover{background:var(--table-hover)}.enroll-table tbody tr.is-selected{background:var(--primary-light)}.enroll-table .col-check{text-align:center;width:2.75rem}.enroll-table input[type=checkbox]{accent-color:var(--primary);width:.95rem;height:.95rem}.enroll-name{color:var(--text);font-weight:600}.enroll-name-link{color:var(--primary-dark)}.enroll-name-btn{cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;padding:0;font-weight:600}.enroll-name-btn:hover{text-decoration:underline}.enroll-table-empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--muted);font-size:var(--fs-md)}@media (width<=640px){.class-slide-panel{width:100%}}.roster-mode{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.roster-mode-label{font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.enroll-band td{background:color-mix(in srgb, var(--hr-tint,var(--primary)) 34%, transparent);color:var(--hr-ink,var(--primary));border-top:1px solid color-mix(in srgb, var(--hr-edge,var(--border)) 55%, transparent);padding:var(--table-pad);border-bottom:none}.enroll-band-inner{align-items:center;gap:var(--space-2);font-size:var(--fs-md);font-weight:700;display:flex}.enroll-band .people-group-count{color:inherit;font-weight:500}.enroll-band-btn{color:var(--danger-ink,var(--danger));flex-shrink:0;margin-left:auto}.enroll-band .enroll-band-btn:disabled{color:var(--muted);opacity:.55}.enroll-band-preview-row td{background:color-mix(in srgb, var(--hr-tint,var(--primary)) 34%, transparent);border-top:none;border-bottom:1px solid color-mix(in srgb, var(--hr-edge,var(--border)) 55%, transparent);padding:2px var(--table-pad) 8px}.enroll-hr-preview{position:relative}.enroll-hr-names{font-size:var(--fs-sm);flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.enroll-hr-names li{line-height:1.5}.enroll-hr-preview:not(.is-open) .enroll-hr-names li:first-child{filter:blur(.2px);opacity:.97}.enroll-hr-preview:not(.is-open) .enroll-hr-names li:nth-child(2){filter:blur(.65px);opacity:.88}.enroll-hr-preview:not(.is-open) .enroll-hr-names li:nth-child(3){filter:blur(1.5px);opacity:.76}.enroll-hr-names li{transition:filter .22s,opacity .22s}@media (prefers-reduced-motion:reduce){.enroll-hr-names li{transition:none}}.enroll-hr-names{max-height:40em;transition:max-height .22s}.enroll-hr-preview:not(.is-open) .enroll-hr-names{max-height:calc(3.75em + 5px);overflow:hidden}@media (prefers-reduced-motion:reduce){.enroll-hr-names{transition:none}}.enroll-hr-preview:not(.is-open):after{content:"";pointer-events:none;background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--hr-tint,var(--primary)) 18%, transparent) 50%, color-mix(in srgb, var(--hr-tint,var(--primary)) 34%, transparent)), linear-gradient(to bottom, transparent, #0f172a0d);height:2.25em;position:absolute;bottom:calc(1.5em + 8px);left:0;right:0}.enroll-hr-more{z-index:1;cursor:pointer;font-size:var(--fs-sm);color:var(--hr-ink,var(--primary));background:0 0;border:0;margin-top:4px;padding:0;font-weight:600;position:relative}.enroll-hr-more:hover{text-decoration:underline}.enroll-hr-names li.is-off{opacity:.65;text-decoration:line-through}.enroll-hr-toggle{cursor:pointer;align-items:center;gap:6px;display:flex}.enroll-hr-toggle input{cursor:pointer}.enroll-table tbody tr.is-hr-tinted td{background:var(--hr-tint)}.enroll-table tbody tr.is-hr-tinted:hover td{background:var(--table-hover)}.enroll-table tbody tr.is-hr-tinted.is-selected td{background:var(--primary-light)}.roster-quick{margin-bottom:var(--space-3,12px);border:1px solid var(--border);border-radius:var(--radius-md,10px);background:var(--surface-2,#f8fafc);flex-wrap:wrap;align-items:flex-end;gap:12px 18px;padding:10px 12px;display:flex}.roster-quick-field{flex-direction:column;flex:240px;gap:4px;min-width:240px;display:flex}.roster-quick-field--teacher{flex:0 260px}.roster-quick-label{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px;font-weight:700}@media (width<=640px){.roster-quick-field,.roster-quick-field--teacher{flex:100%;min-width:0}}@media (prefers-reduced-motion:reduce){.class-slide-panel,.class-subject-card{transition:none}}@media print{body:not(.is-printing):has(.print-area) :not(:has(.print-area)):not(.print-area):not(.print-area *){display:none!important}body:not(.is-printing):has(.print-area) :has(.print-area){width:auto!important;height:auto!important;max-height:none!important;box-shadow:none!important;background:0 0!important;border:0!important;margin:0!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important;transform:none!important}.print-area{width:100%;max-height:none!important;position:static!important;overflow:visible!important}.print-area .print-hide{display:none!important}.print-area,.print-area *{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-shadow:none!important}.print-area .print-only{display:block!important}.print-page{page-break-after:always}.print-page:last-child{page-break-after:auto}}.print-only{display:none}@page{margin:12mm}.print-doc{color:#0f172a;background:#fff}.print-doc-title{margin-bottom:2px;font-size:16px;font-weight:800}.print-doc-sub{color:#475569;margin-bottom:10px;font-size:12px}.print-doc-mast{border-bottom:2px solid #0f172a;align-items:center;gap:12px;margin-bottom:7px;padding-bottom:8px;display:flex}.print-doc-logo{flex:0 0 42px;width:42px;height:42px}.print-doc-logo img{object-fit:contain;width:100%;height:100%}.print-doc-mark{color:#fff;letter-spacing:.02em;background:#0f172a;border-radius:6px;justify-content:center;align-items:center;width:100%;height:100%;font-size:13px;font-weight:800;display:flex}.print-doc-id{min-width:0}.print-doc-school{font-size:15px;font-weight:800;line-height:1.1}.print-doc-kind{color:#334155;font-size:11px}.print-doc-facts{border-bottom:1px solid #cbd5e1;flex-wrap:wrap;gap:3px 22px;margin-bottom:8px;padding:0 0 6px;font-size:11px;display:flex}.print-doc-facts b{text-transform:uppercase;letter-spacing:.05em;color:#475569;margin-right:5px;font-size:9px}.print-doc-table{border-collapse:collapse;width:100%;font-size:12px}.print-doc-table th,.print-doc-table td{text-align:left;vertical-align:middle;border:1px solid #94a3b8;padding:5px 7px}.print-doc-table th{background:#f1f5f9;font-weight:700}.print-doc-table tr{break-inside:avoid;page-break-inside:avoid}.print-doc-table thead{display:table-header-group}.print-doc-table tfoot{display:table-footer-group}.sec-group+.sec-group{margin-top:var(--space-4)}.sec-group-title{margin:0 0 var(--space-2);color:var(--text);align-items:center;gap:10px;font-size:13px;font-weight:700;display:flex}.sec-group-title .sec-group-sub{color:var(--text-muted);font-size:12px;font-weight:500}.sec-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);overflow:auto}.sec-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--table-fs)}.sec-table th,.sec-table td{padding:var(--table-pad);border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;vertical-align:middle}.sec-table th:last-child,.sec-table td:last-child{border-right:none}.sec-table tbody tr:last-child td{border-bottom:none}.sec-table .sec-th-center,.sec-table .sec-cell-center{text-align:center}.sec-table thead th{z-index:3;background:var(--table-head-bg);color:var(--text-muted);white-space:nowrap;border-bottom:2px solid var(--border);font-weight:600;position:sticky;top:0}.sec-subhead td{background:color-mix(in srgb, var(--primary) 8%, var(--bg-subtle,#f1f5f9));color:var(--primary-dark);letter-spacing:.03em;text-transform:uppercase;border-right:none;border-top:2px solid var(--border);border-bottom:2px solid var(--border);font-size:12px;font-weight:700}.sec-subhead .sec-subhead-count{color:var(--text-muted);text-transform:none;font-weight:500}.sec-row td{transition:background .15s ease-out}.sec-row:hover td{background:var(--table-hover)}.sec-row.is-selected:hover td{background:color-mix(in srgb, var(--primary) 13%, var(--card))}.sy-selected-tag{text-transform:uppercase;letter-spacing:.03em;background:var(--primary);color:#fff;border-radius:10px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:700}.sec-empty-row td{color:var(--text-muted);background:var(--card);font-style:italic}.sec-addrow{cursor:pointer}.sec-addrow td{color:var(--primary);background:var(--card);font-size:12.5px;font-weight:600}.sec-addrow:hover td{background:color-mix(in srgb, var(--primary) 7%, var(--card))}.sec-table textarea.table-input{resize:none;display:block;overflow:hidden}.sec-row-edit td{vertical-align:top;background:#fffdf3}.sec-cell-input{box-sizing:border-box;width:100%;height:auto;padding:4px 6px;font-size:12.5px}@media (width<=640px){.sec-cell-input{font-size:1rem}.sec-cell-input:not([type=number]):not([type=time]){min-width:10ch}}.sec-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.sec-actions .sec-danger{color:var(--danger-ink)}.sec-actions .sec-danger:hover{background:color-mix(in srgb, var(--danger) 12%, transparent)}.sec-subrow td{background:color-mix(in srgb, var(--bg-subtle,#f1f5f9) 55%, var(--card))}.sec-indent{position:relative;padding-left:26px!important}.sec-indent:before{content:"↳";color:var(--text-muted);font-size:12px;position:absolute;left:10px}.sec-subhead-row td{background:var(--bg-subtle,#f1f5f9);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:600}.sec-daychips{flex-wrap:wrap;gap:4px;display:inline-flex}.sec-daychip{text-align:center;border:1.5px solid var(--border);background:var(--card);min-width:42px;color:var(--text-muted);cursor:pointer;border-radius:6px;padding:5px 8px;font-family:inherit;font-size:12px;font-weight:600;line-height:1.3}.sec-daychip.on{border-color:var(--chip-on-border);background:var(--chip-on-bg);color:var(--chip-on-ink)}.sec-toggle{cursor:pointer;color:var(--text-muted);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex;position:relative}.sec-toggle:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sec-toggle input{cursor:pointer;width:15px;height:15px}.sec-toggle.on{color:var(--primary)}.sec-tag-chip{color:#5b21b6;background:#ede9fe;border-radius:6px;align-items:center;gap:3px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-flex}.sec-tag-chip>button{justify-content:center;align-items:center;min-width:24px;min-height:24px;margin-right:-4px;display:inline-flex}.sec-tag-chip>.sec-tag-rename{font:inherit;color:inherit;background:0 0;border:none;margin-right:0;padding:0}.sec-tag-chip>.sec-danger{cursor:pointer;color:var(--danger-ink);background:0 0;border:none;border-radius:4px;padding:0;font-size:12px;line-height:1}.sec-tag-chip>.sec-danger:hover{background:color-mix(in srgb, var(--danger) 12%, transparent)}.grades-row .sec-danger{color:var(--danger-ink)}.grades-row .sec-danger:hover{color:var(--danger-ink);background:color-mix(in srgb, var(--danger) 12%, transparent)}.grades-row{cursor:grab}.grades-row.is-dragging{opacity:.45}.grades-row.is-over td{border-top:2px solid var(--primary)}.grades-toggle-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:12px;font-weight:600}.grades-toggles{flex-wrap:wrap;gap:6px;display:flex}.grades-toggle{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .14s,color .14s,border-color .14s}.grades-toggle:hover{border-color:var(--primary);color:var(--text)}.grades-toggle.is-on{background:var(--chip-on-bg,#e2e8f0);border-color:var(--chip-on-border,#cbd5e1);color:var(--chip-on-ink,#1e293b)}.grades-custom-tag{background:var(--surface-2);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-radius:999px;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:600}.sec-chevron{width:14px;color:var(--text-muted);transition:transform .12s;display:inline-block}.sec-chevron.open{transform:rotate(90deg)}.cal-tbl-type{background:var(--ev-bg,#eef2f7);color:var(--ev-color,#334155);border-radius:10px;padding:2px 9px;font-size:11px;font-weight:700;display:inline-block}.cal-tbl-aud{flex-wrap:wrap;gap:6px 12px;display:flex}.cal-tbl-aud-chk{color:var(--text-muted);cursor:pointer;align-items:center;gap:4px;font-size:12px;font-weight:500;display:inline-flex}.sec-cell-top{vertical-align:top!important}.sec-cell-list{gap:2px;margin:0;padding-left:16px;display:grid}.sec-cell-list li{overflow-wrap:break-word;line-height:1.4}.sec-cell-loading{border-radius:4px;width:42px;height:12px;display:inline-block}@media (prefers-reduced-motion:reduce){.sec-row td{transition:none}}.sec-warn{border:1px solid var(--warning);border-left:3px solid var(--warning,#d08700);background:var(--warning-bg,#fdf6e7);color:var(--text,#2b2b2b);border-radius:8px;margin:0 0 14px;padding:9px 12px;font-size:12.5px;line-height:1.5}.sec-warn strong{font-weight:700}.grades-row-skel{width:220px;height:16px;display:block}.school-collapse-toggle{border-radius:var(--radius-sm,6px);min-width:0;min-height:44px;color:var(--text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:10px;margin:0 -8px;padding:0 8px;transition:background-color .12s;display:flex}.school-collapse-toggle:hover{background:var(--surface-2)}.school-collapse-toggle:hover .school-collapse-chevron{color:var(--text)}.school-collapse-toggle:active{background:var(--table-hover)}.school-collapse-chevron{color:var(--text-muted);flex-shrink:0;font-size:12px;transition:transform .22s}.school-collapsible.open .school-collapse-chevron{transform:rotate(90deg)}.school-collapse-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.school-collapsible:not(.open) .card-header{border-bottom:none}.school-collapsible-body{grid-template-rows:0fr;transition:grid-template-rows .24s;display:grid}.school-collapsible.open .school-collapsible-body{grid-template-rows:1fr}.school-collapsible-inner{overflow:hidden}.school-collapsible-settings{border-color:var(--control-accent);box-shadow:var(--control-accent-shadow)}.school-collapsible-settings .card-header{background:var(--control-accent);color:var(--control-accent-ink);border-radius:calc(var(--radius-lg) - 1px);padding-block:var(--space-2);border-bottom:none;transition:background-color .12s}.school-collapsible-settings.open .card-header{border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0}.school-collapsible-settings .school-collapse-toggle,.school-collapsible-settings .school-collapse-toggle:hover,.school-collapsible-settings .school-collapse-toggle:active{color:var(--control-accent-ink);background:0 0}.school-collapsible-settings .card-header:has(.school-collapse-toggle:hover){background:var(--control-accent-hover)}.school-collapsible-settings .card-header:has(.school-collapse-toggle:active){background:var(--control-accent-press)}.school-collapsible-settings .school-collapse-toggle:focus-visible{outline-color:var(--control-accent-ink)}.school-collapsible-settings .school-collapse-chevron,.school-collapsible-settings .school-collapse-toggle:hover .school-collapse-chevron{color:var(--control-accent-ink);scale:1.5}.school-collapse-gear{font-size:var(--fs-h3);flex-shrink:0;line-height:1}.school-collapsible-settings .card-header{column-gap:var(--space-5);flex-wrap:wrap}.school-collapsible-settings .school-collapse-toggle{flex:auto}.school-collapsible-settings .school-collapse-actions,.school-collapsible-settings .school-collapse-actions .text-muted{color:var(--control-accent-ink-soft)}@media (prefers-reduced-motion:reduce){.school-collapse-toggle,.school-collapse-chevron,.school-collapsible-body{transition:none}}.date-text-input.is-bad{border-color:var(--danger);background:var(--danger-bg);color:var(--danger-ink)}.date-text-input::placeholder{color:var(--light)}.bulk-picker{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);margin-bottom:12px;padding:12px 14px}.bulk-picker-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.bulk-picker-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.bulk-picker-groups{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 18px;display:grid}.bulk-picker-order{border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:12px}.bulk-picker-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.bulk-picker-chip{border:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-sm);color:var(--text);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;display:inline-flex}.bulk-picker-chip:hover{border-color:var(--border-strong)}.bulk-picker-chip:active{cursor:grabbing}.bulk-picker-chip.is-dragging{opacity:.6;outline:2px dashed var(--primary);outline-offset:1px}.bulk-picker-chip-grip{color:var(--border-strong);letter-spacing:-2px;font-size:10px}.bulk-picker-group-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px;font-weight:700}.bulk-picker-item{font-size:var(--fs-sm);color:var(--text);justify-content:space-between;align-items:center;gap:7px;padding:3px 0;display:flex}.bulk-picker-item label{cursor:pointer;align-items:center;gap:7px;display:flex}.bulk-picker-star{color:var(--warning-ink);vertical-align:1px;margin-left:4px;font-size:10px}.bulk-picker-item input{cursor:pointer}.bulk-picker-move{gap:2px;display:inline-flex}.bulk-picker-move button{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;width:18px;height:18px;padding:0;font-size:12px;line-height:1}.bulk-picker-move button:hover{background:var(--primary-light);color:var(--primary-dark);border-color:var(--primary)}.bulk-picker-move button:disabled{opacity:.35;cursor:not-allowed}.bulk-picker-move button:disabled:hover{background:var(--card);color:var(--muted);border-color:var(--border)}.col-drag-grip{color:var(--border-strong);letter-spacing:-2px;cursor:grab;border-radius:3px;margin-right:6px;font-size:11px;display:inline-block}.col-drag-grip:active{cursor:grabbing}.col-drag-grip:focus-visible{outline:2px solid var(--primary);outline-offset:1px;color:var(--primary)}[data-col-drop]{position:relative}[data-col-drop=before]:before,[data-col-drop=after]:after{content:"";background:var(--primary);z-index:4;width:3px;position:absolute;top:0;bottom:0}[data-col-drop=before]:before{left:-2px}[data-col-drop=after]:after{right:-2px}.col-pin-note{cursor:help;border-radius:3px;margin-left:6px;font-size:12px;display:inline-block}.col-pin-note:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.bulk-col-resize{cursor:col-resize;touch-action:none;z-index:2;width:12px;position:absolute;top:0;bottom:0;right:0}.bulk-col-resize:after{content:"";background:0 0;width:1px;transition:background .12s ease-out;position:absolute;top:15%;bottom:15%;right:1px}.bulk-col-resize:hover:after,.bulk-col-resize:focus-visible:after{background:var(--primary)}.bulk-col-resize:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:2px}@media (prefers-reduced-motion:reduce){.bulk-col-resize:after{transition:none}}.bulk-hidden-edits{border:1px solid var(--warning);border-left:3px solid var(--warning);background:var(--warning-bg);color:var(--warning-ink);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.bulk-hidden-edits strong{font-weight:650}.bulk-hidden-edits span{flex:260px;min-width:0}.bulk-hidden-edits .btn{flex:none}:root{--actband-min-h:45px;--actband-gap:10px;--actband-min-h-phone:62px}.actband{top:var(--actband-top,var(--header-h));z-index:20;margin-bottom:var(--actband-gap,10px);background:var(--card);border:1px solid #0000;border-radius:10px;transition:border-color .16s,box-shadow .16s;position:sticky}.actband.is-active{border-color:var(--primary);box-shadow:var(--shadow-md,0 2px 8px #00000014)}.actband-row{min-height:var(--actband-min-h);flex-wrap:wrap;align-items:center;gap:8px;padding:9px 12px;display:flex}.actband-spacer{flex:auto}.actband-save{display:contents}@media (width>=601px){.actband-row>.actband-save{flex-wrap:wrap;order:99;align-items:center;gap:8px;margin-left:auto;display:flex}.actband-save>.svst{order:99}}.actband-hint{font-size:var(--fs-sm);color:var(--muted)}@media (width<=600px){.actband-row{overscroll-behavior-x:contain;scrollbar-width:none;min-height:var(--actband-min-h-phone,62px);flex-wrap:nowrap;overflow-x:auto}.actband-row::-webkit-scrollbar{display:none}.actband-row>*,.actband-save>*{flex:none}.actband-row .btn{min-height:44px}.actband-hint{flex:0 auto}}@media (prefers-reduced-motion:reduce){.actband{transition:none}}.fb-bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);margin-bottom:12px;padding:10px 12px}.fb-reminder{border-bottom:1px solid var(--border);border-left:3px solid var(--warning);border-radius:var(--radius) var(--radius) 0 0;background:var(--warning-bg,#fffbeb);font-size:var(--fs-sm);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:-10px -12px 10px;padding:9px 12px;display:flex}.fb-reminder-actions{flex-shrink:0;gap:6px;display:flex}.fb-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fb-open{flex-shrink:0}.fb-chips{flex-wrap:wrap;flex:auto;align-items:center;gap:6px;min-width:0;display:flex}.fb-empty{font-size:var(--fs-sm)}.fb-chip{border-radius:var(--radius-full);border:1px solid var(--primary);background:var(--primary-light,#3b82f61a);color:var(--primary);font-size:var(--fs-xs);cursor:pointer;align-items:center;gap:6px;padding:3px 9px;font-family:inherit;font-weight:600;display:inline-flex}.fb-chip:hover{background:var(--danger-bg);border-color:var(--danger);color:#b91c1c}.fb-sort{flex-shrink:0;align-items:center;gap:6px;display:flex}.fb-sort label{font-size:var(--fs-sm);align-items:center;gap:6px;display:flex}.fb-sort select{font-size:var(--fs-sm);width:auto;padding:4px 8px}@media (width<=640px){.fb-sort select{font-size:1rem}}.fb-count{font-size:var(--fs-sm);color:var(--text-muted);margin-top:8px}.fb-panel{border-top:1px solid var(--border);gap:18px;margin-top:12px;padding-top:12px;display:grid}.fb-group h3{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 6px}.fb-group-note{font-size:var(--fs-xs);max-width:70ch;margin:6px 0 0}.fb-value-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.fb-values-wrap{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.fb-values{flex-wrap:wrap;gap:5px;display:flex}.fb-find{width:min(260px,100%);font-size:var(--fs-sm);padding:4px 8px}@media (width<=640px){.fb-find{font-size:1rem}}.fb-value{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);cursor:pointer;min-width:38px;font:inherit;font-size:var(--fs-sm);padding:4px 9px}.fb-value:hover{border-color:var(--border-strong)}.fb-value.is-on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.fb-values-note{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.fb-flags{grid-template-columns:repeat(auto-fill,minmax(260px,340px));justify-content:start;gap:8px 24px;display:grid}.fb-tri{justify-content:space-between;align-items:center;gap:10px;display:flex}.fb-tri-label{font-size:var(--fs-sm)}.fb-tri-tabs{flex-shrink:0}.fb-tri-tabs .seg-tab{font-size:var(--fs-xs);padding:3px 10px}.fb-dates{flex-wrap:wrap;gap:16px;display:flex}.fb-dates label{font-size:var(--fs-sm);flex-direction:column;gap:4px;display:flex}.fb-dates input{width:auto}.fb-num{width:96px}.fb-panel-actions{justify-content:flex-end;gap:8px;display:flex}.fb-views .fb-values{align-items:center}.fb-view{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);align-items:stretch;display:inline-flex;overflow:hidden}.fb-view:hover{border-color:var(--border-strong)}.fb-view-apply{cursor:pointer;font:inherit;font-size:var(--fs-sm);color:var(--text);background:0 0;border:0;padding:4px 9px}.fb-view-del{border:0;border-left:1px solid var(--border);cursor:pointer;font:inherit;font-size:var(--fs-xs);color:var(--text-muted);background:0 0;padding:4px 7px}.fb-view-del:hover{background:var(--danger-bg);color:#b91c1c}@media print{.fb-head,.fb-panel,.fb-reminder{display:none!important}.fb-bar{border:0;margin:0 0 8px;padding:0}.fb-count{color:#000;font-size:11px}}.wt-scroll-wrap.has-side-scroll{scrollbar-width:none}.wt-scroll-wrap.has-side-scroll::-webkit-scrollbar{display:none}.wt-scroll-wrap:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.wt-sidescroll{z-index:60;background:var(--surface-2);border-top:1px solid var(--border);height:16px;position:fixed;bottom:0;overflow:auto hidden}.wt-sidescroll-rail{height:1px}.wt-sidescroll{scrollbar-width:thin;scrollbar-color:var(--text-muted) var(--surface-2)}.wt-sidescroll::-webkit-scrollbar{height:15px}.wt-sidescroll::-webkit-scrollbar-track{background:var(--surface-2)}.wt-sidescroll::-webkit-scrollbar-thumb{background:var(--text-muted);border:4px solid var(--surface-2);border-radius:8px}.wt-sidescroll::-webkit-scrollbar-thumb:hover{background:var(--text)}@media (pointer:coarse){.wt-sidescroll{display:none}.wt-scroll-wrap.has-side-scroll{scrollbar-width:auto}.wt-scroll-wrap.has-side-scroll::-webkit-scrollbar{display:initial}}.ssid-intro h2{font-size:var(--fs-lg);margin:0 0 4px}.ssid-intro p{max-width:62ch;margin:0 0 14px}.ssid-picker{margin:8px 0 16px}.ssid-rows{flex-direction:column;gap:6px;max-width:520px;display:flex}.ssid-row{position:relative}.ssid-input{font-variant-numeric:tabular-nums;letter-spacing:.04em;width:100%}.ssid-suggest{z-index:20;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md,0 6px 18px #0f172a1f);max-height:264px;margin:3px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.ssid-suggest-item{border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:0;align-items:baseline;gap:10px;padding:7px 9px;display:flex}.ssid-suggest-item:hover{background:var(--primary-light,var(--surface-2))}.ssid-suggest-ssid{font-variant-numeric:tabular-nums;color:var(--primary);white-space:nowrap;font-weight:700}.ssid-suggest-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ssid-suggest-grade{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.ssid-hint{font-size:var(--fs-xs);max-width:62ch;margin:8px 0 0}.ssid-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:14px 0 10px;display:flex}.ssid-actions-right{gap:8px;display:flex}.ssid-table{width:100%}.ssid-table .num{text-align:right;font-variant-numeric:tabular-nums}.ssid-print-warn{color:#0f172a;break-after:avoid;page-break-after:avoid;border-left:2.5px solid #0f172a;padding:5px 0 5px 9px}.ssid-missing td{color:#b45309;font-style:italic}.action-menu{display:inline-block;position:relative}.action-menu-list{z-index:50;background:var(--card,#fff);border:1px solid var(--border);border-radius:8px;min-width:11rem;margin-top:4px;position:absolute;top:100%;overflow:hidden;box-shadow:0 8px 24px #0000001f}.action-menu-list[data-align=right]{right:0}.action-menu-list[data-align=left]{left:0}@media (width<=768px){.action-menu-list[data-align=right],.action-menu-list[data-align=left]{max-width:calc(100vw - 24px);left:0;right:auto}}.action-menu-item{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;padding:.5rem .75rem;font-size:.8125rem;display:block}@media (width<=768px){.action-menu-item{min-height:44px}}.action-menu-item:hover:not(:disabled),.action-menu-item:focus-visible{background:var(--surface-2)}.action-menu-item:disabled{opacity:.45;cursor:not-allowed}.action-menu-item-label{display:block}.action-menu-item-hint{color:var(--muted);margin-top:.0625rem;font-size:.75rem;display:block}.action-menu-list.is-floating{z-index:600;margin-top:0;position:fixed;top:auto}.action-menu-list.is-floating[data-align=right],.action-menu-list.is-floating[data-align=left]{left:auto;right:auto}@media (width<=768px){.action-menu-list.is-floating{max-width:calc(100vw - 24px)}}.action-menu-list.is-floating{overscroll-behavior:contain;overflow:hidden auto}.review-clock-chip{border-radius:var(--radius-sm);background:var(--chip-on-bg);color:var(--chip-on-ink);white-space:nowrap;padding:.15em .6em;font-size:.78em;font-weight:600;line-height:1.5;display:inline-block}.goal-graph-svg{width:100%;max-width:640px;height:auto;display:block}.goal-graph-axis{stroke:var(--border);stroke-width:1px}.goal-graph-target-line{stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:2 3}.goal-graph-aimline{stroke:var(--primary);stroke-width:1.5px;stroke-dasharray:6 3}.goal-graph-trend-line{stroke:var(--text);stroke-width:2px}.goal-graph-point{fill:var(--primary-dark);stroke:#fff;stroke-width:1px}.goal-graph-baseline-marker{fill:var(--muted)}.goal-graph-legend{gap:var(--space-3);font-size:var(--fs-xs);color:var(--muted);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.goal-graph-legend-item{align-items:center;gap:5px;display:inline-flex}.goal-graph-swatch{border-top-width:2px;width:14px;height:0;display:inline-block}.goal-graph-swatch-baseline{border-top:2px dotted var(--muted)}.goal-graph-swatch-target{border-top:2px dashed var(--muted)}.goal-graph-swatch-aimline{border-top:2px dashed var(--primary)}.goal-graph-swatch-trend{border-top:2px solid var(--text)}.goal-graph-caption{font-size:var(--fs-sm);margin-top:var(--space-2);color:var(--text)}.goal-verdict-good{color:var(--success-ink);font-weight:600}.goal-verdict-bad{color:var(--danger-ink);font-weight:600}.goal-verdict-neutral{color:var(--muted);font-weight:600}.goal-row{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);margin-bottom:var(--space-3)}.goal-row-head{justify-content:space-between;align-items:flex-start;gap:var(--space-2);flex-wrap:wrap;display:flex}.goal-row-statement{font-weight:600}.goal-row-meta{font-size:var(--fs-sm);color:var(--muted);margin-top:2px}.goal-row-comments{font-size:var(--fs-sm);color:var(--text);white-space:pre-line;margin-top:4px}.goal-row-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.goal-row-log{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px dashed var(--border)}.goal-row-log-head{font-weight:600;font-size:var(--fs-sm);margin-bottom:4px}.goal-row-log-empty{margin:0}.goal-row-log-list{font-size:var(--fs-sm);color:var(--text);flex-direction:column;gap:2px;margin:0;padding-left:1.1em;display:flex}.goal-field-full{grid-column:1/-1}.goal-form,.goal-datapoint-form{margin:var(--space-2) 0 var(--space-3)}.goal-refusal{font-size:var(--fs-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-3);background:var(--danger-bg);color:var(--danger-ink)}.goal-form-actions{margin-top:var(--space-3);gap:10px;display:flex}.clash-anchor>.clash-note{z-index:20;opacity:0;visibility:hidden;width:max-content;max-width:300px;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;top:calc(100% + 4px);left:0;transform:translateY(-3px)}.clash-anchor:hover>.clash-note,.clash-anchor:focus-within>.clash-note{opacity:1;visibility:visible;transform:none}.clash-anchor:hover,.clash-anchor:focus-within{z-index:19}@media (prefers-reduced-motion:reduce){.clash-anchor>.clash-note{transition:none;transform:none}}.clash-note{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-lg);color:var(--text);text-align:left;flex-direction:column;gap:6px;padding:8px 10px;font-size:12px;line-height:1.45;display:flex}.clash-note-row{align-items:baseline;gap:7px;min-width:0;display:flex}.clash-note-dot{background:var(--text-muted);border-radius:50%;flex:none;width:8px;height:8px;margin-top:1px}.clash-note-dot--homeroom{background:var(--clash-homeroom)}.clash-note-dot--teacher{background:var(--clash-teacher)}.clash-note-dot--room{background:var(--clash-room)}.clash-note-dot--hours{background:var(--clash-hours)}.clash-note-dot--week{background:var(--clash-week)}.clash-note-why{flex:auto;min-width:0}.clash-note-go{border:1px solid var(--primary);color:var(--primary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:2px 8px;font-size:11.5px;font-weight:600;transition:background .14s,color .14s}.clash-note-go:hover{background:var(--primary);color:#fff}.clash-note-go:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.clash-note-more{color:var(--text-muted);margin-top:2px;font-size:11px}.btg{--btg-row:22px;border:1px solid var(--border);background:var(--surface,white);border-radius:10px;overflow:hidden}.btg-head{border-bottom:1px solid var(--border);background:var(--surface-2);display:flex}.btg-corner{width:var(--btg-gutter);flex:0 0 var(--btg-gutter)}.btg-col-head{border-left:1px solid var(--border);flex:1 1 0;align-items:baseline;gap:6px;min-width:0;padding:7px 10px;display:flex}.btg-col-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.btg-col-count{color:var(--text-muted);background:var(--border);border-radius:9px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700}.btg-body{display:flex;position:relative}.btg-ruler{width:var(--btg-gutter);flex:0 0 var(--btg-gutter);position:relative}.btg-mark{text-align:right;color:var(--text);white-space:nowrap;pointer-events:none;padding-right:8px;font-size:10.5px;font-weight:600;line-height:1.1;position:absolute;left:0;right:0;transform:translateY(-50%)}.btg-mark.is-range{color:var(--muted);pointer-events:auto;font-weight:500}.btg-tick{height:var(--btg-row);box-sizing:border-box;color:var(--text-muted);text-align:right;border-top:1px solid #0000;padding-right:8px;font-size:10.5px}.btg-tick.is-hour{border-top-color:var(--border);color:var(--text);font-weight:600}.btg-gap{z-index:0;background:repeating-linear-gradient(-45deg, var(--hatch-ink,#78808c29) 0 3px, transparent 3px 7px);border-radius:4px;position:absolute;left:2px;right:2px}.btg-tick span{background:var(--surface,white);padding-left:4px;position:relative;top:-.55em}.btg-col{border-left:1px solid var(--border);flex:1 1 0;min-width:0;position:relative}.btg-line{height:var(--btg-row);box-sizing:border-box;border-top:1px dashed color-mix(in srgb, var(--border) 60%, transparent)}.btg-line.is-hour{border-top:1px solid var(--border)}.btg-slot{box-sizing:border-box;z-index:1;position:absolute}.btg-block{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--btg-tint,var(--primary)) 55%, transparent);background:color-mix(in srgb, var(--btg-tint,var(--primary)) 12%, white);width:100%;height:100%;color:var(--text);text-align:left;font:inherit;cursor:pointer;border-radius:7px;flex-direction:column;gap:1px;padding:3px 7px;line-height:1.2;transition:box-shadow .12s,transform .12s;display:flex;position:static;overflow:hidden}.btg-block:hover{box-shadow:0 2px 8px #0000001f}.btg-block:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.btg-block.is-noclass{border-color:var(--border);background:var(--surface-2);color:var(--text-muted)}.btg-block.is-noclass--planning{background:repeating-linear-gradient(-45deg, var(--kind-planning-hatch) 0 3px, transparent 3px 7px), color-mix(in srgb, var(--kind-planning) 14%, var(--surface-2));box-shadow:inset 3px 0 0 var(--kind-planning)}.btg-block.is-noclass--lunch{background:repeating-linear-gradient(-45deg, var(--kind-lunch-hatch) 0 3px, transparent 3px 7px), color-mix(in srgb, var(--kind-lunch) 14%, var(--surface-2));box-shadow:inset 3px 0 0 var(--kind-lunch)}.btg-block.is-noclass--duty{background:repeating-linear-gradient(-45deg, var(--kind-duty-hatch) 0 3px, transparent 3px 7px), var(--surface-2);box-shadow:inset 3px 0 0 var(--kind-duty)}.btg-block.is-homeroom{border-color:color-mix(in srgb, var(--kind-homeroom) 55%, transparent);background:color-mix(in srgb, var(--kind-homeroom) 12%, white);box-shadow:inset 3px 0 0 var(--kind-homeroom)}.btg-block.is-noclass--planning:not(.is-clash):hover{box-shadow:inset 3px 0 0 var(--kind-planning), 0 2px 8px #0000001f}.btg-block.is-noclass--lunch:not(.is-clash):hover{box-shadow:inset 3px 0 0 var(--kind-lunch), 0 2px 8px #0000001f}.btg-block.is-noclass--duty:not(.is-clash):hover{box-shadow:inset 3px 0 0 var(--kind-duty), 0 2px 8px #0000001f}.btg-block.is-homeroom:not(.is-clash):hover{box-shadow:inset 3px 0 0 var(--kind-homeroom), 0 2px 8px #0000001f}.btg-block.is-clash{border-color:var(--clash-homeroom);background:color-mix(in srgb, var(--clash-homeroom) 12%, white);box-shadow:inset 3px 0 0 var(--clash-homeroom)}.btg-block.is-clash--minor{border-color:var(--clash-room);background:color-mix(in srgb, var(--clash-room) 12%, white);box-shadow:inset 3px 0 0 var(--clash-room)}.btg-col:last-child .clash-anchor>.clash-note{left:auto;right:0}.btg-block.is-clipped{border-bottom-style:dashed}.btg-block-name{white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:600;overflow:hidden}.btg-block-time{color:var(--text-muted);font-size:10px}.btg-block-plan{color:var(--primary);white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:600;overflow:hidden}.btg-block-plan.is-missing{color:var(--text-muted);font-weight:500}.btg-block.is-split{justify-content:space-between;gap:0}.btg-block.is-whole{border-color:var(--border);background:var(--surface-2);color:var(--text-muted);justify-content:center;gap:0}button.btg-block-name,button.btg-block-plan{width:100%;min-height:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:3px;flex:1 1 0;align-items:center;padding:0;display:flex}button.btg-block-name{color:inherit;font-size:11.5px;font-weight:600}button.btg-block-name:hover{text-decoration:underline}button.btg-block-plan{color:var(--primary);font-size:10px;font-weight:600}button.btg-block-plan:hover{text-decoration:underline}button.btg-block-name:focus-visible,button.btg-block-plan:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.btg-block-plan.is-none,.btg-block-plan.is-closed{min-height:0;color:var(--text-muted);flex:1 1 0;align-items:center;font-style:italic;font-weight:500;display:flex}.btg-block-name>span,.btg-block-plan>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;display:block;overflow:hidden}.btg-col-head.is-today .btg-col-name{color:var(--primary)}.btg-col.is-today{background:color-mix(in srgb, var(--primary) 4%, transparent)}.btg-block-duty{color:#fff;letter-spacing:.04em;background:#6d28d9;border-radius:999px;align-self:flex-start;margin-top:1px;padding:0 5px;font-size:8.5px;font-weight:800}.btg-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:10px;padding:22px;font-size:12.5px;font-style:italic}@media (width<=640px){.btg-block-time{font-size:9.5px}.btg-corner,.btg-ruler{z-index:3;background:var(--surface,white);position:sticky;left:0}.btg-corner{background:var(--surface-2)}}.richdoc{font-size:inherit;color:inherit;line-height:1.45}.richdoc-p{margin:0 0 var(--space-2) 0}.richdoc>:last-child,.richdoc-cell>:last-child,.richdoc-li>:last-child{margin-bottom:0}.richdoc-h{margin:0 0 var(--space-2) 0;letter-spacing:-.01em;color:var(--text);font-size:1em;font-weight:700}h4.richdoc-h{color:var(--muted);font-size:.95em}.richdoc-ul,.richdoc-ol{margin:0 0 var(--space-2) 0;padding-left:1.25rem}.richdoc-li{margin:0 0 .125rem}.richdoc-table-wrap{margin:0 0 var(--space-2) 0;overflow-x:auto}.richdoc-table,.richdoc table{border-collapse:collapse;table-layout:fixed;width:100%}.richdoc-cell,.richdoc td,.richdoc th{border:1px solid var(--border-strong);vertical-align:top;word-break:break-word;overflow-wrap:anywhere;padding:.3rem .4rem}th.richdoc-cell,.richdoc th{background:var(--surface-2,#f8fafc);text-align:left;font-weight:600}.richdoc-link{color:var(--primary);text-decoration:underline}.richdoc-bad-link{color:var(--muted);cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.richdoc-tone-red{color:var(--danger-ink)}.richdoc-tone-orange{color:#b45309}.richdoc-tone-green{color:var(--success-ink)}.richdoc-tone-blue{color:var(--info-ink)}.richdoc-tone-purple{color:#6d28d9}.richdoc-tone-grey{color:var(--muted)}.richdoc-hl-yellow{background:#fef08a}.richdoc-hl-green{background:#bbf7d0}.richdoc-hl-blue{background:#bfdbfe}.richdoc-hl-pink{background:#fbcfe8}.richdoc-hl-grey{background:#e2e8f0}.richdoc [class^=richdoc-hl-]{border-radius:.15em;padding:0 .1em}.richdoc-size-small{font-size:.85em}.richdoc-size-large{font-size:1.25em}@media print{.richdoc-table-wrap{overflow-x:visible}.richdoc [class^=richdoc-hl-]{-webkit-print-color-adjust:exact;print-color-adjust:exact}.richdoc-table tr,.richdoc table tr{break-inside:avoid}}.lp-type-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:700}.lp-type-badge.is-structured{background:var(--primary-light);color:var(--primary-dark)}.lp-type-badge.is-freeform{background:var(--warning-bg);color:var(--warning-ink)}.lp-quick-assign-banner{background:var(--primary-light);border:1px solid var(--primary);color:var(--text);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 14px;font-size:13px;display:flex}.lp-mode-switch{border-top:1px solid var(--border);gap:8px;margin:4px 0 16px;padding-top:14px;display:flex}.lp-mode-btn{border:1.5px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:20px;padding:6px 14px;font-size:13px}.lp-mode-btn.active{border:2px solid var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.lp-freeform-content{min-height:320px;font-family:inherit;line-height:1.5}.lp-activity-editor{border:1.5px solid var(--border);border-radius:10px;margin-bottom:12px;overflow:hidden}.lp-activity-editor-head{background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.lp-activity-num{background:var(--primary-light);width:24px;height:24px;color:var(--primary);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.lp-activity-mins{color:var(--text-muted);align-items:center;gap:5px;font-size:12px;display:flex}.lp-activity-mins input{width:70px}.lp-activity-controls{gap:2px;display:flex}.lp-activity-editor-body{grid-template-columns:1fr 1fr;display:grid}.lp-activity-cell{padding:10px 12px}.lp-activity-cell+.lp-activity-cell{border-left:1px solid var(--border)}.lp-activity-cell-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:700}.lp-activity-cell textarea{width:100%;min-height:72px}@media (width<=640px){.lp-activity-editor-body{grid-template-columns:1fr}.lp-activity-cell+.lp-activity-cell{border-left:none;border-top:1px solid var(--border)}}.lp-edit-toolbar{top:var(--header-h);z-index:20;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-2) 0;background:var(--bg,var(--card));border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex;position:sticky}.lp-edit-hud-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;margin-left:auto;display:flex}.lp-edit-dirty{font-size:var(--fs-sm);color:var(--warning-ink);white-space:nowrap;font-weight:600}.lp-edit-dirty.is-saved{color:var(--success-ink)}.lp-edit-dirty.is-error{color:var(--danger-ink)}.lp-edit-toolbar .lp-mode-group{gap:var(--space-2);display:flex}.lp-edit-days{align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--muted);display:flex}.lp-edit-days input{width:4.5rem}.lp-doc--editing .lp-edit-title,.lp-doc--editing .lp-edit-subject,.lp-doc--editing .lp-edit-meta,.lp-doc--editing .lp-edit-actname,.lp-doc--editing .lp-edit-min,.lp-doc--editing .lp-edit-cell,.lp-doc--editing .lp-edit-freeform{color:var(--text);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;outline:none;width:100%;padding:.125rem .375rem;font-family:inherit;transition:background .12s,border-color .12s,box-shadow .12s}.lp-doc--editing .lp-edit-title:hover,.lp-doc--editing .lp-edit-subject:hover,.lp-doc--editing .lp-edit-meta:hover,.lp-doc--editing .lp-edit-actname:hover,.lp-doc--editing .lp-edit-min:hover,.lp-doc--editing .lp-edit-cell:hover,.lp-doc--editing .lp-edit-freeform:hover{background:var(--surface-2);border-color:var(--border)}.lp-doc--editing .lp-edit-title:focus,.lp-doc--editing .lp-edit-subject:focus,.lp-doc--editing .lp-edit-meta:focus,.lp-doc--editing .lp-edit-actname:focus,.lp-doc--editing .lp-edit-min:focus,.lp-doc--editing .lp-edit-cell:focus,.lp-doc--editing .lp-edit-freeform:focus{background:var(--card);border-color:var(--primary);box-shadow:0 0 0 2px #2563eb26}.lp-doc--editing ::placeholder{color:var(--light)}.lp-doc--editing .lp-edit-title{font-size:var(--fs-lg);letter-spacing:0;font-weight:700}.lp-doc--editing .lp-edit-subject{width:auto;min-width:8rem;font-size:var(--fs-md);display:inline-block}.lp-doc--editing .lp-edit-meta{font-size:.844rem;line-height:1.5}.lp-doc--editing textarea.lp-edit-meta{min-height:2.75rem}.lp-doc--editing .lp-edit-cell{font-size:var(--fs-md);min-height:3.75rem;line-height:1.55}.lp-doc--editing .lp-edit-freeform{min-height:20rem;font-size:.844rem;line-height:1.6}.lp-doc--editing .lp-edit-meta,.lp-doc--editing .lp-edit-cell,.lp-doc--editing .lp-edit-freeform{resize:none;overflow-y:hidden}.lp-edit-headgrid{align-items:center;gap:var(--space-2);grid-template-columns:minmax(6rem,1fr) auto auto auto;grid-template-areas:"name kind clock controls";width:100%;display:grid}.lp-edit-headgrid>.lp-edit-actname-wrap{grid-area:name}.lp-edit-headgrid>.lp-kind-wrap{grid-area:kind}.lp-edit-headgrid>.lp-edit-min-wrap{grid-area:clock}.lp-edit-headgrid>.lp-edit-act-controls{grid-area:controls}@media (width<=640px){.lp-edit-headgrid{row-gap:var(--space-2);grid-template-columns:auto 1fr auto;grid-template-areas:"name name name""kind kind kind""clock.controls"}.lp-edit-headgrid>.lp-kind-wrap{min-width:0}.lp-edit-headgrid>.lp-edit-min-wrap{justify-content:flex-start}.lp-edit-actname-wrap>.lp-edit-actname{flex:8rem;min-width:0}}.lp-edit-actname-wrap{align-items:baseline;gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.lp-edit-actname-wrap>.lp-edit-ghosthint{flex-basis:100%;order:9}.lp-edit-actnum{font-weight:800;font-size:var(--fs-base);flex-shrink:0}.lp-edit-min-wrap{min-width:0;font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;text-transform:none;letter-spacing:0;justify-content:flex-end;align-items:center;gap:3px;font-weight:600;display:inline-flex}.lp-doc--editing .lp-edit-min{text-align:right;width:3.25rem}.lp-doc--editing .lp-edit-fact{width:100%;color:var(--text);border:none;border-bottom:1px dashed var(--border);background:0 0;padding:0;font-size:13.5px;font-weight:600}.lp-doc--editing .lp-edit-fact:hover{border-bottom-color:var(--primary)}.lp-doc--editing .lp-edit-fact:focus{border-bottom:1px solid var(--primary);outline:none}.lp-edit-act-controls{flex-shrink:0;gap:2px;display:flex}.lp-edit-act-controls .btn{font-size:var(--fs-sm);padding:.125rem .4rem}.lp-edit-add{margin-top:var(--space-3)}.lp-edit-empty{color:var(--muted);font-size:var(--fs-md);margin:var(--space-2) 0}.lp-doc{background:var(--card);border:1px solid var(--border);border-radius:12px;max-width:880px;padding:28px 32px}.lp-doc-header{border-bottom:3px solid var(--text);padding-bottom:8px}.lp-doc-header--editing{align-items:baseline;gap:0 var(--space-2);border:1px solid var(--text);flex-wrap:wrap;padding:0 12px 0 0;display:flex}.lp-doc-header--editing .lp-doc-fact--title{border-right:none;flex:14rem;padding:6px 12px 7px}.lp-doc-header--editing .lp-edit-title{padding-left:0;padding-right:.375rem}.lp-req{color:var(--danger-ink);margin-left:2px;font-weight:700}.lp-req-hint{font-size:var(--fs-xs);color:var(--warning-ink);flex:0 auto;padding-bottom:7px;font-weight:600}.lp-doc-title{color:var(--text);font-size:19px;font-weight:800}.lp-doc-subtitle{color:var(--text-muted);margin-top:2px;font-size:13px}.lp-doc-class{color:var(--text-muted);margin-top:2px;font-size:14px;font-weight:600}.lp-doc-facts{border:1px solid var(--text);border-top:none;flex-wrap:wrap;gap:0;margin-bottom:16px;display:flex}.lp-doc-fact-aside{font-size:var(--fs-xs);color:var(--text-muted)}.lp-doc-fact{border-right:1px solid var(--border);flex-direction:column;flex:33%;gap:1px;min-width:8rem;padding:6px 12px;display:flex}.lp-doc-fact:last-child{border-right:none}.lp-doc-fact-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:10px;font-weight:700}.lp-doc-fact-value{color:var(--text);font-size:13.5px;font-weight:600}.lp-doc-meta{margin-bottom:16px}.lp-doc-ctx{border:1px solid var(--text);grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:14px;display:grid}.lp-doc-ctx-cell{border-right:1px solid var(--border);min-width:0;padding:5px 10px}.lp-doc-ctx-cell:last-child{border-right:none}.lp-doc-ctx-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:9.5px;font-weight:700}.lp-doc-ctx-value{color:var(--text);overflow-wrap:anywhere;font-size:12px;font-weight:600}@media (width<=720px){.lp-doc-ctx{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-doc-ctx-cell:nth-child(2n){border-right:none}}.lp-doc-meta-row{border-bottom:1px solid var(--border);gap:12px;padding:6px 0;display:flex}.lp-doc-meta-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);flex:0 0 90px;padding-top:2px;font-size:11px;font-weight:700}.lp-doc-meta-value{white-space:pre-wrap;font-size:13.5px;line-height:1.5}.lp-doc-freeform{white-space:pre-wrap;font-size:13.5px;line-height:1.6}.lp-doc-notes{border-top:1px solid var(--border);margin-top:16px;padding-top:10px}.lp-doc-table{border-collapse:collapse;border:2px solid var(--text);table-layout:fixed;width:100%}.lp-doc-activity-head td{border:1px solid var(--text);background:#f1f5f9;padding:8px 12px}.lp-doc-activity-name{font-size:14px;font-weight:700}.lp-doc-activity{break-inside:avoid;page-break-inside:avoid}.lp-doc-activity-timecell{text-align:right;white-space:nowrap}.lp-doc-activity-time{color:var(--text-muted);font-size:12.5px;font-weight:600}.lp-doc-activity-cols th{border:1px solid var(--text);text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:5px 12px;font-size:11px;font-weight:700}.lp-doc-activity-cols th:last-child{overflow:hidden}.lp-doc-activity-body td{border:1px solid var(--text);vertical-align:top;white-space:pre-wrap;padding:10px 12px;font-size:13px;line-height:1.55}@media print{.lp-doc{border:none;border-radius:0;max-width:none;padding:0}.lp-no-print{display:none!important}}.lp-doc-context{color:#475569;border-bottom:2px solid var(--text);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:6px;font-size:12px;font-weight:700;display:flex}.lp-assign-backdrop{z-index:500;background:#0f172a4d;position:fixed;inset:0}.lp-assign-panel{background:var(--card);z-index:501;border-radius:14px;width:min(420px,100vw - 32px);position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 12px 48px #0f172a38}.lp-assign-panel-header{border-bottom:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 18px 12px;display:flex}.lp-assign-panel-body{padding:16px 18px}.lp-sched{background:var(--card);z-index:501;border-radius:14px;flex-direction:column;width:min(940px,100vw - 28px);max-height:calc(100vh - 40px);display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 16px 56px #0f172a42}.lp-sched-header{border-bottom:1px solid var(--border);background:var(--surface-2);justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 20px 13px;display:flex}.lp-sched-body{grid-template-columns:320px 1fr;gap:0;min-height:0;display:grid;overflow:hidden}.lp-sched-side{border-right:1px solid var(--border);padding:16px 18px;overflow-y:auto}.lp-sched-cal{flex-direction:column;padding:14px 18px 16px;display:flex;overflow-y:auto}.lp-seq-list{flex-direction:column;gap:6px;display:flex}.lp-seq-item{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:6px 8px;display:flex}.lp-seq-num{background:var(--primary-light);width:18px;height:18px;color:var(--primary);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.lp-seq-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.lp-seq-days{flex-shrink:0;align-items:center;gap:3px;display:flex}.lp-seq-days input{width:46px;padding:3px 5px;font-size:12px}.lp-seq-days span{color:var(--text-muted);font-size:10px}@media (width<=640px){.lp-seq-days input{font-size:1rem}}.lp-seq-controls{flex-shrink:0;gap:1px;display:flex}.lp-seq-controls .btn{padding:1px 5px;font-size:12px}.lp-sched-existing{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.lp-existing-row{align-items:center;gap:6px;padding:5px 0;display:flex}.lp-sched-cal-head{justify-content:center;align-items:center;gap:14px;margin-bottom:8px;display:flex}.lp-sched-move-note{color:var(--primary);background:var(--primary-light);text-align:center;border-radius:6px;margin-bottom:8px;padding:4px 8px;font-size:11px}.lp-sched-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.lp-sched-dow{text-align:center;color:var(--text-muted);padding:2px 0;font-size:10px;font-weight:700}.lp-sched-cell{border:1px solid var(--border);background:var(--card);cursor:pointer;min-height:56px;color:var(--text);text-align:left;border-radius:7px;flex-direction:column;align-items:stretch;gap:2px;padding:3px 4px;font-family:inherit;transition:border-color .1s,background .1s;display:flex}.lp-sched-cell.is-pad{cursor:default;background:0 0;border:none}@media (width<=760px){.lp-sched{border-radius:0;width:100vw;height:100dvh;max-height:100dvh;top:0;left:0;transform:none}.lp-sched-body{-webkit-overflow-scrolling:touch;grid-template-columns:1fr;overflow-y:auto}.lp-sched-side{border-right:none;border-bottom:1px solid var(--border);overflow-y:visible}.lp-sched-cal{overflow-y:visible}.lp-sched-cell{min-height:46px}}.lp-sched-cell.is-off{background:repeating-linear-gradient(135deg, transparent 0 5px, color-mix(in srgb, var(--border-strong) 60%, transparent) 5px 6px), var(--bg);cursor:not-allowed;border-color:#0000}.lp-sched-cell:not(.is-off):not(.is-pad):hover{border-color:var(--primary)}.lp-sched-cell.is-start{box-shadow:inset 0 0 0 2px var(--primary)}.lp-sched-daynum{align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.lp-sched-cell.is-off .lp-sched-daynum{color:var(--muted);font-weight:500}.lp-sched-cell.is-partial{background:linear-gradient(135deg, color-mix(in srgb, var(--warning) 26%, transparent) 0 9px, transparent 9px), var(--card);border-color:color-mix(in srgb, var(--warning) 55%, var(--border))}.lp-sched-partial-mark{color:var(--warning-ink);font-size:9px;line-height:1}.lp-sched-plan{text-overflow:ellipsis;font-size:9.5px;font-weight:700;line-height:1.2;overflow:hidden}.lp-sched-daypip{opacity:.8;font-weight:500}.lp-sched-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:12px;display:flex}.lp-sched-cell.has-existing{background:var(--surface-2,#f4f5f7)}.lp-sched-existing-plan{color:var(--text-muted)}.lp-sched-cell.is-pushed{border-style:dashed;border-color:var(--warning);background:#fffbeb}.lp-sched-cell.is-pushed .lp-sched-existing-plan{color:#b45309}.lp-sched-cell.is-selected{background:var(--primary-light);border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.lp-sched-cell.is-selected .lp-sched-plan{color:var(--primary)}.lp-sched-cell.is-mine{background:var(--primary-light);border-color:#93c5fd}.lp-sched-cell.is-mine .lp-sched-existing-plan.is-mine{color:var(--primary)}.lp-sched-push-note{color:#b45309;background:#fffbeb;border:1px solid #fcd34d;border-radius:7px;margin-top:10px;padding:6px 10px;font-size:12px;font-weight:600}.lp-class-chip-count{color:var(--text-muted);font-weight:500}.lp-sched-chip-class{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:8.5px;font-weight:700;display:block;overflow:hidden}.lp-on-classes{color:var(--primary);background:var(--primary-light);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}tr.lp-when-divider td{background:0 0;border:none;padding:0}tr.lp-when-divider td:before{content:"";border-top:2px solid var(--border-strong,var(--border));height:0;margin:9px 0;display:block}tr.lp-when-divider:hover td{background:0 0}.lp-plan-who{color:var(--text);margin-bottom:2px;font-size:12px;font-weight:600}.lp-plan-offset{background:var(--chip-on-bg);color:var(--chip-on-ink);text-transform:none;letter-spacing:0;white-space:nowrap;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.lp-plan-who .lp-plan-offset{width:fit-content;margin:2px 0 0;display:block}.lp-plan-emblem{vertical-align:-2px;margin-right:6px}.lp-setall-bar{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 20px;display:flex}.lp-setall-bar .form-label{margin:0}.lp-sched-unknown{color:var(--warning-ink);background:var(--warning-bg);border:1px solid #fcd34d;border-radius:7px;margin-bottom:8px;padding:6px 10px;font-size:12px;line-height:1.45}.lp-sched-coverage-note{color:var(--warning-ink);background:var(--warning-bg);border:1px solid #fcd34d;border-radius:7px;gap:3px;margin-top:10px;padding:6px 10px;font-size:12px;display:grid}.lp-remove-summary{border:1px solid var(--border);background:var(--surface-2,#f8fafc);border-radius:8px;padding:10px 12px}.lp-remove-title{font-size:14px;font-weight:700}.lp-remove-sub{color:var(--text-muted);margin-top:2px;font-size:12px}.lp-remove-moves{gap:4px;margin-top:4px;display:grid}.lp-remove-move{background:var(--surface-2,#f4f5f7);border-radius:6px;justify-content:space-between;gap:10px;padding:4px 8px;font-size:12.5px;display:flex}.lp-remove-move-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lp-remove-move-dates{color:var(--text-muted);flex-shrink:0}.page-header>.lp-new-group{margin-left:var(--space-3);flex-shrink:0}.page-header:has(>.lp-new-group)>.class-switcher-row{flex:auto;min-width:0}.lp-filter-bar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.lp-filter-bar .tabs-bar{background:0 0;border:none;margin:0;padding:0;position:static}.lp-share-body{flex-direction:column;gap:8px;display:flex}.lp-share-intro{font-size:var(--fs-sm);margin:0 0 4px}.lp-share-error{margin:0 0 4px}.lp-share-status{font-size:var(--fs-sm);padding:12px 4px}.lp-share-list{border:1px solid var(--border);border-radius:8px;max-height:220px;overflow-y:auto}.lp-share-person{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:9px 12px;display:flex}.lp-share-person:last-child{border-bottom:0}.lp-share-person:hover{background:var(--surface-2)}.lp-share-person.is-picked{background:var(--primary-light)}.lp-share-person-name{font-weight:600}.lp-share-person-sub{font-size:var(--fs-xs);margin-left:auto}@media (width<=768px){.lp-share-person{min-height:44px}}.lp-new-group{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.lp-new-split{display:inline-flex}.lp-new-split>.btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.lp-new-split .lp-new-more{border-left:1px solid oklch(100% 0 0/.25);border-top-left-radius:0;border-bottom-left-radius:0;min-width:44px;padding-left:10px;padding-right:10px}.lp-bulk-bar{border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--primary-light);border-bottom:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.lp-bulk-count{color:var(--primary-dark);font-size:13px;font-weight:600}.lp-bulk-count .text-muted{font-weight:400}.lp-bulk-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lp-bulk-check{cursor:pointer;width:16px;height:16px;accent-color:var(--primary)}.sec-row.is-selected td{background:var(--primary-light)}.lp-starter-grid{grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:10px;margin-top:4px;display:grid}.lp-starter-card{text-align:left;border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;transition:border-color .12s,background .12s;display:flex}.lp-starter-card:hover,.lp-starter-card:focus-visible{border-color:var(--primary);background:var(--surface-2)}.lp-starter-name{font-weight:700;font-size:var(--fs-base);color:var(--text)}.lp-starter-meta{font-size:var(--fs-xs);color:var(--muted);font-weight:600}.lp-starter-blurb{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.45}.lp-starter-steps{font-size:var(--fs-xs);color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.lp-pick-step{align-items:flex-start;gap:10px;margin:18px 0 8px;display:flex}.lp-pick-step:first-of-type{margin-top:4px}.lp-pick-step-n{background:var(--primary);color:#fff;width:22px;height:22px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.lp-pick-step-title{font-weight:700;font-size:var(--fs-base);color:var(--text)}.lp-pick-total{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.lp-pick-step-hint{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.45}.lp-pick-blurb{font-size:var(--fs-xs);color:var(--text-muted);margin:8px 0 10px;line-height:1.45}.lp-layout-row{grid-template-columns:repeat(auto-fill,minmax(min(13rem,100%),1fr));gap:10px;display:grid}.lp-layout-chip{text-align:left;border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:8px;transition:border-color .12s,box-shadow .12s;display:flex}.lp-layout-chip:hover,.lp-layout-chip:focus-visible{border-color:var(--primary)}.lp-layout-chip.is-active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary) inset}.lp-layout-chip-name{font-weight:700;font-size:var(--fs-sm);color:var(--text)}.lp-layout-chip-meta{font-size:var(--fs-xs);color:var(--muted);font-weight:600}.lp-kind-grid{grid-template-columns:repeat(auto-fill,minmax(min(13rem,100%),1fr));gap:8px;margin-top:4px;display:grid}.lp-kind-card{text-align:left;border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:10px;flex-direction:column;gap:3px;padding:10px 12px;transition:border-color .12s,background .12s;display:flex}.lp-kind-card:hover,.lp-kind-card:focus-visible{border-color:var(--primary);background:var(--surface-2)}.lp-kind-card.is-active{border-color:var(--primary);background:var(--primary-light)}.lp-kind-name{font-weight:700;font-size:var(--fs-sm);color:var(--text)}.lp-kind-blurb{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4}.lp-preview{border:1px solid var(--border);background:var(--card);border-radius:10px;padding:10px;overflow-x:auto}.lp-preview .lp-doc-table{font-size:var(--fs-xs)}.lp-preview .lp-doc-activity-name{font-size:var(--fs-sm)}.lp-edit-slot{font-size:var(--fs-xs);color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;flex:none;padding:1px 8px;font-weight:700}.lp-doc-activity.is-ghost .lp-edit-actname,.lp-doc-activity.is-ghost .lp-edit-min,.lp-doc-activity.is-ghost .lp-edit-actnum,.lp-doc-activity.is-ghost th,.lp-doc-activity.is-ghost textarea{color:var(--muted)}.lp-doc-activity.is-ghost td,.lp-doc-activity.is-ghost th{background:var(--surface-2)}.lp-doc-activity.is-ghost .lp-edit-actname::placeholder,.lp-doc-activity.is-ghost textarea::placeholder{opacity:.75}.lp-edit-ghosthint{font-size:var(--fs-xs);color:var(--muted);flex:none;font-weight:600}@media print{.lp-doc-activity.is-ghost{display:none}}.lp-edit-actname{flex:10rem;min-width:7rem}.lp-kind-wrap{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;min-width:0;display:grid}.lp-kind-chip{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-muted);white-space:nowrap;cursor:pointer;padding:3px 9px;font-size:11.5px;font-weight:600;line-height:1.4;transition:background .14s,border-color .14s,color .14s}.lp-kind-chip--teacher:hover{border-color:var(--act-teacher);color:var(--act-teacher)}.lp-kind-chip--class:hover{border-color:var(--act-class);color:var(--act-class)}.lp-kind-chip--student:hover{border-color:var(--act-student);color:var(--act-student)}.lp-kind-chip--teacher.active{background:var(--act-teacher);border-color:var(--act-teacher);color:#fff}.lp-kind-chip--class.active{background:var(--act-class);border-color:var(--act-class);color:#fff}.lp-kind-chip--student.active{background:var(--act-student);border-color:var(--act-student);color:#fff}.lp-kind-chip[aria-disabled=true]{cursor:default}.lp-edit-del-word{display:none}@media (width<=640px){.lp-edit-del-word{display:inline}}.lp-kind-chip.active[aria-disabled=true]{opacity:1}.lp-box-h,.lp-doc-activity-body td:before{background:var(--surface-2);color:var(--text-muted)}.lp-box-h--teacher,.lp-doc-activity-body td[data-side=teacher]:before{background:var(--act-teacher-bg);color:var(--act-teacher-ink);box-shadow:inset 0 2px 0 var(--act-teacher)}.lp-box-h--class,.lp-doc-activity-body td[data-side=class]:before{background:var(--act-class-bg);color:var(--act-class-ink);box-shadow:inset 0 2px 0 var(--act-class)}.lp-box-h--student,.lp-doc-activity-body td[data-side=student]:before{background:var(--act-student-bg);color:var(--act-student-ink);box-shadow:inset 0 2px 0 var(--act-student)}.lp-doc-activity.is-ghost .lp-box-h,.lp-doc-activity.is-ghost .lp-doc-activity-body td:before{background:var(--surface-2);color:var(--muted);box-shadow:none}.lp-addact-row{flex-wrap:wrap;gap:6px;display:inline-flex}.lp-edit-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border);max-width:880px;display:flex}.lp-gallery{margin-top:14px}.lp-gallery-head{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.lp-gallery-title{color:var(--text);font-size:14px;font-weight:700}.lp-gallery-note{color:var(--text-muted);max-width:70ch;font-size:12px}.lp-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:10px;display:grid}.lp-gallery-card{text-align:left;border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:8px;transition:border-color .12s,box-shadow .12s;display:flex}.lp-gallery-card:hover,.lp-gallery-card:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-sm)}.lp-gallery-name{color:var(--text);font-size:12.5px;font-weight:700}.lp-gallery-meta{color:var(--text-muted);font-size:11px;font-weight:600}.lp-gallery-all{margin-top:8px}.lp-month{flex-direction:column;gap:10px;display:flex}.lp-month-nav{align-items:center;gap:8px;display:flex}.lp-month-title{text-align:center;min-width:160px;margin:0;font-size:15px;font-weight:700}.lp-month-grid{grid-template-columns:22px repeat(7,minmax(0,1fr));gap:3px;display:grid}.lp-month-week{grid-column:1/-1;grid-template-columns:subgrid;border-radius:9px;gap:3px;display:grid}@supports not (grid-template-columns:subgrid){.lp-month-week{grid-template-columns:22px repeat(7,minmax(0,1fr))}}.lp-month-week.is-current{background:var(--primary-light);box-shadow:inset 0 0 0 1px var(--primary)}.lp-month-weeknum{color:var(--text-muted);border-right:1px dotted var(--border);justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex}.lp-month-week.is-current .lp-month-weeknum{color:var(--primary);border-right-color:var(--primary)}.lp-month-dow{text-align:center;color:var(--text-muted);padding:2px 0;font-size:10px;font-weight:700}.lp-month-cell{border:1px solid var(--border);background:var(--card);border-radius:8px;flex-direction:column;gap:2px;min-height:62px;padding:2px 3px;display:flex;position:relative;overflow:visible}.lp-month-cell.is-pad{background:0 0;border:none}.lp-month-cell.has-plans{background:var(--surface-2,#f4f5f7)}.lp-month-cell.is-today{box-shadow:inset 0 0 0 2px var(--primary)}.lp-month-daynum{color:var(--text-muted);padding:1px 2px;font-size:10px;font-weight:700;line-height:1}.lp-month-cell.is-closed{background:repeating-linear-gradient(45deg, var(--surface-2,#f4f5f7), var(--surface-2,#f4f5f7) 6px, var(--card) 6px, var(--card) 12px)}.lp-month-cell.is-closed .lp-month-daynum{opacity:.55}.lp-month-cell .lp-day-closed{text-overflow:ellipsis;white-space:nowrap;padding:0 2px;font-size:9.5px;line-height:1.2;overflow:hidden}.lp-row-stranded{color:var(--warning-ink);white-space:nowrap;margin-top:2px;font-size:11px;font-weight:700}.lp-row-past .sec-cell-top,.lp-row-past .lp-cell-title{color:var(--muted)}.lp-row-past .lp-cell-title{font-weight:600}@media (width<=640px){.lp-desktop-only,.lp-desktop-cell{display:none!important}.lp-layout-toggle{scrollbar-width:thin;width:100%;min-width:0;margin-left:0;overflow-x:auto}.lp-layout-toggle .seg-tabs{flex-wrap:nowrap;width:max-content}.lp-layout-toggle .seg-tab{white-space:nowrap}.lp-filter-bar .form-input{width:100%;max-width:none!important}.lp-new-group{width:100%}.lp-new-group .btn{flex:auto}.lp-plans-table .lp-when{white-space:nowrap}.lp-plans-table th,.lp-plans-table td{padding-left:var(--space-2);padding-right:var(--space-2)}.lp-row-actions .btn{font-size:var(--fs-xs);padding:6px 10px}.lp-kind-chip{letter-spacing:-.01em;padding:5px 4px;font-size:11px}.lp-edit-act-controls{order:-1;justify-content:flex-end;width:100%}.lp-edit-act-controls .lp-edit-del{color:var(--danger-ink);border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);border-radius:var(--radius-sm);padding:4px 10px;font-weight:600}}@media screen and (width<=640px){.lp-doc-table,.lp-doc-table tbody,.lp-doc-table tr,.lp-doc-table td{display:block}.lp-doc-table{border:none}.lp-doc-table .lp-doc-activity-head{align-items:baseline;gap:8px;display:flex}.lp-doc-activity-head td:first-child{flex:auto;min-width:0}.lp-doc-activity-head td,.lp-doc-activity-body td{margin-top:-1px}.lp-doc-table .lp-doc-activity-cols{display:none}.lp-doc-activity-body td:before{content:attr(data-label);border-bottom:1px solid var(--text);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin:-10px -12px 10px;padding:5px 12px;font-size:11px;font-weight:700;display:block}}@media (width<=720px){.lp-month-cell{min-height:68px}}.lp-layout-toggle{gap:4px;margin-left:auto;display:inline-flex}.lp-allweek{gap:var(--space-3);flex-direction:column;display:flex}.lp-allweek-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.lp-allweek-nav{align-items:center;gap:8px;display:flex}.lp-allweek-week{color:var(--text-muted);white-space:nowrap;font-size:12.5px;font-weight:600}.lp-allweek-summary{border-radius:var(--radius-sm,8px);background:var(--warning-bg);color:var(--warning-ink);border:1px solid var(--warning);padding:8px 14px;font-size:13px;font-weight:600}.lp-month-note{border-radius:var(--radius-sm,8px);background:var(--warning-bg);color:var(--warning-ink);border:1px solid var(--warning);margin-bottom:10px;padding:8px 14px;font-size:13px;font-weight:600}.lp-allweek-summary.is-clear{background:var(--success-bg,#ecfdf5);color:var(--success-ink,#065f46);border-color:var(--success,#6ee7b7)}.lp-allweek-scroll{transition:padding-bottom .14s;overflow-x:auto}.lp-allweek-scroll.has-menu{padding-bottom:80px}.lp-allweek-table{border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm,8px);width:100%}.lp-allweek-table th,.lp-allweek-table td{border:1px solid var(--border);vertical-align:top;text-align:left;padding:7px 9px}.lp-allweek-table thead th{background:var(--surface-2);white-space:nowrap;display:table-cell}.lp-allweek-dow{font-size:12px;font-weight:700;display:block}.lp-allweek-date{color:var(--text-muted);font-size:10.5px;display:block}.lp-allweek-closed{letter-spacing:.04em;color:var(--warning-ink);margin-top:1px;font-size:9.5px;font-weight:800;display:block}.lp-allweek-classname{white-space:nowrap;background:var(--surface-2);font-size:12.5px;font-weight:600}.lp-allweek-classhead{font-size:12px}.lp-allweek-table td{min-width:118px}.lp-allweek-table td.is-gap{background:var(--warning-bg)}.lp-allweek-table td.is-off{background:var(--surface-2)}.lp-allweek-table td.is-closed,.lp-allweek-table thead th.is-closed{background:repeating-linear-gradient(45deg, var(--surface-2,#f4f5f7), var(--surface-2,#f4f5f7) 6px, var(--card) 6px, var(--card) 12px)}.lp-allweek-dash{color:var(--text-muted);font-size:12px}.lp-allweek-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius-sm,8px);padding:24px;font-style:italic}.lp-tab-group{white-space:nowrap;align-items:center;gap:2px;display:inline-flex}.lp-tab-mark{opacity:.55;margin-right:4px;font-size:11px;line-height:1;transition:transform .14s,filter .14s,opacity .14s;display:inline-block}.lp-tab-mark.is-lit{opacity:1;filter:drop-shadow(0 0 3px);transform:scale(1.35)}.seg-tab.is-active .lp-tab-mark{opacity:1}@media (prefers-reduced-motion:reduce){.lp-tab-mark{transition:none}.lp-tab-mark.is-lit{transform:none}}.lp-tab-offset{letter-spacing:-.02em;opacity:.85;margin-left:1px;font-size:9px;font-weight:700}button[aria-disabled=true]{opacity:.55;cursor:not-allowed}.lp-cellmenu{z-index:60;width:0;height:0;position:absolute;top:50%;right:4px}.lp-cellmenu.is-flipped{left:4px;right:auto}.lp-cellmenu-btn{border:1px solid var(--border);background:var(--card);color:var(--text);white-space:nowrap;cursor:pointer;transform:translate(var(--lp-x), var(--lp-y)) translate(-4px, -50%);animation:.16s cubic-bezier(.2,.8,.3,1) backwards lp-cellmenu-in;animation-delay:var(--lp-delay,0s);border-radius:999px;align-items:center;gap:5px;padding:4px 9px 4px 7px;font-family:inherit;font-size:11px;font-weight:700;transition:background .12s,border-color .12s,box-shadow .12s;display:flex;position:absolute;top:0;left:0;box-shadow:0 3px 12px #00000029}@keyframes lp-cellmenu-in{0%{opacity:0;transform:translate(0)translate(-4px,-50%)scale(.6)}to{transform:translate(var(--lp-x), var(--lp-y)) translate(-4px, -50%) scale(1);opacity:1}}.lp-cellmenu-btn:hover{border-color:var(--primary);background:var(--surface-2,#f4f5f7);box-shadow:0 4px 16px #00000038}.lp-cellmenu-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.lp-cellmenu-btn.is-danger{color:var(--danger-ink);border-color:var(--danger)}.lp-cellmenu-btn.is-danger:hover{background:var(--danger-bg);border-color:var(--danger-ink)}.lp-cellmenu-label{line-height:1}@media (width<=640px){.lp-cellmenu{flex-direction:column;gap:6px;width:max-content;height:auto;display:flex;top:50%;left:0;right:auto;transform:translateY(-50%)}.lp-cellmenu.is-flipped{left:auto;right:0}.lp-cellmenu-btn{min-height:44px;padding:0 14px;font-size:12px;animation-name:lp-cellmenu-rise;position:static;transform:none}@keyframes lp-cellmenu-rise{0%{opacity:0;transform:translateY(-6px)scale(.94)}to{opacity:1;transform:none}}.lp-allweek-scroll.has-menu{padding-bottom:180px}}@media (prefers-reduced-motion:reduce){.lp-cellmenu-btn{animation:none}.lp-chip,.lp-missing{transition:none}.lp-chip:hover,.lp-chip.is-open{box-shadow:none;transform:none}}.lp-allweek-table td{position:relative;overflow:visible}.lp-allweek-classtime{color:var(--text-muted);font-size:10px;font-weight:500;display:block}.lp-allweek-table th.is-today,.lp-allweek-table td.is-today{background:var(--primary-light)}.lp-allweek-table td.is-droptarget{background:var(--nav-active);box-shadow:inset 0 0 0 2px var(--primary)}.lp-allweek-scroll.is-dragging .lp-allweek-table td:not(.is-droptarget):not(.has-plan){opacity:.72}.lp-allweek-drop{text-align:center;border:2px solid var(--primary);background:var(--nav-active);width:100%;min-height:34px;color:var(--nav-active-ink);cursor:pointer;border-radius:6px;padding:5px 6px;font-family:inherit;font-size:11.5px;font-weight:600;transition:background .12s;display:block}.lp-allweek-drop:hover{background:var(--primary-light)}.lp-allweek-drop:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.lp-allweek-moving{border-left:3px solid var(--primary)}.lp-tpl-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:4px 0 18px;display:grid}.lp-tpl-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius-md,10px);background:var(--card);cursor:pointer;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 12px 10px;font-family:inherit;transition:border-color .14s,box-shadow .14s,transform .14s;display:flex}.lp-tpl-card:hover{border-color:var(--primary);transform:translateY(-1px)}.lp-tpl-card.is-active{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 35%, transparent);background:color-mix(in srgb, var(--primary) 5%, var(--card))}.lp-tpl-icon{font-size:20px;line-height:1.1}.lp-tpl-name{font-weight:700;font-size:var(--fs-md);color:var(--text)}.lp-tpl-blurb{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.lp-tpl-meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:auto;padding-top:6px;font-weight:600}.lp-pick-lead{font-size:var(--fs-sm);color:var(--muted);margin:0 0 12px;line-height:1.5}@media (width<=640px){.lp-tpl-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.lp-tpl-card{padding:10px}}.lp-edit-undo{gap:4px;display:inline-flex}.lp-mode-badge{border:1px solid var(--border);background:var(--surface-2,#f1f5f9);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:3px 10px;font-weight:700}.lp-library-tools{align-items:center;gap:var(--space-3);margin:0 0 var(--space-3);flex-wrap:wrap;display:flex}.lp-library-filter{align-items:center;gap:var(--space-2);font-size:var(--fs-xs);display:inline-flex}.lp-library-filter select{min-height:2.25rem}.lp-copy-search{margin:0 0 var(--space-2);display:block}.lp-copy-search .search-input{width:100%}.lp-library-blurb{font-size:var(--fs-xs);max-width:60ch;margin-top:2px;line-height:1.4}.lp-library-meta{font-size:var(--fs-xs);color:var(--muted);margin:0 0 var(--space-2);flex-direction:column;gap:2px;display:flex}.lp-library-preview-row>td{background:var(--surface-2);padding:var(--space-3)}.lp-attach-hint{margin-top:var(--space-1);font-size:var(--fs-xs);color:var(--muted)}.lp-doc-bad-link{color:var(--muted);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.lp-doc-thumb{width:auto;max-width:min(100%,320px);height:auto;max-height:200px;margin-bottom:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm,4px);object-fit:contain;background:var(--surface-2,transparent);display:block}@media print{.lp-doc-thumb{break-inside:avoid;max-height:160px}}.lp-attach{margin-bottom:var(--space-2)}.lp-attach-list{gap:var(--space-1);margin-bottom:var(--space-2);flex-direction:column;display:flex}.lp-attach-row{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm,6px);background:var(--surface-2,transparent);display:flex}.lp-attach-open{align-items:center;gap:var(--space-2);cursor:pointer;text-align:left;min-width:0;color:var(--primary);font:inherit;background:0 0;border:none;flex:1;padding:0;display:flex}.lp-attach-open:hover .lp-attach-name{text-decoration:underline}.lp-attach-thumb{object-fit:cover;border:1px solid var(--border);border-radius:var(--radius-sm,6px);background:var(--card);flex:none;width:40px;height:40px}.lp-attach-icon{border:1px solid var(--border);border-radius:var(--radius-sm,6px);background:var(--card,#fff);width:40px;height:40px;color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:.02em;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.lp-attach-icon.is-dead{color:var(--danger-ink);border-color:var(--danger-ink);letter-spacing:normal;font-size:var(--fs-sm)}.lp-attach-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lp-attach-size{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none}.lp-aud-chip{border:1.5px solid var(--border);background:var(--card,#fff);color:var(--text-muted);white-space:nowrap;border-radius:999px;flex:none;padding:2px 8px;font-family:inherit;font-size:11px;font-weight:600;line-height:1.4}button.lp-aud-chip{cursor:pointer}button.lp-aud-chip:disabled{opacity:.55;cursor:default}.lp-aud-chip.is-class{border-color:var(--success);background:var(--success-bg);color:var(--success-ink)}.lp-attach-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.lp-attach-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.lp-attach-btn{cursor:pointer}.lp-attach-btn.is-disabled{opacity:.55;cursor:default;pointer-events:none}.lp-attach-input:focus-visible+.lp-attach-btn{outline:2px solid var(--primary);outline-offset:2px}.lp-attach-formats,.lp-attach-usage{font-size:var(--fs-xs);color:var(--text-muted)}.lp-attach-usage{align-items:center;gap:var(--space-1);margin-top:var(--space-1);display:flex}.lp-attach-usage-sep{opacity:.5}.lp-attach-meter{background:var(--border);border-radius:2px;flex:none;width:64px;height:4px;overflow:hidden}.lp-attach-meter-fill{background:var(--primary);height:100%;display:block}.lp-attach-note{margin-top:var(--space-1);font-size:var(--fs-xs);color:var(--text-muted)}.lp-attach-error{margin-top:var(--space-1);font-size:var(--fs-xs);color:var(--danger-ink)}.lp-attach-skeleton{gap:var(--space-1);flex-direction:column;display:flex}.lpd-nav{justify-content:center;align-items:center;gap:12px;margin-bottom:12px;display:flex}.lpd-nav-count{color:var(--text-muted);white-space:nowrap;font-size:.85rem}@keyframes lpd-slide-left{0%{opacity:.35;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes lpd-slide-right{0%{opacity:.35;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}.lpd-slide-left{animation:.17s ease-out lpd-slide-left}.lpd-slide-right{animation:.17s ease-out lpd-slide-right}@media (prefers-reduced-motion:reduce){.lpd-slide-left,.lpd-slide-right{animation:none}}.lp-bulk-move{align-items:center;gap:4px;display:inline-flex}.lp-bump-ask{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lp-bump-ask label{font-size:.9rem;font-weight:600}.lp-bump-ask input{border:1px solid var(--border);text-align:center;border-radius:6px;width:72px;padding:6px 8px;font-size:.95rem}@media (width<=640px){.lp-bump-ask input{font-size:1rem}}.lp-bump-hint{flex-basis:100%;margin:2px 0 0;font-size:.8rem}.lp-bump-step{align-items:center;gap:6px;display:inline-flex}.lp-bump-only{margin:12px 0 0;font-size:.86rem;line-height:1.5}.lp-bump-outcome{margin-top:14px;transition:opacity .15s ease-out}.lp-bump-outcome.is-stale{opacity:.4}@media (prefers-reduced-motion:reduce){.lp-bump-outcome{transition:none}}.lp-bump-headline{margin:0 0 8px;font-weight:600}.lp-bump-headline.is-nothing{color:var(--warning-ink)}.lp-bump-subhead{color:var(--text-muted);margin:12px 0 4px;font-size:.85rem;font-weight:600}.lp-bump-list{max-height:260px;margin:0;padding-left:18px;font-size:.88rem;line-height:1.55;overflow-y:auto}.lp-bump-list li{margin-bottom:2px}.lp-bump-stayed{color:var(--text-muted)}.lp-bump-stayed strong{color:var(--text)}.lp-bump-groups{max-height:260px;color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.55;overflow-y:auto}.lp-bump-why{color:var(--text);margin:10px 0 2px;font-weight:600}.lp-bump-group:first-child .lp-bump-why{margin-top:0}.lp-bump-rows{margin:0;padding-left:18px}.lp-bump-rows li{margin-bottom:2px}.lp-bump-rows strong{color:var(--text)}.lp-bump-radius{border-radius:var(--radius-md);background:var(--primary-light);color:var(--primary-dark);margin:14px 0 0;padding:10px 12px;font-size:.86rem;line-height:1.55}.lp-bump-radius p{margin:0}.lp-bump-classes{margin:6px 0;padding-left:20px}.lp-bump-classes li{margin-bottom:1px}.lp-bump-radius .lp-bump-alt{color:var(--text-muted);margin-top:6px}.lp-bump-who{color:var(--text-muted);font-size:.82rem}.lpm{gap:var(--space-2,8px);flex-direction:column;display:flex}.lpm-label{font-size:var(--fs-xs,12px);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:700}.lpm-occupant{margin:2px 0 0;font-weight:600}.lpm-question{margin:var(--space-2,8px) 0 0;font-weight:600}.lpm-outcomes{margin:var(--space-2,8px) 0 0;padding:0;list-style:none}.lpm-outcomes>li{font-size:var(--fs-sm,13px);color:var(--text-muted);padding:6px 0}.lpm-outcomes>li+li{border-top:1px solid var(--border)}.lpm-outcomes strong{color:var(--text)}.lpm-preview{margin:4px 0 0;padding:0 0 0 10px;list-style:none}.lpm-preview li{align-items:baseline;gap:8px;padding:1px 0;display:flex}.lpm-preview-title{color:var(--text)}.lpm-preview-days{color:var(--text-muted);white-space:nowrap}.lpm-preview-more{color:var(--text-muted);font-style:italic}.lpm-none{margin:4px 0 0;padding-left:10px}.lpm-blocked{color:var(--danger-ink);margin:4px 0 0;padding-left:10px}.lpm-act{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lpm-state{font-size:var(--fs-sm,13px);color:var(--text-muted);flex-direction:column;gap:8px;display:flex}.lpm-state--failed{color:var(--danger-ink)}.lpm-state .btn{align-self:flex-start}.lp-weekturn{z-index:4;cursor:pointer;width:44px;color:var(--nav-active-ink);opacity:.96;border:0;justify-content:center;align-items:center;padding:0;font-size:22px;font-weight:700;line-height:1;transition:opacity .12s,background .12s;display:flex;position:absolute;top:0;bottom:0}.lp-weekturn.is-prev{background:linear-gradient(to right, var(--nav-active), transparent);left:0}.lp-weekturn.is-next{background:linear-gradient(to left, var(--nav-active), transparent);right:0}.lp-weekturn>span{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 1px 4px #0f172a47}.lp-weekturn:hover,.lp-weekturn.is-armed{opacity:1}.lp-weekturn:hover>span{background:var(--primary-dark)}.lp-weekturn.is-armed>span{box-shadow:0 0 0 4px var(--nav-active), 0 1px 4px #0f172a47}.lp-weekturn:focus-visible>span{outline:2px solid var(--primary-dark);outline-offset:2px}@media (prefers-reduced-motion:reduce){.lp-weekturn{transition:none}}.lp-allweek-scroll{position:relative}.lp-month-cell.is-droptarget{background:var(--nav-active);box-shadow:inset 0 0 0 2px var(--primary)}.lp-month-grid.is-dragging .lp-month-cell:not(.is-droptarget):not(.has-plans):not(.is-pad){opacity:.72}.lp-month-grid{position:relative}.lp-month-drop{border:2px solid var(--primary);background:var(--nav-active);width:100%;color:var(--nav-active-ink);cursor:pointer;text-align:center;border-radius:5px;margin-top:2px;padding:3px 2px;font-family:inherit;font-size:10px;font-weight:700;display:block}.lp-month-drop:hover{background:var(--primary-light)}.lp-month-drop:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.lp-month-note.is-move{border-left:3px solid var(--primary)}.lp-paste-dayrow{align-items:center;gap:8px;display:flex}.lp-paste-dayrow .form-input{max-width:190px}.lp-paste-days{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.lp-paste-day{align-items:center;gap:4px;padding:3px 4px 3px 8px;display:inline-flex}.lp-paste-day-x{font:inherit;cursor:pointer;color:var(--text-muted);background:0 0;border:0;padding:0 3px;font-size:13px;line-height:1;position:relative}.lp-paste-day-x:after{content:"";position:absolute;inset:-12px}.lp-paste-day-x:hover{color:var(--danger-ink)}.lp-paste-mode{border:0;margin:0 0 12px;padding:0}.lp-paste-choice{cursor:pointer;align-items:flex-start;gap:8px;padding:6px 0;font-size:13px;display:flex}.lp-paste-choice input{flex:none;margin-top:2px}.lp-scope-band{border-top:1px solid var(--border);padding-top:10px}.lp-scopebar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lp-scopebar-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.lp-scopebar .lcp{display:contents}.lp-scope-all{font-weight:600}.lp-band{background:color-mix(in srgb, var(--primary) 8%, transparent);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:7px 12px;display:flex}.lp-band-label{font-weight:700;font-size:var(--fs-sm);color:var(--primary-dark,var(--primary))}.lp-band-count{font-size:var(--fs-xs);color:var(--warning-ink);background:var(--warning-bg);border-radius:999px;padding:1px 8px;font-weight:700}.lp-band-count.is-clear{color:var(--success-ink);background:var(--success-bg)}.lp-band-now{font-size:var(--fs-xs);color:var(--nav-active-ink);background:var(--nav-active);border-radius:999px;margin-left:auto;padding:1px 8px;font-weight:700}.lp-band.is-current{box-shadow:inset 3px 0 0 var(--primary)}.lp-band-row>td{background:0 0;border:0;padding:10px 0 4px!important}.lp-mark{font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;padding:1px 8px;font-weight:700;display:inline-block}.lp-mark.is-ok{color:var(--success-ink);background:var(--success-bg)}.lp-mark.is-gap{color:var(--warning-ink);background:var(--warning-bg)}.lp-mark.is-done{color:var(--text-muted);background:var(--table-head-bg)}.lp-mark.is-warn{color:var(--danger-ink);background:color-mix(in srgb, var(--danger) 12%, transparent)}.lp-mark.is-unknown{color:var(--text-muted);background:0 0;padding-left:0}.lp-classrow{grid-template-columns:minmax(120px,200px) 1fr minmax(72px,auto);align-items:center;gap:10px;min-height:30px;padding:4px 0;display:grid}.lp-classrow.is-oneclass{grid-template-columns:1fr minmax(72px,auto)}.lp-classrow+.lp-classrow{border-top:1px dashed var(--border)}.lp-classrow.is-head{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border:0;min-height:0;padding:0;font-weight:700}.lp-classrow-name{font-weight:600;font-size:var(--fs-sm);align-items:baseline;gap:6px;min-width:0;display:inline-flex}.lp-classrow-time{font-size:var(--fs-xs);color:var(--text-muted);font-weight:400}.lp-classrow-body{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.lp-classrow-status{justify-self:end}.lp-classrow-dash{color:var(--text-muted)}.lp-classrow-planwrap{display:inline-flex;position:relative}.lp-classrow.is-landable{outline:2px dashed var(--primary);outline-offset:2px;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--primary) 5%, transparent)}.lp-chip{font:inherit;font-size:var(--fs-sm);text-align:left;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);background:var(--card);color:var(--text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:3px 8px;font-weight:600;transition:transform .12s,box-shadow .12s,border-color .12s;overflow:hidden}.lp-chip:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.lp-chip:active{box-shadow:none;transform:translateY(0)}.lp-chip:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.lp-chip.is-open{border-color:var(--primary);box-shadow:var(--shadow-sm);z-index:3}.lp-chip.is-draggable{cursor:grab}.lp-chip.is-moving{opacity:.55;cursor:progress}.lp-chip.is-stranded{border-color:var(--warning);border-left-color:var(--warning-ink);background:var(--warning-bg)}.lp-missing{border:1px dashed var(--warning);cursor:pointer;background:0 0;border-radius:999px;padding:1px 2px;line-height:1;transition:border-color .12s,background .12s;position:relative}.lp-missing:hover{border-color:var(--warning-ink);background:var(--warning-bg)}.lp-missing:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.lp-missing:after{content:"";position:absolute;inset:-8px}.lp-day-head{white-space:nowrap;flex-direction:column;align-items:flex-start;gap:1px;display:flex}.lp-day-dow{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.lp-day-date{font-weight:700;font-size:var(--fs-sm)}.lp-day-now{font-size:var(--fs-xs);color:var(--nav-active-ink);background:var(--nav-active);border-radius:999px;padding:0 7px;font-weight:700}.lp-day-closed{font-size:var(--fs-xs);color:var(--text-muted);font-weight:700}.lp-day-gaps{font-size:var(--fs-xs);color:var(--warning-ink);font-weight:700}.lp-day.is-today>.lp-day-head{box-shadow:inset 3px 0 0 var(--primary);padding-left:7px}.lp-day.is-closed{background:var(--table-head-bg)}.lp-day-empty{color:var(--text-muted);font-size:var(--fs-sm)}.lp-daily{gap:var(--space-3);flex-direction:column;display:flex}.lp-daily-nav{align-items:center;gap:8px;display:flex}.lp-daily-title{font-size:var(--fs-lg);margin:0}.lp-daily-note{font-size:var(--fs-sm);color:var(--text-muted);background:var(--table-head-bg);border-radius:var(--radius-sm);padding:7px 12px}.lp-daily-note.is-move{color:var(--text);background:var(--nav-active)}.lp-daily-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.lp-daily-table{border-collapse:collapse;width:100%}.lp-daily-table thead th{z-index:2;background:var(--table-head-bg);border-bottom:1px solid var(--border);text-align:left;font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:8px 12px;font-weight:700;position:sticky;top:0}.lp-daily-table tbody>tr.lp-day>*{border-top:1px solid var(--border);vertical-align:top;padding:8px 12px}.lp-daily-table tbody>tr.lp-day:hover{background:var(--table-hover)}.lp-daily-drop{font:inherit;font-size:var(--fs-xs);border:1px dashed var(--primary);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--primary) 8%, transparent);color:var(--primary-dark,var(--primary));cursor:pointer;padding:3px 8px;font-weight:700}.lp-inlinepick{border:1px solid var(--primary);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow-sm);grid-column:1/-1;margin:6px 0 2px;animation:.14s cubic-bezier(.2,.8,.3,1) lpPickIn}@keyframes lpPickIn{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.lp-inlinepick{animation:none}}.lp-inlinepick-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.lp-inlinepick-for{font-size:var(--fs-sm);color:var(--text-muted)}.lp-inlinepick-search{flex:200px;min-width:160px}.lp-inlinepick-error{font-size:var(--fs-sm);color:var(--danger-ink);margin:8px 10px 0}.lp-inlinepick-empty{align-items:center;gap:10px;padding:12px 10px;display:flex}.lp-inlinepick-list{max-height:260px;margin:0;padding:4px;list-style:none;overflow-y:auto}.lp-inlinepick-item{width:100%;font:inherit;text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;align-items:baseline;gap:8px;padding:6px 8px;display:flex}.lp-inlinepick-item:hover{background:var(--table-hover)}.lp-inlinepick-item:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.lp-inlinepick-item[aria-disabled=true]{opacity:.6;cursor:progress}.lp-inlinepick-title{font-weight:600;font-size:var(--fs-sm)}.lp-inlinepick-meta{font-size:var(--fs-xs);color:var(--text-muted)}.lp-inlinepick-on{font-size:var(--fs-xs);color:var(--nav-active-ink);background:var(--nav-active);border-radius:999px;margin-left:auto;padding:1px 8px;font-weight:700}@media (width<=720px){.lp-scopebar{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.lp-scopebar>*,.lp-scopebar .lcp-unit{flex:none}.lp-classrow,.lp-classrow.is-oneclass{grid-template-columns:1fr;gap:2px}.lp-classrow-status{justify-self:start}.lp-classrow.is-head{display:none}.lp-daily-table tbody>tr.lp-day>*{padding:8px}.lp-day-head{flex-flow:wrap;align-items:baseline;gap:6px}}.lp-allweek-block+.lp-allweek-block{margin-top:var(--space-4)}.lp-allweek-block .lp-band{margin-bottom:6px}.lp-chip.has-meta{white-space:normal;flex-direction:column;gap:0;width:100%;padding:2px 4px;display:flex}.lp-chip-title{font-weight:700;line-height:1.2}.lp-chip.has-meta .lp-chip-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:10px;display:-webkit-box;overflow:hidden}.lp-chip-meta{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:9.5px;line-height:1.2;display:-webkit-box;overflow:hidden}.lp-month-cell .lp-classrow{gap:0;min-height:0;padding:0;display:block}.lp-month-cell .lp-classrow+.lp-classrow{border-top:0;margin-top:2px}.lp-month-cell .lp-classrow-name{color:var(--text-muted);font-size:9.5px;font-weight:700}.lp-month-cell .lp-classrow-time{display:none}.lp-month-cell .lp-classrow-body{display:block}.lp-month-cell{position:relative}.lp-month-cell .lp-inlinepick{z-index:30;text-align:left;white-space:normal;width:min(360px,86vw);position:absolute;top:100%;left:0}@media (width<=720px){.lp-month-cell .lp-inlinepick{left:auto;right:0}}.teacher-week-grid{border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);display:grid}@media (width<=900px){.teacher-week-grid{grid-template-columns:1fr}}.teacher-week-day{border-right:1px solid var(--border);min-height:120px;padding:10px 12px 12px}.teacher-week-day:last-child{border-right:none}.teacher-week-day.is-today{background:var(--primary-light,#eff6ff)}.teacher-week-day.is-noschool{background:#fef2f2}.teacher-week-day-head{color:var(--text);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:700;display:flex}.teacher-week-today-badge{color:var(--primary);background:var(--card);border:1px solid var(--primary);border-radius:10px;padding:1px 7px;font-size:10px;font-weight:700}.teacher-week-event{color:#1d4ed8;background:#dbeafe;border-radius:5px;margin-bottom:5px;padding:3px 8px;font-size:11px;font-weight:600}.teacher-week-event.is-noschool{color:#b91c1c;background:#fee2e2}.teacher-week-empty{color:var(--text-muted);font-size:12px;font-style:italic}.teacher-week-period{margin-bottom:9px}.teacher-week-period-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:4px;padding-bottom:2px;font-size:10px;font-weight:700;display:flex}.teacher-week-period-time{text-transform:none;letter-spacing:0;font-weight:500}.teacher-week-period-empty{color:var(--text-muted);padding-bottom:2px;font-size:11px;font-style:italic}.teacher-week-class{margin-bottom:8px}.teacher-week-class-name{color:var(--text);justify-content:space-between;gap:6px;margin-bottom:2px;font-size:12px;font-weight:600;display:flex}.teacher-week-class-period{color:var(--text-muted);white-space:nowrap;font-size:10px;font-weight:500}.teacher-week-att{text-align:left;white-space:nowrap;text-overflow:ellipsis;border:none;border-radius:5px;width:100%;margin-bottom:4px;padding:3px 8px;font-family:inherit;font-size:10.5px;font-weight:600;display:block;overflow:hidden}.teacher-week-att.is-taken{color:#065f46;background:#d1fae5}.teacher-week-att.is-due{color:#b45309;cursor:pointer;background:#fffbeb;border:1.5px solid #fde68a}.teacher-week-att.is-due:hover{background:#fef3c7;border-color:#f59e0b}.teacher-week-plan{text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:none;border-radius:5px;width:100%;padding:4px 8px;font-family:inherit;font-size:11px;font-weight:600;display:block;overflow:hidden}.teacher-week-plan.is-missing{background:var(--card);color:var(--text-muted);border:1.5px dashed var(--border)}.teacher-week-plan.is-missing:hover{color:var(--primary);border-color:var(--primary)}.sched-grid{border:2px solid var(--border-strong);background:var(--card);font-size:12px;display:grid}.sched-grid>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0}.sched-grid-corner,.sched-grid-dayhead{background:var(--surface-2);border-bottom:2px solid var(--border-strong)!important}.sched-grid-corner{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;padding:0 10px;font-size:10px;font-weight:700;display:flex;border-right:2px solid var(--border-strong)!important}.sched-grid-dayhead{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:5px;display:flex}.sched-grid-dayhead.is-today{background:var(--primary-light,#eff6ff)}.sched-grid-dayhead.is-noschool{background:#fef2f2}.sched-grid-dayhead-name{color:var(--text);font-size:12px;font-weight:700}.sched-grid-dayhead-date{color:var(--text-muted);margin-top:1px;font-size:9px}.sched-grid-rowlabel{background:var(--card);flex-direction:column;justify-content:center;padding:5px 10px;display:flex;border-right:2px solid var(--border-strong)!important}.sched-grid-period-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:700;overflow:hidden}.sched-grid-period-time{color:var(--text-muted);white-space:nowrap;margin-top:1px;font-size:9px}.sched-grid-events-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700}.sched-grid-cell{background:var(--card);flex-direction:column;gap:3px;min-height:48px;padding:4px;display:flex}.sched-grid-cell.is-today{background:var(--primary-light,#eff6ff)}.sched-grid-cell.is-noschool{background:#fef2f2}.sched-grid-events{min-height:0}.sched-grid-events.is-noschool{background:#fef2f2}.sched-grid-dash{color:#475569;align-self:center;margin:auto;font-size:14px}.sched-grid-noschool-text{color:#b91c1c;font-size:10px;font-weight:600}.sched-grid-ev{color:#1d4ed8;text-overflow:ellipsis;white-space:nowrap;background:#dbeafe;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600;overflow:hidden}.sched-grid-ev.is-noschool{color:#b91c1c;background:#fee2e2}.sched-eventstrip{margin:0 0 8px calc(var(--btg-gutter) + 1px);gap:0;display:flex}.sched-eventstrip-day{flex-direction:column;flex:1 1 0;gap:3px;min-width:0;padding:0 4px;display:flex}.sched-eventstrip-day.is-noschool{background:#fef2f2;border-radius:4px}@media (width<=640px){.sched-week-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.sched-week-scroll>.btg{min-width:calc(var(--btg-gutter) + var(--sched-cols,5) * 132px)}.sched-week-scroll>.sched-eventstrip{min-width:calc(var(--sched-cols,5) * 132px - 2px)}.sched-week-scroll>.btg{overflow:visible}}.sched-grid-class{border:1px solid;border-radius:5px;flex-direction:column;gap:2px;padding:3px 5px;display:flex}.sched-grid-class-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.sched-grid-plan{color:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:#ffffff8c;border:none;border-radius:3px;width:100%;padding:1px 4px;font-family:inherit;font-size:9.5px;font-weight:600;overflow:hidden}.sched-grid-plan.is-missing{opacity:.65;background:0 0;border:1px dashed}.sched-grid-class.is-block{color:#6d28d9;background:#f3f0ff;border:1px dashed #c4b5fd}.teacher-week-class.is-block .teacher-week-class-name{color:#6d28d9;font-weight:600}.teacher-week-class.is-block{background:#f7f5ff;border:1px dashed #c4b5fd;border-radius:6px;margin-bottom:8px;padding:3px 7px}.sched-view-toggle{background:var(--bg);border-radius:var(--radius);gap:.125rem;padding:.1875rem;display:inline-flex}.sched-view-tab{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--fs-md);color:var(--muted);cursor:pointer;background:0 0;border:none;font-family:inherit;font-weight:600;transition:background .14s,color .14s}.sched-view-tab.active{background:var(--nav-active);color:var(--nav-active-ink);box-shadow:var(--shadow-sm)}.sched-month{border-top:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid}.sched-month-dow{text-align:center;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--surface-2);padding:8px 0;font-size:11px;font-weight:700}.sched-month-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;background:var(--card);cursor:pointer;flex-direction:column;align-items:stretch;gap:2px;min-height:92px;padding:4px 5px;font-family:inherit;transition:background .12s;display:flex}.sched-month-cell:nth-child(7n){border-right:none}.sched-month-cell.is-pad{cursor:default;background:#fafafa}.sched-month-cell.is-noschool{background:#fef2f2}.sched-month-cell.is-selected{background:var(--primary-light,#eff6ff);box-shadow:inset 0 0 0 2px var(--primary)}.sched-month-cell:not(.is-pad):hover{background:var(--surface-2)}.sched-month-daynum{color:var(--text);font-size:12px;font-weight:600}.sched-month-cell.is-today .sched-month-daynum{color:var(--primary);font-weight:700}.sched-month-ev{color:#1d4ed8;text-overflow:ellipsis;white-space:nowrap;background:#dbeafe;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600;overflow:hidden}.sched-month-ev.is-noschool{color:#b91c1c;background:#fee2e2}.sched-month-more{color:var(--text-muted);font-size:9px}.sched-month-meta{color:var(--text-muted);margin-top:auto;font-size:10px}.sched-teacher-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.sched-term-tabs{background:var(--bg);border-radius:var(--radius);flex-wrap:wrap;gap:.125rem;padding:.1875rem;display:inline-flex}.sched-term-tab{cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--muted);background:0 0;border:none;font-weight:600;transition:background .14s,color .14s}.sched-term-tab:hover{color:var(--text)}.sched-term-tab.is-active{background:var(--nav-active);color:var(--nav-active-ink);box-shadow:var(--shadow-sm)}.sched-teacher-toolbar .sched-week-nav{margin-bottom:0}.sched-week-nav{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.sched-week-label{flex-direction:column;align-items:center;min-width:9rem;line-height:1.2;display:flex}.sched-week-label>span:first-child{font-weight:700;font-size:var(--fs-base)}.sched-week-range{font-weight:500;font-size:var(--fs-xs);color:var(--muted)}.sched-day-events{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.sched-day-event{font-size:var(--fs-sm);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--info-bg);color:#1e40af;font-weight:600}.sched-day-event.is-noschool{background:var(--danger-bg);color:#991b1b}.sched-cell-plan{opacity:.82;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.594rem;font-weight:600;overflow:hidden}.sched-day-detail{border-top:1px solid var(--border);background:#fafbfc;padding:14px 16px}.sched-day-detail-head{color:var(--text);margin-bottom:10px;font-size:13px;font-weight:700}.sched-split{align-items:stretch;display:flex;overflow:hidden}.sched-split-side{cursor:pointer;flex-direction:column;flex:50%;justify-content:center;min-width:0;padding:5px 7px;transition:background .1s;display:flex}.sched-split-side:hover{background:#ffffff8c}.sched-split-lp{opacity:.92;border-left:1px dashed;font-size:.65rem;font-weight:600}.sched-split-lp-title{text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sched-split-lp.is-empty{cursor:default}.sched-split-lp.is-empty:hover{background:0 0}.sched-split-lp-none{opacity:.45;font-style:italic;font-weight:500}.sched-split-opts{cursor:pointer;opacity:.5;background:0 0;border:none;flex-shrink:0;align-self:flex-start;padding:2px 4px 0 0;font-size:12px;line-height:1}.sched-lp-popup-backdrop{z-index:3000;background:#0f172a73;position:fixed;inset:0}.sched-lp-popup{background:var(--bg,#f8fafc);z-index:3001;border-radius:14px;flex-direction:column;width:min(860px,94vw);max-height:92vh;margin:0 auto;display:flex;position:fixed;inset:4vh 0 auto;overflow:hidden;box-shadow:0 24px 60px #0f172a59}.sched-lp-popup-head{background:var(--card,#fff);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 18px;display:flex}.sched-lp-popup-body{padding:18px;overflow:auto}.sched-lp-popup-foot{background:var(--card);border-top:1px solid var(--border);flex:none;padding:12px 18px}@media print{.print-stage .sched-grid{width:100%}.sched-print-table{font-size:9.5px}.sched-print-table th,.sched-print-table td{padding:2px 4px}.sched-print-cell-name{font-size:9.5px}.sched-print-cell-sub{font-size:8px}.sched-print-title{font-size:14px}.sched-print-sub{margin-bottom:6px;font-size:10px}.print-stage .sched-grid{font-size:9px}.print-stage .sched-grid-cell{min-height:26px;padding:2px}.print-stage .sched-grid-class{padding:2px 3px}.print-stage .sched-grid-period-name{font-size:9px}.print-stage .sched-grid-period-time,.print-stage .sched-grid-dayhead-date{font-size:7.5px}.print-stage .sched-grid-dayhead-name{font-size:10px}.sched-print-unplaced{color:#0f172a;break-inside:avoid;background:0 0;border:1px solid #94a3b8;padding:6px 8px;font-size:9.5px}}.sched-print-doc{color:#0f172a;background:#fff}.sched-print-unplaced{margin-top:10px}.sched-print-title{margin-bottom:2px;font-size:16px;font-weight:800}.sched-print-sub{color:#475569;margin-bottom:10px;font-size:12px}.sched-print-table{border-collapse:collapse;width:100%;font-size:11.5px}.sched-print-table th,.sched-print-table td{text-align:center;vertical-align:middle;border:1px solid #94a3b8;padding:4px 6px}.sched-print-table th{background:#f1f5f9;font-weight:700}.sched-print-table .sched-print-time{text-align:left;white-space:nowrap;font-weight:600}.sched-print-cell-name{font-weight:700}.sched-print-cell-sub{color:#475569;font-size:10px}:root{--sched-viewbar-h:58px}.sched-viewbar{background:var(--card);border-bottom:1px solid var(--border);top:var(--header-h,0px);z-index:30;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 24px;display:flex;position:sticky}.sched-viewbar .tabs-bar{background:0 0;margin:0;padding:0;position:static}.sched-teacher-toolbar{top:calc(var(--header-h,0px) + var(--sched-viewbar-h,58px));z-index:25;background:var(--bg);padding:8px 0;position:sticky}.sched-student-layout{grid-template-columns:280px 1fr;align-items:start;gap:14px;display:grid}.sched-student-layout>*{min-width:0}@media (width<=820px){.sched-student-layout{grid-template-columns:1fr}}.sched-picks{max-height:600px;overflow-y:auto}@media (width<=820px){.sched-picks{max-height:40vh}}.sched-pick{cursor:pointer;border-bottom:1px solid var(--border);border-left:3px solid #0000;align-items:center;gap:8px;padding:8px 16px;transition:background .1s;display:flex}.sched-pick:hover{background:var(--surface-2)}.sched-pick.is-on{background:var(--primary-light);border-left-color:var(--primary)}.sched-pick:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.sched-pick-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.sched-pick.is-on .sched-pick-name{color:var(--primary)}.sched-pick-sub{color:var(--text-muted);font-size:10px}@media (prefers-reduced-motion:reduce){.sched-pick{transition:none}}.sched-picked-chips{margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sched-picked-chip{border:1.5px solid var(--chip-on-border,#cbd5e1);background:var(--chip-on-bg,#e2e8f0);color:var(--chip-on-ink,#1e293b);border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 9px;font-size:12px;font-weight:600;display:inline-flex}.sched-picked-x{width:20px;height:20px;color:var(--chip-on-ink,#1e293b);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex;position:relative}.sched-picked-x:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sched-picked-x:hover{background:var(--chip-on-border,#cbd5e1)}.sched-picked-x:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.sched-weeks{gap:var(--space-4);flex-direction:column;display:flex}.sched-grid-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=768px){.sched-grid-scroll .sched-grid{min-width:640px}.sched-grid-scroll .btg{min-width:560px}.sched-viewbar{row-gap:0;padding:0 12px;position:static}.sched-viewbar .tabs-bar{flex:100%;min-width:0}.sched-teacher-toolbar{position:static}}.svst{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.svst .btn-primary.svst-failed{background:var(--danger-ink);border-color:var(--danger-ink)}.svst .btn-primary.svst-failed:hover:not(:disabled){background:var(--danger);border-color:var(--danger)}.svst-note{font-size:var(--fs-sm);color:var(--muted)}.svst-undo{color:var(--primary);font-weight:600;font-size:var(--fs-sm);min-height:44px;padding:0 var(--space-2);cursor:pointer;background:0 0;border:none;text-decoration:underline}.svst-undo:hover:not(:disabled){color:var(--primary-dark)}.svst-undo:disabled{color:var(--muted);cursor:default;text-decoration:none}@media (width<=600px){.svst{width:100%}.svst-note{flex-basis:100%}}.sheet{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);-webkit-user-select:none;user-select:none;outline:none;max-height:64vh;overflow:auto}.sheet:focus-visible{box-shadow:0 0 0 2px var(--primary-light) inset}table.sheet-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:var(--table-fs)}.sheet-table{--sheet-group-h:30px}.sheet-table.is-sticky thead th{z-index:2;position:sticky;top:0}.sheet-table.is-sticky .sheet-group-row th{height:var(--sheet-group-h);line-height:1;top:0}.sheet-table.is-sticky .sheet-group-row~tr th{top:var(--sheet-group-h)}.sheet-th,.sheet-group-th,.sheet-corner{background:var(--table-head-bg);text-align:left;padding:var(--table-pad);font-size:var(--table-fs);color:var(--text-muted);border-bottom:2px solid var(--border);border-right:1px solid var(--border);white-space:nowrap;cursor:pointer;font-weight:600}.sheet-group-th{text-align:center;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.sheet-th.is-sel{background:var(--primary-light);color:var(--primary-dark)}.sheet-th.is-dragging{opacity:.7;outline:2px dashed var(--primary);outline-offset:-2px}.sheet-th{position:relative}.sheet-th:hover .col-drag-grip{color:var(--primary)}.sheet-corner,.sheet-rownum{z-index:1;background:var(--surface-2);width:44px;min-width:44px;color:var(--muted);text-align:center;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border);cursor:pointer;padding:0 6px;font-weight:500;position:sticky;left:0}.sheet-corner{z-index:3}.sheet-rownum:hover{background:var(--table-hover);color:var(--primary-dark)}.sheet-wide-head .sheet-corner,.sheet-wide-head .sheet-rownum{text-align:left;width:160px;min-width:160px;font-size:var(--table-fs);color:var(--text);white-space:nowrap;text-overflow:ellipsis;padding:var(--table-pad);font-weight:600;overflow:hidden}.sheet-td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--card);cursor:cell;height:28px;padding:0;position:relative}.sheet-text{padding:var(--table-pad);white-space:nowrap;text-overflow:ellipsis;min-height:1em;color:var(--text);display:block;overflow:hidden}.sheet-td.is-bool .sheet-text,.sheet-td.is-date .sheet-text{font-variant-numeric:tabular-nums}.sheet-td.is-bool .sheet-text{text-align:center}.sheet-check{justify-content:center;align-items:center;height:100%;min-height:28px;display:flex}.sheet-check input{cursor:pointer;width:15px;height:15px;accent-color:var(--primary);margin:0}.sheet-select{appearance:auto;cursor:pointer}:where(.sheet-table tbody tr:nth-child(2n))>.sheet-td{background:color-mix(in srgb, var(--border) 55%, var(--card))}.sheet-td.is-readonly{background:var(--surface-2);color:var(--muted);cursor:default}.sheet-td.is-sel{background:var(--primary-light)}.sheet-td.is-focus{box-shadow:inset 0 0 0 2px var(--primary);background:var(--card);z-index:1}.sheet-td.is-editing{box-shadow:inset 0 0 0 2px var(--primary);background:var(--card)}.sheet-td.is-bad{background:var(--danger-bg)}.sheet-td.is-bad .sheet-text{color:#b91c1c}.sheet-td.is-bad.is-sel{background:#fecaca}.sheet-editor{width:100%;height:100%;color:var(--text);padding:var(--table-pad);font-size:var(--table-fs);-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none;font-family:inherit}.sheet tr.is-inactive .sheet-text{color:var(--light);font-style:italic}.sheet tr.is-inactive .sheet-rownum{color:var(--light)}.sheet tr.is-inactive .sheet-td{background:#fbfcfd}.sheet tr.is-inactive .sheet-td.is-sel{background:var(--primary-light)}.sheet tr.is-dirty .sheet-rownum{background:var(--warning-bg);color:#92400e;font-weight:700}.sheet-td.is-dirty-cell:after{content:"";border:4px solid #0000;border-top-color:var(--warning);border-right-color:var(--warning);position:absolute;top:0;right:0}.sheet-history{align-items:center;gap:4px;display:inline-flex}.sheet-history-btn{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;width:26px;height:26px;font-size:13px;line-height:1}.sheet-history-btn:disabled{opacity:.4;cursor:default}.sheet-history-btn:not(:disabled):hover{background:var(--primary-light);border-color:var(--primary)}.sheet-history-pos{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);text-align:center;min-width:46px;padding:3px 9px;font-weight:700}.sheet-history-pos.is-behind{color:#92400e;background:var(--warning-bg);border-color:var(--warning)}.sheet-history-touch{gap:6px}.sheet-history-btn-touch{width:44px;height:44px;font-size:18px}.incident-report-view{color:var(--text);font-size:13px;line-height:1.6}.irv-title{text-align:center;margin:0 0 14px;font-size:16px;font-weight:700}.irv-section{margin:14px 0 6px;font-size:13px;font-weight:700}.irv-subhead{margin:8px 0 4px;font-weight:600}.irv-line{margin:2px 0}.irv-label{color:var(--text-muted);font-weight:600}.irv-muted{color:var(--text-muted)}.irv-types{flex-wrap:wrap;gap:6px 18px;margin:4px 0;display:flex}.irv-type{white-space:nowrap}.irv-description{white-space:pre-wrap;border:1px solid var(--border);background:#f8fafc;border-radius:8px;margin:2px 0 4px;padding:8px 10px}.incident-collapse{border:1px solid var(--border);background:#fff;border-radius:10px;margin-bottom:10px;overflow:hidden}.incident-collapse.is-open{border-color:var(--primary);box-shadow:0 2px 12px #0000000f}.incident-collapse.is-new{border-color:var(--danger);background:#fff7f7}.incident-new-dot{background:var(--danger);border-radius:50%;flex-shrink:0;width:8px;height:8px}.incident-collapse-head{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:none;align-items:center;gap:12px;padding:12px 14px;display:flex}.incident-collapse-head:hover{background:#f8fafc}.incident-collapse-chevron{color:var(--text-muted);flex-shrink:0;font-size:12px}.incident-collapse-name{flex-shrink:0;font-size:14px;font-weight:700}.incident-collapse-type{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.incident-collapse-time{color:var(--text-muted);flex-shrink:0;font-size:12px}@media (width<=768px){.incident-collapse-head{flex-wrap:wrap;row-gap:4px}.incident-collapse-name{text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}}.incident-collapse-body{border-top:1px solid var(--border);padding:14px}.incident-discipline{border:1px solid var(--border);background:#fff7ed;border-radius:8px;margin-top:10px;padding:10px 12px}.incident-discipline-title{color:var(--text);margin-bottom:8px;font-size:12px;font-weight:700}.incident-discipline-detail{color:var(--text-muted);font-size:12px}.incident-discipline-fields{flex-wrap:wrap;gap:10px;display:flex}.incident-discipline-field{color:var(--text-muted);flex-direction:column;gap:3px;font-size:11px;display:flex}.incident-discipline-field .form-input{font-size:13px}@media (width<=640px){.incident-discipline-field .form-input{font-size:1rem}}.incident-discipline-save{color:var(--text-muted);margin-left:8px;font-size:11px;font-weight:500}.incident-discipline-error{color:var(--danger-ink);margin-bottom:8px;font-size:12px}.incident-print-warn{border-left:2.5px solid var(--text);color:var(--text);break-after:avoid;page-break-after:avoid;margin:0 0 6px;padding:5px 0 5px 9px;font-size:11px;line-height:1.45}.incident-discipline-derived{color:var(--text);white-space:nowrap;padding:7px 0;font-size:13px;font-weight:600}@media (width<=600px){.incident-collapse-type{flex-basis:100%;order:5}}.page-nav{justify-content:center;align-items:center;gap:12px;padding:12px 0 4px;display:flex}.page-nav-label{white-space:nowrap;font-size:12px}.sped-whereabouts-chip{border-radius:var(--radius-sm);background:var(--chip-on-bg);color:var(--chip-on-ink);vertical-align:middle;white-space:nowrap;margin-left:.4em;padding:0 .4em;font-size:.72em;font-weight:600;line-height:1.6;display:inline-block}.sped-whereabouts-chip.is-alert{color:var(--danger-ink);background:0 0;padding-left:0}.ma-grid-wrap{overscroll-behavior-x:contain;touch-action:pan-x pan-y;overflow-x:auto}.ma-grid{table-layout:fixed;border-collapse:collapse;font-size:11px}.ma-grid thead th{text-align:center;color:var(--text-muted);background:var(--surface-2);border-bottom:2px solid var(--border-strong);border-right:1px solid #f1f5f9;padding:4px 1px;font-weight:600}.ma-grid thead th .ma-dow{font-size:8px}.ma-grid thead th .ma-num{color:var(--text);font-size:11px;font-weight:700}.ma-grid thead th.ma-weekend .ma-num{color:#64748b}.ma-grid thead th.ma-blank .ma-num{color:var(--warning-ink);border-bottom:2px solid var(--warning)}.ma-blank-note{margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--warning);border-radius:var(--radius-sm);background:var(--warning-bg);color:var(--warning-ink);font-size:var(--fs-sm);border-left-width:3px}.ma-blank-note.is-unknown{border-color:var(--border-strong);background:var(--surface-2);color:var(--text-muted)}.ma-blank-day{font:inherit;color:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;margin:0;padding:0;text-decoration:underline}.ma-blank-day:hover,.ma-blank-day:focus-visible{color:var(--text)}.ma-namehead,.ma-name{z-index:2;text-align:left;white-space:nowrap;text-overflow:ellipsis;border-right:2px solid #0000;width:160px;position:sticky;left:0;overflow:hidden}.is-scrolled .ma-namehead,.is-scrolled .ma-name{border-right-color:var(--border-strong)}.is-scrolled .ma-totalrow-lead{border-right-color:var(--border-strong)!important}.ma-idhead,.ma-id,.ma-roomhead,.ma-room{text-align:left;white-space:nowrap;text-overflow:ellipsis;color:var(--text-muted);font-size:10px;overflow:hidden}.ma-idhead,.ma-id{width:52px;padding:5px 4px}.ma-roomhead,.ma-room{width:72px;padding:5px 4px}.ma-totalrow-lead{border-right:2px solid #0000!important}.ma-whenhead,.ma-when{z-index:2;text-align:left;white-space:nowrap;text-overflow:ellipsis;width:72px;color:var(--text-muted);padding:5px 4px;font-size:10px;position:sticky;left:160px;overflow:hidden;border-right:2px solid var(--border-strong)!important}.ma-whenhead{text-transform:uppercase;letter-spacing:.05em;padding-top:7px;padding-bottom:7px}.ma-namehead{text-transform:uppercase;letter-spacing:.05em;padding:7px 14px;font-size:10px}.ma-idhead,.ma-roomhead{text-transform:uppercase;letter-spacing:.05em;padding-top:7px;padding-bottom:7px}.ma-name{padding:5px 14px;font-weight:500}.ma-grid tbody tr:nth-child(odd) .ma-name,.ma-grid tbody tr:nth-child(odd) .ma-id,.ma-grid tbody tr:nth-child(odd) .ma-when,.ma-grid tbody tr:nth-child(odd) .ma-room{background:#fff}.ma-grid tbody tr:nth-child(2n) .ma-name,.ma-grid tbody tr:nth-child(2n) .ma-id,.ma-grid tbody tr:nth-child(2n) .ma-when,.ma-grid tbody tr:nth-child(2n) .ma-room{background:var(--surface-2)}.ma-grid tbody tr:nth-child(odd){background:#fff}.ma-grid tbody tr:nth-child(2n){background:var(--surface-2)}.ma-grid tbody tr{border-bottom:1px solid #eef2f7}.ma-grid tbody tr:hover th,.ma-grid tbody tr:hover td,.ma-grid tbody tr:focus-within th,.ma-grid tbody tr:focus-within td{background:var(--bulk-hover,#dbeafe)}.ma-grid tbody tr:has(.ma-code.is-active) th{background:var(--bulk-hover,#dbeafe)}.ma-grid tbody tr:has(.ma-code.is-active) td{background:var(--bulk-hover,#dbeafe)}.ma-grid tbody tr:hover .ma-name,.ma-grid tbody tr:focus-within .ma-name{background:var(--bulk-hover,#dbeafe);box-shadow:inset 3px 0 0 var(--primary)}.ma-grid tbody tr:has(.ma-code.is-active) .ma-name{background:var(--bulk-hover,#dbeafe);box-shadow:inset 3px 0 0 var(--primary)}.ma-grid tbody tr:hover .ma-id,.ma-grid tbody tr:hover .ma-room,.ma-grid tbody tr:hover .ma-when,.ma-grid tbody tr:focus-within .ma-id,.ma-grid tbody tr:focus-within .ma-room,.ma-grid tbody tr:focus-within .ma-when{background:var(--bulk-hover,#dbeafe)}.ma-grid tbody tr:has(.ma-code.is-active) .ma-id{background:var(--bulk-hover,#dbeafe)}.ma-grid tbody tr:has(.ma-code.is-active) .ma-when{background:var(--bulk-hover,#dbeafe)}.ma-grid tbody tr:has(.ma-code.is-active) .ma-room{background:var(--bulk-hover,#dbeafe)}.ma-cell{text-align:center;border-right:1px solid #f1f5f9;padding:2px}.ma-cell.ma-weekend,.ma-cell.ma-offday{background:#f9fafb}.ma-cell.ma-closed,.ma-grid thead th.ma-closed{background:repeating-linear-gradient(135deg,#f1f5f9 0 6px,#f8fafc 6px 12px)}.ma-grid thead th.ma-closed .ma-num{color:var(--muted,#94a3b8)}.ma-grid th.ma-today{background:color-mix(in srgb, var(--primary) 8%, transparent)}.ma-grid th.ma-today .ma-dow{color:var(--primary);font-weight:700}.ma-grid th.ma-today .ma-num{color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent);border-radius:999px;min-width:18px;font-weight:800;line-height:18px;display:inline-block}.ma-grid td.ma-today{background:color-mix(in srgb, var(--primary) 6%, transparent)}.ma-code.ma-locked-shake{animation:.3s both ui-shake}@media (prefers-reduced-motion:reduce){.ma-code.ma-locked-shake{animation:none}}.ma-code{border:1px solid #0000;border-radius:4px;outline:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;transition:opacity .1s,transform 80ms,box-shadow .1s;display:inline-flex}@media (pointer:coarse) and (hover:none){.ma-cell{padding:0}.ma-code{width:24px;height:44px}}.ma-code--present{color:#065f46;border-color:var(--st-present-border);background:#d1fae5}.ma-code--absent{color:#dc2626;border-color:var(--st-absent-border);background:#fee2e2}.ma-code--tardy{color:#b45309;border-color:var(--st-tardy-border);background:#fef3c7}.ma-code--excused{color:#1d4ed8;border-color:var(--st-excused-border);background:#dbeafe}.ma-code--suspended{color:#5b21b6;border-color:var(--st-suspended-border);background:#ede9fe}.ma-code--none{color:#64748b;background:0 0}.ma-code.is-inherited{color:#64748b;background:0 0;border-style:dashed;border-color:#94a3b8;font-style:italic}.ma-code.is-late{position:relative}.ma-code.is-late:after{content:"";background:#b45309;border-radius:50%;width:5px;height:5px;position:absolute;top:1px;right:1px}.ma-code.is-editable{cursor:pointer}.ma-code.is-editable:hover{opacity:.75;transform:scale(1.2)}.ma-code.is-editable:focus,.ma-code.is-editable.is-active{box-shadow:0 0 0 2px var(--primary);z-index:1;position:relative;transform:scale(1.18)}.ma-code.is-locked{cursor:not-allowed}.ma-code.is-locked:focus{box-shadow:0 0 0 2px var(--primary);z-index:1;position:relative}@media (pointer:coarse) and (hover:none){.ma-code.is-late:after{top:calc(50% - 11px)}.ma-code.is-editable:focus,.ma-code.is-editable.is-active{transform:none}}.ma-total{text-align:center;border-left:1px solid var(--border);padding:3px 4px;font-size:11px;font-weight:500}.ma-total-head{border-left:1px solid var(--border);min-width:32px;font-size:11px;font-weight:600}.ma-cell+.ma-total,.ma-total-day+.ma-total-month,.ma-grid thead th:not(.ma-total-head)+.ma-total-head{border-left:2px solid var(--border-strong)}.ma-total .ma-pill{border-radius:5px;padding:1px 6px}.ma-total .ma-zero{color:#64748b}.ma-action{text-align:center;border-left:2px solid var(--border-strong);padding:2px 6px}.ma-action-head{border-left:2px solid var(--border-strong)}.ma-total-head--present,.ma-pill--present{color:#065f46;background:#d1fae5}.ma-total-head--absent,.ma-pill--absent{color:#dc2626;background:#fee2e2}.ma-total-head--tardy,.ma-pill--tardy{color:#b45309;background:#fef3c7}.ma-total-head--excused,.ma-pill--excused{color:#1d4ed8;background:#dbeafe}.ma-total-head--suspended,.ma-pill--suspended{color:#5b21b6;background:#ede9fe}.ma-more{text-align:center;color:var(--primary);cursor:pointer;border-top:1px solid var(--border);padding:7px 14px;font-size:12px;font-weight:600}.ma-more:hover{background:var(--primary-light)}.ma-pop-backdrop{z-index:499;position:fixed;inset:0}.ma-pop-opt--present{color:#065f46;background:#d1fae5}.ma-pop-opt--absent{color:#dc2626;background:#fee2e2}.ma-pop-opt--tardy{color:#b45309;background:#fef3c7}.ma-pop-opt--excused{color:#1d4ed8;background:#dbeafe}.ma-dpad-btn{z-index:500;cursor:pointer;border:2px solid #fff;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:44px;height:44px;font-weight:700;transition:filter .1s,transform 80ms;display:flex;position:fixed;transform:translate(-50%,-50%);box-shadow:0 4px 14px #0f172a38}.ma-dpad-btn:hover{filter:brightness(.95)}.ma-dpad-btn:active{transform:translate(-50%,-50%)scale(.9)}.ma-dpad-btn.is-current,.ma-dpad-btn[aria-pressed=true]{border-color:#0f172a;box-shadow:0 0 0 2px #fff,0 4px 14px #0f172a59}.ma-dpad-btn.is-current .ma-dpad-code{text-underline-offset:3px;text-decoration:underline}.ma-dpad-arrow{opacity:.7;font-size:11px;line-height:1}.ma-dpad-code{font-size:17px;line-height:1}.ma-code.is-review,.att-code-cell.is-review,.ma-code.is-refused{outline:2px solid var(--danger);outline-offset:-1px}.ma-code.is-queued{outline-offset:-1px;outline:2px dashed #64748b}.ma-code.is-queued.is-refused{outline:2px solid var(--danger)}.ma-toolbar{z-index:6;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;display:flex;position:sticky;top:0;box-shadow:0 4px 10px -8px #0f172a66}.ma-toolbar-label{color:var(--text-muted);min-width:12rem;font-size:12px;font-weight:600}.ma-toolbar-marks{flex-wrap:wrap;gap:6px;display:flex}.ma-toolbar-marks--codes-only .ma-mark-word{display:none}.ma-toolbar-marks--codes-only .ma-mark-btn{justify-content:center;min-width:44px}.ma-mark-btn{cursor:pointer;font:inherit;border:1.5px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.ma-mark-btn:hover{border-color:var(--primary)}.ma-mark-code{background:#ffffffa6;border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:inline-flex}.ma-mark-btn--present{color:#065f46;background:#d1fae5}.ma-mark-btn--absent{color:#dc2626;background:#fee2e2}.ma-mark-btn--excused{color:#1d4ed8;background:#dbeafe}.ma-mark-btn--tardy{color:#b45309;background:#fef3c7}.ma-bulk{flex-shrink:0;gap:6px;margin-left:auto;display:flex}@media (width<=700px){.ma-toolbar{gap:6px;padding:6px}.ma-toolbar-label{flex:100%;min-width:0;font-size:11px}.ma-mark-word{display:none}.ma-mark-btn{justify-content:center;min-width:44px;min-height:44px;padding:6px 8px}.ma-all-present,.ma-all-absent{font-size:11px}.ma-name{white-space:normal;text-overflow:clip;overflow-wrap:break-word;padding-left:6px;padding-right:6px;line-height:1.2;overflow:visible}.ma-namehead{padding-left:6px;padding-right:6px}}@media print{.ma-blank-note{display:none}.ma-sidescroll{display:none!important}.ma-toolbar{display:none}.ma-code.is-review,.att-code-cell.is-review{outline:none}.ma-code.is-late:after{display:none}.ma-cell.ma-closed,.ma-grid thead th.ma-closed{background:#f1f5f9}.ma-code.is-outside,.ma-code.is-outside.is-editable:hover{background:var(--surface-2,#f1f5f9)}.ma-grid *,.ma-grid :before,.ma-grid :after{box-shadow:none!important}}.ma-code.is-outside{background:repeating-linear-gradient(-45deg, var(--surface-2) 0 3px, transparent 3px 6px);color:var(--light);cursor:not-allowed}.ma-code.is-outside.is-editable:hover{background:repeating-linear-gradient(-45deg, var(--surface-2) 0 3px, transparent 3px 6px)}.ma-code.is-outside.is-askable{cursor:pointer}.ma-totals-strip{border:1px solid var(--border);border-radius:var(--radius-sm,6px) var(--radius-sm,6px) 0 0;background:var(--surface-2,#f8fafc);color:var(--text);font-variant-numeric:tabular-nums;border-bottom:none;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:7px 12px;font-size:12px;font-weight:700;display:flex}.ma-totals-item--range{border-left:1px solid var(--border);padding-left:14px}.ma-totals-absent{color:var(--text-muted);margin-left:10px;font-weight:600}.ma-totals-dash{color:var(--text-muted);font-weight:600}@media (width<=560px){.ma-totals-item--range{border-left:none;padding-left:0}}.ma-totals-label{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);margin-right:4px;font-size:10.5px;font-weight:700}.ma-totalrow td{border-bottom:2px solid var(--border);background:var(--surface-2,#f8fafc);text-align:center;font-variant-numeric:tabular-nums;color:var(--text);font-size:11px;font-weight:700}.ma-totalrow-lead{text-align:right;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px}.ma-totalrow-month{letter-spacing:0;text-transform:none;color:var(--text);font-variant-numeric:tabular-nums;margin-top:1px;font-size:11px;font-weight:800;display:block}.ma-total-day,.ma-total-month{color:var(--text)}.att-name-room{color:var(--text-muted);margin-left:8px;font-size:11px;font-weight:400}.ma-row--departed .ma-name,.ma-row--departed .ma-room,.ma-row--departed .ma-id{color:var(--text-muted);font-style:italic}.ma-row--departed{background:var(--surface-2)}.ma-totals-note{color:var(--text-muted);align-items:center;gap:8px;font-weight:500;display:inline-flex}.ext-account{border:1px solid var(--border);background:#fcfcfd;border-radius:10px;margin-bottom:12px;padding:12px 14px;position:relative}.ext-account:last-child{margin-bottom:0}.ext-account-grid{grid-template-columns:1fr 1fr 1fr;gap:10px 14px;display:grid}@media (width<=720px){.ext-account-grid{grid-template-columns:1fr}}.ext-field.is-span{grid-column:1/-1}.ext-field .info-item-label{margin-bottom:4px;display:block}.ext-field .form-input{padding:6px 10px;font-size:13px}@media (width<=640px){.ext-field .form-input{font-size:1rem}}.ext-password{position:relative}.ext-password .form-input{padding-right:34px}.ext-eye{cursor:pointer;background:0 0;border:none;padding:2px;font-size:14px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.ext-remove{padding:2px 8px;position:absolute;top:8px;right:10px}.profilenav{align-items:center;gap:6px;display:flex}.profilenav-pos{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;min-width:44px}.profilenav-search{position:relative}.profilenav-search input{border:1px solid var(--border);border-radius:var(--radius-sm,6px);background:var(--card);width:150px;color:var(--text);font-size:var(--fs-sm);padding:5px 9px}.profilenav-search input:focus{outline:2px solid var(--primary);outline-offset:0;border-color:var(--primary)}@media (width<=640px){.profilenav-search input{font-size:1rem}}.profilenav-results{z-index:50;background:var(--card);border:1px solid var(--border);border-radius:var(--radius,8px);min-width:200px;max-height:280px;box-shadow:var(--shadow-md,0 8px 24px #0206172e);padding:4px;position:absolute;top:calc(100% + 4px);right:0;overflow-y:auto}.profilenav-result{text-align:left;border-radius:var(--radius-sm,6px);cursor:pointer;width:100%;font-size:var(--fs-sm);color:var(--text);background:0 0;border:none;padding:7px 10px;display:block}.profilenav-result:hover{background:var(--surface-2)}.profilenav-result.active{color:var(--primary);font-weight:700}.profilenav-noresult{font-size:var(--fs-sm);color:var(--muted);padding:8px 10px}.asm-search{margin:0 0 12px}.asm-search .search-input{width:100%}.asm-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);min-height:176px;max-height:min(52vh,420px);margin-top:10px;overflow-y:auto}.asm-rows{margin:0;padding:0;list-style:none}.asm-row{border-bottom:1px solid var(--border);cursor:pointer;min-height:44px;font-size:var(--fs-md);color:var(--text);align-items:center;gap:10px;padding:6px 12px;display:flex}.asm-rows li:last-child .asm-row{border-bottom:0}.asm-row:hover{background:var(--table-hover)}.asm-row:focus-within{background:var(--table-hover);outline:2px solid var(--primary);outline-offset:-2px}.asm-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;flex:none}.asm-row--skeleton{cursor:default}.asm-row-name{font-weight:600}.asm-row-meta{font-size:var(--fs-sm);color:var(--text-muted);flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.asm-row-room{border:1.5px solid var(--chip-on-border,#cbd5e1);background:var(--chip-on-bg,#e2e8f0);color:var(--chip-on-ink,#1e293b);font-size:var(--fs-xs);white-space:nowrap;border-radius:5px;padding:2px 7px;font-weight:600;line-height:1.4}.asm-row-id{color:var(--text-muted)}.asm-row-id-none{opacity:.45;letter-spacing:.04em}.asm-more{text-align:center;font-size:var(--fs-sm);color:var(--text-muted);border-top:1px solid var(--border);margin:0;padding:10px 12px}.asm-state{padding:var(--space-6) var(--space-5)}.asm-state p{font-size:var(--fs-md)}.asm-nowrap{white-space:nowrap}.asm-state--failed{background:var(--warning-bg);border-radius:var(--radius)}.asm-state--failed h3,.asm-state--failed p{color:var(--warning-ink)}.asm-state-waiting{margin:var(--space-4) auto 0;padding-top:var(--space-3);border-top:1px solid var(--border);max-width:44ch;font-size:var(--fs-sm);color:var(--text-muted)}.asm-foot{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.asm-count{font-size:var(--fs-sm);color:var(--text-muted);font-weight:600}.asm-foot-actions{gap:8px;display:flex}@media (width<=520px){.asm-foot{flex-direction:column;align-items:stretch}.asm-foot-actions{justify-content:flex-end}}.asm-row.asm-row-in{opacity:.55;cursor:default}.asm-row.asm-row-in:hover{background:0 0}.asm-row-in-tag{letter-spacing:.02em;color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:600}.link-emblem{vertical-align:middle;opacity:.62;flex:none;transition:opacity .14s,transform .14s,filter .14s;display:inline-block}.link-emblem.is-lit{opacity:1;filter:drop-shadow(0 0 3px);transform:scale(1.16)}@media (prefers-reduced-motion:reduce){.link-emblem{transition:none}.link-emblem.is-lit{transform:none}}.link-tab-mark{flex:none;justify-content:center;align-items:center;width:20px;height:20px;margin-right:4px;line-height:1;display:inline-flex}.link-tab-mark.is-selected{animation:.24s cubic-bezier(.2,.9,.3,1.4) link-tab-mark-strike}@keyframes link-tab-mark-strike{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.link-tab-mark.is-selected{animation:none}}.class-switcher{min-width:0}.class-switcher .tabs-bar{scrollbar-width:thin;margin:0;padding:0;position:static;overflow-x:auto}.class-switcher .seg-tabs{flex-wrap:nowrap;width:max-content}.class-switcher .seg-tab{white-space:nowrap}.class-switcher-row{align-items:center;gap:var(--space-3);flex-wrap:nowrap;min-width:0;display:flex}.class-switcher-row>.btn{flex-shrink:0}.class-switcher-row>.class-switcher{min-width:0}.class-switcher-row>:has(.class-switcher){min-width:0}@media (width>=641px){.page-header:has(.class-switcher-row) .page-header-left{flex-shrink:0}.page-header:has(.class-switcher-row){column-gap:var(--space-6)}}@media (width<=768px){.class-switcher-row{flex-wrap:wrap;justify-content:flex-end}.class-switcher{order:2;width:100%}}.class-detail-header{row-gap:var(--space-3);flex-wrap:wrap}.class-detail-header>.page-header-actions{margin-left:auto}.class-detail-header>.class-switcher{flex:100%}.cs-tab-label{align-items:center;gap:0;display:inline-flex}.class-switcher .cs-now{color:var(--primary);margin-right:4px;font-size:12px;line-height:1;animation:1.8s ease-in-out infinite cs-now-nudge}@keyframes cs-now-nudge{0%,to{transform:translateY(-1px)}50%{transform:translateY(2px)}}@media (prefers-reduced-motion:reduce){.class-switcher .cs-now{animation:none}}.link-emblem-picker{margin:var(--space-3,12px) 0 0;border:none;min-width:0;padding:0}.link-emblem-picker-legend{font-size:var(--fs-xs,11px);color:var(--muted,#556577);text-transform:uppercase;letter-spacing:.04em;padding:0;font-weight:600}.link-emblem-grid{grid-template-columns:repeat(3,minmax(0,6rem));gap:6px;margin-top:6px;display:grid}.link-emblem-tile{border:1px solid var(--border,#e2e8f0);border-radius:var(--radius-md,10px);background:var(--surface,#fcfdff);min-width:0;height:3.75rem;color:var(--muted,#556577);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px;transition:border-color .14s,background .14s,transform .14s;display:flex}.link-emblem-tile:hover:not(:disabled){border-color:var(--border-strong,#cbd5e1);transform:translateY(-1px)}.link-emblem-tile:disabled{cursor:default;opacity:.55}.link-emblem-tile .link-emblem{opacity:1}.link-emblem-tile-name{font-size:var(--fs-xs,11px);white-space:nowrap;font-weight:600;line-height:1}.link-emblem-tile.is-chosen{border-color:var(--primary,#2563eb);background:var(--primary-light,#dbeafe);color:var(--primary-dark,#1d4ed8);border-width:2px;padding:3px}.link-emblem-tile.is-current{border-style:dashed;border-color:var(--border-strong,#cbd5e1);color:var(--text,#0f172a)}.link-emblem-tile.is-taken{opacity:.4;filter:grayscale();background:var(--surface-2,#f8fafc)}.link-emblem-tile:focus-visible{outline:2px solid var(--primary,#2563eb);outline-offset:2px}.link-emblem-note{font-size:var(--fs-sm,12px);color:var(--muted,#556577);margin:8px 0 0;line-height:1.45}.link-emblem-note-clash{color:var(--text,#0f172a)}@media (prefers-reduced-motion:reduce){.link-emblem-tile{transition:none}.link-emblem-tile:hover:not(:disabled){transform:none}}@media (width<=480px){.link-emblem-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.link-emblem-tile-name{font-size:10px}}.cst{--cst-track:0px;grid-template-columns:92px 1fr;align-items:start;gap:10px;display:grid}.cst-label{color:var(--primary);white-space:nowrap;text-overflow:ellipsis;padding-top:6px;font-size:12.5px;font-weight:700;overflow:hidden}.cst-scroll{border:1px solid var(--border);border-radius:var(--radius-md,8px);background:var(--surface,white);overflow:auto hidden}.cst-inner{width:var(--cst-track);min-width:100%;position:relative}.cst-ruler{background:var(--surface-2);border-bottom:1px solid var(--border);height:22px;position:relative}.cst-hour{border-left:1px solid var(--border);color:var(--text);white-space:nowrap;align-items:center;padding-left:6px;font-size:10.5px;font-weight:600;display:flex;position:absolute;top:0;bottom:0}.cst-track{position:relative}.cst-line{border-left:1px dashed color-mix(in srgb, var(--border) 55%, transparent);position:absolute;top:0;bottom:0}.cst-line.is-hour{border-left:1px solid var(--border)}.cst-slot{box-sizing:border-box;padding-right:2px;position:absolute;top:2px;bottom:2px}.cst-slot.is-draft{z-index:3;transition:left .22s cubic-bezier(.22,.61,.36,1),width .22s cubic-bezier(.22,.61,.36,1)}.cst-block{box-sizing:border-box;border-radius:var(--radius-sm,7px);border:1px solid var(--border);background:var(--surface-2);width:100%;height:100%;color:var(--text-muted);text-align:left;font:inherit;cursor:default;flex-direction:column;justify-content:center;gap:1px;padding:3px 8px;line-height:1.2;transition:box-shadow .12s,border-color .12s;display:flex;overflow:hidden}.cst-block.is-highlight{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, var(--surface,white));color:var(--text);box-shadow:var(--shadow-sm,0 2px 8px #0000001f)}.cst-block-name{white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:600;overflow:hidden}.cst-block-time{white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.cst-block.is-clash{border-color:var(--clash-homeroom);background:color-mix(in srgb, var(--clash-homeroom) 14%, var(--surface,white));color:var(--text);box-shadow:inset 3px 0 0 var(--clash-homeroom)}.cst-block.is-clash--minor{border-color:var(--clash-room);background:color-mix(in srgb, var(--clash-room) 14%, var(--surface,white));box-shadow:inset 3px 0 0 var(--clash-room)}.cst-block.is-clipped{border-right-style:dashed}.cst-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius-md,8px);padding:14px;font-size:12px;font-style:italic}@media (width<=640px){.cst{grid-template-columns:64px 1fr;gap:8px}}@media (prefers-reduced-motion:reduce){.cst-block{transition:none}}.ctl{flex-direction:column;gap:8px;display:flex}.ctl-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ctl-head-label{color:var(--text-muted);font-size:12.5px}.seg-tabs--day .seg-tab{padding:3px 10px;font-size:12px;font-weight:600}.seg-tabs--day .seg-tab.is-scheduled:not(.is-active){box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--primary) 55%, transparent)}.ctl-dayhint{color:var(--text-muted);font-size:11.5px}.ctl-prompt,.ctl-note{color:var(--text-muted);background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius-md,8px);padding:12px 14px;font-size:12.5px}.ctl-note{margin:0}.lo-stepper{border:1px solid var(--border,#d1d5db);background:var(--surface,#fff);white-space:nowrap;border-radius:6px;align-items:center;gap:0;font-size:13px;line-height:1;display:inline-flex}.lo-step{cursor:pointer;color:var(--text-muted,#6b7280);background:0 0;border:none;padding:5px 9px;font-size:14px;line-height:1}.lo-step:hover:not(:disabled){color:var(--text,#111827);background:var(--bg,#f3f4f6)}.lo-minus{border-radius:5px 0 0 5px}.lo-plus{border-radius:0 5px 5px 0}.lo-step:disabled{opacity:.35;cursor:default}.lo-value{text-align:center;min-width:52px;color:var(--text-muted,#6b7280);border-left:1px solid var(--border,#e5e7eb);border-right:1px solid var(--border,#e5e7eb);padding:5px 8px}.lo-value.lo-off{color:var(--warning-ink,#92400e);background:var(--warning-bg,#fef3c7);font-weight:600}.lo-value.lo-pending{opacity:.72}.lo-mark{flex:none;justify-content:center;align-items:center;width:18px;font-size:11px;line-height:1;display:inline-flex}.lo-dot{background:currentColor;border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite lo-breathe}@keyframes lo-breathe{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.lo-dot{opacity:.7;animation:none}}.lo-readonly{background:var(--warning-bg,#fef3c7);color:var(--warning-ink,#92400e);border:none;border-radius:6px;padding:4px 8px;font-weight:600}.lcp{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.lcp-unit{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.lcp-chip{text-align:left;align-items:center;gap:4px;min-width:0;max-width:100%;padding:3px 8px;display:inline-flex;overflow:hidden}.lcp-chip:before{content:"✓";visibility:hidden;flex:0 0 9px;width:9px;font-weight:700}.lcp-chip.on:before{visibility:visible}.lcp-mark{flex:none;align-items:center;display:inline-flex}.lcp-member{white-space:nowrap}.lcp-plus{color:var(--text-muted);font-weight:400}.lcp-empty{margin:4px 0 0;font-size:12px}.crp-sheet{color:#0f172a;background:#fff;font-size:9pt;line-height:1.3}.crp-mast{border-bottom:2px solid #0f172a;align-items:center;gap:12px;padding-bottom:8px;display:flex}.crp-logo{flex:0 0 42px;width:42px;height:42px}.crp-logo img{object-fit:contain;width:100%;height:100%}.crp-mark{color:#fff;letter-spacing:.02em;background:#0f172a;border-radius:6px;justify-content:center;align-items:center;width:100%;height:100%;font-size:13px;font-weight:800;display:flex}.crp-id{min-width:0}.crp-school{font-size:13pt;font-weight:800;line-height:1.1}.crp-doc{color:#334155;font-size:9pt}.crp-facts{border-bottom:1px solid #cbd5e1;flex-wrap:wrap;gap:3px 22px;margin-bottom:7px;padding:6px 0;font-size:8pt;display:flex}.crp-facts b{text-transform:uppercase;letter-spacing:.05em;color:#475569;margin-right:5px;font-size:6.5pt}.crp-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:8.5pt}.crp-table th,.crp-table td{text-align:left;vertical-align:middle;border:1px solid #94a3b8;padding:3px 5px;overflow:hidden}.crp-table thead th{background:#f1f5f9;font-size:8pt;font-weight:700}.crp-table tr{break-inside:avoid;page-break-inside:avoid}.crp-table thead{display:table-header-group}.crp-num{text-align:right;color:#475569;width:24px}.crp-name{font-weight:600}.crp-more{color:#475569;font-weight:400}.crp-key{color:#334155;break-inside:avoid;page-break-inside:avoid;margin-top:7px;font-size:7pt}.sg{gap:var(--space-3,12px);--sg-row:22px;--sg-gutter:78px;--sg-colw:132px;--sg-air:10px;--sg-markline:13px;--sg-markgap:3px;--sg-planh:13px;--sg-planstrip:15px;--sg-cornerh:15px;flex-direction:column;display:flex}.sg-dayrow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.sg-days{align-items:center;gap:3px;display:inline-flex}.sg-dayslabel{color:var(--text-muted);margin-right:5px;font-size:11px;font-weight:600}.sg-daychip{text-align:center;min-width:30px;font:inherit;border:1.5px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;border-radius:5px;padding:2px 5px;font-size:11px;font-weight:600;line-height:1.4;transition:border-color .12s,color .12s;position:relative}.sg-daychip:hover{border-color:var(--border-strong);color:var(--text)}.sg-daychip.on{border-color:var(--chip-on-border,#cbd5e1);background:var(--chip-on-bg,#e2e8f0);color:var(--chip-on-ink,#1e293b)}.sg-daychip.is-empty{opacity:.75;border-style:dashed}.sg-daydot{background:var(--warning-ink);width:6px;height:6px;box-shadow:0 0 0 1.5px var(--card);border-radius:50%;position:absolute;top:-2px;right:-2px}@media (width<=480px){.sg-daychip{min-width:44px;min-height:44px;padding:6px 10px;font-size:12.5px}.sg{--sg-row:44px;--sg-planh:44px;--sg-planstrip:46px;--sg-cornerh:22px}}.sg-note{text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius-md,10px);padding:22px;font-size:12.5px}.sg-note-title{color:var(--text);margin:0;font-weight:600}.sg-note p{margin:4px 0 0}.sg-note .btn{margin-top:10px}.sg-empty{font-size:var(--fs-sm,13px);color:var(--text-muted);margin:0;font-style:italic}.sg-scroll{overscroll-behavior-x:contain;touch-action:pan-x pan-y;border:1px solid var(--border);border-radius:var(--radius-md,10px);background:var(--surface,white);min-width:0;scroll-padding-left:var(--sg-gutter,78px);overflow-x:auto}.sg-grid{min-width:max-content;display:grid;position:relative}.sg-row{display:contents}.sg-corner,.sg-colhead{z-index:6;transform:translateY(var(--sg-head-y,0px));background:var(--surface-2);border-bottom:1px solid var(--border);position:relative}.sg-corner,.sg-time{background:var(--surface,white);position:sticky;left:0}.sg-corner{z-index:7;background:var(--surface-2);grid-area:1/1}.sg-time{z-index:2}.sg-colhead{border-left:1px solid var(--border);align-items:baseline;gap:6px;padding:7px 10px;display:flex}.sg-colname{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.sg-colhead.is-unassigned .sg-colname{color:var(--text-muted);font-style:italic}.sg-colcount{color:var(--text-muted);background:var(--border);border-radius:9px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700}.sg-time{box-sizing:border-box;text-align:right;color:var(--text);white-space:nowrap;border-top:1px solid #0000;padding-right:8px;font-size:10.5px;font-weight:600;line-height:1.1}.sg-time.is-hour{border-top-color:var(--border)}.sg-time>span{position:relative;top:-.55em}.sg-cell{box-sizing:border-box;border:0;border-top:1px dashed color-mix(in srgb, var(--border) 60%, transparent);border-left:1px solid var(--border);background:0 0;min-width:0;margin:0;padding:0}.sg-cell.is-hour{border-top:1px solid var(--border)}.sg-cell.is-air{border-top:0}button.sg-cell{cursor:pointer;font:inherit}button.sg-cell:hover{background:color-mix(in srgb, var(--table-hover) 45%, transparent)}button.sg-cell:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;z-index:5;position:relative}.sg-cell.is-selected{background:var(--nav-active,var(--primary-light));box-shadow:inset 0 0 0 2px var(--primary)}.sg-cell.is-hot{background:color-mix(in srgb, var(--primary) 10%, transparent)}.sg-cell.is-hot.is-selected{background:var(--nav-active,var(--primary-light))}.sg-time.is-hot{color:var(--primary)}.sg-time-hot{color:var(--primary);font-weight:700;position:relative;top:-.55em}.sg-bandslot{z-index:0;pointer-events:none;min-width:0;position:relative}.sg-band{top:calc(var(--sg-top,0) * var(--sg-row));height:calc(var(--sg-h,1) * var(--sg-row));align-items:center;gap:var(--space-2,8px);padding-inline:var(--space-2,8px);border-top:2px solid var(--border-strong);border-bottom:1px solid var(--border);background:repeating-linear-gradient(-45deg, var(--hatch-ink) 0 3px, transparent 3px 7px), var(--surface-2);color:var(--text-muted);display:flex;position:absolute;left:0;right:0;overflow:hidden}.sg-band-name{font-size:var(--fs-xs,11.5px);white-space:nowrap;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.06em;font-weight:600;overflow:hidden}.sg-band-time{white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.sg-slot{z-index:1;pointer-events:none;min-width:0;position:relative}.sg-block{pointer-events:auto;top:calc(var(--sg-top,0) * var(--sg-row));height:calc(var(--sg-h,1) * var(--sg-row));left:calc(var(--sg-lane,0) * (100% / var(--sg-lanes,1)) + 2px);width:calc(100% / var(--sg-lanes,1) - 4px);box-sizing:border-box;border:1px solid color-mix(in srgb, var(--sg-tint,var(--primary)) 55%, transparent);background:color-mix(in srgb, var(--sg-tint,var(--primary)) 12%, var(--surface));color:var(--text);text-align:left;font:inherit;cursor:pointer;border-radius:7px;flex-direction:column;gap:1px;padding:3px 7px;line-height:1.2;transition:box-shadow .12s,transform .12s,background-color .12s,border-color .12s;display:flex;position:absolute;overflow:hidden}.sg-block:hover{box-shadow:0 2px 8px #0000001f}.sg-block:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.sg-block.is-selected{box-shadow:0 0 0 2px var(--primary)}.sg-block.is-tight{gap:0;padding-block:0}.sg-block-name{font-size:11.5px;font-weight:600;display:flex;overflow:hidden}.sg-block-name-head{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.sg-block-name-tail{white-space:pre;flex:none}.sg-block-time{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.sg-block-marks{gap:var(--sg-markgap);max-height:calc(var(--sg-marklines,9) * var(--sg-markline) + (var(--sg-marklines,9) - 1) * var(--sg-markgap));margin-top:auto;flex-wrap:wrap;flex-shrink:0;align-content:flex-start;margin-inline:-7px;padding-inline:7px;display:flex;overflow:hidden}.sg-mark{background:var(--chip-on-bg);color:var(--chip-on-ink);white-space:nowrap;border-radius:999px;padding:0 5px;font-size:9.5px;font-weight:700;line-height:1.3}.sg-mark.is-clash{background:var(--danger-bg);color:var(--danger-ink)}.sg-block.is-clash--minor .sg-mark.is-clash,.sg-mark.is-unusual{background:var(--warning-bg);color:var(--warning-ink)}.sg-block.is-kind-planning,.sg-block.is-kind-lunch,.sg-block.is-kind-duty,.sg-block.is-kind-other{border-color:var(--border);background:var(--surface-2);color:var(--text-muted)}.sg-block.is-kind-planning{background:repeating-linear-gradient(-45deg, var(--kind-planning-hatch) 0 3px, transparent 3px 7px), color-mix(in srgb, var(--kind-planning) 14%, var(--surface-2));box-shadow:inset 3px 0 0 var(--kind-planning)}.sg-block.is-kind-lunch{background:repeating-linear-gradient(-45deg, var(--kind-lunch-hatch) 0 3px, transparent 3px 7px), color-mix(in srgb, var(--kind-lunch) 14%, var(--surface-2));box-shadow:inset 3px 0 0 var(--kind-lunch)}.sg-block.is-kind-duty{background:repeating-linear-gradient(-45deg, var(--kind-duty-hatch) 0 3px, transparent 3px 7px), var(--surface-2);box-shadow:inset 3px 0 0 var(--kind-duty)}.sg-block.is-kind-homeroom{border-color:color-mix(in srgb, var(--kind-homeroom) 55%, transparent);background:color-mix(in srgb, var(--kind-homeroom) 12%, var(--surface));box-shadow:inset 3px 0 0 var(--kind-homeroom)}.sg-block.is-assisting{opacity:.6;border-style:dashed}.sg-block.is-locked{border-color:var(--primary-dark)}.sg-block.is-clash{border-color:var(--clash-homeroom);background:color-mix(in srgb, var(--clash-homeroom) 12%, var(--surface));box-shadow:inset 3px 0 0 var(--clash-homeroom);color:var(--text)}.sg-block.is-clash.is-selected{box-shadow:inset 3px 0 0 var(--clash-homeroom), 0 0 0 2px var(--primary)}.sg-block.is-clash--minor{border-color:var(--clash-room);background:color-mix(in srgb, var(--clash-room) 12%, white);box-shadow:inset 3px 0 0 var(--clash-room)}.sg-block.is-clash--minor.is-selected{box-shadow:inset 3px 0 0 var(--clash-room), 0 0 0 2px var(--primary)}.sg-lockbtn{pointer-events:auto;z-index:3;width:var(--sg-lockw,15px);height:var(--sg-lockw,15px);top:calc(var(--sg-top,0) * var(--sg-row) + 3px);left:calc((var(--sg-lane,0) + 1) * (100% / var(--sg-lanes,1)) - var(--sg-lockw,15px) - 3px);box-sizing:border-box;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:2px;transition:transform .12s,background-color .12s,color .12s,box-shadow .12s;display:flex;position:absolute}.sg-lockbtn.is-locked{background:var(--primary-dark);color:#fff;box-shadow:0 0 0 1.5px var(--surface)}.sg-lockbtn.is-kept{background:var(--chip-on-bg);color:var(--chip-on-ink);box-shadow:0 0 0 1.5px var(--surface)}button.sg-lockbtn:hover{transform:scale(1.14)}button.sg-lockbtn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}span.sg-lockbtn{cursor:default}.sg-block.is-held{padding-right:calc(var(--sg-lockw,15px) + 5px)}.sg-lockbtn:after{content:"";position:absolute;inset:-4px}@media (width<=480px){.sg-lockbtn{--sg-lockw:22px}.sg-lockbtn:after{inset:-11px}}.sg-card-top,.sg-card-foot{pointer-events:none;z-index:2;left:calc(var(--sg-lane,0) * (100% / var(--sg-lanes,1)) + 4px);width:calc(100% / var(--sg-lanes,1) - 8px);box-sizing:border-box;display:flex;position:absolute}.sg-card-top{flex-direction:column;align-items:flex-end}.sg-card-badges{height:var(--sg-cornerh);justify-content:flex-end;align-items:center;gap:3px;display:flex}.sg-card-foot{height:var(--sg-cornerh);justify-content:space-between;align-items:center}.sg-badge,.sg-card-who,.sg-card-more{pointer-events:auto;box-sizing:border-box;font:inherit;white-space:nowrap;background:var(--chip-on-bg);color:var(--chip-on-ink);box-shadow:0 0 0 1.5px var(--surface);border:0;border-radius:999px;margin:0;padding:0 5px;font-size:9.5px;font-weight:700;line-height:1.3;transition:background-color .12s,opacity .12s}.sg-badge.is-pupil{letter-spacing:0}.sg-badge.is-more{background:var(--surface-2);color:var(--text-muted)}.sg-card-more{box-shadow:none;color:var(--text-muted);background:0 0;padding:0 4px;font-size:13px;line-height:1}.sg-badge.is-blank,.sg-card-who.is-blank{opacity:0;color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--border);background:0 0}.sg-slot:hover .sg-badge.is-blank,.sg-slot:hover .sg-card-who.is-blank,.sg-block.is-selected~.sg-card-top .is-blank,.sg-block.is-selected~.sg-card-foot .is-blank,.sg-badge.is-blank:focus-visible,.sg-card-who.is-blank:focus-visible{opacity:1}button.sg-badge,button.sg-card-who,button.sg-card-more{cursor:pointer}span.sg-badge,span.sg-card-who,span.sg-card-more{cursor:default}button.sg-badge:hover,button.sg-card-who:hover{background:var(--border)}button.sg-card-more:hover{color:var(--text);background:var(--chip-on-bg)}button.sg-badge:focus-visible,button.sg-card-who:focus-visible,button.sg-card-more:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.sg-badge,.sg-card-who,.sg-card-more{position:relative}@media (width<=480px){.sg-badge,.sg-card-who{padding:0 7px;font-size:11px}.sg-card-more{padding:0 6px;font-size:15px}.sg-badge:after,.sg-card-who:after,.sg-card-more:after{content:"";position:absolute;inset:-15px 0}}.sg-block.has-corners{padding-top:calc(var(--sg-cornerrows,1) * var(--sg-cornerh));padding-bottom:var(--sg-cornerh);text-align:center;justify-content:center}.sg-block.has-corners.has-plan{padding-bottom:calc(var(--sg-cornerh) + var(--sg-planstrip,15px))}.sg-block.has-corners .sg-block-name{justify-content:center}.sg-block.has-corners .sg-block-marks{justify-content:center;margin-top:0}.sg-block.is-held~.sg-card-top{padding-right:calc(var(--sg-lockw,15px) + 2px)}.sg-block.has-corners.is-held{padding-right:7px}@media (prefers-reduced-motion:reduce){.sg-block,.sg-daychip,.sg-lockbtn,.sg-badge,.sg-card-who,.sg-card-more{transition:none}button.sg-lockbtn:hover{transform:none}}.sg-planbtn{pointer-events:auto;height:var(--sg-planh,13px);left:calc(var(--sg-lane,0) * (100% / var(--sg-lanes,1)) + 3px);width:calc(100% / var(--sg-lanes,1) - 6px);box-sizing:border-box;background:color-mix(in srgb, var(--sg-tint,var(--primary)) 22%, var(--surface));color:var(--text);font:inherit;text-align:left;cursor:pointer;border:0;border-radius:0 0 5px 5px;align-items:center;padding:0 5px;font-size:9.5px;line-height:1.3;display:flex;position:absolute;overflow:hidden}.sg-planbtn>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.sg-planbtn:hover{background:color-mix(in srgb, var(--sg-tint,var(--primary)) 34%, var(--surface))}.sg-planbtn:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.sg-planbtn.is-none,.sg-planbtn.is-closed{cursor:default;font-style:italic}.sg-planbtn.is-none{background:var(--warning-bg);color:var(--warning-ink)}.sg-planbtn.is-closed{background:var(--surface-2);color:var(--text-muted)}@media (width<=480px){.sg-planbtn{padding:0 8px;font-size:12.5px}}.sg-block.has-plan{padding-bottom:var(--sg-planstrip,15px)}.sg-slot>.clash-note{pointer-events:auto}.notif-bell-wrap{display:inline-flex;position:relative}.notif-bell{border:1px solid var(--border);background:var(--surface-2);width:26px;height:26px;color:var(--muted);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.notif-bell:hover,.notif-bell.is-open{color:var(--primary);border-color:var(--primary);background:var(--primary-light)}.notif-bell-count{background:var(--danger);color:#fff;text-align:center;pointer-events:none;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-5px;right:-5px}.notif-panel{z-index:60;background:var(--surface);border:1px solid var(--border);width:min(380px,100vw - 24px);box-shadow:var(--shadow-lg,0 12px 32px #0f172a29);border-radius:10px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.notif-panel-title{font-size:var(--fs-sm);color:var(--text);font-weight:700}.notif-panel-body{max-height:min(60vh,420px);overflow-y:auto}.notif-panel-foot{border-top:1px solid var(--border);text-align:center;padding:8px 12px}.notif-list{flex-direction:column;display:flex}.notif-row{border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;align-items:flex-start;gap:10px;width:100%;padding:11px 12px;transition:background .12s;display:flex}.notif-row:last-child{border-bottom:0}.notif-row:hover{background:var(--surface-2)}.notif-row.is-unread{background:var(--primary-light)}.notif-row.is-unread:hover{background:var(--primary-light);filter:brightness(.98)}.notif-row-icon{text-align:center;flex:none;width:20px;font-size:16px;line-height:1.3}.notif-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notif-row-title{font-size:var(--fs-sm);color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.notif-row-body{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.4}.notif-row-meta{color:var(--muted);font-size:11px}.notif-row-count{background:var(--surface-2);color:var(--text-muted);border-radius:999px;flex:none;padding:1px 6px;font-size:10px;font-weight:700}.notif-row-dismiss{cursor:pointer;color:var(--muted);opacity:0;background:0 0;border:0;border-radius:4px;flex:none;padding:2px 4px;font-size:14px;line-height:1;transition:opacity .12s,color .12s}.notif-row:hover .notif-row-dismiss,.notif-row-dismiss:focus-visible{opacity:1}.notif-row-dismiss:hover{color:var(--danger-ink);background:var(--surface-2)}@media (hover:none){.notif-row-dismiss{opacity:1}}.notif-sec-list{border:1px solid var(--border);border-radius:10px;overflow:hidden}.notif-sec-empty{padding:32px 16px}.notif-bulkbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:8px 2px 12px;display:flex}.notif-selectall{font-size:var(--fs-sm);color:var(--text);cursor:pointer;align-items:center;gap:8px;font-weight:600;display:inline-flex}.notif-bulkactions{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.notif-row-check{cursor:pointer;flex:none;align-items:center;padding:2px 2px 0 0;display:inline-flex}.notif-row.is-selected{background:var(--primary-light)}.notif-row-star{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:4px;flex:none;padding:2px 4px;font-size:15px;line-height:1;transition:color .12s,background .12s}.notif-row-star:hover{background:var(--surface-2);color:#d97706}.notif-row-star.is-on{color:#f59e0b}.notif-row-actions{flex:none;align-items:flex-start;gap:2px;display:inline-flex}.notif-row-star,.notif-row-dismiss,.notif-row-check{justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:0;display:inline-flex}.notif-row-check{justify-content:flex-start}.notif-selectall{min-height:24px}@media (width<=768px){.notif-row-star,.notif-row-dismiss,.notif-row-check{justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;display:inline-flex}.notif-row-check input{width:18px;height:18px}.notif-selectall{min-height:44px}.notif-selectall input{width:18px;height:18px}.notif-row-actions{flex-direction:column;gap:0}.notif-row{gap:6px}}.notif-unread-dot{background:var(--primary);vertical-align:middle;border-radius:50%;flex:none;width:7px;height:7px;margin-right:7px;display:inline-block}.gwb{grid-template-columns:max-content minmax(56px,1fr) max-content;align-items:end;gap:6px 10px;min-width:0;display:grid}.gwb-row{display:contents}.gwb-name{font-size:var(--fs-md);color:var(--text);white-space:nowrap;cursor:help;font-weight:600;line-height:16px}.gwb-weight{color:var(--text-muted);vertical-align:sub;margin-left:3px;font-size:10px;font-weight:600;line-height:0}.gwb-meter{cursor:help;min-width:0;height:16px;display:block;position:relative}.gwb-track{background:var(--border);border-radius:3px;height:5px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.gwb-fill{background:linear-gradient(180deg, hsl(var(--gwb-hue) 72% 62%), hsl(var(--gwb-hue) 66% 40%));width:0;transition:width .9s cubic-bezier(.22,.8,.36,1);transition-delay:calc(var(--gwb-i,0) * 80ms);border-radius:3px;position:absolute;top:0;bottom:0;right:0;overflow:hidden}.gwb.is-shown .gwb-fill{width:var(--gwb-fill)}.gwb.is-shown .gwb-fill:after{content:"";width:60%;animation:3.2s linear infinite gwb-sweep;animation-delay:calc(var(--gwb-i,0) * 80ms + .9s);background:linear-gradient(100deg,#0000 0%,#ffffff80 50%,#0000 100%);position:absolute;inset:0;transform:translate(-170%)}@keyframes gwb-sweep{0%{transform:translate(-170%)}to{transform:translate(270%)}}.gwb-cut{width:0;transition:right .9s cubic-bezier(.22,.8,.36,1);transition-delay:calc(var(--gwb-i,0) * 80ms);position:absolute;top:0;bottom:0;right:0}.gwb.is-shown .gwb-cut{right:var(--gwb-fill)}.gwb-cut:before{content:"";background:hsl(var(--gwb-hue) 60% 30%);border-radius:1px;width:2px;height:7px;position:absolute;bottom:-1px;left:-1px}.gwb-pct{white-space:nowrap;font-variant-numeric:tabular-nums;color:hsl(var(--gwb-hue) 60% 28%);opacity:0;transition:opacity .24s ease-out;transition-delay:calc(var(--gwb-i,0) * 80ms + .6s);font-size:10px;font-weight:700;line-height:11px;position:absolute;top:-1px;left:0;transform:translate(-50%)}.gwb-pct.is-at-left{transform:translate(-2px)}.gwb-pct.is-at-right{transform:translate(calc(2px - 100%))}.gwb.is-shown .gwb-pct{opacity:1}.gwb-count{font-size:var(--fs-sm);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:help;line-height:16px}.gwb-missing{color:var(--danger-ink);font-weight:600}.gwb-note{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.gwb .gwb-skel-bar{align-self:end}@media (prefers-reduced-motion:reduce){.gwb-fill,.gwb-cut,.gwb-pct{transition:none}.gwb.is-shown .gwb-fill:after{animation:none;display:none}}@media print{.gwb-box,.rc-progress{display:none!important}}.ftw-progress{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ftw-progress-text{flex-direction:column;gap:2px;display:flex}.ftw-chip{margin-left:var(--space-2);vertical-align:middle}.ftw-step-title{font-weight:600}.ftw-row-not-yet{color:var(--muted)}.ftw-row-not-yet .ftw-step-title{color:var(--muted);font-weight:500}.ftw-open{margin-top:var(--space-2)}.ftw-done-cell{text-align:center}.ftw-tick input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary);cursor:pointer}.ftw-tick input[type=checkbox]:disabled{cursor:default;opacity:.8}.incident-link-block{border-left:2.5px solid var(--border);margin-top:18px;padding:12px 0 0 12px}.incident-link-head{letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);margin:0 0 4px;font-size:12px;font-weight:600}.incident-link-note{max-width:62ch;color:var(--text-muted);margin:0 0 10px;font-size:12px;line-height:1.5}.incident-link-note strong{color:var(--text);font-weight:600}.incident-link-row{align-items:flex-start;gap:8px;display:flex}.incident-link-row .student-search{flex:auto;min-width:0}@media (width<=640px){.incident-link-row{flex-direction:column;align-items:stretch}.incident-link-row .btn{width:100%}}
