@layer screens{
/* ═══ Gemeinsamer Mannschafts-Setup: ein Inhalt, drei Hüllen ═══ */
.ms-host{position:absolute;top:0;left:0;right:0;z-index:var(--z-setup);min-height:calc(100lvh + 1px);background:transparent;overflow-x:hidden}
.ms-host.ms-to-app{opacity:1;transition:opacity var(--motion-splash-out) var(--ease-content-out)}
.ms-host.ms-to-app.aus{opacity:0;pointer-events:none}
.ms-shell{--ms-head-h:calc(var(--entry-head-base) + env(safe-area-inset-top));position:relative;width:100%;max-width:520px;min-height:calc(100lvh + 1px);box-sizing:border-box;margin:0 auto;padding-bottom:0}
.ms-kopf{padding:0 var(--edge)}
.ms-backfoot{text-align:center}
.ms-progress{display:flex;gap:var(--sp-2)}
.ms-progress i{flex:1;height:3px;border-radius:var(--r-chip);background:var(--line)}
.ms-progress i.on{background:var(--hl)}
.ms-titel{margin:var(--sp-6) 0 0;font:800 var(--fs-title)/1.15 var(--f);letter-spacing:-.3px;color:var(--ink)}
.ms-unter{font-size:var(--fs-body);line-height:1.55;color:var(--muted)}
.ms-unter-pin{transform:translateX(-2px)}
.ms-unter-emoji-pin{display:inline-block;transform:translateX(-2px);margin-right:-4px}
.ms-body{padding:0 var(--edge)}
.ms-app .ms-kopf,.ms-app .ms-body{padding-left:var(--edge);padding-right:var(--edge)}
.scr-scroll.ms-app > .ms-fortkopf{width:calc(100% - (2 * var(--edge)));margin-left:var(--edge);margin-right:var(--edge)}
.ms-hilfe{font-size:var(--fs-sub);line-height:1.55;color:var(--muted)}
.ms-sek{display:block;width:100%;border:0;background:transparent;color:var(--hl-text);font:700 var(--fs-body)/1.25 var(--f);padding:var(--sp-4) 0;cursor:pointer;text-align:center}
.ms-sportemoji{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--sp-8);font-size:var(--fs-lead)}

/* Trainer-Erstlauf: bewusst dieselbe optische Schiene wie Anmeldung/Registrierung.
   Die Fachlogik bleibt im gemeinsamen Mannschafts-Setup; nur die Hülle ist auth-nah.
   .ms-host bleibt transparent: die Vollflaechenfarbe liegt wie bei Auth nur auf html/body,
   damit beim nativen iOS-Rubberband keine bewegte Hintergrundfolie sichtbar wird. */
.ms-onboarding{position:relative;display:flex;flex-direction:column;min-height:calc(100lvh + 1px);padding-bottom:0}
.ms-mark{position:fixed;right:-58px;bottom:-70px;width:74%;max-width:340px;opacity:.22;mix-blend-mode:screen;pointer-events:none;user-select:none;filter:blur(1.2px);-webkit-mask-image:radial-gradient(120% 120% at 100% 100%,var(--paint-ms-mark--webkit-mask-image) 42%,var(--paint-ms-mark--webkit-mask-image-2) 68%,transparent 100%);mask-image:radial-gradient(120% 120% at 100% 100%,var(--paint-ms-mark-mask-image) 42%,var(--paint-ms-mark-mask-image-2) 68%,transparent 100%)}
.ms-authhead{position:fixed;top:0;left:0;right:0;z-index:5;flex:0 0 auto;width:100%;max-width:520px;margin:0 auto;box-sizing:border-box;padding:calc(28px + env(safe-area-inset-top)) var(--edge) 20px;
  background:color-mix(in srgb,var(--bg) 72%,transparent);
  backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);
  border-bottom:1px solid transparent;transition:border-color var(--motion-content) var(--ease-state)}
.ms-authhead.eng{border-bottom-color:var(--paint-ms-authhead-border-bottom-color)}

.ms-authhead>img{display:block;height:var(--entry-logo-h);width:auto}
.ms-authhead .ms-progress{width:auto;margin:0}


