:root{
    --bg:#f4f6f8;--surface:#fff;--surface-2:#f8fafb;--text:#17202a;--muted:#67727e;--line:#dfe5ea;
    --primary:#1f5f8b;--primary-2:#174968;--good:#277a4b;--warn:#9a6700;--danger:#b42318;--shadow:0 8px 28px rgba(20,35,50,.08);
    --radius:16px;--sidebar:248px
}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
body{margin:0;background:var(--bg);color:var(--text)}a{color:inherit}button,input,select{font:inherit}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:22px 18px;background:#13232f;color:#eef4f7;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:12px;padding:4px 4px 22px}.brand strong{display:block;font-size:18px}.brand span{display:block;color:#9fb4c1;font-size:13px;margin-top:2px}.brand-mark{width:42px;height:42px;border-radius:12px;background:#dfeaf1;color:#17384e;display:grid;place-items:center;font-weight:800;letter-spacing:.05em}.brand-mark.big{width:56px;height:56px;border-radius:16px;font-size:20px}
.nav{display:flex;flex-direction:column;gap:5px}.nav a{padding:11px 12px;border-radius:10px;text-decoration:none;color:#c9d6dd;font-weight:600;font-size:14px}.nav a:hover,.nav a.active{background:#213b4c;color:#fff}.sidebar-user{margin-top:auto;padding:16px 10px 4px;border-top:1px solid #2c4351}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{margin:4px 0 12px;color:#9fb4c1}.sidebar-user a{color:#fff;font-size:14px}
.main{margin-left:var(--sidebar);padding:0 30px 40px}.topbar{height:84px;display:flex;align-items:center;border-bottom:1px solid transparent}.topbar h1{font-size:28px;margin:0;letter-spacing:-.02em}.menu-toggle{display:none;border:0;background:transparent;font-size:24px;margin-right:12px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:22px}.panel h2{margin:0 0 4px;font-size:19px}.panel p{margin:0;color:var(--muted)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.page-actions{margin-bottom:14px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stats-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}.stats-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.stat-card strong{font-size:30px;display:block;margin:5px 0 3px;letter-spacing:-.03em}.stat-card small{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;font-size:10px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}.content-narrow{max-width:720px}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid var(--line);padding:9px 13px;background:var(--surface);color:var(--text);text-decoration:none;cursor:pointer;font-weight:700;font-size:14px}.button:hover{filter:brightness(.98)}.button.primary{background:var(--primary);border-color:var(--primary);color:#fff}.button.subtle{background:var(--surface-2)}.button.tiny{padding:6px 9px;font-size:12px}.button.danger{color:var(--danger);border-color:#f0c7c3}
.alert{padding:13px 15px;border-radius:11px;margin:0 0 18px;border:1px solid}.alert-success{background:#edf8f1;border-color:#b9ddc7;color:#175b35}.alert-error{background:#fff1f0;border-color:#f3c2bd;color:#8a1c14}.alert-warning{background:#fff8e8;border-color:#efd798;color:#705000}.alert-info{background:#edf6fb;border-color:#bed8e8;color:#174d70}
.stack-form{display:grid;gap:14px}.stack-form label,.import-form label{display:grid;gap:7px;font-weight:700;font-size:13px}.stack-form input,.stack-form select,.import-form input,.import-form select,.filter-form input,.data-table select{width:100%;border:1px solid #cfd8df;background:var(--surface);color:var(--text);border-radius:9px;padding:10px 11px;outline:none}.stack-form input:focus,.stack-form select:focus,.filter-form input:focus{border-color:#6ea0c0;box-shadow:0 0 0 3px rgba(31,95,139,.12)}.hint,.hint-inline{color:var(--muted);font-weight:400;font-size:12px}.hint-box{margin-top:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--muted);font-size:13px}
.import-form{display:grid;grid-template-columns:220px minmax(260px,1fr) auto;gap:12px;align-items:end}.filter-form{display:flex;gap:9px;align-items:center}.filter-form input{min-width:220px}.check-inline{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:13px;white-space:nowrap}.check-inline input{width:auto;min-width:auto}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;white-space:nowrap}.data-table thead th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);position:sticky;top:0;z-index:1}.data-table th a{text-decoration:none}.data-table tr:last-child td{border-bottom:0}.data-table.compact th,.data-table.compact td{padding:8px 9px}.teacher-link{text-decoration:none;display:flex;align-items:baseline;gap:8px}.teacher-link span{color:var(--muted)}.muted-row{opacity:.58}.inline-form{display:inline-flex;margin:0}.actions-cell{display:flex;gap:6px;align-items:center}.chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px;font-weight:700;background:var(--surface);white-space:nowrap}.button.chip{cursor:pointer}.chip.on{background:#edf8f1;border-color:#b9ddc7;color:#17623a}.chip.off{background:#f4f5f6;border-color:#d9dee2;color:#67727e}.chip-list{display:flex;flex-wrap:wrap;gap:7px}
.import-status-list{display:grid;gap:9px}.import-status{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:10px;padding:11px 12px}.import-status strong,.import-status span{display:block}.import-status span{font-size:12px;color:var(--muted);margin-top:2px}.status-dot{width:10px;height:10px;border-radius:50%}.import-status.ok .status-dot{background:#3b9460}.import-status.missing .status-dot{background:#c0c7cc}.mini-list{display:grid}.mini-list a{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid var(--line);text-decoration:none}.mini-list a:last-child{border-bottom:0}.definition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.definition-grid.single{grid-template-columns:1fr}.definition-grid div{background:var(--surface-2);border-radius:10px;padding:13px}.definition-grid strong,.definition-grid span{display:block}.definition-grid span{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}
.teacher-hero{display:flex;justify-content:space-between;align-items:center;gap:24px}.teacher-hero h2{font-size:26px;margin-top:6px}.teacher-code{display:inline-flex;background:#17384e;color:#fff;padding:5px 9px;border-radius:8px;font-weight:800;letter-spacing:.06em}.teacher-master-grid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px}.teacher-master-grid div{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:12px}.teacher-master-grid span,.teacher-master-grid strong{display:block}.teacher-master-grid span{font-size:11px;color:var(--muted)}.teacher-master-grid strong{font-size:21px;margin-top:4px}
.timetable{border-collapse:separate;border-spacing:0;width:100%;min-width:850px;font-size:12px}.timetable th,.timetable td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;vertical-align:top;height:62px}.timetable tr:first-child th{border-top:1px solid var(--line)}.timetable th:first-child,.timetable td:first-child{border-left:1px solid var(--line)}.timetable thead th{background:var(--surface-2);height:auto}.timetable tbody th{width:50px;text-align:center;background:var(--surface-2)}.timetable td.occupied{background:#edf5fa}.timetable td strong,.timetable td span,.timetable td small{display:block}.timetable td span{margin-top:4px}.timetable td small{color:var(--muted);margin-top:4px}.bar-list{display:grid;gap:11px}.bar-row{display:grid;grid-template-columns:120px 1fr 36px;gap:10px;align-items:center;font-size:13px}.bar-track{height:9px;border-radius:999px;background:#edf0f2;overflow:hidden}.bar-track i{display:block;height:100%;background:var(--primary);border-radius:inherit}
.empty-state{padding:22px;background:var(--surface-2);border:1px dashed #cbd4da;border-radius:10px;text-align:center;color:var(--muted)}.password-once{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.password-once code{font-size:15px;background:#fff;padding:5px 8px;border-radius:7px;border:1px solid #cfe2d5}.password-once span{flex-basis:100%}
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(150deg,#10222f,#21495f 55%,#dce7ed 55%)}.login-card{width:min(520px,100%);background:var(--surface);border-radius:20px;padding:30px;box-shadow:0 24px 70px rgba(0,0,0,.25)}.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:26px}.login-brand h1{margin:0;font-size:23px}.login-brand p{margin:4px 0 0;color:var(--muted);font-size:13px}.login-card h2{margin:0 0 8px}.login-card>p{color:var(--muted);line-height:1.5}.setup-badge{display:inline-flex;padding:4px 8px;background:#edf6fb;color:#174d70;border-radius:999px;font-size:11px;font-weight:800;margin-bottom:12px}
@media (max-width:1180px){.stats-grid-6{grid-template-columns:repeat(3,1fr)}.definition-grid{grid-template-columns:repeat(2,1fr)}.teacher-hero{align-items:flex-start;flex-direction:column}.teacher-master-grid{width:100%}}
@media (max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s ease}.nav-open .sidebar{transform:none}.main{margin-left:0;padding:0 16px 30px}.menu-toggle{display:block}.topbar{height:72px}.stats-grid,.stats-grid-3,.stats-grid-6{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.panel-head.responsive{flex-direction:column}.filter-form{flex-wrap:wrap}.import-form{grid-template-columns:1fr}.teacher-master-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.stats-grid,.stats-grid-3,.stats-grid-6{grid-template-columns:1fr}.definition-grid{grid-template-columns:1fr}.panel{padding:16px}.topbar h1{font-size:23px}.teacher-master-grid{grid-template-columns:1fr 1fr}.login-card{padding:22px}.login-brand{align-items:flex-start}}
@media (prefers-color-scheme:dark){:root{--bg:#10171c;--surface:#172127;--surface-2:#1d2930;--text:#edf3f6;--muted:#9eabb3;--line:#2b3941;--shadow:none;--primary:#4c91bd;--primary-2:#357ca9}.sidebar{background:#0d171d}.data-table thead th,.timetable thead th,.timetable tbody th{background:#1d2930}.timetable td.occupied{background:#203747}.bar-track{background:#29373e}.login-body{background:linear-gradient(150deg,#071015,#132b39 55%,#26343c 55%)}.password-once code{background:#152128}}

/* Update 1.1.0: Live-Suche und mobile Unterrichtsverteilung */
.live-filter-form{align-items:flex-end}.live-search-field{display:grid;gap:5px;min-width:min(360px,100%)}.live-search-field input{width:100%;min-width:0}.live-search-count{font-size:11px;color:var(--muted);padding-left:2px}.live-search-empty{margin-top:14px}.lesson-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.lesson-search{flex:1;max-width:620px}.lesson-options-form{margin:0}.lesson-summary-grid{margin-top:0}.lesson-teacher-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}.lesson-teacher-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;min-width:0}.lesson-teacher-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.lesson-teacher-person{display:flex;align-items:flex-start;gap:11px;min-width:0}.lesson-teacher-person h3{font-size:17px;margin:1px 0 4px;line-height:1.2;overflow-wrap:anywhere}.lesson-master-line{display:block;color:var(--muted);font-size:12px;line-height:1.4}.lesson-hours-badge{flex:0 0 auto;min-width:70px;text-align:center;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:9px 10px}.lesson-hours-badge strong{display:block;font-size:23px;line-height:1}.lesson-hours-badge span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.lesson-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.lesson-mini-stats div{background:var(--surface-2);border-radius:9px;padding:9px;text-align:center}.lesson-mini-stats strong,.lesson-mini-stats span{display:block}.lesson-mini-stats strong{font-size:17px}.lesson-mini-stats span{font-size:10px;color:var(--muted);margin-top:2px}.lesson-details{border-top:1px solid var(--line);padding-top:11px}.lesson-details summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13px;list-style:none}.lesson-details summary::-webkit-details-marker{display:none}.lesson-details summary::before{content:'›';display:inline-block;margin-right:7px;transition:transform .15s}.lesson-details[open] summary::before{transform:rotate(90deg)}.lesson-details summary span{margin-left:auto;color:var(--muted);font-weight:600}.lesson-list{display:grid;gap:0;margin-top:10px}.lesson-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.lesson-row-main strong,.lesson-row-main span,.lesson-row-main small{display:block}.lesson-row-main strong{font-size:13px}.lesson-row-main span{font-size:12px;margin-top:3px;overflow-wrap:anywhere}.lesson-row-main small{font-size:10px;color:var(--muted);margin-top:3px}.lesson-row-hours{font-size:15px;font-weight:800;align-self:center;white-space:nowrap}.lesson-row-hours::after{content:' Std.';font-size:10px;color:var(--muted);font-weight:600}.lesson-none{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:11px}

@media (max-width:900px){.lesson-teacher-grid{grid-template-columns:1fr}.live-filter-form{width:100%}.live-search-field{width:100%;min-width:0}.lesson-toolbar{display:grid;grid-template-columns:1fr;width:100%}.lesson-search{max-width:none}}
@media (max-width:700px){.teacher-table-wrap{overflow:visible}.mobile-card-table,.mobile-card-table tbody{display:block;width:100%}.mobile-card-table thead{display:none}.mobile-card-table tbody{display:grid;gap:12px}.mobile-card-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--surface-2)}.mobile-card-table td{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 2px;border-bottom:1px solid var(--line);white-space:normal;text-align:right}.mobile-card-table td::before{content:attr(data-label);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;text-align:left}.mobile-card-table td:nth-last-child(-n+2){border-bottom:0}.mobile-card-table .mobile-card-title{grid-column:1/-1;display:block;text-align:left;padding:8px 2px 11px;border-bottom:1px solid var(--line)}.mobile-card-table .mobile-card-title::before{display:none}.mobile-card-table .teacher-link{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mobile-card-table .teacher-link strong{font-size:16px}.mobile-card-table .teacher-link span{font-size:13px}.mobile-card-table tr[hidden]{display:none}.lesson-intro-panel .panel-head{margin-bottom:14px}}
@media (max-width:560px){.lesson-teacher-card{padding:14px}.lesson-teacher-head{align-items:center}.lesson-teacher-person{gap:8px}.lesson-teacher-person .teacher-code{font-size:11px;padding:4px 7px}.lesson-hours-badge{min-width:62px;padding:8px}.lesson-hours-badge strong{font-size:20px}.lesson-mini-stats{gap:6px}.lesson-mini-stats div{padding:8px 5px}.mobile-card-table tr{grid-template-columns:1fr 1fr}.live-filter-form .check-inline{margin-top:2px}}

/* Update 1.2.0: Fachgruppen, Sek-I/Sek-II- und Jahrgangsauswertung */
.stats-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.lesson-mini-stats-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.summary-caption{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800;margin-bottom:7px}
.teacher-subject-summary,.teacher-stage-summary,.subject-stage-block{border-top:1px solid var(--line);padding-top:11px;margin-top:11px}
.subject-chip-list,.stage-chip-list{display:flex;flex-wrap:wrap;gap:7px}
.subject-hour-chip,.stage-hour-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:6px 9px;font-size:11px;line-height:1}
.subject-hour-chip strong,.stage-hour-chip strong{font-size:11px}.subject-hour-chip b,.stage-hour-chip b{font-size:11px;color:var(--primary)}
.subject-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}
.subject-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;min-width:0}
.subject-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.subject-card-head h3{font-size:27px;line-height:1;margin:5px 0 0;letter-spacing:-.03em}.subject-hours-badge{min-width:92px}.subject-hours-badge span{max-width:82px;line-height:1.15}
.subject-details{margin-top:14px}.subject-teacher-list{display:grid;margin-top:10px}.subject-teacher-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:13px 0;border-top:1px solid var(--line);align-items:flex-start}.subject-teacher-main{min-width:0}.subject-teacher-name{display:flex;align-items:center;gap:9px;min-width:0}.subject-teacher-name strong{font-size:14px;overflow-wrap:anywhere}.subject-teacher-name .teacher-code{font-size:10px;padding:4px 6px}.subject-teacher-hours{text-align:right;white-space:nowrap;padding-top:2px}.subject-teacher-hours strong,.subject-teacher-hours span{display:block}.subject-teacher-hours strong{font-size:19px}.subject-teacher-hours span{font-size:10px;color:var(--muted);margin-top:2px}.compact-stage-list{margin-top:8px}.compact-stage-list .stage-hour-chip{padding:5px 7px}
.subject-course-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.subject-course-list span{font-size:10px;color:var(--muted);background:var(--surface-2);border-radius:7px;padding:5px 7px;border:1px solid var(--line)}

