/* Ergaenzung Neusystem-Leiste: Listen-Navigation (WCAG 1.3.1) im Kopf,
   ohne Aufklappmenues (User-Entscheid 2026-08-23; Unterpunkte stehen als
   Bereichsleiste .profil-nav auf der Seite). Saemtliche Werte stammen aus
   den --cas-Tokens beziehungsweise den Originalregeln von campus-am-see.css
   (header.kopf nav: gap .4rem 1.4rem; nav a: .95rem/500, padding .4rem .25rem). */
.sprunglink{position:absolute;left:-999em;top:.5rem;z-index:60;background:var(--cas-bg-card);color:var(--cas-text);padding:var(--a-2) var(--a-4);border-radius:var(--cas-radius);box-shadow:var(--cas-shadow)}
.sprunglink:focus{left:.5rem}
header.kopf nav>ul{display:flex;align-items:center;flex-wrap:wrap;gap:var(--a-2) var(--a-5);list-style:none;margin:0;padding:0}
header.kopf nav li{margin:0}
header.kopf nav form{display:inline;margin:0}
/* Karten-Formulare (Profil, GUI-Runde 3): Beschriftung als Block, Feld
   darunter - buendige Eingabekanten statt gezackter Inline-Felder. */
main .karte h2{font-size:var(--t-l)}
/* Eine Karte mit Tabelle braucht die ganze Rasterbreite: in der Drittel-Spalte
   schneiden Spalten ab und die Steuerleiste bricht auf (Befund 2026-08-23). */
.profil-grid .karte.breit{grid-column:1/-1}
.karte .dtab-werkzeuge{margin-top:var(--a-2)}
main .karte label{display:flex;flex-direction:column;align-items:flex-start;gap:var(--a-1);margin:0 0 var(--a-3)}
main .karte label input:not([type=checkbox]):not([type=radio]){display:block;width:100%;margin:0}
main .karte .feld-grid label{margin:0 0 var(--a-2)}
/* Einwilligungs-Schalter (Gesundheitsangaben): die Felder erscheinen erst
   mit gesetztem Haekchen; die Checkbox selbst ist das Einwilligungs-Feld
   des Formulars (kein Script, CSP-frei). */
main .karte .einwilligung-schalter+label{display:inline}
.einwilligung-schalter:not(:checked)~.gesundheit-felder{display:none}
/* Tabellen-Standard (DatenTabelle): Steuerleiste, Spaltenfilter, Fusszeile.
   Ohne Script fehlt dtab-aktiv - die reine Tabelle bleibt vollstaendig lesbar. */