.ms-authbody{--ms-body-top:calc(var(--ms-head-h) + var(--sp-5));--ms-body-bottom:calc(26px + env(safe-area-max-inset-bottom, env(safe-area-inset-bottom)));position:relative;z-index:1;display:flex;flex-direction:column;min-height:calc(100lvh + 1px);overflow-x:hidden;padding:var(--ms-body-top) var(--edge) var(--ms-body-bottom);box-sizing:border-box}
.ms-page{flex:1;display:flex;flex-direction:column;min-width:0}
.ms-onboarding .ms-page{flex:1 0 auto}
.ms-page.ms-wechsel-alt{position:absolute;top:var(--ms-body-top);right:var(--edge);bottom:var(--ms-body-bottom);left:var(--edge);pointer-events:none}
/* Importierte Kader koennen deutlich hoeher als der Viewport sein. Beim Rueckweg zum
   Spielplan bewegt deshalb nur ein viewportgrosser Clip den aktuell sichtbaren Ausschnitt. */
/* Spezifitaet (.ms-page.…) statt !important: gewinnt gegen .ms-page/.ms-onboarding .ms-page/.ms-wechsel-alt. */
.ms-page.ms-kader-exitclip{position:fixed;inset:0;z-index:2;display:block;width:auto;height:auto;min-height:0;overflow:hidden;contain:paint;pointer-events:none;flex:none}
.ms-onboarding .ms-kopf,.ms-onboarding .ms-body{padding-left:0;padding-right:0}
.ms-onboarding .ms-titel{margin:0;font-size:var(--entry-title-size);font-weight:800;line-height:1.12;letter-spacing:-.6px;color:var(--ink)}
.ms-onboarding .ms-unter{font-size:var(--fs-body);line-height:1.6;color:var(--muted)}
.ms-onboarding .bt-feld i{color:var(--muted)}
.ms-onboarding .bt-feld input,.ms-onboarding .bt-feld select{height:53px;background-color:var(--surface);border:1px solid var(--line);border-radius:14px;padding:15px 16px;font-size:16px}
.ms-onboarding .bt-feld select{padding-right:44px}
.ms-onboarding .bt-feld input:focus,.ms-onboarding .bt-feld select:focus{border-color:var(--hl)}
.ms-onboarding .ms-sek{padding:12px 6px;border:1px solid var(--line-stark);border-radius:var(--r-chip);color:var(--muted);font-size:var(--fs-sub)}

/* Sportarten kompakt ueber die volle Inhaltsbreite: oben drei gleich breite,
   unten zwei gleich breite Kacheln. Das 6er-Raster teilt beide Reihen ohne Sonderbreiten. */
.ms-sportgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--kachel-gap)}
.ms-sportgrid > .ms-sportcard:nth-child(-n+3){grid-column:span 2}
.ms-sportgrid > .ms-sportcard:nth-child(n+4){grid-column:span 3}
.ms-sportcard{position:relative;display:flex;min-width:0;min-height:68px;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-2);border:1px solid transparent;color:var(--muted);font-family:var(--f);cursor:pointer}
.ms-sportcard.an{border-color:color-mix(in srgb,var(--hl) 58%,transparent);color:var(--ink)}
.ms-sportcard .ms-sportemoji{width:auto;flex:0 0 auto;font-size:24px;line-height:1}
.ms-sportcard b{display:block;max-width:100%;font-size:var(--fs-row);font-weight:700;line-height:1.1;text-align:center;color:currentColor}
.ms-sportcheck{position:absolute;top:var(--sp-2);right:var(--sp-2);display:flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:var(--r-chip);background:var(--hl);color:var(--hl-ink)}
.ms-sportcheck svg{width:9px;height:9px}
.ms-name-input{display:block;width:100%;height:53px;box-sizing:border-box;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:400 16px/1.2 var(--f);outline:none;-webkit-appearance:none;appearance:none}
.ms-name-input:focus{border-color:var(--hl)}
.ms-name-input::placeholder{color:var(--muted)}

/* Nummerierte Setup-Abschnitte: gemeinsamer Baustein fuer kleine, klar getrennte
   Teilaufgaben ohne Kartenhuelle oder Trennlinie. */
