:root{--bg:#f5f5f7;--bg-card:#fff;--border:#d0d0dd;--border-soft:#e5e7eb;--accent:#2563eb;--accent-soft:#dbeafe;--accent-dark:#1e40af;--danger:#b91c1c;--danger-soft:#fee2e2;--success:#15803d;--success-soft:#dcfce7;--warning:#92400e;--warning-soft:#fef3c7;--text:#111827;--text-soft:#4b5563;--text-muted:#6b7280;--radius:8px;--shadow:0 10px 30px #0f172a0d;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #2563eb59}a{color:inherit}.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}.loading-screen{text-align:center;place-content:center;justify-items:center;gap:.7rem;min-height:100vh;padding:2rem;display:grid}.loading-screen h1{margin:0;font-size:1.4rem}.loading-screen p{color:var(--text-soft);margin:0}.login-screen{background:linear-gradient(180deg, #2563eb12, transparent 38%), var(--bg);place-items:center;min-height:100vh;padding:1.25rem;display:grid}.login-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);width:min(420px,100%);box-shadow:var(--shadow);gap:1rem;padding:1.15rem;display:grid}.login-brand{background:var(--accent);color:#fff;border-radius:8px;place-items:center;width:46px;height:46px;display:grid}.login-copy h1,.login-copy p,.login-hint{margin:0}.login-copy h1{letter-spacing:0;font-size:1.55rem}.login-copy p:not(.eyebrow),.login-hint{color:var(--text-soft);line-height:1.45}.login-form{gap:.85rem;display:grid}.login-submit{width:100%}.login-submit:disabled{opacity:.72;cursor:wait}.login-hint{padding-top:.2rem;font-size:.84rem}.login-hint code{color:var(--text);background:#f1f5f9;border-radius:6px;padding:.08rem .28rem;font-size:.82rem}.spin{color:var(--accent);animation:.9s linear infinite spin}.button .spin{color:currentColor}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{grid-template-columns:236px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#e5e7eb;background:#0f172a;flex-direction:column;gap:1.4rem;height:100vh;padding:1.25rem;display:flex;position:sticky;top:0}.brand{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.7rem;padding:0;text-decoration:none;display:inline-flex}.brand span{background:var(--accent);color:#fff;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.sidebar nav{gap:.3rem;display:grid}.sidebar nav button{color:#cbd5e1;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:.65rem;padding:.65rem .75rem;display:flex}.sidebar nav button:hover,.sidebar nav button:focus-visible,.sidebar nav button.is-active{color:#fff;background:#ffffff14}.sidebar nav button.is-active{background:#2563eb38;border-color:#bfdbfe52}.sidebar-note{color:#cbd5e1;border:1px solid #e2e8f02e;border-radius:8px;align-items:flex-start;gap:.55rem;margin-top:auto;padding:.75rem;font-size:.82rem;line-height:1.35;display:flex}.workspace{gap:1.25rem;padding:1.5rem 2rem 2.5rem;display:grid}@media (min-width:1181px){html,body{overflow:hidden}.app-shell{height:100vh;overflow:hidden}.workspace{flex-direction:column;height:100vh;min-height:0;display:flex;overflow-y:auto}.workspace--schedule{gap:.8rem;padding:1rem 1.25rem;overflow:hidden}.workspace--schedule .topbar{flex:none}.workspace--schedule .topbar h1{font-size:clamp(1.45rem,2vw,2rem)}.workspace--schedule .topbar p:not(.eyebrow){margin-top:.3rem}.admin-panel{flex:auto;min-height:0}.schedule-board{flex:auto}}.topbar{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.topbar h1{letter-spacing:0;max-width:800px;margin:0;font-size:clamp(1.6rem,2.3vw,2.35rem);line-height:1.05}.topbar p{max-width:820px;color:var(--text-soft);margin:.45rem 0 0}.eyebrow{text-transform:uppercase;font-size:.78rem;font-weight:700;color:var(--accent-dark)!important;margin:0 0 .35rem!important}.user-chip{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);min-width:220px;box-shadow:var(--shadow);align-items:center;gap:.65rem;padding:.55rem .65rem;display:flex}.user-chip>div{flex:1;min-width:0}.user-chip>span{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-dark);border-radius:50%;place-items:center;font-weight:800;display:grid}.user-chip strong,.user-chip small{display:block}.user-chip small{color:var(--text-soft)}.user-chip .icon-button{flex:none}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid}.stat-card,.panel,.signal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{align-items:flex-start;gap:.8rem;padding:1rem;display:flex}.stat-card__icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-dark);border-radius:8px;flex:none;place-items:center;display:grid}.stat-card p,.stat-card span{color:var(--text-soft);margin:0;font-size:.84rem}.stat-card strong{margin:.1rem 0;font-size:1.45rem;display:block}.signal-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.signal{align-items:flex-start;gap:.75rem;padding:.85rem 1rem;display:flex}.signal strong,.signal span{display:block}.signal span{color:var(--text-soft);margin-top:.1rem;font-size:.88rem}.main-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.9fr);align-items:start;gap:1rem;display:grid}.dashboard-home{grid-template-columns:minmax(260px,280px) minmax(0,1fr);align-items:stretch;gap:1rem;display:grid}.clock-card,.calendar-card{min-height:430px}.clock-card{background:linear-gradient(#fff 0%,#f8fafc 100%);align-content:space-between;display:grid}.clock-layout{justify-items:center;gap:1.1rem;padding:.6rem 0 .3rem;display:grid}.clock-face{aspect-ratio:1;background:radial-gradient(circle at center, #fff 0 58%, transparent 59%), conic-gradient(var(--accent) 0 var(--second-progress), #e5e7eb var(--second-progress) 100%);border:1px solid var(--border);border-radius:50%;place-items:center;width:min(210px,68vw);display:grid;position:relative;box-shadow:inset 0 0 0 11px #f8fafc,0 16px 32px #0f172a14}.clock-face:after{content:"";aspect-ratio:1;background:conic-gradient(#0f172a 0 var(--minute-progress), transparent var(--minute-progress) 100%);border-radius:50%;width:72%;position:absolute;-webkit-mask:radial-gradient(circle,#0000 0 72%,#000 73%);mask:radial-gradient(circle,#0000 0 72%,#000 73%)}.clock-face span{z-index:1;color:#fff;background:#0f172a;border-radius:50%;place-items:center;width:56px;height:56px;font-weight:800;display:grid;position:relative}.clock-readout{text-align:center;gap:.38rem;width:100%;display:grid}.clock-readout strong{letter-spacing:0;font-variant-numeric:tabular-nums;font-size:clamp(2.15rem,5vw,3.75rem);line-height:1;display:block}.clock-readout span{color:var(--text-soft);font-size:.86rem}.clock-readout p{max-width:390px;color:var(--text-soft);margin:.5rem auto 0;line-height:1.45}.calendar-card{align-content:start;display:grid}.calendar-week{grid-template-columns:repeat(5,minmax(104px,1fr));gap:.65rem;min-width:0;padding-bottom:.2rem;display:grid}.calendar-day{border:1px solid var(--border-soft);background:#f9fafb;border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:.6rem;min-height:326px;padding:.68rem;display:grid}.calendar-day.is-current{border-color:var(--accent);background:#eff6ff}.calendar-day__top{justify-content:space-between;align-items:flex-start;gap:.7rem;min-height:48px;display:flex}.calendar-day__top strong,.calendar-day__top span{display:block}.calendar-day__top strong{font-size:1rem}.calendar-day__top span{color:var(--text-soft);font-size:.78rem}.calendar-day__top small{border:1px solid var(--border);width:28px;height:28px;color:var(--text-soft);background:#fff;border-radius:8px;place-items:center;font-weight:800;display:grid}.calendar-events{align-content:start;gap:.55rem;display:grid}.calendar-event{border:1px solid var(--border-soft);background:#fff;border-radius:8px;gap:.4rem;padding:.52rem;display:grid;box-shadow:0 7px 14px #0f172a0a}.calendar-event__bar{border-radius:999px;width:100%;height:3px}.calendar-event strong,.calendar-event span{display:block}.calendar-event strong{overflow-wrap:break-word;font-size:.8rem}.calendar-event span,.calendar-empty{color:var(--text-soft);font-size:.78rem}.calendar-empty{border:1px dashed var(--border);background:#fff;border-radius:8px;margin:0;padding:.65rem}.panel{min-width:0;padding:1rem}.panel--wide{min-width:0}.panel__header{justify-content:space-between;align-items:flex-start;gap:.9rem;margin-bottom:.8rem;display:flex}.panel__header h2{margin:0;font-size:1.08rem}.panel__header p{color:var(--text-soft);margin:.25rem 0 0;font-size:.86rem}.button,.icon-button,.small-action{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.38rem;min-height:36px;display:inline-flex}.button{white-space:nowrap;padding:.45rem .8rem;font-size:.86rem;font-weight:650}.button--secondary,.icon-button{border-color:var(--border);color:var(--text);background:#f9fafb}.button--danger{background:var(--danger);border-color:var(--danger)}.icon-button{width:36px;height:36px;padding:0}.icon-button--primary{border-color:var(--accent);background:var(--accent);color:#fff}.icon-button--danger{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.small-action{min-height:30px;padding:.28rem .55rem;font-size:.78rem}.badge,.status-badge,.mini-state{white-space:nowrap;border-radius:999px;align-items:center;width:fit-content;font-size:.73rem;font-weight:700;line-height:1;display:inline-flex}.badge{background:var(--accent-soft);color:var(--accent-dark);padding:.24rem .52rem}.status-badge{color:#374151;background:#f3f4f6;padding:.28rem .52rem}.status-badge--published,.status-badge--submitted,.status-badge--graded,.status-badge--ok{background:var(--success-soft);color:var(--success)}.status-badge--review,.status-badge--open,.status-badge--warn{background:var(--warning-soft);color:var(--warning)}.status-badge--draft,.status-badge--late,.status-badge--error{background:var(--danger-soft);color:var(--danger)}.search-field{border:1px solid var(--border);width:100%;color:var(--text-soft);background:#f9fafb;border-radius:8px;align-items:center;gap:.45rem;padding:.42rem .55rem;display:flex}.search-field input{width:100%;color:var(--text);background:0 0;border:0;min-height:30px}.table-wrapper{border:1px solid var(--border);background:#fff;border-radius:8px;max-height:430px;margin-top:.8rem;overflow:auto}table{border-collapse:collapse;width:100%;min-width:780px;font-size:.84rem}thead{z-index:1;background:#f3f4f6;position:sticky;top:0}th,td{border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:middle;padding:.58rem .65rem}tbody tr:nth-child(2n){background:#f9fafb}tbody tr.is-selected{background:#eff6ff}.course-cell{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.55rem;padding:0;display:flex}.course-cell strong,.course-cell small{display:block}.course-cell small{color:var(--text-soft)}.course-dot{border:1px solid #0000001f;border-radius:50%;flex:none;width:14px;height:14px}.content-form{grid-template-columns:minmax(0,1fr) 120px;align-items:end;gap:.7rem;display:grid}.content-form .button{grid-column:1/-1;justify-self:start}label{color:var(--text-soft);margin-bottom:.18rem;font-size:.8rem;font-weight:650;display:block}input,select,textarea{border:1px solid var(--border);width:100%;min-height:38px;color:var(--text);background:#f9fafb;border-radius:6px;padding:.42rem .55rem}textarea{resize:vertical;line-height:1.4}input[readonly]{color:var(--text-soft);background:#eef2f7}.field-hint{color:var(--text-soft);margin:.25rem 0 0;font-size:.78rem;line-height:1.35}.inline-control{grid-template-columns:minmax(0,1fr) 38px;align-items:start;gap:.5rem;display:grid}.form-message{margin:.65rem 0 0;font-size:.84rem;font-weight:650}.form-message--error{color:var(--danger)}.form-message--success{color:var(--success)}.content-list,.assignment-list,.news-list{gap:.65rem;margin-top:.9rem;display:grid}.content-list{padding:0;list-style:none}.content-list li{border:1px solid var(--border-soft);background:#fff;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.68rem;display:grid}.content-list strong,.content-list small{display:block}.content-list small{color:var(--text-soft);margin-top:.1rem}.mini-state{color:var(--text-soft);background:#f3f4f6;padding:.25rem .45rem}.mini-state.is-on{background:var(--success-soft);color:var(--success)}.assignment,.news-list article{border:1px solid var(--border-soft);background:#fff;border-radius:8px;padding:.78rem}.assignment__top,.assignment__footer{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.assignment__top strong,.assignment__top span,.assignment__footer span{display:block}.assignment__top span,.assignment__footer span,.news-list span,.news-list p{color:var(--text-soft);font-size:.84rem}.progress{background:#e5e7eb;border-radius:999px;height:8px;margin:.72rem 0;overflow:hidden}.progress span{border-radius:inherit;background:var(--accent);height:100%;display:block}.news-list strong,.news-list span{display:block}.news-list p{margin:.38rem 0 0}.schedule-board{flex-direction:column;min-height:min(720px,100dvh - 10.5rem);display:flex}.schedule-board .panel__header{flex:none}.schedule-viewport{flex:auto;min-height:0;padding-bottom:.2rem;overflow:auto}.schedule{grid-template-columns:repeat(5,minmax(240px,1fr));gap:.7rem;min-width:0;height:100%;min-height:1920px;display:grid}.schedule__day{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.schedule__day h3{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;min-height:34px;margin:0 0 .4rem;padding:.35rem .55rem;font-size:.88rem;display:flex}.schedule__day h3 span{background:#e5e7eb;border-radius:999px;place-items:center;min-width:22px;min-height:22px;font-size:.72rem;display:grid}.schedule__lane{background:repeating-linear-gradient(#f9fafb 0 35px,#edf2fb 35px 36px);border:1px solid #d9dde7;border-radius:8px;min-height:0;position:relative;overflow:hidden}.schedule-time-mark{z-index:0;pointer-events:none;border-top:1px solid #94a3b83d;position:absolute;left:0;right:0}.schedule-time-mark span{color:var(--text-muted);font-variant-numeric:tabular-nums;background:#ffffffd1;border-radius:6px;padding:.03rem .22rem;font-size:.64rem;position:absolute;top:.18rem;left:.35rem}.schedule-event{border:2px solid var(--accent);background:#fff;border-radius:8px;align-content:start;gap:.12rem;padding:.38rem;font-size:.76rem;display:grid;position:absolute;overflow:hidden;box-shadow:0 9px 18px #11182714}.schedule-event strong,.schedule-event span{overflow-wrap:anywhere;min-width:0;line-height:1.18}.schedule-event strong{font-size:.78rem}.schedule-event span{color:var(--text-soft);font-size:.74rem}.schedule-event__staff{color:var(--text-soft);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.22rem;font-size:.72rem;display:grid}.schedule-event__staff svg{margin-top:.05rem}.schedule-lunch{z-index:1;pointer-events:none;background:repeating-linear-gradient(-45deg,#94a3b829 0 8px,#94a3b80d 8px 16px);border-top:1px dashed #cbd5e1;border-bottom:1px dashed #cbd5e1;justify-content:center;align-items:center;display:flex;position:absolute;left:0;right:0}.schedule-lunch span{letter-spacing:.02em;text-align:center;color:var(--text-muted);padding:0 .3rem;font-size:.68rem;font-weight:650}.solver-note{color:var(--text-soft);flex:none;align-items:center;gap:.45rem;margin:.65rem 0 0;font-size:.86rem;display:flex}.solver-note--running{color:var(--accent-dark)}.solver-note--done{color:var(--warning)}.solver-note--ok{color:var(--success)}.solver-note--error{color:var(--danger)}.schedule-event--supervision{box-shadow:none;opacity:.96;background:#f1f5f9;border-style:dashed}.schedule-event--supervision strong{color:var(--text-soft);font-weight:500}.solver-issues{border:1px solid var(--danger-soft);background:var(--danger-soft);color:var(--danger);border-radius:8px;gap:.3rem;margin:.5rem 0 0;padding:.6rem .8rem;font-size:.84rem;list-style:none;display:grid}.chat-panel{margin-bottom:1rem}.chat-layout{grid-template-rows:1fr auto;grid-template-columns:250px minmax(0,1fr);gap:.8rem;display:grid}.conversation-tabs{align-content:start;gap:.45rem;display:grid}.conversation-tabs button{border:1px solid var(--border);text-align:left;cursor:pointer;color:var(--text);background:#f9fafb;border-radius:8px;padding:.6rem}.conversation-tabs button.is-active{border-color:var(--accent);background:var(--accent-soft)}.conversation-tabs span{color:var(--text-soft);margin-top:.15rem;font-size:.78rem;display:block}.message-thread{border:1px solid var(--border);background:#f9fafb;border-radius:8px;align-content:start;gap:.55rem;min-height:260px;max-height:360px;padding:.75rem;display:grid;overflow-y:auto}.message{border:1px solid var(--border-soft);background:#fff;border-radius:8px;max-width:min(620px,86%);padding:.62rem .72rem}.message.is-own{background:var(--accent);color:#fff;border-color:var(--accent);margin-left:auto}.message p{margin:.2rem 0}.message span{color:var(--text-soft);font-size:.76rem}.message.is-own span{color:#ffffffc7}.message-form{grid-column:2;gap:.5rem;display:flex}.empty-state{text-align:center;min-height:170px;color:var(--text-soft);border:1px dashed var(--border);background:#f9fafb;border-radius:8px;align-content:center;place-items:center;gap:.4rem;padding:1rem;display:grid}.empty-state strong{color:var(--text)}.admin-panel{flex-direction:column;gap:1rem;scroll-margin-top:1rem;display:flex}.admin-layout{flex:auto;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);align-items:stretch;gap:1rem;min-height:0;display:grid}.admin-list{flex-direction:column;gap:.75rem;min-width:0;height:100%;min-height:0;display:flex}.segmented-control{flex-wrap:wrap;gap:.35rem;display:flex}.segmented-control button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#f9fafb;border-radius:999px;min-height:34px;padding:.32rem .7rem;font-size:.82rem;font-weight:650}.segmented-control button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}.entity-list{flex-direction:column;flex:auto;gap:.45rem;min-height:0;padding-right:.15rem;display:flex;overflow-y:auto}.entity-row{border:1px solid var(--border-soft);width:100%;color:var(--text);cursor:pointer;text-align:left;background:#fff;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.62rem;display:grid}.entity-row:hover,.entity-row.is-selected{border-color:var(--accent);background:#eff6ff}.entity-row strong,.entity-row small{display:block}.entity-row small{color:var(--text-soft);overflow-wrap:anywhere;margin-top:.12rem}.avatar,.course-swatch{border-radius:8px;flex:none;place-items:center;width:34px;height:34px;display:grid}.avatar{background:var(--accent-soft);color:var(--accent-dark);font-size:.78rem;font-weight:800}.course-swatch{border:1px solid #00000024}.compact-empty{border:1px dashed var(--border);color:var(--text-soft);background:#f9fafb;border-radius:8px;padding:.9rem;font-size:.86rem}.admin-form{border:1px solid var(--border-soft);background:#fff;border-radius:8px;align-content:start;gap:.85rem;height:100%;min-height:0;padding:.9rem;display:grid;overflow-y:auto}.admin-form--embedded{background:0 0;border:0;height:auto;padding:0;overflow:visible}.form-title{align-items:flex-start;gap:.6rem;display:flex}.form-title h3,.form-title p{margin:0}.form-title h3{font-size:1rem}.form-title p{color:var(--text-soft);margin-top:.15rem;font-size:.84rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.field-span-2{grid-column:1/-1}.teacher-fieldset{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:.5rem .8rem;margin:0;padding:.7rem;display:flex}.teacher-fieldset legend{color:var(--text-soft);padding:0 .25rem;font-size:.8rem;font-weight:700}.teacher-fieldset label{color:var(--text);align-items:center;gap:.35rem;margin:0;font-weight:600;display:inline-flex}.teacher-fieldset input{width:auto;min-height:auto}.teacher-fieldset p{color:var(--danger);margin:0;font-size:.84rem}.leader-fieldset{border:1px solid var(--border);border-radius:8px;gap:.7rem;margin:0;padding:.75rem;display:grid}.leader-fieldset legend{color:var(--text-soft);padding:0 .25rem;font-size:.8rem;font-weight:700}.leader-help{color:var(--text-soft);margin:0;font-size:.82rem}.leader-warn{color:var(--danger);margin:0;font-size:.84rem}.leader-group{gap:.35rem;display:grid}.leader-group__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem;font-weight:700}.leader-group__items{flex-wrap:wrap;gap:.4rem .6rem;display:flex}.leader-group__empty{color:var(--text-muted);font-size:.82rem;font-style:italic}.leader-chip{border:1px solid var(--border-soft);color:var(--text);background:var(--bg);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;margin:0;padding:.25rem .55rem;font-size:.85rem;font-weight:600;display:inline-flex}.leader-chip input{width:auto;min-height:auto;margin:0}.leader-chip:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}.course-actions{align-items:center;gap:.35rem;display:inline-flex}.color-picker-row{align-items:center;gap:.45rem;display:flex}.color-picker-row select{flex:1;min-width:0}.color-picker-row input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;width:2.3rem;height:2.3rem;padding:0}.course-swatch--lg{border:1px solid var(--border);border-radius:50%;width:1.4rem;height:1.4rem;display:inline-block}.inline-check{color:var(--text);align-items:center;gap:.45rem;margin:0;font-weight:600;display:inline-flex}.inline-check input{width:auto;min-height:auto}.window-fieldset{border:1px solid var(--border);border-radius:8px;gap:.6rem;margin:0;padding:.75rem;display:grid}.window-fieldset legend{color:var(--text-soft);align-items:center;gap:.35rem;padding:0 .25rem;font-size:.8rem;font-weight:700;display:inline-flex}.window-summary-row{color:var(--text-soft);justify-content:space-between;align-items:center;gap:.6rem;margin:0;font-size:.85rem;display:flex}.window-editor{border-top:1px dashed var(--border-soft);gap:.5rem;padding-top:.4rem;display:grid}.window-help{color:var(--text-soft);margin:0;font-size:.82rem}.window-empty{color:var(--text-muted);margin:0;font-size:.82rem;font-style:italic}.window-row{grid-template-columns:minmax(0,90px) minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:.4rem;display:grid}.window-row select,.window-row input[type=time]{width:100%}.button--small{padding:.35rem .65rem;font-size:.82rem}.selection-fieldset{border:1px solid var(--border);border-radius:8px;gap:.65rem;margin:0;padding:.75rem;display:grid}.selection-fieldset legend{color:var(--text-soft);padding:0 .25rem;font-size:.8rem;font-weight:700}.selection-toolbar{color:var(--text-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;font-size:.82rem;display:flex}.selection-toolbar__actions{flex-wrap:wrap;gap:.35rem;display:flex}.selection-list{gap:.45rem;max-height:210px;display:grid;overflow-y:auto}.selection-list label{border:1px solid var(--border-soft);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem;margin:0;padding:.55rem;display:grid}.selection-list input{width:auto;min-height:auto}.selection-list strong,.selection-list small{display:block}.selection-list small{color:var(--text-soft);overflow-wrap:anywhere;margin-top:.12rem;font-size:.78rem}.inline-tag-list{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.inline-tag-list li{border:1px solid var(--border-soft);background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:.2rem .6rem;font-size:.78rem;font-weight:600}.inline-tag-list li.compact-empty{color:var(--text-soft);background:0 0;border-style:dashed}.form-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.solver-config-form{gap:1rem;margin-top:.9rem;display:grid}.solver-config-group{border:1px solid var(--border);border-radius:8px;gap:.7rem;margin:0;padding:.85rem .95rem;display:grid}.solver-config-group legend{color:var(--text-soft);padding:0 .25rem;font-size:.8rem;font-weight:700}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.form-row label{color:var(--text-soft);gap:.25rem;font-size:.83rem;display:grid}.form-row input,.form-row select{width:100%}@media (max-width:720px){.form-row{grid-template-columns:minmax(0,1fr)}}.form-hint{color:var(--text-soft);margin:0;font-size:.82rem}.weekday-toggles{border:1px solid var(--border-soft);border-radius:8px;gap:.45rem;margin:0;padding:.55rem .7rem;display:grid}.weekday-toggles legend{color:var(--text-soft);padding:0 .25rem;font-size:.78rem;font-weight:700}.weekday-toggles>div{flex-wrap:wrap;gap:.4rem;display:flex}.weekday-toggle{border:1px solid var(--border);background:var(--bg-input,#fff);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.82rem;display:inline-flex}.weekday-toggle input{appearance:none;width:0;height:0;margin:0}.weekday-toggle.is-active{background:var(--accent-soft,#2563eb1f);border-color:var(--accent,#2563eb);color:var(--accent,#2563eb);font-weight:650}.weekday-toggle:focus-within{outline:2px solid var(--accent,#2563eb);outline-offset:1px}.modal-backdrop{z-index:50;background:#0f172a73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);width:min(620px,100%);max-height:min(760px,100vh - 2rem);padding:1rem;overflow:auto;box-shadow:0 28px 70px #0f172a38}@media (max-width:1180px){.app-shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;height:auto;position:static}.sidebar nav{flex-wrap:wrap;display:flex}.sidebar-note{max-width:320px;margin-top:0;margin-left:auto}.main-grid,.stats-grid,.dashboard-home{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-home{grid-template-columns:1fr}}@media (max-width:820px){.workspace{padding:1rem}.topbar,.assignment__top,.assignment__footer,.panel__header{flex-direction:column}.user-chip{width:100%}.main-grid,.stats-grid,.signal-row,.dashboard-home,.content-form,.chat-layout,.admin-layout,.form-grid{grid-template-columns:1fr}.admin-panel{height:auto;min-height:0}.admin-list,.admin-form{height:auto;overflow:visible}.entity-list{flex:none;max-height:60dvh}.message-form{grid-column:1}.sidebar{padding:1rem}.sidebar-note{width:100%;max-width:none;margin-left:0}.sidebar nav{width:100%}.sidebar nav button{flex:132px}.clock-card,.calendar-card{min-height:0}.clock-face{width:min(220px,74vw)}.calendar-week{grid-template-columns:1fr;overflow-x:visible}.calendar-day{min-height:0}.schedule{grid-template-columns:1fr;height:auto;min-height:0;overflow-x:visible}.schedule-board{min-height:0}.schedule-viewport{overflow:visible}.schedule__lane{height:1920px}table{min-width:0}thead{display:none}tbody,tr,td{display:block}tbody{padding:.5rem}tbody tr{border:1px solid var(--border-soft);background:#fff;border-radius:8px;padding:.55rem}tbody tr+tr{margin-top:.5rem}td{border:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.34rem 0;display:flex}td:before{content:attr(data-label);color:var(--text-soft);font-size:.74rem;font-weight:700}td[data-label=Kurs]{display:block}td[data-label=Kurs]:before{display:none}td[data-label=Aktion]{justify-content:flex-end}td[data-label=Aktion]:before{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sidebar__save{gap:.4rem;margin-top:auto;display:grid}.sidebar-save-button{justify-content:center;width:100%}.sidebar-save-hint{color:#cbd5e1;text-align:center;margin:0;font-size:.74rem}.window-actions{flex-wrap:wrap;gap:.4rem;display:flex}.schedule-actions{flex-wrap:wrap;gap:.5rem;display:flex}.solver-diagnostics{gap:.6rem;margin:.5rem 0 0;display:grid}.solver-diagnostics__group{border:1px solid var(--warning-soft);background:var(--warning-soft);color:var(--warning);border-radius:8px;padding:.6rem .8rem;font-size:.84rem}.solver-diagnostics__group h3{margin:0 0 .3rem;font-size:.85rem}.solver-diagnostics__group ul{gap:.2rem;margin:0;padding-left:1.1rem;display:grid}.schedule-print{display:none}@media print{html,body{background:#fff!important;height:auto!important;overflow:visible!important}.app-shell{height:auto!important;display:block!important;overflow:visible!important}.sidebar,.topbar{display:none!important}.workspace{height:auto!important;max-height:none!important;padding:0!important;display:block!important;overflow:visible!important}.schedule-board{box-shadow:none!important;border:0!important;padding:0!important}.schedule-board .panel__header,.schedule-board .schedule-viewport,.schedule-board .solver-note,.schedule-board .solver-issues,.schedule-board .solver-diagnostics{display:none!important}.schedule-print{color:#111;display:block!important}.schedule-print h2{margin:0 0 8px}.schedule-print__day{break-inside:avoid;margin-bottom:12px}.schedule-print__day h3{margin:8px 0 4px}.schedule-print table{border-collapse:collapse;width:100%;font-size:11pt}.schedule-print th,.schedule-print td{text-align:left;border:1px solid #999;padding:4px 8px}.schedule-print__empty{color:#555;margin:0}}.workload-note{border:1px solid var(--warning-soft);background:var(--warning-soft);color:var(--warning);border-radius:8px;align-items:center;gap:.5rem;margin:0 0 .8rem;padding:.55rem .75rem;font-size:.84rem;display:flex}.workload-table{min-width:720px}.workload-table td small{color:var(--text-soft);font-size:.78rem;display:block}.workload-table tr.is-clickable{cursor:pointer}.workload-table tr.is-clickable:hover,.workload-table tr.is-clickable:focus-visible{background:var(--accent-soft);outline:none}.workload-table tfoot th,.workload-table tfoot td{border-top:2px solid var(--border);color:var(--text);font-weight:700}.workload-meter{gap:.25rem;min-width:150px;display:grid}.workload-meter__track{background:var(--border-soft);border-radius:999px;height:8px;overflow:hidden}.workload-meter__track span{background:var(--accent);border-radius:999px;height:100%;display:block}.workload-meter__label{color:var(--text-soft);font-size:.76rem}.workload-meter--high .workload-meter__track span{background:var(--warning)}.workload-meter--over .workload-meter__track span{background:var(--danger)}.workload-meter--over .workload-meter__label{color:var(--danger);font-weight:600}.workload-meter--none .workload-meter__track span{background:var(--border)}.workload-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.workload-summary__item{border:1px solid var(--border-soft);background:#fff;border-radius:8px;gap:.15rem;padding:.5rem .6rem;display:grid}.workload-summary__item span{color:var(--text-soft);font-size:.76rem}.workload-summary__item strong{font-size:1rem}.workload-courses{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.workload-courses li{border:1px solid var(--border-soft);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:.6rem;padding:.45rem .6rem;display:flex}.workload-courses small{color:var(--text-soft);font-size:.76rem;display:block}@media (max-width:820px){.workload-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
