:root{--bg: #f3f8f8;--surface: #ffffff;--surface-2: #eaf5f6;--text: #29373b;--muted: #5d6e73;--line: #d5e4e6;--brand-navy: #00264a;--brand-cyan: #08b5d5;--brand-teal: #08b5d5;--brand-green: #7ac943;--primary: #006f83;--primary-strong: #004d5b;--accent: #7ac943;--success: #397b20;--danger: #a73535;--shadow: 0 10px 30px rgba(16, 35, 64, .08);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.absence-page{display:grid;gap:18px;min-width:0}.absence-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(135deg,#fff,#eefafb 62%,#f3faec);border-top:5px solid var(--brand-cyan)}.absence-hero h2{margin:4px 0 7px;font-size:clamp(1.5rem,3vw,2.25rem)}.absence-hero p{margin:0;max-width:680px;color:var(--muted)}.absence-kpis{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));gap:9px;flex:0 0 auto}.absence-kpis>div{min-width:92px;display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:2px 8px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#ffffffe6}.absence-kpis span{width:26px;height:26px;display:grid;place-items:center;grid-row:span 2;border-radius:8px;background:var(--primary);color:#fff;font-weight:900}.absence-kpis>div:first-child span{background:var(--brand-cyan);color:#073d47}.absence-kpis>div:last-child span{background:var(--brand-green);color:#173f08}.absence-kpis strong{font-size:1.25rem;color:var(--text)}.absence-kpis small{color:var(--muted)}.absence-filter-panel{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr)) auto;align-items:end;gap:11px;padding:16px 18px;border-radius:18px}.absence-filter-panel label{display:grid;gap:5px;color:var(--muted);font-size:.82rem;font-weight:800}.absence-filter-panel input,.absence-filter-panel select{min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text)}.absence-filter-panel .button{min-height:42px;white-space:nowrap}.absence-workspace{display:grid;gap:16px}.absence-workspace-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.absence-workspace-header h3,.absence-workspace-header p{margin:0}.absence-workspace-header p{margin-top:4px;color:var(--muted)}.absence-view-tabs{flex:0 0 auto}.absence-export-button{flex:0 0 auto;white-space:nowrap}.absence-legend{display:flex;flex-wrap:wrap;gap:7px;padding:10px 12px;border-radius:12px;background:var(--surface-2)}.absence-legend span{display:inline-flex;align-items:center;gap:6px;padding-right:8px;color:var(--muted);font-size:.8rem}.absence-legend strong{min-width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:#fff;color:var(--primary);font-size:1rem}.absence-table-scroll{width:100%;overflow:auto;border:1px solid var(--line);border-radius:15px;overscroll-behavior-inline:contain}.absence-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;background:#fff;font-size:.86rem}.absence-matrix caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.absence-matrix th,.absence-matrix td{min-width:62px;height:52px;padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.absence-matrix thead th{position:sticky;top:0;z-index:3;background:#f1f8f9;color:var(--primary)}.absence-matrix thead th span,.absence-matrix thead th small{display:block}.absence-matrix thead th small{margin-top:2px;color:var(--muted);font-weight:500}.absence-matrix tr:last-child th,.absence-matrix tr:last-child td{border-bottom:0}.absence-name-column{position:sticky!important;left:0;z-index:4!important;min-width:210px!important;max-width:210px;padding-left:12px!important;background:#fff!important;text-align:left!important;box-shadow:1px 0 0 var(--line)}.absence-matrix thead .absence-name-column{z-index:6!important;background:#f1f8f9!important}.absence-total-column{position:sticky!important;z-index:4;min-width:64px!important;font-weight:900;background:#f7fbfb;box-shadow:-1px 0 0 var(--line)}.absence-matrix thead .absence-total-column{z-index:7;background:#e4f2f4}.absence-total-column.total-g{right:0;color:var(--primary-strong);background:#eef8e8}.absence-total-column.total-u{right:64px;color:var(--danger)}.absence-total-column.total-e{right:128px;color:var(--primary)}.absence-symbol-stack{display:inline-flex;align-items:center;justify-content:center;gap:3px}.absence-symbol{min-width:29px;min-height:34px;display:grid;place-items:center;align-content:center;gap:0;border-radius:9px;background:var(--surface-2);color:var(--muted);text-decoration:none}.absence-symbol small{line-height:1;font-size:.65rem;font-weight:900}.absence-symbol strong{line-height:1;font-size:1.25rem}.absence-symbol.symbol-present{background:#e9f7df;color:#2f6d17}.absence-symbol.symbol-\|{background:#fff0ef;color:#a22f28}.absence-symbol.symbol-\+{background:#fff6db;color:#8a6300}.absence-symbol.symbol-E{background:#ddf6fb;color:#00657a}.absence-symbol.symbol-A{background:#e9f7df;color:#376f1e}.absence-symbol.empty{background:transparent}.absence-hours-view{display:grid;gap:12px}.absence-hour-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}.absence-toggle{display:flex;align-items:center;gap:8px;width:fit-content;color:var(--muted);font-weight:700}.absence-toggle input{width:18px;height:18px}.absence-review-panel{display:grid;gap:12px;border-left:5px solid var(--brand-cyan)}.absence-review-list{display:grid;gap:9px}.absence-review-card{display:grid;grid-template-columns:minmax(210px,1fr) auto auto auto;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.absence-review-card strong,.absence-review-card small{display:block;overflow-wrap:anywhere}.absence-review-card small{margin-top:3px;color:var(--muted);font-weight:800}.absence-review-documents{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.absence-hour-list{display:grid;gap:9px}.absence-hour-card{display:grid;grid-template-columns:52px minmax(190px,1fr) minmax(190px,auto);align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}.absence-hour-card>div{min-width:0}.absence-hour-card strong,.absence-hour-card span,.absence-hour-card small{display:block;overflow-wrap:anywhere}.absence-hour-card span,.absence-hour-card small{margin-top:3px;color:var(--muted)}.absence-hour-evidence{display:grid;justify-items:end;gap:7px;text-align:right}.absence-hour-evidence>span{font-weight:800;color:var(--text)}.absence-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.absence-summary-card{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-left:4px solid var(--brand-cyan);border-radius:15px;background:#fff}.absence-summary-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.absence-summary-card-header strong{min-width:0;overflow-wrap:anywhere}.absence-summary-card-header .button{flex:0 0 auto}.absence-summary-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.absence-summary-metrics span{display:grid;gap:2px;padding:8px;border-radius:10px;background:var(--surface-2);color:var(--muted);text-align:center;font-size:.72rem}.absence-summary-card b{color:var(--text);font-size:1.05rem}.absence-decision-dialog{width:min(520px,100%);display:grid;gap:15px;padding:22px;border-radius:20px;background:#fff;box-shadow:0 24px 70px #0000004d}.absence-decision-dialog h3{margin:4px 0}.absence-decision-dialog p{margin:0;color:var(--muted)}.absence-decision-dialog label{display:grid;gap:6px;color:var(--muted);font-weight:800}.absence-decision-dialog input,.absence-decision-dialog select{min-height:44px;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#fff}.absence-export-dialog{width:min(560px,100%);display:grid;gap:15px;padding:22px;border-radius:20px;background:#fff;box-shadow:0 24px 70px #0000004d}.absence-export-dialog h3{margin:4px 0}.absence-export-dialog label{display:grid;gap:6px;color:var(--muted);font-weight:800}.absence-export-dialog input,.absence-export-dialog select{min-height:44px;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#fff}.absence-export-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.absence-export-progress{display:grid;grid-template-columns:34px minmax(0,1fr);gap:2px 11px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);color:var(--muted)}.absence-export-progress span{grid-row:span 2;width:28px;height:28px;border:4px solid rgba(0,111,131,.18);border-top-color:var(--primary);border-radius:50%;animation:absence-spin .85s linear infinite}.absence-export-progress strong{color:var(--primary-strong)}.absence-export-progress small{overflow-wrap:anywhere}.absence-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.absence-evidence-chip{min-width:28px;height:28px;display:inline-grid;place-items:center;border-radius:8px;background:#ddf6fb;color:var(--primary);font-weight:900}@keyframes absence-spin{to{transform:rotate(360deg)}}@media(max-width:1280px){.absence-filter-panel{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:820px){.absence-hero{display:grid}.absence-kpis{width:100%}.absence-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.absence-workspace-header{display:grid}.absence-view-tabs{width:100%}.absence-review-card{grid-template-columns:1fr;align-items:stretch}.absence-review-documents{justify-content:flex-start}.absence-hour-card{grid-template-columns:46px minmax(0,1fr);align-items:start}.absence-hour-evidence{grid-column:1 / -1;justify-items:start;text-align:left}.absence-name-column{min-width:165px!important;max-width:165px}.substitution-planner-grid,.substitution-reserve-row,.substitution-assignment-form,.substitution-booking-card{grid-template-columns:1fr}.substitution-quick-actions{width:100%}}@media(max-width:560px){.brand-block{grid-template-columns:136px minmax(0,1fr)}.brand-logo{width:136px;max-height:80px}.brand-app-name{font-size:.72rem}.absence-kpis{grid-template-columns:repeat(3,1fr);gap:5px}.absence-kpis>div{min-width:0;grid-template-columns:1fr;justify-items:center;padding:8px 4px;text-align:center}.absence-kpis span{grid-row:auto;width:23px;height:23px}.absence-kpis strong{font-size:1.05rem}.absence-kpis small{font-size:.66rem}.absence-filter-panel{grid-template-columns:1fr}.absence-view-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.absence-summary-card-header{display:grid}.absence-summary-metrics{grid-template-columns:repeat(2,1fr)}.absence-dialog-actions{display:grid;grid-template-columns:1fr}.absence-export-dates{grid-template-columns:1fr}.substitution-report-list{display:grid;overflow-x:visible}.substitution-report-chip{min-width:0;max-width:none}.substitution-mini-row{grid-template-columns:34px minmax(0,1fr)}.substitution-mini-row em{grid-column:2;grid-row:auto;width:fit-content}.substitution-target-preview{grid-template-columns:1fr}.substitution-target-preview .button{grid-column:auto;grid-row:auto}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--bg);color:var(--text);overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select{font:inherit;min-width:0}input,select,textarea{width:100%;max-width:100%}.login-page{min-height:100vh;display:grid;place-items:center;padding:clamp(20px,5vw,56px);background:linear-gradient(145deg,#eaf5f6eb,#fffffffa 44%,#f1f8f9f2)}.login-shell{width:min(1080px,100%);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.78fr);gap:clamp(20px,4vw,48px);align-items:stretch}.login-brand-panel,.login-card{min-width:0;border:1px solid rgba(213,228,230,.9);border-radius:8px;background:#fffffff0;box-shadow:0 22px 70px #1023401f}.login-brand-panel{display:grid;align-content:space-between;gap:30px;padding:clamp(24px,4vw,42px)}.login-product-mark{display:grid;align-items:center;justify-items:start;min-height:190px;border-bottom:1px solid var(--line);padding-bottom:22px}.login-product-mark img{width:min(300px,100%);max-height:280px;object-fit:contain;object-position:left center;border-radius:8px;background:var(--brand-navy);box-shadow:0 18px 46px #00264a33}.login-product-copy{align-self:center}.login-product-copy span,.login-form-head span{display:inline-block;color:var(--primary);font-size:.82rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.login-product-copy h1,.login-form-head h2{margin:8px 0 0;color:#082c55;line-height:1.05}.login-product-copy h1{font-size:clamp(2.25rem,5vw,4rem)}.login-product-copy p{margin:14px 0 0;max-width:460px;color:var(--muted);font-size:1.02rem;line-height:1.55}.login-school-badge{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:center;padding-top:22px;border-top:1px solid var(--line)}.login-school-badge img{width:92px;height:60px;object-fit:contain}.login-school-badge strong,.login-school-badge span{display:block;overflow-wrap:anywhere}.login-school-badge strong{color:var(--text);font-size:1rem}.login-school-badge span{margin-top:3px;color:var(--muted);font-size:.88rem;font-weight:800}.login-card{align-self:center;display:grid;gap:22px;padding:clamp(24px,4vw,38px)}.login-form-head h2{font-size:clamp(1.8rem,3vw,2.35rem)}.login-form{display:grid;gap:16px}.login-form label{display:grid;gap:7px;color:var(--muted);font-weight:900}.login-form input{min-height:48px;border:1px solid var(--line);border-radius:8px;background:#fbfdfe;color:var(--text);padding:11px 12px}.login-form input:focus{outline:3px solid rgba(18,199,182,.18);border-color:var(--brand-cyan);background:#fff}.login-form .button{min-height:48px;border-radius:8px;margin-top:4px}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);overflow-x:hidden}.sidebar{background:linear-gradient(180deg,#007d91 0%,var(--primary-strong) 100%);color:#fff;padding:24px 18px;min-width:0}.brand-block{display:grid;gap:9px;margin-bottom:24px;min-width:0}.brand-logo{width:100%;height:auto;max-height:126px;object-fit:contain;border-radius:14px;background:#fff;padding:8px}.brand-app-name{padding-left:3px;color:#ffffffe6;font-size:.8rem;font-weight:800;letter-spacing:.035em}.sidebar-nav{display:grid;gap:8px}.nav-item{padding:12px 14px;border-radius:14px;color:#ffffffeb;display:grid;gap:2px}.nav-item small{opacity:.72;font-size:.74rem}.nav-item:hover,.nav-item.active{background:#ffffff24}.nav-item.disabled{opacity:.72}.sidebar-legal{margin-top:24px;padding:14px;border-radius:16px;background:#ffffff1a;color:#ffffffe0;font-size:.78rem}.sidebar-legal p{margin:6px 0}.legal-title{font-weight:800;margin-bottom:8px}.tech-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tech-list span{background:#ffffff1f;border-radius:999px;padding:4px 7px}.main-area{padding:26px;min-width:0;overflow-x:hidden}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;min-width:0}.topbar h1{margin:4px 0 0;font-size:1.9rem;line-height:1.15}.eyebrow{color:var(--muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}.status-pill{background:#fff;color:var(--primary);border:1px solid var(--line);padding:8px 12px;border-radius:999px;font-weight:700;white-space:nowrap}.status-pill.danger{color:var(--danger);border-color:#f0c9c9;background:#fff8f8}.status-pill.warning{color:#8a6300;border-color:#ead58e;background:#fff9e6}.status-pill.success{color:var(--success);border-color:#b8ddb0;background:#f1fbec}.content-area{display:grid;gap:20px;min-width:0}.page-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.72fr);gap:20px;align-items:start;min-width:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:22px;min-width:0;max-width:100%;overflow:hidden}.panel-span-2{min-height:400px}.form-panel{position:sticky;top:20px;min-width:0;max-width:100%;overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:start;gap:14px;margin-bottom:18px;min-width:0}.panel-header>*{min-width:0}.panel-header h2{margin:0 0 6px}.panel-header p{margin:0;color:var(--muted)}.form-panel-header{grid-template-columns:minmax(0,1fr) auto;align-items:start}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end;min-width:0}.search-input{min-width:220px;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:10px 12px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:14px;padding:10px 14px;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .12s ease,opacity .12s ease,background .12s ease;max-width:100%}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button.primary{background:var(--primary);color:#fff}.button.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}.button.danger{background:#fff1f1;color:var(--danger);border:1px solid #f0c9c9}.compact-button{padding:8px 10px;font-size:.86rem;white-space:nowrap}.segmented-control{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:3px;min-width:0}.segmented-control button{border:0;background:transparent;padding:8px 12px;border-radius:11px;cursor:pointer;color:var(--muted);font-weight:700}.segmented-control button.active{background:#fff;color:var(--primary);box-shadow:0 4px 12px #10234014}.master-data-tabs{width:fit-content;flex-wrap:wrap}.multi-select{min-height:130px}.student-toolbar{display:grid;grid-template-columns:minmax(180px,260px) minmax(260px,1fr) auto;gap:12px;align-items:end}.student-toolbar label{display:grid;gap:6px;font-weight:700}.student-toolbar input,.student-toolbar select{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.student-split-grid{grid-template-columns:minmax(330px,460px) minmax(0,1fr)}.group-roster-panel summary{cursor:pointer;color:var(--primary);font-weight:900}.group-roster-panel[open] summary{margin-bottom:14px}.group-roster-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:18px;align-items:start}.student-checkbox-list{display:grid;gap:7px;max-height:240px;overflow:auto;padding:4px;border:1px solid var(--line);border-radius:12px;background:#fbfdfe}.student-checkbox-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 9px;border-radius:10px;background:#fff;color:var(--text);font-weight:800}.student-checkbox-row input{width:auto;min-height:auto;padding:0;border:0}.compact-date-control{display:grid;gap:4px;color:var(--muted);font-weight:800}.compact-date-control input{max-width:170px;border:1px solid var(--line);border-radius:11px;padding:8px 10px;background:#fff}.group-roster-list .admin-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.rotation-preview{display:grid;gap:8px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdfe}.rotation-preview p,.rotation-preview small{margin:0;color:var(--muted);font-weight:800;overflow-wrap:anywhere}.student-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.student-row-main{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;align-items:center}.student-row-main strong,.student-row-main small{display:block;overflow-wrap:anywhere}.student-row-main small{margin-top:3px;color:var(--muted)}.student-photo-wrap{width:54px;height:66px;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:var(--surface-2);color:var(--primary);font-weight:800}.student-photo-wrap img{width:100%;height:100%;object-fit:cover}.student-photo-upload{cursor:pointer;position:relative;overflow:hidden}.student-photo-upload input{display:none}.student-photo-upload.disabled{opacity:.65;pointer-events:none}.visually-hidden-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-crop-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:#13262d85}.photo-crop-dialog{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;display:grid;gap:16px;padding:20px;border-radius:16px;background:var(--surface);box-shadow:0 24px 80px #00000052}.photo-crop-dialog header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.photo-crop-dialog h3,.photo-crop-dialog p{margin:0}.photo-crop-dialog p{margin-top:4px;color:var(--muted);font-size:.9rem}.photo-crop-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:center}.photo-crop-frame{width:300px;aspect-ratio:1;display:grid;place-items:center;padding:9px;border:2px solid var(--primary);border-radius:12px;background:#f8fbfd}.photo-crop-frame canvas{width:280px;height:280px;display:block;background:#fff}.photo-crop-controls{display:grid;gap:14px}.photo-crop-controls label,.teacher-photo-crop-field{display:grid;gap:7px;color:var(--muted);font-weight:800;font-size:.9rem}.photo-crop-controls input{width:100%}.teacher-photo-crop-field small{color:var(--muted);font-weight:700}.form-help-text{margin:0;color:var(--muted);font-size:.9rem}.settings-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.settings-module-grid label{min-width:0}.settings-module-grid select{width:100%}.teacher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:16px;min-width:0}.teacher-card{background:linear-gradient(180deg,#fff,#fbfcfe);border:1px solid var(--line);border-radius:20px;overflow:hidden;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;min-width:0}.teacher-card:hover,.teacher-row:hover{transform:translateY(-1px);border-color:#006f8359;box-shadow:0 10px 26px #10234014}.teacher-card.selected,.teacher-row.selected{border-color:var(--primary);box-shadow:0 0 0 3px #006f831a}.teacher-image-wrap{background:linear-gradient(180deg,#f7f9fc 0%,var(--surface-2) 100%);height:118px;display:grid;place-items:center;overflow:hidden;padding:12px;border-bottom:1px solid var(--line)}.teacher-image{width:100%;height:100%;max-width:128px;object-fit:contain;object-position:center center;background:transparent;border-radius:10px;margin:0 auto}.teacher-image.placeholder{display:grid;place-items:center;color:var(--muted);height:100%;width:100%;max-width:none}.teacher-body{padding:14px;min-width:0}.teacher-body h3{margin:0 0 8px;font-size:1rem;line-height:1.25;overflow-wrap:anywhere}.meta-line{color:var(--muted);margin-bottom:6px;line-height:1.35;overflow-wrap:anywhere}.meta-line.strong{color:var(--text);font-weight:700}.detail-text{color:var(--muted);margin-top:10px;line-height:1.35;font-size:.92rem;overflow-wrap:anywhere}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;min-width:0}.chip{background:#006f8317;color:var(--primary);padding:6px 10px;border-radius:999px;font-size:.86rem;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis}.chip.muted{background:#f2a90026;color:#7d5a00}.chip.neutral{background:var(--surface-2);color:var(--muted)}.chip.success{background:#e9f7df;color:var(--success)}.chip.warning{background:#fff8e8;color:#7a4a00}.chip.danger{background:#fff1f1;color:var(--danger)}.teacher-list{display:grid;gap:10px;min-width:0}.teacher-row{display:grid;grid-template-columns:68px minmax(0,1fr) minmax(160px,.9fr);gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;min-width:0}.teacher-thumb-wrap{width:68px;height:68px;border-radius:16px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;padding:4px}.teacher-thumb{width:100%;height:100%;object-fit:contain;object-position:center center;background:var(--surface-2)}.teacher-thumb.placeholder{display:grid;place-items:center;color:var(--muted);font-weight:800}.teacher-row-main,.teacher-row-details{min-width:0}.teacher-row-main h3{margin:0 0 6px;font-size:1rem;overflow-wrap:anywhere}.teacher-row-details{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.teacher-readonly-panel{display:grid;gap:16px}.teacher-readonly-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.teacher-image-wrap.readonly{min-height:auto;aspect-ratio:1}.teacher-readonly-main{display:grid;gap:4px;min-width:0}.teacher-readonly-main strong{font-size:1.05rem;color:var(--text);overflow-wrap:anywhere}.teacher-readonly-main span{color:var(--muted);overflow-wrap:anywhere}.teacher-readonly-details{display:grid;gap:10px;margin:0}.teacher-readonly-details div{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.teacher-readonly-details dt{color:var(--muted);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.teacher-readonly-details dd{margin:0;color:var(--text);overflow-wrap:anywhere}.teacher-form{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;max-width:100%;overflow-x:hidden}.teacher-form label{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;font-weight:600;min-width:0;max-width:100%}.teacher-form input,.teacher-form select,.teacher-form textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;min-width:0;width:100%;max-width:100%}.teacher-form input[type=file]{overflow:hidden;text-overflow:ellipsis;padding:9px;font-size:.88rem}.teacher-form .checkbox-label{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.teacher-form .checkbox-label input{width:18px;height:18px;padding:0}.teacher-subject-transfer-field{display:grid;gap:8px;min-width:0}.teacher-field-label{font-weight:700;color:var(--text)}.teacher-subject-transfer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;min-width:0}.teacher-subject-column{border:1px solid var(--line);border-radius:8px;background:#fff;min-width:0;overflow:hidden}.teacher-subject-column-header{display:grid;gap:8px;padding:10px;border-bottom:1px solid var(--line);background:var(--surface-2);min-width:0}.teacher-subject-column-header strong{font-size:.9rem}.teacher-subject-column-header span{color:var(--muted);font-weight:800}.teacher-subject-list{display:grid;gap:6px;align-content:start;max-height:250px;overflow:auto;padding:8px;min-height:128px}.teacher-subject-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:8px 10px;font-weight:700;text-align:left;cursor:pointer;min-width:0}.teacher-subject-option:hover,.teacher-subject-option:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px #006f831f;outline:none}.teacher-subject-option span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-subject-option span:last-child{color:var(--primary);font-size:1rem}.teacher-subject-option.selected{background:#006f8312}.teacher-subject-option.selected span:last-child{color:var(--danger)}.teacher-subject-empty{color:var(--muted);background:var(--surface-2);border-radius:8px;padding:10px;font-size:.9rem}.form-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:4px;min-width:0}.form-actions .button{width:100%;min-width:0}.current-image-note{color:var(--muted);background:var(--surface-2);border-radius:12px;padding:10px 12px;line-height:1.35;overflow-wrap:anywhere}.teacher-imported-subjects{display:grid;gap:5px;color:var(--muted);background:var(--surface-2);border-radius:12px;padding:10px 12px;line-height:1.35;overflow-wrap:anywhere}.teacher-imported-subjects strong{color:var(--text)}.alert,.empty-state{border-radius:14px;padding:14px;background:var(--surface-2);color:var(--muted);margin-bottom:14px;overflow-wrap:anywhere}.empty-state.compact{margin:0;padding:10px 12px;border-radius:8px}.alert{background:#fff4f4;color:#8b2a2a}.alert.success{background:#ecfff5;color:var(--success)}.app-footer{margin-top:24px;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:#fff;color:var(--muted);display:grid;gap:10px;font-size:.86rem}.app-footer strong{color:var(--text);display:block;margin-bottom:4px}.app-footer summary{cursor:pointer;font-weight:700;color:var(--primary)}.legal-details{display:grid;gap:6px;margin-top:10px;line-height:1.45}.legal-details p{margin:0}@media(max-width:1180px){.page-grid{grid-template-columns:1fr}.form-panel{position:static}}@media(max-width:980px){.login-page{align-items:start;padding:18px}.login-shell{grid-template-columns:1fr;gap:14px}.login-brand-panel,.login-card{padding:22px}.login-product-mark{min-height:auto;padding-bottom:16px}.login-product-mark img{max-height:128px}.login-school-badge{grid-template-columns:72px minmax(0,1fr)}.login-school-badge img{width:72px;height:52px}.app-shell{grid-template-columns:1fr}.sidebar{padding:16px;display:grid;gap:14px}.brand-block{margin-bottom:0}.sidebar-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.nav-item{white-space:nowrap;min-width:145px}.main-area{padding:18px}.topbar{align-items:flex-start;display:grid}.topbar h1{font-size:1.55rem}.status-pill{white-space:normal;display:inline-block}.panel-header{display:grid}.toolbar{justify-content:stretch}.search-input{min-width:0;width:100%}}@media(max-width:700px){.main-area{padding:12px}.panel{border-radius:18px;padding:14px}.teacher-grid{grid-template-columns:1fr}.teacher-image-wrap{height:122px;padding:12px}.teacher-image{max-width:112px}.teacher-row{grid-template-columns:56px minmax(0,1fr);align-items:start}.teacher-thumb-wrap{width:56px;height:56px;border-radius:14px}.teacher-row-details{grid-column:2;justify-content:flex-start}.segmented-control{width:100%}.segmented-control button{flex:1}.button{width:100%;text-align:center}.form-actions .button{width:100%}}.nav-tree-group{display:grid;gap:6px;margin-bottom:8px}.nav-tree-toggle{width:100%;border:0;background:transparent;color:#ffffffb8;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;border-radius:10px;cursor:pointer;font:inherit;font-size:.76rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.nav-tree-toggle:hover{background:#ffffff14;color:#fff}.nav-tree-toggle.active,.nav-tree-single.active{background:#ffffff29;color:#fff}.nav-tree-toggle:before{content:">";display:inline-block;transition:transform .14s ease}.nav-tree-single:before{display:none}.nav-tree-group.open .nav-tree-toggle:before{transform:rotate(90deg)}.nav-tree-toggle span{flex:1;text-align:left}.nav-tree-toggle small{background:#ffffff1f;border-radius:999px;padding:2px 7px;font-size:.68rem;letter-spacing:0}.nav-tree-items{display:grid;gap:6px;padding-left:8px;border-left:1px solid rgba(255,255,255,.12)}.nav-subgroup{display:grid;gap:6px;margin-top:4px}.nav-subgroup-title{padding:5px 9px 2px;color:#ffffff9e;font-size:.7rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.planner-page{display:grid;gap:18px;min-width:0}.planner-hero{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.planner-hero h2,.planner-hero p{margin:0}.planner-hero h2{margin-bottom:6px}.planner-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.planner-grid{display:grid;grid-template-columns:280px minmax(0,1fr) 340px;gap:18px;align-items:start;min-width:0}.planner-filter-panel,.planner-edit-panel,.planner-stammdaten-panel{display:grid;gap:14px}.planner-filter-panel label,.planner-form label{display:grid;gap:6px;font-weight:650;min-width:0}.planner-filter-panel input,.planner-form input,.planner-form select,.planner-form textarea{width:100%;max-width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.full-width{width:100%}.full-width button{flex:1}.filter-block h4,.planner-main-panel h3,.planner-edit-panel h3,.planner-stammdaten-panel h3{margin:0}.filter-block.compact{background:var(--surface-2);border-radius:14px;padding:12px}.check-row{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;font-weight:500!important;color:var(--text)}.check-row small{color:var(--muted)}.muted-text{color:var(--muted);margin:0}.planner-main-panel{min-width:0}.planner-section-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:16px}.planner-section-header h3,.planner-section-header p{margin:0}.planner-section-header p{color:var(--muted);margin-top:4px}.month-groups{display:grid;gap:18px}.month-group{display:grid;gap:10px}.month-group h4{margin:0;color:var(--primary);border-bottom:1px solid var(--line);padding-bottom:8px}.planner-event-list{display:grid;gap:10px}.planner-event-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:12px;border:1px solid var(--line);border-radius:18px;background:#fff;cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.planner-event-card:hover{transform:translateY(-1px);border-color:#006f8359;box-shadow:0 10px 26px #10234014}.planner-event-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px #006f831a}.event-date-block{display:grid;align-content:start;gap:6px;color:var(--primary)}.event-date-block span{color:var(--muted);font-size:.86rem}.event-content-block{min-width:0}.event-content-block h4,.event-content-block p{margin:0}.event-content-block h4{margin-bottom:6px;overflow-wrap:anywhere}.event-content-block p{color:var(--muted);line-height:1.35;overflow-wrap:anywhere}.form-two-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;min-width:0}.inline-form{padding:12px;background:var(--surface-2);border-radius:16px}@media(max-width:1280px){.planner-grid{grid-template-columns:260px minmax(0,1fr)}.planner-edit-panel,.planner-stammdaten-panel{grid-column:1 / -1}}@media(max-width:900px){.planner-hero,.planner-section-header{display:grid}.planner-grid,.planner-event-card,.form-two-cols{grid-template-columns:1fr}.planner-hero-actions .button,.planner-section-header .button{width:100%}}.nav-button{width:100%;border:0;text-align:left;background:transparent;font:inherit;cursor:pointer}.sidebar-roadmap{margin-top:18px;padding:14px;border-radius:16px;background:#ffffff14;color:#ffffffe0;font-size:.78rem}.roadmap-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08)}.roadmap-row:last-child{border-bottom:0}.roadmap-row small{opacity:.72}.planner-v2-page{display:grid;gap:18px;min-width:0}.planner-v2-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.planner-v2-hero h2,.planner-v2-hero p{margin:0}.planner-v2-hero h2{margin-bottom:6px}.planner-v2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;min-width:0}.planner-v2-column{display:grid;gap:14px;min-width:0}.wide-column,.full-column{grid-column:1 / -1}.planner-v2-column h3,.planner-v2-column p{margin:0}.muted-text{color:var(--muted);line-height:1.4}.checkbox-label{display:inline-grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;width:fit-content;max-width:100%;margin-top:10px;font-weight:700;color:var(--text)}.checkbox-label input{width:18px;height:18px;margin:0}.planner-form{display:grid;gap:12px;min-width:0}.planner-form label,.plain-label{display:grid;gap:6px;font-weight:650;min-width:0}.planner-form input,.planner-form select,.planner-form textarea,.plain-label select{width:100%;max-width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.planner-form input[type=color]{height:42px;padding:4px}.form-two-cols,.form-three-cols,.form-four-cols{display:grid;gap:10px;min-width:0}.form-two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.form-three-cols{grid-template-columns:repeat(3,minmax(0,1fr))}.form-four-cols{grid-template-columns:repeat(4,minmax(0,1fr))}.filter-block{display:grid;gap:8px;min-width:0}.filter-block.compact,.confirm-box{background:var(--surface-2);border-radius:16px;padding:12px;display:grid;gap:10px}.filter-block h4{margin:0}.check-row{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) minmax(0,1.3fr);align-items:center;gap:8px;font-weight:500!important;color:var(--text)}.check-row input{width:auto}.check-row small{color:var(--muted);overflow-wrap:anywhere}.simple-check{grid-template-columns:auto minmax(0,1fr)!important}.color-dot{width:12px;height:12px;border-radius:999px;display:inline-block;box-shadow:inset 0 0 0 1px #00000014}.planner-v2-list{display:grid;gap:10px;min-width:0}.compact-list{max-height:360px;overflow:auto;padding-right:2px}.mini-card,.preview-card,.calendar-v2-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px;min-width:0}.mini-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 8px;align-items:center}.mini-card small{grid-column:2;color:var(--muted)}.preview-list{max-height:430px;overflow:auto}.preview-card{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.preview-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px #006f831a}.preview-card div{display:grid;gap:4px;min-width:0}.preview-card span,.preview-card small{color:var(--muted)}.preview-card.warning{background:#fff8eb;border-color:#f2d19b}.preview-select-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:flex-start;min-width:0;font-weight:650}.preview-select-row input{width:auto;margin-top:3px}.preview-select-row span,.preview-meta{display:grid;gap:5px;min-width:0}.transfer-mode-select{min-width:min(100%,320px)}.calendar-list{display:grid;gap:10px}.calendar-page{gap:18px}.calendar-control-panel{display:grid;gap:14px}.calendar-filter-grid{display:grid;grid-template-columns:minmax(170px,220px) minmax(280px,1fr) minmax(240px,1fr) minmax(210px,280px);gap:14px;align-items:stretch}.calendar-range-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.calendar-range-box label{display:grid;gap:5px;font-weight:650;min-width:0}.calendar-range-box input,.calendar-range-box select{width:100%;border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff}.calendar-area-list{display:grid;gap:8px;max-height:180px;overflow:auto;padding-right:2px}.all-areas-row{border-bottom:1px solid var(--line);padding-bottom:8px}.all-areas-dot{background:linear-gradient(135deg,var(--accent),var(--primary))}.calendar-export-box{display:grid;align-content:center;gap:8px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff}.calendar-export-box span{color:var(--muted)}.calendar-v2-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:14px}.calendar-v2-card.warning{border-color:#f2d19b;background:#fffaf0}.calendar-v2-card.compact{grid-template-columns:1fr;gap:8px;padding:10px}.calendar-datebox{display:grid;align-content:start;gap:5px;color:var(--primary)}.calendar-datebox span,.calendar-v2-card p{color:var(--muted)}.calendar-v2-card h4,.calendar-v2-card p{margin:0 0 6px;overflow-wrap:anywhere}.calendar-datebox small{color:var(--muted)}.calendar-view-group{display:grid;gap:10px}.calendar-view-group>h4{margin:8px 0 0;padding:8px 10px;border-radius:12px;background:var(--surface-2);color:var(--primary)}.calendar-view-group-list{display:grid;gap:10px}.calendar-raster-view{display:grid;gap:16px}.calendar-raster-view.school-year{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}.calendar-month-grid{display:grid;gap:8px;min-width:0}.calendar-month-grid-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;background:var(--surface-2);color:var(--primary)}.calendar-month-grid-header h4{margin:0}.calendar-month-grid-header span{color:var(--muted);font-size:.85rem}.calendar-month-weekdays,.calendar-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-month-weekdays span{color:var(--muted);font-weight:750;text-align:center}.calendar-day-cell{display:grid;align-content:start;gap:6px;min-height:116px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.calendar-month-grid.compact .calendar-day-cell{min-height:84px;padding:6px}.calendar-day-cell.outside{background:#f7f9fb;color:var(--muted)}.calendar-day-cell.today{border-color:#1ea6c180;box-shadow:inset 0 0 0 1px #1ea6c12e}.calendar-day-number{display:flex;justify-content:space-between;gap:6px;font-weight:750}.calendar-day-number small{min-width:20px;border-radius:999px;background:var(--surface-2);color:var(--primary);text-align:center}.calendar-day-events{display:grid;gap:4px;min-width:0}.calendar-day-event{width:100%;min-height:0;padding:5px 6px;border:1px solid rgba(30,166,193,.24);border-radius:8px;background:#f4fbfc;color:var(--text);font-size:.76rem;line-height:1.25;text-align:left}.calendar-day-event.global{border-color:#7dbb4259;background:#f4fbef}.calendar-day-event.warning{border-color:#f2d19b;background:#fff8e8}.calendar-day-event:disabled{cursor:default}.calendar-day-event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-more-events{color:var(--muted);font-weight:700}.calendar-event-editor{border:1px solid var(--line);border-radius:16px;background:var(--surface-2);padding:14px}.calendar-event-editor h4{margin:0}.warning-text{color:#8b5a00!important;margin-top:8px!important}.danger-chip{background:#fff1f1!important;color:var(--danger)!important}@media(max-width:1180px){.planner-v2-grid{grid-template-columns:1fr}.wide-column,.full-column{grid-column:auto}}@media(max-width:780px){.student-toolbar,.student-row,.group-roster-grid,.group-roster-list .admin-row{grid-template-columns:1fr}.group-roster-list .row-actions{justify-content:flex-start}.compact-date-control input{max-width:none}.checklists-grid,.checklist-filter-panel,.checklist-entry{grid-template-columns:1fr}.checklist-status-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-v2-hero,.preview-card,.calendar-v2-card{display:grid;grid-template-columns:1fr}.photo-crop-backdrop{padding:0;align-items:stretch}.photo-crop-dialog{width:100%;max-height:100vh;border-radius:0}.photo-crop-dialog header,.photo-crop-layout{grid-template-columns:1fr}.photo-crop-dialog header{display:grid}.photo-crop-frame{width:min(300px,100%);justify-self:center}.photo-crop-frame canvas{width:min(280px,100%);height:auto;aspect-ratio:1}.form-two-cols,.form-three-cols,.form-four-cols{grid-template-columns:1fr}.check-row{grid-template-columns:auto auto minmax(0,1fr)}.check-row small{grid-column:3}.calendar-filter-grid,.calendar-range-box,.calendar-raster-view.school-year{grid-template-columns:1fr}.calendar-month-weekdays,.calendar-month-days{gap:4px}.calendar-day-cell,.calendar-month-grid.compact .calendar-day-cell{min-height:72px;padding:5px}.calendar-day-event{padding:4px 5px;font-size:.7rem}.planner-v2-actions .button,.confirm-box .button,.planner-v2-hero .button{width:100%}}.admin-row{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff}.timetable-teacher-row{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);align-items:center}.timetable-unit-grid{display:grid;grid-template-columns:repeat(4,minmax(62px,1fr));gap:8px;min-width:0}.timetable-unit-grid span{display:grid;gap:2px;min-width:0;text-align:right}.timetable-unit-grid b{font-size:.95rem;overflow-wrap:anywhere}.timetable-unit-grid small{color:var(--muted);font-size:.72rem}.timetable-version-row.selected{border-color:var(--primary);background:var(--surface-2)}.timetable-schedule-list{max-height:680px}.timetable-schedule-row{grid-template-columns:minmax(145px,.25fr) minmax(0,1fr);align-items:start}.timetable-schedule-row small{display:block;margin-top:4px;color:var(--muted);overflow-wrap:anywhere}.timetable-time-cell{display:grid;gap:2px}.admin-row.inactive{opacity:.55;background:var(--surface-2)}.row-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.button.mini{padding:6px 10px;font-size:.78rem;min-height:0}.button.danger,.button.mini.danger{border-color:#b4231840;color:var(--danger);background:#fff5f5}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;max-height:420px;overflow:auto;padding-right:2px}.class-card{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fff}.class-card strong{color:var(--primary);letter-spacing:.02em}.class-card span,.class-card small{color:var(--muted);font-size:.82rem}.planner-v2-actions{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:780px){.row-actions{justify-content:stretch}.row-actions .button,.planner-v2-actions .button{width:100%}.class-grid{grid-template-columns:1fr 1fr}}.planner-admin-page{display:grid;gap:18px;min-width:0}.admin-split-grid{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:18px;align-items:start}.section-header-inline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.section-header-inline h3,.section-header-inline p{margin:0}.section-header-inline p{color:var(--muted);margin-top:4px}.filter-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,240px) auto;gap:10px;align-items:center}.filter-toolbar input,.filter-toolbar select{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;min-width:0}.simple-inline-check{display:flex!important;align-items:center;gap:8px;font-weight:600;color:var(--muted)}.simple-inline-check input{width:auto!important}.admin-card-list{max-height:620px;overflow:auto;padding-right:2px}.admin-row-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.admin-row-main strong,.admin-row-main small{display:block;overflow-wrap:anywhere}.admin-management-grid{display:grid;grid-template-columns:minmax(300px,520px) minmax(0,1fr);gap:18px;align-items:start}.permission-grid{display:grid;gap:8px;min-width:0}.permission-group{display:grid;gap:8px;padding-top:6px;border-top:1px solid var(--line)}.permission-group h4{margin:0;color:var(--primary)}.role-admin-row{align-items:start}.role-chip-list,.permission-pill-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;min-width:0}.permission-pill-list span{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}.checklists-page,.timetable-planning-page,.teacher-assignments-page,.timetable-data-check-page{display:grid;gap:18px;min-width:0}.timetable-data-check-panel{display:grid;gap:16px}.timetable-data-check-toolbar{grid-template-columns:minmax(150px,.8fr) minmax(180px,1fr) minmax(160px,.9fr) minmax(90px,.45fr) minmax(180px,1fr) auto}.timetable-data-check-state{border-left:5px solid var(--primary)}.timetable-data-check-state.state-ready{border-left-color:var(--success)}.timetable-data-check-state.state-warning{border-left-color:#b7791f}.timetable-data-check-state.state-blocked{border-left-color:var(--danger)}.timetable-data-check-metrics{display:grid;grid-template-columns:repeat(8,minmax(95px,1fr));gap:10px}.timetable-data-check-metrics span{display:grid;gap:3px;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);min-width:0}.timetable-data-check-metrics b{font-size:1.25rem;color:var(--primary)}.timetable-data-check-metrics small{color:var(--muted);font-weight:800}.timetable-data-check-layout{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:18px;align-items:start;min-width:0}.timetable-data-check-issue-list,.timetable-data-check-unit-list{display:grid;gap:10px;min-width:0}.timetable-data-check-issue,.timetable-data-check-unit{display:grid;gap:10px;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:8px;background:var(--surface-2);padding:12px;min-width:0}.timetable-data-check-issue{grid-template-columns:auto minmax(0,1fr);align-items:start}.timetable-data-check-issue.danger,.timetable-data-check-unit.blocked{border-left-color:var(--danger)}.timetable-data-check-issue.warning,.timetable-data-check-unit.warning{border-left-color:#b7791f}.timetable-data-check-issue.success,.timetable-data-check-unit.ready{border-left-color:var(--success)}.timetable-data-check-issue strong,.timetable-data-check-issue small,.timetable-data-check-unit strong,.timetable-data-check-unit small,.timetable-data-check-unit-meta b{display:block;overflow-wrap:anywhere}.timetable-data-check-issue p{margin:5px 0;color:var(--muted)}.timetable-data-check-unit-meta{display:grid;grid-template-columns:84px 98px minmax(130px,1fr) auto;gap:8px;align-items:center}.timetable-data-check-unit-meta>span:not(.status-pill){display:grid;gap:2px;min-width:0;padding:8px;border-radius:8px;background:#fff}.timetable-data-check-unit-meta small,.timetable-data-check-unit>div>small,.timetable-data-check-unit-issues small{color:var(--muted);font-weight:800}.timetable-data-check-unit-issues{display:flex;flex-wrap:wrap;gap:6px}.timetable-data-check-unit-issues small{padding:5px 8px;border-radius:999px;background:#fff}.timetable-plan-blocks-page,.timetable-plan-blocks-panel{display:grid;gap:18px;min-width:0}.timetable-plan-blocks-toolbar{grid-template-columns:minmax(150px,.8fr) minmax(180px,1fr) minmax(160px,.9fr) minmax(90px,.45fr) minmax(180px,1fr) auto}.timetable-plan-blocks-metrics{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:10px}.timetable-plan-blocks-metrics span,.timetable-plan-block-group-card span{display:grid;gap:3px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.timetable-plan-blocks-metrics b,.timetable-plan-block-group-card b{color:var(--primary);font-size:1.18rem}.timetable-plan-blocks-metrics small,.timetable-plan-block-group-card small{color:var(--muted);font-weight:800}.timetable-plan-blocks-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;align-items:start;min-width:0}.timetable-plan-blocks-list,.timetable-plan-blocks-group-list{display:grid;gap:10px;min-width:0}.timetable-plan-block-card{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:8px;background:var(--surface-2)}.timetable-plan-block-card.ready{border-left-color:var(--success)}.timetable-plan-block-card.warning{border-left-color:#b7791f}.timetable-plan-block-card.blocked{border-left-color:var(--danger)}.timetable-plan-block-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.timetable-plan-block-main strong,.timetable-plan-block-main small,.timetable-plan-block-meta b,.timetable-plan-block-meta small,.timetable-plan-block-group-card strong{display:block;overflow-wrap:anywhere}.timetable-plan-block-main small,.timetable-plan-block-meta small{color:var(--muted);font-weight:800}.timetable-plan-block-meta{display:grid;grid-template-columns:82px minmax(120px,1fr) minmax(120px,.9fr) minmax(120px,.75fr);gap:8px;min-width:0}.timetable-plan-block-meta span{display:grid;gap:2px;min-width:0;padding:8px;border-radius:8px;background:#fff}.timetable-plan-block-chips,.timetable-plan-block-issues{display:flex;flex-wrap:wrap;gap:6px}.timetable-plan-block-chips small,.timetable-plan-block-issues small{padding:5px 8px;border-radius:999px;background:#fff;color:var(--muted);font-weight:800}.timetable-plan-block-issues small{color:var(--danger)}.timetable-plan-blocks-side-panel{position:sticky;top:12px}.timetable-plan-block-group-card{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.timetable-plan-block-group-card div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.timetable-workspace-page,.timetable-workspace-panel{display:grid;gap:18px;min-width:0}.timetable-workspace-toolbar{grid-template-columns:minmax(125px,.65fr) minmax(135px,.6fr) minmax(220px,1.05fr) minmax(185px,.95fr) minmax(185px,.95fr) minmax(145px,.65fr) minmax(95px,.42fr) auto}.timetable-workspace-section-form{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(240px,1fr) auto;align-items:end;gap:10px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.timetable-workspace-section-form label{display:grid;gap:5px;min-width:0;color:var(--muted);font-size:.8rem;font-weight:800}.timetable-workspace-section-form input{min-width:0;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text)}.timetable-workspace-metrics{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr));gap:10px}.timetable-workspace-metrics span{display:grid;gap:3px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.timetable-workspace-metrics b{color:var(--primary);font-size:1.18rem}.timetable-workspace-metrics small{color:var(--muted);font-weight:800}.timetable-workspace-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.38fr);gap:18px;align-items:start;min-width:0}.timetable-workspace-grid-panel,.timetable-workspace-side-panel{min-width:0}.timetable-workspace-grid-scroll{width:100%;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.timetable-workspace-grid{display:grid;width:max-content;min-width:100%;background:#fff}.timetable-workspace-row-fragment{display:contents}.timetable-workspace-corner,.timetable-workspace-day-header,.timetable-workspace-slot-label,.timetable-workspace-cell{min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.timetable-workspace-corner,.timetable-workspace-day-header{position:sticky;top:0;z-index:2;min-height:52px;padding:10px;background:#f1f8f9;color:var(--primary);font-weight:900}.timetable-workspace-corner{left:0;z-index:4}.timetable-workspace-day-header strong,.timetable-workspace-day-header small,.timetable-workspace-slot-label strong,.timetable-workspace-slot-label small,.timetable-workspace-lesson strong,.timetable-workspace-lesson small{display:block;overflow-wrap:anywhere}.timetable-workspace-day-header small,.timetable-workspace-slot-label small,.timetable-workspace-lesson small{color:var(--muted);font-weight:800}.timetable-workspace-slot-label{position:sticky;left:0;z-index:1;min-height:96px;padding:10px;background:#f7fbfb;box-shadow:1px 0 0 var(--line)}.timetable-workspace-slot-label strong{color:var(--primary);font-size:1.1rem}.timetable-workspace-cell{min-height:96px;padding:7px;background:#fff}.timetable-workspace-cell.selection-mode{background:#fbfefe}.timetable-workspace-cell.candidate{box-shadow:inset 0 0 0 2px #7ac94352}.timetable-workspace-cell.related{box-shadow:inset 0 0 0 2px #08b5d557}.timetable-workspace-cell.target{box-shadow:inset 0 0 0 3px #006f83b8;background:#eefbfc}.timetable-workspace-cell.inactive{background:repeating-linear-gradient(135deg,#f7fbfb,#f7fbfb 8px,#eef6f7 8px 16px)}.timetable-workspace-lesson{display:grid;gap:3px;min-width:0;padding:8px;border:1px solid #bee3ea;border-left:4px solid var(--brand-cyan);border-radius:8px;background:#f4fdff}.timetable-workspace-lesson.related{border-color:#7ac943;border-left-color:#7ac943;background:#f4fbef}.timetable-workspace-lesson.sda-planning{border-color:#b5dfe8;border-left-color:var(--primary);background:#eefbfc}.timetable-workspace-lesson.selected-placement{border-color:var(--primary);box-shadow:0 0 0 3px #006f8329}.timetable-workspace-lesson+.timetable-workspace-lesson{margin-top:6px}.timetable-workspace-lesson-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:4px}.timetable-workspace-lesson-actions .button{min-height:30px;padding:5px 7px;font-size:.72rem}.timetable-workspace-placement-preview{display:grid;gap:2px;min-width:0;width:100%;margin-top:4px;padding:7px;border:1px dashed #7ac943;border-radius:8px;background:#f6fdf1;color:var(--text);font:inherit;text-align:left;cursor:pointer}.timetable-workspace-placement-preview.target{border-style:solid;border-color:var(--primary);background:#ddf6fb}.timetable-workspace-placement-preview strong,.timetable-workspace-placement-preview small{display:block;overflow-wrap:anywhere}.timetable-workspace-placement-preview strong{color:var(--primary-strong);font-size:.82rem}.timetable-workspace-placement-preview small{color:var(--muted);font-size:.76rem;font-weight:800}.timetable-workspace-placement-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}.timetable-workspace-placement-actions .button{width:100%}.timetable-workspace-empty{grid-column:1 / -1;margin:0;padding:16px}.timetable-workspace-side-panel{position:sticky;top:12px}.timetable-workspace-block-list{display:grid;gap:9px;min-width:0}.timetable-workspace-block{display:grid;gap:6px;min-width:0;width:100%;padding:11px;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:8px;background:var(--surface-2);color:var(--text);font:inherit;text-align:left;cursor:pointer}.timetable-workspace-block.ready{border-left-color:var(--success)}.timetable-workspace-block.warning{border-left-color:#b7791f}.timetable-workspace-block.blocked{border-left-color:var(--danger)}.timetable-workspace-block.selected{outline:3px solid rgba(8,181,213,.22);background:#fff}.timetable-workspace-block strong,.timetable-workspace-block small{display:block;overflow-wrap:anywhere}.timetable-workspace-block small{color:var(--muted);font-weight:800}.timetable-workspace-block-tags{display:flex;flex-wrap:wrap;gap:5px}.timetable-workspace-block-tags small{padding:4px 7px;border-radius:999px;background:#fff}.teacher-reductions-page,.grade-finalization-page{display:grid;gap:18px;min-width:0}.grade-finalization-panel{display:grid;gap:16px}.grade-finalization-preview{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.grade-finalization-preview span{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.grade-finalization-preview strong{font-size:1.35rem;color:var(--primary)}.grade-finalization-preview small,.grade-finalization-card small{color:var(--muted)}.grade-finalization-list{display:grid;gap:10px;margin-top:14px}.grade-finalization-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,auto);gap:12px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.grade-finalization-card strong,.grade-finalization-card span,.grade-finalization-card small{display:block;overflow-wrap:anywhere}.grade-finalization-card-meta{display:grid;gap:5px;justify-items:end;text-align:right}.school-year-changeover-page{display:grid;gap:18px;min-width:0}.school-year-changeover-hero{border-top:5px solid var(--brand-green)}.school-year-changeover-panel{display:grid;gap:18px}.school-year-changeover-controls{align-items:stretch}.school-year-changeover-stat{border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;justify-content:center;min-height:68px}.school-year-changeover-stat strong{font-size:1.35rem;color:var(--primary)}.school-year-changeover-stat span,.school-year-changeover-component small,.school-year-changeover-scope p{color:var(--muted)}.school-year-changeover-components{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.school-year-changeover-component{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.school-year-changeover-component input{margin-top:3px}.school-year-changeover-component span{display:grid;gap:4px}.school-year-changeover-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.school-year-changeover-retention{border-left:5px solid #b7791f}.school-year-changeover-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.school-year-changeover-scope>div{min-width:0}.school-year-changeover-scope p{margin:8px 0 0;line-height:1.55}.timetable-planning-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;align-items:start;min-width:0}.template-lines,.demand-list,.teacher-capacity-list{display:grid;gap:10px;min-width:0}.template-line,.demand-row,.capacity-row,.timetable-planning-summary{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px;min-width:0}.template-line{display:grid;gap:10px}.timetable-planning-summary{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.timetable-planning-summary span{color:var(--muted)}.stundentafel-list{display:grid;gap:10px;min-width:0}.stundentafel-card{display:grid;gap:8px;width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px;color:inherit;font:inherit;text-align:left}button.stundentafel-card{cursor:pointer}button.stundentafel-card:hover,button.stundentafel-card.selected{border-color:#0b5f4973;background:#eef7f4}.stundentafel-card strong,.stundentafel-card small{display:block;overflow-wrap:anywhere}.stundentafel-card small{color:var(--muted)}.stundentafel-meta{display:flex;flex-wrap:wrap;gap:6px}.stundentafel-meta span{border:1px solid var(--line);border-radius:999px;background:#fff;padding:4px 8px;color:var(--muted);font-size:.82rem;font-weight:700}.capacity-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center}.capacity-row strong,.capacity-row small,.demand-main strong,.demand-main small{display:block;overflow-wrap:anywhere}.capacity-row>small{grid-column:1 / -1;color:var(--muted)}.capacity-positive{color:#146c43;font-weight:800}.capacity-negative{color:#b42318;font-weight:800}.compact-filter-input{width:min(360px,100%);border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.demand-row{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.4fr);gap:12px;align-items:start}.demand-main{display:grid;gap:4px;min-width:0}.demand-main small{color:var(--muted)}.suggestion-controls{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(80px,.45fr) minmax(150px,1fr) minmax(120px,.8fr) minmax(120px,1fr) auto;gap:8px;align-items:center;min-width:0}.suggestion-controls input,.suggestion-controls select{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff}.workload-reduction-form{grid-template-columns:minmax(180px,1.2fr) minmax(100px,.5fr) minmax(130px,.7fr) minmax(220px,1.4fr) auto;align-items:end}.teacher-availability-form{grid-template-columns:minmax(190px,1.2fr) minmax(170px,1fr) minmax(130px,.75fr) repeat(2,minmax(95px,.55fr)) repeat(2,minmax(100px,.55fr));align-items:end}.teacher-availability-reason{grid-column:span 3}.weekday-multi-field{display:grid;gap:6px;font-weight:650;min-width:0}.weekday-multi-field small{color:var(--muted);font-weight:500}.weekday-choice-group{display:flex;flex-wrap:wrap;gap:6px 10px;min-height:43px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 10px}.weekday-choice-group label{display:inline-flex;align-items:center;gap:5px;color:var(--text);font-size:.88rem;font-weight:650;white-space:nowrap}.weekday-choice-group input{width:auto!important}.inline-check{display:flex!important;align-items:center;gap:8px;min-height:43px;color:var(--muted)}.inline-check input{width:auto!important}.teacher-availability-list{display:grid;gap:10px;margin-top:12px;min-width:0}.teacher-availability-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px;min-width:0}.teacher-availability-card strong,.teacher-availability-card small{display:block;overflow-wrap:anywhere}.teacher-availability-card small{color:var(--muted)}.teacher-availability-meta{display:grid;justify-items:end;gap:6px}.teacher-assignment-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:18px;align-items:start;min-width:0}.teacher-assignment-filter-bar{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(180px,1.1fr) minmax(180px,1fr) minmax(90px,.45fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.teacher-assignment-filter-bar label,.teacher-assignment-demand-form label{display:grid;gap:6px;font-weight:650;min-width:0}.teacher-assignment-filter-bar input,.teacher-assignment-filter-bar select{width:100%;max-width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff}.teacher-assignment-demand-form{grid-template-columns:repeat(4,minmax(130px,1fr));align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.teacher-assignment-form-actions{display:flex;gap:8px;align-items:center}.teacher-assignment-demand-list,.teacher-usage-list{display:grid;gap:10px;min-width:0}.teacher-assignment-row,.teacher-usage-card,.teacher-usage-summary{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px;min-width:0}.teacher-assignment-row{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.5fr);gap:12px;align-items:start}.teacher-assignment-main{display:grid;gap:4px;min-width:0}.teacher-assignment-main strong,.teacher-assignment-main small,.teacher-usage-card strong,.teacher-usage-card small{display:block;overflow-wrap:anywhere}.teacher-assignment-main small,.teacher-usage-card small{color:var(--muted)}.teacher-assignment-controls{display:grid;grid-template-columns:minmax(170px,1.25fr) minmax(80px,.45fr) minmax(140px,.9fr) minmax(110px,.75fr);gap:8px;align-items:center;min-width:0}.teacher-assignment-controls input,.teacher-assignment-controls select{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff}.teacher-assignment-parallel-controls{grid-column:1 / -1;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(150px,.8fr) auto;gap:8px;align-items:center;min-width:0;padding-top:10px;border-top:1px solid var(--line)}.teacher-assignment-parallel-controls input,.teacher-assignment-parallel-controls select{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff}.teacher-assignment-controls .assignment-note{grid-column:1 / -2}.teacher-assignment-controls .assignment-save-button{grid-column:-2 / -1;justify-self:stretch;min-height:38px}.teacher-usage-panel{position:sticky;top:12px}.teacher-context-header{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.teacher-usage-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.teacher-usage-summary strong{grid-column:1 / -1}.teacher-usage-card.external{border-color:#b4530973;background:#fff7ed}.teacher-reductions-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:18px;align-items:start;min-width:0}.teacher-reduction-side{display:grid;gap:18px;min-width:0}.teacher-reduction-form{grid-template-columns:repeat(3,minmax(140px,1fr));align-items:end}.teacher-reduction-compact-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.teacher-reduction-list,.teacher-reduction-reason-list,.teacher-reduction-budget-grid{display:grid;gap:10px;min-width:0}.teacher-reduction-budget-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.teacher-reduction-budget-card{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.teacher-reduction-budget-card strong,.teacher-reduction-budget-card span{display:block;overflow-wrap:anywhere}.teacher-reduction-budget-card span{color:var(--muted);font-weight:750}.teacher-reduction-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}@media(max-width:1180px){.timetable-planning-grid,.demand-row,.timetable-data-check-layout,.timetable-plan-blocks-layout,.timetable-workspace-layout,.teacher-assignment-layout,.teacher-assignment-row,.teacher-reductions-layout{grid-template-columns:1fr}.suggestion-controls,.teacher-assignment-controls,.teacher-assignment-parallel-controls,.teacher-assignment-filter-bar,.timetable-data-check-toolbar,.timetable-data-check-unit-meta,.timetable-plan-blocks-toolbar,.timetable-workspace-toolbar,.timetable-workspace-section-form,.timetable-plan-block-meta,.teacher-assignment-demand-form,.teacher-reduction-form,.teacher-reduction-compact-form{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-data-check-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.timetable-plan-blocks-metrics,.timetable-workspace-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.timetable-plan-blocks-side-panel,.timetable-workspace-side-panel{position:static}.suggestion-controls .button{width:100%}.workload-reduction-form,.teacher-availability-form{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-availability-reason,.teacher-assignment-form-actions{grid-column:1 / -1}}@media(max-width:720px){.planner-v2-hero,.section-header-inline{display:grid}.compact-filter-input,.workload-reduction-form .button{width:100%}.suggestion-controls,.teacher-assignment-controls,.teacher-assignment-parallel-controls,.timetable-data-check-toolbar,.timetable-data-check-unit-meta,.timetable-plan-blocks-toolbar,.timetable-workspace-toolbar,.timetable-workspace-section-form,.timetable-plan-block-meta,.teacher-availability-form,.workload-reduction-form,.teacher-reduction-form,.teacher-reduction-compact-form,.teacher-reduction-budget-grid{grid-template-columns:1fr}.timetable-data-check-metrics,.timetable-plan-blocks-metrics,.timetable-workspace-metrics,.timetable-plan-block-group-card div{grid-template-columns:repeat(2,minmax(0,1fr))}.timetable-data-check-issue,.timetable-plan-block-main,.teacher-availability-card{grid-template-columns:1fr}.teacher-availability-meta{justify-items:start}.teacher-usage-panel{position:static}}.checklist-filter-panel,.checklist-form-panel{display:grid;gap:14px}.checklist-filter-panel{grid-template-columns:minmax(220px,320px) auto;align-items:end}.checklist-filter-panel label{display:grid;gap:6px;font-weight:700}.checklist-filter-panel select{min-height:42px;border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff}.checklists-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:18px;align-items:start;min-width:0}.checklist-row{align-items:start;border-left:4px solid transparent}.checklist-row.selected{border-color:var(--primary);box-shadow:0 0 0 3px #006f8314}.unstyled-row-button{width:100%;display:grid;gap:4px;min-width:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.unstyled-row-button strong,.unstyled-row-button small{display:block;overflow-wrap:anywhere}.unstyled-row-button small{color:var(--muted)}.checklist-status-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.checklist-status-summary span{display:grid;gap:2px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:.78rem}.checklist-status-summary b{color:var(--text);font-size:1.2rem}.checklist-entry-list{display:grid;gap:9px}.checklist-entry{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,170px) minmax(160px,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:14px;background:#fff;min-width:0}.checklist-entry>div,.checklist-entry label{min-width:0}.checklist-entry strong,.checklist-entry small{display:block;overflow-wrap:anywhere}.checklist-entry small{margin-top:3px;color:var(--muted)}.checklist-entry label{display:grid;gap:5px;color:var(--muted);font-weight:800;font-size:.82rem}.checklist-entry select,.checklist-entry input{min-height:38px;border:1px solid var(--line);border-radius:10px;padding:8px 9px;background:#fff}.checklist-entry.status-done{border-left-color:var(--success)}.checklist-entry.status-open{border-left-color:var(--muted)}.checklist-entry.status-not_required{border-left-color:#7b8790;background:#f8fafb}.checklist-entry.status-question{border-left-color:#b56a00;background:#fff9ec}.developer-grid{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr)}.developer-table-list{max-height:none}.developer-table-row{grid-template-columns:minmax(0,1fr) minmax(96px,auto);align-items:start}.developer-table-row.selected{border-color:#006f8366;box-shadow:0 0 0 3px #006f8314}.developer-count-box{display:grid;gap:6px;justify-items:end;text-align:right}.developer-count-box strong{font-size:1.45rem;color:var(--primary)}.developer-count-box small{color:var(--muted)}.developer-selected-box{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.developer-selected-box span{color:var(--muted)}.import-progress-status{display:grid;grid-template-columns:34px minmax(0,1fr);gap:2px 11px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted)}.import-progress-status span{grid-row:span 3;width:28px;height:28px;border:4px solid rgba(0,111,131,.18);border-top-color:var(--primary);border-radius:50%;animation:absence-spin .85s linear infinite}.import-progress-status strong{color:var(--primary-strong)}.import-progress-status small{overflow-wrap:anywhere}.developer-database-actions{display:grid;gap:14px}.developer-database-reset{max-width:560px}.danger-zone{border-color:#efc5c5}.danger-zone h3{color:var(--danger)}.untis-import-grid{grid-template-columns:minmax(280px,.7fr) minmax(0,1fr)}.import-order-guide{order:1}.import-order-gp{order:2}.import-order-planning-seed{order:3}.import-order-schild{order:4}.import-order-schild-detail{order:5}.import-order-teacher-images{order:6}.import-order-xml{order:7}.import-order-xml-detail{order:8}.import-order-webuntis-classbook{order:9}.import-order-webuntis-absence{order:10}.import-order-schild-grades{order:11}.import-order-substitutions{order:12}.import-order-batches{order:13}.import-order-list{display:flex;flex-wrap:wrap;gap:8px}.import-order-list span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--primary);font-weight:800;font-size:.86rem}.untis-count-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:12px}.untis-readiness-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.untis-warning-list{display:grid;gap:8px;margin-top:14px}.untis-warning.error{border-color:#efc5c5;background:#fff7f7}.untis-warning.warning{border-color:#f2d19b;background:#fffaf0}.untis-warning.info{border-color:var(--line);background:var(--surface-2)}.substitution-import-panel{border-left:5px solid var(--primary)}.substitution-file-grid{align-items:end}.substitution-upload-panel{border-left:5px solid var(--brand-cyan)}.substitution-upload-grid{align-items:end}.substitution-count-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.substitution-preview-list{margin-top:12px}.substitution-batch-details summary{cursor:pointer;font-weight:800;color:var(--primary)}.substitution-batch-details[open] summary{margin-bottom:12px}@media(max-width:1050px){.admin-management-grid{grid-template-columns:1fr}}@media(max-width:1050px){.admin-split-grid,.filter-toolbar{grid-template-columns:1fr}}@media(max-width:760px){.admin-card-list{max-height:none}.timetable-teacher-row,.timetable-schedule-row{grid-template-columns:1fr}.timetable-unit-grid span{text-align:left}}@media(max-width:760px){.grade-finalization-preview,.grade-finalization-card{grid-template-columns:1fr}.grade-finalization-card-meta{justify-items:start;text-align:left}}.generator-box{display:grid;gap:10px;padding:12px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line)}.generator-box h4,.generator-box p{margin:0}.generator-box p{color:var(--muted)}.template-event-grid{grid-template-columns:minmax(320px,560px) minmax(0,1fr)}.template-rule-box{display:grid;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.area-select-list{display:grid;gap:8px;max-height:260px;overflow:auto;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff}.template-card small{display:block;margin-top:3px;color:var(--muted);overflow-wrap:anywhere}.template-filter-toolbar{grid-template-columns:minmax(0,1fr) minmax(120px,170px) minmax(120px,170px) auto}.nav-group-title{margin:14px 0 6px;padding:0 10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#ffffff94}@media(max-width:1050px){.template-event-grid,.template-filter-toolbar{grid-template-columns:1fr}}.alert.warning{background:#fff8e8;color:#7a4a00;border:1px solid #f2d19b}.timetable-filter-panel{display:grid;grid-template-columns:minmax(150px,1fr) minmax(230px,1.35fr) minmax(140px,.8fr) minmax(220px,1.35fr) minmax(160px,.85fr);gap:12px;align-items:end}.timetable-filter-panel label{display:grid;gap:6px;min-width:0;color:var(--muted);font-weight:700}.timetable-filter-panel select,.timetable-filter-panel input{width:100%;min-width:0;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text)}.timetable-display-select{min-width:0}.timetable-week-control{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px}.timetable-week-control .button{min-width:38px;padding-inline:8px;font-size:1.15rem}.timetable-grid-panel{min-width:0}.timetable-layout-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.timetable-grid-scroll{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.timetable-week-table{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;table-layout:fixed}.timetable-week-table.timetable-day-table{min-width:420px}.timetable-week-table.timetable-compact-table{min-width:820px}.timetable-week-table th,.timetable-week-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top}.timetable-week-table tr:last-child th,.timetable-week-table tr:last-child td{border-bottom:0}.timetable-week-table th:last-child,.timetable-week-table td:last-child{border-right:0}.timetable-week-table thead th{padding:10px;background:var(--surface-2);color:var(--primary);text-align:left}.timetable-week-table thead th span,.timetable-week-table thead th small{display:block}.timetable-week-table thead th small{margin-top:3px;color:var(--muted);font-weight:500}.timetable-week-table td{position:relative;height:92px;padding:5px;background:#fbfcff}.timetable-slot-heading{position:sticky;left:0;z-index:2;width:94px;padding:9px!important;background:#fff!important;box-shadow:1px 0 0 var(--line)}.timetable-week-table thead .timetable-slot-heading{z-index:3;background:var(--surface-2)!important}.timetable-slot-heading strong,.timetable-slot-heading small{display:block}.timetable-slot-heading small{margin-top:3px;color:var(--muted);font-weight:500;white-space:nowrap}.timetable-slot-heading.is-current-slot{background:#fff4df!important;color:#8a2a00;box-shadow:inset 4px 0 #d62828,1px 0 0 var(--line)}.timetable-now-cell{background:#fffdf4!important}.timetable-now-line{position:absolute;left:5px;right:5px;z-index:6;height:2px;border-radius:999px;background:#d62828;box-shadow:0 0 0 1px #ffffffd1,0 3px 8px #d6282838;pointer-events:none}.timetable-now-line:before{position:absolute;top:50%;left:-3px;width:8px;height:8px;border-radius:50%;background:#d62828;content:"";transform:translateY(-50%)}.timetable-now-line span{position:absolute;top:50%;right:0;padding:1px 4px;border-radius:4px;background:#d62828;color:#fff!important;font-size:.62rem!important;font-weight:900;line-height:1.2;transform:translateY(-50%)}.timetable-lesson-card{position:relative;display:grid;gap:2px;margin-bottom:5px;padding:7px;border:1px solid rgba(0,111,131,.18);border-left:4px solid var(--primary);border-radius:9px;background:#eef4ff;color:var(--text);overflow-wrap:anywhere}.timetable-lesson-card:last-child{margin-bottom:0}.timetable-lesson-card.is-current-period,.timetable-break-card.is-current-period{border-color:#d62828;border-left-color:#d62828!important;border-left-width:7px;background:#fffdf4;outline:3px solid rgba(214,40,40,.72);outline-offset:-2px;box-shadow:0 0 0 2px #d628282e,0 12px 28px #4122141f;scroll-margin:34vh}.timetable-lesson-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.timetable-lesson-card.substitution-context{border-left-color:#f2a900;background:#fffaf0}.timetable-lesson-card.room-booking-context{border-left-color:var(--brand-cyan);background:#eefbff}.timetable-lesson-card.instruction-suspension-context{border-left-color:#7a4a00;background:#fff8e8}.timetable-lesson-card.instructional-trip-context{border-left-color:#5a6f00;background:#f7faee}.timetable-lesson-card.has-classwork{border-left-color:#8b2f6b;background:#fff4fb}.timetable-lesson-card.has-cancelled-substitution{border-left-color:#d62828;background:#fff2f2}.timetable-lesson-card strong{color:var(--primary)}.timetable-lesson-card.instruction-suspension-context strong{color:#7a4a00}.timetable-lesson-card.instructional-trip-context strong{color:#4d6100}.timetable-lesson-card.has-classwork strong{color:#6f2458}.timetable-lesson-card.has-cancelled-substitution strong{color:#8a1f1f}.timetable-lesson-card span,.timetable-lesson-card small{font-size:.75rem;color:var(--muted)}.timetable-lesson-card.compact{gap:1px;margin-bottom:3px;padding:5px 6px;border-radius:7px}.timetable-lesson-card.compact .chip{padding:2px 5px;font-size:.65rem}.timetable-lesson-card.compact .room-change-badge-list,.timetable-lesson-card.compact .substitution-event-list{gap:2px;margin-top:2px}.timetable-lesson-card.compact .room-change-badge,.timetable-lesson-card.compact .substitution-event-badge{padding:3px 5px}.timetable-context-links{display:flex;flex-wrap:wrap;gap:3px}.timetable-context-links button{padding:0;border:0;background:transparent;color:var(--primary);font:inherit;font-size:.75rem;text-decoration:underline;cursor:pointer}.timetable-context-links button+button:before{content:", ";color:var(--muted);text-decoration:none}.timetable-lesson-card.unresolved{border-left-color:#b76b00;background:#fff8e8}.timetable-lesson-card .cycle-warning{color:#7a4a00;font-weight:700}.timetable-card-actions{margin-top:4px}.timetable-card-menu{position:relative;justify-self:start}.timetable-card-menu summary{width:fit-content;min-height:30px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--primary);font-size:.75rem;font-weight:900;cursor:pointer;list-style:none}.timetable-card-menu summary::-webkit-details-marker{display:none}.timetable-card-menu-list{display:grid;gap:4px;min-width:150px;margin-top:5px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 10px 22px #0f374029}.timetable-card-menu-list .button{width:100%}.classbook-open-button{width:100%;margin-top:0}.timetable-break-row td{height:auto;background:#f6fafb}.timetable-break-slot{background:#f6fafb!important}.timetable-break-card{position:relative;display:grid;gap:3px;margin-bottom:5px;padding:7px;border:1px dashed rgba(0,111,131,.28);border-left:4px solid var(--brand-cyan);border-radius:9px;background:#f2fafc;color:var(--text);overflow-wrap:anywhere}.timetable-break-card:last-child{margin-bottom:0}.timetable-break-card strong{color:var(--primary)}.timetable-break-card small,.timetable-break-empty,.timetable-supervision-list span{font-size:.75rem;color:var(--muted)}.timetable-supervision-list{display:grid;gap:2px}.timetable-supervision-list b{color:var(--primary)}.substitution-overlay-panel{border-left:5px solid #f2a900}.substitution-unmatched-row{border-color:#f2d19b;background:#fffaf0}.substitution-unmatched-row.cancelled{border-color:#efb2b2;background:#fff2f2}.substitution-unmatched-row.cancelled strong{color:#8a1f1f}.substitution-event-list{display:grid;gap:4px;margin-top:4px}.substitution-event-badge{display:grid;gap:2px;padding:5px 6px;border-radius:7px;background:#fff8e8;border:1px solid #f2d19b;color:#6b4b00}.substitution-event-badge strong{color:#7a4a00;font-size:.76rem}.substitution-event-badge .substitution-context-line,.substitution-event-badge span,.substitution-event-badge small{color:#6b4b00}.substitution-context-line{display:flex;flex-wrap:wrap;gap:3px;align-items:center;font-size:.75rem}.substitution-context-part{display:inline-flex;gap:3px;align-items:center}.substitution-context-part+.substitution-context-part:before{content:"·";margin-right:3px}.timetable-week-list{display:grid;gap:12px}.timetable-list-day{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfdfe}.timetable-list-day header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--primary)}.timetable-list-day header span{color:var(--muted);font-weight:800}.timetable-list-lessons{display:grid;gap:8px}.timetable-list-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:9px;align-items:stretch}.timetable-list-row.is-current-period{scroll-margin:32vh}.timetable-list-row.is-current-period .timetable-list-time{background:#fff4df;color:#8a2a00;box-shadow:inset 4px 0 #d62828}.timetable-list-row.break-row .timetable-list-time{background:#f2fafc}.timetable-list-row.break-row.is-current-period .timetable-list-time{background:#fff4df}.timetable-list-time{display:grid;align-content:center;justify-items:center;gap:3px;min-height:64px;padding:8px;border-radius:8px;background:var(--surface-2);color:var(--primary);text-align:center}.timetable-list-time span{color:var(--muted);font-size:.72rem;font-weight:800}.timetable-lesson-card.list-item,.timetable-break-card.list-item{margin-bottom:0}.substitution-teacher-links{display:inline-flex;flex-wrap:wrap;gap:3px;align-items:center}.substitution-teacher-links button{padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer}.substitution-event-badge.cover{background:#e8f7fb;border-color:#006f8340;color:var(--primary)}.substitution-event-badge.cover strong,.substitution-event-badge.cover .substitution-context-line,.substitution-event-badge.cover span,.substitution-event-badge.cover small{color:var(--primary)}.substitution-event-badge.cancelled{background:#fff1f1;border-color:#efc5c5;color:#8a1f1f}.substitution-event-badge.cancelled strong,.substitution-event-badge.cancelled .substitution-context-line,.substitution-event-badge.cancelled span,.substitution-event-badge.cancelled small{color:#8a1f1f}.room-change-badge-list{display:grid;gap:5px;margin-top:4px}.room-change-badge{display:grid;gap:2px;padding:6px 7px;border:1px solid #bddfe5;border-radius:10px;background:#effbfc}.room-change-badge strong{color:var(--primary);font-size:.76rem}.room-change-badge span,.room-change-badge small{color:var(--primary)}.room-change-badge.status-pending{border-color:#f2d19b;background:#fff8e8}.room-change-badge.status-pending strong,.room-change-badge.status-pending span,.room-change-badge.status-pending small{color:#7a4a00}.classwork-marker-list{display:grid;gap:5px;margin-top:4px}.classwork-marker-badge{display:grid;gap:3px;padding:6px 7px;border:1px solid #e0b6d2;border-radius:10px;background:#fff0fa}.classwork-marker-badge strong,.classwork-marker-badge span,.classwork-marker-badge small{color:#6f2458}.classwork-marker-badge .button{width:100%;margin-top:2px}.room-booking-badge{border-color:#9cdbea;background:#eefbff}.room-booking-badge strong,.room-booking-badge span,.room-booking-badge small{color:#075466}.instruction-suspension-badge{border-color:#f2d19b;background:#fff8e8}.instruction-suspension-badge strong,.instruction-suspension-badge span,.instruction-suspension-badge small{color:#7a4a00}.instructional-trip-badge{border-color:#c7d78d;background:#f7faee}.instructional-trip-badge strong,.instructional-trip-badge span,.instructional-trip-badge small{color:#4d6100}.room-change-form{display:grid;gap:6px;margin-top:6px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fbfdfe}.room-change-form label{display:grid;gap:4px;color:var(--muted);font-size:.75rem;font-weight:800}.room-change-form input,.room-change-form select{min-height:34px;border:1px solid var(--line);border-radius:9px;padding:7px 8px;background:#fff}.room-change-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.classwork-form{border-color:#e0b6d2;background:#fff8fc}.approvals-page{display:grid;gap:18px;min-width:0}.approvals-filter-panel{display:flex;align-items:center;gap:12px}.approval-list{display:grid;gap:10px}.approval-card{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,auto);gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-left:4px solid #f2a900;border-radius:14px;background:#fff}.approval-card.status-pending{border-left-color:#f2a900}.approval-card.status-approved{border-left-color:var(--success)}.approval-card.status-rejected{border-left-color:var(--danger)}.approval-card.status-cancelled{border-left-color:#83909d;background:#f7f8f9}.approval-main{display:grid;gap:3px;min-width:0}.approval-main strong,.approval-main span,.approval-main small{display:block;overflow-wrap:anywhere}.approval-main span{color:var(--text);font-weight:800}.approval-main small{color:var(--muted)}.approval-actions{display:grid;grid-template-columns:minmax(140px,1fr) auto auto;gap:8px;align-items:end}.approval-actions label{display:grid;gap:4px;color:var(--muted);font-size:.8rem;font-weight:800}.approval-actions input{min-height:38px;border:1px solid var(--line);border-radius:10px;padding:8px 9px;background:#fff}.approval-teacher-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}.approval-teacher-links button{padding:5px 7px;border:1px solid rgba(0,111,131,.24);border-radius:8px;background:#f4fbfc;color:var(--primary);font:inherit;font-size:.78rem;font-weight:900;cursor:pointer}.approval-schedule-dialog{width:min(820px,100%)}.approval-schedule-list{display:grid;gap:9px}.approval-schedule-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-left:5px solid var(--primary);border-radius:8px;background:#fff}.approval-schedule-row>span{display:grid;place-items:center;min-height:32px;border-radius:8px;background:var(--surface-2);color:var(--primary);font-weight:900}.approval-schedule-row div{display:grid;gap:3px;min-width:0}.approval-schedule-row strong,.approval-schedule-row small{overflow-wrap:anywhere}.approval-schedule-row small{color:var(--muted);font-weight:800}.room-changes-page{display:grid;gap:18px;min-width:0}.room-changes-filter-panel{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(170px,.6fr) minmax(220px,auto);gap:12px;align-items:end}.room-changes-filter-panel label:not(.simple-inline-check),.room-change-room-select{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:.84rem;font-weight:800}.room-changes-filter-panel input,.room-changes-filter-panel select,.room-change-room-select select{width:100%;min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font:inherit;min-width:0}.room-change-list-toggle{align-self:center}.room-change-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(290px,.72fr);gap:18px;align-items:start}.room-change-window,.room-change-candidate-panel{display:grid;gap:12px;min-width:0}.room-change-window-toolbar{display:grid;grid-template-columns:minmax(170px,auto) minmax(180px,1fr) auto;gap:10px;align-items:end}.room-change-week-table td{position:relative}.room-change-grid-lesson.status-released{border-color:#16794d47;border-left-color:var(--success);background:#f1fbf4}.room-change-grid-lesson.status-released strong{color:var(--success)}.room-change-grid-lesson.status-booking{border-color:#b7791f57;border-left-color:#b7791f;background:#fff8e6}.room-change-grid-lesson.status-booking strong{color:#8a5a10}.room-change-grid-lesson.status-booking,.room-change-grid-lesson.status-released{cursor:default}.room-change-free-cell{display:block;min-height:34px;padding:8px;border:1px dashed rgba(0,111,131,.22);border-radius:7px;background:#f7fbfc;color:var(--muted);font-size:.72rem;font-weight:900;text-align:center}.room-change-unit-summary{display:flex;flex-wrap:wrap;gap:7px;min-width:0}.room-change-unit-summary span{padding:6px 8px;border:1px solid rgba(0,111,131,.18);border-radius:7px;background:#f4fbfc;color:var(--primary);font-size:.78rem;font-weight:900}.room-change-candidate-list{gap:9px}.room-change-candidate-card{grid-template-columns:minmax(0,1fr);cursor:default}.room-change-candidate-card .button{width:100%}.room-change-slot-detail-list{display:grid;gap:3px;padding:8px;border-radius:7px;background:#f7f9fb}@media(max-width:1280px){.room-change-workspace-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-change-candidate-panel{grid-column:1 / -1}}@media(max-width:820px){.room-changes-filter-panel,.room-change-workspace-grid,.room-change-window-toolbar{grid-template-columns:1fr}.room-change-candidate-panel{grid-column:auto}}.room-changes-list-panel{display:grid;gap:12px}.room-change-list{display:grid;gap:10px}.room-change-card{display:grid;grid-template-columns:minmax(220px,1fr) minmax(140px,auto);gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:14px;background:#fff}.room-change-card.status-approved{border-left-color:var(--success)}.room-change-card.status-pending{border-left-color:#f2a900}.room-change-card.status-reported,.room-change-card.status-open,.room-change-card.status-active{border-left-color:var(--brand-cyan)}.room-change-card.status-requested{border-left-color:#f2a900;background:#fffaf0}.room-change-card.status-processed{border-left-color:var(--success);background:#f4fbf7}.room-change-card.status-rejected{border-left-color:var(--danger);background:snow}.room-change-card.status-cancelled{border-left-color:#83909d;background:#f7f8f9}.room-change-main{display:grid;gap:3px;min-width:0}.room-change-main strong,.room-change-main span,.room-change-main small{display:block;overflow-wrap:anywhere}.room-change-main span{color:var(--text);font-weight:800}.room-change-main small{color:var(--muted)}.room-change-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center}.substitution-planner-page{display:grid;gap:18px;min-width:0}.substitution-quick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.substitution-icon-button{width:44px;height:44px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--primary);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.substitution-icon-button:hover{background:#f4fbfc;border-color:var(--primary);transform:translateY(-1px)}.substitution-icon-button.active{background:var(--primary);border-color:var(--primary);color:#fff}.substitution-icon-button:focus-visible{outline:3px solid rgba(0,111,131,.22);outline-offset:2px}.substitution-icon-button svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.substitution-report-strip{display:grid;gap:14px}.substitution-report-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.substitution-report-chip{min-width:250px;max-width:320px;display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:8px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.substitution-report-chip.status-reported,.substitution-report-chip.status-open{border-left-color:var(--danger)}.substitution-report-chip.selected{border-color:var(--primary);box-shadow:0 0 0 3px #006f831a}.substitution-report-chip strong,.substitution-report-chip span{overflow-wrap:anywhere}.substitution-report-chip span{color:var(--muted);font-size:.84rem;font-weight:800}.substitution-report-notes{display:grid;gap:8px;padding:10px 12px;border:1px solid rgba(180,35,24,.22);border-left:5px solid var(--danger);border-radius:8px;background:#fff8f8}.substitution-report-notes div{display:grid;gap:3px}.substitution-report-notes strong{color:var(--danger);font-size:.78rem;text-transform:uppercase;letter-spacing:0}.substitution-report-notes span{color:var(--text);font-weight:800;overflow-wrap:anywhere}.substitution-planner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.substitution-planner-window{min-height:420px;display:grid;align-content:start;gap:14px}.substitution-mini-timetable,.substitution-candidate-list,.substitution-assignment-list,.substitution-reserve-list{display:grid;gap:9px;min-width:0}.substitution-mini-row{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:8px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.substitution-mini-row>span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--surface-2);color:var(--primary);font-weight:900}.substitution-mini-row strong,.substitution-mini-row small{overflow-wrap:anywhere}.substitution-mini-row small{grid-column:2 / -1;color:var(--muted);font-weight:800}.substitution-mini-row em{grid-column:3;grid-row:1;padding:4px 7px;border-radius:999px;background:#fff1f1;color:var(--danger);font-size:.74rem;font-style:normal;font-weight:900}.substitution-mini-row.absence-hit{border-left-color:var(--danger);background:#fff8f8}.substitution-mini-row.selected{border-color:var(--primary);box-shadow:0 0 0 3px #006f831a}.substitution-card-toolbar{display:grid;grid-template-columns:minmax(170px,1fr) minmax(190px,1.15fr) auto;gap:9px;align-items:end}.substitution-card-toolbar.extended{grid-template-columns:minmax(160px,.95fr) minmax(118px,.65fr) minmax(190px,1.1fr) auto}.substitution-card-toolbar .timetable-week-control{min-width:0}.substitution-card-toolbar input,.substitution-card-toolbar select{min-height:40px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text)}.substitution-card-select{display:grid;gap:5px;color:var(--muted);font-size:.82rem;font-weight:900}.substitution-weekend-check{min-height:40px;align-content:center;white-space:nowrap}.substitution-week-grid-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.substitution-week-table{width:100%;min-width:700px;border-collapse:separate;border-spacing:0;table-layout:fixed}.substitution-week-table th,.substitution-week-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top}.substitution-week-table th:last-child,.substitution-week-table td:last-child{border-right:0}.substitution-week-table tr:last-child th,.substitution-week-table tr:last-child td{border-bottom:0}.substitution-week-table thead th{padding:8px;background:var(--surface-2);color:var(--primary);text-align:left;font-size:.78rem}.substitution-week-table thead th span,.substitution-week-table thead th small{display:block}.substitution-week-table thead th small{color:var(--muted);font-weight:800}.substitution-week-table td{height:84px;padding:4px;background:#fbfcff}.substitution-slot-heading{position:sticky;left:0;z-index:2;width:88px;padding:7px!important;background:#fff!important;box-shadow:1px 0 0 var(--line)}.substitution-week-table thead .substitution-slot-heading{z-index:3;background:var(--surface-2)!important}.substitution-slot-heading strong,.substitution-slot-heading small{display:block}.substitution-slot-heading strong{color:var(--primary);font-size:.78rem}.substitution-slot-heading small{margin-top:3px;color:var(--muted);font-size:.7rem;font-weight:800;white-space:nowrap}.substitution-grid-lesson{width:100%;display:grid;gap:2px;margin-bottom:4px;padding:6px;border:1px solid rgba(0,111,131,.18);border-left:4px solid var(--primary);border-radius:7px;background:#eef4ff;color:var(--text);text-align:left;cursor:pointer;overflow-wrap:anywhere}.substitution-grid-lesson:last-child{margin-bottom:0}.substitution-grid-lesson strong{color:var(--primary);font-size:.76rem}.substitution-grid-lesson span,.substitution-grid-lesson small{color:var(--muted);font-size:.69rem;font-weight:800}.substitution-state-badges{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.substitution-state-badge{width:fit-content;padding:2px 5px;border-radius:999px;font-size:.64rem;font-style:normal;font-weight:900;line-height:1.2}.substitution-state-badge.tone-open{background:#fff8e6;color:#8a5a10;border:1px solid rgba(183,121,31,.24)}.substitution-state-badge.tone-cancelled{background:#fff;color:var(--danger);border:1px solid rgba(180,35,24,.22)}.substitution-state-badge.tone-covered{background:#eefbf3;color:#16794d;border:1px solid rgba(22,121,77,.22)}.substitution-state-badge.tone-changed{background:#eef6ff;color:var(--primary);border:1px solid rgba(0,111,131,.22)}.substitution-state-badge.tone-planned{background:#fff8e6;color:#8a5a10;border:1px solid rgba(183,121,31,.24)}.substitution-grid-lesson.absence-hit,.substitution-grid-lesson.state-cancelled{border-color:#b423185c;border-left-color:var(--danger);background:#fff1f1}.substitution-grid-lesson.absence-hit strong,.substitution-grid-lesson.state-cancelled strong{color:var(--danger)}.substitution-grid-lesson.state-open{border-color:#b7791f57;border-left-color:#b7791f;background:#fff8e6}.substitution-grid-lesson.state-open strong{color:#8a5a10}.substitution-grid-lesson.state-covered{border-color:#16794d47;border-left-color:#16794d;background:#f1fbf4}.substitution-grid-lesson.state-covered strong{color:#16794d}.substitution-grid-lesson.state-changed{border-color:#006f8347;border-left-color:var(--primary);background:#eef6ff}.substitution-grid-lesson.state-planned{border-color:#b7791f57;border-left-color:#b7791f;background:#fff8e6}.substitution-grid-lesson.state-planned strong{color:#8a5a10}.substitution-grid-lesson.selected{border-color:var(--primary);box-shadow:0 0 0 3px #006f831f}.substitution-grid-lesson.absence-hit.selected,.substitution-grid-lesson.state-cancelled.selected{border-color:var(--danger);box-shadow:0 0 0 3px #b4231826}.substitution-grid-lesson.state-open.selected{border-color:#b7791f;box-shadow:0 0 0 3px #b7791f29}.substitution-grid-lesson:focus-visible{outline:3px solid rgba(0,111,131,.22);outline-offset:2px}.substitution-grid-lesson:disabled{cursor:default;opacity:1}.substitution-grid-free-slot{width:100%;min-height:54px;display:grid;align-content:center;gap:2px;padding:6px;border:1px dashed rgba(105,116,131,.38);border-radius:7px;background:#f7fafc;color:var(--muted);text-align:left;cursor:pointer}.substitution-grid-free-slot strong{color:var(--muted);font-size:.74rem}.substitution-grid-free-slot small{color:var(--muted);font-size:.68rem;font-weight:800}.substitution-grid-free-slot.selected{border-color:var(--primary);border-style:solid;background:#f4fbfc;box-shadow:0 0 0 3px #006f831f}.substitution-context-menu{position:fixed;z-index:90;min-width:220px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 16px 40px #0d1f2d2e}.substitution-context-menu button{width:100%;padding:9px 10px;border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left;font-weight:900;cursor:pointer}.substitution-context-menu button:hover,.substitution-context-menu button:focus-visible{background:var(--surface-2);outline:none}@media(max-width:1180px){.substitution-card-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.substitution-weekend-check{justify-self:start}}@media(max-width:560px){.substitution-card-toolbar{grid-template-columns:1fr}.substitution-week-table{min-width:620px}}.substitution-candidate-card{width:100%;display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-left:5px solid var(--brand-cyan);border-radius:8px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.substitution-candidate-section{display:block;margin-top:2px;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:0}.substitution-candidate-card.manual{border-left-color:#9aa5b1;background:#fbfcfd}.substitution-candidate-card.selected{border-color:var(--primary);background:#f4fbfc;box-shadow:0 0 0 3px #006f831a}.substitution-candidate-card span,.substitution-candidate-card small{color:var(--muted);font-weight:800;overflow-wrap:anywhere}.substitution-assignment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.substitution-assignment-form label{display:grid;gap:5px;color:var(--muted);font-weight:800}.substitution-assignment-form input,.substitution-assignment-form select,.substitution-assignment-form textarea,.substitution-reserve-row input,.substitution-reserve-row select{min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text)}.substitution-assignment-form textarea{min-height:84px;resize:vertical}.substitution-assignment-form .button{grid-column:1 / -1}.substitution-target-preview{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:10px 12px;border:1px solid rgba(0,111,131,.22);border-left:5px solid var(--brand-cyan);border-radius:8px;background:#f4fbfc}.substitution-target-preview strong,.substitution-target-preview span{overflow-wrap:anywhere}.substitution-target-preview span{color:var(--muted);font-weight:800}.substitution-target-preview .button{grid-column:2;grid-row:1 / span 2}.substitution-assignment-card{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.substitution-assignment-card span,.substitution-assignment-card small{color:var(--muted);font-weight:800;overflow-wrap:anywhere}.substitution-reserve-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(150px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:end;padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff}.substitution-reserve-row label{display:grid;gap:5px;color:var(--muted);font-weight:800}.substitution-bookings-page{display:grid;gap:18px;min-width:0}.substitution-bookings-list-panel{display:grid;gap:14px}.substitution-booking-filter{display:grid;gap:6px;color:var(--muted);font-weight:800}.substitution-booking-filter input{width:100%;min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font:inherit}.substitution-bookings-list{display:grid;gap:10px;min-width:0}.substitution-booking-card{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.9fr) auto;gap:12px;padding:13px;border:1px solid var(--line);border-left:5px solid var(--brand-cyan);border-radius:8px;background:#fff;min-width:0}.substitution-booking-card.status-booked{border-left-color:var(--success)}.substitution-booking-card.status-planned{border-left-color:#f2a900}.substitution-booking-card.status-cancelled{border-left-color:#83909d;background:#f7f8f9}.substitution-booking-main,.substitution-booking-teachers{display:grid;gap:5px;min-width:0}.substitution-booking-chain{grid-column:1 / -1;display:grid;gap:5px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#f7f9fb;min-width:0}.substitution-booking-main strong,.substitution-booking-main span,.substitution-booking-main small,.substitution-booking-teachers span,.substitution-booking-chain span,.substitution-booking-card p{overflow-wrap:anywhere}.substitution-booking-main span,.substitution-booking-main small,.substitution-booking-teachers span,.substitution-booking-chain span,.substitution-booking-card p{color:var(--muted);font-weight:800}.substitution-booking-actions{display:flex;align-items:start;justify-content:flex-end}.substitution-booking-card p{grid-column:1 / -1;margin:0}.timetable-lesson-card.sda-substitution-context{border-left-color:var(--brand-cyan);background:#f4fbfc}.timetable-lesson-card.sda-substitution-context.has-cancelled-substitution{border-left-color:var(--danger);background:#fff8f8}.substitution-event-badge.sda-cover{border-color:#006f8340;background:#f4fbfc}.substitution-event-badge.sda-cancelled{border-color:#efc5c5;background:#fff8f8}.workflow-page{display:grid;gap:18px;min-width:0}.workflow-form-panel{display:grid;gap:14px}.workflow-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workflow-form label{display:grid;gap:6px;color:var(--muted);font-size:.84rem;font-weight:800;min-width:0}.workflow-picker-field{display:grid;gap:8px;min-width:0;color:var(--muted);font-size:.84rem;font-weight:800}.workflow-picker-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.workflow-selected-chip-list{display:flex;flex-wrap:wrap;gap:7px;min-width:0}.workflow-selected-chip{max-width:100%;padding:7px 9px;border:1px solid rgba(0,111,131,.22);border-radius:8px;background:#f4fbfc;color:var(--primary);font:inherit;font-size:.8rem;font-weight:900;overflow-wrap:anywhere;cursor:pointer}.workflow-selection-dialog{width:min(760px,100%)}.workflow-selection-search{display:grid;gap:6px;margin-bottom:12px;color:var(--muted);font-weight:800}.workflow-selection-search input{min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font:inherit}.workflow-selection-list{display:grid;gap:8px}.workflow-selection-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:8px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.workflow-selection-row.selected{border-left-color:var(--success);background:#f4fbf7}.workflow-selection-row strong,.workflow-selection-row small{overflow-wrap:anywhere}.workflow-selection-row small{color:var(--muted);font-weight:800}.workflow-selection-row span{grid-column:2;grid-row:1 / span 2;color:var(--primary);font-weight:900}.workflow-option-field{display:grid;gap:8px;min-width:0;margin:0;padding:0;border:0}.workflow-option-field legend{margin-bottom:2px;color:var(--muted);font-size:.84rem;font-weight:800}.workflow-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.workflow-option-chip{min-height:42px;display:flex!important;align-items:center;gap:8px!important;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text)!important;font-size:.84rem!important}.workflow-option-chip input{width:auto!important;min-height:auto!important}.workflow-option-chip span{min-width:0;overflow-wrap:anywhere}.workflow-form input,.workflow-form select,.workflow-form textarea{width:100%;min-height:42px;border:1px solid var(--line);border-radius:11px;padding:9px 10px;background:#fff;color:var(--text);font:inherit;min-width:0}.workflow-form textarea{min-height:88px;resize:vertical}.workflow-checkbox{align-self:end;min-height:42px;display:flex!important;align-items:center}.workflow-span-2,.workflow-submit{grid-column:1 / -1}.timetable-version-details summary{cursor:pointer;font-weight:800;color:var(--primary)}.timetable-version-details[open] summary{margin-bottom:12px}.timetable-version-control{display:grid;gap:6px;max-width:760px;margin-bottom:12px;color:var(--muted);font-weight:700}.timetable-version-control select{min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text)}.timetable-version-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.timetable-version-row small{display:block;margin-top:3px;color:var(--muted)}.media-page{min-width:0}.media-filter-panel{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(220px,1fr) minmax(220px,1fr) auto;gap:12px;align-items:end}.media-filter-panel label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:.84rem;font-weight:800}.media-filter-panel input,.media-filter-panel select,.media-return-actions select{min-height:42px;width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fff;color:var(--text);font:inherit}.media-forms-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px;align-items:start}.media-split-layout{display:grid;grid-template-columns:minmax(320px,1.35fr) minmax(260px,.65fr);gap:14px;align-items:start}.media-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}.media-list-panel,.media-card-list,.media-simple-card{display:grid;gap:10px;min-width:0}.media-chip-list{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.media-simple-card{padding:12px;border:1px solid var(--line);border-left:5px solid var(--brand-cyan);border-radius:8px;background:#fff}.media-simple-card strong,.media-simple-card span,.media-simple-card small,.media-loan-card strong,.media-loan-card span,.media-loan-card small{overflow-wrap:anywhere}.media-simple-card span,.media-simple-card small{color:var(--muted);font-weight:800}.media-simple-card div{display:flex;flex-wrap:wrap;gap:7px}.media-return-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.media-return-actions select{width:min(180px,100%)}.media-return-actions input{min-height:42px;width:min(220px,100%);border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fff;color:var(--text);font:inherit}.classbook-content-panel,.classbook-attendance-panel{display:grid;gap:16px}.classbook-page [hidden]{display:none!important}.classbook-hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.classbook-entry-panel{display:grid;gap:16px;border-left:5px solid #f2a900}.classbook-assessment-panel{display:grid;gap:16px;border-left:5px solid var(--brand-green)}.classbook-overview-panel{display:grid;gap:16px}.classbook-workspace-nav-panel{display:grid;gap:12px}.classbook-workspace-tabs{width:100%;overflow-x:auto;align-items:stretch}.classbook-workspace-tabs button{flex:1 1 150px;min-width:max-content;white-space:nowrap}.classbook-overview-summary,.classbook-overview-controls,.classbook-overview-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.classbook-overview-controls{padding:12px;border-radius:16px;background:var(--surface-2)}.button-toggle{display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}.button-toggle button{min-height:38px;padding:8px 13px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.button-toggle button:last-child{border-right:0}.button-toggle button.active{background:var(--primary);color:#fff}.classbook-overview-date{display:grid;gap:4px;color:var(--muted);font-size:.8rem;font-weight:800}.classbook-overview-date input,.classbook-overview-date select{min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text)}.classbook-primary-filter{min-width:min(100%,260px)}.classbook-overview-days{display:grid;gap:14px}.classbook-overview-day{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:18px;background:#fbfdfe}.classbook-overview-day header{display:flex;justify-content:space-between;gap:10px;align-items:center}.classbook-overview-day h4{margin:0;color:var(--primary)}.classbook-overview-day header span,.classbook-overview-empty{color:var(--muted);font-size:.9rem}.classbook-overview-day-progress{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.classbook-overview-card{width:100%;display:grid;grid-template-columns:96px minmax(0,1fr) minmax(150px,auto);gap:14px;align-items:stretch;padding:14px;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:18px;background:#fff;color:var(--text);text-align:left;box-shadow:0 8px 20px #1023400a;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.classbook-overview-card:hover{transform:translateY(-1px);border-color:#006f8352;box-shadow:0 12px 28px #10234014}.classbook-overview-card.state-complete{border-left-color:var(--brand-green)}.classbook-overview-card.state-partial{border-left-color:#f2a900}.classbook-overview-timebox{display:grid;align-content:center;justify-items:center;gap:5px;min-height:86px;padding:10px;border-radius:15px;background:linear-gradient(180deg,#eef8f9,#f8fbfb);color:var(--primary)}.classbook-overview-timebox strong{font-size:1.05rem}.classbook-overview-timebox span{color:var(--muted);font-size:.78rem;font-weight:800;text-align:center}.classbook-overview-card-main{min-width:0;display:grid;gap:10px}.classbook-overview-card-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.classbook-overview-card-head strong{color:var(--primary-strong);font-size:1rem}.classbook-progress-pill{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.78rem;font-weight:900}.classbook-progress-pill.complete{background:#e9f7df;color:var(--success)}.classbook-progress-pill.partial{background:#f2a9002b;color:#7d5a00}.classbook-overview-card-head span,.classbook-overview-meta,.classbook-overview-chips small{color:var(--muted)}.classbook-overview-meta{display:flex;flex-wrap:wrap;gap:7px 12px;font-size:.84rem}.classbook-overview-meta span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:var(--surface-2)}.classbook-overview-meta b{color:var(--primary)}.classbook-overview-docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.classbook-overview-docs>div{min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:#fbfdfe}.classbook-overview-docs span{display:block;margin-bottom:4px;color:var(--primary);font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.02em}.classbook-overview-docs p{margin:0;line-height:1.35;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.classbook-overview-actions{align-self:center;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.classbook-overview-actions .button{min-height:34px}.classbook-overview-open-indicator{align-self:center;display:inline-flex;align-items:center;min-height:36px;padding:8px 12px;border-radius:12px;background:var(--primary);color:#fff;font-size:.84rem;font-weight:900}.classbook-content-results{display:grid;gap:12px}.classbook-content-card{width:100%;display:grid;grid-template-columns:minmax(150px,190px) minmax(0,1fr) minmax(150px,auto);gap:14px;align-items:stretch;padding:14px;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:18px;background:#fff;color:var(--text);text-align:left;box-shadow:0 8px 20px #1023400a;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.classbook-content-card:hover{transform:translateY(-1px);border-color:#006f8352;box-shadow:0 12px 28px #10234014}.classbook-content-card.state-complete{border-left-color:var(--brand-green)}.classbook-content-card.state-partial{border-left-color:#f2a900}.classbook-content-card-date{display:grid;align-content:center;gap:6px;min-height:104px;padding:12px;border-radius:15px;background:linear-gradient(180deg,#eef8f9,#f8fbfb);color:var(--primary)}.classbook-content-card-date strong{line-height:1.22}.classbook-content-card-date span{color:var(--muted);font-size:.82rem;font-weight:800}.classbook-content-card-main{min-width:0;display:grid;gap:10px}.classbook-content-doc-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px}.classbook-content-doc-grid>div{min-width:0;padding:10px;border:1px solid var(--line);border-radius:13px;background:#fbfdfe}.classbook-content-doc-grid span{display:block;margin-bottom:4px;color:var(--primary);font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.02em}.classbook-content-doc-grid p{margin:0;line-height:1.35;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.classbook-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.classbook-form label{display:grid;gap:6px;color:var(--muted);font-weight:700}.classbook-form label:first-child{grid-column:span 2}.classbook-form textarea{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);resize:vertical}.classbook-form textarea:disabled{background:var(--surface-2)}.classbook-followup-option{display:inline-flex;align-items:center;gap:8px;width:fit-content;max-width:100%;color:var(--text);font-weight:700}.classbook-followup-option input{width:18px;height:18px;margin:0}.classbook-form .button{justify-self:start}.classbook-entry-summary,.classbook-entry-actions,.classbook-entry-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.classbook-entry-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:12px;border-radius:16px;background:var(--surface-2)}.classbook-entry-form label{display:grid;gap:5px;color:var(--muted);font-size:.82rem;font-weight:800}.classbook-entry-form input,.classbook-entry-form select,.classbook-entry-form textarea{min-height:40px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text)}.classbook-entry-form textarea{resize:vertical}.classbook-entry-check{align-content:end;grid-template-columns:auto minmax(0,1fr);align-items:center;min-height:40px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text)!important}.classbook-entry-check input{width:auto;min-height:auto;padding:0;border:0}.classbook-entry-participants{grid-column:1 / -1;display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:13px;background:#fff}.classbook-entry-participants>div:first-child{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.82rem;font-weight:800}.classbook-student-checkbox-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:190px;overflow:auto;padding-right:4px}.classbook-student-checkbox-list label{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;padding:7px 8px;border-radius:10px;background:var(--surface-2);color:var(--text);font-weight:700}.classbook-student-checkbox-list input{width:auto;min-height:auto;padding:0;border:0}.classbook-entry-wide{grid-column:span 2}.classbook-entry-form .button{align-self:end}.classbook-assessment-create{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);overflow:hidden}.classbook-assessment-create summary{cursor:pointer;padding:11px 13px;color:var(--primary);font-weight:900}.classbook-assessment-create[open] summary{border-bottom:1px solid var(--line)}.classbook-mandatory-block{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdfe}.classbook-mandatory-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.classbook-mandatory-head strong{color:var(--primary);font-size:1.02rem}.classbook-mandatory-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px}.classbook-mandatory-card{display:flex;justify-content:space-between;align-items:start;gap:10px;padding:11px;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:13px;background:#fff}.classbook-mandatory-card.state-fulfilled{border-left-color:var(--brand-green);background:#f7fcf4}.classbook-mandatory-card.state-due_soon{border-left-color:#f2a900;background:#fffbf0}.classbook-mandatory-card.state-overdue{border-left-color:var(--danger);background:snow}.classbook-mandatory-card>div{min-width:0;display:grid;gap:4px}.classbook-mandatory-card strong{color:var(--primary);overflow-wrap:anywhere}.classbook-mandatory-card small{color:var(--muted);font-weight:800}.classbook-mandatory-card .chip{flex:0 0 auto}.classbook-mandatory-create{background:#fff}.classbook-mandatory-overview{border-left:5px solid var(--brand-green)}.classbook-mandatory-overview-list{display:grid;gap:10px}.classbook-mandatory-overview-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,auto);gap:12px;align-items:start;padding:14px;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:16px;background:#fff;box-shadow:0 8px 20px #1023400a}.classbook-mandatory-overview-card.is-clickable{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.classbook-mandatory-overview-card.is-clickable:hover,.classbook-mandatory-overview-card.is-clickable:focus-visible{border-color:var(--brand-green);box-shadow:0 12px 28px #1023401f;outline:none;transform:translateY(-1px)}.classbook-mandatory-overview-card.is-disabled{cursor:not-allowed;opacity:.78}.classbook-mandatory-overview-card.state-fulfilled{border-left-color:var(--brand-green);background:#f7fcf4}.classbook-mandatory-overview-card.state-due_soon{border-left-color:#f2a900;background:#fffbf0}.classbook-mandatory-overview-card.state-overdue{border-left-color:var(--danger);background:snow}.classbook-mandatory-overview-main{min-width:0;display:grid;gap:6px}.classbook-mandatory-overview-main strong{color:var(--primary);overflow-wrap:anywhere}.classbook-mandatory-overview-main small{color:var(--muted);font-weight:800}.classbook-mandatory-overview-meta,.classbook-mandatory-overview-matches,.classbook-mandatory-overview-state{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.classbook-mandatory-overview-meta span,.classbook-mandatory-overview-matches span{display:inline-flex;gap:5px;padding:5px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.82rem;font-weight:800}.classbook-mandatory-overview-meta b{color:var(--primary)}.classbook-mandatory-overview-matches span{background:#eef8f9;color:var(--primary)}.classbook-mandatory-overview-state{justify-content:flex-end}.mandatory-bulk-panel{border-left:5px solid var(--brand-green)}.mandatory-class-picker{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.mandatory-class-filter{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.mandatory-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;max-height:260px;overflow:auto;padding-right:4px}.mandatory-class-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:800}.mandatory-class-option input{width:18px;height:18px}.mandatory-class-option span{overflow-wrap:anywhere}.mandatory-result-list{display:flex;flex-wrap:wrap;gap:8px}.classbook-assessment-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:12px;border-radius:16px;background:var(--surface-2)}.classbook-assessment-form label,.classbook-assessment-student-row label{display:grid;gap:5px;color:var(--muted);font-size:.82rem;font-weight:800}.classbook-assessment-form input,.classbook-assessment-form select,.classbook-assessment-student-row input,.classbook-assessment-student-row select{min-height:40px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text)}.classbook-assessment-check,.classbook-assessment-visibility-toggle{display:inline-flex!important;align-items:center;gap:8px;width:fit-content;max-width:100%;color:var(--text)!important;font-weight:800}.classbook-assessment-check{align-self:end;min-height:40px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff}.classbook-assessment-check input,.classbook-assessment-visibility-toggle input{width:18px;min-height:18px;height:18px;margin:0;padding:0}.classbook-assessment-wide{grid-column:span 2}.classbook-assessment-form .button{align-self:end}.classbook-assessment-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.classbook-assessment-grid-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.classbook-assessment-grid{width:100%;min-width:680px;border-collapse:separate;border-spacing:0}.classbook-assessment-grid th,.classbook-assessment-grid td{padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle}.classbook-assessment-grid tr:last-child th,.classbook-assessment-grid tr:last-child td{border-bottom:0}.classbook-assessment-grid th:first-child{position:sticky;left:0;z-index:2;min-width:170px;max-width:230px;background:#fbfdfe;color:var(--primary);text-align:left;overflow-wrap:anywhere}.classbook-assessment-grid thead th{position:sticky;top:0;z-index:3;background:var(--surface-2)}.classbook-assessment-grid thead th:first-child{z-index:4;background:var(--surface-2)}.classbook-assessment-grid th button,.classbook-assessment-cell{width:100%;min-height:54px;display:grid;align-content:center;gap:3px;padding:7px 8px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.classbook-assessment-grid th button strong,.classbook-assessment-cell strong{color:var(--primary);font-size:.88rem;overflow-wrap:anywhere}.classbook-assessment-grid th button span,.classbook-assessment-cell span{color:var(--muted);font-size:.74rem;font-weight:800}.classbook-assessment-grid th button.selected,.classbook-assessment-cell.selected{border-color:#006f8347;background:#eef8f9}.classbook-assessment-cell.recorded{background:#e9f7df}.classbook-assessment-cell.present{background:#f3fbef}.classbook-assessment-cell.absent,.classbook-assessment-cell.excused,.classbook-assessment-cell.not_assessed{background:#fff8e8}.classbook-assessment-cell.missing{color:var(--muted);background:#f7f8f9}.classbook-assessment-workspace{display:grid;grid-template-columns:minmax(190px,260px) minmax(0,1fr);gap:12px;align-items:start}.classbook-assessment-picker{display:grid;gap:8px;max-height:430px;overflow:auto;padding-right:4px}.classbook-assessment-picker-button{width:100%;display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:13px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.classbook-assessment-picker-button.selected{border-left-color:var(--brand-green);background:#f4fbf1;box-shadow:inset 0 0 0 1px #57963624}.classbook-assessment-picker-button strong{color:var(--primary);overflow-wrap:anywhere}.classbook-assessment-picker-button span,.classbook-assessment-picker-button small{color:var(--muted);font-weight:800}.classbook-assessment-list,.classbook-assessment-card,.classbook-assessment-student-list{display:grid;gap:10px}.classbook-assessment-card{padding:14px;border:1px solid var(--line);border-left:5px solid var(--brand-green);border-radius:16px;background:#fff}.classbook-assessment-card.status-draft{border-left-color:var(--muted)}.classbook-assessment-card.status-locked{border-left-color:var(--primary);background:#f8fbfb}.classbook-assessment-card.status-archived{border-left-color:#83909d;background:#f7f8f9}.classbook-assessment-student-row{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(130px,.8fr) minmax(100px,.55fr) minmax(160px,1fr) minmax(130px,auto);gap:9px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:13px;background:#fbfdfe}.classbook-assessment-student-row strong{align-self:center;min-width:0;color:var(--primary);overflow-wrap:anywhere}.classbook-assessment-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;align-items:center}.performance-assessments-page{display:grid;gap:18px;min-width:0}.performance-assessments-hero{border-top:5px solid var(--brand-green)}.performance-assessment-hero-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.performance-assessment-create-panel{display:grid;gap:12px;border-left:5px solid var(--brand-green)}.performance-assessment-create-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:11px;align-items:end}.performance-assessment-create-form label{display:grid;gap:5px;color:var(--muted);font-size:.82rem;font-weight:800}.performance-assessment-create-form input,.performance-assessment-create-form select{min-height:42px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font:inherit}.performance-assessment-create-form .performance-assessment-wide{grid-column:span 3}.performance-assessment-filter-panel{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:11px;align-items:end}.performance-assessment-filter-panel label{display:grid;gap:5px;color:var(--muted);font-size:.82rem;font-weight:800}.performance-assessment-filter-panel select{min-height:42px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text)}.performance-assessment-grid-panel{display:grid;gap:14px;border-left:5px solid var(--brand-green)}.performance-assessment-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff;overscroll-behavior-inline:contain}.performance-assessment-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:.84rem}.performance-assessment-table th,.performance-assessment-table td{min-width:172px;max-width:220px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top}.performance-assessment-table tr:last-child th,.performance-assessment-table tr:last-child td{border-bottom:0}.performance-assessment-table thead th{position:sticky;top:0;z-index:3;background:var(--surface-2)}.performance-assessment-table th:first-child{position:sticky;left:0;z-index:4;min-width:210px;max-width:230px;background:#fbfdfe;color:var(--primary);text-align:left;overflow-wrap:anywhere;box-shadow:1px 0 0 var(--line)}.performance-assessment-table thead th:first-child{z-index:5;background:var(--surface-2)}.performance-assessment-student{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center}.performance-assessment-student img,.performance-assessment-student-initials{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:#eef8f9;object-fit:cover}.performance-assessment-student-initials{display:grid;place-items:center;color:var(--primary);font-size:.72rem;font-weight:900}.performance-assessment-student span:last-child{min-width:0;overflow-wrap:anywhere}.performance-assessment-heading{display:grid;gap:4px;min-width:0}.performance-assessment-heading strong{color:var(--primary);overflow-wrap:anywhere}.performance-assessment-heading span,.performance-assessment-heading small{color:var(--muted);font-weight:800;overflow-wrap:anywhere}.performance-assessment-heading div,.performance-assessment-cell-footer{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.performance-assessment-table td.state-recorded{background:#f0faea}.performance-assessment-table td.state-present{background:#f7fcf4}.performance-assessment-table td.state-absent,.performance-assessment-table td.state-excused,.performance-assessment-table td.state-not_assessed{background:#fff8e8}.performance-assessment-table td.state-missing{background:#f7f8f9;color:var(--muted)}.performance-assessment-cell-editor{display:grid;gap:6px;min-width:0}.performance-assessment-cell-editor select{width:100%;min-height:34px;min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);font:inherit}.performance-assessment-cell-editor strong{color:var(--primary);overflow-wrap:anywhere}.performance-assessment-cell-footer{justify-content:space-between}.performance-assessment-cell-footer small{color:var(--muted);font-weight:800}.performance-assessment-missing{display:grid;min-height:74px;place-items:center;color:var(--muted);font-weight:900}.classbook-entry-list{display:grid;gap:10px}.classbook-entry-card{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-left:5px solid var(--muted);border-radius:16px;background:#fff}.classbook-entry-card.status-clarification{border-left-color:#f2a900;background:#fffbf0}.classbook-entry-card.status-closed{border-left-color:var(--brand-green)}.classbook-entry-card-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.classbook-entry-card-head strong,.classbook-entry-card-head small{display:block;margin-top:3px}.classbook-entry-card-head small,.classbook-entry-meta{color:var(--muted)}.classbook-entry-card p{margin:0;line-height:1.4;overflow-wrap:anywhere}.classbook-attendance-open{justify-self:start}.classbook-attendance-summary,.classbook-attendance-toolbar,.classbook-dialog-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.classbook-attendance-toolbar{justify-content:flex-start}.classbook-offline-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.classbook-dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#0a18309e}.classbook-attendance-dialog{width:min(1060px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:20px;border-radius:18px;background:var(--surface);box-shadow:0 24px 70px #0000004d}.classbook-assessment-dialog{width:min(1220px,100%)}.classbook-assessment-dialog .classbook-assessment-workspace{align-items:start}.classbook-assessment-dialog .classbook-assessment-picker{max-height:calc(100vh - 180px)}.classbook-dialog-header{position:sticky;top:-20px;z-index:2;display:flex;justify-content:space-between;gap:14px;margin:-20px -20px 16px;padding:18px 20px;border-bottom:1px solid var(--line);background:var(--surface)}.classbook-dialog-header h3,.classbook-dialog-header p{margin:0}.classbook-attendance-list{display:grid;gap:10px}.classbook-attendance-card{display:grid;grid-template-columns:68px minmax(180px,1fr) minmax(260px,auto);align-items:center;gap:14px;padding:11px 13px;border:1px solid var(--line);border-left:5px solid var(--success);border-radius:14px;background:#fff}.classbook-attendance-card.pending{border-left-color:var(--muted);background:#fbfcff}.classbook-attendance-card.absent{border-left-color:#b42318;background:#fff6f5}.classbook-attendance-card.offline-pending{border-style:dashed;box-shadow:inset 0 0 0 1px #f2a90038}.classbook-student-photo{width:64px;height:64px;overflow:hidden;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);color:var(--primary);font-weight:800}.classbook-student-photo img{width:100%;height:100%;object-fit:cover}.classbook-student-main{min-width:0;display:grid;gap:6px}.classbook-status-line{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:var(--muted)}.classbook-offline-note{color:#7d5a00;font-weight:800}.classbook-attendance-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.classbook-time-editor{grid-column:2 / -1;display:flex;flex-wrap:wrap;align-items:end;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.classbook-time-editor label{display:grid;gap:4px;color:var(--muted);font-weight:700}.classbook-time-editor input{min-height:38px;padding:7px 9px;border:1px solid var(--line);border-radius:10px}.student-portal-page{display:grid;gap:18px;min-width:0}.student-portal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-top:5px solid var(--brand-cyan)}.student-portal-head h2{margin:4px 0 6px;font-size:1.9rem}.student-portal-head p{margin:0;color:var(--muted);font-weight:800}.student-portal-groups,.student-absence-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.student-portal-section{display:grid;gap:14px}.student-grade-groups{display:grid;gap:12px}.student-grade-group{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfdfe}.student-grade-group h4{margin:0;color:var(--primary)}.student-grade-list,.student-attendance-list,.student-timetable-list{display:grid;gap:8px}.student-grade-row,.student-attendance-row,.student-timetable-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.student-attendance-row.open{border-left:5px solid var(--danger);background:snow}.student-timetable-row.instruction_suspension{border-left:5px solid #f2a900;background:#fffaf0}.student-grade-row strong,.student-attendance-row strong,.student-timetable-row strong{display:block;color:var(--text);overflow-wrap:anywhere}.student-grade-row small,.student-attendance-row small,.student-timetable-row small{color:var(--muted);font-weight:800}.student-attendance-row div,.student-timetable-row div{display:grid;gap:3px}.student-grade-row p{grid-column:1 / -1;margin:0;color:var(--muted)}.student-attendance-actions{justify-items:end}.student-excuse-form{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.student-excuse-form label{display:grid;gap:5px;color:var(--muted);font-weight:800}.student-excuse-wide{grid-column:span 3}.student-excuse-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.company-students-page{display:grid;gap:18px;min-width:0}.company-students-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-top:5px solid var(--brand-green)}.company-students-head h2{margin:4px 0 6px;font-size:1.9rem}.company-students-head p{margin:0;color:var(--muted);font-weight:800}.company-students-head label{min-width:210px;display:grid;gap:6px;color:var(--muted);font-weight:800}.company-students-head select{min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text)}.company-students-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:18px;align-items:start}.company-student-list{display:grid;gap:8px;align-content:start}.company-student-button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.company-student-button.active{border-left:5px solid var(--brand-green);background:#f7fcf3}.company-student-button strong,.company-student-button small{display:block;overflow-wrap:anywhere}.company-student-button small{margin-top:3px;color:var(--muted);font-weight:800}.company-student-button em{padding:5px 8px;border-radius:999px;background:var(--surface-2);color:var(--primary);font-style:normal;font-weight:900;white-space:nowrap}.company-student-detail{display:grid;gap:14px}.company-student-detail h3{margin:4px 0 5px}.company-student-detail p{margin:0;color:var(--muted);font-weight:800}.company-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.company-summary-grid span{display:grid;gap:2px;padding:10px;border-radius:12px;background:var(--surface-2);color:var(--muted);text-align:center;font-size:.78rem;font-weight:800}.company-summary-grid b{color:var(--text);font-size:1.15rem}.company-attendance-list{display:grid;gap:8px}.company-attendance-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.company-attendance-row strong,.company-attendance-row small{display:block;overflow-wrap:anywhere}.company-attendance-row small{margin-top:3px;color:var(--muted);font-weight:800}@media(max-width:1050px){.timetable-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.company-students-grid{grid-template-columns:1fr}.company-student-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.school-year-changeover-components{grid-template-columns:1fr}}.chip.advisory{background:#edf7fb;border:1px solid #b9dfe9;color:#12657a;font-weight:700}.chip.advisory.confirmed{background:#edf8e7;border-color:#cceac0;color:#2d6b1f}.chip.advisory.rejected,.chip.advisory.cancelled{background:#f4f6f7;border-color:#d6dee2;color:#59686f}.classbook-advisory-dialog{max-width:720px}.classbook-advisory-form{display:grid;gap:12px}.advisory-filter-toolbar{align-items:end}.advisory-visit-list{display:grid;gap:14px}.advisory-visit-card{border-left:5px solid var(--brand-green)}.advisory-visit-card.status-confirmed{border-left-color:var(--brand-teal)}.advisory-visit-card.status-rejected,.advisory-visit-card.status-cancelled{border-left-color:#8a9aa2}.advisory-decision-form{display:grid;gap:12px;margin-top:12px}@media(max-width:760px){.sidebar{padding:12px;gap:10px}.brand-block{grid-template-columns:168px minmax(0,1fr);align-items:center}.brand-logo{width:168px;max-height:92px;border-radius:12px}.sidebar-nav{display:flex;align-items:stretch;gap:6px;overflow-x:auto}.nav-tree-group{display:block;margin:0;min-width:max-content}.nav-tree-toggle{display:none}.nav-tree-toggle.nav-tree-single{display:flex;min-width:144px}.nav-tree-items{display:flex;gap:6px;padding:0;border:0}.nav-subgroup{display:contents}.nav-subgroup-title{display:none}.nav-item{min-width:128px;padding:9px 11px}.sidebar-roadmap,.sidebar-legal{display:none}.timetable-filter-panel{grid-template-columns:1fr}.timetable-layout-actions{width:100%;justify-content:flex-start}.timetable-week-table{min-width:760px}.timetable-week-table.timetable-day-table{min-width:360px}.timetable-week-table td{height:76px}.timetable-slot-heading{width:78px}.timetable-lesson-card{padding:5px}.timetable-list-row{grid-template-columns:1fr}.timetable-list-time{min-height:auto;grid-template-columns:auto 1fr;justify-items:start}.teacher-subject-transfer{grid-template-columns:1fr}.teacher-subject-list{max-height:220px}.approval-card,.approval-actions,.room-change-card,.workflow-form,.media-filter-panel,.media-forms-grid,.media-split-layout,.media-columns{grid-template-columns:1fr}.media-return-actions{justify-content:flex-start}.media-return-actions select,.media-return-actions .button{flex:1 1 140px}.workflow-picker-head{display:grid}.workflow-picker-head .button{width:100%}.workflow-selection-row{grid-template-columns:1fr}.workflow-selection-row span{grid-column:auto;grid-row:auto}.approval-schedule-row{grid-template-columns:1fr}.approval-schedule-row>span{width:42px}.room-change-actions{justify-content:flex-start}.room-change-actions .button{flex:1 1 140px}.timetable-hero,.classbook-hero{align-items:flex-start}.classbook-hero-actions{width:100%;justify-content:stretch}.classbook-hero-actions .button{flex:1 1 160px}.classbook-workspace-tabs{flex-wrap:nowrap}.classbook-workspace-tabs button{flex:0 0 auto;min-width:168px}.classbook-overview-controls{align-items:stretch}.classbook-overview-controls .button,.classbook-overview-date{flex:1 1 150px}.button-toggle{flex:1 1 100%}.button-toggle button{flex:1}.classbook-overview-day header{display:grid}.classbook-overview-day-progress{justify-content:flex-start}.classbook-overview-card{grid-template-columns:1fr;gap:10px}.classbook-overview-timebox{min-height:auto;grid-template-columns:auto 1fr;justify-items:start}.classbook-overview-docs{grid-template-columns:1fr}.classbook-content-card{grid-template-columns:1fr;gap:10px}.classbook-content-card-date{min-height:auto}.classbook-content-doc-grid{grid-template-columns:1fr}.classbook-overview-actions{justify-content:stretch}.classbook-overview-actions .button,.classbook-overview-open-indicator{justify-content:center;width:100%}.classbook-form{grid-template-columns:1fr}.classbook-form label:first-child{grid-column:auto}.classbook-entry-form,.classbook-assessment-form{grid-template-columns:1fr}.classbook-assessment-wide{grid-column:auto}.classbook-assessment-toolbar .button{flex:1 1 160px}.classbook-assessment-grid{min-width:620px}.classbook-assessment-grid th:first-child{min-width:140px;max-width:160px}.classbook-mandatory-overview-card{grid-template-columns:1fr}.classbook-mandatory-overview-state{justify-content:flex-start}.classbook-assessment-workspace{grid-template-columns:1fr}.classbook-assessment-picker{display:flex;overflow-x:auto;max-height:none;padding:0 0 4px}.classbook-assessment-dialog .classbook-assessment-picker{max-height:none}.classbook-assessment-picker-button{min-width:210px}.classbook-assessment-student-row{grid-template-columns:1fr;align-items:stretch}.classbook-assessment-row-actions,.performance-assessment-hero-actions{justify-content:flex-start}.performance-assessment-create-form{grid-template-columns:1fr}.performance-assessment-create-form .performance-assessment-wide{grid-column:auto}.performance-assessment-filter-panel{grid-template-columns:1fr}.performance-assessment-table th:first-child{min-width:154px;max-width:164px}.performance-assessment-table th,.performance-assessment-table td{min-width:156px;max-width:180px}.classbook-entry-wide{grid-column:auto}.classbook-student-checkbox-list{grid-template-columns:1fr;max-height:240px}.classbook-entry-card-head{display:grid}.classbook-dialog-backdrop{padding:0;place-items:stretch}.classbook-attendance-dialog{width:100%;max-height:100vh;border-radius:0;padding:14px}.classbook-dialog-header{top:-14px;margin:-14px -14px 12px;padding:14px}.classbook-attendance-card{grid-template-columns:54px minmax(0,1fr);align-items:start;padding:10px}.classbook-student-photo{width:50px;height:50px}.classbook-dialog-header{display:grid}.classbook-attendance-actions,.classbook-time-editor{grid-column:1 / -1;justify-content:flex-start}.classbook-dialog-actions{width:100%}.classbook-dialog-actions .button{flex:1 1 160px}.student-portal-head{display:grid}.student-portal-groups,.student-absence-summary{justify-content:flex-start}.student-grade-row,.student-attendance-row,.student-timetable-row{grid-template-columns:1fr;align-items:stretch}.student-grade-row .chip,.student-attendance-row .chip,.student-timetable-row .chip{width:fit-content}.student-attendance-actions{justify-items:start}.student-excuse-form,.student-excuse-wide{grid-template-columns:1fr;grid-column:auto}.student-excuse-actions{justify-content:stretch}.student-excuse-actions .button{flex:1 1 140px}.company-students-head{display:grid}.company-students-head label{min-width:0;width:100%}.company-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.company-attendance-row{grid-template-columns:1fr;align-items:stretch}.company-attendance-row .chip{width:fit-content}.school-year-changeover-scope{grid-template-columns:1fr}.school-year-changeover-actions .button{flex:1 1 180px}}@media(max-width:560px){.brand-block{grid-template-columns:136px minmax(0,1fr)}.brand-logo{width:136px;max-height:80px}.brand-app-name{font-size:.72rem}}