.ms-setupblock{min-width:0}
.ms-schritt-eb{display:flex;align-items:center;gap:var(--sp-3);min-width:0}
.ms-schritt-nr{display:grid;place-items:center;flex:0 0 var(--sp-6);width:var(--sp-6);height:var(--sp-6);box-sizing:border-box;border:0;border-radius:var(--r-chip);background:var(--info);color:var(--info-ink);font-size:var(--fs-mini);font-weight:800;line-height:1;letter-spacing:0}
.ms-wtag{flex:1;border:0;border-radius:var(--r-field);padding:var(--sp-4) 0;cursor:pointer;background:var(--field);color:var(--muted);font:800 var(--fs-eb)/1 var(--f)}
.ms-wtag.an{background:var(--hl);color:var(--hl-ink)}
.ms-body .tm-tage,.tm-training-settings .tm-tage{display:flex;gap:var(--sp-2)}
.ms-switchzeile{display:flex;align-items:center;gap:var(--sp-4);padding:var(--row-y) var(--row-x)}
.ms-switchzeile > span{flex:1;min-width:0}
.ms-switchzeile b{display:block;font-size:var(--fs-row);font-weight:700;color:var(--ink)}
.ms-switchzeile span i{display:block;margin-top:var(--sp-1);font-style:normal;font-size:var(--fs-sub);color:var(--muted)}
.ms-switchbox,.ms-zeitenbasis,.ms-extra-rowbox{overflow:hidden;transition:height var(--motion-expand) var(--ease-standard)}
.ms-zeitenextras{display:block}
.ms-zeitpaar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-4)}
.ms-zeitpaar label{display:flex;flex-direction:column;justify-content:center;min-width:0;height:53px;box-sizing:border-box;background:var(--field);border:1px solid var(--line);border-radius:var(--r-field);padding:5px var(--sp-4)}
.ms-zeitpaar span{display:block;font-size:var(--fs-eb);font-weight:800;line-height:1;color:var(--muted);text-transform:uppercase;letter-spacing:var(--lsp-eb)}
.ms-zeitpaar input{display:block;width:100%;min-width:0;height:22px;margin-top:var(--sp-1);padding:0;border:0;background:transparent;color:var(--ink);font:400 var(--fs-input)/1.15 var(--f)}
.ms-tzeile{display:block}
.ms-tzeile .tag{display:block;color:var(--muted);font-size:var(--fs-eb);font-weight:800;letter-spacing:var(--lsp-eb)}
/* Trainingsort: Standard bleibt ein Feld; Saisonmodus klappt nur bei Bedarf auf. */
.ms-ortseg{display:flex;gap:var(--sp-2)}
.ms-ortseg button{flex:1;min-width:0;padding:9px 0;border:1px solid var(--line);border-radius:var(--r-chip);background:transparent;color:var(--muted);font:600 var(--fs-sub)/1.2 var(--f);cursor:pointer}
.ms-ortseg button.an{border:var(--klar-line-width,1px) solid var(--hl);color:var(--ink);font-weight:700}
.ms-ortdyn{overflow:hidden;transition:height var(--motion-expand) var(--ease-standard)}
.ms-saisonorte{display:flex;flex-direction:column;gap:var(--kachel-gap)}
.ms-saisonort{padding:var(--row-y) var(--row-x)}
.ms-saisonort-kopf{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}
.ms-saisonort-kopf b{font-size:var(--fs-row);font-weight:700;color:var(--ink)}
.ms-saisonort-kopf label{display:flex;align-items:center;gap:var(--sp-2);color:var(--muted);font-size:var(--fs-sub)}
.ms-saisondatum{position:relative;min-height:30px;cursor:pointer}
.ms-saisondatum > b{color:var(--ink);font:700 var(--fs-body)/1.2 var(--f);border-bottom:1px solid var(--line-stark);padding:2px 0}
.ms-saisondatum:focus-within > b{border-bottom-color:var(--hl)}
.ms-saisondatum input[type="date"]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}

/* Dienste: der automatische Fahrdienst klappt nur seine notwendige Mengenangabe auf. */
.ms-dienstfahrerbox{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--motion-expand) var(--ease-standard)}
.ms-dienstfahrerbox.an{grid-template-rows:1fr}
.ms-dienstfahrerbox > div{min-height:0;overflow:hidden}
.ms-dienstfahrer{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-card);background:var(--field);border:1px solid var(--line)}
.ms-dienstfahrer > span:first-child{flex:1;min-width:0}
.ms-dienstfahrer > span:first-child b{display:block;font-size:var(--fs-row);font-weight:700;color:var(--ink)}
.ms-dienstfahrer > span:first-child i{display:block;margin-top:var(--sp-1);font-style:normal;font-size:var(--fs-sub);color:var(--muted);line-height:1.35}
.ms-dienststep{display:flex;align-items:center;gap:var(--sp-2);flex:0 0 auto;padding:3px;border-radius:var(--r-chip);background:var(--kachel)}
.ms-dienststep button{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:var(--r-chip);background:var(--field);color:var(--ink);font:700 18px/1 var(--f)}
.ms-dienststep > b{display:block;min-width:24px;text-align:center;font-size:var(--fs-row);font-weight:800;color:var(--hl-text)}

