@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";*{box-sizing:border-box}body{color:#152c4a;background:#f4f6fa;margin:0;font-family:Manrope,Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:wait;opacity:.5}a{color:inherit;text-decoration:none}svg{flex-shrink:0}h1,h2,h3,p{margin-top:0}.app-shell{min-height:100vh}.sidebar{color:#acbbd0;background:#122847;flex-direction:column;width:232px;padding:32px 18px;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;letter-spacing:1px;align-items:center;gap:12px;padding:0 14px 40px;font-size:27px;font-weight:800;display:flex}.brand-mark{color:#122847;background:#ffce58;border-radius:12px;place-items:center;width:44px;height:44px;font-size:30px;display:grid}.brand-sub{letter-spacing:2px;font-size:8px;font-weight:600;display:block}.side-caption{letter-spacing:1.6px;margin:20px 14px 12px;font-size:9px;font-weight:700}.nav-item{text-align:left;border-radius:9px;align-items:center;gap:12px;width:100%;margin-bottom:5px;padding:14px 16px;font-weight:600;display:flex}.nav-item.active{color:#fff;background:#315cf2}.nav-item:hover:not(.active){background:#1e385a}.sidebar-bottom{border-top:1px solid #2b4161;margin-top:auto;padding:24px 12px 0}.side-status{color:#fff;align-items:center;gap:8px;font-weight:600;display:flex}.sidebar-bottom p{margin:10px 0 20px;font-size:12px;line-height:1.7}.sidebar-bottom a{color:#d5def0;align-items:center;gap:8px;font-size:12px;display:flex}.live-dot{background:#2abf91;border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}main{flex-direction:column;min-height:100vh;margin-left:232px;display:flex}.topbar{background:#fff;border-bottom:1px solid #e6eaf1;justify-content:space-between;align-items:center;height:70px;padding:0 36px;display:flex}.topbar>span:first-child{color:#64738b;align-items:center;gap:9px;font-size:12px;display:flex}.role-badge{color:#315cf2;background:#edf2ff;border-radius:20px;padding:7px 12px;font-size:11px;font-weight:700}.main-content{flex:1;padding:32px 36px}.page-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px;display:flex}.eyebrow{letter-spacing:1.5px;color:#7f8ca1;margin-bottom:9px;font-size:10px;font-weight:800}h1{letter-spacing:-1px;margin-bottom:8px;font-size:30px}.page-heading p:last-child{color:#79869a;margin-bottom:0;font-size:12px}.heading-actions{align-items:center;gap:8px;display:flex}.btn{background:#fff;border:1px solid #dce2ed;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-size:12px;font-weight:700;display:inline-flex}.btn:hover{background:#f2f5fd}.primary{color:#fff;background:#315cf2;border-color:#315cf2}.primary:hover{background:#244ddd}.icon-btn{background:#fff;border:1px solid #dce2ed;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;margin:2px;display:inline-flex}.danger{color:#cf414d}.schedule-controls{background:#fff;border:1px solid #e3e8f1;border-radius:12px;align-items:center;gap:22px;margin-bottom:20px;padding:19px 22px;display:flex}.segmented{background:#f2f5fa;border-radius:9px;padding:4px;display:flex}.segmented button{color:#7f8a9c;border-radius:6px;padding:10px 15px;font-size:12px;font-weight:700}.segmented .selected{color:#315cf2;background:#fff;box-shadow:0 2px 6px #172d4714}.filter-label{color:#7a879c;align-items:center;gap:10px;font-size:11px;display:flex}.filter-label select{min-width:170px;max-width:240px}.schedule-meta{grid-template-columns:8px auto;align-items:center;gap:8px;margin-left:auto;font-size:11px;font-weight:700;display:grid}.schedule-meta small{color:#8e98aa;grid-column:2;font-size:10px;font-weight:500}.schedule-panel{background:#fff;border:1px solid #e3e8f1;border-radius:12px;overflow:hidden}.panel-title{justify-content:space-between;align-items:center;gap:12px;padding:22px 24px;display:flex}.panel-title h2{margin-bottom:5px;font-size:18px}.panel-title span{color:#8a95a7;font-size:11px}.legend{color:#758298;align-items:center;gap:7px;font-size:10px;display:flex}.legend span{border-radius:50%;width:7px;height:7px;margin-left:8px}.lecture-dot{background:#416cee}.practice-dot{background:#2fa48d}.lab-dot{background:#9871d9}.week-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:980px}.week-table thead th{color:#66758b;background:#f7f9fc;border-top:1px solid #edf0f5;border-bottom:1px solid #e6ebf2;padding:17px 8px;font-size:11px}.week-table td{vertical-align:top;border-bottom:1px solid #edf0f5;border-right:1px solid #edf0f5;height:174px;padding:10px 7px}.time-cell{vertical-align:top;color:#66758b;border-bottom:1px solid #edf0f5;border-right:1px solid #edf0f5;padding-top:25px}.time-cell svg{color:#a5aec0;margin:0 auto 10px;display:block}.time-cell b{font-size:13px;display:block}.time-cell span{color:#9ba6b6;font-size:11px}.lesson{color:#315298;background:#eef3ff;border-left:3px solid #416cee;border-radius:8px;min-height:140px;margin-bottom:8px;padding:12px 10px}.lesson.practice{color:#277660;background:#ebf7f3;border-color:#2fa48d}.lesson.lab{color:#7753a6;background:#f4effb;border-color:#9871d9}.lesson-top{flex-direction:column;gap:7px;font-size:9px;display:flex}.lesson-top span{text-transform:uppercase;letter-spacing:.5px;font-weight:700}.lesson h3{color:#183657;margin:9px 0 10px;font-size:12px;line-height:1.5}.lesson p{overflow-wrap:anywhere;align-items:flex-start;gap:5px;margin:5px 0;font-size:10px;line-height:1.4;display:flex}.card-edit{gap:5px;margin:10px 0 0;padding:0;font-size:10px;font-weight:700;display:flex}.schedule-footer{color:#8b97aa;align-items:center;gap:8px;margin:18px 0;font-size:11px;display:flex}.empty{text-align:center;color:#8b97aa;padding:35px;line-height:1.7}.empty.large{background:#fff;border:1px solid #e3e8f1;border-radius:12px;padding:65px 24px}.empty svg{color:#315cf2}.empty h2{color:#183657;margin:18px 0 8px;font-size:21px}.empty .btn{margin:12px 5px 0}.alert{border-radius:8px;margin:0 0 18px;padding:14px 18px;font-size:12px;line-height:1.7}.alert button{margin-left:12px;font-weight:800;text-decoration:underline}.error{color:#b73343;background:#fff0f0}.success{color:#267555;background:#e9f8f1}.sample{color:#8a6921;background:#fff6da}.section-toolbar{justify-content:space-between;align-items:center;margin:22px 0;display:flex}.section-toolbar p{color:#7d8ca3;margin:0}.data-panel{background:#fff;border:1px solid #e3e8f1;border-radius:10px;overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:550px}.data-table th{text-align:left;color:#7d8ca3;background:#f7f9fc;font-size:11px}.data-table th,.data-table td{border-bottom:1px solid #edf0f5;padding:16px 20px}.data-table td{font-size:12px}.import-panel{background:#fff;border:1px solid #e3e8f1;border-radius:12px;padding:32px}.import-icon{color:#315cf2;background:#eef2ff;border-radius:14px;place-items:center;width:60px;height:60px;margin-bottom:18px;display:grid}.import-panel h2{font-size:22px}.import-panel>p{color:#7d8ca3}.import-steps{grid-template-columns:repeat(3,1fr);gap:26px;margin-top:32px;display:grid}.import-steps p{color:#7d8ca3;margin:12px 0 18px;font-size:12px;line-height:1.9}.file-btn input{display:none}.import-preview{border-top:1px solid #edf0f5;margin-top:30px;padding-top:24px}.import-preview h3{font-size:15px}.import-preview>p{color:#6a7c96}.preview-list{flex-wrap:wrap;gap:8px;max-height:180px;margin:12px 0 22px;display:flex;overflow:auto}.preview-list span{background:#f3f6fb;border-radius:5px;padding:6px 9px;font-size:11px}.import-preview>.btn{margin-right:8px}.modal-backdrop{z-index:10;background:#0e244578;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:520px;max-height:90vh;padding:30px;position:relative;overflow:auto;box-shadow:0 20px 90px #0f234733}.modal.small{width:400px}.modal h2{margin-bottom:23px;font-size:22px}.modal-close{color:#8a97aa;position:absolute;top:16px;right:16px}.modal label{color:#63748e;flex-direction:column;gap:8px;margin-bottom:16px;font-size:12px;font-weight:600;display:flex}input,select{color:#203755;background:#fff;border:1px solid #dce3ee;border-radius:7px;width:100%;min-width:0;padding:10px 12px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.form-error{color:#c13d4d;background:#fff2f2;border-radius:6px;padding:10px;font-size:12px}.muted{color:#7d8ca3;font-size:11px}footer{color:#8f9aae;border-top:1px solid #e3e8f1;justify-content:space-between;padding:20px 36px;font-size:10px;display:flex}.mobile-schedule{display:none}.day-nav{justify-content:space-between;align-items:center;margin:4px 0 20px;display:flex}@media (max-width:1100px){.sidebar{width:190px;padding:25px 12px}.brand{padding-left:8px;font-size:24px}.nav-item{padding:12px;font-size:12px}.main-content{padding:26px 22px}main{margin-left:190px}.schedule-controls{flex-wrap:wrap;gap:15px}.schedule-meta{margin-left:0}.legend{flex-wrap:wrap}.page-heading{align-items:flex-start}h1{font-size:26px}}@media (max-width:700px){.sidebar{flex-flow:wrap;align-items:center;gap:8px;width:100%;padding:16px;position:relative}.brand{gap:8px;margin-right:auto;padding:0;font-size:22px}.brand-mark{border-radius:8px;width:32px;height:32px;font-size:22px}.brand-sub{font-size:6px}.side-caption{display:none}.nav-item{gap:5px;width:auto;margin:0;padding:8px;font-size:11px}.nav-item svg{width:15px}.sidebar-bottom{border:0;margin:0;padding:0}.sidebar-bottom p,.side-status{display:none}.sidebar-bottom a{font-size:10px}main{margin:0}.topbar{height:50px;padding:0 18px}.main-content{padding:24px 16px}.page-heading{flex-wrap:wrap;margin-bottom:20px}.heading-actions{width:100%}h1{font-size:27px}.schedule-controls{padding:15px;display:block}.segmented{margin-bottom:14px}.segmented button{flex:1}.filter-label{display:block}.filter-label select{max-width:100%;margin:8px 0 14px;display:block}.schedule-meta{font-size:10px}.panel-title{flex-wrap:wrap;align-items:flex-start;padding:19px}.legend{gap:4px;font-size:9px}.legend span:first-child{margin-left:0}.desktop-schedule{display:none}.mobile-schedule{padding:0 18px 20px;display:block}.lesson{min-height:0;padding:16px}.lesson-top{flex-direction:row;justify-content:space-between}.lesson h3{font-size:15px}.lesson p{font-size:12px}.import-panel{padding:22px}.import-steps{grid-template-columns:1fr;gap:20px}.modal{padding:25px 20px}.modal-backdrop{padding:14px}.schedule-footer{align-items:flex-start;line-height:1.7}footer{padding:18px}.empty.large{padding:40px 20px}}@media print{.sidebar,.topbar,.heading-actions,.schedule-controls,.schedule-footer,.alert,.card-edit,footer{display:none!important}main{margin:0}.main-content{padding:0}.page-heading{margin:0 0 15px}.desktop-schedule{overflow:visible;display:block!important}.mobile-schedule{display:none!important}.week-table{min-width:0}.week-table td{height:140px}.week-table th:first-child{width:55px}.lesson{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.lesson h3{font-size:10px}.lesson p,.legend{font-size:8px}@page{size:A4 landscape;margin:10mm}}.auth-link{color:#d5def0;text-align:left;align-items:center;gap:8px;padding:0;font-size:14px;display:flex}.week-tag{background:#ffffffb0;border-radius:4px;margin-bottom:8px;padding:3px 6px;font-size:12px;display:inline-block}.time-cell small{font-size:12px;line-height:1.5;display:block}.schedule-controls{flex-wrap:wrap}.modal label{font-size:14px}.sidebar-bottom .auth-link{min-height:32px}.main-content{align-self:center;width:100%;min-width:0;max-width:1600px;padding:24px 28px}main{min-width:0}.app-shell{max-width:100%;overflow-x:clip}.page-heading{margin-bottom:18px}.schedule-controls{gap:12px;margin-bottom:14px;padding:12px 16px}.schedule-meta{margin-left:auto}.panel-title{padding:14px 16px}.panel-title span{font-size:14px}.desktop-schedule{overflow-x:auto}.week-table{table-layout:fixed;width:100%;min-width:0}.week-table th:first-child{width:78px}.week-table thead th{padding:12px 4px;font-size:14px}.week-table td{overflow-wrap:anywhere;height:auto;padding:6px}.time-cell{overflow-wrap:anywhere;padding:12px 4px}.time-cell svg{margin-bottom:5px}.time-cell b,.time-cell span{font-size:14px}.lesson{overflow-wrap:anywhere;border-radius:6px;min-height:0;margin-bottom:6px;padding:8px}.lesson:last-child{margin-bottom:0}.lesson-top{gap:3px;font-size:12px}.lesson-top b{font-size:12px}.lesson h3{margin:6px 0;font-size:14px;line-height:1.4}.lesson p{margin:4px 0;font-size:14px;line-height:1.4}.lesson-group{font-weight:700}.week-tag{margin-bottom:3px;padding:2px 5px}.card-edit,.filter-label{font-size:14px}.schedule-footer{margin-top:14px;font-size:14px}@media (max-width:1100px) and (min-width:701px){.sidebar{width:160px}.brand{gap:8px;padding-left:0;padding-right:0;font-size:22px}.brand-mark{width:36px;height:36px;font-size:24px}main{margin-left:160px}.main-content{padding:20px 16px}.week-table th:first-child{width:68px}.week-table td{padding:4px}.lesson{padding:6px}.legend{display:none}.schedule-meta{margin-left:0}}@media (max-width:700px){.main-content{padding:20px 16px}.schedule-controls{padding:14px}.schedule-meta{margin-left:0}.lesson{padding:14px}.lesson-top{flex-direction:row}.panel-title{padding:16px}.sidebar .auth-link{font-size:14px}.filter-label select{max-width:100%}}@media print{.main-content{max-width:none;padding:0}.week-table td{height:auto}.week-table{width:100%;min-width:0}.week-table th:first-child{width:65px}.lesson h3,.lesson p{font-size:10px}.lesson-top,.lesson-top b,.week-tag{font-size:9px}}.main-content{max-width:1400px}.schedule-controls{gap:14px}.week-key{color:#486078;flex-direction:column;gap:5px;font-size:14px;display:flex}.week-key span{align-items:center;gap:7px;display:flex}.week-key i{border-radius:2px;width:12px;height:12px;display:inline-block}.odd-key{background:#dceaff}.even-key{background:#e6f4eb}.schedule-panel{border-radius:8px}.matrix-scroll{border-top:1px solid #cbd5e1;max-width:100%;overflow:auto}.matrix-scroll:focus-visible{outline-offset:-2px;outline:2px solid #315cf2}.matrix-table{border-spacing:0;border-collapse:separate;text-align:left;width:100%;min-width:980px;display:block}.matrix-table thead,.matrix-table tbody{display:block}.matrix-table tr{grid-template-columns:94px repeat(8,minmax(0,1fr));align-items:stretch;display:grid}.matrix-table th,.matrix-table td{border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;min-width:0;margin:0}.matrix-table th:last-child,.matrix-table td:last-child{border-right:0}.matrix-table tbody tr:last-child>*{border-bottom:0}.matrix-table thead th{text-align:center;background:#f5f7fb;flex-direction:column;justify-content:center;gap:4px;padding:12px 4px;font-size:14px;display:flex}.matrix-table thead th b{color:#183657}.matrix-table thead th span{white-space:nowrap;color:#54667e;font-size:12px}.matrix-table thead th small{color:#9b6a14;font-size:12px;line-height:1.3}.matrix-table .after-lunch{border-left:2px solid #e5b652}.matrix-day{text-align:center;background:#fafbfd;flex-direction:column;padding:0;font-size:14px;display:flex}.matrix-day>b{overflow-wrap:anywhere;padding:10px 3px 6px}.week-guide{color:#57708b;flex:1;grid-template-rows:1fr 1fr;min-height:80px;font-size:12px;display:grid}.week-guide span{justify-content:center;align-items:center;display:flex}.week-guide span+span{color:#47705c;border-top:1px dashed #c4d0dd}.matrix-day>b{flex:1;justify-content:center;align-items:center;padding:6px 3px;display:flex}.week-guide{display:none}.matrix-table td{padding:0;display:flex}.matrix-cell{flex:1;grid-template-rows:repeat(2,minmax(48px,1fr));grid-template-columns:minmax(0,1fr);min-width:0;min-height:104px;display:grid}.matrix-cell.mixed{grid-template-columns:repeat(2,minmax(0,1fr))}.full-week{background:#f7f9fc;flex-direction:column;grid-area:1/1/span 2;min-width:0;display:flex}.odd-week{background:#f5f9ff;flex-direction:column;grid-area:1/1;min-width:0;display:flex}.even-week{background:#f5fbf7;border-top:1px dashed #bdcddb;flex-direction:column;grid-area:2/1;min-width:0;display:flex}.mixed .odd-week,.mixed .even-week{border-left:1px solid #cbd5e1;grid-column:2}.grid-lesson{text-align:left;color:#244978;overflow-wrap:anywhere;background:#e7efff;border-left:3px solid #416cee;border-radius:0;flex-direction:column;flex:1;gap:0;width:100%;min-width:0;min-height:120px;padding:0;font-size:14px;line-height:1.35;display:flex}.grid-lesson+.grid-lesson{border-top:1px solid #aebed2}.grid-lesson.practice{color:#235942;background:#def2e7;border-color:#30956d}.grid-lesson.lab{color:#604386;background:#eee5fa;border-color:#9871d9}.grid-lesson:hover{filter:brightness(.96)}.grid-lesson:focus-visible{outline-offset:-2px;z-index:1;outline:2px solid #152c4a}.grid-lesson strong{color:#17314d;font-size:14px;line-height:1.35}.grid-lesson span{font-size:14px}.grid-card-heading{min-width:0;padding:8px 7px;display:block}.grid-card-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;padding:10px 7px;display:flex}.grid-course{width:100%;min-width:0;display:block}.grid-subject{display:block}.grid-lesson .grid-kind{font-size:11px;font-weight:500;display:block}.grid-lesson .grid-group{flex-wrap:wrap;justify-content:center;gap:3px 6px;width:100%;min-width:0;font-size:11px;font-weight:500;line-height:1.4;display:flex}.grid-lesson .grid-group-name{min-width:0;max-width:100%;font-size:inherit;overflow-wrap:anywhere;display:block}.grid-lesson .grid-card-footer{text-align:right;background:#ffffff38;border-top:1px solid;min-width:0;padding:7px;font-size:12px;line-height:1.4;display:block}.grid-lesson .grid-room{font-weight:700}.lesson-details{grid-template-columns:110px 1fr;gap:10px 16px;font-size:14px;line-height:1.6;display:grid}.lesson-details dt{color:#6a7b91}.lesson-details dd{color:#183657;overflow-wrap:anywhere;margin:0}.legacy-lessons{border-top:1px solid #cbd5e1;padding:18px}.legacy-lessons p{color:#7a621b;font-size:14px}.legacy-lessons>div{max-width:280px;margin:12px 0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:700px){.matrix-table{min-width:980px}.schedule-meta{margin-top:12px}.week-key{margin:10px 0}.lesson-details{grid-template-columns:100px 1fr}.page-heading h1{font-size:24px}.page-heading p:last-child{font-size:14px}.matrix-scroll{border-bottom:1px solid #cbd5e1}}@media print{.matrix-scroll{border-top:1px solid #aaa;overflow:visible}.matrix-table{width:100%;min-width:0}.matrix-table tr{grid-template-columns:70px repeat(8,minmax(0,1fr))}.matrix-table thead th{padding:6px 2px}.matrix-table thead th b,.matrix-table thead th span,.matrix-table thead th small{font-size:9px}.matrix-day,.week-guide{font-size:10px}.grid-lesson{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:5px 3px}.grid-lesson strong,.grid-lesson span{font-size:10px}.grid-lesson small,.grid-lesson .grid-room{font-size:9px}.matrix-cell{grid-template-rows:repeat(2,minmax(35px,1fr));min-height:70px}.schedule-panel{border-color:#aaa}.matrix-table tbody tr{break-inside:avoid}.panel-title{padding:8px}.panel-title h2{font-size:18px}.legend{font-size:10px}}.matrix-cell.unified{background:#fff;grid-template-rows:minmax(104px,1fr)}.unified .full-week{grid-row:1}@media print{.matrix-cell.unified{grid-template-rows:minmax(70px,1fr)}}.app-shell main{margin-left:0;transition:margin-left .2s}.app-shell.menu-open main{margin-left:232px}.app-shell .sidebar{z-index:8;flex-flow:column;align-items:stretch;width:232px;height:100dvh;padding:56px 18px 24px;position:fixed;inset:0 auto 0 0;overflow-y:auto}.app-shell .sidebar[hidden]{display:none}.sidebar-close{color:#fff;border-radius:6px;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:14px;right:14px}.sidebar-close:hover{background:#294566}.topbar-start{align-items:center;gap:12px;min-width:0;display:flex}.topbar-start>span{color:#64738b;align-items:center;gap:8px;font-size:12px;display:flex}.menu-toggle{flex-shrink:0;margin:0}.sidebar-scrim{display:none}.sidebar .brand{margin:0;padding:0 8px 32px;font-size:27px}.sidebar .brand-mark{width:44px;height:44px;font-size:30px}.sidebar .brand-sub{font-size:8px}.sidebar .side-caption{display:block}.sidebar .nav-item{width:100%;margin-bottom:5px;padding:14px 16px;font-size:14px}.sidebar .nav-item svg{width:19px}.sidebar .sidebar-bottom{border-top:1px solid #2b4161;margin-top:auto;padding:24px 12px 0}.sidebar .sidebar-bottom p,.sidebar .side-status{display:block}.sidebar .side-status{display:flex}@media (max-width:700px){.app-shell.menu-open main{margin-left:0}.sidebar-scrim{z-index:7;background:#0e244578;display:block;position:fixed;inset:0}.topbar{height:60px;padding:0 16px}.topbar-start{gap:8px}.topbar-start>span{font-size:11px}.role-badge{padding:6px 8px;font-size:10px}}@media (prefers-reduced-motion:reduce){.app-shell main{transition:none}}@media print{.app-shell.menu-open main{margin-left:0}.sidebar-scrim{display:none!important}}body.print-layout{background:#fff}.print-layout .sidebar,.print-layout .sidebar-scrim,.print-layout .topbar,.print-layout .page-heading,.print-layout .schedule-controls,.print-layout .schedule-footer,.print-layout .alert,.print-layout footer,.print-layout .modal-backdrop{display:none!important}.print-layout .app-shell main{min-height:0;margin:0;transition:none;display:block}.print-layout .main-content{width:auto;max-width:none;padding:0}.print-layout .schedule-panel{zoom:var(--print-scale,1);break-inside:avoid;border-color:#aaa;border-radius:0;width:277mm;max-width:none;overflow:visible}.print-layout .panel-title{padding:6px 8px}.print-layout .panel-title h2{margin-bottom:2px;font-size:16px}.print-layout .panel-title span,.print-layout .legend{font-size:9px}.print-layout .matrix-scroll{overflow:visible}.print-layout .matrix-table{width:100%;min-width:0}.print-layout .matrix-table tr{grid-template-columns:65px repeat(8,minmax(0,1fr))}.print-layout .matrix-table thead th{padding:5px 2px}.print-layout .matrix-table thead th b,.print-layout .matrix-table thead th span,.print-layout .matrix-table thead th small{font-size:9px}.print-layout .matrix-day{font-size:10px}.print-layout .matrix-cell{grid-template-rows:repeat(2,minmax(32px,1fr));min-height:64px}.print-layout .matrix-cell.unified{grid-template-rows:minmax(64px,1fr)}.print-layout .grid-lesson{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;gap:2px;padding:4px 3px;line-height:1.25}.print-layout .grid-lesson strong,.print-layout .grid-lesson span{font-size:9px}.print-layout .grid-lesson small,.print-layout .grid-lesson .grid-room{font-size:8px}.print-layout .legacy-lessons{padding:8px}.print-layout .legacy-lessons h3{font-size:12px}.print-layout .legacy-lessons p{font-size:9px}.print-layout .legacy-lessons>div{vertical-align:top;width:180px;margin:4px;display:inline-block}.print-layout .legacy-lessons>div>b{font-size:9px}@media print{@page{size:A4 landscape;margin:10mm}html,body{margin:0;padding:0}.app-shell{min-height:0;overflow:visible}}.refresh-spin{animation:1s linear infinite refresh-spin}@keyframes refresh-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.refresh-spin{animation:none}}.group-workflow{color:#34557e;background:#edf3ff;border:1px solid #d8e3fa;border-radius:8px;align-items:flex-start;gap:9px;margin-bottom:12px;padding:12px 16px;font-size:13px;line-height:1.6;display:flex}.group-workflow b{color:#183657}.group-schedule-btn{margin-right:6px}select:disabled{color:#52667e;opacity:1;background:#f4f6fa}@media print{.group-workflow{display:none!important}}.print-layout .group-workflow{display:none!important}.transient-notice{opacity:1;transition:opacity .6s}.transient-notice.notice-fading{opacity:0}.grid-lesson[draggable=true]{cursor:grab}.grid-lesson.dragging{opacity:.45}.matrix-table td.drop-hover{outline-offset:-3px;background:#dceaff;outline:3px solid #315cf2}.matrix-table td.drop-hover .matrix-cell{opacity:.65}.matrix-table td.move-target{cursor:crosshair}.matrix-table td.move-target:focus-visible{outline-offset:-3px;outline:3px solid #315cf2}.move-help{color:#34557e;background:#eef3ff;border:1px solid #d8e3fa;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;font-size:13px;display:flex}.move-help .btn{margin-left:auto}@media (prefers-reduced-motion:reduce){.transient-notice{transition:none}}@media print{.move-help{display:none!important}}.print-layout .move-help{display:none!important}.notification-backdrop{z-index:30;opacity:1;background:#0e244580;transition:opacity .6s}.notification-backdrop.notification-fading{opacity:0}.notification-modal{background:#fff;border-radius:16px;width:440px;max-width:100%;max-height:85dvh;padding:32px;position:relative;overflow:auto;box-shadow:0 24px 90px #0f23474d}.notification-icon{color:#23845b;background:#e9f8f1;border-radius:16px;place-items:center;width:64px;height:64px;margin-bottom:18px;display:grid}.notification-error .notification-icon{color:#c44640;background:#fff0ef}.notification-modal h2{color:#183657;margin:0 0 12px;font-size:23px}.notification-modal p{color:#52667e;overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.75}.notification-modal .modal-actions{flex-wrap:wrap;margin-top:24px}.notification-modal .btn{font-size:14px}@media (max-width:700px){.notification-modal{padding:28px 22px}}@media (prefers-reduced-motion:reduce){.notification-backdrop{transition:none}}@media print{.notification-backdrop{display:none!important}}.teacher-availability{background:#f8fafc;border:1px solid #d9e3ee;border-radius:10px;margin-top:14px;padding:14px}.teacher-availability h3{color:#183657;margin:0 0 5px;font-size:14px}.teacher-availability>p{color:#52667e;margin:0 0 10px;font-size:12px}.availability-status{border-radius:6px;margin-bottom:10px;padding:8px 10px;font-size:12px}.availability-scroll{overflow-x:auto}.availability-table{border-collapse:separate;border-spacing:3px;table-layout:fixed;width:100%;min-width:360px}.availability-table th{color:#52667e;text-align:center;padding:2px;font-size:11px}.availability-table thead th span{font-size:9px;font-weight:400;display:block}.availability-table th:first-child{width:28px}.availability-table td{padding:0}.availability-table button{cursor:pointer;border:1px solid #0000;border-radius:5px;width:100%;padding:8px 0;font-size:10px}.teacher-availability .is-free{color:#236445;background:#e4f3eb}.teacher-availability .is-busy{color:#9b3630;background:#fce8e6}.availability-table button.is-selected{outline-offset:0;outline:2px solid #315cf2}.availability-table button:hover{filter:brightness(.96)}.availability-table button:focus-visible{outline-offset:1px;outline:2px solid #17314d}.teacher-availability>small{color:#52667e;margin-top:8px;font-size:11px;line-height:1.5;display:block}.availability-lessons{margin:10px 0 0;padding:0;list-style:none}.availability-lessons li{background:#fff;border:1px solid #f0c6c1;border-radius:6px;padding:8px;font-size:12px}.availability-lessons li+li{margin-top:6px}.availability-lessons span{color:#52667e;margin-top:3px;display:block}.dashboard-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.dashboard-card{background:#fff;border:1px solid #d9e3ee;border-radius:12px;padding:20px}.dashboard-card span{color:#52667e;font-size:13px;line-height:1.5;display:block}.dashboard-card b{color:#183657;margin-top:8px;font-size:30px;display:block}.dashboard-section{background:#fff;border:1px solid #d9e3ee;border-radius:12px;margin-bottom:20px;padding:22px}.dashboard-section h2{margin:0 0 10px;font-size:18px}.dashboard-section .muted{font-size:12px;line-height:1.7}.visits-chart{align-items:stretch;gap:12px;height:210px;margin:20px 0;display:flex;overflow-x:auto}.visits-column{color:#52667e;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:42px;font-size:12px;display:flex}.visits-bar-space{background:#f4f7fc;border-radius:6px;align-items:flex-end;width:100%;height:150px;display:flex;overflow:hidden}.visits-bar-space i{background:#416cee;border-radius:6px 6px 0 0;width:100%;display:block}.visits-column small{font-size:10px}.dashboard-section details summary{cursor:pointer;color:#315cf2;margin:14px 0;font-size:13px}.account-status{border-radius:20px;padding:5px 10px;font-size:12px;display:inline-block}.account-status.active{color:#236445;background:#e4f3eb}.account-status.inactive{color:#9b3630;background:#fce8e6}.modal .checkbox-label{align-items:center;gap:10px;display:flex}.modal .checkbox-label input{width:18px;height:18px;margin:0}@media (max-width:900px){.dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.dashboard-card{padding:14px}.dashboard-card b{font-size:24px}.dashboard-section{padding:14px}}.topbar-actions{align-items:center;gap:12px;display:flex}.theme-toggle{white-space:nowrap}.assignment-flow h3{margin:20px 0 12px;font-size:15px}.assignment-summary{background:#edf8f2;border:1px solid #b7daca;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.assignment-summary span{color:#52667e;margin-top:5px;font-size:12px;display:block}.assignment-hint{color:#52667e;background:#f4f6fa;border-radius:8px;padding:12px;font-size:13px;line-height:1.6}.assignment-confirm{margin-top:12px}.password-options{border:0;min-width:0;margin:0 0 16px;padding:0}.password-options legend{color:#63748e;margin-bottom:8px;font-size:14px}.password-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.modal .checkbox-label{flex-direction:row}@media (max-width:600px){.topbar-actions{gap:6px}.theme-toggle{padding:8px;font-size:10px}.topbar-start>span{display:none}.assignment-summary{flex-wrap:wrap;align-items:flex-start}}@media screen{html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=dark] body{color:#e4edf9;background:#0e1726}html[data-theme=dark] :is(.topbar,.schedule-controls,.schedule-panel,.data-panel,.import-panel,.empty.large,.modal,.notification-modal,.dashboard-card,.dashboard-section){background:#182438;border-color:#34445c}html[data-theme=dark] :is(input,select,.btn,.icon-btn){color:#e4edf9;background:#202f45;border-color:#43546e}html[data-theme=dark] :is(input,select):disabled{color:#afbed1;background:#182438}html[data-theme=dark] .btn:hover{background:#2b3d58}html[data-theme=dark] .btn.primary{color:#fff;background:#315cf2;border-color:#6686ff}html[data-theme=dark] .btn.primary:hover{background:#416cee}html[data-theme=dark] .danger{color:#ff9b9f}html[data-theme=dark] :is(.modal label,.password-options legend,.muted,.section-toolbar p,.page-heading p:last-child,.filter-label,.schedule-footer,.panel-title span,.legend,.empty,.eyebrow,.schedule-meta small,.topbar-start>span,.lesson-details dt,.notification-modal p,.availability-table th,.teacher-availability>p,.teacher-availability>small,.availability-lessons span,.dashboard-card span,.visits-column,.import-panel>p,.import-steps p,.import-preview>p){color:#b6c6db}html[data-theme=dark] :is(.notification-modal h2,.teacher-availability h3,.dashboard-card b,.lesson-details dd,.empty h2,.group-workflow b,.matrix-table thead th b){color:#e4edf9}html[data-theme=dark] :is(.segmented,.matrix-table thead th,.data-table th,.matrix-day,.full-week,.matrix-cell.unified,.assignment-hint,.teacher-availability,.visits-bar-space,.preview-list span){color:#c8d7eb;background:#202f45}html[data-theme=dark] .segmented button{color:#bdcce1}html[data-theme=dark] .segmented .selected{color:#dbe6ff;background:#344868}html[data-theme=dark] .role-badge{color:#dbe6ff;background:#283f70}html[data-theme=dark] :is(.matrix-table th,.matrix-table td,.matrix-scroll,.data-table td,.data-table th,.teacher-availability,footer,.import-preview,.legacy-lessons){border-color:#43546e}html[data-theme=dark] .matrix-table thead th span{color:#bdcce1}html[data-theme=dark] .matrix-table thead th small{color:#f5cc7f}html[data-theme=dark] :is(.group-workflow,.move-help){color:#c6d9f4;background:#233753;border-color:#3e5982}html[data-theme=dark] .odd-week{background:#172a43}html[data-theme=dark] .even-week{background:#192f2c;border-color:#43546e}html[data-theme=dark] :is(.grid-lesson,.lesson){color:#d4e4ff;background:#243f68}html[data-theme=dark] :is(.grid-lesson.practice,.lesson.practice){color:#c3f0da;background:#214536}html[data-theme=dark] :is(.grid-lesson.lab,.lesson.lab){color:#e6d6fa;background:#41305b}html[data-theme=dark] :is(.grid-lesson strong,.lesson h3){color:#fff}html[data-theme=dark] :is(.grid-lesson small,.grid-lesson .grid-room){color:#c4d3e5}html[data-theme=dark] :is(.grid-lesson,.availability-table button):focus-visible{outline-color:#a7c2ff}html[data-theme=dark] :is(.teacher-availability .is-free,.account-status.active,.assignment-summary,.notification-icon,.success){color:#c3f0da;background:#214536;border-color:#49775f}html[data-theme=dark] :is(.teacher-availability .is-busy,.account-status.inactive,.form-error,.error,.notification-error .notification-icon){color:#ffc2bd;background:#512d34}html[data-theme=dark] :is(.availability-lessons li){background:#202f45;border-color:#945b5a}html[data-theme=dark] .assignment-summary span{color:#b6d5c5}html[data-theme=dark] .sample{color:#f9dd9c;background:#493d22}html[data-theme=dark] .dashboard-section details summary{color:#a7c2ff}}.theme-toggle{border-radius:50%;flex-shrink:0;width:38px;height:38px;padding:0}.filter-label select optgroup{font-weight:800}.filter-label select option{font-weight:400}.import-kind{max-width:420px;margin:28px 0 16px;font-weight:600;display:block}.import-kind select{margin-top:8px}.legacy-template{margin-left:10px}.import-panel>.form-error{margin-top:16px}.room-type-note{color:#775617;background:#fff6da;border-radius:7px;padding:10px 12px;font-size:13px;line-height:1.6}@media screen{html[data-theme=dark] .room-type-note{color:#f9dd9c;background:#493d22}}.group-dropdown-field{min-width:0;margin-bottom:18px;position:relative}.group-dropdown-label{color:#60728e;margin-bottom:8px;font-size:14px;display:block}.group-dropdown-trigger{color:#17324d;width:100%;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #d5e0f1;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:14px;display:flex}.group-dropdown-trigger span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.group-dropdown-trigger svg{flex:none}.group-dropdown-trigger:focus-visible{outline-offset:2px;outline:2px solid #365bff}.group-dropdown-panel{z-index:20;background:#fff;border:1px solid #c8d5e7;border-radius:8px;padding:10px;position:absolute;top:calc(100% - 20px);left:0;right:0;box-shadow:0 12px 30px #17324d26}.group-dropdown-panel>input{width:100%;margin:0 0 8px}.lesson-group-list{overscroll-behavior:contain;max-height:230px;overflow:auto}.lesson-group-list b{color:#45617f;padding:10px 8px 5px;font-size:12px;display:block}.lesson-group-list .group-option{cursor:pointer;color:#244568;border-radius:4px;flex-direction:row;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:12px;min-height:40px;margin:0;padding:8px 10px;font-weight:400;display:grid}.group-option>span{overflow-wrap:anywhere}.lesson-group-list .group-option small{font-size:12px;font-weight:400}.lesson-group-list .group-option:hover{background:#f0f4fb}.lesson-group-list .group-option.selected{color:#24468c;background:#e8efff}.lesson-group-list input[type=checkbox]{accent-color:#365bff;width:16px;height:16px;margin:0}.lesson-group-list small{white-space:nowrap;margin-left:auto}.group-dropdown-bottom{border-top:1px solid #e2e8f2;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;display:flex}.group-dropdown-count{color:#6b7c93;margin-top:6px;display:block}.group-dropdown-bottom .btn{padding:7px 11px}@media screen{html[data-theme=dark] :is(.group-dropdown-trigger,.group-dropdown-panel){color:#e4edf9;background:#202f45;border-color:#43546e}html[data-theme=dark] :is(.group-dropdown-label,.lesson-group-list b,.group-dropdown-count,.group-dropdown-bottom small){color:#b6c6db}html[data-theme=dark] .lesson-group-list .group-option{color:#dbe6ff}html[data-theme=dark] .lesson-group-list .group-option:hover{background:#2b3d58}html[data-theme=dark] .lesson-group-list .group-option.selected{background:#283f70}html[data-theme=dark] .group-dropdown-bottom{border-color:#43546e}}.group-multi-filter{flex:0 390px;width:390px;min-width:300px;max-width:100%;display:block}.group-dropdown-field.compact{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin:0;display:grid}.group-multi-filter .group-dropdown-label{color:inherit;margin:0;line-height:20px}.compact .group-dropdown-trigger{min-height:43px}.compact .group-dropdown-panel{grid-column:2;top:calc(100% + 4px);left:0;right:0}.modal-actions{flex-wrap:wrap}@media (max-width:700px){.group-multi-filter{flex-basis:100%;width:100%;min-width:0}}.refresh-toast{z-index:100;color:#216747;pointer-events:none;background:#f0fff7;border:1px solid #b8e4cf;border-radius:10px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:14px 18px;animation:3s forwards refresh-toast-hide;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 6px 24px #17324d1a}.refresh-toast svg{flex:none}@keyframes refresh-toast-hide{0%{opacity:0;transform:translateY(6px)}8%,90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}@media screen{html[data-theme=dark] .refresh-toast{color:#b5f0d3;background:#173a2e;border-color:#3a6f57}}@media (prefers-reduced-motion:reduce){.refresh-toast{animation:none}}@media print{.refresh-toast{display:none!important}}.search-select{min-width:0;margin-bottom:16px;position:relative}.search-select-label{color:#63748e;margin-bottom:8px;font-size:14px;display:block}.search-select-trigger{color:#203755;width:100%;min-height:43px;font:inherit;text-align:left;background:#fff;border:1px solid #dce3ee;border-radius:7px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.search-select-trigger>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-select-trigger:focus-visible{outline-offset:2px;outline:2px solid #365bff}.search-select-panel{z-index:20;background:#fff;border:1px solid #c8d5e7;border-radius:8px;padding:10px;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 12px 30px #17324d26}.search-select-panel>input{margin-bottom:8px}.search-select-list{overscroll-behavior:contain;max-height:240px;overflow:auto}.search-select-list b{color:#63748e;padding:8px 10px;font-size:12px;display:block}.search-select-list [role=option]{text-align:left;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:38px;padding:9px 10px;font-size:13px;display:flex}:is(.search-select-list [role=option]:hover,.search-select-list [role=option]:focus-visible){background:#f0f4fb}.search-select-list [role=option].selected{color:#24468c;background:#e8efff}.resource-search-filter{flex:0 390px;width:390px;min-width:280px;max-width:100%;display:block}.search-select.compact{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin:0;display:grid}.compact .search-select-label{color:inherit;margin:0}.compact .search-select-panel{grid-column:2;top:calc(100% + 4px)}@media (max-width:700px){.resource-search-filter{flex-basis:100%;width:100%;min-width:0}}@media screen{html[data-theme=dark] :is(.search-select-trigger,.search-select-panel){color:#e4edf9;background:#202f45;border-color:#43546e}html[data-theme=dark] :is(.search-select-label,.search-select-list b){color:#b6c6db}html[data-theme=dark] .search-select-list [role=option]:is(:hover,:focus-visible){background:#2b3d58}html[data-theme=dark] .search-select-list [role=option].selected{color:#dbe6ff;background:#283f70}.heading-actions{flex-wrap:wrap}.page-heading>div{min-width:0}.role-badge{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.modal,.notification-modal{overscroll-behavior:contain;overflow-wrap:anywhere;max-width:100%;max-height:calc(100dvh - 48px)}.modal h2{padding-right:28px}.modal :is(.group-dropdown-panel,.search-select-panel){margin-top:8px;position:relative;top:auto;left:auto;right:auto}.search-select-list [role=option]>span,.search-select-list b{overflow-wrap:anywhere;min-width:0}.sidebar>*{flex-shrink:0}.sidebar{overscroll-behavior:contain}.dashboard-section details{overscroll-behavior-x:contain;overflow-x:auto}.matrix-scroll{overscroll-behavior-x:contain}.matrix-table tr>th:first-child{z-index:2;position:sticky;left:0}.matrix-scroll-hint{color:#52667e;border-top:1px solid #cbd5e1;margin:0;padding:8px 16px;font-size:12px}html[data-theme=dark] .matrix-scroll-hint{color:#b6c6db;border-color:#43546e}}@media screen and (max-width:900px){.app-shell.menu-open main{margin-left:0}.sidebar-scrim{z-index:7;background:#0e244578;display:block;position:fixed;inset:0}}@media screen and (max-width:700px){.heading-actions{gap:6px}.heading-actions .btn{min-height:44px}.topbar{flex-shrink:0}.schedule-controls>.segmented{width:100%}.segmented button{overflow-wrap:anywhere;min-width:0;padding:10px 6px}.modal-backdrop{padding:14px}.modal,.notification-modal{max-height:calc(100dvh - 28px)}.modal input,.modal select,.search-select-panel>input,.group-dropdown-panel>input{min-height:44px;font-size:16px}.compact :is(.group-dropdown-panel,.search-select-panel){grid-column:1/-1;margin-top:8px;position:relative;top:auto;left:auto;right:auto}.lesson-group-list,.search-select-list{max-height:min(240px,40dvh)}.lesson-group-list .group-option,.search-select-list [role=option]{min-height:44px}.lesson-details{grid-template-columns:85px minmax(0,1fr);gap:10px}footer{flex-wrap:wrap;gap:12px}.refresh-toast{bottom:16px;right:16px}}@media screen and (max-width:600px){.form-grid{grid-template-columns:minmax(0,1fr);gap:0}}@media screen and (max-width:480px){.modal-actions>.btn{flex:auto;min-height:44px}.group-dropdown-bottom{flex-wrap:wrap;gap:8px}.section-toolbar{flex-wrap:wrap;gap:12px}.role-badge{max-width:150px}}@media print{.matrix-scroll-hint{display:none!important}}@media screen{.main-content{width:100%;min-width:0;max-width:1320px;margin-inline:auto}.matrix-table{width:var(--matrix-width,100%);zoom:var(--matrix-fit,1);margin-inline:auto}.schedule-panel{position:relative}.schedule-panel:has(.matrix-view-actions:not(:empty)) .panel-title{padding-right:56px}.matrix-view-actions{justify-content:flex-end;padding:0;display:flex;position:absolute;top:8px;right:6px}.matrix-view-actions:empty{display:none}.print-layout .matrix-table{zoom:1!important;width:100%!important}.print-layout .matrix-view-actions{display:none!important}}@media screen and (max-width:700px){.main-content:has(.schedule-controls){padding:12px 10px}.main-content:has(.schedule-controls) .page-heading{gap:8px;margin-bottom:10px}.main-content:has(.schedule-controls) .page-heading h1{margin:0;font-size:20px}.main-content:has(.schedule-controls) .page-heading :is(.eyebrow,p){display:none}.main-content:has(.schedule-controls) .heading-actions{width:auto;margin-left:auto}.main-content:has(.schedule-controls) :is(.group-workflow,.move-help){display:none}.schedule-controls{margin-bottom:10px;padding:10px}.segmented{margin-bottom:8px}.schedule-meta{margin-top:8px}.schedule-meta small{display:block}.panel-title{padding:10px}.panel-title h2{font-size:16px}.panel-title span{font-size:11px}.panel-title .legend{display:none}.schedule-footer{margin:8px 0;font-size:10px}}@media print{.matrix-view-actions{display:none!important}.matrix-table{zoom:1!important;width:100%!important}}@media screen and (max-height:500px) and (max-width:1100px){.main-content:has(.schedule-controls){padding:6px 10px}.main-content:has(.schedule-controls) :is(.group-workflow,.move-help){display:none}.main-content:has(.schedule-controls) .page-heading{justify-content:flex-end;margin-bottom:4px}.main-content:has(.schedule-controls) .page-heading>div:not(.heading-actions){display:none}.topbar{height:40px}.schedule-controls{gap:6px;margin-bottom:6px;padding:6px;display:flex}.schedule-controls>.segmented{flex:220px;width:auto;margin:0}.schedule-controls :is(.group-multi-filter,.resource-search-filter){flex:250px;width:auto;min-width:0}.schedule-meta{display:none}.schedule-meta:has(time){flex-basis:100%;display:grid}.panel-title{padding:6px 10px}.panel-title h2{font-size:14px}.matrix-view-actions{padding:0 6px}.matrix-view-actions .icon-btn{width:32px;height:28px}.main-content:has(.schedule-controls) .page-heading{height:0;margin:0}.main-content:has(.schedule-controls) .heading-actions{z-index:2;gap:4px;position:fixed;top:2px;right:56px}.main-content:has(.schedule-controls) .heading-actions .btn{height:32px;min-height:32px;padding:6px 10px}.topbar{height:36px;padding:0 10px}.topbar .role-badge{display:none}.topbar .theme-toggle{width:32px;height:32px}}.navbar-brand{flex-shrink:0;align-items:center;display:flex}.official-brand-logo{width:140px;line-height:0;display:block}.official-brand-logo img{object-fit:contain;width:100%;height:auto;max-height:48px}.platform-brand-logo,.timetable-brand-logo{background:0 0;border-radius:0}.brand-logo-dark{display:none}@media screen{html[data-theme=dark] .brand-logo-light{display:none}html[data-theme=dark] .brand-logo-dark{display:block}}.sidebar .brand{padding:0 4px 28px;display:block}.timetable-brand-logo{width:100%;max-width:190px;height:auto;display:block}.topbar{flex-shrink:0;gap:12px}.topbar-actions{min-width:0}.schedule-meta small{line-height:1.6}@media screen and (max-width:700px){.official-brand-logo{width:110px}.role-badge{max-width:120px}}@media screen and (max-width:360px){.topbar{gap:8px;padding-inline:10px}.official-brand-logo{width:90px}.role-badge{max-width:84px}}@media screen and (max-height:500px) and (max-width:1100px){.official-brand-logo{width:80px}}.app-footer{color:#60728a;background:#f8fafc;padding:24px 36px;font-size:12px;line-height:1.7;display:block}.footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;align-items:start;gap:32px;display:grid}.footer-about,.footer-developer,.footer-links{min-width:0}.footer-copyright{color:#183657;margin:0 0 4px;font-size:14px;font-weight:700}.footer-label{color:#60728a;margin:0 0 4px;font-size:12px;font-weight:600}.footer-credit{color:#425775;overflow-wrap:anywhere;max-width:560px;margin:0;font-size:13px}.footer-description{margin:0}.footer-site-link{color:#315cf2;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.footer-site-link:hover{text-underline-offset:3px;text-decoration:underline}@media screen{html[data-theme=dark] .app-footer{color:#a9b9cf;background:#142033}html[data-theme=dark] .footer-credit{color:#c3d0e2}html[data-theme=dark] .footer-copyright{color:#edf4ff}html[data-theme=dark] .footer-label{color:#a9b9cf}html[data-theme=dark] .footer-site-link{color:#9bb8ff}}@media screen and (max-width:700px){.app-footer{padding:20px 16px}.footer-main{grid-template-columns:minmax(0,1fr);gap:16px}.footer-site-link{white-space:normal;justify-self:start}}.matrix-table{--lesson-title-size:12px;--lesson-detail-size:10px}.matrix-table tbody tr{height:auto}.matrix-table td{aspect-ratio:1;min-height:0;overflow:hidden}.matrix-day{min-height:0;overflow:hidden}.matrix-cell,.matrix-cell.unified{grid-template-rows:repeat(2,minmax(0,1fr));height:100%;min-height:0}.matrix-cell.unified{grid-template-rows:minmax(0,1fr)}.full-week,.odd-week,.even-week{min-height:0;overflow:hidden auto}.matrix-cell .grid-lesson{flex:1 0 0;min-height:0;display:block;position:relative;overflow:hidden}.full-week:has(.grid-lesson+.grid-lesson) .grid-lesson{flex:0 0 50%}:is(.odd-week:has(.grid-lesson+.grid-lesson) .grid-lesson,.even-week:has(.grid-lesson+.grid-lesson) .grid-lesson){flex:0 0 100%}.grid-card-content{--lesson-text-scale:1;flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex}.matrix-cell .grid-card-content{position:absolute;inset:0}.grid-card-content .grid-card-heading{padding:calc(5px * var(--lesson-text-scale)) calc(6px * var(--lesson-text-scale));flex-shrink:0;overflow:visible}.grid-card-content .grid-card-body{min-height:0;padding:calc(4px * var(--lesson-text-scale)) calc(6px * var(--lesson-text-scale));gap:calc(5px * var(--lesson-text-scale));flex:1;overflow:visible}.grid-card-content .grid-course,.grid-card-content .grid-group{flex-shrink:0}.grid-lesson .grid-card-content strong{font-size:calc(var(--lesson-title-size,12px) * var(--lesson-text-scale));line-height:1.2}.grid-lesson .grid-card-content .grid-kind,.grid-lesson .grid-card-content .grid-group{font-size:calc(var(--lesson-detail-size,10px) * var(--lesson-text-scale));line-height:1.2}.grid-card-content .grid-group{gap:calc(2px * var(--lesson-text-scale)) calc(5px * var(--lesson-text-scale))}.grid-lesson .grid-card-content .grid-group-name{font-size:inherit}.grid-lesson .grid-card-content .grid-card-footer{padding:calc(3px * var(--lesson-text-scale)) calc(6px * var(--lesson-text-scale));font-size:calc(var(--lesson-detail-size,10px) * var(--lesson-text-scale));flex-shrink:0;line-height:1.2;overflow:visible}@media print{.matrix-table{--lesson-title-size:9px;--lesson-detail-size:8px}.matrix-cell .grid-lesson{gap:0;padding:0}}.print-layout .matrix-table{--lesson-title-size:9px;--lesson-detail-size:8px}.print-layout .matrix-cell .grid-lesson{gap:0;padding:0}.grid-lesson .grid-card-content .grid-location{justify-content:space-between;align-items:flex-end;gap:calc(5px * var(--lesson-text-scale));min-width:0;font-size:inherit;display:flex}.grid-lesson .grid-card-content .grid-location span,.grid-lesson .grid-card-content .grid-footer-teacher{min-width:0;font-size:inherit}.grid-building{text-align:left;font-weight:500}.grid-room-number{text-align:right;font-weight:700}.grid-footer-teacher{margin-bottom:calc(3px * var(--lesson-text-scale));font-weight:500;display:block}.activity-history .section-toolbar{align-items:flex-start;gap:16px;margin-top:0}.activity-history .section-toolbar p{max-width:700px;line-height:1.7}.activity-history .section-toolbar .btn{flex-shrink:0}.activity-history .data-table td{vertical-align:top}.activity-history .data-table td:first-child{white-space:nowrap}.activity-history .data-table td:last-child{overflow-wrap:anywhere;min-width:260px;line-height:1.7}.history-more{margin-top:16px}.activity-action{white-space:nowrap;vertical-align:middle;grid-template-columns:18px max-content;align-items:center;column-gap:10px;min-width:0;font-weight:600;line-height:1.5;display:inline-grid}.activity-action svg{width:18px;height:18px;margin:0;display:block}.activity-action>span{display:block}.activity-action--create{color:#20754a}.activity-action--update{color:#315cf2}.activity-action--move{color:#956016}.activity-action--delete{color:#ba3546}.activity-action--import{color:#784ab1}.activity-action--save{color:#52667e}@media screen{html[data-theme=dark] .activity-action--create{color:#8de0ad}html[data-theme=dark] .activity-action--update{color:#a4bcff}html[data-theme=dark] .activity-action--move{color:#f4cd88}html[data-theme=dark] .activity-action--delete{color:#ffa8b3}html[data-theme=dark] .activity-action--import{color:#d5b1ff}html[data-theme=dark] .activity-action--save{color:#bdcce1}}
