:root{--bg:#f5f6f5;--bg-elevated:#fff;--bg-sunken:#eceeec;--text:#1a1f1c;--text-muted:#5b6660;--border:#d9dcda;--border-strong:#b9c0bc;--accent:#0f6b64;--accent-hover:#0b544f;--accent-contrast:#fff;--accent-soft:#e2f0ee;--danger:#b3261e;--danger-soft:#fbe9e7;--success:#1e7a4c;--success-soft:#e6f4eb;--warning:#8a6d1f;--warning-soft:#fff4d6;--shadow:0 1px 2px #141e1b14, 0 1px 1px #141e1b0a;--shadow-lifted:0 -6px 24px #141e1b1f;--radius:10px;--radius-sm:6px;--radius-lg:16px;--fs-12:12px;--fs-14:14px;--fs-16:16px;--fs-18:18px;--fs-22:22px;--fs-28:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--topbar-h:56px;--banner-h:44px;--coach-h:48px;--tabbar-h:60px;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--demo-bg:#fdf3d6;--demo-text:#6b5312;--demo-border:#e6cf8d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--demo-bg:#3a3016;--demo-text:#f0d78a;--demo-border:#5c4d24}}:root[data-theme=dark]{--demo-bg:#3a3016;--demo-text:#f0d78a;--demo-border:#5c4d24}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14171a;--bg-elevated:#1c2024;--bg-sunken:#101315;--text:#edf1ee;--text-muted:#9aa5a0;--border:#2c3236;--border-strong:#3d454a;--accent:#35a99a;--accent-hover:#4bc0b0;--accent-contrast:#0c1211;--accent-soft:#1d3634;--danger:#e5978f;--danger-soft:#3a2320;--success:#7fd1a4;--success-soft:#1c3227;--warning:#e0c257;--warning-soft:#3a3016;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#14171a;--bg-elevated:#1c2024;--bg-sunken:#101315;--text:#edf1ee;--text-muted:#9aa5a0;--border:#2c3236;--border-strong:#3d454a;--accent:#35a99a;--accent-hover:#4bc0b0;--accent-contrast:#0c1211;--accent-soft:#1d3634;--danger:#e5978f;--danger-soft:#3a2320;--success:#7fd1a4;--success-soft:#1c3227;--warning:#e0c257;--warning-soft:#3a3016;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#root{flex-direction:column;min-height:100svh;display:flex}.app-shell{flex-direction:column;width:100%;min-height:100svh;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button{font:inherit;cursor:pointer}select,input,textarea{font:inherit;color:inherit}.persona-bar{justify-content:space-between;align-items:center;gap:var(--sp-4);background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-wrap:wrap;padding:10px 20px;display:flex}.persona-bar-left{align-items:baseline;gap:10px;min-width:0;display:flex}.school-name{font-weight:600;font-size:var(--fs-16);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-name{color:var(--text-muted);font-size:var(--fs-14);white-space:nowrap}.persona-bar-right{align-items:center;gap:10px;display:flex}.persona-select select{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg);color:var(--text);min-width:200px;padding:6px 10px}.icon-button{border:1px solid var(--border-strong);background:var(--bg);border-radius:var(--radius-sm);font-size:var(--fs-16);padding:6px 10px;line-height:1}.icon-button:hover{background:var(--bg-sunken)}.demo-menu{position:relative}.demo-menu summary{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg);font-size:var(--fs-14);-webkit-user-select:none;user-select:none;padding:6px 12px;list-style:none}.demo-menu summary::-webkit-details-marker{display:none}.demo-menu summary:hover{background:var(--bg-sunken)}.demo-menu[open] summary{background:var(--accent-soft);border-color:var(--accent)}.demo-menu-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:20;flex-direction:column;gap:2px;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.menu-item{text-align:left;border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-14);background:0 0;border:none;padding:8px 10px}.menu-item:hover{background:var(--bg-sunken)}.menu-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-soft)}.app-main{flex-direction:column;flex:1;width:100%;padding:20px;display:flex}.timetable-view{gap:var(--sp-4);flex-direction:column;width:100%;display:flex}.timetable-controls{align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.mode-tabs{gap:var(--sp-1);background:var(--bg-sunken);border-radius:var(--radius);padding:4px;display:flex}.tab{border-radius:var(--radius-sm);font-size:var(--fs-14);color:var(--text-muted);background:0 0;border:none;padding:8px 16px}.tab.active{background:var(--bg-elevated);color:var(--accent);box-shadow:var(--shadow);font-weight:600}.entity-select{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);min-width:240px;padding:8px 12px}.timetable-grid-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);width:100%;overflow-x:auto}.timetable-grid{border-collapse:collapse;table-layout:fixed;width:100%}.timetable-grid th,.timetable-grid td{border:1px solid var(--border);padding:0}.timetable-grid thead th{background:var(--bg-sunken);font-size:var(--fs-14);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;padding:10px 8px;font-weight:600}.period-col{background:var(--bg-sunken);text-align:center;vertical-align:middle;width:92px;padding:8px 4px}.period-number{font-weight:700;font-size:var(--fs-16)}.period-time{font-size:var(--fs-12);color:var(--text-muted);white-space:nowrap}.lesson-cell{vertical-align:top;height:72px}.lesson-content{flex-direction:column;justify-content:center;gap:2px;height:100%;padding:8px 10px;display:flex}.lesson-subject{font-weight:600;font-size:var(--fs-14)}.lesson-secondary,.lesson-room{font-size:var(--fs-12);color:var(--text-muted)}.lesson-cell.empty{background:var(--bg)}.lesson-free{height:72px;color:var(--border-strong);font-size:var(--fs-12);justify-content:center;align-items:center;display:flex}.import-view{gap:var(--sp-6);flex-direction:column;max-width:900px;display:flex}.back-link{color:var(--accent);font-size:var(--fs-14);background:0 0;border:none;align-self:flex-start;padding:4px 0}.back-link:hover{text-decoration:underline}.import-view h1{font-size:var(--fs-22);margin:0}.import-section{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);gap:var(--sp-3);flex-direction:column;padding:18px 20px;display:flex}.import-section h2{font-size:var(--fs-16);margin:0}.import-section p{color:var(--text-muted);font-size:var(--fs-14);margin:0;line-height:1.5}.primary-button{background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius-sm);font-size:var(--fs-14);border:none;align-self:flex-start;padding:9px 18px;font-weight:600}.primary-button:hover{background:var(--accent-hover)}.import-controls input[type=file]{font-size:var(--fs-14);color:var(--text-muted)}.import-textarea{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg);width:100%;color:var(--text);font-family:ui-monospace,Consolas,monospace;font-size:var(--fs-12);resize:vertical;padding:10px 12px}.success-message{background:var(--success-soft);color:var(--success);border-radius:var(--radius-sm);font-size:var(--fs-14);padding:10px 12px}.error-list{background:var(--danger-soft);border-radius:var(--radius-sm);padding:12px 14px}.error-list-title{color:var(--danger);font-weight:600;font-size:var(--fs-14);margin:0 0 6px}.error-list ul{color:var(--text);font-size:var(--fs-14);gap:var(--sp-1);flex-direction:column;margin:0;padding-left:18px;display:flex}.prompt-block{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.prompt-block-header{background:var(--bg-sunken);font-size:var(--fs-12);color:var(--text-muted);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.copy-button{border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);border-radius:var(--radius-sm);font-size:var(--fs-14);padding:5px 12px}.copy-button:hover{background:var(--bg)}.prompt-text{font-family:ui-monospace,Consolas,monospace;font-size:var(--fs-12);white-space:pre-wrap;word-break:break-word;background:var(--bg);max-height:360px;color:var(--text);margin:0;padding:14px;line-height:1.5;overflow-y:auto}.role-nav{gap:var(--sp-1);background:var(--bg-elevated);border-bottom:1px solid var(--border);padding:8px 20px;display:flex}.role-nav-tab{border-radius:var(--radius-sm);font-size:var(--fs-14);color:var(--text-muted);background:0 0;border:none;padding:8px 14px}.role-nav-tab:hover{background:var(--bg-sunken)}.role-nav-tab.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.status-badge{font-size:var(--fs-12);white-space:nowrap;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;padding:3px 9px;font-weight:600;display:inline-flex}.chip-icon{stroke-width:2.2px;flex-shrink:0;width:13px;height:13px}.note-indicator{vertical-align:-2px;width:14px;height:14px;color:var(--text-muted);flex-shrink:0;margin-left:4px}.status-open{background:var(--accent-soft);color:var(--accent)}.status-asked{background:var(--warning-soft);color:var(--warning)}.status-covered{background:var(--success-soft);color:var(--success)}.status-no-candidates{background:var(--danger-soft);color:var(--danger)}.teacher-home{flex-direction:column;gap:20px;width:100%;max-width:480px;margin:0 auto;display:flex}.report-cta{background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius);font-size:var(--fs-16);width:100%;box-shadow:var(--shadow);border:none;padding:18px;font-weight:700}.report-cta:hover{background:var(--accent-hover)}.my-absences{gap:var(--sp-3);flex-direction:column;display:flex}.my-absences h2{font-size:var(--fs-16);margin:0}.absence-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.absence-card-header{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.absence-dates{font-size:var(--fs-16);font-weight:600}.absence-lesson-count{font-size:var(--fs-14);color:var(--text-muted)}.absence-preferred{font-size:var(--fs-14);color:var(--text-muted);margin:0}.absence-lesson-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.absence-lesson-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);background:var(--bg-sunken);border-radius:var(--radius-sm);font-size:var(--fs-14);padding:8px 10px;display:flex}.absence-lesson-what{flex-direction:column;gap:2px;min-width:0;display:flex}.absence-lesson-note{color:var(--text-muted);font-size:var(--fs-12)}.report-flow{flex-direction:column;gap:20px;width:100%;max-width:480px;margin:0 auto;display:flex;position:relative}.report-flow h1{font-size:var(--fs-22);margin:0}.report-section{flex-direction:column;gap:10px;display:flex}.report-section h2{font-size:var(--fs-16);margin:0}.date-range-fields{gap:var(--sp-3);display:flex}.date-field{gap:var(--sp-1);font-size:var(--fs-14);color:var(--text-muted);flex-direction:column;flex:1;min-width:0;display:flex}.date-field input[type=date]{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);font-size:var(--fs-16);width:100%;padding:10px}.no-reason-note{font-size:var(--fs-14);color:var(--text-muted);margin:0;font-style:italic}.empty-notice{background:var(--bg-sunken);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--fs-14);margin:0;padding:12px 14px}.lesson-date-groups{gap:var(--sp-4);flex-direction:column;display:flex}.lesson-date-group{gap:var(--sp-2);flex-direction:column;display:flex}.lesson-date-heading{font-weight:600;font-size:var(--fs-14)}.lesson-toggle-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lesson-toggle-row label{align-items:center;gap:var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:10px 12px;display:flex}.lesson-toggle-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.lesson-toggle-info{flex-direction:column;gap:2px;min-width:0;display:flex}.lesson-toggle-period{font-weight:600;font-size:var(--fs-14)}.lesson-toggle-detail{font-size:var(--fs-12);color:var(--text-muted)}.lesson-toggle-chip{flex-shrink:0;margin-left:auto}.selected-summary{font-size:var(--fs-14);color:var(--text-muted);margin:0}.confirm-button{width:100%;font-size:var(--fs-16);padding:16px}.section-hint{color:var(--text-muted);font-weight:400}.preferred-chip-row{display:flex}.preferred-chip{background:var(--accent-soft);color:var(--accent);font-size:var(--fs-14);border-radius:999px;align-items:center;gap:8px;padding:8px 8px 8px 14px;font-weight:600;display:inline-flex}.preferred-chip button{color:inherit;font-size:var(--fs-18);background:0 0;border:none;min-width:28px;min-height:28px;padding:0;line-height:1}.preferred-select{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);width:100%;min-height:44px;color:var(--text);font-size:var(--fs-16);padding:10px 12px}.chip.chip-free{border-color:var(--success);color:var(--success);background:var(--success-soft)}.lesson-note-area{flex-direction:column;gap:6px;padding:0 12px 8px;display:flex}.lesson-note-toggle{min-height:44px;color:var(--text-muted);font-size:var(--fs-12);border-radius:var(--radius-sm);background:0 0;border:none;align-self:flex-start;align-items:center;gap:6px;padding:8px 10px;display:inline-flex}.lesson-note-toggle:hover{background:var(--bg-sunken);color:var(--text)}.lesson-note-input{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);width:100%;min-height:44px;color:var(--text);font-size:var(--fs-14);padding:10px 12px}.hud-overlay{z-index:100;background:#0a0f0d8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.hud-card{background:var(--bg-elevated);border-radius:var(--radius);text-align:center;max-width:320px;box-shadow:var(--shadow);flex-direction:column;align-items:center;gap:14px;padding:32px 28px;display:flex}.hud-check{background:var(--success-soft);width:52px;height:52px;color:var(--success);font-size:var(--fs-28);border-radius:50%;justify-content:center;align-items:center;display:flex}.hud-card p{font-size:var(--fs-16);margin:0}.absences-view{flex-direction:column;gap:18px;width:100%;display:flex}.absences-view h1{font-size:var(--fs-22);margin:0}.absence-cards-deputy{gap:var(--sp-4);flex-direction:column;display:flex}.deputy-absence-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:16px 20px;display:flex}.deputy-absence-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.deputy-absence-teacher{font-weight:700;font-size:var(--fs-16)}.deputy-absence-dates{color:var(--text-muted);font-size:var(--fs-14)}.deputy-absence-count{font-size:var(--fs-14);color:var(--text-muted)}.candidate-name{font-weight:600;font-size:var(--fs-16)}.candidate-why{color:var(--text-muted);font-size:var(--fs-12);line-height:1.45}.link-button{color:var(--accent);font-size:var(--fs-14);background:0 0;border:none;padding:2px 0;font-weight:600}.link-button:hover{text-decoration:underline}.secondary-button{color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-14);background:0 0;padding:9px 18px;font-weight:600}.secondary-button:hover{background:var(--bg-sunken)}.event-feed{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px 18px;display:flex}.event-feed-header{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.event-feed-header h2{font-size:var(--fs-16);margin:0}.event-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.event-row{font-size:var(--fs-14);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px 10px;padding:6px 0;display:flex}.event-row:last-child{border-bottom:none}.event-time{color:var(--text-muted);white-space:nowrap;min-width:130px}.event-text{flex:1;min-width:200px}.my-assignments{gap:var(--sp-3);flex-direction:column;display:flex}.my-assignments h2{font-size:var(--fs-16);margin:0}.request-card{background:var(--bg-elevated);border:1px solid var(--accent);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.request-card-title{font-weight:700;font-size:var(--fs-16)}.request-card-details{font-size:var(--fs-14);color:var(--text-muted);flex-direction:column;gap:3px;display:flex}.request-card-actions{gap:10px;margin-top:4px;display:flex}.request-card-actions .primary-button,.request-card-actions .secondary-button{text-align:center;flex:1;align-self:stretch}.assignment-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.assignment-row{gap:var(--sp-1);background:var(--success-soft);border-radius:var(--radius-sm);font-size:var(--fs-14);flex-direction:column;padding:10px 12px;display:flex}.assignment-when{font-weight:600}.assignment-what{color:var(--text-muted)}.hud-check.info{background:var(--warning-soft);color:var(--warning)}.templates-view{flex-direction:column;gap:18px;width:100%;max-width:560px;margin:0 auto;display:flex}.templates-view h1{font-size:var(--fs-22);margin:0}.templates-intro{color:var(--text-muted);font-size:var(--fs-14);margin:0;line-height:1.5}.template-cards{gap:var(--sp-4);flex-direction:column;display:flex}.template-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);gap:var(--sp-3);flex-direction:column;padding:16px;display:flex}.template-card-header{justify-content:space-between;align-items:center;display:flex}.template-card-class{font-weight:700;font-size:var(--fs-16)}.template-field{gap:var(--sp-1);font-size:var(--fs-14);color:var(--text-muted);flex-direction:column;display:flex}.template-field input,.template-field textarea{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font-size:var(--fs-14);resize:vertical;padding:8px 10px}.template-card-footer{align-items:center;gap:var(--sp-3);display:flex}.template-saved-flash{color:var(--success);font-size:var(--fs-14);font-weight:600}.handover-sheet-view{gap:var(--sp-4);flex-direction:column;width:100%;max-width:640px;margin:0 auto;display:flex}.handover-sheet{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:20px;padding:24px;display:flex}.handover-sheet h1{font-size:var(--fs-22);margin:0}.handover-sheet-header{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding-bottom:16px;display:flex}.handover-sheet-row{justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-14);display:flex}.handover-sheet-label{color:var(--text-muted);min-width:180px}.handover-sheet-body{flex-direction:column;gap:14px;display:flex}.handover-sheet-field h2{font-size:var(--fs-14);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 4px}.handover-sheet-field p{font-size:var(--fs-14);white-space:pre-wrap;margin:0;line-height:1.5}.handover-sheet-missing{background:var(--warning-soft);color:var(--warning);border-radius:var(--radius-sm);font-size:var(--fs-14);margin:0;padding:14px}.handover-sheet-note{background:var(--accent-soft);border-radius:var(--radius-sm);padding:12px 14px}.handover-sheet-note h2{color:var(--accent)}@media print{.persona-bar,.role-nav,.no-print{display:none!important}@page{size:A4;margin:15mm}html,body,.app-shell,.app-main{color:#000!important;background:#fff!important}.print-root{font-size:12.5pt;color:#000!important;box-shadow:none!important;background:#fff!important;border:none!important;padding:0!important}.print-root .handover-sheet-label,.print-root .handover-sheet-field h2{color:#333!important}.print-root .handover-sheet-missing{border:1px solid #000;color:#000!important;background:#fff!important}.handover-sheet-view{max-width:100%}}.documents-view{gap:var(--sp-6);flex-direction:column;width:100%;display:flex}.documents-view h1{font-size:var(--fs-22);margin:0}.documents-section{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px 20px;display:flex}.documents-section h2{font-size:var(--fs-16);margin:0}.documents-section-header{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.month-picker{gap:var(--sp-1);font-size:var(--fs-14);color:var(--text-muted);flex-direction:column;max-width:220px;display:flex}.month-picker input[type=month]{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);font-size:var(--fs-14);padding:8px 10px}.order-draft-actions{gap:10px;display:flex}.order-draft-text{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--fs-14);white-space:pre-wrap;word-break:break-word;margin:0;padding:22px 26px;line-height:1.7}.journal-table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);width:100%;overflow-x:auto}.journal-table{border-collapse:collapse;width:100%}.journal-table th,.journal-table td{border-bottom:1px solid var(--border);text-align:left;font-size:var(--fs-14);padding:8px 12px}.journal-table thead th{background:var(--bg-sunken);color:var(--text-muted);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.journal-table tbody tr:last-child td{border-bottom:none}.journal-summary{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.journal-summary-row{font-size:var(--fs-14);color:var(--text-muted)}.dashboard-view{flex-direction:column;gap:20px;width:100%;display:flex}.dashboard-view h1{font-size:var(--fs-22);margin:0}.dashboard-section{flex-direction:column;gap:14px;display:flex}.dashboard-section h2{font-size:var(--fs-16);margin:0}.dashboard-date-group{gap:var(--sp-2);flex-direction:column;display:flex}.dashboard-date-heading{font-weight:600;font-size:var(--fs-14)}.metrics-strip{gap:var(--sp-6);padding:var(--sp-3) 0 0;border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.metric-cell{flex-direction:column;gap:2px;min-width:0;display:flex}.metric-value{font-size:var(--fs-18);font-weight:700}.metric-label{font-size:var(--fs-12);color:var(--text-muted);line-height:1.4}.about-view{gap:var(--sp-4);flex-direction:column;width:100%;max-width:640px;display:flex}.about-view h1{font-size:var(--fs-22);margin:0}.about-section{gap:var(--sp-3);flex-direction:column;display:flex}.about-section p{font-size:var(--fs-14);color:var(--text);margin:0;line-height:1.6}.about-meta{color:var(--text-muted);font-size:var(--fs-14)}.onboarding-overlay{z-index:200;background:#0a0f0d99;padding:24px;display:flex;position:fixed;inset:0}.onboarding-card{background:var(--bg-elevated);border-radius:var(--radius);box-shadow:var(--shadow);gap:var(--sp-4);flex-direction:column;width:100%;max-width:380px;margin:auto;padding:26px 24px;display:flex}.onboarding-card.top-anchored{margin:74px 40px auto auto;position:relative}.onboarding-arrow{border-left:10px solid #0000;border-right:10px solid #0000;border-bottom:10px solid var(--bg-elevated);width:0;height:0;position:absolute;top:-10px;right:40px}.onboarding-card-title{font-size:var(--fs-18);margin:0;font-weight:700}.onboarding-card-body{font-size:var(--fs-14);color:var(--text-muted);margin:0;line-height:1.6}.onboarding-dots{justify-content:center;gap:6px;display:flex}.onboarding-dot{background:var(--border-strong);border-radius:50%;width:7px;height:7px}.onboarding-dot.active{background:var(--accent)}.onboarding-actions{justify-content:flex-end;align-items:center;gap:var(--sp-4);display:flex}.onboarding-actions .link-button{margin-right:auto}.view-title{font-size:var(--fs-22);margin:0}.primary-button.wide,.secondary-button.wide{text-align:center;align-self:stretch;width:100%}.row-chevron{color:var(--text-muted);flex-shrink:0;width:20px;height:20px}.icon-button svg{width:22px;height:22px;display:block}.demo-tag{background:var(--demo-bg);color:var(--demo-text);border:1px solid var(--demo-border);border-radius:var(--radius-sm);letter-spacing:.08em;flex-shrink:0;padding:2px 6px;font-size:10.5px;font-weight:700;line-height:1.3}.demo-banner{justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:var(--banner-h);padding:var(--sp-2) var(--sp-6);background:var(--demo-bg);color:var(--demo-text);border-bottom:1px solid var(--demo-border);display:flex}.demo-banner-text{align-items:center;gap:var(--sp-2);color:inherit;font-size:var(--fs-14);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;min-width:0;padding:0;display:flex;overflow:hidden}.demo-banner-text.as-text{cursor:default}.demo-banner-action{border:1px solid var(--demo-border);color:inherit;font-size:var(--fs-14);border-radius:var(--radius-sm);background:0 0;flex-shrink:0;padding:5px 12px;font-weight:600}.demo-banner-action:hover{background:#0000000f}.mobile-top-bar{justify-content:space-between;align-items:center;gap:var(--sp-2);min-height:var(--topbar-h);padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border-bottom:1px solid var(--border);display:none}.mobile-top-bar-identity{align-items:center;gap:6px;min-width:0;display:flex}.mobile-school-name{font-weight:600;font-size:var(--fs-14);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mobile-top-bar-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.persona-chip{align-items:center;gap:var(--sp-2);border:1px solid var(--border-strong);background:var(--bg);max-width:168px;min-height:44px;color:var(--text);border-radius:999px;padding:4px 6px 4px 4px;display:flex}.persona-avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);font-size:var(--fs-12);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.persona-chip-text{flex-direction:column;align-items:flex-start;min-width:0;line-height:1.2;display:flex}.persona-chip-name{font-size:var(--fs-14);text-overflow:ellipsis;white-space:nowrap;max-width:92px;font-weight:600;overflow:hidden}.persona-chip-role{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:92px;font-size:11px;overflow:hidden}.persona-chip-caret{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.sheet-overlay{z-index:300;background:#0a0f0d80;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-elevated);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);width:100%;max-width:520px;max-height:88svh;box-shadow:var(--shadow-lifted);padding:var(--sp-2) var(--sp-4) calc(var(--sp-4) + env(safe-area-inset-bottom));flex-direction:column;display:flex}.sheet-tall{height:80svh}.sheet-grip{background:var(--border-strong);width:40px;height:4px;margin:0 auto var(--sp-2);border-radius:999px}.sheet-header{justify-content:space-between;align-items:center;gap:var(--sp-3);padding-bottom:var(--sp-2);display:flex}.sheet-title{font-size:var(--fs-18);margin:0}.sheet-close{width:44px;height:44px;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sheet-close:hover{background:var(--bg-sunken)}.sheet-body{gap:var(--sp-3);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.sheet-paragraph{font-size:var(--fs-16);color:var(--text);margin:0;line-height:1.55}.sheet-actions{gap:var(--sp-2);flex-direction:column;display:flex}.sheet-search{align-items:center;display:flex;position:relative}.sheet-search-icon{width:20px;height:20px;color:var(--text-muted);pointer-events:none;position:absolute;left:10px}.sheet-search input{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg);width:100%;min-height:44px;color:var(--text);font-size:var(--fs-16);padding:10px 12px 10px 38px}.persona-option-list{gap:var(--sp-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.persona-option{align-items:center;gap:var(--sp-3);width:100%;min-height:56px;padding:var(--sp-2) var(--sp-2);border-radius:var(--radius-sm);color:var(--text);text-align:left;background:0 0;border:none;display:flex}.persona-option:hover{background:var(--bg-sunken)}.persona-option.selected{background:var(--accent-soft)}.persona-option-text{flex-direction:column;flex:1;min-width:0;display:flex}.persona-option-name{font-size:var(--fs-16);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.persona-option-role{font-size:var(--fs-12);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.persona-option-check{width:20px;height:20px;color:var(--accent);flex-shrink:0}.sheet-menu{gap:var(--sp-1);flex-direction:column;display:flex}.sheet-menu-item{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;min-height:52px;padding:var(--sp-3) var(--sp-2);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-16);text-align:left;background:0 0;border:none;display:flex}.sheet-menu-item:hover{background:var(--bg-sunken)}.sheet-menu-hint{font-size:var(--fs-12);color:var(--text-muted)}.sheet-menu-item.danger{color:var(--danger);margin-top:var(--sp-2);border-top:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.sheet-menu-item.danger:hover{background:var(--danger-soft)}.bottom-tabs{z-index:40;background:var(--bg-elevated);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:none;position:fixed;bottom:0;left:0;right:0}.bottom-tab{min-width:0;min-height:var(--tabbar-h);color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 2px;display:flex}.bottom-tab-icon{width:24px;height:24px;display:flex;position:relative}.bottom-tab-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.bottom-tab.active{color:var(--accent);font-weight:600}.bottom-tab.active .bottom-tab-icon{color:var(--accent)}.empty-school{gap:var(--sp-3);max-width:520px;padding:var(--sp-6) 0;flex-direction:column;align-items:flex-start;display:flex}.empty-school h1{font-size:var(--fs-22);margin:0}.empty-school p{font-size:var(--fs-16);color:var(--text-muted);margin:0;line-height:1.55}.empty-school-hint{font-size:var(--fs-14)}.need-list{gap:var(--sp-2);flex-direction:column;display:flex}.need-row{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);text-align:left;color:var(--text);display:flex}.need-row.flagged{border-color:var(--danger)}.need-row.tappable{cursor:pointer}.need-row.tappable:hover{border-color:var(--accent)}.need-row.tappable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.need-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.need-line{align-items:center;gap:var(--sp-2);font-size:var(--fs-14);flex-wrap:wrap;display:flex}.need-when{white-space:nowrap;font-weight:600}.need-what{color:var(--text-muted)}.need-person{font-size:var(--fs-14);color:var(--text-muted);font-weight:600}.need-action{white-space:nowrap;flex-shrink:0;align-self:center}.secondary-button.accent{color:var(--accent);border-color:var(--accent);padding:8px 12px}.secondary-button.accent:hover{background:var(--accent-soft)}.dashboard-clear{font-size:var(--fs-16);color:var(--text-muted);margin:0}.covered-disclosure{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;min-height:44px;color:var(--text);font-size:var(--fs-16);text-align:left;background:0 0;border:none;padding:0;font-weight:600;display:flex}.decision-meta{align-items:center;gap:var(--sp-2) var(--sp-3);font-size:var(--fs-14);color:var(--text-muted);flex-wrap:wrap;display:flex}.decision-covered,.decision-empty{gap:var(--sp-3);flex-direction:column;display:flex}.decision-disclosures{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.candidate-choice-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.candidate-choice{width:100%;padding:var(--sp-3);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-align:left;flex-direction:column;gap:6px;display:flex}.candidate-choice.tappable:hover{border-color:var(--accent);background:var(--accent-soft)}.candidate-choice.tappable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.candidate-choice.dimmed{opacity:.55}.chip-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-muted);font-size:var(--fs-12);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 8px;font-weight:600;display:inline-flex}.chip-balance{font-variant-numeric:tabular-nums}.chip-declined{border-color:var(--danger);color:var(--danger)}.chip-preferred{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.decision-note,.decision-preferred-busy{font-size:var(--fs-14);color:var(--text-muted);margin:0}.snackbar{left:50%;bottom:calc(var(--sp-6) + env(safe-area-inset-bottom));z-index:250;align-items:center;gap:var(--sp-4);max-width:min(520px, calc(100% - 2 * var(--sp-3)));padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);background:var(--text);color:var(--bg);box-shadow:var(--shadow-lifted);display:flex;position:fixed;transform:translate(-50%)}.snackbar-text{font-size:var(--fs-14);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.snackbar-action{color:inherit;font-size:var(--fs-14);background:0 0;border:none;flex-shrink:0;align-items:center;gap:6px;padding:4px 0;font-weight:700;display:inline-flex}.snackbar-action-icon{width:18px;height:18px}.tab-badge{background:var(--danger);min-width:18px;height:18px;color:var(--bg-elevated);text-align:center;border-radius:999px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-4px;left:14px}.tab-badge.inline{margin-left:6px;display:inline-block;position:static}.coach-strip{align-items:center;gap:var(--sp-3);height:var(--coach-h);padding:0 var(--sp-6);background:var(--accent-soft);color:var(--text);border-bottom:1px solid var(--border);display:flex}.coach-label{min-width:0;font-size:var(--fs-14);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.coach-actions{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.coach-show{background:var(--accent);color:var(--accent-contrast);font-size:var(--fs-14);border-radius:var(--radius-sm);border:none;padding:8px 14px;font-weight:700}.coach-show:hover{background:var(--accent-hover)}.coach-next{border:1px solid var(--border-strong);color:var(--text);font-size:var(--fs-14);border-radius:var(--radius-sm);background:0 0;padding:8px 12px;font-weight:600}.coach-next:hover{background:var(--bg-elevated)}.coach-close{width:36px;height:36px;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.coach-close svg{width:20px;height:20px}@keyframes coach-pulse{0%,to{outline-color:var(--accent);box-shadow:0 0 #0f6b6400}50%{outline-color:var(--accent-hover);box-shadow:0 0 0 6px #0f6b642e}}.app-shell[data-coach-active=report-cta] [data-coach=report-cta],.app-shell[data-coach-active=find-cover] [data-coach=find-cover],.app-shell[data-coach-active=candidate-row] [data-coach=candidate-row],.app-shell[data-coach-active=accept] [data-coach=accept],.app-shell[data-coach-active=order-draft] [data-coach=order-draft]{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm);animation:1.8s ease-in-out infinite coach-pulse}@media (prefers-reduced-motion:reduce){.app-shell[data-coach-active=report-cta] [data-coach=report-cta],.app-shell[data-coach-active=find-cover] [data-coach=find-cover],.app-shell[data-coach-active=candidate-row] [data-coach=candidate-row],.app-shell[data-coach-active=accept] [data-coach=accept],.app-shell[data-coach-active=order-draft] [data-coach=order-draft]{animation:none}}.lesson-cover-mark{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.lesson-cover-name{font-size:var(--fs-12);color:var(--text-muted)}.persona-group-title{font-size:var(--fs-12);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;padding-top:var(--sp-2);font-weight:700}.persona-chip.deputy{border-color:var(--accent)}.event-feed-disclosure{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;min-height:44px;color:var(--text);font-size:var(--fs-16);text-align:left;background:0 0;border:none;padding:0;font-weight:600;display:flex}.disclosure-caret{width:20px;height:20px;color:var(--text-muted);transition:transform .15s}.disclosure-caret.open{transform:rotate(180deg)}.day-switcher{gap:var(--sp-1);background:var(--bg-sunken);padding:var(--sp-1);border-radius:var(--radius);display:flex}.day-switcher-tab{border-radius:var(--radius-sm);min-width:0;min-height:44px;color:var(--text-muted);font-size:var(--fs-14);background:0 0;border:none;flex:1;font-weight:600}.day-switcher-tab.active{background:var(--bg-elevated);color:var(--accent);box-shadow:var(--shadow)}.day-heading{font-size:var(--fs-16);font-weight:600}.day-lesson-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.day-lesson-row{align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);display:flex}.day-lesson-row.free{background:var(--bg)}.day-lesson-period{flex-direction:column;flex-shrink:0;align-items:center;width:62px;display:flex}.day-lesson-number{font-size:var(--fs-16);font-weight:700}.day-lesson-time{color:var(--text-muted);white-space:nowrap;font-size:11px}.day-lesson-body{flex-direction:column;gap:2px;min-width:0;display:flex}.day-lesson-subject{font-size:var(--fs-16);font-weight:600}.day-lesson-secondary{font-size:var(--fs-14);color:var(--text-muted)}.journal-cards{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:none}.journal-card{padding:var(--sp-3);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:6px;display:flex}.journal-card-head{justify-content:space-between;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.journal-card-who{font-size:var(--fs-16);font-weight:600}.journal-card-when{font-size:var(--fs-12);color:var(--text-muted);white-space:nowrap}.journal-card-line{justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-14);display:flex}.journal-card-label{color:var(--text-muted);flex-shrink:0}.persona-bar-right{flex-wrap:wrap;justify-content:flex-end;min-width:0}.persona-select select{max-width:260px}@media screen and (width<=767px){.app-shell{--sticky-top:var(--topbar-h)}.app-shell.with-banner{--sticky-top:calc(var(--topbar-h) + var(--banner-h))}.app-shell{--coach-bottom:0px}.app-shell.with-coach{--coach-bottom:var(--coach-h)}.persona-bar,.role-nav{display:none}.mobile-top-bar{z-index:35;height:var(--topbar-h);padding:6px var(--sp-3);display:flex;position:sticky;top:0}.demo-banner{top:var(--topbar-h);z-index:34;height:var(--banner-h);padding:0 var(--sp-3);position:sticky}.demo-banner-action,.demo-banner-text{min-height:40px}.coach-strip{left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:33;padding:0 var(--sp-3);border-bottom:none;border-top:1px solid var(--border);position:fixed}.coach-show,.coach-next{min-height:40px}.coach-show{padding:8px 12px}.coach-next{padding:8px 10px}.coach-label{font-size:var(--fs-12)}.coach-close{width:32px}.snackbar{bottom:calc(var(--tabbar-h) + var(--coach-bottom) + env(safe-area-inset-bottom) + var(--sp-2))}.bottom-tabs{display:flex}.app-main{padding:var(--sp-4) var(--sp-3) calc(var(--tabbar-h) + var(--coach-bottom) + env(safe-area-inset-bottom) + var(--sp-6))}.primary-button,.secondary-button,.copy-button,.back-link,.tab,.role-nav-tab,.day-switcher-tab,.icon-button{min-height:44px}.primary-button,.secondary-button{font-size:var(--fs-16);padding:12px 18px}.link-button{min-height:44px;font-size:var(--fs-14);align-items:center;display:inline-flex}.icon-button{justify-content:center;align-items:center;min-width:44px;display:flex}.confirm-button,.report-cta{min-height:52px;font-size:var(--fs-16)}.teacher-home,.report-flow,.templates-view,.handover-sheet-view,.import-view{max-width:100%}.view-title,.dashboard-view h1,.absences-view h1,.documents-view h1,.report-flow h1,.templates-view h1,.about-view h1,.import-view h1{font-size:var(--fs-18)}.dashboard-section h2,.documents-section h2,.about-section h2{font-size:var(--fs-16)}.dashboard-date-heading{top:var(--sticky-top);z-index:5;background:var(--bg);padding:var(--sp-2) 0;margin:0 calc(-1 * var(--sp-3));padding-left:var(--sp-3);padding-right:var(--sp-3);font-size:var(--fs-14);position:sticky}.need-row{gap:var(--sp-2);padding:var(--sp-3)}.secondary-button.accent.need-action{min-height:40px;font-size:var(--fs-14)}.link-button.need-action{text-align:right;white-space:normal;justify-content:flex-end;max-width:40%}.metrics-strip{gap:var(--sp-4)}.metric-cell{flex:30%}.metric-value{font-size:var(--fs-16)}.metric-label{font-size:11px}.event-feed{padding:var(--sp-3)}.event-row{flex-direction:column;gap:2px}.event-time,.event-text{min-width:0}.deputy-absence-card{padding:var(--sp-3)}.candidate-name{font-size:var(--fs-16)}.month-picker,.month-picker input[type=month]{width:100%;max-width:100%}.documents-section-header.sticky-actions{top:var(--sticky-top);z-index:4;background:var(--bg-elevated);padding-top:var(--sp-2);padding-bottom:var(--sp-2);margin-top:calc(-1 * var(--sp-2));position:sticky}.order-draft-actions,.order-draft-actions button{flex:1}.order-draft-text{padding:var(--sp-3);max-height:60svh;font-size:var(--fs-14);overflow-y:auto}.csv-button{text-align:center;align-self:stretch;width:100%}.documents-section,.import-section{padding:var(--sp-3)}.entity-select,.mode-tabs{width:100%}.entity-select{min-width:0;min-height:44px}.tab{min-width:0;font-size:var(--fs-14);padding:var(--sp-2) var(--sp-1);flex:1}.handover-sheet{padding:var(--sp-4)}.handover-sheet-row{flex-direction:column;gap:2px}.handover-sheet-label{min-width:0;font-size:var(--fs-12)}.request-card-actions{gap:var(--sp-2);flex-direction:row}.request-card-actions .primary-button,.request-card-actions .secondary-button{min-width:0;font-size:var(--fs-14);flex:1 1 0;padding:12px 8px}.hud-overlay,.onboarding-overlay{padding:var(--sp-4)}.onboarding-card{max-width:100%;padding:var(--sp-6) var(--sp-4)}.onboarding-card.top-anchored{margin:calc(var(--sticky-top) + var(--sp-2)) 0 auto 0}.onboarding-arrow{right:var(--sp-6)}.onboarding-card-body{font-size:var(--fs-16);color:var(--text)}.hud-card p{font-size:var(--fs-16)}.prompt-text{max-height:240px;font-size:11px}.import-textarea{font-size:var(--fs-12)}}@media screen and (width<=639px){.journal-cards{display:flex}.journal-table-wrap,.journal-summary{display:none}}@media screen and (width<=399px){.metric-cell{flex:45%}}@media screen and (width>=768px){.sheet-overlay{align-items:center}.sheet{border-radius:var(--radius-lg);max-height:80svh}.sheet-grip{display:none}}@media print{.mobile-top-bar,.demo-banner,.bottom-tabs{display:none!important}}