/* Wiederaufnahme / Status */
.ms-statusliste{display:flex;flex-direction:column;gap:var(--sp-3)}
.ms-status{display:flex;align-items:center;gap:var(--sp-4);width:100%;box-sizing:border-box;padding:var(--row-y) var(--row-x);border:1px solid transparent;color:inherit;font-family:var(--f);text-align:left}
.ms-status.aktiv{border-color:var(--hl)}
.ms-status.klick{cursor:pointer}
.ms-status.blass{opacity:.5}
.ms-status-nr{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;border:1px solid var(--line-stark);border-radius:var(--r-chip);font-size:var(--fs-eb);font-weight:800;color:var(--muted)}
.ms-status.fertig .ms-status-nr{background:var(--hl);border-color:var(--hl-text);color:var(--hl-ink)}
.ms-status-nr svg{width:15px;height:15px}
.ms-status-tx{flex:1;min-width:0}
.ms-status-tx b{display:block;font-size:var(--fs-row);font-weight:700;color:var(--ink)}
.ms-status-tx i{display:block;margin-top:var(--sp-1);font-style:normal;font-size:var(--fs-sub);color:var(--muted)}
.ms-pille{flex:0 0 auto;border-radius:var(--r-chip);background:var(--hl);color:var(--hl-ink);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-mini);font-weight:800}

/* Verbands-/Kaderquelle */
.ms-quellenkopf{display:flex;align-items:center;gap:var(--sp-4);padding:var(--row-y) var(--row-x);border-radius:var(--r-card);background:var(--kachel)}
.ms-quellenkopf img{display:block;max-width:76px;max-height:32px;object-fit:contain}
.ms-quellenkopf > span:not(.ms-kader-logo){flex:1;min-width:0}
.ms-quellenkopf b{display:block;font-size:var(--fs-row);font-weight:700;color:var(--ink)}
.ms-quellenkopf i{display:block;margin-top:var(--sp-1);font-style:normal;font-size:var(--fs-sub);color:var(--muted)}

/* 359g · Kaderquelle / Verbandsmeldung / Pruefzustand
   Sichtbar nach Claude-Mockup, Fachzustand bleibt in kader.js. */
.ms-kader-eb{line-height:1.2}
.ms-kader-logo{display:flex;align-items:center;justify-content:center;flex:0 0 var(--kreis-kopf);width:var(--kreis-kopf);height:var(--kreis-kopf);border-radius:var(--r-field);background:var(--logo-bg);overflow:hidden}
.ms-kader-logo img{display:block;max-width:calc(100% - var(--sp-3));max-height:calc(100% - var(--sp-3));object-fit:contain}
.ms-kader-check{display:flex;align-items:center;justify-content:center;flex:0 0 var(--sp-8);width:var(--sp-8);height:var(--sp-8);border:1px solid var(--line-stark);border-radius:var(--r-chip);color:transparent}
.ms-kader-check.an{border-color:var(--hl-text);background:var(--hl);color:var(--hl-ink)}
.ms-kader-check svg{width:16px;height:16px}
.ms-kader-sekkopf{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4)}
.ms-kader-sekkopf > span{flex:0 0 auto;font-size:var(--fs-sub);font-weight:700;color:var(--muted)}
.ms-kader-auswahl,.ms-kader-pruefliste{display:flex;flex-direction:column;gap:var(--kachel-gap)}
.ms-kader-person{display:flex;align-items:center;gap:var(--sp-5);width:100%;min-height:76px;padding:var(--sp-4) var(--sp-5);border:1px solid transparent;color:var(--ink);font-family:var(--f);text-align:left}
button.ms-kader-person{cursor:pointer}
.ms-kader-initialen{display:flex;align-items:center;justify-content:center;flex:0 0 var(--kreis-liste);width:var(--kreis-liste);height:var(--kreis-liste);border:1px solid var(--line-stark);border-radius:var(--r-field);background:var(--avatar-bg);font-size:var(--fs-row);font-weight:800;color:var(--hl-text)}
.ms-kader-avatar{display:flex;align-items:flex-end;justify-content:center;flex:0 0 var(--kreis-kopf);width:var(--kreis-kopf);height:var(--kreis-kopf);border-radius:var(--r-field);background:var(--avatar-bg);overflow:hidden;color:var(--muted)}
.ms-kader-avatar svg{width:100%;height:100%;fill:currentColor;stroke:none;opacity:.75}
.ms-kader-person-tx{flex:1;min-width:0}
.ms-kader-person-tx b{display:block;font-size:var(--fs-row);font-weight:800;line-height:1.25;color:var(--ink)}
.ms-kader-person-tx i{display:block;margin-top:var(--sp-2);font-style:normal;font-size:var(--fs-sub);line-height:1.35;color:var(--muted)}
.ms-kader-person-wahl .ms-kader-check{background:transparent;color:transparent}
.ms-kader-person-wahl .ms-kader-check.an{background:var(--hl);color:var(--hl-ink)}
.ms-kader-laden{font-size:var(--fs-sub);color:var(--muted)}
.ms-kader-ergaenzen{display:flex;align-items:center;gap:var(--sp-5);width:100%;min-height:72px;padding:var(--sp-4) var(--sp-5);border:1px dashed var(--line-stark);border-radius:var(--r-card);background:transparent;color:var(--muted);font:500 var(--fs-body)/1.3 var(--f);text-align:left;cursor:pointer}
.ms-kader-plus{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border:2px solid var(--hl);border-radius:var(--r-chip);font-size:var(--fs-lead);font-weight:800;color:var(--hl-text)}
.ms-breit-add{box-shadow:inset 0 0 0 1px var(--hl)}

