:root{--hinweis:#8a3a75;--hinweis-tint:#f4ebf2;
  --bg:#f2ede4; --surface:#fff; --blue:#1a5296; --blue-d:#14437c;
  --green:#3d6e1a; --amber:#9e6b00; --red:#c70d2d; --neg:#c70d2d;
  --text:#28231c; --text-muted:#6e675e; --line:#e3ddd2;
  --font-serif:'Lora',Georgia,serif; --font-sans:'Source Sans 3',system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px}
.topbar{display:flex;align-items:center;gap:14px;background:var(--surface);color:var(--text);padding:0 18px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;flex-wrap:wrap}
.back-link{color:var(--text-muted);text-decoration:none;display:flex;align-items:center;gap:4px}
.back-link:hover{color:var(--blue)}
.topbar-sep{width:1px; background:var(--line)}
.topbar-title{font-family:var(--font-serif); font-weight:600}
.topbar-title .sub{font-family:var(--font-sans);font-size:12px;font-weight:400;color:var(--text-muted);margin-left:8px}
.topbar-right{margin-left:auto;display:flex; align-items:center;flex-wrap:wrap}
/* Bedienelemente der Kopfzeile wie auf den uebrigen Reports: Auswahlfelder in
   EINER Zeile statt gestapelt unter einem Kleinlabel. Was ein Feld bedeutet,
   sagen Optionstext und title. Die Optik von .scope-select selbst steht zentral
   in eris-theme.css („AUSWAHLFELD DER REPORT-KOPFZEILE"). */
/* Stabiler Detail-Slot (Lehreinheit/Fakultät/Universität) – verhindert Springen beim Sicht-Wechsel.
   ⚠ Der Praefix `.topbar-right` ist noetig, nicht schmueckend: die Anpassungsebene
   setzt `html .topbar-right > *{min-width:0}` (0,1,2) und schlaegt ein blosses
   `.kp-detail-slot` (0,1,0) — die reservierte Breite waere wirkungslos und die
   Kopfzeile spraenge beim Sicht-Wechsel. */