@media (max-width:1000px){.subject-card-grid{grid-template-columns:1fr}.stats-grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.lesson-mini-stats-4{grid-template-columns:repeat(2,1fr)}.subject-card{padding:14px}.subject-card-head h3{font-size:24px}.subject-teacher-row{gap:9px}.subject-course-list{display:grid;grid-template-columns:1fr}.subject-course-list span{line-height:1.35}}
@media (max-width:560px){.stats-grid-4{grid-template-columns:1fr 1fr}.subject-card-head{align-items:center}.subject-hours-badge{min-width:82px}.subject-hour-chip,.stage-hour-chip{font-size:10px}.subject-teacher-name{align-items:flex-start}.subject-teacher-name strong{font-size:13px}}

/* Update 1.2.2: Pascal-Gymnasium Corporate Colors
   Dunkelblau #010D6E | Cyan #00B2FE | Magenta #D4004B | Off-White #F6F3EE */
:root{
    --bg:#F6F3EE;
    --surface:#FFFFFF;
    --surface-2:#FAF8F4;
    --text:#010D6E;
    --muted:#66708B;
    --line:#DDDDE5;
    --primary:#010D6E;
    --primary-2:#00084F;
    --accent:#00B2FE;
    --danger:#D4004B;
    --shadow:0 8px 28px rgba(1,13,110,.08);
}
body,html{background:var(--bg);color:var(--text)}
.sidebar{background:#010D6E;color:#fff}
.brand span,.sidebar-user small{color:#BFD8F2}
.brand-mark{background:#00B2FE;color:#010D6E}
.nav a{color:#E3EDFA}
.nav a:hover{background:rgba(255,255,255,.11);color:#fff}
.nav a.active{background:#00B2FE;color:#010D6E}
.sidebar-user{border-top-color:rgba(255,255,255,.2)}
.topbar h1,.panel h2,.teacher-hero h2,.lesson-teacher-person h3,.subject-card-head h3{color:#010D6E}
.teacher-code{background:#010D6E;color:#fff}
.button.primary{background:#010D6E;border-color:#010D6E;color:#fff}
.button.primary:hover{background:#00084F;border-color:#00084F;filter:none}
.button.danger{color:#D4004B;border-color:rgba(212,0,75,.32)}
.button.danger:hover{background:rgba(212,0,75,.06)}
.stack-form input:focus,.stack-form select:focus,.filter-form input:focus,.live-search-field input:focus{
    border-color:#00B2FE;
    box-shadow:0 0 0 3px rgba(0,178,254,.18)
}
.data-table thead th,.timetable thead th,.timetable tbody th{background:#F6F3EE}
.timetable td.occupied{background:rgba(0,178,254,.09)}
.bar-track i{background:#00B2FE}
.lesson-hours-badge,.subject-hours-badge{background:#F6F3EE}
.subject-hour-chip b,.stage-hour-chip b{color:#010D6E}
.chip.on{background:rgba(0,178,254,.10);border-color:rgba(0,178,254,.35);color:#010D6E}
.alert-info{background:rgba(0,178,254,.08);border-color:rgba(0,178,254,.28);color:#010D6E}
.alert-error{background:rgba(212,0,75,.06);border-color:rgba(212,0,75,.24);color:#8D0032}
.setup-badge{background:rgba(0,178,254,.12);color:#010D6E}
.status-dot{box-shadow:0 0 0 2px #fff}
.import-status.ok .status-dot{background:#00B2FE}
.login-body{background:linear-gradient(145deg,#010D6E 0 45%,#00B2FE 45% 58%,#F6F3EE 58% 100%)}
.login-card{box-shadow:0 24px 70px rgba(1,13,110,.24)}
.login-brand h1{color:#010D6E}

/* Pascal-Akzent sparsam für besondere Zustände */
.alert-warning{background:rgba(212,0,75,.05);border-color:rgba(212,0,75,.20);color:#8D0032}
.password-once code{border-color:rgba(0,178,254,.35)}

/* Die Anwendung bleibt auch bei System-Darkmode im Pascal-Farbschema. */
@media (prefers-color-scheme:dark){
    :root{
        --bg:#F6F3EE;
        --surface:#FFFFFF;
        --surface-2:#FAF8F4;
        --text:#010D6E;
        --muted:#66708B;
        --line:#DDDDE5;
        --shadow:0 8px 28px rgba(1,13,110,.08);
        --primary:#010D6E;
        --primary-2:#00084F;
    }
    .sidebar{background:#010D6E}
    .data-table thead th,.timetable thead th,.timetable tbody th{background:#F6F3EE}
    .timetable td.occupied{background:rgba(0,178,254,.09)}
    .bar-track{background:#E8E5DF}
    .login-body{background:linear-gradient(145deg,#010D6E 0 45%,#00B2FE 45% 58%,#F6F3EE 58% 100%)}
    .password-once code{background:#fff}
}


/* Update 1.2.3: Einheitlicher Suchfeld-Standard
   Alle Live-Suchfelder werden über render_live_search_field() erzeugt
   und entsprechen optisch dem Suchfeld des Kollegiumsvergleichs. */
.standard-search-form{
    margin:0;
    align-items:flex-end;
}
.standard-live-search{
    width:min(360px,100%);
    min-width:min(360px,100%);
    max-width:360px;
}
.lesson-toolbar .standard-search-form{
    flex:1 1 360px;
}
.lesson-toolbar .standard-live-search{
    width:min(360px,100%);
    max-width:360px;
}
@media (max-width:900px){
    .standard-search-form{width:100%}
    .standard-live-search,
    .lesson-toolbar .standard-live-search{
        width:100%;
        min-width:0;
        max-width:none;
    }
}

/* Update 1.3.0: erweiterte Stundenplan- und Freistundenauswertung */
.hours-group-filter{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 14px}
.hours-group-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);text-decoration:none;font-size:12px;font-weight:800;color:var(--primary)}
.hours-group-chip:hover{border-color:rgba(0,178,254,.55)}
.hours-group-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}
.analysis-rule-note{padding:11px 13px;border:1px solid rgba(0,178,254,.28);background:rgba(0,178,254,.06);border-radius:11px;margin:0 0 16px;color:var(--muted);font-size:12px;line-height:1.45}
.analysis-rule-note strong{color:var(--primary)}
.comparison-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.comparison-summary-grid>div{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:12px;min-width:0}
.comparison-summary-grid span,.comparison-summary-grid strong,.comparison-summary-grid small{display:block}
.comparison-summary-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}
.comparison-summary-grid strong{font-size:17px;margin:5px 0 2px;overflow-wrap:anywhere}
.comparison-summary-grid small{font-size:10px;color:var(--muted)}
.group-stat-list{display:grid;gap:8px}
.group-stat-list a{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;border:1px solid var(--line);background:var(--surface-2);border-radius:11px;padding:11px 12px}
.group-stat-list a:hover{border-color:rgba(0,178,254,.45)}
.group-stat-list span strong,.group-stat-list span small,.group-stat-list b small{display:block}
.group-stat-list span strong{font-size:13px}.group-stat-list span small{color:var(--muted);font-size:10px;margin-top:3px}
.group-stat-list b{font-size:18px;white-space:nowrap}.group-stat-list b small{font-size:9px;color:var(--muted);text-align:right}
.ranking-table th:first-child,.ranking-table td:first-child{width:58px;text-align:center}
.lunch-period-row th,.lunch-period-row td{background:rgba(212,0,75,.035)!important;color:var(--muted)}
.lunch-period-row th{font-size:10px;white-space:nowrap}
.compactness-detail-panel .definition-grid strong{font-size:22px;color:var(--primary)}

@media (max-width:1100px){.comparison-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){
    .hours-group-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .hours-group-chip{padding:9px 8px}
    .comparison-summary-grid{grid-template-columns:1fr 1fr}
    .ranking-table td:first-child{grid-column:auto;text-align:right;width:auto}
    .ranking-table td:first-child::before{display:block}
    .ranking-table .mobile-card-title{grid-column:1/-1}
}
@media (max-width:430px){.comparison-summary-grid{grid-template-columns:1fr}.analysis-rule-note{font-size:11px}}

/* Update 1.4.0: eigener Bereich "Auswertungen" */
.analysis-page-intro{margin-bottom:18px}
.analysis-metric-catalog{display:grid;gap:16px}
.analysis-metric-category{padding-top:2px}
.analysis-metric-category h3{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.analysis-metric-links{display:flex;flex-wrap:wrap;gap:8px}
.analysis-metric-link{display:inline-flex;align-items:center;min-height:38px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--primary);text-decoration:none;font-size:12px;font-weight:800}
.analysis-metric-link:hover{border-color:rgba(0,178,254,.55)}
.analysis-metric-link.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 14px rgba(1,13,110,.13)}
.analysis-selected-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}
.analysis-selected-head h2{margin:4px 0 5px}
.analysis-selected-head p{margin:0;max-width:800px;color:var(--muted);line-height:1.5}
.analysis-order-switch{display:inline-flex;flex:0 0 auto;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2)}
.analysis-order-switch a{padding:9px 11px;text-decoration:none;color:var(--primary);font-size:11px;font-weight:800;white-space:nowrap}
.analysis-order-switch a+a{border-left:1px solid var(--line)}
.analysis-order-switch a.active{background:var(--primary);color:#fff}
.analysis-hours-filter{margin-top:2px}
.analysis-summary-grid{margin-top:4px}
.analysis-subheading{margin:20px 0 10px;font-size:13px;color:var(--primary)}
.analysis-group-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.analysis-group-card{display:block;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px;text-decoration:none;color:var(--text);min-width:0}
.analysis-group-card:hover{border-color:rgba(0,178,254,.5)}
.analysis-group-card.active{border-color:#00B2FE;box-shadow:0 0 0 2px rgba(0,178,254,.12)}
.analysis-group-card span,.analysis-group-card strong,.analysis-group-card small{display:block}
.analysis-group-card span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:800}
.analysis-group-card strong{font-size:22px;color:var(--primary);margin:7px 0 3px}
.analysis-group-card small{font-size:10px;color:var(--muted);line-height:1.45;margin-top:2px}
.analysis-ranking-table th:first-child,.analysis-ranking-table td:first-child{width:58px;text-align:center}
.analysis-ranking-table td:nth-child(3) strong{font-size:16px;color:var(--primary)}
.analysis-deviation{font-variant-numeric:tabular-nums}

@media (max-width:1100px){
    .analysis-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
    .analysis-selected-head{display:block}
    .analysis-order-switch{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-top:14px}
    .analysis-order-switch a{text-align:center;padding:10px 8px}
    .analysis-metric-links{display:grid;grid-template-columns:1fr 1fr;gap:7px}
    .analysis-metric-link{justify-content:center;text-align:center;line-height:1.25}
    .analysis-ranking-table .mobile-card-title{grid-column:1/-1}
    .analysis-ranking-table td:first-child{width:auto;text-align:right}
}
@media (max-width:460px){
    .analysis-group-grid{grid-template-columns:1fr}
    .analysis-metric-links{grid-template-columns:1fr}
}

/* Update 1.4.2: kompakte, aufklappbare Rangliste im Auswertungsbereich */
.analysis-ranking-list{display:grid;gap:8px}
.analysis-ranking-entry{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);overflow:hidden}
.analysis-ranking-summary{appearance:none;width:100%;border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:52px minmax(0,1fr) minmax(120px,auto) 22px;align-items:center;gap:12px;padding:12px 14px;text-align:left;cursor:pointer;font:inherit}
.analysis-ranking-summary:hover{background:rgba(0,178,254,.035)}
.analysis-ranking-rank{font-size:18px;font-weight:900;color:var(--primary);text-align:center;font-variant-numeric:tabular-nums}
.analysis-ranking-person{display:flex;align-items:baseline;gap:9px;min-width:0}
.analysis-ranking-person strong{color:var(--primary);font-size:16px;white-space:nowrap}
.analysis-ranking-person span{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.analysis-ranking-value{text-align:right;white-space:nowrap}
.analysis-ranking-value strong{display:block;color:var(--primary);font-size:18px;line-height:1.1;font-variant-numeric:tabular-nums}
.analysis-ranking-value small{display:block;margin-top:2px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.analysis-ranking-chevron{color:var(--muted);font-size:18px;text-align:center;transition:transform .18s ease}
.analysis-ranking-entry.is-open .analysis-ranking-chevron{transform:rotate(180deg)}
.analysis-ranking-details{border-top:1px solid var(--line);padding:10px 14px 12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.analysis-ranking-details>div{min-width:0}
.analysis-ranking-details span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;margin-bottom:3px}
.analysis-ranking-details strong{display:block;color:var(--primary);font-size:13px;line-height:1.35}
.analysis-ranking-detail-link{display:flex;align-items:flex-end;justify-content:flex-end}
.analysis-ranking-detail-link .teacher-link{font-size:11px;font-weight:800}

@media (min-width:761px){
    .analysis-ranking-chevron{visibility:hidden}
    .analysis-ranking-summary{cursor:default}
}

@media (max-width:760px){
    .analysis-ranking-list{gap:6px}
    .analysis-ranking-entry{border-radius:10px;background:#fff}
    .analysis-ranking-summary{grid-template-columns:28px minmax(0,1fr) auto 15px;gap:7px;padding:9px 10px;min-height:54px}
    .analysis-ranking-summary:hover{background:transparent}
    .analysis-ranking-rank{font-size:14px;text-align:left}
    .analysis-ranking-person{display:flex;align-items:baseline;gap:5px;min-width:0}
    .analysis-ranking-person strong{display:block;flex:0 0 auto;font-size:14px;margin:0}
    .analysis-ranking-person span{display:block;min-width:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .analysis-ranking-value strong{font-size:17px}
    .analysis-ranking-value small{font-size:8px;max-width:86px;overflow:hidden;text-overflow:ellipsis}
    .analysis-ranking-chevron{font-size:15px}
    .analysis-ranking-details{display:none;grid-template-columns:1fr 1fr;gap:9px 12px;padding:9px 10px 11px;background:rgba(246,243,238,.45)}
    .analysis-ranking-entry.is-open .analysis-ranking-details{display:grid}
    .analysis-ranking-details strong{font-size:12px}
    .analysis-ranking-detail-link{grid-column:1/-1;justify-content:flex-start;padding-top:2px}
}

@media (max-width:390px){
    .analysis-ranking-summary{grid-template-columns:24px minmax(0,1fr) auto 13px;padding-left:8px;padding-right:8px}
    .analysis-ranking-person span{font-size:11px}
    .analysis-ranking-value small{display:none}
}

/* Update 1.4.3: Mini-Stundenplan als visuelle Erklärung der gewählten Kennzahl */
.analysis-ranking-summary{cursor:pointer}
.analysis-ranking-chevron{visibility:visible}
.analysis-mini-timetable-wrap{display:none;grid-column:1/-1;margin-top:3px;padding-top:10px;border-top:1px solid var(--line)}
.analysis-ranking-entry.is-open .analysis-mini-timetable-wrap{display:block}
.analysis-mini-timetable-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.analysis-mini-timetable-head>div:first-child strong,.analysis-mini-timetable-head>div:first-child span{display:block}
.analysis-mini-timetable-head>div:first-child strong{font-size:12px;color:var(--primary)}
.analysis-mini-timetable-head>div:first-child span{margin-top:2px;font-size:9px;line-height:1.3;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:600}
.analysis-mini-legend{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;font-size:8px;color:var(--muted);font-weight:700;white-space:nowrap}
.analysis-mini-legend span{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:8px;text-transform:none;letter-spacing:0;font-weight:700}
.analysis-mini-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;border:1px solid var(--line);margin:0}
.analysis-mini-legend i.occupied{background:var(--primary);border-color:var(--primary)}
.analysis-mini-legend i.paired{background:repeating-linear-gradient(135deg,rgba(0,178,254,.22) 0 3px,rgba(0,178,254,.06) 3px 6px);border-color:rgba(0,178,254,.55)}
.analysis-mini-legend i.highlighted{background:transparent;border:2px solid var(--danger)}
.analysis-mini-grid{display:grid;grid-template-columns:34px repeat(5,minmax(0,1fr));gap:2px;width:min(100%,440px);font-variant-numeric:tabular-nums}
.analysis-mini-corner,.analysis-mini-day,.analysis-mini-period{display:grid;place-items:center;min-width:0;color:var(--muted);font-size:8px;font-weight:800;line-height:1}
.analysis-mini-corner,.analysis-mini-day{height:16px;text-transform:uppercase;letter-spacing:.04em}
.analysis-mini-period{height:20px}
.analysis-mini-cell{height:20px;min-width:0;border:1px solid #E6E6EC;border-radius:3px;background:#F4F3F1;box-shadow:none}
.analysis-mini-cell.occupied{background:var(--primary);border-color:var(--primary)}
.analysis-mini-cell.paired{background:repeating-linear-gradient(135deg,rgba(0,178,254,.22) 0 5px,rgba(0,178,254,.06) 5px 10px);border-color:rgba(0,178,254,.55)}
.analysis-mini-cell.highlighted{border-color:var(--danger);box-shadow:inset 0 0 0 2px var(--danger)}
.analysis-mini-cell.occupied.highlighted{box-shadow:inset 0 0 0 2px var(--danger),inset 0 0 0 3px rgba(255,255,255,.35)}
.analysis-mini-period.lunch{height:15px;color:var(--muted)}
.analysis-mini-lunch{grid-column:2/7;height:15px;display:grid;place-items:center;border-radius:3px;background:rgba(1,13,110,.045);color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.02em}

@media (min-width:761px){
    .analysis-ranking-chevron{visibility:visible}
    .analysis-ranking-summary{cursor:pointer}
}

@media (max-width:760px){
    .analysis-mini-timetable-wrap{padding-top:8px;margin-top:1px}
    .analysis-mini-timetable-head{display:grid;grid-template-columns:1fr;gap:5px;margin-bottom:7px}
    .analysis-mini-legend{justify-content:flex-start;gap:7px}
    .analysis-mini-grid{grid-template-columns:30px repeat(5,minmax(0,1fr));width:100%;gap:2px}
    .analysis-mini-cell,.analysis-mini-period{height:18px}
    .analysis-mini-corner,.analysis-mini-day{height:15px}
    .analysis-mini-period.lunch,.analysis-mini-lunch{height:14px}
    .analysis-mini-lunch{font-size:7px}
}

/* Lehrergruppen / Einstellungen (ab v1.5.0) */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.analysis-filter-label{margin:14px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);font-weight:800}
.teacher-group-filter{margin-bottom:16px}
.teacher-group-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.teacher-group-create-card,.teacher-group-admin-card{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:14px;min-width:0}
.teacher-group-create-card{grid-column:span 1}
.teacher-group-create-form,.teacher-group-rename-form{display:grid;gap:8px;margin-top:10px}
.teacher-group-create-form input,.teacher-group-rename-form input,.teacher-group-assignment-row select{width:100%;border:1px solid #cfd8df;background:var(--surface);color:var(--text);border-radius:9px;padding:9px 10px;outline:none}
.teacher-group-create-form input:focus,.teacher-group-rename-form input:focus,.teacher-group-assignment-row select:focus{border-color:#00B2FE;box-shadow:0 0 0 3px rgba(0,178,254,.13)}
.teacher-group-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.teacher-group-admin-head strong{display:block;color:var(--primary);font-size:17px;margin-top:4px;overflow-wrap:anywhere}
.teacher-group-count{display:inline-flex;min-width:34px;height:34px;padding:0 8px;border-radius:10px;align-items:center;justify-content:center;background:rgba(0,178,254,.10);border:1px solid rgba(0,178,254,.25);color:var(--primary);font-weight:800}
.teacher-group-delete-form{margin-top:8px}.teacher-group-admin-card>small{display:block;margin-top:9px;color:var(--muted)}
.teacher-group-assignment-list{display:grid;gap:8px}
.teacher-group-assignment-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,280px);gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:10px 12px}
.teacher-group-assignment-row[hidden]{display:none}.teacher-group-assignment-row.is-excluded{opacity:.65}
.teacher-group-person{min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.teacher-group-person strong{color:var(--primary);font-size:14px}.teacher-group-person span{color:var(--text);font-size:13px}.teacher-group-person small{width:100%;color:var(--muted);font-size:10px}
.teacher-group-assignment-row label{margin:0}.teacher-group-save-bar{position:sticky;bottom:10px;display:flex;justify-content:flex-end;margin-top:14px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(246,243,238,.94);backdrop-filter:blur(8px);z-index:2}
.teacher-group-comparison-grid{margin-bottom:4px}

@media (max-width:900px){.teacher-group-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){
  .teacher-group-admin-grid{grid-template-columns:1fr}
  .teacher-group-assignment-row{grid-template-columns:1fr;gap:8px}
  .teacher-group-person{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:baseline}
  .teacher-group-person small{grid-column:1/-1}
  .teacher-group-save-bar{bottom:8px}.teacher-group-save-bar .button{width:100%}
}
.teacher-group-hero-chip{margin-top:8px}