/* Seltene Familienkollision – erscheint nur bei doppeltem Nachnamen in derselben Mannschaft. */
.ms-familien > .ms-hilfe{margin-bottom:var(--sp-4)}
.ms-famfall{margin-top:var(--sp-3);padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-card);background:var(--kachel)}
.ms-famfall.erledigt{border-color:var(--line-stark)}
.ms-famtitle{display:block;font-size:var(--fs-row);font-weight:800;color:var(--ink)}
.ms-fam-kinder{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-3)}
.ms-fam-kinder span{font-size:var(--fs-body);color:var(--sek)}
.ms-famfrage{margin:var(--sp-5) 0 var(--sp-3);font-size:var(--fs-body);font-weight:700;color:var(--ink)}
.ms-famfall .bt-wahlz:last-child{margin-bottom:0}
.ms-famfall-kopf{display:flex;align-items:center;gap:var(--sp-4)}
.ms-famfall-kopf > span{flex:1;min-width:0}
.ms-famfall-kopf b{display:block;font-size:var(--fs-row);font-weight:700;color:var(--ink)}
.ms-famfall-kopf i{display:block;margin-top:var(--sp-1);font-style:normal;font-size:var(--fs-sub);color:var(--ok)}
.ms-famfall-kopf button,.ms-fam-eins{border:0;background:transparent;color:var(--hl-text);font:700 var(--fs-sub)/1.2 var(--f);cursor:pointer}
.ms-fam-person{margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--line)}
.ms-fam-person > b{display:block;font-size:var(--fs-row);font-weight:700;color:var(--ink)}
.ms-fam-person .bt-feld{margin-top:var(--sp-3)}
.ms-fam-person .ms-fam-zweit{margin-top:var(--sp-2)}
.ms-fam-eins{display:block;margin-top:var(--sp-3);padding:0;text-align:left}
.ms-famfall > .bt-haupt{margin-top:var(--sp-5)}



/* Abschluss */
.ms-fertigliste{display:flex;flex-direction:column;gap:var(--sp-3)}
.ms-fertigzeile{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-row);color:var(--ink)}
.ms-fertigzeile span{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--r-chip);background:var(--hl);color:var(--hl-ink)}
.ms-fertigzeile svg{width:13px;height:13px}
.ms-einladung{padding:var(--sp-5);border:1.5px solid var(--hl);border-radius:var(--r-card);background:var(--kachel)}
.ms-einladung-kopf{display:flex;align-items:flex-start;gap:var(--sp-4)}
.ms-einladung-kopf > span:last-child{flex:1;min-width:0}
.ms-einladung-ic{display:flex;align-items:center;justify-content:center;flex:0 0 var(--sp-8);width:var(--sp-8);font-size:var(--fs-lead);line-height:1}
.ms-einladung b{display:block;font-size:var(--fs-row);font-weight:800;line-height:1.35;color:var(--ink)}
.ms-einladung p{margin:var(--sp-3) 0 0;font-size:var(--fs-body);line-height:1.55;color:var(--muted)}
.ms-einladung .bt-haupt{padding:var(--sp-5) 0}
.ms-link{display:flex;align-items:center;gap:var(--sp-3);width:100%;box-sizing:border-box;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line-stark);border-radius:var(--r-field);background:var(--field);color:var(--sek);font:600 var(--fs-sub)/1.35 var(--f);text-align:left;cursor:pointer}
.ms-link-ic{flex:0 0 auto}
.ms-link-tx{flex:1;min-width:0;word-break:break-all}
.ms-link-copy{display:flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;color:var(--hl-text)}
.ms-link-copy svg{display:block;width:18px;height:18px}

