html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}:root{--ink:#102a28;--panel:#faf7f1f0;--panel-solid:#faf7f1;--line:#102a281a;--text:#142628;--muted:#5f7276;--accent:#c45c26;--accent-deep:#9a3f14;--ok:#2f6b4f;--warn:#8a4b12;--danger:#8f2f2f;--shadow:0 12px 36px #08181c38;--radius:14px;--font-display:"Syne", sans-serif;--font-body:"Manrope", sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%;margin:0}body{font-family:var(--font-body);color:var(--text);background-color:#0000;background-image:radial-gradient(70% 50% at 8% 8%,#c45c2638,#0000 55%),radial-gradient(55% 40% at 92% 0,#2f6b4f2e,#0000 50%),linear-gradient(145deg,#0d2428 0%,#16343a 42%,#1a2f34 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;font-size:14px}button,input,select{font:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-weight:700}p{margin:0}.muted{color:var(--muted)}.app-shell{grid-template-columns:220px 1fr;width:100%;min-height:100vh;display:grid}.app-shell.schedule-mode{grid-template-columns:1fr;width:100%;height:100%;min-height:100vh;overflow:hidden}.app-shell.schedule-mode .sidebar{display:none}.app-shell.schedule-mode .main{flex-direction:column;width:100%;height:100%;min-height:0;padding:0;display:flex;overflow:hidden}.sidebar{color:#f4efe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#ffffff0a,#0000 40%),#08161a8c;border-right:1px solid #ffffff14;flex-direction:column;gap:1rem;padding:1rem .85rem;display:flex}.brand{align-items:center;gap:.7rem;padding:0 .25rem;display:flex}.brand-mark{flex-shrink:0;width:34px;height:34px;position:relative}.brand-ring{border:2.5px solid #e8c07a;border-radius:50%;animation:3.2s ease-in-out infinite ring-pulse;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #c45c2659}.brand-clapper{background:#c45c26;border-radius:50%;width:6px;height:6px;animation:3.2s ease-in-out infinite clapper;position:absolute;top:58%;left:50%;transform:translate(-50%)}@keyframes ring-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes clapper{0%,70%,to{transform:translate(-50%)rotate(0)}78%{transform:translate(-30%)rotate(18deg)}86%{transform:translate(-70%)rotate(-14deg)}}.brand-name{font-family:var(--font-display);letter-spacing:-.04em;font-size:1.2rem;font-weight:800;line-height:1}.brand-tag{opacity:.65;margin-top:.2rem;font-size:.7rem}.nav{flex-direction:column;gap:.15rem;display:flex}.nav-item{appearance:none;color:#f4efe6c7;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:.48rem .7rem;font-size:.92rem;transition:background .15s,color .15s}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff7ef;background:#c45c26eb}.sidebar-stats{opacity:.9;background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;justify-content:space-between;gap:.35rem;margin-top:auto;padding:.55rem .65rem;font-size:.72rem;display:flex}.sidebar-stats b{font-family:var(--font-display);margin-right:.15rem;font-size:.92rem;font-weight:700}.main{padding:.45rem .5rem;overflow:auto}.schedule-title-row{align-items:center;gap:.55rem;min-height:2.25rem;display:flex}.nav-menu{flex-shrink:0;position:relative}.nav-menu-btn{appearance:none;border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--ink);cursor:pointer;background:#fffdf8e6;border-radius:9px;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s;display:inline-flex}.nav-menu-btn:hover,.nav-menu-btn[aria-expanded=true]{background:#fff;border-color:#c45c2673}.nav-menu-icon{flex-direction:column;justify-content:center;gap:3.5px;width:1rem;display:flex}.nav-menu-icon span{background:currentColor;border-radius:1px;height:2px;display:block}.nav-menu-panel{z-index:40;min-width:220px;box-shadow:var(--shadow);color:#f4efe6;background:linear-gradient(#ffffff0f,#0000 40%),#0c1c20f5;border:1px solid #ffffff1f;border-radius:12px;padding:.45rem;position:absolute;top:calc(100% + .35rem);left:0}.nav-menu-brand{font-family:var(--font-display);letter-spacing:-.03em;opacity:.9;border-bottom:1px solid #ffffff14;margin:0 0 .35rem;padding:.35rem .65rem .45rem;font-size:.95rem;font-weight:800}.nav-menu-item{appearance:none;color:#f4efe6d1;text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;border-radius:8px;padding:.48rem .7rem;font-size:.9rem;display:block}.nav-menu-item:hover{color:#fff;background:#ffffff14}.nav-menu-item.is-active{color:#fff7ef;background:#c45c26eb}.panel{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #ffffff4d;min-height:calc(100vh - .9rem);padding:.65rem .75rem .7rem;animation:.35s both panel-fade-in}.app-shell.schedule-mode .panel{box-sizing:border-box;border-left:none;border-right:none;border-radius:0;width:100%;max-width:none;height:100%;min-height:0;padding:.35rem .4rem .4rem}@keyframes panel-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.panel-header{justify-content:space-between;align-items:center;gap:.85rem;margin-bottom:.85rem;display:flex}.master-schedule>.panel-header{justify-content:flex-start}.master-schedule .schedule-title-row{flex-shrink:0}.master-schedule .panel-header-actions{flex-wrap:nowrap;flex-shrink:0;gap:.4rem;margin-left:0}.panel-header-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;min-height:2.25rem;display:flex}.panel-header h1{margin:0;font-size:1.45rem;line-height:1}.panel-header .muted{max-width:52ch;margin-top:.2rem;font-size:.86rem;line-height:1.35}.empty-state{text-align:center;place-content:center;gap:.6rem;display:grid}.empty-state h1{font-size:1.6rem}.empty-state p{max-width:42ch;color:var(--muted)}.btn{cursor:pointer;border:0;border-radius:9px;padding:.55rem .85rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.btn-sm{border-radius:7px;padding:.28rem .55rem;font-size:.8rem;font-weight:600}.btn-primary{background:var(--accent);color:#fff8f2;font-weight:700}.btn-primary:hover{background:var(--accent-deep)}.btn-ghost{color:inherit;background:#ffffff14;border:1px solid #ffffff1f}.sidebar .btn-ghost{color:#f4efe6}.panel .btn-ghost{border:1px solid var(--line);color:var(--text);background:0 0}.panel .btn-ghost:hover{background:#102a280d}.btn-ghost.danger,.panel .btn-ghost.danger{color:var(--danger);border-color:#8f2f2f40}.btn-danger{background:var(--danger);color:#fff7f7;font-weight:700}.icon-btn{appearance:none;border:1px solid var(--line);width:2.25rem;height:2.25rem;color:var(--ink);cursor:pointer;background:#fffdf8e6;border-radius:9px;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.icon-btn:hover:not(:disabled){background:#fff;border-color:#102a2847}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn-primary{background:var(--accent);color:#fff8f2;border-color:#0000}.icon-btn-primary:hover:not(:disabled){background:var(--accent-deep);color:#fff8f2;border-color:#0000}.icon-btn-sm{border-radius:8px;width:1.85rem;height:1.85rem}.reports-menu{position:relative}.reports-menu-panel{z-index:50;background:#fffdf8;border:1px solid #102a2824;border-radius:10px;min-width:16.5rem;padding:.4rem;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 10px 28px #102a2829}.schedule-report-dialog{width:min(560px,100%)}.schedule-report-dialog-body{flex-direction:column;gap:1rem;display:flex}.schedule-report-section{border:1px solid var(--line);background:#fffdf8e6;border-radius:12px;padding:.75rem .85rem}.schedule-report-section h3{margin:0 0 .55rem;font-size:.95rem}.schedule-report-hint{margin:0 0 .55rem;font-size:.8rem}.schedule-report-options{flex-wrap:wrap;gap:.4rem 1rem;margin-bottom:.7rem;display:flex}.schedule-report-option{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;font-size:.84rem;font-weight:600;display:inline-flex}.schedule-report-option input{accent-color:var(--accent,#2f6b4f);margin:0}.schedule-report-option:has(input:disabled){opacity:.55;cursor:default}.schedule-report-actions{flex-wrap:wrap;gap:.45rem;display:flex}.class-schedule-view{flex-direction:column;flex:auto;gap:.55rem;min-height:0;display:flex}.class-schedule-display-options{border:1px solid var(--line);background:#fffdf8eb;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.35rem .85rem;padding:.45rem .65rem;display:flex}.class-schedule-display-options__label{color:var(--muted);margin-right:.15rem;font-size:.78rem;font-weight:700}.class-schedule-display-option{color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:inline-flex}.class-schedule-display-option input{accent-color:var(--accent,#2f6b4f);margin:0}.reports-menu-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid #102a2814;margin:0 0 .25rem;padding:.3rem .65rem .4rem;font-size:.72rem;font-weight:700}.reports-menu-item{appearance:none;width:100%;color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:.55rem;padding:.48rem .65rem;font-size:.86rem;font-weight:600;display:flex}.reports-menu-item:hover{background:#102a2812}.reports-menu-item-icon{color:var(--muted);flex-shrink:0;display:inline-flex}.icon-btn-danger{color:var(--danger)}.icon-btn-danger:hover:not(:disabled){color:var(--danger);background:#8f2f2f14;border-color:#8f2f2f47}.btn-danger:hover{background:#752424}.confirm-dialog{width:min(420px,100%)}.confirm-dialog-body{color:var(--text);margin-bottom:1rem;font-size:.92rem;line-height:1.4}.form-row,.settings-row{flex-wrap:wrap;align-items:end;gap:.55rem;margin-bottom:.85rem;display:flex}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:.55rem;margin-bottom:.85rem;display:grid}.workload-form{flex-direction:column;gap:.75rem;margin-bottom:.85rem;display:flex}.modal-form{margin-bottom:0}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08161a9e;place-items:center;padding:1rem;animation:.18s fade-in;display:grid;position:fixed;inset:0}.modal-window{background:var(--panel-solid);width:min(720px,100%);max-height:min(90vh,860px);box-shadow:var(--shadow);border:1px solid #ffffff59;border-radius:14px;padding:1rem 1.1rem 1.1rem;animation:.2s rise-in;overflow:auto}.modal-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem;display:flex}.modal-header h2{font-size:1.2rem}.modal-header .muted{margin-top:.2rem;font-size:.84rem}.modal-close{flex-shrink:0}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.15rem;display:flex}.generate-dialog{width:min(420px,100%)}.generate-dialog-fields{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:.85rem;display:flex}.btn-accent-outline{color:var(--accent-deep);background:0 0;border:1px solid #c45c2666;font-weight:700}.btn-accent-outline:hover{background:#c45c261a}.btn-accent-outline.is-active{background:#c45c2624;box-shadow:inset 0 0 0 1px #c45c2673}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.workload-top{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}.group-editor{gap:.55rem;display:grid}.group-editor.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.group-editor.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.group-card{border:1px solid var(--line);background:#ffffff80;border-radius:10px;flex-direction:column;gap:.45rem;margin:0;padding:.65rem .7rem;display:flex}.group-card legend{font-family:var(--font-display);padding:0 .25rem;font-size:.82rem;font-weight:700}.field{flex-direction:column;gap:.22rem;min-width:100px;display:flex}.field.grow{flex:1}.field.inline{flex-direction:row;align-items:center;gap:.4rem}.checkbox-field{min-height:34px;padding-bottom:.1rem}.checkbox-field input[type=checkbox]{width:.95rem;height:.95rem;accent-color:var(--accent)}.field span{color:var(--muted);font-size:.72rem;font-weight:600}.field input,.field select{border:1px solid var(--line);color:var(--text);background:#fffdf8;border-radius:8px;padding:.42rem .6rem}.entity-list{border:1px solid var(--line);background:#ffffff6b;border-radius:10px;flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.entity-list li,.entity-row{border-bottom:1px solid var(--line);background:0 0;border-top:0;border-left:0;border-right:0;border-radius:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.48rem .7rem;display:flex}.entity-list li:last-child,.entity-row:last-child{border-bottom:0}.entity-list li:hover,.entity-row:hover{background:#ffffff8c}.entity-row-sortable .entity-main{align-items:center}.entity-row.is-dragging{opacity:.45}.entity-row.is-drag-over{box-shadow:inset 0 2px 0 0 var(--accent,#2f6fed);background:#2f6fed14}.drag-handle{width:1.4rem;height:1.6rem;color:var(--muted);letter-spacing:-.12em;cursor:grab;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:.85rem;line-height:1;display:inline-flex}.drag-handle:hover{color:var(--text);background:#0000000f}.drag-handle:active,.entity-row.is-dragging .drag-handle{cursor:grabbing}.entity-main{flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;min-width:0;display:flex}.teacher-room-field{min-width:9rem;margin:0}.teacher-room-field select{padding:.22rem .4rem;font-size:.8rem}.teacher-editor-header{color:var(--muted);grid-template-columns:4rem minmax(20rem,2.2fr) 8rem minmax(13rem,1.15fr) auto;align-items:center;gap:.6rem;padding:0 .7rem .35rem;font-size:.74rem;display:grid}.teacher-editor-list .entity-row{background:#ffffffa6;border:1px solid #102a2814;border-radius:10px;align-items:flex-start;margin-bottom:.35rem}.teacher-editor-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.teacher-toolbar{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.teacher-editor-grid{grid-template-columns:4rem minmax(20rem,2.2fr) 8rem minmax(13rem,1.15fr);align-items:center;gap:.6rem;width:100%;display:grid}.teacher-editor-order{align-items:center;gap:.35rem;min-width:0;display:flex}.teacher-order-index{justify-content:flex-end;min-width:1.2rem}.teacher-editor-name,.teacher-editor-max,.teacher-editor-room{min-width:0}.teacher-display-cell{align-items:center;min-height:2.4rem;display:flex}.teacher-display-pill{color:#1d5b52;background:#246e6214;border-radius:999px;justify-content:center;align-items:center;min-width:3.1rem;padding:.34rem .6rem;font-weight:700;display:inline-flex}.teacher-display-room{min-height:2.1rem;color:var(--ink);background:#102a280f;border-radius:999px;align-items:center;padding:.28rem .7rem;display:inline-flex}.teacher-editor-row .entity-actions{white-space:nowrap;align-self:center;gap:.35rem}.entity-main strong{font-size:.95rem;font-weight:700}.entity-meta{color:var(--muted);align-items:center;gap:.4rem;font-size:.8rem;display:inline-flex}.tag{color:var(--accent-deep);background:#c45c261f;border-radius:999px;align-items:center;padding:.08rem .4rem;font-size:.68rem;font-weight:700;display:inline-flex}.entity-actions{flex-wrap:nowrap;flex-shrink:0;gap:.3rem;display:flex}.entity-edit{padding:.65rem .7rem!important;display:block!important}.entity-edit-form{flex-wrap:wrap;align-items:end;gap:.55rem;width:100%;display:flex}.room-junior-editor{border:1px solid var(--line);background:#ffffff59;border-radius:8px;flex-direction:column;flex:100%;gap:.45rem;padding:.55rem .65rem;display:flex}.room-junior-toggle{color:var(--text);cursor:pointer;align-items:flex-start;gap:.45rem;font-size:.86rem;font-weight:600;display:flex}.room-junior-toggle input{margin-top:.15rem}.room-junior-editor .field-label{color:var(--muted);font-size:.72rem;font-weight:600}.room-class-picks{flex-wrap:wrap;gap:.35rem;display:flex}.room-class-pick{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#fff;border-radius:999px;padding:.2rem .65rem;font-size:.78rem;font-weight:600}.room-class-pick.is-on{color:#1a4a3a;background:#e8f2ec;border-color:#2f6b4f}.room-junior-hint{margin:0;font-size:.75rem}.room-junior-tag{white-space:normal;max-width:100%;margin-top:.25rem;line-height:1.25;display:inline-block}.profiles-editor{border:1px solid var(--line);background:#ffffff59;border-radius:8px;flex-direction:column;flex:100%;gap:.4rem;padding:.55rem .65rem;display:flex}.profiles-editor .field-label{color:var(--muted);font-size:.72rem;font-weight:600}.profile-edit-row{align-items:flex-end;gap:.4rem;display:flex}.profile-name-field{margin:0}.profile-add-row{margin-top:.25rem}.profile-edit-row input{flex:1;min-width:0}.profile-block{border-bottom:1px dashed var(--line);flex-direction:column;gap:.4rem;padding-bottom:.45rem;display:flex}.profile-block:last-of-type{border-bottom:0;padding-bottom:0}.profile-subjects{flex-wrap:wrap;gap:.3rem;display:flex}.profile-subjects-line{flex-wrap:wrap;align-items:center;gap:.15rem 0;min-height:1.8rem;display:flex}.profile-slash-item{align-items:center;display:inline-flex}.profile-slash-sep{color:var(--muted);margin:0 .35rem;font-weight:700}.profile-slash-chip{border:1px solid var(--line);color:#1a5fb4;background:#1a5fb41a;border-radius:999px;align-items:center;gap:.15rem;padding:.15rem .25rem .15rem .45rem;font-size:.78rem;font-weight:600;display:inline-flex}.profile-slash-chip.is-split{color:var(--accent-deep,#8a3a12);background:#c45c261f;border-color:#c45c2673}.profile-slash-btn{cursor:pointer;color:inherit;opacity:.75;background:0 0;border:0;padding:0 .2rem;font-size:.75rem;line-height:1}.profile-slash-btn:hover,.profile-slash-btn.is-on{opacity:1}.profile-slash-btn.danger:hover{color:#b42318}.profile-add-subject{max-width:22rem;margin-top:.25rem}.profile-subgroups-block{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:flex-end;gap:.55rem .85rem;margin-top:.35rem;padding-top:.45rem;display:flex}.profile-subgroup-names{flex-wrap:wrap;gap:.45rem;display:flex}.profile-subgroup-names .field{min-width:6.5rem}.profile-subject-chip{border:1px solid var(--line);-webkit-user-select:none;user-select:none;background:#ffffff8c;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .45rem;font-size:.75rem;display:inline-flex}.profile-subject-main{cursor:pointer;align-items:center;gap:.28rem;display:inline-flex}.profile-subject-chip input{margin:0}.profile-subject-chip.is-on{color:#1a5fb4;background:#1a5fb41f;border-color:#1a5fb473;font-weight:600}.profile-subject-chip.is-split{background:#c45c261f;border-color:#c45c2673}.profile-split-toggle{cursor:pointer;opacity:.9;border-left:1px solid #0000001f;align-items:center;gap:.2rem;padding-left:.35rem;font-size:.68rem;font-weight:600;display:inline-flex}.profile-subject-chip.is-taken{opacity:.45;cursor:not-allowed}.profile-subjects-hint{margin:0;font-size:.78rem}.entity-edit-actions{align-items:end;gap:.35rem;display:flex}.generate-banner{border-radius:8px;margin-bottom:.35rem;padding:.45rem .7rem;font-size:.84rem;font-weight:600}.generate-banner.ok{color:var(--ok);background:#2f6b4f1f}.generate-banner.warn{color:var(--warn);background:#c45c2624}.conflict-list{color:var(--warn);margin:0 0 .75rem;padding-left:1rem;font-size:.84rem}.schedule-scroll{border:1px solid var(--line);background:#fffdf8b3;border-radius:10px;overflow:auto}.schedule-grid{border-collapse:collapse;width:100%;min-width:720px}.schedule-grid th,.schedule-grid td{border:1px solid var(--line);vertical-align:top;padding:.35rem}.schedule-grid thead th{font-family:var(--font-display);background:#102a2812;padding:.5rem;font-size:.86rem}.schedule-grid tbody th{text-align:center;width:44px;font-family:var(--font-display);background:#102a280a}.master-schedule{box-sizing:border-box;flex-direction:column;flex:auto;gap:.35rem;width:100%;max-width:none;height:auto;min-height:0;padding-top:.35rem;padding-bottom:.35rem;display:flex}.master-schedule.panel{min-height:0;max-height:none}.master-schedule .schedule-scroll{flex:auto;min-height:0;max-height:none}.master-schedule .panel-header{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:.5rem;margin-bottom:.2rem}.master-schedule .master-tray{box-sizing:border-box;background:linear-gradient(#ffffffbf,#fffdf880),#102a280a;border:1px solid #102a281f;border-radius:999px;flex:auto;min-width:0;max-width:none;height:2.25rem;padding:0 .55rem;box-shadow:inset 0 1px #ffffffa6}.view-toggle{box-sizing:border-box;background:#102a2814;border:1px solid #102a281f;border-radius:999px;flex-shrink:0;align-items:stretch;gap:0;height:2.25rem;padding:3px;display:inline-flex;box-shadow:inset 0 1px 2px #102a280f}.view-toggle-btn{appearance:none;color:var(--muted);font:inherit;letter-spacing:-.01em;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0 .9rem;font-size:.84rem;font-weight:600;line-height:1;transition:color .18s,background .18s,box-shadow .18s;display:inline-flex;position:relative}.view-toggle-btn:hover:not(.is-active){color:var(--text);background:#ffffff73}.view-toggle-btn.is-active{color:#fff8f2;background:linear-gradient(165deg, #d46a36 0%, var(--accent) 48%, var(--accent-deep) 100%);box-shadow:0 2px 8px #c45c2659,inset 0 1px #ffffff40}.view-toggle-btn.is-active:hover{color:#fff8f2}.master-scroll{border:1px solid var(--line);background:#f7f4ee;border-radius:8px;flex:auto;min-height:0;max-height:none;overflow:auto}.master-grid{border-collapse:collapse;table-layout:fixed;width:100%;min-width:calc(158px + var(--master-period-cols,60) * var(--master-cell-w,21px));font-size:11px;line-height:1.15}.master-grid th,.master-grid td{white-space:nowrap;border:1px solid #102a2824;padding:0}.master-grid thead th{z-index:3;text-align:center;background:#e8e2d6;font-weight:600;position:sticky;top:0}.master-grid thead tr:first-child th{z-index:4;top:0}.master-grid thead tr:nth-child(2) th{z-index:3;color:var(--muted);min-width:var(--master-cell-w,21px);height:18px;font-size:10px;top:22px}.master-grid .sticky-meta{z-index:2;background:#efe9dd;padding:.15rem .35rem;font-weight:500;position:sticky;left:0}.master-grid thead .sticky-meta{z-index:5;background:#ddd5c6}.master-grid .col-num{text-align:center;width:22px;min-width:22px;padding-left:.1rem;padding-right:.1rem;left:0}.master-grid .col-teacher{text-overflow:ellipsis;text-align:left;width:100px;min-width:100px;max-width:130px;padding-left:.25rem;padding-right:.25rem;left:22px;overflow:hidden}.master-grid .col-load{text-align:center;font-variant-numeric:tabular-nums;border-right:2px solid #102a2847;width:36px;min-width:36px;padding-left:.1rem;padding-right:.1rem;left:122px}.master-grid .col-load.is-full{color:#5a5c58;font-weight:700}.master-grid tbody tr.is-full-row .sticky-meta,.master-grid tbody tr.is-full-row .master-cell,.master-grid tbody tr.is-full-row .master-cell.has-lesson{background:#e4e4e2}.master-grid tbody tr.is-full-row .col-teacher{color:#4a4c48;font-weight:650}.master-grid tbody tr.is-full-row:hover .sticky-meta,.master-grid tbody tr.is-full-row:hover .master-cell{background:#dbdbd8}.master-grid tbody tr.is-full-row.is-selected-row .sticky-meta{background:#d2d6d4}.master-grid tbody tr.is-full-row .master-cell.is-sat,.master-grid tbody tr.is-full-row .master-cell.is-sat.has-lesson{background:#e4e4e2}.master-grid .day-group{font-family:var(--font-display);border-left:2px solid #102a2847;padding:.2rem .15rem;font-size:.78rem}.master-grid .day-start{border-left:2px solid #102a2847}.master-grid .is-sat{background:#c45c2614}.master-grid .master-cell.is-sat.is-selected-col,.master-grid .master-cell.is-sat.is-selected-row{background:#a0c8eb66}.master-grid .master-cell.is-sat.is-selected-cell{background:#7eb6e8!important}.master-grid tbody tr.is-selected-row .sticky-meta{background:#d6e8f5}.master-grid tbody tr.is-selected-row .master-cell.is-selected-row{background:#a0c8eb59}.master-grid tbody tr:hover .sticky-meta{background:#e8f2ec}.master-grid thead th.is-selected-col,.master-grid .period-head.is-selected-col{color:var(--ink);background:#b8d4ef!important}.master-grid .day-group.is-selected-col{background:#a8c8e8!important}.master-cell{min-width:var(--master-cell-w,21px);width:auto;height:var(--master-cell-h,22px);vertical-align:middle;cursor:cell;background:#fffdf8}.master-cell.has-lesson{background:#fff}.master-cell.is-selected-col{background:#a0c8eb59}.master-cell.is-selected-col.has-lesson{background:#a0c8eb6b}.master-cell.is-split-cell .master-chip,.master-chip.is-split{color:#1a5fb4;font-weight:600}.class-unplaced-bar{background:#eef6f073;border-top:1px solid #2f6b4f26;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.35rem .5rem;margin-top:.25rem;padding:.35rem .2rem .2rem;display:flex}.class-unplaced-label{color:var(--muted);white-space:nowrap;font-size:.72rem;font-weight:700}.class-unplaced-items{flex-wrap:wrap;align-items:center;gap:.28rem;min-width:0;display:flex}.class-unplaced-dock{z-index:45;pointer-events:none;justify-content:flex-end;display:flex;position:fixed;top:0;bottom:0;right:0}.class-unplaced-hotzone{pointer-events:auto;cursor:default;width:16px;position:absolute;top:0;bottom:0;right:0}.class-unplaced-panel{pointer-events:auto;background:var(--panel-solid,#faf7f1);opacity:.35;border:1px solid #102a281f;border-right:none;border-radius:10px 0 0 10px;align-self:stretch;min-width:11rem;max-width:15rem;height:calc(100% - 1.5rem);margin:.75rem 0;padding:.85rem 1rem 1rem;transition:transform .22s,opacity .18s;overflow:auto;transform:translate(calc(100% - 3px));box-shadow:-8px 0 24px #08181c1f}.class-unplaced-dock:hover .class-unplaced-panel{opacity:1;transform:translate(0)}.class-unplaced-panel-title{color:var(--ink);flex-direction:column;gap:.15rem;margin-bottom:.7rem;font-size:.95rem;font-weight:700;line-height:1.2;display:flex}.class-unplaced-panel-sub{color:var(--muted);text-transform:none;letter-spacing:0;font-size:.72rem;font-weight:650}.class-unplaced-panel-items{flex-direction:column;align-items:stretch;gap:.35rem;display:flex}.class-unplaced-chip{white-space:normal;text-align:left;justify-content:space-between;width:100%;padding:.35rem .5rem;font-size:.8rem}.class-unplaced-empty{margin:0;font-size:.78rem}.profile-tone-legend{color:var(--muted);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.35rem .55rem;padding:.25rem .15rem;font-size:.72rem;display:flex}.profile-tone-legend--rail{flex-flow:column;align-items:stretch;gap:.35rem;padding:0}.profile-legend-dock{z-index:45;pointer-events:none;justify-content:flex-start;display:flex;position:fixed;top:0;bottom:0;left:0}.profile-legend-hotzone{pointer-events:auto;cursor:default;width:16px;position:absolute;top:0;bottom:0;left:0}.profile-legend-panel{pointer-events:auto;background:var(--panel-solid,#faf7f1);opacity:.35;border:1px solid #102a281f;border-left:none;border-radius:0 10px 10px 0;align-self:stretch;min-width:8.5rem;height:calc(100% - 1.5rem);max-height:none;margin:.75rem 0;padding:.85rem 1rem 1rem;transition:transform .22s,opacity .18s;overflow:auto;transform:translate(calc(3px - 100%));box-shadow:8px 0 24px #08181c1f}.profile-legend-dock:hover .profile-legend-panel{opacity:1;transform:translate(0)}.profile-legend-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:.65rem;font-size:.75rem;font-weight:700}.profile-tone-legend-item{letter-spacing:.02em;border:1px solid #0000;border-radius:999px;align-items:center;gap:.3rem;padding:.12rem .45rem;font-weight:650;display:inline-flex}.profile-tone-legend--rail .profile-tone-legend-item{border-radius:6px;justify-content:flex-start;padding:.38rem .55rem;font-size:.85rem}.profile-tone-legend-item:before{content:"";opacity:.9;background:currentColor;border-radius:50%;width:.55rem;height:.55rem}.master-cell.has-profile-tone .master-chip,.master-chip.has-profile-tone,.master-mini-grid td.has-profile-tone{font-weight:650}[data-profile-tone="0"].profile-tone-legend-item{color:#1a5fb4;background:#1a5fb429;border-color:#1a5fb438}.master-cell[data-profile-tone="0"],.master-mini-grid td[data-profile-tone="0"]{color:#1a5fb4;background:#1a5fb429}.master-cell[data-profile-tone="0"] .master-chip{color:#1a5fb4}[data-profile-tone="1"].profile-tone-legend-item{color:#8a5a10;background:#c48c2833;border-color:#8a5a1038}.master-cell[data-profile-tone="1"],.master-mini-grid td[data-profile-tone="1"]{color:#8a5a10;background:#c48c2833}.master-cell[data-profile-tone="1"] .master-chip{color:#8a5a10}[data-profile-tone="2"].profile-tone-legend-item{color:#9a3050;background:#b4466429;border-color:#9a305038}.master-cell[data-profile-tone="2"],.master-mini-grid td[data-profile-tone="2"]{color:#9a3050;background:#b4466429}.master-cell[data-profile-tone="2"] .master-chip{color:#9a3050}[data-profile-tone="3"].profile-tone-legend-item{color:#4a6b1e;background:#6e96322e;border-color:#4a6b1e38}.master-cell[data-profile-tone="3"],.master-mini-grid td[data-profile-tone="3"]{color:#4a6b1e;background:#6e96322e}.master-cell[data-profile-tone="3"] .master-chip{color:#4a6b1e}[data-profile-tone="4"].profile-tone-legend-item{color:#0e6e6a;background:#148c8229;border-color:#0e6e6a38}.master-cell[data-profile-tone="4"],.master-mini-grid td[data-profile-tone="4"]{color:#0e6e6a;background:#148c8229}.master-cell[data-profile-tone="4"] .master-chip{color:#0e6e6a}[data-profile-tone="5"].profile-tone-legend-item{color:#3d4f6f;background:#50648c2e;border-color:#3d4f6f38}.master-cell[data-profile-tone="5"],.master-mini-grid td[data-profile-tone="5"]{color:#3d4f6f;background:#50648c2e}.master-cell[data-profile-tone="5"] .master-chip{color:#3d4f6f}.master-cell.has-profile-tone.is-selected-col{filter:brightness(.97)}.master-cell.has-profile-tone.is-selected-cell{outline-color:currentColor}.master-cell.is-selected-cell{outline-offset:-2px;outline:2px solid #1a5fb4;background:#7eb6e8!important}.master-cell.is-drag-over,.master-cell.is-drop-hint{outline:2px solid var(--accent);outline-offset:-2px;background:#c45c261f}.master-cell.is-place-blocked{background:#8f2f2f1a;position:relative}.master-cell.is-place-blocked.has-lesson{box-shadow:inset 0 0 0 1.5px #8f2f2f73}.master-grid tbody td.master-cell.is-pe-full,.master-grid tbody tr.is-full-row td.master-cell.is-pe-full,.master-grid tbody tr.is-selected-row td.master-cell.is-pe-full,.master-cell.is-pe-full.has-profile-tone,.master-cell.is-pe-full{background:#f7f1d8!important}.master-grid tbody td.master-cell.is-pe-full .master-chip,.master-cell.is-pe-full .master-chip{box-shadow:inset 0 0 0 1px #8c78282e;background:#f7f1d8!important}.master-cell-block-x{color:#8f2f2fbf;pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:100%;font-size:11px;font-weight:700;line-height:1;display:flex}.master-chip{width:100%;height:100%;font:inherit;color:var(--ink);cursor:grab;text-overflow:ellipsis;text-align:center;background:0 0;border:none;margin:0;padding:0 2px;font-size:9px;line-height:1.1;display:block;overflow:hidden}.rooms-occupancy-chip{cursor:default;white-space:nowrap;flex-wrap:nowrap;justify-content:center;align-items:center;gap:0;display:flex}.rooms-occupancy-class{appearance:none;color:var(--ink);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin:0;padding:0;font-weight:600;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.rooms-occupancy-class:hover,.rooms-occupancy-class:focus-visible{outline:none;text-decoration-color:currentColor}.rooms-occupancy-class.is-split{color:#1a5fb4;font-weight:700}.rooms-occupancy-class.is-shift2,.rooms-occupancy-class.is-shift2.is-split{color:#9a4a12}.rooms-occupancy-sep{color:var(--muted);font-weight:500}.rooms-occupancy-wrap{flex-direction:column;flex:auto;gap:.45rem;min-height:0;display:flex}.rooms-occupancy-toolbar{flex-direction:column;flex-shrink:0;gap:.45rem;display:flex}.rooms-occupancy-toolbar-main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.rooms-occupancy-toolbar-main .rooms-occupancy-actions{margin-left:auto}.rooms-occupancy-grid.is-single-day{min-width:max-content}.rooms-occupancy-section-row td{border-left:none!important;border-right:none!important;padding:0!important}.rooms-occupancy-section-cell{z-index:3;letter-spacing:.01em;color:#5a3d12;text-align:left;font-size:.78rem;font-weight:700;position:sticky;left:0;background:#f3e0b8!important;border-top:1px solid #d4b56a!important;border-bottom:1px solid #d4b56a!important;padding:.35rem .65rem!important}.rooms-occupancy-grid tbody tr.is-junior-room-row .sticky-meta{background:#faf3e4}.rooms-occupancy-grid tbody tr.is-junior-room-row:hover .sticky-meta{background:#f5e9d0}.rooms-occupancy-grid tbody tr.is-junior-room-row.is-selected-row .sticky-meta{background:#efe0bc}.rooms-occupancy-room-name{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.rooms-junior-badge{color:#5a3d12;white-space:nowrap;background:#f0d59a;border-radius:999px;padding:.05rem .35rem;font-size:.65rem;font-weight:700;line-height:1.2;display:inline-block}.rooms-special-badge{color:#1a4a3a;white-space:nowrap;background:#cfe6d8;border-radius:999px;padding:.05rem .35rem;font-size:.65rem;font-weight:700;line-height:1.2;display:inline-block}.rooms-occupancy-grid tbody tr.is-special-room-row .sticky-meta{background:#eef6f1}.rooms-occupancy-grid tbody tr.is-special-room-row:hover .sticky-meta{background:#e2efe8}.rooms-occupancy-grid tbody tr.is-special-room-row.is-selected-row .sticky-meta{background:#d5e8dd}.rooms-assign-option.is-special{background:#f2f8f4;border-color:#2f6b4f66}.rooms-assign-option.is-special span{color:#2f6b4f}.rooms-assign-option.is-home{background:#eef4fc;border-color:#1a5fb473;order:-1}.rooms-assign-option.is-home span{color:#1a5fb4}.rooms-day-cell-stack{flex-direction:column;align-items:stretch;gap:.2rem;width:100%;display:flex}.rooms-day-chip{width:100%;color:inherit;font:inherit;text-align:center;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-direction:column;align-items:stretch;gap:.05rem;padding:.15rem .2rem;display:flex}.rooms-day-chip:hover,.rooms-day-chip:focus-visible{background:#1a5fb41a;outline:none}.rooms-day-chip.is-split .rooms-day-class{color:var(--accent-deep)}.rooms-day-chip.is-shift2 .rooms-day-class,.rooms-day-chip.is-shift2 .rooms-day-subject,.rooms-day-chip.is-shift2.is-split .rooms-day-class{color:#9a4a12}.rooms-day-class{font-size:.78rem;font-weight:700;line-height:1.15}.rooms-day-subject{color:var(--muted);white-space:normal;font-size:.68rem;line-height:1.1}.rooms-occupancy-grid tbody td.master-cell.is-off .rooms-day-subject{color:#fffdf8d1}.rooms-occupancy-actions{flex-shrink:0;align-items:center;gap:.45rem;display:flex}.rooms-occupancy-hint{max-width:42rem;margin:0;font-size:.82rem}.rooms-occupancy-toast{color:var(--ok);background:#2f6b4f1f;border-radius:8px;margin:0;padding:.4rem .65rem;font-size:.85rem;font-weight:600}.rooms-unassigned-bar{border:1px solid var(--line);background:#faf7f1f2;border-radius:8px;flex-shrink:0;padding:.45rem .65rem .55rem}.rooms-unassigned-head{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:.35rem;display:flex}.rooms-unassigned-slot{color:var(--ink);font-size:.9rem;font-weight:700}.rooms-unassigned-count{color:var(--muted);font-size:.82rem}.rooms-unassigned-count b{color:var(--accent-deep);font-variant-numeric:tabular-nums}.rooms-unassigned-empty,.rooms-unassigned-ok{margin:0;font-size:.82rem}.rooms-unassigned-list{flex-wrap:wrap;gap:.28rem;display:flex}.rooms-unassigned-chip{color:var(--ink);cursor:pointer;background:#fff;border:1px solid #102a2824;border-radius:6px;align-items:center;padding:.12rem .45rem;font-size:.78rem;font-weight:650;line-height:1.3;display:inline-flex}.rooms-unassigned-chip:hover,.rooms-unassigned-chip:focus-visible{background:#1a5fb41a;border-color:#1a5fb473;outline:none}.rooms-unassigned-chip.is-split{color:#1a5fb4;background:#1a5fb414;border-color:#1a5fb447}.rooms-unassigned-chip.is-shift2{color:#9a4a12;background:#fff3e6;border-color:#c46e2859}.rooms-assign-modal{flex-direction:column;width:min(32rem,100vw - 2rem);max-height:min(90vh,40rem);display:flex}.rooms-assign-body{padding:0 1.1rem 1.1rem;overflow:auto}.rooms-assign-meta{grid-template-columns:1fr 1fr;gap:.65rem 1rem;margin:0 0 1rem;display:grid}.rooms-assign-meta dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:.72rem}.rooms-assign-meta dd{color:var(--ink);margin:.15rem 0 0;font-size:.95rem;font-weight:650}.rooms-assign-label{margin:0 0 .45rem;font-size:.85rem;font-weight:700}.rooms-assign-cascade-hint{margin:-.2rem 0 .55rem;font-size:.78rem}.rooms-assign-options{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.4rem;display:grid}.rooms-assign-group-label{color:var(--muted);grid-column:1/-1;margin:.35rem 0 0;font-size:.75rem;font-weight:700}.rooms-assign-group-label:first-child{margin-top:0}.rooms-assign-option.is-junior{background:#fff8eb;border-color:#c4922a73}.rooms-assign-option.is-junior span{color:#8a6418}.rooms-assign-option.is-busy{opacity:.92}.rooms-assign-option{border:1px solid var(--line);cursor:pointer;text-align:left;font:inherit;color:var(--ink);background:#fff;border-radius:8px;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.5rem .65rem;display:flex}.rooms-assign-option:hover,.rooms-assign-option:focus-visible{background:#1a5fb40f;border-color:#1a5fb473;outline:none}.rooms-assign-option.is-preferred{background:#2f6b4f14;border-color:#2f6b4f73}.rooms-assign-option strong{font-size:.95rem}.rooms-assign-option span{color:var(--ok);font-size:.72rem;font-weight:650}.rooms-assign-option em{color:var(--muted);font-size:.72rem;font-style:normal}.rooms-assign-clear{margin-top:.85rem}.rooms-occupancy-scroll{flex:auto;min-height:0;margin-top:0}.rooms-occupancy-grid .period-head{cursor:pointer}.rooms-occupancy-grid .period-head.is-rooms-complete{color:var(--ink);background:#102a281a}.rooms-occupancy-grid tbody td.master-cell.is-rooms-complete{background:#102a280e}.rooms-occupancy-grid tbody td.master-cell.is-rooms-complete.is-selected-col{background:#102a281a}.rooms-occupancy-grid tbody tr.is-selected-row td.master-cell.is-rooms-complete{background:#102a2817}.rooms-occupancy-grid tbody td.master-cell.is-rooms-complete.is-selected-cell,.rooms-occupancy-grid .period-head.is-rooms-complete.is-selected-col{background:#102a2829}.rooms-occupancy-grid tbody td.master-cell.is-shift2-class.has-lesson{background-color:#fff3e6}.rooms-occupancy-grid tbody td.master-cell.is-preferred-room,.rooms-occupancy-grid tbody td.master-cell.is-home-class{position:relative}.rooms-occupancy-grid tbody td.master-cell.is-home-class:before{content:"*";color:#2e7d4f;pointer-events:none;z-index:1;font-size:13px;font-weight:700;line-height:1;position:absolute;bottom:-1px;right:1px}.rooms-occupancy-grid tbody td.master-cell.is-preferred-room:after{content:"✓";color:#2e7d4f;pointer-events:none;z-index:1;font-size:11px;font-weight:700;line-height:1;position:absolute;top:auto;bottom:0;right:1px}.rooms-occupancy-grid tbody td.master-cell.is-home-class.is-preferred-room:before{right:11px}.rooms-occupancy-grid tbody td.master-cell.is-off.is-preferred-room:after,.rooms-occupancy-grid tbody td.master-cell.is-off.is-home-class:before{display:none}.rooms-occupancy-grid.is-unavail-mode tbody td.master-cell{cursor:cell}.rooms-occupancy-grid.is-unavail-mode .rooms-occupancy-class{pointer-events:none}.rooms-occupancy-grid tbody td.master-cell.is-off{box-shadow:inset 0 0 0 1px #0000001f;background:#c45c26!important}.rooms-occupancy-grid tbody td.master-cell.is-off.has-lesson,.rooms-occupancy-grid tbody td.master-cell.is-off .rooms-occupancy-class{color:#fffdf8}.rooms-occupancy-grid tbody td.master-cell.is-off.is-selected-row,.rooms-occupancy-grid tbody td.master-cell.is-off.is-selected-col{background:#b85220!important}.rooms-occupancy-grid tbody td.master-cell.is-off.is-selected-cell{background:#a84818!important}.rooms-occupancy-legend{flex-shrink:0;margin:.35rem 0 0}.teachers-rooms-wrap{flex-direction:column;flex:auto;gap:.45rem;min-height:0;display:flex}.teachers-rooms-toolbar{flex-direction:column;flex-shrink:0;gap:.35rem;display:flex}.teachers-rooms-days{flex-wrap:wrap;justify-content:center;gap:.35rem;display:flex}.teachers-rooms-day{appearance:none;border:1px solid var(--line);font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;margin:0;padding:.35rem .85rem;font-size:.88rem;font-weight:650}.teachers-rooms-day:hover,.teachers-rooms-day:focus-visible{border-color:#1a5fb466;outline:none}.teachers-rooms-day.is-active{color:#1a5fb4;background:#1a5fb41f;border-color:#1a5fb473}.teachers-rooms-hint{text-align:center;flex-shrink:0;margin:0;font-size:.82rem}.teachers-rooms-empty{text-align:center;color:var(--muted);padding:1.25rem .75rem;font-size:.9rem}.teachers-rooms-grid tbody td.master-cell.is-editable{cursor:pointer}.teachers-rooms-filters{flex-wrap:wrap;justify-content:center;gap:.3rem;display:flex}.teachers-rooms-filter{appearance:none;border:1px solid var(--line);font:inherit;color:var(--muted);cursor:pointer;background:#fff;border-radius:7px;margin:0;padding:.28rem .7rem;font-size:.82rem;font-weight:600}.teachers-rooms-filter:hover,.teachers-rooms-filter:focus-visible{color:var(--ink);border-color:#102a2847;outline:none}.teachers-rooms-filter.is-active{color:var(--ink);background:#102a2814;border-color:#102a2859}.teachers-rooms-grid.is-single-day{font-size:13px}.teachers-rooms-chip{cursor:default;white-space:normal;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1px;max-width:100%;padding:0 2px;font-weight:650;line-height:1.15;display:flex}.teachers-rooms-chip-room{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:700;overflow:hidden}.teachers-rooms-chip-subject{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;opacity:.9;max-width:100%;font-size:12px;font-weight:650;display:block;overflow:hidden}.teachers-rooms-chip.is-preferred .teachers-rooms-chip-subject{opacity:.95}.teachers-rooms-chip.is-shift2{color:#9a4a12}.teachers-rooms-chip.is-shift2 .teachers-rooms-chip-subject{color:#9a4a12;opacity:.95}.teachers-rooms-chip.is-missing{color:var(--muted);font-weight:600}.teachers-rooms-chip.is-missing .teachers-rooms-chip-subject{color:var(--muted)}.teachers-rooms-cell-stack{flex-direction:column;justify-content:center;align-items:center;gap:1px;width:100%;height:100%;display:flex}.teachers-rooms-grid tbody td.master-cell.is-missing-room.has-lesson{background:#b4502814}.teachers-rooms-grid .period-head.is-rooms-complete{color:var(--ink);background:#102a281a}.teachers-rooms-grid tbody td.master-cell.is-rooms-complete{background:#102a280e}.teachers-rooms-grid tbody td.master-cell.is-shift2-class.has-lesson{background-color:#fff3e6}.teachers-rooms-grid tbody td.master-cell.is-preferred-room,.teachers-rooms-grid tbody td.master-cell.is-home-class{position:relative}.teachers-rooms-grid tbody td.master-cell.is-home-class:before{content:"*";color:#2e7d4f;pointer-events:none;z-index:1;font-size:13px;font-weight:700;line-height:1;position:absolute;bottom:-1px;right:1px}.teachers-rooms-grid tbody td.master-cell.is-preferred-room:after{content:"✓";color:#2e7d4f;pointer-events:none;z-index:1;font-size:11px;font-weight:700;line-height:1;position:absolute;top:auto;bottom:0;right:1px}.teachers-rooms-grid tbody td.master-cell.is-home-class.is-preferred-room:before{right:11px}.master-chip:active{cursor:grabbing}.master-chip.is-locked{cursor:default;background:#246e622e;font-weight:600;box-shadow:inset 0 0 0 1px #246e6273}.master-chip.is-locked:active{cursor:default}.master-chip-lock{opacity:.85;border:1.5px solid;border-radius:1px 1px 2px 2px;width:7px;height:7px;margin:0 auto 1px;display:block;position:relative}.master-chip-lock:before{content:"";box-sizing:border-box;border:1.5px solid;border-bottom:none;border-radius:3px 3px 0 0;width:5px;height:4px;margin-left:-2.5px;position:absolute;top:-4px;left:50%}.master-chip.is-starred{font-weight:600}.master-chip-star{opacity:.95;margin:0 auto 1px;font-size:.7em;line-height:1;display:block}.tray-chip.is-starred{box-shadow:inset 0 0 0 1px #b4781473}.master-tray{border:1px solid var(--line);background:#fffdf8d9;border-radius:8px;flex-direction:row;flex-shrink:0;align-items:center;gap:.45rem;min-height:2rem;padding:.3rem .55rem;display:flex;overflow:hidden}.master-tray-items{flex-wrap:nowrap;flex:1;align-items:center;gap:.55rem;min-width:0;display:flex;overflow:auto hidden}.master-tray-items .muted{white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.master-tray-clear,.master-tray-pair{flex-shrink:0;padding:.15rem .4rem;font-size:.72rem}.master-tray-pair.is-fill-day-on{color:var(--accent-deep);background:#c45c262e;border:1px solid #c45c2673;font-weight:650}.tray-class-group{border-right:1px solid #102a281f;flex-shrink:0;align-items:center;gap:.28rem;padding-right:.45rem;display:inline-flex}.tray-class-group:last-child{border-right:0;padding-right:0}.tray-class-name{color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;margin-right:.1rem;padding:0;font-family:inherit;font-size:.72rem;font-weight:700}.tray-class-name.is-active-class{color:var(--accent-deep,#8a3d16)}.pair-mode-fieldset{border:1px solid #2f6b4f40;border-radius:6px;margin:0 0 .75rem;padding:.55rem .7rem}.pair-mode-fieldset legend{color:var(--muted);padding:0 .35rem;font-size:.8rem}.pair-mode-option{cursor:pointer;align-items:flex-start;gap:.45rem;margin:.25rem 0;font-size:.85rem;display:flex}.pair-mode-option strong{font-weight:600}.tray-chip{color:var(--ink);cursor:grab;white-space:nowrap;background:#eef6f0;border:1px solid #2f6b4f59;border-radius:4px;flex-shrink:0;align-items:center;gap:.28rem;margin:0;padding:.12rem .35rem .12rem .4rem;font-size:.72rem;display:inline-flex}.tray-chip-text{line-height:1.1}.tray-chip-bars{align-items:stretch;gap:1.5px;height:.85rem;display:inline-flex}.tray-chip-bar{background:#2f6b4f;border-radius:1px;width:3px}.tray-chip.is-split{color:#1a5fb4;background:#eef3fb;border-color:#1a5fb466}.tray-chip.is-split .tray-chip-bar{background:#1a5fb4}.tray-chip.is-selected{outline:2px solid var(--accent);outline-offset:1px}.tray-chip:active{cursor:grabbing}.master-minis{flex-shrink:0;grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.master-mini{background:#fff;border:1px solid #4a4a4a;border-radius:0;max-height:min(28vh,220px);overflow:auto}.master-mini-grid{table-layout:fixed;border-collapse:collapse;width:100%;font-size:11px}.master-mini-grid td{cursor:pointer}.master-mini-grid th,.master-mini-grid td{text-align:center;text-overflow:ellipsis;white-space:nowrap;border:1px solid #333;height:1.35rem;padding:.15rem .2rem;overflow:hidden}.master-mini-grid thead th{width:calc((100% - 28px) / var(--mini-day-cols,5));background:#f0f0f0;font-size:11px;font-weight:600}.master-mini-grid thead th .mini-day-name{margin-right:.25rem}.master-mini-grid thead th .mini-day-count{color:#1a5fb4;white-space:nowrap;letter-spacing:-.02em;font-weight:700}.master-mini-grid tbody th,.master-mini-grid thead th:first-child{background:#f7f7f7;width:28px;min-width:28px;max-width:28px;padding:.15rem 0;font-weight:600}.master-mini-grid td.has-lesson{background:#fff;font-size:11px}.master-mini-grid td.tone-class{color:#1a5fb4;font-weight:600}.master-mini-grid tr.is-selected-row th,.master-mini-grid th.is-selected-row{background:#d6e8f5!important}.master-mini-grid td.is-selected-row,.master-mini-grid td.is-selected-col,.master-mini-grid thead th.is-selected-col{background:#a0c8eb66}.master-mini-grid thead th.is-selected-col{background:#b8d4ef!important}.master-mini-grid td.is-selected-cell{outline-offset:-2px;outline:2px solid #1a5fb4;background:#7eb6e8!important}.master-mini-grid .is-sat{background:#f8d7da}.master-mini-grid thead th.is-sat{background:#f5c2c7}.master-mini-grid thead th.is-sat.is-selected-col{background:#b8d4ef!important}.master-mini-grid td.is-sat.is-selected-col,.master-mini-grid td.is-sat.is-selected-row{background:#a0c8eb73}@media (width<=900px){.master-minis{grid-template-columns:1fr}}.cell-stack{flex-direction:column;gap:.28rem;min-height:48px;display:flex}.lesson-chip{background:linear-gradient(160deg,#fff8ef,#f3e6d4);border:1px solid #c45c262e;border-radius:8px;flex-direction:column;gap:.05rem;padding:.35rem .4rem;animation:.28s both chip-in;display:flex}.lesson-chip.profile{background:linear-gradient(160deg,#eef4ff,#dde8f8);border-color:#1a5fb438}@keyframes chip-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.lesson-chip strong{flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.8rem;display:flex}.lesson-chip span,.lesson-chip em{color:var(--muted);font-size:.68rem;font-style:normal}.lesson-chip.split{background:linear-gradient(160deg,#fff4e8,#edd9c4);border-color:#c45c2659}.split-badge{font-family:var(--font-body);background:#c45c261f;border-radius:999px;padding:.08rem .35rem;font-weight:700;color:var(--accent-deep)!important;font-size:.62rem!important}.subgroup-line{line-height:1.3;display:block}.import-bar{background:#ffffff59;border:1px dashed #c45c264d;border-radius:10px;flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.65rem;padding:.55rem .7rem;display:flex}.import-bar code{background:#102a2812;border-radius:5px;padding:.08rem .3rem;font-size:.82em}.filter-bar{border:1px solid var(--line);background:#ffffff47;border-radius:10px;flex-wrap:wrap;align-items:end;gap:.55rem;margin-bottom:.75rem;padding:.55rem .7rem;display:flex}.filter-meta{flex-direction:row;align-items:center;gap:.65rem;min-width:0;margin-left:auto;padding-bottom:.1rem;font-size:.8rem;display:flex}.status-chip{cursor:pointer;border:1px solid #0000;border-radius:999px;padding:.32rem .65rem;font-size:.76rem;font-weight:700}.status-chip.warn{color:var(--warn);background:#c45c2624;border-color:#c45c2647}.status-chip.warn:hover{background:#c45c2638}.info-toast-stack{z-index:80;pointer-events:none;flex-direction:column;gap:.5rem;width:min(340px,100vw - 1.5rem);display:flex;position:fixed;bottom:1rem;right:1rem}.info-toast{pointer-events:auto;box-shadow:var(--shadow);border:1px solid var(--line);background:#fffdf8;border-radius:11px;align-items:flex-start;gap:.55rem;padding:.7rem .75rem;animation:.2s rise-in;display:flex}.info-toast.ok{color:var(--ok);background:#eef7f1;border-color:#2f6b4f40}.info-toast.warn{color:var(--warn);background:#fff4e8;border-color:#c45c264d}.info-toast.info{color:var(--text)}.info-toast-body{flex:1;min-width:0}.info-toast-body strong{margin-bottom:.15rem;font-size:.86rem;display:block}.info-toast-text{opacity:.92;color:inherit;font-size:.78rem}.info-toast-list{margin:.2rem 0 0;padding-left:.95rem}.info-toast-close{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;padding:0;font-size:1.1rem;line-height:1}.info-toast-close:hover{opacity:1}.info-dialog-body{flex-direction:column;gap:.5rem;font-size:.92rem;display:flex}.info-dialog.warn h2{color:var(--warn)}.empty-filter{margin:.4rem 0 0}.workload-list{border:1px solid var(--line);background:#ffffff6b;border-radius:10px;overflow:hidden}.workload-sections{flex-direction:column;gap:.85rem;display:flex}.workload-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:.9rem;display:grid}.workload-column{flex-direction:column;gap:.45rem;min-width:0;display:flex}.workload-column-title{color:var(--ink);margin:0;font-size:.95rem;font-weight:700}.workload-column-stack{flex-direction:column;gap:.65rem;display:flex}.workload-column-empty{background:#ffffff47;border:1px dashed #102a282e;border-radius:10px;margin:0;padding:.7rem .8rem}@media (width<=1100px){.workload-columns{grid-template-columns:1fr}}.workload-table-wrap{border:1px solid var(--line);background:#ffffff6b;border-radius:10px;overflow:hidden}.workload-table{border-collapse:collapse;table-layout:fixed;width:100%}.workload-table th,.workload-table td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);padding:.45rem .7rem}.workload-table th{color:var(--muted);letter-spacing:.02em;background:#fffdf8b8;font-size:.72rem;font-weight:700}.workload-table tbody tr:last-child td{border-bottom:0}.workload-table tbody tr.needs-teacher{background:#fff4e8b8}.workload-table-subject{width:28%;font-size:.95rem;font-weight:700}.workload-table-hours{text-align:center;white-space:nowrap;width:3.4rem;padding-left:.35rem;padding-right:.35rem}.workload-table-teacher{width:auto;min-width:0;color:var(--text);font-size:.88rem;font-weight:500}.workload-table-teacher.is-missing{color:var(--accent-deep);font-weight:600}.workload-column:first-child .workload-table col.col-subject,.workload-column:first-child .workload-table .workload-table-subject{width:34%}.workload-column:first-child .workload-table col.col-hours,.workload-column:first-child .workload-table th:nth-child(2),.workload-column:first-child .workload-table .workload-table-hours{width:3.2rem;max-width:3.2rem}.workload-column:first-child .workload-table col.col-teacher,.workload-column:first-child .workload-table th:nth-child(3),.workload-column:first-child .workload-table .workload-table-teacher{width:auto}.workload-column:first-child .workload-table col.col-actions,.workload-column:first-child .workload-table .workload-table-actions-col{width:4.8rem}.workload-table-subgroup-cell{vertical-align:middle;width:auto}.workload-table-subgroup-cell.is-empty{color:var(--muted)}.workload-table-subgroup-cell .hours-pill{margin-right:.45rem}.workload-profile-cell{flex-wrap:wrap;align-items:center;gap:.25rem .4rem;display:flex}.workload-subject-with-mode{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.workload-pair-toggle{background:#fff;border:1px solid #3c302438;border-radius:6px;display:inline-flex;overflow:hidden}.workload-pair-toggle button{color:#3c3024a6;cursor:pointer;background:0 0;border:none;padding:.15rem .45rem;font-size:.68rem;font-weight:600;line-height:1.3}.workload-pair-toggle button+button{border-left:1px solid #3c30242e}.workload-pair-toggle button.is-active{color:var(--accent-deep,#8a3d16);background:#c45c2624}.workload-pair-toggle button:hover:not(.is-active){background:#3c30240d}.workload-profile-cell .workload-row-actions{margin-left:auto}.workload-profile-badge{color:var(--accent-deep);vertical-align:middle;background:#c45c261f;border-radius:999px;margin-left:.45rem;padding:.08rem .4rem;font-size:.68rem;font-weight:700;display:inline-block}.workload-table-profile .workload-table-subject,.workload-table-profile .workload-table-actions-col{vertical-align:middle}.workload-table-actions-col{text-align:right;white-space:nowrap;width:10.5rem}.workload-table-actions-col .workload-row-actions{justify-content:flex-end}.workload-list li{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;align-items:center;gap:.65rem;padding:.45rem .7rem}.workload-list li.workload-row-compact{align-items:center}.workload-list li:last-child{border-bottom:0}.workload-list li.needs-teacher{background:#fff4e8b8}.workload-item{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.workload-item-head{align-items:center;min-width:0;display:flex}.workload-view-summary{flex-wrap:wrap;align-items:baseline;gap:.25rem .45rem;width:100%;min-width:0;margin:0;line-height:1.35;display:flex}.workload-subject{white-space:nowrap;flex:0 auto;font-size:.95rem;font-weight:700}.workload-view-parts{min-width:0;display:inline}.workload-part{white-space:nowrap}.workload-part-name{color:var(--text);font-weight:700}.workload-part-sep{color:var(--muted);font-weight:500}.workload-view-teacher{color:var(--text);font-size:.88rem;font-weight:500}.workload-view-teacher.is-missing{color:var(--accent-deep);font-weight:600}.workload-row-actions{flex-shrink:0;align-items:center;gap:.15rem;display:flex}.workload-form-tools{margin:-.15rem 0 .35rem}.hours-pill{font-family:var(--font-body);color:var(--accent-deep);white-space:nowrap;background:#c45c261f;border-radius:999px;margin-left:0;padding:.08rem .4rem;font-size:.68rem;font-weight:700}.assign-grid{flex-direction:column;gap:.3rem;display:flex}.assign-row{grid-template-columns:56px minmax(160px,1fr);align-items:center;gap:.35rem;display:grid}.assign-row-named{grid-template-columns:minmax(88px,.7fr) minmax(160px,1fr)}.group-name-input{border:1px solid var(--line);color:var(--text);background:#fffdf8;border-radius:7px;padding:.3rem .45rem;font-size:.82rem;font-weight:600}.assign-label{color:var(--muted);font-size:.72rem;font-weight:600}.assign-row select{border:1px solid var(--line);color:var(--text);background:#fffdf8;border-radius:7px;padding:.3rem .45rem;font-size:.84rem}.report-scroll{border:1px solid var(--line);background:#fffdf8bf;border-radius:10px;max-height:calc(100vh - 9rem);overflow:auto}.class-day-load-wrap{flex-direction:column;flex:auto;gap:.55rem;min-height:0;display:flex}.sanpin-schedule-wrap{flex-direction:column;flex:auto;gap:.75rem;min-height:0;padding-bottom:1rem;display:flex;overflow:auto}.sanpin-schedule-toolbar{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.sanpin-schedule-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.sanpin-schedule-hint{max-width:48rem;margin:0;font-size:.84rem}.sanpin-schedule-list{flex-direction:column;gap:1rem;display:flex}.sanpin-print-sheet{background:#fffdf8;border:1px solid #102a281f;border-radius:12px;padding:.65rem .75rem .85rem}.sanpin-print-sheet-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.55rem;display:flex}.sanpin-print-sheet-head h2{margin:0;font-size:1.05rem;font-weight:750}.sanpin-print-legend{align-items:center;gap:.55rem;margin:0;font-size:.78rem;display:flex}.sanpin-edge-swatch{vertical-align:-.1rem;border-radius:3px;width:.85rem;height:.85rem;margin-right:.15rem;display:inline-block}.sanpin-edge-swatch.is-first{background:#c45c2659;box-shadow:inset 0 3px #c45c26}.sanpin-edge-swatch.is-last{background:#1a5fb447;box-shadow:inset 0 -3px #1a5fb4}.sanpin-print-scroll{overflow-x:auto}.sanpin-print-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.78rem}.sanpin-print-grid th,.sanpin-print-grid td{vertical-align:middle;text-align:center;border:1px solid #102a2824;padding:.32rem .4rem;position:relative}.sanpin-print-grid thead th{z-index:2;background:#102a2812;border-bottom:2px solid #102a2847;font-weight:750;position:sticky;top:0}.sanpin-print-day-col{width:2.8rem;min-width:2.8rem}.sanpin-print-num-col,.sanpin-print-num-cell{width:2rem;min-width:2rem;color:var(--muted);background:#102a280a;font-weight:700}.sanpin-print-num-cell.is-num-first{color:#c45c26;font-weight:800}.sanpin-print-num-cell.is-num-last{color:#1a5fb4;font-weight:800}.sanpin-print-day-cell{writing-mode:vertical-rl;letter-spacing:.04em;background:#e8f2ec;width:2.8rem;min-width:2.8rem;font-weight:800;transform:rotate(180deg);border-left:3px solid #102a2838!important;border-right:3px solid #102a2859!important}.sanpin-print-row.is-day-odd .sanpin-print-day-cell{background:#e8f2ec}.sanpin-print-row.is-day-even .sanpin-print-day-cell{background:#e8f0fa}.sanpin-print-row.is-day-start td,.sanpin-print-row.is-day-start .sanpin-print-num-cell{border-top:3px solid #102a2861!important}.sanpin-print-row.is-day-end td,.sanpin-print-row.is-day-end .sanpin-print-num-cell,.sanpin-print-row.is-day-end .sanpin-print-day-cell{border-bottom:3px solid #102a2861!important}.sanpin-print-row.is-day-odd td.is-empty{background:#e8f2ec59}.sanpin-print-row.is-day-even td.is-empty{background:#e8f0fa66}.sanpin-print-grid td{min-width:5.5rem;max-width:8.5rem}.sanpin-print-grid td.is-empty{background:#102a2805}.sanpin-print-grid td.is-hard{background:#c45c261a}.sanpin-print-grid td.is-easy{background:#2f6b4f14}.sanpin-print-grid td.is-pe{background:#1a5fb41a}.sanpin-print-grid td.is-edge-first{font-weight:700;box-shadow:inset 0 4px #c45c26}.sanpin-print-grid td.is-edge-last{font-weight:700;box-shadow:inset 0 -4px #1a5fb4}.sanpin-print-grid td.is-edge-first.is-edge-last{box-shadow:inset 0 4px #c45c26,inset 0 -4px #1a5fb4}.sanpin-print-grid td.is-pinned{outline-offset:-2px;outline:1px dashed #102a2847}.sanpin-print-grid td.is-profile .sanpin-cell-name{font-weight:700}.sanpin-edge-mark{letter-spacing:.02em;margin-bottom:.1rem;font-size:.62rem;font-weight:800;line-height:1;display:block}.sanpin-edge-mark.is-first{color:#c45c26}.sanpin-edge-mark.is-last{color:#1a5fb4}.sanpin-print-grid td.is-editable{cursor:pointer}.sanpin-print-grid td.is-editable:hover{filter:brightness(.97)}.sanpin-print-grid td.is-selected{outline-offset:-2px;z-index:1;outline:2px solid #c45c26}.sanpin-print-grid td.is-swap-target{outline-offset:-2px;outline:2px dashed #1a5fb4}.sanpin-select-hint{color:#8a3d12;background:#c45c261a;border-radius:8px;margin:0 0 .35rem;padding:.45rem .65rem;font-size:.86rem;font-weight:600}.sanpin-class-card{background:#fffdf8;border:1px solid #102a281f;border-radius:12px;padding:.65rem .75rem .8rem}.sanpin-class-card-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.45rem;display:flex}.sanpin-class-badges{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.sanpin-class-card-head h2{margin:0;font-size:1.05rem;font-weight:750}.sanpin-edge-badge{letter-spacing:.02em;text-transform:uppercase;border-radius:6px;padding:.15rem .45rem;font-size:.72rem;font-weight:700}.sanpin-edge-badge.is-ok{color:#2f6b4f;background:#2f6b4f1a}.sanpin-edge-badge.is-warn{color:#a84818;background:#c45c261f}.sanpin-class-scroll{overflow-x:auto}.sanpin-class-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.82rem}.sanpin-class-grid th,.sanpin-class-grid td{vertical-align:top;border:1px solid #102a281f;padding:.35rem .4rem}.sanpin-class-grid thead th{text-align:center;background:#102a280d;font-weight:700}.sanpin-class-grid .sanpin-col-num{text-align:center;width:2.2rem;color:var(--muted);background:#102a280a;font-weight:700}.sanpin-class-grid td.is-empty{background:#102a2805}.sanpin-class-grid td.is-hard{background:#c45c261a}.sanpin-class-grid td.is-easy{background:#2f6b4f14}.sanpin-class-grid td.is-pe{background:#1a5fb41a}.sanpin-class-grid td.is-pinned{outline-offset:-2px;outline:1px dashed #102a2847}.sanpin-class-grid td.is-profile .sanpin-cell-name{font-weight:700}.sanpin-cell-name{font-weight:650;line-height:1.25;display:block}.sanpin-cell-score{color:var(--muted);margin-top:.15rem;font-size:.72rem;font-weight:600;display:block}.class-day-load-toolbar{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.class-day-load-hint{max-width:42rem;margin:0;font-size:.84rem}.class-day-load-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.class-day-load-scroll{flex:auto;min-height:0;max-height:none}.class-day-load-grid .col-class-name{text-align:left;min-width:7rem;font-weight:650}.class-day-load-grid .col-day{min-width:2.6rem}.class-day-load-grid .col-day.has-val{font-weight:700}.class-day-load-grid .col-total,.class-day-load-grid .col-lessons,.class-day-load-grid .col-avg{background:#2f6b4f0f;font-weight:650}.class-day-load-grid thead .col-total,.class-day-load-grid thead .col-lessons,.class-day-load-grid thead .col-avg{background:#d7e6dc}.class-day-load-legend{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.55rem;margin:0;font-size:.8rem;display:flex}.class-day-load-swatch{vertical-align:-.1rem;border:1px solid #102a2826;border-radius:3px;width:.9rem;height:.9rem;margin-right:.2rem;display:inline-block}.class-day-load-swatch.is-low{background:#2f6b4f38}.class-day-load-swatch.is-mid{background:#c48c2659}.class-day-load-swatch.is-high{background:#c45c2673}.report-grid{border-collapse:collapse;min-width:100%;font-size:.78rem}.report-grid th,.report-grid td{border:1px solid var(--line);white-space:nowrap;text-align:center;vertical-align:middle;padding:.28rem .35rem}.report-grid thead th{z-index:3;font-family:var(--font-display);background:#ebe4d8;font-size:.74rem;font-weight:700;position:sticky;top:0}.report-grid .sticky-col{z-index:2;background:#f7f1e6;position:sticky}.report-grid thead .sticky-col{z-index:4;background:#ebe4d8}.report-grid .col-num{min-width:2rem;left:0}.report-grid .col-teacher{text-align:left;min-width:9.5rem;font-weight:600;left:2rem}.report-grid .col-subj{text-align:left;min-width:4.5rem;font-weight:600}.report-grid .col-hrs{font-variant-numeric:tabular-nums;min-width:2.4rem}.report-grid .col-hrs.total{color:var(--accent-deep);font-weight:700}.report-grid .col-class{font-variant-numeric:tabular-nums;min-width:2.2rem}.report-grid .col-class.has-val{background:#c45c2614}.report-grid tr.teacher-start td{border-top:1.5px solid #102a2847}.report-grid .col-subject-name{text-align:left;white-space:normal;min-width:12rem;max-width:18rem;left:2rem}.class-hours-grid .col-class.is-split{color:#1a5fb4;background:#1a5fb414;font-weight:700}.class-hours-grid .col-class.is-merged,.teacher-load-grid .col-class.is-merged{text-align:center}.class-hours-grid tr.class-hours-total td{background:#ebe4d8;border-top:2px solid #102a2859;font-weight:700}.class-hours-grid tr.class-hours-total .col-subject-name{text-align:left}.settings-sections{flex-direction:column;gap:.85rem;max-width:720px;display:flex}.settings-sections.is-wide{max-width:none}.settings-tabs{flex-wrap:wrap;gap:.45rem;margin-bottom:.9rem;display:flex}.schedule-title-row .settings-tabs{margin-bottom:0;margin-left:.35rem}.settings-tab{color:var(--ink);cursor:pointer;font:inherit;background:#ffffffb8;border:1px solid #102a2824;border-radius:999px;padding:.45rem .8rem}.settings-tab.is-active{color:#fff;background:#246e62;border-color:#246e62}.settings-card{border:1px solid var(--line);background:#ffffff73;border-radius:12px;padding:.9rem 1rem}.settings-card h2{margin-bottom:.25rem;font-size:1.05rem}.settings-card>.muted{margin-bottom:.75rem;font-size:.86rem}.settings-form{margin-bottom:0}.settings-subheading{color:var(--ink);margin:1.1rem 0 .35rem;font-size:.95rem;font-weight:650}.settings-form input[type=range]{width:100%;accent-color:var(--accent)}.settings-actions{flex-wrap:wrap;gap:.5rem;display:flex}.settings-divider{background:#102a281f;height:1px;margin:1rem 0 1.1rem}.settings-hint{margin-top:.55rem!important;margin-bottom:0!important}.difficulty-scale-scroll{margin-top:.65rem;overflow:auto}.difficulty-scale-table{border-collapse:collapse;width:100%;min-width:58rem;font-size:.9rem}.difficulty-scale-table th,.difficulty-scale-table td{text-align:center;background:#ffffffb3;border:1px solid #102a281f;padding:.35rem .45rem}.difficulty-scale-table th:first-child,.difficulty-scale-table td:first-child{text-align:left;min-width:18rem}.difficulty-scale-input{text-align:center;background:#fff;border:1px solid #102a2829;border-radius:6px;width:100%;min-width:3.2rem;padding:.25rem}.difficulty-scale-value-btn{min-width:2.2rem;font:inherit;font-variant-numeric:tabular-nums;cursor:default;background:#ffffffe0;border:1px solid #102a2814;border-radius:8px;padding:.25rem .45rem}.order-index{font-variant-numeric:tabular-nums;min-width:1.5rem}@media (width<=960px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #ffffff14;border-right:0}.nav{flex-flow:wrap}.sidebar-stats{margin-top:0}.form-grid,.workload-top,.group-editor.count-2,.group-editor.count-3,.assign-row,.filter-bar{grid-template-columns:1fr}}.avail-panel{flex-direction:column;flex:auto;gap:.35rem;height:auto;min-height:0;padding-top:.55rem;padding-bottom:.55rem;display:flex}.avail-panel.panel{min-height:0}.schedule-mode .avail-panel>.panel-header{gap:.5rem;margin-bottom:.25rem}.workload-panel{overflow:auto}.workload-panel .report-scroll{flex:auto;min-height:0}.settings-panel{overflow:auto}.settings-panel .settings-sections{flex:auto;max-width:none;min-height:0}.settings-panel .settings-sections:not(.is-wide){max-width:720px}.avail-scroll{border:1px solid var(--line);-webkit-user-select:none;user-select:none;background:#f7f4ee;border-radius:8px;flex:auto;min-height:0;overflow:auto}.avail-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:10px;line-height:1.1}.avail-grid th,.avail-grid td{white-space:nowrap;border:1px solid #102a2824;padding:0}.avail-grid thead th{z-index:3;text-align:center;background:#e8e2d6;font-weight:600;position:sticky;top:0}.avail-grid thead tr:nth-child(2) th{z-index:3;color:var(--muted);min-width:0;height:16px;font-size:9px;top:20px}.avail-grid .sticky-meta{z-index:2;background:#efe9dd;padding:.1rem .25rem;font-weight:500;position:sticky;left:0}.avail-grid thead .sticky-meta{z-index:5;background:#ddd5c6}.avail-grid .col-num{text-align:center;width:22px;min-width:22px;max-width:22px;left:0}.avail-grid .col-teacher{text-overflow:ellipsis;text-align:left;border-right:2px solid #102a2847;width:96px;min-width:96px;max-width:96px;left:22px;overflow:hidden}.avail-grid .day-group{font-family:var(--font-display);border-left:2px solid #102a2847;padding:.12rem .05rem;font-size:.7rem}.avail-grid .day-start{border-left:2px solid #102a2847}.avail-grid .is-sat{background:#c45c2614}.avail-grid tbody tr.is-selected-row .sticky-meta{background:#d6e8f5}.avail-grid thead th.is-selected-col,.avail-grid .period-head.is-selected-col,.avail-grid .day-group.is-selected-col{background:#b8d4ef!important}.avail-cell{cursor:cell;background:#fffdf8;width:auto;min-width:0;height:18px}.avail-cell.is-off{background:#c45c26;box-shadow:inset 0 0 0 1px #0000001f}.avail-cell.is-out-of-shift{cursor:default;background:#e4e0d8;box-shadow:inset 0 0 0 1px #102a280f}.avail-cell.is-out-of-shift.is-selected-row,.avail-cell.is-out-of-shift.is-selected-col{background:#d5d1c8}.avail-shift-tag{color:var(--muted);white-space:nowrap;margin-left:.35rem;font-size:.65rem;font-weight:650;display:inline-block}.avail-cell.is-selected-row,.avail-cell.is-selected-col{background:#a0c8eb59}.avail-cell.is-off.is-selected-row,.avail-cell.is-off.is-selected-col{background:#a84a1c}.avail-cell.is-selected-cell{outline-offset:-2px;outline:2px solid #1a5fb4}.avail-cell.is-sat:not(.is-off){background:#c45c260f}.avail-legend{align-items:center;gap:.45rem;margin:0;font-size:.8rem;display:flex}.avail-empty-filter{padding:1.25rem .5rem}.avail-swatch{border:1px solid #102a2833;border-radius:3px;width:.9rem;height:.9rem;display:inline-block}.avail-swatch.is-off{background:#c45c26}.avail-swatch.is-out-of-shift{background:#e4e0d8;box-shadow:inset 0 0 0 1px #102a281f}.dayplan-hint{max-width:42rem;margin:.15rem 0 0;font-size:.82rem}.dayplan-actions{flex-wrap:wrap;align-items:flex-end;gap:.5rem}.dayplan-grid{table-layout:fixed;width:max-content;min-width:100%}.dayplan-grid .col-teacher{width:11rem;min-width:11rem}.dayplan-day-head{width:9.5rem;min-width:9.5rem}.dayplan-cell{vertical-align:top;cursor:pointer;background:#ffffff59;border:1px solid #102a2814;min-width:9.5rem;height:4.5rem;padding:.35rem}.dayplan-cell.is-sat{background:#c45c260d}.dayplan-cell.has-items{background:#246e6214}.dayplan-cell.is-selected-cell{outline-offset:-2px;background:#246e6224;outline:2px solid #246e62}.dayplan-cell.is-selected-row,.dayplan-cell.is-selected-col{background:#246e620f}.dayplan-chips{flex-wrap:wrap;align-content:flex-start;gap:.25rem;display:flex}.dayplan-chip{background:#fff;border:1px solid #102a282e;border-radius:4px;align-items:center;gap:.15rem;max-width:100%;padding:.1rem .15rem .1rem .35rem;font-size:.72rem;line-height:1.2;display:inline-flex}.dayplan-chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dayplan-chip-x{color:#102a288c;cursor:pointer;background:0 0;border:none;flex:none;padding:0 .2rem;font-size:.95rem;line-height:1}.dayplan-chip-x:hover{color:#a33}.cloud-gate{background:radial-gradient(at 20% 10%,#246e6224,#0000 50%),radial-gradient(at 80% 90%,#c45c261a,#0000 45%),#f3f1ea;place-items:center;min-height:100vh;padding:1.5rem;display:grid}.cloud-gate-card{background:#ffffffeb;border:1px solid #102a281a;border-radius:12px;width:min(100%,22rem);padding:1.5rem 1.4rem;box-shadow:0 12px 40px #102a2814}.cloud-gate-card h1{margin:0 0 .35rem;font-size:1.55rem}.cloud-gate-form{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.cloud-gate-error{color:#a33;margin:0;font-size:.9rem}