.kp-detail-slot{display:flex;align-items:center;min-height:34px}
.topbar-right .kp-detail-slot{min-width:210px}
.kp-uni-tag{font-size:13px;color:var(--text-muted);padding:4px 2px}
.ctl-link{color:var(--blue);font-size:12px;text-decoration:none;align-self:center;font-weight:600;white-space:nowrap}
.ctl-link:hover{text-decoration:underline}
.wrap{max-width:min(94vw,var(--report-max,1320px));margin:20px auto;padding:0 20px}
.hint{font-size:13px;color:var(--text-muted);background:var(--t-neutral-bg,#fbf8f2);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:clip;margin-bottom:20px}
.card-head{display:flex;align-items:center;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line)}
.card-title{font-family:var(--font-serif);font-size:16px;font-weight:600}
.le-name{color:var(--blue);font-family:var(--font-sans)}
.sums{margin-left:auto;font-size:13px;color:var(--text-muted)}
.sums b{color:var(--text)}
.livebadge{margin-left:auto;font-size:11px;font-weight:600;color:var(--t-gruen-fg,var(--green));background:var(--t-gruen-bg,#eaf3e0);padding:2px 8px;border-radius:10px}
/* Kein eigener Scrollbalken in der Karte: der Deckel (max-height:70vh)
   erzeugte neben dem Seitenbalken einen zweiten, inneren. Hausform der
   uebrigen Reports ist nur die Querachse. */
/* .tbl-scroll traegt bewusst KEINEN Rollbereich mehr: der Deckel erzeugte einen
   zweiten Balken in der Kachel, und ein Rollbereich haette ausserdem das
   `position:sticky` des Spaltenkopfs an den Behaelter statt an die Seite
   gebunden. Die Klasse bleibt als Haken im Markup. */
.ntable{width:100%;border-collapse:collapse;font-size:13px}
/* Der Spaltenkopf klebt an der SEITEN-Kopfzeile (deren Hoehe steht in
   --eris-kopf-unten; sie bricht auf schmalen Fenstern um). Das setzt voraus,
   dass KEIN Vorfahr einen Rollbereich aufmacht: `.card` klippt deshalb mit
   `clip` statt `hidden` (gleiche Optik, aber kein Rollbereich), und
   `.tbl-scroll` traegt keinen mehr. Zu breite Tabellen huellt die zentrale
   Anpassungsebene zur Laufzeit in .eris-scrollx — dort klebt der Kopf dann
   nicht, das ist der bewusste Tausch. */
.ntable th{position:sticky;top:var(--eris-kopf-unten,50px);background:var(--t-neutral-bg,#f7f3ec);text-align:left;padding:8px 12px;font-weight:600;border-bottom:1px solid var(--line);z-index:1;user-select:none}
.ntable th.r,.ntable td.r{text-align:right}
.ntable td{padding:6px 12px;border-bottom:1px solid var(--hair,#f0eada)}
.ntable td.b,.ntable td.r.b{font-weight:700}
.ntable td.hl{color:var(--blue);font-weight:700}
.ntable tfoot td{padding:8px 12px;border-top:1px solid var(--line);background:var(--t-neutral-bg,#fbf8f2)}
.ed{width:88px;text-align:right;padding:4px 6px;border:1px solid var(--line);border-radius:5px;font-family:inherit;font-size:13px;background:var(--t-flaeche,#fffdf9)}
.ed:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.neg{color:var(--neg);font-weight:600}
.mut{color:var(--text-muted)}
.alert{padding:10px 14px;border-radius:6px;margin-bottom:14px;background:var(--t-rot-bg,#fbe0e8);color:var(--t-rot-fg,var(--neg));font-size:13px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#28231c;color:#fff;padding:8px 16px;border-radius:6px;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}

/* Studienplan-Editor */
.hint2{padding:8px 18px;font-size:12px;color:var(--text-muted);border-top:1px solid var(--line)}
.btn-sm{margin-left:auto;background:var(--blue-flaeche,var(--blue));color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.btn-sm:hover{background:var(--blue-flaeche-hover,var(--blue-d))}
.sglink{color:var(--blue);cursor:pointer;text-decoration:none;border-bottom:1px dotted var(--blue)}
.sglink:hover{color:var(--blue-d)}
.ed.xs{width:64px}
.ed.wide{width:100%;min-width:160px;text-align:left}
.ed-sel{padding:4px 6px;border:1px solid var(--line);border-radius:5px;font-family:inherit;font-size:13px;background:var(--t-flaeche,#fffdf9)}
.del{background:none;border:none;color:var(--neg);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}
.del:hover{background:var(--t-rot-bg,#fbe0e8)}
.ca-cell{color:var(--blue)}

/* Cockpit (Tab-Leiste: siehe gemeinsames Stylesheet der Kapazitaets-Seiten) */

/* Variantenzustand (amtlich ⇄ interne Planung).
   Der Planungs-Umschalter waehlt nur, welche der beiden Spuren als Hauptwert gerendert wird
   (/kapaz/cockpit liefert immer beide). Solange die interne Planung nicht abweicht, aendert
   der Wechsel keine Zahl – Badge und Statusleiste zeigen den Zustand deshalb dauerhaft an. */
.kp-var{display:inline-block;margin-left:10px;font-family:var(--font-sans);font-size:11px;font-weight:600;
  padding:2px 8px;border-radius:10px;border:1px solid var(--line);white-space:nowrap;vertical-align:2px}
/* Flaechen ueber die Toenungen aus eris-theme.css (Hellwert als Rueckfall) – feste
   Hellfarben stuenden im Dunkelmodus als helle Flecken da. Schrift/Linien ziehen
   direkt aus --text/--line, die das Theme selbst umstellt. */
.kp-var.is-amtlich{background:var(--t-neutral-bg,#efe9dd);color:var(--t-gedaempft,var(--text-muted))}
.kp-var.is-planung{background:var(--t-blau-bg,#e7eff8);color:var(--t-blau-fg,var(--blue));
  border-color:var(--t-blau-bd,#c5d9ee)}
.kp-varbar{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:6px 20px;font-size:12px;
  color:var(--t-gedaempft,var(--text-muted));background:var(--t-neutral-bg,#efe9dd);
  border-bottom:1px solid var(--line);box-shadow:inset 3px 0 0 var(--line)}
.kp-varbar.is-planung{background:var(--t-blau-bg,#e7eff8);
  box-shadow:inset 3px 0 0 var(--t-blau-fg,var(--blue))}
.kp-varbar-tag{font-weight:700;color:var(--t-titel,var(--text));font-family:var(--font-serif)}
.kp-varbar.is-planung .kp-varbar-tag{color:var(--t-blau-fg,var(--blue-d))}
.kp-varbar-txt b{color:var(--t-titel,var(--text));font-weight:600}
.kp-varbar-txt .kp-d{color:var(--t-titel,var(--text));font-weight:600;white-space:nowrap}
.seg-group{display:flex;gap:4px}
.ctl-inl{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:6px}
.ctl-inl select{padding:4px 8px;border:1px solid var(--line);border-radius:5px;font-family:inherit;font-size:13px;max-width:300px}
.kacheln{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:16px;margin-bottom:18px}
.kachel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.kachel .k-l{font-size:12px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.kachel .k-v{font-size:30px;font-weight:700;color:var(--blue);font-family:var(--font-serif);margin-top:4px;line-height:1.1}
.kachel .k-s{font-size:11px;color:var(--text-muted);margin-top:6px}
.kachel .k-l .k-zusatz{font-weight:400;letter-spacing:0;text-transform:none}
/* Die MASSGEBLICHE Auslastung unter der Kachel (Audit F-09, 16.09.2026).
   Setzt sich mit einer Haarlinie ab, damit sie nicht als Fussnote der Wirkungszeile
   gelesen wird - sie ist eine eigene Aussage. Farbe und Linie kommen aus den
   Haus-Token, mit Rueckfall: `var(--x)` ohne Rueckfall ist eine Wette. */
.kachel .k-s.ck-massgeblich{
  margin-top:8px;
  padding-top:6px;
  border-top:1px solid var(--hair, var(--line, rgba(80,60,30,0.10)));
  color:var(--text-soft, #3d3529);
}
.kachel-aus{grid-column:span 2;background:var(--t-neutral-bg,#fbf8f2)}
.kachel-aus3{grid-column:span 3}
.aus-in{width:96px;font-size:26px;font-weight:700;font-family:var(--font-serif);color:var(--amber);text-align:center;border:none;border-bottom:2px solid var(--line);background:transparent;padding:2px 0;appearance:textfield;-moz-appearance:textfield}
.aus-in::-webkit-outer-spin-button,.aus-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.aus-in::placeholder{font-size:13px;font-weight:600;color:var(--text-muted)}
.aus-in:focus{outline:none;border-bottom-color:var(--amber)}
#ck-aus-wirkung.wirk{color:var(--text);font-weight:600}
.ck-aus-block{margin:2px 0 16px;max-width:560px}
/* Auslastung + Ausschöpfung nebeneinander, gleich groß (24.09.2026). Unter ~760 px
   stapeln sie sich. ⚠ `grid-column:auto` ist Pflicht: `.kachel-aus3` spannt sonst drei
   Spalten auf und erzeugt im Zweier-Raster implizite Spalten. */
.ck-aus-reihe{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px;margin:2px 0 16px;max-width:1140px}
.ck-aus-reihe .ck-aus-block{margin:0;max-width:none;grid-column:auto}
.ck-steuer .ck-seg.active{background:var(--amber-flaeche,var(--amber));border-color:var(--amber-flaeche,var(--amber))}  /* Weisse Schrift erbt aus .ck-seg.active — deshalb die gefuellte Amberflaeche */
/* Info-Umschalter dezent (keine Karte) + kompakt, gestapelt in einer Zelle rechts neben Kosten */
.ck-info-stack{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;margin:0 0 16px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px}
.ck-driver.in-grid{margin:0;gap:6px;font-size:11px}
.ck-driver.in-grid .ck-seg{padding:4px 8px;font-size:11px}
.ck-driver.in-grid .ck-driver-l{font-size:11px;flex:0 0 132px;white-space:nowrap}
/* Echter Toggle-Switch (2 Zustände) – Nachfragetreiber / Berechnungsgrundlage nebeneinander */
.ck-tog{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* Mini-Bandbalken in der Kapazitäten-Tabelle (CNW blau, realer CW orange) */
.kbb{min-width:104px}
.kbb-track{position:relative;height:7px;border-radius:4px;
  background:linear-gradient(90deg,#3d6e1a 0%,#e8b500 55%,#c70d2d 100%)}
.kbb-m{position:absolute;top:-2px;width:2px;height:11px;transform:translateX(-1px)}
.kbb-cnw{background:#1a5296}
.kbb-cnw.out{background:#c70d2d;width:3px;height:13px;top:-3px}
.kbb-real{background:#ff8a00;height:11px}
.kbb-lbl{font-size:10px;color:var(--text-muted);margin-top:2px;white-space:nowrap}
/* Cockpit-Kachel „Ø Curricularwert" – zentrale Steuerungsinfo, dezent hervorgehoben */
.kachel-cw{border-left:3px solid var(--blue)}
.kachel-cw .k-v{color:var(--blue)}
.aus-row{display:flex;align-items:center;gap:14px;margin-top:6px}
.aus{flex:1;text-align:center}
.aus-v{font-size:32px;font-weight:700;font-family:var(--font-serif);color:var(--text)}
.aus-v.low{color:var(--neg)} .aus-v.warn{color:var(--amber)} .aus-v.ok{color:var(--green)}
.aus-l{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}
.aus-sep{width:1px;align-self:stretch;background:var(--line)}

/* Editierbare Cockpit-Kacheln */
.kachel-edit{border-color:var(--blue);box-shadow:inset 0 0 0 1px rgba(26,82,150,.08)}
.k-in{width:100%;font-size:28px;font-weight:700;color:var(--blue);font-family:var(--font-serif);margin-top:2px;border:none;border-bottom:2px solid var(--line);background:transparent;padding:2px 0}
.k-in:focus{outline:none;border-bottom-color:var(--blue)}
.reset-link{color:var(--blue);cursor:pointer;text-decoration:underline}

/* Nachfragetreiber-Umschalter */
.ck-driver{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.ck-driver-l{font-size:12px;color:var(--text-muted);font-weight:600}
.ck-driver-h{font-size:11px;color:var(--text-muted)}
.ck-seg{border:1px solid var(--line);background:var(--surface);color:var(--text-muted);padding:4px 12px;border-radius:6px;cursor:pointer;font-family:inherit;font-size:12px}
.ck-seg.active{border-color:var(--blue);background:var(--blue-flaeche,var(--blue));color:#fff;font-weight:600}

/* Doppelkachel (Stellen / Curricularwert): breiter, damit große Zahlen (Uni-Sicht) passen */
.kachel-dual{grid-column:span 2;border-color:var(--blue);box-shadow:inset 0 0 0 1px rgba(26,82,150,.08)}
.aus-v.sm{font-size:21px;white-space:nowrap}
.aus-v.plan{color:var(--blue)}
.chg{color:var(--blue);font-weight:700;margin-left:4px}
/* Δ-Anzeige in der Planstellen-Zeile: feste Breite reservieren → kein Reflow beim Editieren */
.lv-d{display:inline-block;min-width:46px;text-align:left}
.ref-ok{color:var(--green);font-weight:700}
.ref-bad{color:var(--neg);font-weight:700}
.kachel.ref-warn{border-color:var(--neg);box-shadow:inset 0 0 0 1px var(--neg)}
/* LVVO-Gruppentabelle: Oberkategorie klickbar, Unterzeilen eingerückt */
.ck-stellen-tbl tr.lv-grp>td{border-top:1px solid var(--line)}
.ck-stellen-tbl td.lv-tog{cursor:pointer}
.ck-stellen-tbl tr.lv-grp:hover td.lv-tog{background:var(--t-neutral-bg,#f6f2ea)}
.lv-caret{color:var(--text-muted);font-size:11px}
.ck-stellen-tbl tr.lv-sub>td{background:var(--t-neutral-bg,#faf8f3);font-size:12px;padding-top:2px;padding-bottom:2px}
.lv-ind{padding-left:20px;color:var(--text-muted)}
.lv-ist{color:var(--blue)}
.lv-sp{color:var(--text-soft,#4a453c)}
.lv-zweit{font-size:var(--fs-mikro,11px);line-height:1.2;white-space:nowrap}
.lv-sp-hinweis{padding:8px 12px 4px;max-width:120ch}

/* Sortierbare Tabellen: Pfeil-Indikator am Spaltenkopf */
/* Sortier-Anzeige: siehe gemeinsames Stylesheet der Kapazitaets-Seiten */

/* ── Bandbreiten-Modell (KapVO 2027) ── */
.band-tools label{font-size:13px;color:var(--text-muted,#555)}
.band-tools select{padding:4px 6px;border:1px solid var(--border,#ccd);border-radius:6px;background:var(--surface);color:var(--text);font-family:inherit}
.band-legende{font-size:12px;color:var(--text-muted,#777)}
.band-tbl td,.band-tbl th{vertical-align:middle}
.band-cw-wrap{display:flex;align-items:center;gap:8px}
.band-slider{-webkit-appearance:none;appearance:none;height:5px;width:190px;border-radius:4px;
  background:linear-gradient(90deg,#3d6e1a 0%,#e8b500 55%,#c70d2d 100%);outline:none}
.band-slider:disabled{background:var(--t-neutral-bg,#d8d8d8);opacity:.6}
.band-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:15px;height:15px;
  border-radius:50%;background:var(--blue-flaeche,var(--blue));border:2px solid var(--surface,#fff);box-shadow:0 0 2px rgba(0,0,0,.4);cursor:pointer}
.band-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--blue-flaeche,var(--blue));
  border:2px solid var(--surface,#fff);cursor:pointer}
.band-num{width:66px;padding:2px 4px;border:1px solid var(--border,#ccd);border-radius:6px;text-align:right;font-size:13px;background:var(--t-flaeche,#fff);color:var(--text)}
.band-ends{display:flex;justify-content:space-between;width:190px;font-size:10px;color:var(--text-muted);margin-top:1px}
.band-min{display:flex;align-items:center;gap:4px;width:190px;font-size:10px;color:var(--text-muted);margin-top:2px}
.band-min-num{width:52px;padding:2px 4px;border:1px solid var(--border,#ccd);border-radius:5px;text-align:right;font-size:11px;background:var(--t-flaeche,#fff);color:var(--text)}
.band-min.band-min-aktiv{color:var(--amber,#9e6b00);font-weight:600}
.band-min.band-min-aktiv .band-min-num{border-color:var(--amber,#9e6b00);background:var(--t-amber-bg,#fdf6e7)}
.band-cnwtick{font-size:10px;color:var(--blue)}
.bmodus{display:inline-block;padding:1px 6px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap}
.bmodus.im_band{background:var(--t-blau-bg,#e5eefb);color:var(--t-blau-fg,var(--blue))}
.bmodus.fortgeltung_21a{background:var(--t-neutral-bg,#eef2f7);color:var(--t-gedaempft,var(--text-muted))}
.bmodus.fester_cnw{background:var(--t-amber-bg,#efe7d8);color:var(--t-amber-fg,#7a5a12)}
.bmodus.ausnahme_obergrenze{background:var(--t-rot-bg,#fbe0e8);color:var(--t-rot-fg,var(--neg))}
.bmodus.ungemappt{background:var(--t-neutral-bg,#eee);color:var(--t-gedaempft,var(--text-muted))}
.bflag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:9px;font-size:10px;font-weight:600;background:var(--t-rot-bg,#fbe0e8);color:var(--t-rot-fg,var(--neg))}
.bflag.warn{background:var(--t-amber-bg,#fdf3d7);color:var(--t-amber-fg,#8a6d00)}
.bmini{border:none;background:none;cursor:pointer;font-size:14px;padding:2px 4px;color:var(--text-muted)}
.bmini:hover{color:var(--blue)}
.kap-eff{font-size:12px;color:var(--text-muted);white-space:nowrap}
.kap-eff b{color:var(--blue)}
.stress-kpi{background:var(--surface,#fff);border:1px solid var(--border,#e3ddd2);border-radius:10px;
  padding:10px 16px;min-width:150px}
.stress-kpi .v{font-size:22px;font-weight:700;color:var(--blue)}
.stress-kpi .l{font-size:12px;color:var(--text-muted);margin-top:2px}
.stress-kpi.max .v{color:var(--green)}
.stress-kpi.min .v{color:var(--neg)}
.band-audit-pop{position:fixed;z-index:99;background:var(--t-flaeche,#fff);border:1px solid var(--t-feld-bd,#ccd);border-radius:8px;
  box-shadow:0 6px 20px rgba(0,0,0,.18);padding:10px 12px;max-width:340px;font-size:12px;color:var(--t-titel,var(--text))}
.band-audit-pop table{width:100%;border-collapse:collapse}
.band-audit-pop td{padding:2px 4px;border-bottom:1px solid var(--t-linie,#eee)}
.antrag-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--t-linie,#eee)}
.antrag-row .ar-main{flex:1;min-width:240px}
.antrag-row .ar-status{font-weight:600}