/* Nur die Kader-Ergaenzen-Mehrseiten-Card: gemeinsame 76%-Hoehe; bei laengerem Inhalt scrollt die bestehende Sheet-Huelle. */
.pf-wrap.bt.ms-kader-add-half .pf-sheet{height:76%;max-height:76%}
.pf-wrap.bt.ms-kader-add-half .pf-body{flex:1;overflow-y:auto}
/* Feste Mehrseiten-Card: 1px Scrollreserve, damit iOS auch bei kurzem Inhalt den
   normalen Gummibandeffekt des bestehenden pf-body-Scrollvertrags zeigen kann. */
.pf-wrap.bt.ms-kader-add-half .pf-body > .pf-page{min-height:calc(100% + 1px);box-sizing:border-box}

/* Mannschaft einrichten innerhalb der bestehenden Meine-Mannschaften-Card.
   Die Sheet-Hülle liefert Höhe und Scroll; der Setup-Inhalt nutzt nur Vertragstokens. */
/* Gleiche feste Höhe wie DEIN PROFIL, unabhängig vom Einrichtungsschritt. */
.pf-wrap.bt.ms-setup-card .pf-sheet{height:80%;max-height:80%}
.pf-wrap.bt.ms-setup-card .pf-body{flex:1;min-height:0}
.pf-wrap.bt.ms-setup-card .pf-body > .ms-card-page{min-height:calc(100% + 1px);box-sizing:border-box}
.ms-setup-card .ms-titel{font-size:var(--fs-lead)}
.ms-setup-card .ms-unter{font-size:var(--fs-sub)}
/* Sequenzieller Card-Wechsel: Die bereits gebaute Zielseite darf den Scrollbereich
   erst nach dem vollendeten Exit der Quellseite uebernehmen. */
.pf-wrap.bt.ms-setup-card .pf-body > .ms-card-page.wartet{display:none}
.pf-wrap.bt.ms-setup-card.ms-card-wechsel .pf-fest,
.pf-wrap.bt.ms-setup-card.ms-card-wechsel .ms-card-page{pointer-events:none}
.pf-wrap.bt.ms-setup-card .ms-app{min-height:100%;box-sizing:border-box}
}

