.trigger[data-v-086d9ddb]{color:var(--color-text-muted)}.trigger[data-v-086d9ddb]:hover{background:var(--color-surface-alt);color:var(--color-text)}h2[data-v-086d9ddb]{margin:0;font-size:1rem;font-weight:600}.hint[data-v-086d9ddb]{color:var(--color-text-muted);margin:0;font-size:.85rem}input[readonly][data-v-086d9ddb]{background:var(--color-surface-alt);color:var(--color-text-muted)}.prose[data-v-086d9ddb]{font-family:inherit}.language-selector[data-v-a7e13043]{position:relative}.flag[data-v-a7e13043]{font-size:1.1rem;line-height:1}.menu[data-v-a7e13043]{padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xs);box-shadow:var(--shadow-md);z-index:20;min-width:9rem;margin:0;list-style:none;position:absolute;top:calc(100% + 4px);right:0}.option[data-v-a7e13043]{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);cursor:pointer;text-align:left;color:var(--color-text);background:0 0;border:none;display:flex}.option[data-v-a7e13043]:hover{background:var(--color-surface-alt)}.role-selector[data-v-5e8853b9]{position:relative}.trigger[data-v-5e8853b9]{align-items:center;gap:var(--space-2);height:2.25rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:.8rem;display:flex}.menu[data-v-5e8853b9]{padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xs);box-shadow:var(--shadow-md);z-index:20;min-width:12rem;margin:0;list-style:none;position:absolute;top:calc(100% + 4px);right:0}.menu-label[data-v-5e8853b9]{padding:var(--space-2) var(--space-3);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:.72rem}.option[data-v-5e8853b9]{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);cursor:pointer;text-align:left;color:var(--color-text);background:0 0;border:none;align-items:center;font-size:.85rem;display:flex}.option[data-v-5e8853b9]:hover{background:var(--color-surface-alt)}.option-on[data-v-5e8853b9]{color:var(--color-primary);font-weight:600}.theme-toggle[data-v-b8de0cb9]{font-size:1.1rem;line-height:1}.theme-toggle[data-v-b8de0cb9]:hover{background:var(--color-surface-alt)}.unknown[data-v-68638085]{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);text-align:center;flex-direction:column;display:flex}.mark[data-v-68638085]{color:var(--color-text-muted)}h1[data-v-68638085]{margin:0;font-size:1.3rem}p[data-v-68638085]{margin:0}.pick[data-v-68638085]{margin-top:var(--space-3);color:var(--color-text-muted);font-size:.85rem}.choices[data-v-68638085]{justify-content:center;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.choice[data-v-68638085]{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);text-decoration:none;display:flex}.choice[data-v-68638085]:hover{background:var(--color-surface-alt)}.choice code[data-v-68638085]{color:var(--color-text-muted);font-size:.8rem}.shell[data-v-f4fd51b4]{height:100vh;display:flex;overflow:hidden}.sidebar[data-v-f4fd51b4]{background:var(--color-surface);border-right:1px solid var(--color-border);width:240px;padding:var(--space-4) var(--space-3);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.brand[data-v-f4fd51b4]{letter-spacing:-.01em;padding:0 var(--space-2);margin-bottom:var(--space-5);font-size:1.05rem;font-weight:700}nav[data-v-f4fd51b4]{gap:var(--space-4);flex-direction:column;display:flex}.nav-group[data-v-f4fd51b4]{flex-direction:column;display:flex}.nav-group-links[data-v-f4fd51b4]{grid-template-rows:0fr;transition:grid-template-rows .18s;display:grid;overflow:hidden}.nav-group-inner[data-v-f4fd51b4]{visibility:hidden;flex-direction:column;min-height:0;transition:visibility 0s linear .18s;display:flex;overflow:hidden}.nav-group-open .nav-group-inner[data-v-f4fd51b4]{visibility:visible;transition-delay:0s}.nav-group-open .nav-group-links[data-v-f4fd51b4]{grid-template-rows:1fr}.nav-group-label[data-v-f4fd51b4]{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-1) var(--space-1);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);opacity:.75;text-align:left;cursor:pointer;background:0 0;border:0;font-family:inherit;font-size:.68rem;font-weight:700;display:flex}.nav-group-here[data-v-f4fd51b4]{cursor:default}.nav-group-label[data-v-f4fd51b4]:hover{opacity:1}.nav-chevron[data-v-f4fd51b4]{flex-shrink:0;transition:transform .18s}.nav-group-open .nav-chevron[data-v-f4fd51b4]{transform:rotate(180deg)}.nav-link[data-v-f4fd51b4]{align-items:center;gap:var(--space-2);padding:9px var(--space-3);margin:0 calc(var(--space-3) * -1);color:var(--color-text-muted);border-bottom:1px solid var(--color-border);border-left:3px solid #0000;border-radius:0;font-size:.87rem;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.nav-group:last-child .nav-group-inner>.nav-link[data-v-f4fd51b4]:last-child{border-bottom:none}.nav-icon[data-v-f4fd51b4]{opacity:.75;flex-shrink:0}.nav-link[data-v-f4fd51b4]:hover{background:var(--color-surface-alt);color:var(--color-text)}.nav-link-active[data-v-f4fd51b4]{background:var(--color-surface-alt);color:var(--color-primary);border-left-color:var(--color-primary);font-weight:600}.nav-link-active .nav-icon[data-v-f4fd51b4]{opacity:1}.content-column[data-v-f4fd51b4]{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.topbar[data-v-f4fd51b4]{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface);display:flex}.spacer[data-v-f4fd51b4]{flex:1}.logout[data-v-f4fd51b4]{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;font-size:.85rem;display:flex}.logout[data-v-f4fd51b4]:hover{background:var(--color-surface-alt);color:var(--color-text)}a.logout[data-v-f4fd51b4]{text-decoration:none}a.logout.router-link-active[data-v-f4fd51b4]{color:var(--color-text);border-color:var(--color-primary)}.suspended-banner[data-v-f4fd51b4]{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:var(--color-surface-alt);color:var(--color-danger);border-bottom:1px solid var(--color-border);flex-shrink:0;font-size:.87rem;display:flex}.content[data-v-f4fd51b4]{padding:var(--space-5);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.question[data-v-c00c8f8c]{max-width:48ch}:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-alt:#eef0f4;--color-border:#dde1e7;--color-text:#1f2430;--color-text-muted:#5b6472;--color-primary:#2f6690;--color-primary-hover:#24506f;--color-primary-contrast:#fff;--color-danger:#b3403a;--color-danger-hover:#922f2a;--color-success:#2f7a4d;--color-accent:#7a4f9c;--color-secondary:color-mix(in srgb, var(--color-primary) 16%, var(--color-surface));--color-secondary-hover:color-mix(in srgb, var(--color-primary) 28%, var(--color-surface));--color-secondary-contrast:var(--color-primary-hover);--select-chevron:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237d8695' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:28px;--radius-full:999px;--shadow-sm:0 1px 2px #10182824, 0 1px 3px 1px #1018281a;--shadow-md:0 1px 2px #10182824, 0 2px 6px 2px #1018281a;--shadow-lg:0 1px 3px #10182829, 0 4px 8px 3px #1018281f;--state-hover:color-mix(in srgb, var(--color-text) 8%, transparent);--state-focus:color-mix(in srgb, var(--color-text) 12%, transparent);--state-pressed:color-mix(in srgb, var(--color-text) 12%, transparent);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--lesson-saturation:62%;--lesson-lightness:88%;--lesson-edge:68%;--lesson-text:#1b2027}:root[data-theme=dark]{--color-bg:#10131a;--color-surface:#171b24;--color-surface-alt:#1e2330;--color-border:#2b3140;--color-text:#e7e9ee;--color-text-muted:#9aa3b2;--color-primary:#6ba3d6;--color-primary-hover:#8bb8e0;--color-primary-contrast:#0b1220;--color-danger:#e0685f;--color-danger-hover:#e88980;--color-success:#5cb583;--color-accent:#b48fd6;--lesson-saturation:42%;--lesson-lightness:26%;--lesson-edge:38%;--lesson-text:#e7e9ee;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px 1px #0000003d;--shadow-md:0 1px 2px #0000004d, 0 2px 6px 2px #0000003d;--shadow-lg:0 1px 3px #00000059, 0 4px 8px 3px #00000047}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--color-bg:#10131a;--color-surface:#171b24;--color-surface-alt:#1e2330;--color-border:#2b3140;--color-text:#e7e9ee;--color-text-muted:#9aa3b2;--color-primary:#6ba3d6;--color-primary-hover:#8bb8e0;--color-primary-contrast:#0b1220;--color-danger:#e0685f;--color-danger-hover:#e88980;--color-success:#5cb583;--color-accent:#b48fd6;--lesson-saturation:42%;--lesson-lightness:26%;--lesson-edge:38%;--lesson-text:#e7e9ee;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px 1px #0000003d;--shadow-md:0 1px 2px #0000004d, 0 2px 6px 2px #0000003d;--shadow-lg:0 1px 3px #00000059, 0 4px 8px 3px #00000047}}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;transition:background-color .15s,color .15s}h1,h2,h3{font-weight:600;line-height:1.25}button,input,select{font:inherit;color:inherit}a{color:var(--color-primary)}table{border-collapse:collapse;width:100%}.view{flex-direction:column;height:100%;min-height:0;display:flex}.page{gap:var(--space-2);flex-direction:column;height:100%;min-height:0;display:flex;overflow-y:auto}.page-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.page .table-scroll{flex:none}.header-row{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.header-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filter-select{padding:var(--space-2) var(--space-3);padding-right:calc(var(--space-3) * 2 + 12px);border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-surface) var(--select-chevron) no-repeat right var(--space-3) center;color:var(--color-text)}.scope-label{padding:var(--space-2) 0;color:var(--color-text);font-weight:600}.error{margin:0 0 var(--space-3);color:var(--color-danger);font-size:.85rem}.table-scroll{border:1px solid var(--color-border);border-radius:var(--radius-md);flex:auto;width:100%;min-height:0;overflow:auto}table{background:var(--color-surface);width:100%}th,td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--color-border)}th{cursor:pointer;background:var(--color-surface);color:var(--color-text-muted);-webkit-user-select:none;user-select:none;white-space:nowrap;font-size:.875rem;font-weight:500;position:sticky;top:0}tbody td{height:calc(2.125rem + 2 * var(--space-3))}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--state-hover)}.actions{white-space:nowrap}.actions>*+*{margin-left:var(--space-2)}button{padding:var(--space-2) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:.875rem;font-weight:500}button:hover:not(:disabled){background:var(--color-surface-alt)}.icon-button{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);cursor:pointer;flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;display:flex}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px;z-index:1;position:relative}button.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}button.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}button.secondary{background:var(--color-secondary);color:var(--color-secondary-contrast);border-color:#0000}button.secondary:hover:not(:disabled){background:var(--color-secondary-hover)}button.danger{color:var(--color-danger)}button:disabled{opacity:.6;cursor:not-allowed}.overlay{z-index:50;padding:var(--space-5);background:#00000052;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--color-surface);border-radius:var(--radius-xl);width:min(clamp(20rem,40vw,38rem),100%);min-height:0;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:relative}.dialog.wide{width:min(clamp(20rem,64vw,56rem),100%)}.dialog-close{top:calc(-1 * var(--space-3));right:calc(-1 * var(--space-3));border:2px solid var(--color-surface);border-radius:var(--radius-full);background:var(--color-danger);color:#fff;width:2.25rem;height:2.25rem;box-shadow:var(--shadow-md);justify-content:center;align-items:center;padding:0;transition:transform .12s ease-out,box-shadow .12s ease-out;display:flex;position:absolute}.dialog-close:hover:not(:disabled){background:var(--color-danger);box-shadow:var(--shadow-lg);transform:scale(1.12)}.dialog-close:active:not(:disabled){transform:scale(1.02)}@media (prefers-reduced-motion:reduce){.dialog-close{transition:none}.dialog-close:hover:not(:disabled),.dialog-close:active:not(:disabled){transform:none}}.dialog-head{padding:var(--space-5) var(--space-5) 0}.dialog-head h2{margin:0;font-size:1.1rem}.dialog-form{flex-direction:column;flex:auto;min-height:0;display:flex}.dialog-body{gap:var(--space-3);padding:var(--space-4) var(--space-5);flex-direction:column;display:flex;overflow-y:auto}.dialog-form>.dialog-body{flex:auto;min-height:0}.field{gap:var(--space-1);color:var(--color-text-muted);flex-direction:column;font-size:.85rem;display:flex}.field .hint{color:var(--color-text-muted);font-size:.75rem}.field-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.field-row .field{flex:12rem;min-width:0}.field-row>button{align-self:flex-end}.field-row>.form-actions{flex:1 0 100%}input,select,textarea{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-xs);background:var(--color-bg);color:var(--color-text);font-family:inherit}select{appearance:none;padding-right:calc(var(--space-3) * 2 + 12px);background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right var(--space-3) center}textarea{resize:vertical;font-family:monospace}.form-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.dialog-form>.form-actions,.dialog-form>.error{padding-inline:var(--space-5)}.dialog-form>.error{padding-top:var(--space-3);margin-bottom:0}.dialog-form>.form-actions{padding-block:var(--space-3) var(--space-5);margin-top:0}.output-actions{gap:var(--space-2);display:flex}.muted{color:var(--color-text-muted)}.section-title{margin:var(--space-4) 0 var(--space-2);font-size:.875rem;font-weight:500}.stack{gap:var(--space-3);flex-direction:column;display:flex}.stack>.section-title{margin:0}.stack>button{align-self:flex-start}.tag-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.tag{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--color-surface-alt);border-radius:var(--radius-sm);font-size:.8rem;display:inline-flex}.tag button{color:var(--color-danger);cursor:pointer;background:0 0;border:none;padding:0}.gone{color:var(--color-text-muted);font-style:italic}tr.gone td:not(.actions):not(.void-reason),article.gone .comment-body,.tag.gone .mark{text-decoration:line-through;-webkit-text-decoration-color:var(--color-border);text-decoration-color:var(--color-border)}tr.retired td:not(.actions){color:var(--color-text-muted);font-style:italic}@media print{:root,:root[data-theme=dark]{--color-bg:#fff;--color-surface:#fff;--color-surface-alt:#fff;--color-text:#000;--color-text-muted:#333;--color-border:#999}html,body,#app{background:#fff;height:auto}.shell,.content-column,.content{height:auto!important;max-height:none!important;padding:0!important;display:block!important;overflow:visible!important}.sidebar,.topbar,.toolbar,.output-actions,.generation,.warnings,button,.view h1,.header-row,.today,.section-title{display:none!important}.print-heading{margin:0 0 .6rem;display:block}.print-heading h2{margin:0;font-size:14pt}.print-heading p{color:#333;margin:.15rem 0 0;font-size:10pt}.view{height:auto!important;padding:0!important;display:block!important}.report{break-after:page;border:none!important;height:auto!important;max-height:none!important;padding:0!important;overflow:visible!important}.report:last-child{break-after:auto}.table-scroll{height:auto!important;max-height:none!important;overflow:visible!important}.timetable-grid-wrapper,.grid-scroll{border:none!important;flex:none!important;height:auto!important;min-height:0!important;max-height:none!important;display:block!important;overflow:visible!important}.grid{border:0 solid #000;border-width:1px 0 0 1px;width:100%;gap:0!important;min-width:0!important}.grid>*{border:1px solid #000;border-width:0 1px 1px 0}.corner,.head-day,.head-period,.column-head,.row-head{position:static!important}.whole-school .grid th,.whole-school .grid td{border:1px solid #000;border-width:0 1px 1px 0}.whole-school .lesson{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cards-scroll{height:auto!important;min-height:0!important;overflow:visible!important}.card{break-inside:avoid;border:1px solid #000}.cell{min-height:0!important}.lesson{break-inside:avoid;border-left:none;padding:2pt 3pt;font-size:8pt}.lesson-lab{border-left:2pt solid #000}.lab-tag{color:#000;border-color:#000}.lesson-clash{outline:1.5pt solid #000}@page{size:landscape;margin:12mm}}.print-heading{display:none}