.dtab:not(.dtab-aktiv) .dtab-werkzeuge,.dtab:not(.dtab-aktiv) .dtab-filterzeile,.dtab:not(.dtab-aktiv) .dtab-fuss{display:none}
.tabellen-rahmen{max-width:100%;overflow:visible}
.tabellen-rahmen table{width:100%;max-width:100%;table-layout:auto}
.tabellen-rahmen th,.tabellen-rahmen td{min-width:0;text-align:left;vertical-align:top;overflow-wrap:anywhere;white-space:normal}
.dtab-werkzeuge{display:flex;flex-wrap:wrap;gap:var(--a-2) var(--a-5);align-items:flex-end;margin:0 0 var(--a-3);max-width:100%}
.dtab-werkzeuge label{max-width:100%;min-width:0}
.dtab-werkzeuge input[type=search]{max-width:min(20rem,100%)}
.dtab-werkzeuge label{font-size:var(--t-m);color:var(--cas-text-mute)}
.dtab-werkzeuge input,.dtab-werkzeuge select{display:block;margin-top:var(--a-1)}
.dtab-suche{min-width:16rem}
.dtab-filterzeile th{padding-top:var(--a-1);padding-bottom:var(--a-2)}
.dtab-filterzeile input{width:100%;min-width:5rem;font-size:var(--t-m);padding:var(--a-1) var(--a-2)}
.dtab-sort{display:flex;align-items:center;gap:var(--a-1);width:100%;min-height:1.75rem;background:none;border:none;box-shadow:none;padding:0;font:inherit;font-weight:600;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.dtab-sort:hover{background:none;color:var(--cas-akt)}
.dtab-sort::after{content:" \2195";color:var(--cas-text-mute)}
th[aria-sort=ascending] .dtab-sort::after{content:" \2191";color:var(--cas-gruen-tief)}
th[aria-sort=descending] .dtab-sort::after{content:" \2193";color:var(--cas-gruen-tief)}
.dtab-fuss{display:flex;flex-wrap:wrap;gap:var(--a-2) var(--a-5);align-items:center;justify-content:space-between;margin:var(--a-2) 0 0}
.dtab-blaettern{display:flex;flex-wrap:wrap;gap:var(--a-2) var(--a-2);align-items:center;font-size:var(--t-m);max-width:100%}
/* Eingabefelder in Tabellenzellen tragen die Breite ihrer Spalte, nicht ihre
   Standardbreite - sonst sprengen editierbare Zeilen die Tabelle (Befund 2026-08-23). */
main table td input:not([type=checkbox]):not([type=radio]),main table td select,main table td textarea{width:100%;min-width:0;box-sizing:border-box;margin:0}
main table td input[type=number],main table td input[type=date]{min-width:0}
main table td{vertical-align:top}
main table td form{display:flex;flex-wrap:wrap;gap:var(--a-1);align-items:flex-start;margin:var(--a-1) 0}
main table td form button,main table td a{max-width:100%;white-space:normal;overflow-wrap:anywhere}
tr[data-href]{cursor:pointer}
tr[data-href]:hover td,tr[data-href]:focus-within td{background:var(--cas-gruen-bg)}
main td form{margin:0}
.hinzufuegen{margin:var(--a-4) 0 0;padding-top:var(--a-3);border-top:1px solid var(--cas-line)}
.hinzufuegen>summary{display:inline-flex;align-items:center;gap:var(--a-2);cursor:pointer;color:var(--cas-link);font-size:var(--t-m);list-style:none}
.hinzufuegen>summary::-webkit-details-marker{display:none}
.hinzufuegen>summary:hover{color:var(--cas-akt)}
.hinzufuegen[open]>summary{margin-bottom:var(--a-4)}
.hinzufuegen-plus{font-weight:600;color:var(--cas-gruen-tief)}
@media (max-width:56rem){
  .tabellen-rahmen table,.tabellen-rahmen tbody,.tabellen-rahmen tr,.tabellen-rahmen td{display:block;width:100%}
  /* display:block schlaegt das [hidden] des Browsers: ohne diese Zeile zeigte
     die Karten-Ansicht alle Zeilen statt der gewaehlten Seite. */
  .tabellen-rahmen tr[hidden],.tabellen-rahmen td[hidden]{display:none}
  /* Die Kopfzeile wird zur Sortierleiste ueber den Karten; jede Zelle traegt
     ihre Beschriftung selbst, aber sortieren muss man auch hier koennen. */
  .tabellen-rahmen thead{display:block;width:100%}
  .tabellen-rahmen thead tr:first-child{display:flex;flex-wrap:wrap;gap:var(--a-1) var(--a-3);margin:0 0 var(--a-3)}
  .tabellen-rahmen thead tr:first-child th{display:block;width:auto;padding:0;border:0}
  .tabellen-rahmen thead .dtab-filterzeile{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
  .tabellen-rahmen tbody{display:grid;gap:var(--a-3)}
  .tabellen-rahmen tbody tr{box-sizing:border-box;padding:var(--a-2);border:1px solid var(--cas-line);border-radius:var(--cas-radius)}
  .tabellen-rahmen tbody td{box-sizing:border-box;display:grid;grid-template-columns:minmax(7rem,.8fr) minmax(0,1.2fr);gap:var(--a-2);padding:var(--a-2);border:0;border-bottom:1px solid var(--cas-line)}
  .tabellen-rahmen tbody td:last-child{border-bottom:0}
  .tabellen-rahmen tbody td:empty{display:none}
  .tabellen-rahmen tbody td::before{content:attr(data-label);font-weight:600;color:var(--cas-text-mute)}
}
/* Folien-Raster (27/28): statische Anteile hier; nur die Rasterkoordinaten je Element sind Daten. */
.folie{border:1px solid var(--cas-line);border-radius:var(--cas-radius);background:var(--cas-bg-card);box-shadow:var(--cas-shadow);margin:var(--a-4) 0;aspect-ratio:16/9;display:grid;gap:4px;padding:8px}
.folie .folien-bild{inline-size:100%;block-size:100%;object-fit:contain;min-inline-size:0;min-block-size:0}
/* Formulare in Tabellenzellen wie in Listenpunkten (Parallelregel zu main li form aus campus-am-see.css). */
main td form{display:inline}
/* KI-Chat-Verlauf: der Faden wird als Ganzes gelesen, Zeilenumbrueche bleiben. */
.verlauf{white-space:pre-wrap;font:inherit}
/* Folien-Rasterkoordinaten (27/28): ganzzahlige Werte aus corporate_design_folien_layout(_platz), statisch als Klassen statt Inline-CSS. */
.raster-s1{grid-template-columns:repeat(1,1fr)}
.raster-z1{grid-template-rows:repeat(1,1fr)}
.cs-1{grid-column-start:1}
.cb-1{grid-column-end:span 1}
.rs-1{grid-row-start:1}
.rh-1{grid-row-end:span 1}
.raster-s2{grid-template-columns:repeat(2,1fr)}
.raster-z2{grid-template-rows:repeat(2,1fr)}
.cs-2{grid-column-start:2}
.cb-2{grid-column-end:span 2}
.rs-2{grid-row-start:2}
.rh-2{grid-row-end:span 2}
.raster-s3{grid-template-columns:repeat(3,1fr)}
.raster-z3{grid-template-rows:repeat(3,1fr)}
.cs-3{grid-column-start:3}
.cb-3{grid-column-end:span 3}
.rs-3{grid-row-start:3}
.rh-3{grid-row-end:span 3}
.raster-s4{grid-template-columns:repeat(4,1fr)}
.raster-z4{grid-template-rows:repeat(4,1fr)}
.cs-4{grid-column-start:4}
.cb-4{grid-column-end:span 4}
.rs-4{grid-row-start:4}
.rh-4{grid-row-end:span 4}
.raster-s5{grid-template-columns:repeat(5,1fr)}
.raster-z5{grid-template-rows:repeat(5,1fr)}
.cs-5{grid-column-start:5}
.cb-5{grid-column-end:span 5}
.rs-5{grid-row-start:5}
.rh-5{grid-row-end:span 5}
.raster-s6{grid-template-columns:repeat(6,1fr)}
.raster-z6{grid-template-rows:repeat(6,1fr)}
.cs-6{grid-column-start:6}
.cb-6{grid-column-end:span 6}
.rs-6{grid-row-start:6}
.rh-6{grid-row-end:span 6}
.raster-s7{grid-template-columns:repeat(7,1fr)}
.raster-z7{grid-template-rows:repeat(7,1fr)}
.cs-7{grid-column-start:7}
.cb-7{grid-column-end:span 7}
.rs-7{grid-row-start:7}
.rh-7{grid-row-end:span 7}
.raster-s8{grid-template-columns:repeat(8,1fr)}
.raster-z8{grid-template-rows:repeat(8,1fr)}
.cs-8{grid-column-start:8}
.cb-8{grid-column-end:span 8}
.rs-8{grid-row-start:8}
.rh-8{grid-row-end:span 8}
.raster-s9{grid-template-columns:repeat(9,1fr)}
.raster-z9{grid-template-rows:repeat(9,1fr)}
.cs-9{grid-column-start:9}
.cb-9{grid-column-end:span 9}
.rs-9{grid-row-start:9}
.rh-9{grid-row-end:span 9}
.raster-s10{grid-template-columns:repeat(10,1fr)}
.raster-z10{grid-template-rows:repeat(10,1fr)}
.cs-10{grid-column-start:10}
.cb-10{grid-column-end:span 10}
.rs-10{grid-row-start:10}
.rh-10{grid-row-end:span 10}
.raster-s11{grid-template-columns:repeat(11,1fr)}
.raster-z11{grid-template-rows:repeat(11,1fr)}
.cs-11{grid-column-start:11}
.cb-11{grid-column-end:span 11}
.rs-11{grid-row-start:11}
.rh-11{grid-row-end:span 11}
.raster-s12{grid-template-columns:repeat(12,1fr)}
.raster-z12{grid-template-rows:repeat(12,1fr)}
.cs-12{grid-column-start:12}
.cb-12{grid-column-end:span 12}
.rs-12{grid-row-start:12}
.rh-12{grid-row-end:span 12}