@layer zustaende{
/* TEAM-Einrichtung: Profil/Mehr-Menükacheln; Erstregistrierung bleibt eigenständig. */
body[data-layout="klar"] .ms-team-setup .ms-app{padding-inline:var(--edge)}
body[data-layout="klar"] .ms-team-setup :is(.ms-kopf,.ms-body){padding-inline:0}
body[data-layout="klar"] .ms-team-setup .ms-titel{font-size:var(--fs-title);font-weight:var(--klar-fw-title)}
body[data-layout="klar"] .ms-team-setup .ms-unter-pin{transform:none}
body[data-layout="klar"] .ms-team-setup .ms-unter-emoji-pin{transform:none;margin-right:0}
body[data-layout="klar"] .ms-team-setup :is(.ms-statusliste,.ms-sportgrid,.ms-dienstoptionen,.ms-kader-pruefliste,.ms-kader-auswahl){display:flex;flex-direction:column;gap:0}
body[data-layout="klar"] .ms-team-setup :is(.ms-status,.ms-dienstwahl,.ms-kader-person){position:relative;box-sizing:border-box;min-width:0;width:100%;min-height:var(--kreis-kopf);border:0;border-radius:0;background:transparent;box-shadow:none;padding:var(--sp-4);gap:var(--sp-4);color:var(--klar-ink)}
body[data-layout="klar"] .ms-team-setup :is(.ms-status,.ms-dienstwahl,.ms-kader-person) + :is(.ms-status,.ms-dienstwahl,.ms-kader-person),
body[data-layout="klar"] .ms-team-setup .ms-dienstfahrerbox + .ms-dienstwahl{border-top:var(--klar-line-width) solid var(--klar-line)}
body[data-layout="klar"] .ms-team-setup :is(.ms-status-nr,.ms-kader-check,.ms-fertigzeile span){background:transparent;border:var(--klar-line-width) solid var(--klar-line);color:var(--klar-sub)}
body[data-layout="klar"] .ms-team-setup :is(.ms-status.fertig .ms-status-nr,.ms-kader-check.an,.ms-fertigzeile span){background:transparent;border-color:var(--klar-accent-line);color:var(--klar-accent)}
body[data-layout="klar"] .ms-team-setup .ms-pille{background:transparent;color:var(--klar-accent);font-weight:var(--klar-fw-label)}
body[data-layout="klar"] .ms-team-setup :is(.ms-status-tx,.ms-kader-person-tx,.ms-dienstwahl .tx){min-width:0;flex:1}
body[data-layout="klar"] .ms-team-setup :is(.ms-status-tx b,.ms-kader-person-tx b,.ms-dienstwahl .tx b){font-size:var(--fs-row);font-weight:var(--klar-fw-row);line-height:1.45}
body[data-layout="klar"] .ms-team-setup :is(.ms-status-tx i,.ms-kader-person-tx i,.ms-dienstwahl .tx i){font-size:var(--fs-sub);font-weight:var(--klar-fw-title);line-height:1.45}
body[data-layout="klar"] .ms-team-setup :is(.ms-name-input,.bt-feld input,.bt-feld select,.kd-hwfeld input){min-width:0;width:100%;box-sizing:border-box;height:calc(var(--sp-8) + var(--sp-4));padding-block:0;padding-inline:var(--sp-4);border:var(--klar-line-width) solid var(--klar-line);border-radius:var(--r-field);background-color:var(--klar-surface-subtle);color:var(--klar-ink);font:var(--klar-fw-title) var(--fs-input)/1.4 var(--f);box-shadow:none}
body[data-layout="klar"] .ms-team-setup :is(.ms-name-input,.bt-feld input,.bt-feld select,.kd-hwfeld input):focus{outline:none;box-shadow:none;border-color:var(--klar-accent)}
body[data-layout="klar"] .ms-team-setup .bt-feld select{appearance:none;-webkit-appearance:none;padding-right:var(--kreis-liste);background-image:linear-gradient(45deg,transparent 50%,var(--klar-sub) 50%),linear-gradient(135deg,var(--klar-sub) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
body[data-layout="klar"] .ms-team-setup :is(.ms-zeitpaar,.ms-saisonort-kopf){gap:var(--sp-4)}
body[data-layout="klar"] .ms-team-setup .ms-zeitpaar label{height:auto;min-height:var(--kreis-kopf);padding:var(--sp-3) var(--sp-4);background:var(--klar-surface-subtle);border:var(--klar-line-width) solid var(--klar-line);border-radius:var(--r-field)}
body[data-layout="klar"] .ms-team-setup .ms-zeitpaar input{height:var(--sp-7);border:0;outline:none;box-shadow:none;min-width:0;color:var(--klar-ink)}
body[data-layout="klar"] .ms-team-setup .ms-zeitpaar label:focus-within{border-color:var(--klar-accent)}
body[data-layout="klar"] .ms-team-setup .ms-ortseg{padding:var(--sp-1);border:var(--klar-line-width) solid var(--klar-line);border-radius:var(--r-chip);background:var(--klar-surface-subtle);gap:var(--sp-1)}
body[data-layout="klar"] .ms-team-setup .ms-ortseg button{border:0;min-height:var(--kreis-liste);font-weight:var(--klar-fw-row);color:var(--klar-sub)}
body[data-layout="klar"] .ms-team-setup .ms-ortseg button.an{background:var(--klar-active);color:var(--klar-accent)}
body[data-layout="klar"] .ms-team-setup :is(.ms-saisonort,.ms-switchzeile){border-radius:var(--r-card);padding:var(--sp-4)}
body[data-layout="klar"] .ms-team-setup .ms-saisonort-kopf{flex-wrap:wrap}
body[data-layout="klar"] .ms-team-setup .ms-dienstfahrer{border:0;border-radius:0;background:transparent;padding:var(--sp-4) 0;flex-wrap:nowrap}
body[data-layout="klar"] .ms-team-setup .ms-dienstfahrer > .pf-row-tx{flex:1;min-width:0}
body[data-layout="klar"] .ms-team-setup .ms-dienststep{margin-left:auto;padding:0}
body[data-layout="klar"] .ms-team-setup .ms-dienststep > b{min-width:var(--sp-6);font-weight:var(--klar-fw-row)}
body[data-layout="klar"] .ms-team-setup .ms-dienstwahl .hk.an{background:transparent;color:var(--klar-accent);border-color:var(--klar-accent)}
body[data-layout="klar"] .ms-team-setup .ms-dienststep{background:transparent}
body[data-layout="klar"] .ms-team-setup .ms-dienststep button{border:var(--klar-line-width) solid var(--klar-line);border-radius:var(--r-chip);background:transparent;width:var(--sp-6);height:var(--sp-6);min-width:var(--sp-6);min-height:var(--sp-6);padding:0;font-size:var(--fs-row);font-weight:var(--klar-fw-row)}
body[data-layout="klar"] .ms-team-setup :is(.ms-quellenkopf,.ms-einladung,.ms-fertigliste){padding:var(--sp-4)}
body[data-layout="klar"] .ms-team-setup .ms-fertigliste{gap:var(--sp-4)}
body[data-layout="klar"] .ms-team-setup :is(.ms-sek,.ms-kader-ergaenzen){border:var(--klar-line-width) solid var(--klar-accent-line);border-radius:var(--r-chip);background:transparent;color:var(--klar-accent)}
body[data-layout="klar"] .ms-team-setup .ms-sek{min-height:calc(var(--sp-8) + var(--sp-4))}
body[data-layout="klar"] .ms-team-setup .ms-setupblock > .ms-name-input{width:calc(100% - var(--sp-3))}
body[data-layout="klar"] .ms-team-setup .kd-stapel.ez-menu-group{gap:0}
body[data-layout="klar"] .ms-team-setup .kd-stapel.ez-menu-group > .kd-karte{border:0;border-radius:0;background:transparent;padding:var(--sp-4)}
body[data-layout="klar"] .ms-team-setup .kd-stapel.ez-menu-group > .kd-karte + .kd-karte:not(.kd-hwfeld):not(.kd-hwfeld + .kd-schaltz){border-top:var(--klar-line-width) solid var(--klar-line)}
body[data-layout="klar"] .ms-team-setup :is(.ms-status,.ms-dienstwahl,.ms-kader-person):active{background:transparent}
}

@layer zustaende{
body[data-layout="klar"] .ms-team-setup .ms-unter{display:flex;align-items:baseline;gap:var(--sp-2)}
body[data-layout="klar"] .ms-team-setup .ms-unter-emoji{flex:0 0 auto}
body[data-layout="klar"] :is(.ms-team-setup,.tm-training-settings) .ms-wtag{min-height:calc(var(--sp-8) + var(--sp-4));padding:0;border:var(--klar-line-width) solid var(--klar-line);background:transparent;color:var(--klar-sub);font-weight:var(--klar-fw-row)}
body[data-layout="klar"] :is(.ms-team-setup,.tm-training-settings) .ms-wtag.an{border-color:var(--klar-accent);background:transparent;color:var(--klar-accent)}
}

@layer screens{
/* Freigegebene Familienkachel: Profil-Textachse, echte Personenavatare. */
.ms-family-card{--family-photo:var(--kreis-liste);--family-axis:calc(var(--kreis-liste) + var(--sp-4));overflow:visible}
.ms-family-summary,.ms-family-intro{display:grid;grid-template-columns:var(--fs-row) minmax(0,1fr);gap:var(--sp-4);align-items:start}
.ms-family-icon{width:var(--fs-row);font-size:var(--fs-row);line-height:1.45;text-align:center}
.ms-family-summary b,.ms-family-intro b{display:block;font-size:var(--fs-row);font-weight:600;line-height:1.45;color:var(--ink)}
.ms-family-summary small,.ms-family-intro small,.ms-family-player-copy small{display:block;font-size:var(--fs-sub);line-height:1.45;color:var(--muted)}
.ms-family-player{position:relative;display:grid;grid-template-columns:var(--family-photo) minmax(0,1fr);gap:var(--sp-4);align-items:center}
.ms-family-player+.ms-family-player::before{content:"";position:absolute;top:0;left:var(--family-axis);right:0;height:var(--klar-line-width);background:var(--klar-line)}
.ms-family-photo{display:flex;align-items:center;justify-content:center;width:var(--family-photo);height:var(--family-photo);border-radius:var(--r-avatar,10px);overflow:hidden;background:var(--avatar-bg)}
.ms-family-photo img{display:block;width:100%;height:100%;object-fit:cover}
.ms-family-player-copy{min-width:0;overflow-wrap:anywhere}
.ms-family-player-copy b{display:block;font-size:var(--fs-row);font-weight:var(--klar-fw-row);line-height:1.45;color:var(--ink)}
.ms-family-actions{display:grid}
.ms-family-choice{display:flex;align-items:center;justify-content:center;width:100%;box-sizing:border-box;min-height:44px;border:var(--klar-line-width) solid var(--klar-line);border-radius:var(--r-chip);background:transparent;color:var(--ink);font:var(--fs-sub)/1.4 var(--f);cursor:pointer;text-align:center}
.ms-family-choice[aria-pressed="true"],.ms-family-save{color:var(--hl-text);border-color:var(--klar-accent-line)}
.ms-family-choice:focus-visible{outline:2px solid var(--hl-text);outline-offset:3px}
.ms-family-choice:disabled{cursor:wait;opacity:.6}
.ms-family-fold{display:grid;grid-template-rows:0fr;opacity:0}
.ms-family-fold.is-open{grid-template-rows:1fr;opacity:1}
.ms-family-clip{min-height:0;overflow:hidden}
.ms-family-info.bt-info{display:grid;grid-template-columns:var(--fs-row) minmax(0,1fr);gap:var(--sp-4)}
.ms-family-info .bt-info-ic{width:var(--fs-row);text-align:center}
}
