: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}.sidebar-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.sidebar-version{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#BFD8F2;font-size:10px;font-weight:800;letter-spacing:.04em;line-height:1;white-space:nowrap}
.nav-backdrop{display:none}
.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}.nav-backdrop{display:block;position:fixed;inset:0;z-index:19;border:0;padding:0;margin:0;background:rgba(1,13,110,.22);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.nav-open .nav-backdrop{opacity:1;visibility:visible;pointer-events:auto}.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-legend i.half-highlighted{background:rgba(212,0,75,.06);border:2px dashed 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-cell.highlighted.half-highlighted{border:2px dashed var(--danger);box-shadow:none}
.analysis-mini-cell.occupied.highlighted.half-highlighted{border:2px dashed #fff;box-shadow:inset 0 0 0 1px var(--danger)}
.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}

/* Update 1.6.0: Raumgruppen, Raumbelegung und fachbezogene Raumzuordnung */
.room-hero-panel .panel-head{margin-bottom:14px}
.room-group-picker{display:grid;grid-template-columns:minmax(180px,280px) minmax(0,1fr);gap:8px 16px;align-items:end;border-top:1px solid var(--line);padding-top:14px}
.room-group-picker>label{grid-column:1;font-size:10px;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);font-weight:800}
.room-group-picker select{grid-column:1;width:100%;border:1px solid #cfd8df;background:var(--surface);color:var(--text);border-radius:10px;padding:10px 12px;outline:none;font-weight:750}
.room-group-picker select:focus{border-color:#00B2FE;box-shadow:0 0 0 3px rgba(0,178,254,.13)}
.room-group-meta{grid-column:2;grid-row:1/3;display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;min-width:0;padding-bottom:4px;color:var(--muted);font-size:12px}
.room-group-meta strong{color:var(--primary)}
.room-summary-grid{margin-bottom:16px}

/* Update 1.6.1: Tagesvergleich mit allen Räumen nebeneinander */
/* Update 1.6.2: Fachfarben, Klassenlabels und 100%-Breite */
.room-day-comparison-panel .panel-head{align-items:flex-end}
.room-occupancy-legend{display:flex;gap:8px 12px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:10px;font-weight:700}
.room-occupancy-legend span{display:inline-flex;align-items:center;gap:5px}
.room-occupancy-legend i{width:12px;height:12px;border-radius:3px;border:1px solid var(--line);display:inline-block}
.room-occupancy-legend i.free{background:#F4F3F1}
.room-occupancy-legend i.sp{background:#010D6E;border-color:#010D6E}
.room-occupancy-legend i.bs{background:#D4004B;border-color:#D4004B}
.room-occupancy-legend i.tr{background:#00B2FE;border-color:#00B2FE}
.room-occupancy-legend i.paired{background:repeating-linear-gradient(135deg,#010D6E 0 4px,#fff 4px 6px,#010D6E 6px 10px);border-color:#010D6E}
.room-day-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.room-day-tab{appearance:none;border:1px solid var(--line);background:var(--surface-2);color:var(--primary);border-radius:999px;padding:7px 11px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.room-day-tab:hover{border-color:rgba(0,178,254,.55)}
.room-day-tab.is-active{background:var(--primary);border-color:var(--primary);color:#fff}
.room-day-panel[hidden]{display:none!important}
.room-day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}
.room-day-heading strong{color:var(--primary);font-size:14px}.room-day-heading span{color:var(--muted);font-size:9px}
.room-day-grid-wrap{width:100%;overflow:hidden;padding-bottom:2px}
.room-day-grid{display:grid;grid-template-columns:30px repeat(var(--room-count),minmax(0,1fr));gap:3px;width:100%;min-width:0;font-variant-numeric:tabular-nums}
.room-day-corner,.room-day-room,.room-day-period{display:grid;place-items:center;min-width:0;color:var(--muted);font-size:8px;font-weight:850;line-height:1}
.room-day-corner,.room-day-room{height:20px;text-transform:uppercase;letter-spacing:.025em}
.room-day-room{color:var(--primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-day-period,.room-day-cell{height:36px}
.room-day-period.lunch,.room-day-lunch{height:17px}
.room-day-lunch{display:grid;place-items:center;border-radius:4px;background:rgba(1,13,110,.045);color:var(--muted);font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.room-day-cell{display:grid;place-items:center;border:1px solid #E6E6EC;border-radius:5px;background:#F4F3F1;min-width:0;overflow:hidden;padding:2px}
.room-day-cell .room-class-label{display:block;max-width:100%;font-size:9px;font-weight:850;line-height:1.05;letter-spacing:0;text-align:center;overflow-wrap:anywhere;word-break:normal}
.room-day-cell.free{color:#667079;background:#F4F3F1}
.room-day-cell.occupied.type-sp,.room-mini-cell.occupied.type-sp{color:#fff;background-color:#010D6E;border-color:#010D6E}
.room-day-cell.occupied.type-bs,.room-mini-cell.occupied.type-bs{color:#fff;background-color:#D4004B;border-color:#D4004B}
.room-day-cell.occupied.type-tr,.room-mini-cell.occupied.type-tr{color:#010D6E;background-color:#00B2FE;border-color:#00B2FE}
.room-day-cell.occupied.type-other,.room-mini-cell.occupied.type-other{color:#fff;background-color:#010D6E;border-color:#010D6E}
.room-day-cell.occupied.paired,.room-mini-cell.occupied.paired{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.18) 0 4px,rgba(255,255,255,0) 4px 8px);box-shadow:inset 0 0 0 1px rgba(1,13,110,.22)}

.room-availability-grid{display:grid;grid-template-columns:36px repeat(5,minmax(0,1fr));gap:4px;width:100%;font-variant-numeric:tabular-nums}
.room-grid-corner,.room-grid-day,.room-grid-period{display:grid;place-items:center;color:var(--muted);font-size:10px;font-weight:850;min-width:0}
.room-grid-corner,.room-grid-day{height:24px;text-transform:uppercase;letter-spacing:.04em}
.room-grid-period{min-height:48px}
.room-grid-period.lunch{min-height:24px}
.room-grid-lunch{grid-column:2/7;min-height:24px;display:grid;place-items:center;border-radius:6px;background:rgba(1,13,110,.05);color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.03em}
.room-availability-cell{min-height:48px;border:1px solid #d7d9dd;border-radius:8px;padding:6px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0;overflow:hidden;background:#f3f4f5;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
.room-availability-cell strong{font-size:11px;color:#4f5664;line-height:1.1;white-space:nowrap}
.room-availability-cell span{font-size:9px;color:#4f5664;line-height:1.25;overflow-wrap:anywhere}
.room-availability-cell.availability-none{background:#F7CDD5;border-color:#D4004B}
.room-availability-cell.availability-none strong{color:#970035}
.room-availability-cell.availability-one{background:#F9DEC5;border-color:#E37A22}
.room-availability-cell.availability-one strong{color:#874006}
.room-availability-cell.availability-two{background:#FFF0B5;border-color:#D1A900}
.room-availability-cell.availability-two strong{color:#6D5900}
.room-availability-cell.availability-green{background:#D9F0DA;border-color:#58A263}
.room-availability-cell.availability-green strong{color:#1D652A}
.room-availability-cell.availability-dark-green{background:#3F8F55;border-color:#286F3D}
.room-availability-cell.availability-dark-green strong,.room-availability-cell.availability-dark-green span{color:#fff}

.room-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.room-card{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:12px;min-width:0}
.room-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px}
.room-card-head strong{color:var(--primary);font-size:16px}
.room-card-head span{color:var(--muted);font-size:10px}
.room-mini-grid{display:grid;grid-template-columns:30px repeat(5,minmax(0,1fr));gap:2px;width:100%}
.room-mini-corner,.room-mini-day,.room-mini-period{display:grid;place-items:center;min-width:0;color:var(--muted);font-size:8px;font-weight:850;line-height:1}
.room-mini-corner,.room-mini-day{height:15px;text-transform:uppercase;letter-spacing:.04em}
.room-mini-period,.room-mini-cell{height:26px}
.room-mini-cell{display:grid;place-items:center;border:1px solid #E6E6EC;border-radius:3px;background:#F4F3F1;min-width:0;overflow:hidden;padding:1px}
.room-mini-cell .room-class-label{display:block;max-width:100%;font-size:8px;font-weight:850;line-height:1.05;text-align:center;overflow-wrap:anywhere}
.room-mini-cell.free{color:#667079;background:#F4F3F1}
.room-mini-period.lunch,.room-mini-lunch{height:13px}
.room-mini-lunch{grid-column:2/7;display:grid;place-items:center;border-radius:3px;background:rgba(1,13,110,.045);color:var(--muted);font-size:7px;font-weight:750}

.room-lesson-status-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.room-status-pill{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font:inherit;font-size:11px;font-weight:700;appearance:none;cursor:pointer;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease,transform .12s ease}
.room-status-pill strong{font-size:13px}.room-status-pill.missing{background:rgba(212,0,75,.055);border-color:rgba(212,0,75,.18);color:#8a1239}.room-status-pill.assigned{background:rgba(0,178,254,.08);border-color:rgba(0,178,254,.24);color:var(--primary)}
.room-status-pill:hover{transform:translateY(-1px)}.room-status-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.room-status-pill.missing.is-active{background:rgba(212,0,75,.14);border-color:var(--danger);box-shadow:0 0 0 2px rgba(212,0,75,.08)}.room-status-pill.assigned.is-active{background:rgba(0,178,254,.18);border-color:var(--accent);box-shadow:0 0 0 2px rgba(0,178,254,.09)}
.room-lesson-list{display:grid;gap:8px}
.room-lesson-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;min-width:0}
.room-lesson-row[hidden]{display:none}.room-lesson-row.missing-room{border-left:4px solid var(--danger)}.room-lesson-row.has-room{border-left:4px solid var(--accent)}
.room-lesson-main{min-width:0}.room-lesson-title{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;min-width:0}.room-lesson-title>strong{color:var(--primary);font-size:14px}.room-lesson-title>span:not(.teacher-code){color:var(--muted);font-size:12px}.room-lesson-classes{margin-top:7px;color:var(--primary);font-size:16px;font-weight:850;line-height:1.2;letter-spacing:.005em;overflow-wrap:anywhere}.room-lesson-meta{display:flex;gap:5px 12px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:10px}
.room-lesson-assignment{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;min-width:0}.room-lesson-assignment strong{color:var(--primary);font-size:12px;overflow-wrap:anywhere}.room-lesson-assignment small{color:var(--muted);font-size:9px}
.room-assignment-state{display:inline-flex;border-radius:999px;padding:3px 7px;font-size:8px;text-transform:uppercase;letter-spacing:.045em;font-weight:850}.room-assignment-state.assigned{background:rgba(0,178,254,.10);color:var(--primary)}.room-assignment-state.missing{background:rgba(212,0,75,.08);color:#8a1239}

.room-group-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.room-group-admin-card{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:14px;min-width:0}.room-group-admin-card.create{background:rgba(0,178,254,.035)}
.room-group-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.room-group-admin-head strong{display:block;color:var(--primary);font-size:17px;margin-top:4px;overflow-wrap:anywhere}
.room-group-admin-form{display:grid;gap:8px;margin-top:10px}.room-group-admin-form label{display:grid;gap:4px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:800}.room-group-admin-form input,.room-group-admin-form textarea{width:100%;border:1px solid #cfd8df;background:var(--surface);color:var(--text);border-radius:9px;padding:9px 10px;outline:none;font:inherit;resize:vertical}.room-group-admin-form input:focus,.room-group-admin-form textarea:focus{border-color:#00B2FE;box-shadow:0 0 0 3px rgba(0,178,254,.13)}.room-group-admin-card>small{display:block;margin-top:9px;color:var(--muted)}

@media (max-width:1000px){.room-card-grid,.room-group-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){
  .room-day-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.room-day-tab{padding:6px 2px;font-size:8px;white-space:nowrap}.room-occupancy-legend{font-size:8px;gap:6px 9px}.room-day-grid{grid-template-columns:27px repeat(var(--room-count),minmax(0,1fr));min-width:0;gap:2px}.room-day-period,.room-day-cell{height:34px}.room-day-cell .room-class-label{font-size:7.5px}.room-day-corner,.room-day-room{font-size:7px}
  .room-group-picker{grid-template-columns:1fr}.room-group-picker>label,.room-group-picker select,.room-group-meta{grid-column:1;grid-row:auto}.room-group-meta{padding-top:4px;display:grid;gap:4px;font-size:11px}
  .room-availability-grid{grid-template-columns:28px repeat(5,minmax(0,1fr));gap:2px}
  .room-grid-corner,.room-grid-day{height:20px;font-size:8px}.room-grid-period{min-height:42px;font-size:8px}.room-availability-cell{min-height:42px;border-radius:5px;padding:4px 3px;gap:2px}.room-availability-cell strong{font-size:9px}.room-availability-cell span{font-size:7px;line-height:1.2}
  .room-card-grid,.room-group-admin-grid{grid-template-columns:1fr}
  .room-mini-grid{grid-template-columns:28px repeat(5,minmax(0,1fr))}
  .room-lesson-row{grid-template-columns:1fr;gap:8px}.room-lesson-classes{font-size:17px;line-height:1.22}.room-lesson-assignment{align-items:flex-start;text-align:left}
}
@media (max-width:390px){.room-availability-cell span{font-size:6.5px}.room-availability-cell strong{font-size:8px}.room-grid-period{min-height:40px}.room-availability-cell{min-height:40px}}

/* Update 1.6.4: manuelle externe Raumsperren */
.room-occupancy-legend i.blocked{background:#C62828;border-color:#C62828}
.room-block-admin{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:-2px 0 12px;padding:9px 11px;border:1px solid rgba(198,40,40,.18);border-radius:11px;background:rgba(198,40,40,.035);color:var(--muted);font-size:10px}
.room-block-admin>span{line-height:1.25}.room-block-admin strong{color:#A61F1F}.room-block-feedback{min-height:1em;color:var(--primary);font-weight:750}
.room-block-mode-button.is-active{background:#C62828!important;border-color:#C62828!important;color:#fff!important}
.room-day-cell.blocked,.room-mini-cell.blocked{color:#fff;background:#C62828;border-color:#C62828;box-shadow:inset 0 0 0 1px rgba(116,15,15,.18)}
.room-day-cell.blocked.has-occupancy,.room-mini-cell.blocked.has-occupancy{background-image:repeating-linear-gradient(135deg,rgba(0,0,0,.12) 0 4px,rgba(255,255,255,.06) 4px 8px)}
.room-block-editing [data-room-block-slot]{cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,filter .08s ease}
.room-block-editing [data-room-block-slot]:hover{box-shadow:0 0 0 2px rgba(198,40,40,.42);filter:saturate(1.08)}
.room-block-editing [data-room-block-slot]:active{transform:scale(.97)}
[data-room-block-slot].is-updating{opacity:.58;pointer-events:none}

@media (max-width:700px){
  .room-block-admin{display:grid;grid-template-columns:1fr;padding:8px 9px;gap:6px;font-size:9px}.room-block-admin .button{width:100%}
}

/* v1.6.10 – schnelle Raumsuche in der Raumgruppenverwaltung */
.room-picker{display:grid;gap:6px}.room-picker>small{display:block;color:var(--muted);font-size:10px;line-height:1.35;text-transform:none;letter-spacing:0;font-weight:600}
.room-picker-results{display:flex;flex-wrap:wrap;gap:6px;max-height:170px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.room-picker-results[hidden]{display:none}
.room-picker-option{appearance:none;border:1px solid rgba(1,13,110,.18);border-radius:999px;background:var(--surface-2);color:var(--primary);padding:7px 10px;font:inherit;font-size:11px;font-weight:800;line-height:1;cursor:pointer}.room-picker-option:hover,.room-picker-option:focus-visible{border-color:var(--accent);outline:none}.room-picker-option.is-selected{background:rgba(0,178,254,.14);border-color:var(--accent)}
.room-picker-empty{display:block;width:100%;padding:5px 2px;color:var(--muted);font-size:11px}
@media (max-width:560px){.room-picker-option{padding:9px 11px;font-size:12px}.room-picker-results{max-height:210px}}

/* v1.6.11 – externe Sperren klar von BS-Pink unterscheiden */
.room-occupancy-legend i.blocked{
  background:rgba(198,40,40,.16);
  border:2px solid #C62828;
}
.room-day-cell.blocked,.room-mini-cell.blocked{
  color:#9E1B1B;
  background:rgba(198,40,40,.14);
  border:2px solid #C62828;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.48);
  font-weight:850;
}
.room-day-cell.blocked.has-occupancy,.room-mini-cell.blocked.has-occupancy{
  background-color:rgba(198,40,40,.18);
  background-image:repeating-linear-gradient(135deg,rgba(198,40,40,.13) 0 4px,rgba(255,255,255,.24) 4px 8px);
}


/* v1.6.12 – Hamburger-Menü auf mobilen Ansichten zuverlässig sichtbar */
.menu-toggle-icon{
  width:24px;
  height:18px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.menu-toggle-icon > span{
  display:block;
  width:100%;
  height:3px;
  border-radius:999px;
  background:currentColor;
}
@media (max-width:900px){
  .menu-toggle{
    display:inline-flex !important;
    flex:0 0 44px;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    align-items:center;
    justify-content:center;
    margin:0 10px 0 -6px;
    padding:0;
    border:0;
    border-radius:10px;
    background:transparent;
    color:#fff;
    cursor:pointer;
  }
  .menu-toggle:focus-visible{
    outline:2px solid #00B2FE;
    outline-offset:2px;
  }
}

/* v1.6.12 – Sticky Kopfzeile und dauerhaft erreichbare mobile Navigation */
.topbar{
  position:sticky;
  top:0;
  z-index:15;
  background:#010D6E;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.topbar-title{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  line-height:1.08;
}
.topbar-title>strong{
  color:#fff;
  font-size:22px;
  font-weight:850;
  letter-spacing:-.025em;
}
.topbar-title>span{
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:700;
}
@media (max-width:900px){
  .topbar{
    height:64px;
    margin:0 -16px 14px;
    padding:0 16px;
    box-shadow:0 5px 14px rgba(1,13,110,.18);
  }
  .topbar-title>strong{font-size:20px}
  .topbar-title>span{font-size:11px}
}
@media (max-width:390px){
  .topbar-title>strong{font-size:18px}
}
@media (prefers-color-scheme:dark){
  .topbar{
    background:#010D6E;
    border-bottom-color:rgba(255,255,255,.14);
  }
  .topbar-title>strong{color:#fff}
  .topbar-title>span{color:rgba(255,255,255,.78)}
  .menu-toggle{color:#fff}
}



/* Update 1.6.15: Lehreransicht – Tabellen auf Smartphones ohne horizontales Überlaufen. */
@media (max-width:560px){
    /* Tagesstruktur bleibt eine echte Tabelle, wird aber auf die verfügbare Breite verdichtet. */
    .teacher-day-structure-table{
        width:100%;
        table-layout:fixed;
        font-size:11px;
    }
    .teacher-day-structure-table th,
    .teacher-day-structure-table td{
        padding:8px 2px;
        white-space:normal;
        text-align:center;
        line-height:1.15;
        overflow-wrap:anywhere;
    }
    .teacher-day-structure-table th:first-child,
    .teacher-day-structure-table td:first-child{
        width:28%;
        text-align:left;
        padding-left:4px;
    }
    .teacher-day-structure-table th:not(:first-child),
    .teacher-day-structure-table td:not(:first-child){
        width:12%;
    }
    .teacher-day-structure-table thead th{
        font-size:9px;
        letter-spacing:.02em;
    }

    /* Breite Vergleichstabellen werden mobil als kompakte Kennzahlenkarten dargestellt. */
    .teacher-comparison-table,
    .teacher-comparison-table tbody{
        display:block;
        width:100%;
    }
    .teacher-comparison-table thead{display:none}
    .teacher-comparison-table tbody{display:grid;gap:10px}
    .teacher-comparison-table tr{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        border:1px solid var(--line);
        border-radius:12px;
        background:var(--surface-2);
        padding:8px 10px;
        min-width:0;
    }
    .teacher-comparison-table td{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:8px;
        min-width:0;
        padding:7px 2px;
        border-bottom:1px solid var(--line);
        white-space:normal;
        text-align:right;
        font-size:12px;
    }
    .teacher-comparison-table td::before{
        content:attr(data-label);
        flex:0 1 auto;
        color:var(--muted);
        font-size:9px;
        font-weight:800;
        letter-spacing:.03em;
        text-transform:uppercase;
        text-align:left;
    }
    .teacher-comparison-table .teacher-comparison-metric{
        grid-column:1/-1;
        display:block;
        text-align:left;
        padding:6px 2px 9px;
        color:var(--primary);
        border-bottom:1px solid var(--line);
    }
    .teacher-comparison-table .teacher-comparison-metric::before{display:none}
    .teacher-comparison-table .teacher-comparison-metric strong{font-size:13px}
    .teacher-comparison-table td:last-child:nth-child(6){border-bottom:0}

    /* GPU002-Rohzuordnungen ebenfalls ohne abgeschnittene Spalten. */
    .teacher-lesson-raw-table,
    .teacher-lesson-raw-table tbody{
        display:block;
        width:100%;
    }
    .teacher-lesson-raw-table thead{display:none}
    .teacher-lesson-raw-table tbody{display:grid;gap:9px}
    .teacher-lesson-raw-table tr{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:0 10px;
        border:1px solid var(--line);
        border-radius:11px;
        background:var(--surface-2);
        padding:7px 10px;
    }
    .teacher-lesson-raw-table td{
        display:grid;
        gap:2px;
        padding:6px 1px;
        border-bottom:0;
        white-space:normal;
        overflow-wrap:anywhere;
        font-size:12px;
    }
    .teacher-lesson-raw-table td::before{
        content:attr(data-label);
        color:var(--muted);
        font-size:9px;
        font-weight:800;
        text-transform:uppercase;
        letter-spacing:.03em;
    }
}

/* Einstellungen: kompakte, standardmäßig geschlossene Akkordeons */
.settings-accordion{padding:0;overflow:hidden}
.settings-accordion-summary{display:grid;grid-template-columns:minmax(0,1fr) auto 22px;align-items:center;gap:14px;padding:20px 22px;cursor:pointer;list-style:none;user-select:none;-webkit-tap-highlight-color:transparent}
.settings-accordion-summary::-webkit-details-marker{display:none}
.settings-accordion-summary::marker{display:none;content:""}
.settings-accordion-summary:hover{background:var(--surface-2)}
.settings-accordion-summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.settings-accordion-title{min-width:0}
.settings-accordion-title .eyebrow{display:block;margin-bottom:3px}
.settings-accordion-title h2{margin:0 0 3px;font-size:20px}
.settings-accordion-title p{margin:0;font-size:14px;line-height:1.4}
.settings-accordion-count{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 11px;border:1px solid rgba(0,178,254,.28);border-radius:999px;background:rgba(0,178,254,.09);color:var(--primary);font-size:13px;font-weight:800;white-space:nowrap}
.settings-accordion-chevron{width:12px;height:12px;border-right:3px solid var(--primary);border-bottom:3px solid var(--primary);transform:rotate(45deg) translate(-2px,-2px);transition:transform .16s ease}
.settings-accordion[open] .settings-accordion-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.settings-accordion[open] .settings-accordion-summary{border-bottom:1px solid var(--line)}
.settings-accordion-content{padding:20px 22px 22px}
.settings-accordion-intro{margin:0 0 18px!important}
.settings-accordion-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.settings-accordion-toolbar>p{max-width:760px}
.settings-accordion-toolbar.assignment-toolbar{align-items:flex-end}
.settings-accordion-toolbar .standard-search-form{margin-left:auto}

@media (max-width:700px){
  .settings-accordion-summary{grid-template-columns:minmax(0,1fr) auto 18px;gap:9px;padding:17px 16px}
  .settings-accordion-title .eyebrow{font-size:10px}
  .settings-accordion-title h2{font-size:18px}
  .settings-accordion-title p{font-size:12px;line-height:1.35}
  .settings-accordion-count{min-height:30px;padding:5px 8px;font-size:11px}
  .settings-accordion-chevron{width:10px;height:10px;border-width:0 3px 3px 0}
  .settings-accordion-content{padding:16px}
  .settings-accordion-toolbar,.settings-accordion-toolbar.assignment-toolbar{flex-direction:column;align-items:stretch}
  .settings-accordion-toolbar .standard-search-form{width:100%;margin-left:0}
}

/* Version 1.8.0 – eigener Bereich "Stundenpläne" mit aufklappbaren Vollplänen */
.timetable-browser-head{align-items:flex-end}
.timetable-teacher-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.timetable-teacher-card{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}
.timetable-teacher-card.is-open{grid-column:1/-1;border-color:rgba(0,178,254,.58);box-shadow:0 0 0 2px rgba(0,178,254,.09)}
.timetable-teacher-toggle{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto 20px;gap:14px;align-items:center;padding:14px 16px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.timetable-teacher-toggle:hover{background:rgba(0,178,254,.035)}
.timetable-teacher-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.timetable-teacher-person{display:flex;align-items:center;gap:10px;min-width:0}
.timetable-teacher-person .teacher-code{flex:0 0 auto}
.timetable-teacher-name{min-width:0}
.timetable-teacher-name strong,.timetable-teacher-name small{display:block}
.timetable-teacher-name strong{font-size:15px;overflow-wrap:anywhere}
.timetable-teacher-name small{margin-top:3px;color:var(--muted);font-size:10px;font-weight:700}
.timetable-teacher-summary{display:grid;grid-template-columns:repeat(4,minmax(54px,1fr));gap:6px}
.timetable-teacher-summary>span{min-width:0;text-align:center;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:#fff}
.timetable-teacher-summary b,.timetable-teacher-summary small{display:block}
.timetable-teacher-summary b{font-size:15px;color:var(--primary);line-height:1.05}
.timetable-teacher-summary small{margin-top:3px;font-size:8px;text-transform:uppercase;letter-spacing:.035em;color:var(--muted);font-weight:800;white-space:nowrap}
.timetable-teacher-chevron{font-size:18px;font-weight:900;color:var(--muted);transition:transform .15s ease;text-align:center}
.timetable-teacher-card.is-open .timetable-teacher-chevron{transform:rotate(180deg)}
.timetable-teacher-detail{padding:0 16px 16px;border-top:1px solid var(--line);background:#fff}
.timetable-detail-loading{padding:18px 0;color:var(--muted);font-size:12px}
.timetable-inline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 0 10px}
.timetable-inline-head strong,.timetable-inline-head span{display:block}
.timetable-inline-head strong{font-size:15px;color:var(--primary)}
.timetable-inline-head span{font-size:10px;color:var(--muted);margin-top:3px}
.timetable-inline-meta{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}
.timetable-inline-meta span{padding:5px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:9px;color:var(--muted);font-weight:700}
.timetable-inline-meta b{color:var(--primary)}
.timetable-inline-wrap{overflow:visible}
.timetable-inline-full{min-width:0;table-layout:fixed;font-size:10px}
.timetable-inline-full th,.timetable-inline-full td{padding:5px;height:54px;white-space:normal;overflow-wrap:anywhere;line-height:1.22}
.timetable-inline-full thead th:first-child,.timetable-inline-full tbody th{width:46px}
.timetable-inline-full td strong{font-size:10px;line-height:1.15}
.timetable-inline-full td span{font-size:9px;line-height:1.15;margin-top:3px}
.timetable-inline-full td small{font-size:8px;line-height:1.15;margin-top:3px}
.timetable-pause-label{display:block;font-size:7px;color:var(--muted);margin-top:2px}

@media (max-width:900px){
    .timetable-teacher-grid{grid-template-columns:1fr}
    .timetable-teacher-card.is-open{grid-column:auto}
}
@media (max-width:560px){
    .timetable-browser-panel{padding:14px}
    .timetable-teacher-grid{gap:9px}
    .timetable-teacher-toggle{grid-template-columns:minmax(0,1fr) 18px;gap:8px;padding:11px 10px}
    .timetable-teacher-summary{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(4,1fr);width:100%;gap:5px}
    .timetable-teacher-chevron{grid-column:2;grid-row:1}
    .timetable-teacher-summary>span{padding:6px 3px}
    .timetable-teacher-summary b{font-size:14px}
    .timetable-teacher-summary small{font-size:7px}
    .timetable-teacher-name strong{font-size:14px}
    .timetable-teacher-detail{padding:0 8px 10px}
    .timetable-inline-head{display:grid;grid-template-columns:1fr;gap:8px;padding:10px 2px 8px}
    .timetable-inline-head .button{justify-self:start}
    .timetable-inline-wrap{width:100%;max-width:100%;overflow:hidden}
    .timetable-inline-full{width:100%;font-size:8px}
    .timetable-inline-full thead th:first-child,.timetable-inline-full tbody th{width:29px}
    .timetable-inline-full th,.timetable-inline-full td{padding:3px 2px;height:48px}
    .timetable-inline-full thead th{font-size:8px;padding-left:1px;padding-right:1px}
    .timetable-inline-full td strong{font-size:8px}
    .timetable-inline-full td span{font-size:7px;margin-top:2px}
    .timetable-inline-full td small{font-size:6.5px;margin-top:2px}
    .timetable-inline-full tbody th{font-size:8px;padding-left:1px;padding-right:1px}
    .timetable-pause-label{font-size:6px}
}

/* Lehrkräfteansicht: sekundäre Detailbereiche standardmäßig als Akkordeon (v1.8.1) */
.teacher-page-accordion{padding:0;overflow:hidden}
.teacher-page-accordion-summary{display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:14px;padding:20px 22px;cursor:pointer;list-style:none;user-select:none;-webkit-tap-highlight-color:transparent}
.teacher-page-accordion-summary::-webkit-details-marker{display:none}
.teacher-page-accordion-summary::marker{display:none;content:""}
.teacher-page-accordion-summary:hover{background:var(--surface-2)}
.teacher-page-accordion-summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.teacher-page-accordion-title{display:block;min-width:0}
.teacher-page-accordion-title .eyebrow{display:block;margin-bottom:4px}
.teacher-page-accordion-title strong{display:block;color:var(--primary);font-size:20px;line-height:1.25;overflow-wrap:anywhere}
.teacher-page-accordion-title small{display:block;color:var(--muted);font-size:13px;line-height:1.35;margin-top:5px;font-weight:500}
.teacher-page-accordion-chevron{width:12px;height:12px;border-right:3px solid var(--primary);border-bottom:3px solid var(--primary);transform:rotate(45deg) translate(-2px,-2px);transition:transform .16s ease}
.teacher-page-accordion[open] .teacher-page-accordion-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.teacher-page-accordion[open] .teacher-page-accordion-summary{border-bottom:1px solid var(--line)}
.teacher-page-accordion-content{padding:20px 22px 22px}
.teacher-page-accordion-intro{margin:0 0 18px;color:var(--muted)}
@media (max-width:700px){
  .teacher-page-accordion-summary{padding:17px 16px;gap:10px}
  .teacher-page-accordion-title strong{font-size:18px}
  .teacher-page-accordion-title small{font-size:11px}
  .teacher-page-accordion-chevron{width:10px;height:10px}
  .teacher-page-accordion-content{padding:16px}
}

/* Version 1.9.0 – Desktop nutzt die volle Fensterbreite, Navigation als Overlay-Hamburger */
:root{--page-pad:clamp(16px,2vw,36px)}
.app-shell{width:100%;min-width:0}
.main{
    width:100%;
    max-width:none;
    min-width:0;
    margin-left:0;
    padding:0 var(--page-pad) 40px;
}
.sidebar{
    transform:translateX(-102%);
    transition:transform .2s ease;
    box-shadow:12px 0 34px rgba(1,13,110,.22);
    width:min(290px,calc(100vw - 36px));
}
.nav-open .sidebar{transform:translateX(0)}
.nav-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:19;
    border:0;
    padding:0;
    margin:0;
    background:rgba(1,13,110,.28);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease;
}
.nav-open .nav-backdrop{opacity:1;visibility:visible;pointer-events:auto}
.menu-toggle{
    display:inline-flex!important;
    flex:0 0 44px;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    align-items:center;
    justify-content:center;
    margin:0 12px 0 -6px;
    padding:0;
    border:0;
    border-radius:10px;
    background:transparent;
    color:#fff;
    cursor:pointer;
}
.menu-toggle:focus-visible{outline:2px solid #00B2FE;outline-offset:2px}
.topbar{
    height:72px;
    margin-left:calc(0px - var(--page-pad));
    margin-right:calc(0px - var(--page-pad));
    margin-bottom:20px;
    padding-left:var(--page-pad);
    padding-right:var(--page-pad);
    box-shadow:0 5px 14px rgba(1,13,110,.14);
}

/* Desktop: Kachel- und Kennzahlenraster verwenden automatisch so viele Spalten wie sinnvoll. */
@media (min-width:901px){
    .stats-grid,.stats-grid-3,.stats-grid-4,.stats-grid-6{
        grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    }
    .definition-grid{
        grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    }
    .teacher-master-grid{
        grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
        width:100%;
    }
    .lesson-teacher-grid{
        grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
    }
    .subject-card-grid{
        grid-template-columns:repeat(auto-fit,minmax(430px,1fr));
    }
    .comparison-summary-grid,
    .analysis-group-grid{
        grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    }
    .teacher-group-admin-grid{
        grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    }
    .room-card-grid,
    .room-group-admin-grid{
        grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    }
}

/* Version 1.9.0 – Stundenplan-Kacheln: responsives Desktop-Raster mit sichtbarem Mini-Stundenplan */
.timetable-teacher-grid{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr));
    gap:16px;
}
.timetable-teacher-toggle{
    grid-template-columns:minmax(0,1fr) 24px;
    grid-template-areas:
        "person chevron"
        "stats stats"
        "mini mini";
    gap:12px;
    align-items:center;
    padding:16px;
}
.timetable-teacher-person{grid-area:person}
.timetable-teacher-summary{grid-area:stats;width:100%}
.timetable-teacher-chevron{grid-area:chevron}
.timetable-card-mini{
    grid-area:mini;
    display:block;
    width:100%;
    min-width:0;
    padding-top:10px;
    border-top:1px solid var(--line);
}
.timetable-card-mini-grid{
    display:grid;
    grid-template-columns:30px repeat(5,minmax(0,1fr));
    gap:2px;
    width:100%;
    min-width:0;
    font-variant-numeric:tabular-nums;
}
.timetable-card-mini-corner,
.timetable-card-mini-day,
.timetable-card-mini-period{
    display:grid;
    place-items:center;
    min-width:0;
    color:var(--muted);
    font-size:8px;
    font-weight:800;
    line-height:1;
}
.timetable-card-mini-corner,.timetable-card-mini-day{
    height:14px;
    text-transform:uppercase;
    letter-spacing:.035em;
}
.timetable-card-mini-period{height:15px}
.timetable-card-mini-cell{
    display:block;
    height:15px;
    min-width:0;
    border:1px solid #E6E6EC;
    border-radius:3px;
    background:#F4F3F1;
}
.timetable-card-mini-cell.occupied{background:#010D6E;border-color:#010D6E}
.timetable-card-mini-cell.paired{
    background:repeating-linear-gradient(135deg,rgba(0,178,254,.28) 0 4px,rgba(0,178,254,.07) 4px 8px);
    border-color:rgba(0,178,254,.62);
}
.timetable-card-mini-period.lunch{height:12px}
.timetable-card-mini-lunch{
    grid-column:2/7;
    display:grid;
    place-items:center;
    height:12px;
    min-width:0;
    border-radius:3px;
    background:rgba(1,13,110,.05);
    color:var(--muted);
    font-size:7px;
    font-weight:750;
}
.timetable-teacher-name strong{
    overflow-wrap:normal;
    word-break:normal;
    hyphens:auto;
}

/* Auf Smartphones bleibt die Übersicht bewusst kompakt; der Mini-Plan erscheint erst nach dem Aufklappen als Vollplan. */
@media (max-width:900px){
    :root{--page-pad:16px}
    .main{padding:0 var(--page-pad) 30px}
    .topbar{
        margin-left:calc(0px - var(--page-pad));
        margin-right:calc(0px - var(--page-pad));
        margin-bottom:14px;
        padding-left:var(--page-pad);
        padding-right:var(--page-pad);
    }
    .timetable-teacher-grid{grid-template-columns:1fr}
    .timetable-teacher-card.is-open{grid-column:auto}
    .timetable-card-mini{display:none}
}
@media (max-width:560px){
    .timetable-teacher-toggle{
        grid-template-columns:minmax(0,1fr) 18px;
        grid-template-areas:
            "person chevron"
            "stats stats";
        gap:8px;
        padding:11px 10px;
    }
}

/* Desktop: Navigation beginnt unter der Sticky-Kopfzeile, damit derselbe Hamburger auch zum Schließen erreichbar bleibt. */
@media (min-width:901px){
    .sidebar{inset:72px auto 0 0}
    .nav-backdrop{top:72px}
}

/* Version 1.9.2 – Auswertungen als vollbreite, responsive Kachelansicht */
#analysis-content{
    width:100%;
    max-width:none;
    min-width:0;
}
#analysis-content > .panel,
.analysis-fullwidth-panel{
    width:100%;
    max-width:none;
}

/* Kennzahl-Auswahl auf Desktop bewusst flach und über die ganze Breite verteilen. */
@media (min-width:901px){
    .analysis-page-intro{
        margin-bottom:14px;
        padding-top:18px;
        padding-bottom:18px;
    }
    .analysis-page-intro .panel-head{
        display:grid;
        grid-template-columns:minmax(0,1fr) minmax(300px,390px);
        align-items:start;
        gap:20px;
        margin-bottom:12px;
    }
    .analysis-page-intro .standard-search-form,
    .analysis-page-intro .standard-live-search{
        width:100%;
        min-width:0;
        max-width:none;
    }
    .analysis-rule-note{
        margin-bottom:0;
    }
    .analysis-metric-panel{
        padding-top:16px;
        padding-bottom:16px;
    }
    .analysis-metric-panel-head{
        margin-bottom:10px;
    }
    .analysis-metric-panel-head p{
        font-size:12px;
    }
    .analysis-metric-catalog{
        display:grid;
        grid-template-columns:repeat(auto-fit,minmax(205px,1fr));
        gap:10px 16px;
        align-items:start;
        width:100%;
    }
    .analysis-metric-category{
        min-width:0;
        padding:0;
    }
    .analysis-metric-category h3{
        margin:0 0 5px;
        font-size:9px;
        line-height:1.2;
    }
    .analysis-metric-links{
        display:flex;
        flex-wrap:wrap;
        align-items:center;
        gap:5px;
    }
    .analysis-metric-link{
        min-height:29px;
        padding:5px 8px;
        border-radius:8px;
        font-size:10px;
        line-height:1.15;
    }

    .analysis-results-panel{
        padding-top:18px;
    }
    .analysis-selected-head{
        gap:28px;
        margin-bottom:10px;
    }
    .analysis-selected-head p{
        max-width:none;
        font-size:12px;
    }
    .analysis-order-switch a{
        padding:7px 10px;
        font-size:10px;
    }
    .analysis-filter-label{
        display:inline-block;
        margin:8px 12px 6px 0;
        vertical-align:middle;
    }
    .analysis-hours-filter,
    .teacher-group-filter{
        display:inline-flex;
        vertical-align:middle;
        margin:4px 18px 7px 0;
        gap:5px;
    }
    .hours-group-chip{
        padding:6px 9px;
        font-size:10px;
    }
    .analysis-summary-grid{
        margin-top:8px;
        margin-bottom:12px;
    }
    .comparison-summary-grid > div{
        padding:9px 10px;
    }
    .comparison-summary-grid strong{
        font-size:15px;
    }
    .analysis-subheading{
        margin:14px 0 8px;
    }
    .analysis-group-grid{
        grid-template-columns:repeat(auto-fit,minmax(175px,1fr));
        gap:8px;
    }
    .analysis-group-card{
        padding:9px 10px;
    }
    .analysis-group-card strong{
        margin:4px 0 2px;
        font-size:17px;
    }
    .analysis-group-card small{
        font-size:9px;
        line-height:1.3;
    }

    /* Vollständige Rangliste: dieselbe Grundidee wie bei „Stundenpläne“. */
    .analysis-teacher-card-grid{
        display:grid;
        grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr));
        align-items:start;
        gap:16px;
        width:100%;
    }
    .analysis-teacher-card{
        display:flex;
        flex-direction:column;
        min-width:0;
        height:100%;
        border-radius:14px;
        background:var(--surface-2);
    }
    .analysis-teacher-card .analysis-ranking-summary{
        grid-template-columns:38px minmax(0,1fr) auto;
        grid-template-areas:"rank person value";
        gap:10px;
        min-height:66px;
        padding:12px 14px 9px;
        cursor:default;
    }
    .analysis-teacher-card .analysis-ranking-rank{
        grid-area:rank;
        text-align:left;
        font-size:17px;
    }
    .analysis-teacher-card .analysis-ranking-person{
        grid-area:person;
        min-width:0;
        display:block;
    }
    .analysis-teacher-card .analysis-ranking-person strong,
    .analysis-teacher-card .analysis-ranking-person span{
        display:block;
        min-width:0;
    }
    .analysis-teacher-card .analysis-ranking-person strong{
        font-size:15px;
        margin-bottom:2px;
    }
    .analysis-teacher-card .analysis-ranking-person span{
        font-size:12px;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .analysis-teacher-card .analysis-ranking-value{
        grid-area:value;
        min-width:92px;
    }
    .analysis-teacher-card .analysis-ranking-value strong{
        font-size:22px;
    }
    .analysis-teacher-card .analysis-ranking-value small{
        max-width:120px;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .analysis-teacher-card .analysis-ranking-chevron{
        display:none;
    }
    .analysis-teacher-card .analysis-ranking-details{
        flex:1 1 auto;
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px 12px;
        padding:9px 14px 13px;
        background:transparent;
    }
    .analysis-teacher-card .analysis-ranking-details > div:not(.analysis-mini-timetable-wrap):not(.analysis-ranking-detail-link){
        padding:7px 8px;
        border:1px solid var(--line);
        border-radius:8px;
        background:#fff;
    }
    .analysis-teacher-card .analysis-ranking-details > div span{
        font-size:8px;
    }
    .analysis-teacher-card .analysis-ranking-details > div strong{
        font-size:12px;
    }
    .analysis-teacher-card .analysis-mini-timetable-wrap{
        display:block;
        grid-column:1/-1;
        margin-top:2px;
        padding-top:9px;
    }
    .analysis-teacher-card .analysis-mini-timetable-head{
        gap:8px;
        margin-bottom:6px;
    }
    .analysis-teacher-card .analysis-mini-timetable-head > div:first-child strong{
        font-size:11px;
    }
    .analysis-teacher-card .analysis-mini-timetable-head > div:first-child span{
        font-size:8px;
    }
    .analysis-teacher-card .analysis-mini-legend{
        gap:6px;
        font-size:7px;
    }
    .analysis-teacher-card .analysis-mini-legend span{
        gap:3px;
        font-size:7px;
    }
    .analysis-teacher-card .analysis-mini-grid{
        width:100%;
        max-width:none;
        grid-template-columns:30px repeat(5,minmax(0,1fr));
        gap:2px;
    }
    .analysis-teacher-card .analysis-mini-cell,
    .analysis-teacher-card .analysis-mini-period{
        height:16px;
    }
    .analysis-teacher-card .analysis-mini-corner,
    .analysis-teacher-card .analysis-mini-day{
        height:14px;
    }
    .analysis-teacher-card .analysis-mini-period.lunch,
    .analysis-teacher-card .analysis-mini-lunch{
        height:12px;
    }
    .analysis-teacher-card .analysis-ranking-detail-link{
        grid-column:1/-1;
        justify-content:flex-start;
        padding-top:1px;
    }
    .analysis-teacher-card .analysis-ranking-detail-link .teacher-link{
        font-size:10px;
    }
}

/* Tablet/Smartphone: Auswertungskacheln bleiben kompakt; Mini-Pläne wie unter „Stundenpläne“ nicht dauerhaft zeigen. */
@media (max-width:900px){
    .analysis-teacher-card-grid{
        grid-template-columns:1fr;
    }
    .analysis-metric-catalog{
        gap:12px;
    }
}

/* Version 1.9.2 – globale Vollbreite für jede über das Hauptmenü erreichbare Seite.
   Seiteninhalte dürfen auf Desktop nicht durch alte content-narrow/max-width-Regeln künstlich verengt werden. */
.main > :not(.topbar){
    width:100%;
    max-width:none;
    min-width:0;
}
.main .content-narrow{
    width:100%;
    max-width:none;
    min-width:0;
}
@media (min-width:901px){
    .main > .panel,
    .main > .stats-grid,
    .main > .stats-grid-3,
    .main > .stats-grid-4,
    .main > .stats-grid-6,
    .main > .grid-2,
    .main > .lesson-teacher-grid,
    .main > .subject-card-grid,
    .main > .room-card-grid,
    .main > .teacher-group-admin-grid,
    .main > .room-group-admin-grid,
    .main > .timetable-teacher-grid,
    .main > #analysis-content{
        width:100%;
        max-width:none;
        min-width:0;
    }
}

/* Version 1.9.3 – Kollegiumsvergleich: echte Desktop-Vollbreite und klickbare Sortierspalten */
.table-sort-button{
    appearance:none;
    width:100%;
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:4px;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    font-weight:inherit;
    text-transform:inherit;
    letter-spacing:inherit;
    line-height:1.2;
    text-align:left;
    cursor:pointer;
}
.table-sort-button:hover{color:var(--primary)}
.table-sort-button:focus-visible{outline:2px solid #00B2FE;outline-offset:2px;border-radius:4px}
.table-sort-indicator{flex:0 0 auto;width:9px;font-size:8px;line-height:1;color:var(--primary)}
.teacher-comparison-table th[aria-sort="ascending"] .table-sort-indicator::after{content:"▲"}
.teacher-comparison-table th[aria-sort="descending"] .table-sort-indicator::after{content:"▼"}
.teacher-comparison-table th[aria-sort="none"] .table-sort-indicator::after{content:"↕";opacity:.42}

@media (min-width:901px){
    /* „100 % Breite“ bedeutet wirklich die komplette Inhaltsbreite des Viewports – ohne äußeren Desktop-Rand. */
    .main{
        width:100%;
        max-width:none;
        padding-left:0;
        padding-right:0;
    }
    .topbar{
        margin-left:0;
        margin-right:0;
        padding-left:var(--page-pad);
        padding-right:var(--page-pad);
    }
    .main > :not(.topbar),
    .main > #analysis-content{
        width:100%;
        max-width:none;
        min-width:0;
    }
    .main > .panel,
    .teacher-comparison-panel{
        border-left:0;
        border-right:0;
        border-radius:0;
    }

    .teacher-comparison-panel{
        width:100%;
        max-width:none;
        margin-left:0;
        margin-right:0;
        padding-left:var(--page-pad);
        padding-right:var(--page-pad);
    }
    .teacher-comparison-panel .panel-head,
    .teacher-comparison-panel .analysis-rule-note,
    .teacher-comparison-panel .comparison-summary-grid,
    .teacher-comparison-panel .hours-group-filter,
    .teacher-table-wrap{
        width:100%;
        max-width:none;
    }
    .teacher-table-wrap{
        overflow-x:visible;
        overflow-y:visible;
    }
    .teacher-comparison-table{
        width:100%;
        min-width:0;
        table-layout:fixed;
        font-size:11px;
    }
    .teacher-comparison-table th,
    .teacher-comparison-table td{
        min-width:0;
        padding:9px 5px;
        white-space:normal;
        overflow-wrap:anywhere;
        vertical-align:middle;
    }
    .teacher-comparison-table thead th{
        padding-top:8px;
        padding-bottom:8px;
        font-size:9px;
        line-height:1.18;
    }
    .teacher-comparison-table th:nth-child(1){width:4%}
    .teacher-comparison-table th:nth-child(2){width:16%}
    .teacher-comparison-table th:nth-child(3){width:10%}
    .teacher-comparison-table th:nth-child(4){width:6%}
    .teacher-comparison-table th:nth-child(5){width:6%}
    .teacher-comparison-table th:nth-child(6){width:7%}
    .teacher-comparison-table th:nth-child(7){width:7%}
    .teacher-comparison-table th:nth-child(8){width:6%}
    .teacher-comparison-table th:nth-child(9){width:5%}
    .teacher-comparison-table th:nth-child(10){width:6%}
    .teacher-comparison-table th:nth-child(11){width:7%}
    .teacher-comparison-table th:nth-child(12){width:7%}
    .teacher-comparison-table th:nth-child(13){width:6%}
    .teacher-comparison-table th:nth-child(14){width:7%}
    .teacher-comparison-table td:not(:nth-child(2)):not(:nth-child(3)){
        text-align:center;
        font-variant-numeric:tabular-nums;
    }
    .teacher-comparison-table th:not(:nth-child(2)):not(:nth-child(3)) .table-sort-button{
        justify-content:center;
        text-align:center;
    }
    .teacher-comparison-table .teacher-link{
        min-width:0;
        gap:6px;
        align-items:center;
    }
    .teacher-comparison-table .teacher-link strong{flex:0 0 auto}
    .teacher-comparison-table .teacher-link span{
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .teacher-comparison-table .chip{
        max-width:100%;
        white-space:normal;
        line-height:1.15;
        justify-content:center;
        text-align:center;
    }
}

/* Version 2.0.0 – automatische Problemfälle */
.problem-intro-panel,
.problem-control-panel,
.problem-results-panel{width:100%;max-width:none}
.problem-intro-head{align-items:flex-end}
.problem-intro-head h2{margin-top:4px}
.problem-intro-head p{max-width:980px}
.problem-search{min-width:min(380px,100%)}
.problem-rule-note{margin-top:14px}
.problem-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.problem-control-block{min-width:0}
.problem-control-block>.eyebrow{display:block;margin-bottom:7px}
.problem-control-wide{grid-column:1/-1}
.problem-chip-row{margin:0;gap:7px;flex-wrap:wrap}
.problem-criteria-strip{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.problem-criteria-strip span{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;background:rgba(0,178,254,.08);border:1px solid rgba(0,178,254,.28);color:var(--primary);font-size:11px;font-weight:800}
.problem-summary-grid{width:100%}
.problem-results-panel>.panel-head p{max-width:1000px}
.problem-case-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,560px),1fr));gap:16px;align-items:start;width:100%}
.problem-case-card{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);overflow:hidden;box-shadow:0 7px 18px rgba(1,13,110,.035)}
.problem-case-summary{appearance:none;width:100%;display:grid;grid-template-columns:34px minmax(220px,1fr) minmax(96px,auto) 18px;gap:10px;align-items:center;padding:13px 14px;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:default}
.problem-priority-number{font-size:18px;font-weight:900;color:var(--primary);font-variant-numeric:tabular-nums}
.problem-person{display:flex;align-items:center;gap:9px;min-width:0}
.problem-person>span:last-child{min-width:0}
.problem-person strong,.problem-person small{display:block;min-width:0}
.problem-person strong{font-size:15px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--primary)}
.problem-person small{font-size:9px;line-height:1.3;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.problem-primary-value{text-align:right;min-width:118px}
.problem-primary-value strong,.problem-primary-value small{display:block}
.problem-primary-value strong{font-size:21px;line-height:1;color:var(--primary)}
.problem-primary-value small{font-size:8px;margin-top:4px;color:var(--muted);text-transform:uppercase;font-weight:800;letter-spacing:.03em}
.problem-issue-total strong{color:#9f0038}
.problem-issue-total small{white-space:nowrap}
.problem-case-summary .analysis-ranking-chevron{display:none}
.problem-case-details{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(300px,1.1fr);gap:14px;padding:0 14px 14px;border-top:1px solid var(--line)}
.problem-reasons{display:grid;align-content:start;gap:7px;padding-top:12px}
.problem-reason-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:#fff}
.problem-reason-rank{font-weight:900;color:#9f0038;font-size:12px}
.problem-reason-main{min-width:0}
.problem-reason-main strong,.problem-reason-main small,.problem-reason-value strong,.problem-reason-value small{display:block}
.problem-reason-main strong{font-size:11px;color:var(--primary);line-height:1.2}
.problem-reason-main small{font-size:8px;color:var(--muted);margin-top:2px;line-height:1.25}
.problem-reason-value{text-align:right;white-space:nowrap}
.problem-reason-value strong{font-size:15px;color:var(--primary)}
.problem-reason-value small{font-size:8px;color:var(--muted);margin-top:2px}
.problem-mini-wrap{min-width:0;padding-top:10px}
.problem-mini-wrap .analysis-mini-timetable-wrap{display:block!important;margin:0;padding:0;border:0}
.problem-mini-wrap .analysis-mini-timetable-head{margin-bottom:6px}
.problem-mini-wrap .analysis-mini-grid{width:100%;max-width:none;grid-template-columns:30px repeat(5,minmax(0,1fr));gap:2px}
.problem-mini-wrap .analysis-mini-cell,.problem-mini-wrap .analysis-mini-period{height:16px}
.problem-mini-wrap .analysis-mini-corner,.problem-mini-wrap .analysis-mini-day{height:14px}
.problem-mini-wrap .analysis-mini-period.lunch,.problem-mini-wrap .analysis-mini-lunch{height:12px}
.problem-card-actions{grid-column:1/-1;display:flex;gap:14px;align-items:center;padding-top:0}
.problem-card-actions .teacher-link{font-size:11px}
.problem-by-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px;align-items:start}
.problem-metric-card{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:14px}
.problem-metric-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.problem-metric-head h3{margin:3px 0 0;font-size:17px;line-height:1.2}
.problem-hit-count{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;border-radius:10px;background:rgba(0,178,254,.10);border:1px solid rgba(0,178,254,.28);font-size:17px;font-weight:900;color:var(--primary)}
.problem-hit-list{display:grid}
.problem-hit-row{display:grid;grid-template-columns:36px minmax(110px,.8fr) minmax(140px,1.2fr);gap:8px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.problem-hit-row:last-child{border-bottom:0}
.problem-hit-row:hover .problem-hit-person strong{text-decoration:underline}
.problem-hit-rank{font-weight:900;color:#9f0038;font-size:12px}
.problem-hit-person,.problem-hit-value{min-width:0}
.problem-hit-person strong,.problem-hit-person small,.problem-hit-value strong,.problem-hit-value small{display:block}
.problem-hit-person strong{font-size:12px;color:var(--primary)}
.problem-hit-person small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.problem-hit-value{text-align:right}
.problem-hit-value strong{font-size:15px;color:var(--primary)}
.problem-hit-value small{font-size:8px;color:var(--muted);margin-top:2px;line-height:1.2}
.problem-none{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.4}

@media (min-width:901px){
    .problem-intro-panel,.problem-control-panel,.problem-results-panel{border-left:0;border-right:0;border-radius:0;padding-left:var(--page-pad);padding-right:var(--page-pad)}
}

@media (max-width:900px){
    .problem-control-grid{grid-template-columns:1fr}
    .problem-control-wide{grid-column:auto}
    .problem-case-grid,.problem-by-metric-grid{grid-template-columns:1fr}
    .problem-case-summary{grid-template-columns:28px minmax(0,1fr) auto 16px;grid-template-areas:"rank person value chev";gap:6px 8px;padding:11px 12px;cursor:pointer}
    .problem-priority-number{grid-area:rank;font-size:16px}
    .problem-person{grid-area:person;gap:7px}
    .problem-person .teacher-code{font-size:10px;padding:4px 7px}
    .problem-person strong{font-size:14px}
    .problem-person small{font-size:8px}
    .problem-primary-value{grid-area:value;min-width:84px}
    .problem-primary-value strong{font-size:19px}
    .problem-primary-value small{font-size:7px;max-width:88px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .problem-case-summary .analysis-ranking-chevron{grid-area:chev;display:block;align-self:center}
    .problem-case-card.is-open .analysis-ranking-chevron{transform:rotate(180deg)}
    .problem-case-details{display:grid;grid-template-columns:1fr;padding:0 10px 11px;gap:8px}
    .problem-reasons,.problem-card-actions{display:none}
    .problem-case-card.is-open .problem-reasons{display:grid}
    .problem-case-card.is-open .problem-card-actions{display:flex}
    .problem-mini-wrap{display:block;padding-top:8px}
    .problem-card-actions{grid-column:auto;flex-wrap:wrap}
    .problem-reason-row{grid-template-columns:30px minmax(0,1fr) auto;padding:7px}
    .problem-reason-main strong{font-size:10px}
    .problem-reason-value strong{font-size:14px}
    .problem-control-panel .hours-group-chip{flex:1 1 auto}
}

@media (max-width:560px){
    .problem-intro-head{align-items:stretch}
    .problem-search{min-width:0;width:100%}
    .problem-summary-grid{grid-template-columns:1fr 1fr}
    .problem-criteria-strip span{font-size:9px;padding:4px 8px;min-height:25px}
    .problem-hit-row{grid-template-columns:32px minmax(90px,.8fr) minmax(120px,1.2fr)}
}

/* Version 2.0.0 – Kollegiumsvergleich auf Desktop nochmals konsequent auf Vollbreite optimiert. */
@media (min-width:901px){
    html,body,.app-shell,.main{width:100%;max-width:none;min-width:0}
    .teacher-comparison-panel{
        width:100%;
        max-width:none;
        margin-left:0;
        margin-right:0;
        padding:18px var(--page-pad) 26px;
        overflow:visible;
    }
    .teacher-comparison-panel .panel-head{
        width:100%;
        max-width:none;
        display:grid;
        grid-template-columns:minmax(0,1fr) minmax(320px,440px);
        align-items:start;
        gap:24px;
        margin-bottom:14px;
    }
    .teacher-comparison-panel .panel-head>div{min-width:0}
    .teacher-comparison-panel .panel-head p{max-width:1100px}
    .teacher-comparison-panel .standard-search-form{
        width:100%;
        max-width:440px;
        min-width:0;
        justify-self:end;
    }
    .teacher-comparison-panel .standard-live-search{
        width:100%;
        min-width:0;
        max-width:none;
    }
    .teacher-comparison-panel .teacher-group-filter,
    .teacher-comparison-panel>.hours-group-filter{
        width:100%;
        max-width:none;
        margin-bottom:10px;
    }
    .teacher-comparison-panel .analysis-rule-note{margin-bottom:12px}
    .teacher-comparison-panel .comparison-summary-grid{
        width:100%;
        max-width:none;
        grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
        margin-bottom:14px;
    }
    /* Die Datentabelle darf wirklich bis an die Inhaltskanten reichen. */
    .teacher-comparison-panel .teacher-table-wrap{
        width:calc(100% + (2 * var(--page-pad)));
        max-width:none;
        min-width:0;
        margin-left:calc(var(--page-pad) * -1);
        margin-right:calc(var(--page-pad) * -1);
        overflow-x:hidden;
    }
    .teacher-comparison-table{
        width:100%!important;
        max-width:none!important;
        min-width:0!important;
        table-layout:fixed;
        font-size:clamp(10.5px,.72vw,13px);
    }
    .teacher-comparison-table th,
    .teacher-comparison-table td{
        max-width:0;
        padding:9px 7px;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .teacher-comparison-table thead th{
        font-size:clamp(8.5px,.58vw,10px);
        line-height:1.18;
        overflow:visible;
        text-overflow:clip;
    }
    .teacher-comparison-table th:first-child,
    .teacher-comparison-table td:first-child{padding-left:max(10px,var(--page-pad))}
    .teacher-comparison-table th:last-child,
    .teacher-comparison-table td:last-child{padding-right:max(10px,var(--page-pad))}
    .teacher-comparison-table th:nth-child(1){width:3.5%}
    .teacher-comparison-table th:nth-child(2){width:18%}
    .teacher-comparison-table th:nth-child(3){width:9%}
    .teacher-comparison-table th:nth-child(4){width:6%}
    .teacher-comparison-table th:nth-child(5){width:6%}
    .teacher-comparison-table th:nth-child(6){width:7%}
    .teacher-comparison-table th:nth-child(7){width:7%}
    .teacher-comparison-table th:nth-child(8){width:7%}
    .teacher-comparison-table th:nth-child(9){width:5%}
    .teacher-comparison-table th:nth-child(10){width:6%}
    .teacher-comparison-table th:nth-child(11){width:7.5%}
    .teacher-comparison-table th:nth-child(12){width:7%}
    .teacher-comparison-table th:nth-child(13){width:5.5%}
    .teacher-comparison-table th:nth-child(14){width:5.5%}
    .teacher-comparison-table .teacher-link{
        width:100%;
        min-width:0;
        overflow:hidden;
    }
    .teacher-comparison-table .teacher-link span{
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .teacher-comparison-table .table-sort-button{
        min-height:26px;
        white-space:normal;
    }
}

@media (min-width:1400px){
    .teacher-comparison-table th,
    .teacher-comparison-table td{padding-top:10px;padding-bottom:10px}
    .teacher-comparison-table .teacher-link span{overflow:visible;text-overflow:clip}
}


/* Version 2.0.1: kompakter Statistikstatus im Kollegiumsvergleich */
.statistics-icon-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    padding:0;
    border-radius:50%;
    font:inherit;
    font-size:18px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    background:transparent;
    transition:transform .12s ease, background-color .12s ease, border-color .12s ease;
}
.statistics-icon-button:hover{transform:scale(1.06)}
.statistics-icon-button:focus-visible{outline:2px solid #00B2FE;outline-offset:2px}
.statistics-icon-button.is-included{
    color:#12823b;
    border:1px solid #8fd2a7;
    background:#edf8f1;
}
.statistics-icon-button.is-excluded{
    color:#b4233d;
    border:1px solid #efb2be;
    background:#fff1f4;
}
@media (min-width:701px){
    .teacher-comparison-table th:nth-child(14){width:3.5%}
    .teacher-comparison-table td[data-label="Statistik"]{text-align:center;padding-left:3px;padding-right:max(6px,var(--page-pad))}
    .teacher-comparison-table th:nth-child(14) .table-sort-button{justify-content:center;padding-left:1px;padding-right:1px}
}
@media (max-width:700px){
    .statistics-icon-button{width:28px;height:28px;font-size:17px}
}

/* v2.0.3 – administrierbare Problemfall-Kategorien */
.problem-metric-settings-form{display:grid;gap:18px}
.problem-metric-settings-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}
.problem-metric-settings-group{min-width:0;margin:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.problem-metric-settings-group legend{padding:0 6px;color:var(--primary);font-size:14px;font-weight:800}
.problem-metric-checkbox-grid{display:grid;gap:8px}
.problem-metric-checkbox{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;margin:0;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer}
.problem-metric-checkbox:hover{border-color:rgba(0,178,254,.45)}
.problem-metric-checkbox input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--primary)}
.problem-metric-checkbox-copy{display:grid;gap:2px;min-width:0}
.problem-metric-checkbox-copy strong{color:var(--primary);font-size:13px;line-height:1.25}
.problem-metric-checkbox-copy small{color:var(--muted);font-size:11px;line-height:1.25}
.problem-metric-save-bar{align-items:center;gap:14px}
.problem-metric-save-bar>span{margin-right:auto;color:var(--muted);font-size:12px;font-weight:700}
@media (max-width:700px){
  .problem-metric-settings-groups{grid-template-columns:1fr}
  .problem-metric-settings-group{padding:11px}
  .problem-metric-checkbox{padding:9px}
  .problem-metric-save-bar{display:grid;grid-template-columns:1fr;gap:8px}
  .problem-metric-save-bar>span{margin:0}
  .problem-metric-save-bar .button{width:100%}
}


/* Version 2.0.5 – Pascal-Logo im Navigationskopf */
.brand-logo{
    width:50px;
    height:50px;
    flex:0 0 50px;
    display:grid;
    place-items:center;
    padding:4px;
    border-radius:13px;
    background:#F6F3EE;
    overflow:hidden;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
}
.brand-logo img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}
@media (max-width:560px){
    .brand-logo{width:46px;height:46px;flex-basis:46px;border-radius:12px;padding:4px}
}

/* Version 2.0.9 – konservative Kennzahlumschaltung in stabilen Problemfall-Kacheln. */
.problem-reason-row[data-problem-metric-select]{cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}
.problem-reason-row[data-problem-metric-select]:hover{border-color:rgba(0,178,254,.5);background:rgba(0,178,254,.04)}
.problem-reason-row[data-problem-metric-select]:focus-visible{outline:3px solid rgba(0,178,254,.25);outline-offset:2px}
.problem-reason-row[data-problem-metric-select].is-active{border-color:#D4004B;background:rgba(212,0,75,.045);box-shadow:inset 3px 0 0 #D4004B}
.problem-mini-panel[hidden]{display:none!important}
.problem-mini-panel{min-width:0;width:100%}
.problem-mini-panel .analysis-mini-timetable-wrap{width:100%;max-width:none}

/* Version 2.1.1 – Klassenstundenpläne mit stärkerer Stundenabgrenzung */
.class-timetable-panel{width:100%;max-width:none}
.class-timetable-head{align-items:flex-end}
.class-selector-form{display:grid;grid-template-columns:1fr;gap:5px;min-width:min(320px,100%)}
.class-selector-form label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.class-selector-form select{width:100%;min-height:44px;padding:9px 38px 9px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);font:inherit;font-weight:700}
.class-timetable-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:4px 0 14px}
.class-timetable-title-row h3{margin:2px 0 0;font-size:27px;color:var(--primary)}
.class-timetable-note{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px 14px;max-width:760px;color:var(--muted);font-size:10px;line-height:1.35;text-align:right}
.class-timetable-wrap{width:100%;max-width:100%;overflow:hidden;border:2px solid rgba(8,20,126,.14);border-radius:16px;background:var(--surface);box-shadow:0 10px 26px rgba(6,12,46,.05)}
.class-timetable{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;color:var(--text)}
.class-timetable th,.class-timetable td{border-right:1px solid rgba(8,20,126,.12);border-bottom:1px solid rgba(8,20,126,.12)}
.class-timetable tr>*:last-child{border-right:0}
.class-timetable tbody tr:last-child>*{border-bottom:0}
.class-timetable thead th{padding:10px 6px;background:var(--surface-2);color:var(--primary);font-size:12px;font-weight:850;text-align:center;border-bottom:2px solid rgba(8,20,126,.18)}
.class-timetable thead th:first-child,.class-timetable tbody th{width:48px}
.class-timetable tbody th{padding:6px 3px;background:linear-gradient(180deg,#f7f8fc 0%,#eef1f8 100%);color:var(--primary);font-size:12px;font-weight:900;text-align:center;vertical-align:middle;border-right:2px solid rgba(8,20,126,.14);box-shadow:inset 0 -2px 0 rgba(8,20,126,.12)}
.class-timetable tbody tr:not(.class-lunch-row)>td{box-shadow:inset 0 -2px 0 rgba(8,20,126,.12)}
.class-timetable td{height:88px;padding:6px 5px;vertical-align:top;background:var(--surface)}
.class-timetable td.is-occupied{background:linear-gradient(180deg,rgba(8,20,126,.015),rgba(8,20,126,.005))}
.class-timetable td.is-free{background:rgba(120,130,150,.045);vertical-align:middle;text-align:center}
.class-free-label{font-size:9px;color:var(--muted);opacity:.58;font-weight:700}
.class-course-list{display:grid;gap:5px;min-width:0}
.class-course-entry{min-width:0;padding:5px 6px;border-radius:8px;background:rgba(0,178,254,.085);border:1px solid rgba(0,178,254,.28);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.class-course-entry+.class-course-entry{margin-top:0}
.class-course-entry.is-alternating{background:repeating-linear-gradient(135deg,rgba(0,178,254,.12),rgba(0,178,254,.12) 6px,rgba(246,243,238,.78) 6px,rgba(246,243,238,.78) 12px)}
.class-course-subject-row{display:flex;align-items:flex-start;justify-content:space-between;gap:5px;min-width:0}
.class-course-subject{min-width:0;color:var(--primary);font-size:12px;line-height:1.15;overflow-wrap:anywhere}
.class-course-meta{display:block;margin-top:3px;color:var(--muted);font-size:9px;line-height:1.18;overflow-wrap:anywhere}
.class-parity-badge{flex:0 0 auto;padding:2px 4px;border-radius:999px;background:var(--primary);color:#fff;font-size:6.5px;line-height:1.15;font-weight:850;text-transform:uppercase;letter-spacing:.03em}
.class-lunch-row th{height:30px}
.class-lunch-row td{height:30px!important;padding:5px;text-align:center!important;vertical-align:middle!important;background:var(--surface-2)!important;color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;border-top:2px solid rgba(8,20,126,.18);border-bottom:2px solid rgba(8,20,126,.18)!important}
.class-day-short{display:none}

@media (min-width:901px){
    .class-timetable-panel{padding-left:var(--page-pad);padding-right:var(--page-pad)}
    .class-timetable td{height:98px;padding:8px 7px}
    .class-course-entry{padding:7px 8px}
    .class-course-subject{font-size:13px}
    .class-course-meta{font-size:10px}
    .class-parity-badge{font-size:7px}
}

@media (max-width:700px){
    .class-timetable-head{align-items:stretch}
    .class-selector-form{min-width:0;width:100%}
    .class-timetable-title-row{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:10px}
    .class-timetable-note{justify-content:flex-start;text-align:left;font-size:9px}
    .class-timetable-title-row h3{font-size:22px}
    .class-day-full{display:none}
    .class-day-short{display:inline}
    .class-timetable-wrap{overflow:hidden;border-width:1.5px;border-radius:14px}
    .class-timetable{width:100%;min-width:0;table-layout:fixed}
    .class-timetable thead th:first-child,.class-timetable tbody th{width:31px}
    .class-timetable thead th{padding:6px 1px;font-size:8px}
    .class-timetable tbody th{padding:3px 1px;font-size:8px;border-right-width:1.5px;box-shadow:inset 0 -1.5px 0 rgba(8,20,126,.16)}
    .class-timetable tbody tr:not(.class-lunch-row)>td{box-shadow:inset 0 -1.5px 0 rgba(8,20,126,.16)}
    .class-timetable td{height:76px;padding:3px 2px;overflow:hidden}
    .class-course-list{gap:3px}
    .class-course-entry{padding:3px 3px;border-radius:5px;border-color:rgba(0,178,254,.3)}
    .class-course-subject-row{display:block}
    .class-course-subject{display:block;font-size:8px;line-height:1.08}
    .class-course-meta{margin-top:2px;font-size:6.5px;line-height:1.08}
    .class-parity-badge{display:inline-block;margin-top:2px;padding:1px 3px;font-size:5.2px}
    .class-free-label{font-size:6.5px}
    .class-lunch-row th,.class-lunch-row td{height:24px!important}
    .class-lunch-row td{font-size:7px;padding:3px}
}

@media (max-width:390px){
    .class-timetable td{height:72px;padding:2px 1.5px}
    .class-course-entry{padding:2.5px 2px}
    .class-course-subject{font-size:7.4px}
    .class-course-meta{font-size:6px}
    .class-parity-badge{font-size:4.8px}
}

/* Version 2.2.0 – geschützter Laurentianum-Vergleich */
.external-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;width:100%}
.external-hero h2{margin:3px 0 6px;font-size:clamp(26px,3vw,38px);color:var(--primary)}
.external-hero p{margin:0;max-width:900px;color:var(--muted)}
.external-source-badge{flex:0 0 auto;display:grid;gap:2px;min-width:180px;padding:11px 14px;border:1px solid rgba(0,178,254,.28);border-radius:13px;background:rgba(0,178,254,.07);text-align:right}
.external-source-badge strong{font-size:18px;color:var(--primary)}
.external-source-badge span{font-size:10px;color:var(--muted)}
.external-tabs{display:flex;flex-wrap:wrap;gap:7px;width:100%;margin:0 0 14px;padding:0}
.external-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--primary);font-size:11px;font-weight:800;text-decoration:none}
.external-tabs a.active{border-color:var(--primary);background:var(--primary);color:#fff}
.external-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;width:100%;margin:0 0 14px}
.external-stat-grid .metric-card{min-width:0}
.external-stat-label{font-size:clamp(18px,2vw,25px)!important}
.external-method-note code{padding:1px 4px;border-radius:5px;background:var(--surface-2)}
.external-quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.external-teacher-quick{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);text-decoration:none}
.external-teacher-quick strong{color:var(--primary);font-size:14px}.external-teacher-quick span{color:var(--muted);font-size:10px}
.external-filter-inline{display:flex;gap:8px;align-items:center;min-width:min(420px,100%)}
.external-filter-inline input{min-width:0;flex:1}
.external-teacher-grid,.external-ranking-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:12px;width:100%}
.external-teacher-card,.external-rank-card{min-width:0;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.external-teacher-card-head,.external-rank-head{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:9px}
.external-teacher-card-head>div,.external-rank-head>div{display:grid;min-width:0;flex:1}
.external-teacher-card-head strong,.external-rank-head strong{color:var(--primary);font-size:16px}
.external-teacher-card-head span,.external-rank-head span{color:var(--muted);font-size:10px;overflow-wrap:anywhere}
.external-teacher-card-head>span,.external-rank-head>b{flex:0 0 auto;color:var(--primary);font-size:16px;font-weight:850}
.external-rank-head .rank{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--primary);color:#fff;font-weight:900}
.external-teacher-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:8px 0}
.external-teacher-kpis span{min-width:0;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:8px;color:var(--muted);text-align:center}
.external-teacher-kpis b{display:block;color:var(--primary);font-size:13px}
.external-mini-wrap{width:100%;max-width:100%;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.external-mini{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed}
.external-mini th,.external-mini td{height:21px;padding:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.external-mini tr>*:last-child{border-right:0}.external-mini tbody tr:last-child>*{border-bottom:0}
.external-mini thead th{height:23px;background:var(--surface-2);color:var(--primary);font-size:7px;font-weight:850}
.external-mini thead th:first-child,.external-mini tbody th{width:30px}
.external-mini tbody th{background:var(--surface-2);color:var(--muted);font-size:7px;font-weight:800}
.external-mini td.free{background:rgba(120,130,150,.025)}
.external-mini td.busy{background:var(--primary)}
.external-mini td.blocked{background:repeating-linear-gradient(135deg,rgba(180,38,49,.10),rgba(180,38,49,.10) 4px,rgba(120,130,150,.035) 4px,rgba(120,130,150,.035) 8px)}
.external-teacher-detail .external-mini td.busy{background:rgba(0,178,254,.035);vertical-align:top;padding:3px}
.external-teacher-detail .external-mini th,.external-teacher-detail .external-mini td{height:52px}
.external-teacher-detail .external-mini thead th{height:28px}
.external-cell-entry{display:block;position:relative;margin:1px 0;padding:2px 2px 2px 7px;color:var(--primary);font-size:7.5px;font-weight:750;line-height:1.12;text-align:left;overflow-wrap:anywhere}
.external-cell-entry i{position:absolute;left:1px;top:3px;bottom:3px;width:3px;border-radius:999px;background:var(--entry-color,#010D6E)}
.external-blocked-label{font-size:7px;color:#9d2634;font-weight:800}
.external-detail-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0 18px}
.external-detail-metrics>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.external-detail-metrics span{display:block;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.external-detail-metrics strong{display:block;margin-top:3px;color:var(--primary);font-size:18px}
.external-analysis-controls{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px;width:100%;margin-top:10px}
.external-analysis-controls label,.external-upload-form label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.external-analysis-controls select,.external-upload-form input[type=file]{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-weight:700}
.external-rank-card>a{display:inline-block;margin-top:8px;color:var(--primary);font-size:10px;font-weight:800}
.external-school-compare-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;margin-bottom:14px}
.external-school-compare-cards .panel{margin:0}.external-school-compare-cards h2{font-size:34px;margin:5px 0;color:var(--primary)}
.external-compare-table{width:100%;table-layout:fixed;border-collapse:collapse}
.external-compare-table th,.external-compare-table td{padding:8px 7px;border-bottom:1px solid var(--line);font-size:10px;text-align:right}
.external-compare-table th:first-child,.external-compare-table td:first-child{text-align:left}
.external-compare-table thead th{background:var(--surface-2);color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.03em}
.external-upload-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;width:100%}
.external-import-list{display:grid;gap:8px}
.external-import-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.external-import-list article>div:first-child{display:grid;gap:2px;min-width:0}.external-import-list article>div:first-child span{font-size:9px;color:var(--muted);overflow-wrap:anywhere}
.external-import-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.external-import-actions form{margin:0}

@media (min-width:1200px){
  .external-teacher-grid,.external-ranking-grid{grid-template-columns:repeat(auto-fit,minmax(390px,1fr))}
  .external-mini th,.external-mini td{height:24px}
}
@media (max-width:700px){
  .external-hero{display:grid;align-items:stretch}.external-source-badge{text-align:left;min-width:0}
  .external-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.external-tabs a{min-height:35px;padding:5px 6px;font-size:9px}
  .external-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .external-filter-inline{width:100%;min-width:0}.external-filter-inline .button{flex:0 0 auto}
  .external-teacher-grid,.external-ranking-grid{grid-template-columns:1fr}
  .external-mini thead th:first-child,.external-mini tbody th{width:24px}
  .external-mini th,.external-mini td{height:18px}.external-mini thead th{height:20px;font-size:6.5px}.external-mini tbody th{font-size:6px}
  .external-teacher-detail .external-mini th,.external-teacher-detail .external-mini td{height:44px}.external-cell-entry{font-size:6px;padding-left:5px}.external-cell-entry i{width:2px}
  .external-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .external-analysis-controls{grid-template-columns:1fr}
  .external-school-compare-cards{grid-template-columns:1fr}
  .external-compare-table{min-width:610px}
  .external-upload-form{grid-template-columns:1fr}
  .external-import-list article{display:grid}.external-import-actions{justify-content:flex-start}
}

/* Version 2.2.1 – Laurentianum-Auswertungen analog zum Pascal-Analysemodul */
.analysis-mini-legend i.external-blocked{
    background:repeating-linear-gradient(135deg,rgba(180,38,49,.11) 0 3px,rgba(120,130,150,.04) 3px 6px);
    border-color:rgba(180,38,49,.32);
}
.analysis-mini-cell.external-blocked{
    background:repeating-linear-gradient(135deg,rgba(180,38,49,.11) 0 4px,rgba(120,130,150,.035) 4px 8px);
    border-color:rgba(180,38,49,.25);
}
.external-analysis-mini .analysis-mini-grid{max-width:none;width:100%}

/* Version 2.2.2 – direkter Planstunden-Gruppenvergleich Laurentianum ↔ Pascal */
.school-hours-comparison{display:grid;gap:12px;width:100%}
.school-hours-row{padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.school-hours-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 2px 8px}
.school-hours-row-head strong{font-size:13px;color:var(--primary)}
.school-hours-row-head span{font-size:10px;color:var(--muted);font-weight:700}
.school-hours-row.is-laurentianum{border-color:rgba(212,0,75,.20);background:rgba(212,0,75,.018)}
.school-hours-row.is-laurentianum .school-hours-row-head strong{color:#9d1745}
.school-hours-row.is-pascal{border-color:rgba(0,178,254,.32);background:rgba(0,178,254,.045)}
.school-hours-row.is-pascal .school-hours-row-head strong{color:#010D6E}
.school-hours-row.is-pascal .analysis-group-card{background:rgba(255,255,255,.72);border-color:rgba(0,178,254,.32)}
.school-hours-row.is-pascal .analysis-group-card strong{color:#010D6E}
.school-comparison-card{cursor:default}
@media(max-width:700px){
    .school-hours-row{padding:8px}
    .school-hours-row-head{display:grid;gap:2px;margin-bottom:7px}
    .school-hours-row-head span{font-size:9px}
}

/* Version 2.2.3 – Nachmittagsvergleich */
.external-afternoon-school-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 18px}
.external-afternoon-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.external-afternoon-stat-grid>div{padding:10px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.72);min-width:0}
.external-afternoon-stat-grid span{display:block;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.external-afternoon-stat-grid strong{display:block;margin-top:4px;color:var(--primary);font-size:22px;line-height:1.05}
.external-afternoon-teacher-groups{margin-top:8px}
.external-afternoon-rankings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.external-afternoon-rankings>div{min-width:0}
.external-afternoon-rankings h3{margin:0 0 8px;color:var(--primary)}
.external-afternoon-ranking-list{display:grid;gap:6px}
.external-afternoon-person{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);text-decoration:none;min-width:0}
.external-afternoon-person:hover{border-color:rgba(0,178,254,.45);background:rgba(0,178,254,.04)}
.external-afternoon-person .rank{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--primary);color:#fff;font-size:11px;font-weight:900}
.external-afternoon-person .person{display:grid;min-width:0}
.external-afternoon-person .person strong{color:var(--primary);font-size:12px}
.external-afternoon-person .person small{color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.external-afternoon-person .value{text-align:right;display:grid}
.external-afternoon-person .value strong{color:var(--primary);font-size:17px}
.external-afternoon-person .value small{color:var(--muted);font-size:8px}
@media(max-width:900px){
  .external-afternoon-school-grid{grid-template-columns:1fr}
  .external-afternoon-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .external-afternoon-rankings{grid-template-columns:1fr}
}
@media(max-width:520px){
  .external-afternoon-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
  .external-afternoon-stat-grid>div{padding:7px}
  .external-afternoon-stat-grid strong{font-size:18px}
  .external-afternoon-person{grid-template-columns:28px minmax(0,1fr) auto;padding:7px 8px;gap:6px}
  .external-afternoon-person .rank{width:24px;height:24px;font-size:9px}
  .external-afternoon-person .person strong{font-size:11px}
  .external-afternoon-person .value strong{font-size:15px}
}

/* v2.2.4: A-/B-Unterrichtsgruppen innerhalb eines Zeitfensters nebeneinander. */
.class-course-list:has(.class-course-entry.is-alternating){grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.class-course-list:has(.class-course-entry.is-alternating)>.class-course-entry.is-alternating{height:100%;margin:0;padding-left:4px;padding-right:4px}
.class-course-list:has(.class-course-entry.is-alternating)>.class-course-entry:not(.is-alternating){grid-column:1/-1}
.class-course-list:has(.class-course-entry.is-alternating) .class-course-subject-row{display:grid;grid-template-columns:minmax(0,1fr);gap:2px}
.class-course-list:has(.class-course-entry.is-alternating) .class-parity-badge{justify-self:start;max-width:100%;white-space:normal}

@media (max-width:700px){
    .class-course-list:has(.class-course-entry.is-alternating){gap:2px}
    .class-course-list:has(.class-course-entry.is-alternating)>.class-course-entry.is-alternating{padding:3px 2px;border-radius:6px}
    .class-course-list:has(.class-course-entry.is-alternating) .class-course-subject{font-size:7px;line-height:1.05}
    .class-course-list:has(.class-course-entry.is-alternating) .class-course-meta{font-size:5.5px;line-height:1.05}
    .class-course-list:has(.class-course-entry.is-alternating) .class-parity-badge{font-size:4.4px;padding:1px 2px}
}


/* v2.2.5: harte Parallelbelegungen von Lehrkräften unter Problemfälle */
.teacher-parallel-panel{border-top:4px solid var(--danger)}
.teacher-parallel-head{align-items:center}
.teacher-parallel-count{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);font-size:12px;font-weight:900;white-space:nowrap}
.teacher-parallel-count.is-ok{color:var(--good);background:rgba(39,122,75,.08);border-color:rgba(39,122,75,.24)}
.teacher-parallel-count.has-conflicts{color:var(--danger);background:rgba(212,0,75,.08);border-color:rgba(212,0,75,.28)}
.teacher-parallel-ok{display:grid;gap:3px;padding:14px 16px;border:1px solid rgba(39,122,75,.24);border-radius:12px;background:rgba(39,122,75,.06)}
.teacher-parallel-ok strong{color:var(--good);font-size:13px}.teacher-parallel-ok span{color:var(--muted);font-size:11px}
.teacher-parallel-list{display:grid;gap:12px}
.teacher-parallel-case{border:1px solid rgba(212,0,75,.26);border-left:4px solid var(--danger);border-radius:13px;background:var(--surface-2);padding:14px;min-width:0}
.teacher-parallel-case-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.teacher-parallel-person{display:flex;align-items:center;gap:10px;min-width:0}.teacher-parallel-person>span:last-child{display:grid;gap:2px;min-width:0}.teacher-parallel-person strong{font-size:14px}.teacher-parallel-person small{font-size:10px;color:var(--muted)}
.teacher-parallel-parity{display:inline-flex;padding:5px 8px;border-radius:999px;background:rgba(212,0,75,.09);border:1px solid rgba(212,0,75,.22);color:var(--danger);font-size:10px;font-weight:850;white-space:nowrap}
.teacher-parallel-lessons{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.teacher-parallel-lesson{display:grid;gap:3px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:0}
.teacher-parallel-lesson strong{font-size:12px;overflow-wrap:anywhere}.teacher-parallel-lesson span{font-size:10px;overflow-wrap:anywhere}.teacher-parallel-lesson small{font-size:9px;color:var(--muted);overflow-wrap:anywhere}
.teacher-parallel-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
.teacher-parallel-actions .teacher-link{font-size:10px;font-weight:800;color:var(--primary)}
@media(max-width:700px){
  .teacher-parallel-case-head{align-items:flex-start;display:grid}.teacher-parallel-parity{justify-self:start}
  .teacher-parallel-lessons{grid-template-columns:1fr}.teacher-parallel-case{padding:11px}
}
