/* Manrope (Markenschrift RailMentis, SIL OFL 1.1, Lizenz: fonts/OFL-Manrope.txt). Wird nur geladen, wenn die Marke sie verwendet. */
@font-face{font-family:'Manrope';src:url(fonts/Manrope-Variable.ttf) format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
/* Layout: App-Shell. Links eine Karte mit Logo und Navigation, rechts ein türkiser Hero und darunter Karten. Üben/Prüfen als Aufgabenliste plus große Antwortkarten.
   Farben aus dem eurobahn-Leitfaden. Primär: Blau 253876, Hellblau 5578AA, Türkis 3FA4A9, Helltürkis 87D7DC. Gestaltung: Grau 5F5F5F, Hellgrau BEBEBE. Akzent: Gelb FFD900.
   Sekundär (Themenfarben und Status): Orange F08C32, Violett 644696, Grün 46AA46, Rot F00014. Schrift: Arial wie im Leitfaden. */
:root{
  --nbtn:var(--navy);
  --navy:#253876; --blue:#5578aa; --teal:#3fa4a9; --teal-lt:#87d7dc; --yellow:#ffd900; --grey:#5f5f5f; --grey-lt:#bebebe;
  --orange:#f08c32; --violet:#644696; --green:#46aa46; --red:#f00014;
  --bg:#eef6f7; --card:#ffffff; --tint:#e6f4f5; --ink:#3c3c3c; --muted:#5f5f5f; --line:#d6e7ea; --line2:#9ccbd0;
  --ok:#2b7a2b; --ok-bg:#e4f5e4; --bad:#c5000f; --bad-bg:#fde8ea;
  --shadow:0 1px 2px rgba(37,56,118,.07),0 10px 28px rgba(37,56,118,.07);
  --f:Arial,Helvetica,sans-serif;
  --mono:ui-monospace,Consolas,"Courier New",monospace;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--f);padding:16px}
button,input,select,textarea{font:inherit}
.btn:active,.chip:active{transform:scale(.98)}
:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
h1,h2,h3{color:var(--navy);margin:0;text-wrap:balance;letter-spacing:-.01em}
h2{font-size:1.2rem;margin-bottom:12px}
h3{font-size:1rem;margin-bottom:10px}

.app{max-width:1520px;margin:0 auto;display:grid;grid-template-columns:248px minmax(0,1fr);gap:20px;align-items:start}
.content{min-width:0}

/* Seitenleiste */
.side{position:sticky;top:16px;background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:20px 14px 16px;display:flex;flex-direction:column;gap:18px;min-height:560px}
.logo{padding:0 6px}
.logo img{display:block;height:38px;width:auto;max-width:100%}
.prod{font-size:.78rem;color:var(--muted);line-height:1.35;padding:0 6px;margin-top:-8px}
nav{display:grid;gap:4px}
nav button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 12px;border:0;border-radius:12px;background:none;color:var(--grey);font-weight:700;cursor:pointer}
nav button svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
nav button:hover{background:var(--tint);color:var(--navy)}
nav button[aria-current="page"]{background:var(--nbtn);color:#fff}
.side-foot{margin-top:auto;padding:0 6px;display:grid;gap:8px}
.badge{justify-self:start;font:700 .7rem var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--yellow);color:var(--navy);padding:5px 9px;border-radius:6px}
.side-foot p{margin:0;font-size:.78rem;color:var(--muted)}
/* Handy und Tablet: App-Gefühl mit Kopfleiste oben und schwebender Tab-Leiste unten */
.tabbar,.sheet,.avatar{display:none}
@media (max-width:900px){
  html{-webkit-text-size-adjust:100%}
  body{overflow-x:clip;padding:0 max(14px,env(safe-area-inset-right)) calc(104px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
  body.insession{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
  .app{grid-template-columns:minmax(0,1fr);gap:14px;max-width:760px}
  .side{position:sticky;top:0;z-index:20;min-height:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;
    margin:0 -14px;border-radius:0 0 20px 20px;padding:calc(10px + env(safe-area-inset-top)) 18px 10px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
  .logo{padding:0}
  .logo img{height:30px}
  .prod,.side>nav,.side-foot{display:none}
  .avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:0;background:var(--nbtn);color:#fff;font:700 .95rem var(--f);letter-spacing:.02em;cursor:pointer}
  .tabbar{display:flex;position:fixed;z-index:30;left:50%;transform:translateX(-50%);bottom:calc(10px + env(safe-area-inset-bottom));width:min(calc(100% - 20px),560px);gap:2px;padding:6px;
    background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px);border-radius:26px;box-shadow:0 6px 30px rgba(37,56,118,.22),0 0 0 1px rgba(37,56,118,.06)}
  .tabbar button{flex:1 1 0;min-width:0;display:grid;justify-items:center;gap:3px;padding:8px 2px 7px;border:0;border-radius:20px;background:none;color:var(--grey);font:700 .66rem/1.1 var(--f);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .18s,color .18s,transform .12s}
  .tabbar button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .tabbar button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tabbar button:active{transform:scale(.94)}
  .tabbar button[aria-current="page"]{background:var(--nbtn);color:#fff}
  body.insession .tabbar{display:none}
  .sheet{display:block;position:fixed;inset:0;z-index:40}
  .sheet[hidden]{display:none}
  .sheet-back{position:absolute;inset:0;background:rgba(20,30,70,.4);animation:fade .2s ease both}
  .sheet-panel{position:absolute;left:50%;bottom:0;width:min(100%,560px);max-height:calc(82vh / var(--z,1));max-height:calc(82dvh / var(--z,1));overflow:auto;transform:translateX(-50%);background:#fff;border-radius:26px 26px 0 0;padding:10px 18px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(20,30,70,.25);animation:slide .26s cubic-bezier(.2,.8,.2,1) both}
  .sheet-grip{width:44px;height:5px;border-radius:3px;background:var(--line2);margin:2px auto 14px}
  .sheet h2{margin:0 0 12px;font-size:1.15rem}
  .sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .sheet-grid button{display:grid;justify-items:center;gap:8px;padding:16px 6px;border:0;border-radius:18px;background:var(--tint);color:var(--navy);font:700 .8rem/1.2 var(--f);cursor:pointer;text-align:center}
  .sheet-grid button svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .sheet-grid button[aria-current="page"]{background:var(--nbtn);color:#fff}
  .sheet-user{display:flex;align-items:center;gap:14px;margin-bottom:14px}
  .sheet-user .avatar{display:grid;width:52px;height:52px;font-size:1.1rem;cursor:default}
  .sheet-user b{display:block;color:var(--navy);font-size:1.05rem}
  .sheet-user span{font-size:.85rem;color:var(--muted)}
  .sheet-list{display:grid;gap:8px}
  .sheet-list .btn{width:100%;text-align:center;min-height:48px}
  body.noscroll{overflow:hidden}
  @keyframes slide{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}
  @keyframes fade{from{opacity:0}to{opacity:1}}
  #main>*{animation:rise .3s ease both}
  @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  /* Bedienung mit dem Finger */
  input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{font-size:16px;min-height:46px}
  .btn{min-height:46px}
  .btn.sm{min-height:40px}
  .chip{min-height:42px}
  .session .opt{padding:16px}
  /* Prüfungsansicht: Aufgabenliste als Streifen statt langer Liste */
  .session .tasks{display:flex;overflow-x:auto;gap:8px;padding:10px 12px;scrollbar-width:none}
  .session .tasks::-webkit-scrollbar{display:none}
  .session .task{flex:none;width:auto;padding:4px}
  .session .task .t{display:none}
  .session .task .n{width:34px;height:34px;font-size:.85rem}
  .session .row .btn{flex:1 1 auto}
  .hero{margin-top:2px}
}
@media (prefers-reduced-motion:reduce){#main>*,.sheet-back,.sheet-panel{animation:none!important}.tabbar button{transition:none}}

/* Hero */
.hero{position:relative;overflow:hidden;border-radius:18px;padding:28px 30px;background:linear-gradient(110deg,var(--teal-lt),var(--hero2,#d6f1f3));color:var(--navy);margin-bottom:20px}
.hero>*{position:relative;z-index:1}
.hero h1{font-size:clamp(1.7rem,3.2vw,2.3rem);line-height:1.08}
.hero .lead{margin:8px 0 0;max-width:54ch;font-size:1rem}
.hero.compact{padding-block:18px}
.hero.compact .lead{display:none}
.hero.compact h1{font-size:1.5rem}
@media (max-width:700px){.hero{padding:18px 18px;border-radius:20px;margin-bottom:14px}.hero h1{font-size:1.55rem}.hero .lead{font-size:.92rem;margin-top:6px}.card{padding:18px;border-radius:20px}.kpi{padding:16px}.res{gap:16px}}

/* Karten, Buttons, Chips */
.card{background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:24px}
.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.card{min-width:0}
.btn{border:0;border-radius:12px;padding:12px 20px;font-weight:700;cursor:pointer;background:var(--nbtn);color:#fff;transition:background .15s}
.btn:hover{background:var(--navy-d,#1c2c62)}
.btn.sec{background:var(--tint);color:var(--navy)}
.btn.sec:hover{background:var(--line)}
.btn.end{background:#fff;color:var(--bad);box-shadow:inset 0 0 0 2px var(--red)}
.btn.end:hover{background:var(--bad-bg)}
.btn.sm{padding:7px 12px;font-size:.84rem}
.btn:disabled{opacity:.4;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.86rem;padding:8px 14px;border-radius:99px;background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--line2);cursor:pointer;border:0}
.chip:hover{background:var(--tint)}
.chip[aria-pressed="true"]{background:var(--nbtn);color:#fff;box-shadow:none}
.chip .ct{font-weight:400;opacity:.8}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}
.pill{display:inline-block;font-size:.76rem;font-weight:700;padding:3px 10px;border-radius:99px;white-space:nowrap}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}
.pill.warn{background:var(--yellow);color:var(--navy)}
.pill.neutral{background:var(--tint);color:var(--muted)}
.note{font-size:.84rem;color:var(--muted)}
.msg{font-size:.9rem;margin:0}
.msg.err{color:var(--bad);font-weight:700}
label.f{display:grid;gap:6px;font-weight:700;font-size:.88rem;color:var(--navy)}
input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{color:var(--ink);background:#fff;border:1.5px solid var(--line2);border-radius:10px;padding:10px 12px;width:100%;font-weight:400}
textarea{min-height:76px;resize:vertical}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.fact{background:var(--tint);border-radius:12px;padding:12px 14px}
.fact b{display:block;font-size:1.25rem;color:var(--navy);line-height:1.2;font-variant-numeric:tabular-nums}
.fact span{font-size:.8rem;color:var(--muted)}
.setup{display:grid;gap:20px}

/* Durchführung */
.sbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:10px}
.sbar b{color:var(--navy)}
.timer{font:700 1rem var(--mono);background:var(--nbtn);color:#fff;padding:6px 14px;border-radius:99px;font-variant-numeric:tabular-nums}
.timer.low{background:var(--red)}
.prog{display:flex;gap:5px;margin-bottom:18px}
.prog i{flex:1;height:7px;border-radius:4px;background:#cfe3e6}
.prog i.ans{background:var(--blue)}
.prog i.ok{background:var(--green)}
.prog i.bad{background:var(--red)}
.prog i.cur{outline:2px solid var(--navy);outline-offset:2px}
.session{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:860px){.session{grid-template-columns:minmax(0,1fr)}}
.tasks{display:grid;gap:4px;padding:12px}
.task{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:none;border:0;border-radius:10px;padding:9px 10px;color:var(--ink);cursor:pointer;min-width:0;font-size:.88rem}
.task:hover{background:var(--tint)}
.task[aria-current="true"]{background:var(--tint);box-shadow:inset 0 0 0 2px var(--navy)}
.task .n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.76rem;font-weight:700;background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--line2)}
.task .n.ans{background:var(--blue);color:#fff;box-shadow:none}
.task .n.ok{background:var(--green);color:#fff;box-shadow:none}
.task .n.bad{background:var(--red);color:#fff;box-shadow:none}
.task .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.q-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.tag{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;padding:4px 10px;border-radius:99px;background:var(--tint);color:var(--navy)}
.tag.mono{font-family:var(--mono);font-weight:400}
.q-text{font-size:1.3rem;font-weight:700;line-height:1.3;margin:0 0 4px;max-width:60ch;color:var(--navy);text-wrap:balance}
.hint{color:var(--muted);font-size:.86rem;margin:0 0 18px}
.opts{display:grid;gap:10px;margin-bottom:18px}
.opt{display:flex;gap:14px;align-items:center;border-radius:14px;padding:14px 16px;cursor:pointer;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line2);transition:box-shadow .12s,background .12s}
.opt:hover{box-shadow:inset 0 0 0 2px var(--teal)}
.opt:has(input:checked){background:var(--tint);box-shadow:inset 0 0 0 2px var(--navy)}
.opt .tx{flex:1;min-width:0}
.opt .ic{flex:none;font-size:.8rem;font-weight:700}
input.cb{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:0;border-radius:7px;border:2px solid var(--blue);background:#fff;cursor:pointer}
input.cb:checked{background:var(--nbtn) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px no-repeat;border-color:var(--navy)}
input.cb:disabled{cursor:default}
.opt.ok{background:var(--ok-bg);box-shadow:inset 0 0 0 2px var(--green)}
.opt.ok .ic{color:var(--ok)}
.opt.bad{background:var(--bad-bg);box-shadow:inset 0 0 0 2px var(--red)}
.opt.bad .ic{color:var(--bad)}
.opt.miss{background:#fff;box-shadow:inset 0 0 0 2px var(--green);border-radius:14px}
.opt.miss .ic{color:var(--ok)}
.opt.ok:hover,.opt.bad:hover,.opt.miss:hover{box-shadow:inset 0 0 0 2px var(--green)}
.opt.bad:hover{box-shadow:inset 0 0 0 2px var(--red)}
.expl{background:var(--tint);border-radius:14px;padding:14px 16px;margin-bottom:18px;font-size:.92rem}
.expl b{color:var(--navy)}

/* Ergebnis */
.res{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;margin-bottom:22px}
.ring{position:relative;width:140px;height:140px;flex:none}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring .c{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.ring .c b{font-size:2rem;line-height:1;color:var(--navy)}
.ring .c span{font-size:.78rem;color:var(--muted)}
.res h2{font-size:1.5rem;margin-bottom:6px}

/* Tabellen */
.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:left;font-weight:700;padding:10px 12px;border-bottom:2px solid var(--line);white-space:nowrap}
td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:hover{background:#f6fbfb}
td.id{font-family:var(--mono);font-size:.8rem;white-space:nowrap}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.th-cell{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
pre.proto{background:var(--tint);border-radius:12px;padding:16px;font:.8rem/1.6 var(--mono);white-space:pre-wrap;overflow-x:auto;margin:0 0 14px;color:var(--ink)}
details.new summary{cursor:pointer;font-weight:700;color:var(--navy);list-style:none;display:flex;align-items:center;gap:10px}
details.new summary::before{content:"+";display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--nbtn);color:#fff;font-size:1.2rem;line-height:1}
details.new[open] summary::before{content:"–"}
.opt-edit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.opt-edit label.c{display:flex;gap:8px;align-items:center;font-size:.85rem;white-space:nowrap}

/* Auswertung */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.kpi{display:flex;gap:16px;align-items:center;padding:20px}
.kpi .ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;flex:none}
.kpi .ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kpi .v{font-size:1.9rem;font-weight:700;line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.kpi .l{font-size:.82rem;color:var(--muted)}
.bars{display:grid;gap:16px;margin-bottom:12px}
.bar{display:grid;grid-template-columns:minmax(130px,200px) minmax(0,1fr) 96px;gap:14px;align-items:center;font-size:.92rem}
.bar .lb{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--navy)}
.bar .track{position:relative;height:14px;background:var(--tint);border-radius:7px}
.bar .fill{height:100%;background:var(--blue);border-radius:7px}
.bar .fill.low{background:var(--red)}
.bar .mk{position:absolute;top:-5px;bottom:-5px;width:3px;border-radius:2px;background:var(--nbtn)}
.bar .val{text-align:right;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.bar .val small{font-weight:400;color:var(--muted)}
@media (max-width:560px){.bar{grid-template-columns:1fr 80px}.bar .track{grid-column:1/-1;grid-row:2}}
.legend{display:flex;align-items:center;gap:8px}
.legend i{width:3px;height:14px;background:var(--nbtn);border-radius:2px;display:inline-block}

/* ---------- Plattform: Login, Konto, Verwaltung ---------- */
.login-wrap{min-height:calc(100vh / var(--z,1) - 32px);min-height:calc(100dvh / var(--z,1) - 32px);display:grid;place-items:center}
.login{width:min(440px,100%);padding:0;overflow:hidden}
.login .top{background:linear-gradient(110deg,var(--teal-lt),var(--hero2,#d6f1f3));padding:26px 28px 22px;position:relative}
.login .top img{display:block;height:40px;width:auto;margin-bottom:14px}
.login .top h1{font-size:1.45rem}
.login .top p{margin:6px 0 0;color:var(--navy);font-size:.92rem}
.login form{padding:26px 28px 28px;display:grid;gap:16px}
.userbox{display:grid;gap:6px;padding:12px;background:var(--tint);border-radius:12px;font-size:.84rem}
.userbox b{color:var(--navy);display:block;overflow-wrap:anywhere}
.userbox .row{gap:6px}
.linkbtn{background:none;border:0;padding:0;color:var(--navy);font-weight:700;font-size:.82rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.mutedrow{opacity:.55}
td select{width:auto;padding:6px 8px;font-size:.85rem}
.colorin{width:48px;height:40px;padding:2px;border-radius:10px;border:1.5px solid var(--line2);background:#fff;cursor:pointer}
.audit td{font-size:.82rem}
.empty{text-align:center;padding:36px 16px;color:var(--muted)}
.empty b{display:block;color:var(--navy);font-size:1.05rem;margin-bottom:4px}
.toast{margin:0 0 16px;padding:12px 16px;border-radius:12px;font-weight:700;font-size:.9rem}
.toast.ok{background:var(--ok-bg);color:var(--ok)}
.toast.err{background:var(--bad-bg);color:var(--bad)}

/* Prüfungsarten, Seitentexte */
.artbox{border:1.5px solid var(--line2);border-radius:14px;padding:16px;display:grid;gap:14px;min-width:0;margin:0}
.artbox legend{font-weight:700;color:var(--navy);padding:0 8px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:700px){.grid3{grid-template-columns:minmax(0,1fr)}}
.chk{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem;color:var(--navy);cursor:pointer;padding:6px 12px;border-radius:99px;box-shadow:inset 0 0 0 1.5px var(--line2);background:#fff}
.notice{background:var(--yellow-lt,#fff6c2);color:var(--navy);border-radius:14px;padding:14px 18px;margin-bottom:16px;white-space:pre-line;box-shadow:inset 0 0 0 1.5px var(--yellow)}
.foot{margin:24px 4px 4px;color:var(--muted);font-size:.84rem;white-space:pre-line;text-align:center}

/* Design, Menü, Freischaltung */
.colorrow{display:flex;align-items:center;gap:12px}
.colorrow code{font-family:var(--mono);font-weight:400;color:var(--ink)}
.logoprev{background:repeating-conic-gradient(#f2f2f2 0 25%,#fff 0 50%) 0 0/16px 16px;border:1.5px solid var(--line2);border-radius:12px;padding:18px;display:flex;align-items:center;min-height:80px}
.logoprev img{height:40px;width:auto;max-width:100%}
.filebtn{display:inline-flex;align-items:center;cursor:pointer;position:relative;overflow:hidden}
.filebtn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.menu{display:grid;gap:12px}
.mrow{display:grid;grid-template-columns:auto minmax(160px,220px) minmax(0,1fr) auto;gap:12px 16px;align-items:center;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px}
.mmove{display:grid;gap:4px}
.mroles .chips{gap:6px;margin-top:6px}
.macts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
.chk.sm{padding:4px 10px;font-size:.82rem}
@media (max-width:980px){.mrow{grid-template-columns:auto minmax(0,1fr)}.mroles,.macts{grid-column:1/-1;justify-content:flex-start}}
.btn.end.sm{padding:7px 12px}

/* Seiten */
.pg{display:grid;gap:14px;align-content:start}
.pg-h{margin:6px 0 0}
h2.pg-h{font-size:1.5rem}
h3.pg-h{font-size:1.15rem}
.pg-p{margin:0;white-space:pre-line;max-width:72ch}
.pg-btn{margin:0}
.pg-btn .btn,.pg a.btn{display:inline-block;text-decoration:none}
.pg-img{margin:0}
.pg-img img{display:block;max-width:100%;height:auto;border-radius:12px}
.pg-img.half img{max-width:50%}
@media (max-width:700px){.pg-img.half img{max-width:100%}}
.pg-box{border-radius:14px;padding:14px 18px;display:grid;gap:4px;white-space:pre-line}
.pg-box b{color:var(--navy)}
.pg-box.info{background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--line2)}
.pg-box.warn{background:#fff6c2;box-shadow:inset 0 0 0 1.5px var(--yellow)}
.pg-box.ok{background:var(--ok-bg);box-shadow:inset 0 0 0 1.5px var(--green)}
.pg-hr{border:0;border-top:2px solid var(--line);margin:4px 0;width:100%}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.tile{display:grid;gap:4px;text-align:left;text-decoration:none;color:var(--ink);background:var(--tint);border:0;border-radius:14px;padding:16px;font:inherit;align-content:start}
.tile b{color:var(--navy);font-size:1.02rem}
.tile span{font-size:.9rem;color:var(--muted)}
button.tile,a.tile{cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line2)}
button.tile:hover,a.tile:hover{box-shadow:inset 0 0 0 2px var(--navy)}
.pg-cols{display:grid;gap:18px;align-items:start}
.pg-cols.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg-cols.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pg-cols>div{display:grid;gap:14px;min-width:0}
@media (max-width:700px){.pg-cols.n2,.pg-cols.n3{grid-template-columns:minmax(0,1fr)}}
.pg-t th{text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--navy)}
.prev{box-shadow:inset 0 0 0 2px var(--line2);background:var(--bg)}

/* Seiten-Editor */
.bks{display:grid;gap:12px}
.bk{border:1.5px solid var(--line2);border-radius:14px;padding:12px 14px;display:grid;gap:12px;background:#fff;min-width:0}
.bk-h{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bk-h .sp{flex:1}
.grip{cursor:grab;font-size:1.3rem;line-height:1;color:var(--muted);padding:2px 6px;user-select:none}
.addsel{margin-top:12px;max-width:280px;font-weight:700;color:var(--navy)}
.colsed{display:grid;gap:12px}
.colsed.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.colsed.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:860px){.colsed.n2,.colsed.n3{grid-template-columns:minmax(0,1fr)}}
.colbox{background:var(--tint);border-radius:12px;padding:10px;min-width:0;display:grid;gap:8px;align-content:start}
.thumb{display:block;max-width:160px;max-height:100px;border-radius:8px;margin:4px 0}

/* Rollen und Rechte */
.permgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.chk.perm{align-items:flex-start;padding:10px 12px;border-radius:12px;display:flex}
.chk.perm span{display:flex;flex-direction:column;gap:2px}
.chk.perm small{color:#5f6b6e;font-size:.78rem;line-height:1.35}
.chk.perm.locked{opacity:.65}
.chk.perm:has(input.cb:checked){background:var(--tint);box-shadow:inset 0 0 0 2px var(--navy)}
html[data-mode=dark] .chk.perm:has(input.cb:checked){background:#26363a}

/* Seiten-Studio */
.studio{display:grid;gap:14px;min-width:0}
.st-bar{position:sticky;top:12px;z-index:15;display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-radius:16px;box-shadow:var(--shadow),0 0 0 1px var(--line);padding:10px 12px}
.st-bar .sp{flex:1}
.st-title{flex:1 1 120px;min-width:0;font:700 1.05rem var(--f);color:var(--navy);border:0;background:var(--tint);border-radius:10px;padding:8px 12px}
.st-status{white-space:nowrap}
.st-seg{display:none}
.seg{display:inline-flex;background:var(--tint);border-radius:99px;padding:3px;gap:2px}
.seg button{border:0;background:none;border-radius:99px;padding:6px 12px;font:700 .85rem var(--f);color:var(--navy);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--nbtn);color:#fff}
.st-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;align-items:start}
.st-prev{position:sticky;top:84px;max-height:calc(100vh / var(--z,1) - 100px);max-height:calc(100dvh / var(--z,1) - 100px);overflow:auto;border-radius:20px}
.st-prev .pvhead{font-weight:700;margin-bottom:10px;color:var(--navy)}
@media (max-width:1100px){
  .st-body{grid-template-columns:minmax(0,1fr)}
  .st-seg{display:inline-flex}
  .st-prev{display:none;position:static;max-height:none}
  .studio.show-prev .st-prev{display:block}
  .studio.show-prev .st-edit{display:none}
}
@media (max-width:900px){.st-bar{top:70px}.st-status{display:none}}
.plus{display:flex;justify-content:center;height:12px;position:relative}
.plusbtn{position:relative;top:-9px;width:28px;height:28px;border-radius:50%;border:0;background:var(--nbtn);color:#fff;font:700 1.15rem/1 var(--f);cursor:pointer;opacity:.28;transition:opacity .15s,transform .15s;z-index:1}
.plus:hover .plusbtn,.plusbtn:focus-visible{opacity:1;transform:scale(1.08)}
@media (hover:none){.plusbtn{opacity:.7}}
.emptyhint{text-align:center;padding:24px 8px}
.bk-t{flex:1 1 160px;min-width:0;display:flex;align-items:center;gap:10px;border:0;background:none;padding:6px 4px;font:inherit;text-align:left;cursor:pointer;color:var(--navy)}
.bk-t .bk-s{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.85rem}
.bk-t .chev{color:var(--muted)}
.bk-a{display:inline-flex;gap:4px;margin-left:auto}
.bk.col{padding-bottom:8px}
.bk-b{display:grid;gap:12px;min-width:0}
.fnnote{display:grid;gap:4px;background:var(--tint);border-radius:12px;padding:12px 14px}
.fnnote span{font-size:.88rem;color:var(--muted)}
.modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px}
.modal-back{position:absolute;inset:0;background:rgba(37,56,118,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.modal-panel{position:relative;width:min(720px,100%);max-height:calc(100vh / var(--z,1) - 32px);max-height:calc(100dvh / var(--z,1) - 32px);overflow:auto;background:#fff;border-radius:22px;box-shadow:0 20px 60px rgba(37,56,118,.35);padding:20px;display:grid;gap:16px}
.pgroup{display:grid;gap:8px}
.ptiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.ptile{display:grid;gap:3px;text-align:left;border:0;border-radius:14px;padding:12px 14px;background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--line2);font:inherit;cursor:pointer;align-content:start}
.ptile b{color:var(--navy)}
.ptile span{font-size:.82rem;color:var(--muted)}
.ptile:hover:not([disabled]){box-shadow:inset 0 0 0 2px var(--navy)}
.ptile[disabled]{opacity:.5;cursor:not-allowed}
@media (max-width:700px){.modal{place-items:end center;padding:0}.modal-panel{border-radius:22px 22px 0 0;max-height:85vh;max-height:85dvh;padding-bottom:calc(20px + env(safe-area-inset-bottom))}}
/* Neue Bausteine auf Seiten */
.faq{display:grid;gap:8px}
.faq-i{background:var(--tint);border-radius:14px;box-shadow:inset 0 0 0 1.5px var(--line2);padding:0}
.faq-i summary{cursor:pointer;font-weight:700;color:var(--navy);padding:14px 16px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq-i summary::after{content:"+";font-size:1.2rem;line-height:1}
.faq-i[open] summary::after{content:"–"}
.faq-i summary::-webkit-details-marker{display:none}
.faq-i p{margin:0;padding:0 16px 14px;white-space:pre-line}
.steps{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;gap:10px}
.steps li{counter-increment:s;display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;align-items:start;background:var(--tint);border-radius:14px;padding:12px 14px}
.steps li::before{content:counter(s);grid-row:span 2;width:32px;height:32px;border-radius:50%;background:var(--nbtn);color:#fff;display:grid;place-items:center;font-weight:700}
.steps li b{color:var(--navy)}
.steps li span{color:var(--muted);font-size:.92rem}
.fnb{display:grid;gap:10px;border-top:1.5px solid var(--line);padding-top:14px;margin-top:6px}
.fnb-h{margin:0}
.fnb .card{box-shadow:none;border:1.5px solid var(--line);padding:16px}
.fnb.ph{border:1.5px dashed var(--line2);border-radius:14px;padding:14px;background:var(--tint)}
.bk,.bks,.bk-b,.st-edit{grid-template-columns:minmax(0,1fr)}
.bk-h{min-width:0}
.bk-a{flex-wrap:wrap}
@media (max-width:560px){.bk-t{flex-basis:100%;order:2}.bk-h .grip{order:1}.bk-a{order:1}}
#main>.studio{animation:none!important}
body.pk-open{overflow:hidden}
body.pk-open .tabbar{display:none}
/* Platzhalter beim Laden */
.skel{display:grid;gap:12px}
.skel i{display:block;height:18px;border-radius:9px;background:linear-gradient(90deg,var(--tint) 25%,#f7fbfb 50%,var(--tint) 75%);background-size:200% 100%;animation:skel 1.1s linear infinite}
.skel i.s{width:55%}
@keyframes skel{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel i{animation:none}}
.tile.ticon{grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:center}
.tile.ticon svg{grid-row:span 2;width:30px;height:30px;fill:none;stroke:var(--navy);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tile.ticon span{grid-column:2}
.save-hint{font-size:.8rem;color:var(--muted);margin-left:auto;margin-right:10px}
.save-hint.bad{color:var(--bad);font-weight:700}
.notice.running{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#fff6c2;box-shadow:inset 0 0 0 1.5px var(--yellow)}
.notice.running b{color:var(--navy)}

.q-img{display:block;max-width:100%;max-height:380px;object-fit:contain;margin:12px 0;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line2)}
.qimg-ed{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr);gap:14px;align-items:start;margin:6px 0}
.qimg-ed img{width:100%;max-height:160px;object-fit:contain;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line2)}
.opt-edit{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}
@media(max-width:560px){.qimg-ed{grid-template-columns:1fr}.opt-edit{grid-template-columns:minmax(0,1fr) auto}.opt-edit .btn{grid-column:1/-1}}
input.cb[type=radio]{border-radius:50%}
input.cb[type=radio]:checked{background:radial-gradient(circle,#fff 0 28%,var(--navy) 32%);border-color:var(--navy)}

/* ---------- Trainerplanung ---------- */
.pl{display:grid;gap:16px;min-width:0}
.pl-card{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
.pl-bar{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}
.pl-bar select{width:auto;min-width:180px}
.pl-nav{gap:8px}
.pl-range{color:var(--navy);font-size:1.05rem;white-space:nowrap}
.pl-acts{margin-left:auto}
.pl-quick{display:flex;gap:8px}
.pl-quick input{flex:1;min-width:0}
.pl-filters{align-items:center}
.pl-type i{width:12px;height:12px;border-radius:3px;background:var(--c);display:inline-block}
.pl-type[aria-pressed="false"]{opacity:.5;text-decoration:line-through}
.pl-pill{margin-left:auto;padding:6px 12px}
.pl-pill.bad{border:0;cursor:pointer}
.pl-stage{padding:0;overflow:hidden}
.pl-scroll{overflow-x:auto}
.pl-tl{display:grid;grid-template-columns:176px repeat(var(--n),minmax(var(--cw),1fr));min-width:calc(176px + var(--n) * var(--cw))}
.pl-corner,.pl-dh,.pl-name{background:#fff}
.pl-corner{padding:10px 14px;font:700 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;align-items:flex-end;position:sticky;left:0;z-index:3}
.pl-corner.nostick{position:static}
.pl-dh{display:flex;flex-direction:column;justify-content:flex-end;padding:6px 8px 8px;border-left:1px solid var(--line);position:relative;min-width:0}
.pl-dh.mon,.pl-cell.mon,.pl-col.mon,.pl-ad.mon{border-left-color:var(--line2)}
.pl-dh .kw{position:absolute;top:6px;left:8px;font:700 .64rem var(--mono);letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
.pl-dh .wd{font-weight:700;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:16px}
.pl-dh .dn{font-weight:700;font-size:1.05rem;color:var(--navy);font-variant-numeric:tabular-nums}
.pl-dh.we .dn,.pl-dh.we .wd{color:var(--muted)}
.pl-dh.today .dn{color:var(--red)}
.pl-dh.today::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--red)}
.pl-name{position:sticky;left:0;z-index:2;padding:10px 14px;border-top:1px solid var(--line);display:grid;gap:5px;align-content:center}
.pl-name .nm{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--navy);min-width:0}
.pl-name .nm span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-name .ini{flex:none;display:inline-grid;place-items:center;min-width:28px;height:24px;border-radius:7px;background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--line2);font-size:.72rem;letter-spacing:.04em}
.pl-name.open .ini{border-style:dashed}
.pl-name .load{height:6px;border-radius:4px;background:var(--tint);overflow:hidden}
.pl-name .load i{display:block;height:100%;background:var(--nbtn)}
.pl-name .load.over i{background:var(--red)}
.pl-name small{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}
.pl-name small.over{color:var(--bad);font-weight:700}
.pl-cell{border-top:1px solid var(--line);border-left:1px solid var(--line);padding:4px;min-height:74px;display:flex;flex-direction:column;gap:3px;min-width:0}
.pl-cell,.pl-col,.pl-ad{cursor:default}
.pl-cell.openrow{background:var(--tint)}
.we{background:#f2f7f8}
.hol{background:var(--bad-bg)}
.pl-cell.today,.pl-col.today,.pl-ad.today{background:#f4f9fa}
.pl-cell.over{outline:2px dashed var(--navy);outline-offset:-3px;background:#e3edf8}
.pl-chip{background:var(--c);color:var(--t);border-radius:7px;padding:3px 7px;font-size:.78rem;line-height:1.3;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.pl-chip[draggable="true"]{cursor:grab}
.pl-chip b{font-weight:700;font-variant-numeric:tabular-nums;margin-right:4px}
.pl-chip.allday{background:repeating-linear-gradient(135deg,var(--c) 0 7px,color-mix(in srgb,var(--c) 80%,#fff) 7px 14px)}
.pl-chip.conflict{outline:2px solid var(--red);outline-offset:1px}
.pl-chip.conflict::after{content:" !";font-weight:700}
.pl-chip.dragging{opacity:.4}
.pl-tl.compact .pl-chip{font-size:.7rem;padding:2px 4px}
.pl-tl.compact .pl-chip b{display:none}
.pl-cal{display:grid;grid-template-columns:50px repeat(7,minmax(104px,1fr));min-width:820px}
.pl-cal.day{grid-template-columns:44px minmax(0,1fr);min-width:0}
.pl-cal.day .pl-chip.ev{font-size:.85rem;padding:4px 8px}
.pl-axislabel{padding:8px 6px;font:700 .64rem var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-top:1px solid var(--line)}
.pl-ad{border-top:1px solid var(--line);border-left:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:3px;min-height:34px;min-width:0}
.pl-axis{position:relative;height:calc(var(--hrs) * var(--hh));border-top:1px solid var(--line)}
.pl-axis span{position:absolute;right:6px;transform:translateY(-50%);font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums}
.pl-col{position:relative;border-top:1px solid var(--line);border-left:1px solid var(--line);height:calc(var(--hrs) * var(--hh));min-width:0;
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hh) - 1px),var(--line) calc(var(--hh) - 1px),var(--line) var(--hh))}
.pl-chip.ev{position:absolute;white-space:normal;padding:3px 6px;line-height:1.25}
.pl-chip.ev b{display:block;margin:0}
.pl-chip.ev em{font-style:normal;opacity:.85;font-size:.72rem;display:block}
.pl-now{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--red);z-index:4;pointer-events:none}
.pl-form{width:min(540px,100%)}
.pl-form input[type=date],.pl-form input[type=time]{color:var(--ink);background:#fff;border:1.5px solid var(--line2);border-radius:10px;padding:10px 12px;width:100%}
.pl-suggest{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pl-suggest .chip{padding:5px 12px;font-size:.8rem}
.pl-conf{border-radius:12px;padding:10px 14px;font-size:.88rem;font-weight:700;color:var(--bad);background:var(--bad-bg);box-shadow:inset 0 0 0 1.5px var(--red)}
.pl-types{display:grid;gap:8px}
.pl-trow{display:grid;grid-template-columns:44px 1fr auto auto;gap:10px;align-items:center}
.pl-trow input[type=color]{width:44px;height:38px;padding:2px;border:1.5px solid var(--line2);border-radius:10px;background:#fff}
.pl-trow .ck{display:flex;gap:6px;align-items:center;font-size:.85rem;white-space:nowrap}
#pl-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:70;width:max-content;max-width:calc(100% - 28px)}
#pl-toast .toast{margin:0;box-shadow:0 6px 24px rgba(37,56,118,.25)}
@media (min-width:901px){#pl-toast{bottom:24px}}
@media (max-width:560px){.pl-trow{grid-template-columns:44px 1fr auto}.pl-trow>.btn{grid-column:1/-1;justify-self:end}.pl-acts{margin-left:0}.pl-pill{margin-left:0}}
@media (prefers-reduced-motion:no-preference){.pl-chip{transition:opacity .12s}}

/* Trainerplanung: Entwurf, Warnungen, Einstellungen */
.pl-chip.draft{outline:2px dashed var(--c);outline-offset:1px;opacity:.85}
.pl-chip.warn{box-shadow:inset 0 0 0 2px #e0a100}
.pl-chip.warn::after{content:" ⚠";font-weight:700}
.pl-warn{background:#fff6dd;color:#6b4e00;border:1px solid #ecc86a;border-radius:8px;padding:6px 10px;font-size:.85rem;margin:6px 0}
.pill.warn{background:#fff6dd;color:#6b4e00}
.pl-tpls{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.pl-tpls button{border:1px solid var(--line);background:var(--tint);border-radius:999px;padding:4px 10px;font-size:.8rem;cursor:pointer}
.pl-tblock{border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0}
.pl-slotrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:4px 0}
.pl-slot{flex:1;min-width:120px}
.pl-vrow,.pl-qrow,.pl-prow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.pl-checks{display:flex;flex-wrap:wrap;gap:8px 12px}
.pl-checks label{display:flex;gap:4px;align-items:center;font-size:.85rem}
.pl-form.wide{max-width:720px;width:calc(100vw - 24px)}

/* Trainerplanung: gleiche Seitenbreite wie alle Module (Zeitachse scrollt bei Bedarf) */
.pl-tl{--k:1;--cw:calc(var(--cw0) * var(--k))}
@media (min-width:1100px) and (max-width:1399px){
  .pl-tl{--k:1.2}
  .pl-cell{min-height:90px}
  .pl-chip{font-size:.85rem}
}

/* Volle Fensterbreite nutzen (bis 2400 px), damit z. B. die Zeitachse der Trainerplanung mehr Tage zeigt. */
@media (min-width:901px){.side{max-height:calc(100vh / var(--z,1) - 32px);max-height:calc(100dvh / var(--z,1) - 32px);overflow-y:auto;gap:12px}}
.zoomrow{align-items:center;gap:10px}

/* Verwaltung: Reiterleiste */
/* Design: Vorlagen und Live-Vorschau */
.designgrid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:18px;align-items:start}
.pvcard{position:sticky;top:76px}
@media (max-width:1100px){.designgrid{grid-template-columns:minmax(0,1fr)}.pvcard{position:static;order:-1}}
.presets{display:flex;flex-wrap:wrap;gap:10px}
.preset{display:inline-flex;align-items:center;gap:10px;border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:8px 12px;font:inherit;font-weight:700;color:var(--navy);cursor:pointer}
.preset:hover{border-color:var(--teal);background:var(--tint)}
.preset .sw{display:inline-flex}.preset .sw i{width:16px;height:16px;border-radius:50%;margin-left:-4px;box-shadow:0 0 0 2px #fff}.preset .sw i:first-child{margin-left:0}
.pvmock{display:grid;grid-template-columns:110px minmax(0,1fr);border:1.5px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg);font-size:.72rem;color:#1d2433}
.pvside{background:#fff;padding:12px 8px;display:grid;gap:5px;align-content:start}
.pvside img{height:20px;width:auto;margin:0 0 8px 4px}
.pvnav{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;font-weight:700;color:var(--navy)}
.pvnav i{width:9px;height:9px;border-radius:3px;background:currentColor;opacity:.55}
.pvnav.on{background:var(--nbtn);color:#fff}.pvnav.on i{opacity:1}
.pvmain{padding:10px;display:grid;gap:8px;align-content:start}
.pvhero{background:linear-gradient(110deg,var(--teal-lt),var(--hero2));border-radius:10px;padding:12px;display:grid;gap:2px;color:var(--navy)}
.pvhero b{font-size:1.05rem}.pvhero small{opacity:.85}
.pvtiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pvtile{background:var(--tint);border:1.5px solid var(--line);border-radius:10px;padding:9px;display:grid;gap:2px;color:var(--navy)}
.pvtile small{color:#5b6677}
.pvrow{display:flex;align-items:center;gap:10px}
.pvbtn{background:var(--nbtn);color:#fff;font-weight:700;padding:6px 12px;border-radius:9px}
.pvbar{flex:1;height:7px;border-radius:5px;background:var(--tint);overflow:hidden}.pvbar i{display:block;height:100%;width:62%;background:var(--teal)}

.imp .impwrap{max-height:420px;overflow:auto;border:1.5px solid var(--line);border-radius:12px}
.imp .impwrap thead th{position:sticky;top:0;background:#fff;z-index:1}
.imp select{max-width:200px}
.msg.ok{color:#1b6b3a;font-weight:700}
.q-text{white-space:pre-line}
.expl .pre{white-space:pre-line;margin:6px 0 0}
.card.danger{border:2px solid var(--red,#b3261e)}.card.danger h2{color:var(--red,#b3261e)}

/* ---------- Lernbereich ---------- */
.kbar-top{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}
.kcard{background:var(--card);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;min-width:0;position:relative}
.kcover{position:relative;border:0;cursor:pointer;height:116px;background:linear-gradient(120deg,var(--teal),var(--nbtn));display:grid;place-items:center;color:#fff}
.kcover svg{width:46px;height:46px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.kcount{position:absolute;left:12px;bottom:10px;font:700 .72rem var(--f);background:rgba(255,255,255,.2);padding:3px 9px;border-radius:99px}
.kbody{padding:16px 18px 18px;display:grid;gap:10px;align-content:start;flex:1}
.kbody h3{font-size:1.05rem}.kbody p{margin:0}
.kbadges{display:flex;flex-wrap:wrap;gap:6px;min-height:0}
.kbadges:empty{display:none}
.kprog{display:grid;gap:5px}
.kbar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.kbar i{display:block;height:100%;background:var(--teal);border-radius:99px;transition:width .3s}
.khead{border-radius:18px;padding:24px 28px;color:#fff;background:linear-gradient(110deg,var(--nbtn),var(--teal));display:grid;gap:8px;justify-items:start}
.khead h2{color:#fff;font-size:1.6rem}.khead p{margin:0;opacity:.92;max-width:62ch}
.khead .linkbtn{color:#fff}
.khead .pill{box-shadow:0 0 0 1.5px rgba(255,255,255,.4)}
.kcols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.kinfo{display:grid;gap:12px;position:sticky;top:16px}
.kmod{margin-bottom:10px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line)}
.kmod>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:12px 14px;min-height:48px;color:var(--navy);font-weight:700;font-size:.95rem;border-radius:14px}
.kmod>summary::-webkit-details-marker{display:none}
.kmod>summary::before{content:'';flex:none;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .18s}
.kmod[open]>summary::before{transform:rotate(45deg)}
.kmod[open]>summary{box-shadow:0 1px 0 var(--line);border-radius:14px 14px 0 0}
.kmod-t{flex:1;min-width:0;overflow-wrap:anywhere}
.kmod-n{flex:none;font-weight:700;font-size:.8rem;color:var(--muted);background:var(--tint);border-radius:99px;padding:3px 10px}
.kmod-n.ok{color:var(--ok);background:var(--ok-bg)}
.kmod-l{display:grid;gap:4px;padding:8px}
.klesson{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:var(--tint);color:var(--ink);padding:10px 12px;border-radius:12px;cursor:pointer;font:600 .9rem var(--f)}
.klesson:hover{background:var(--line)}
.klesson.on{background:var(--nbtn);color:#fff}
.klesson .kt{flex:1;min-width:0}
.klesson svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;opacity:.7}
.kdot{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;box-shadow:inset 0 0 0 2px var(--line2);background:#fff;color:#fff}
.klesson.done .kdot{background:var(--green);box-shadow:none}
.klayout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}
.kside{display:grid;gap:10px;position:sticky;top:16px;max-height:calc(100vh / var(--z,1) - 32px);max-height:calc(100dvh / var(--z,1) - 32px);overflow-y:auto}
.klesson-main{display:grid;gap:16px;align-content:start}
.ktext{line-height:1.65;max-width:70ch}.ktext p{margin:0 0 12px}.ktext ul{margin:0 0 12px;padding-left:22px}.ktext h3{margin:16px 0 6px}
.klink{display:flex;flex-wrap:wrap;align-items:center;gap:14px;background:var(--tint);border-radius:14px;padding:16px 18px}
.klink svg{width:30px;height:30px;fill:none;stroke:var(--navy);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.klink>div{flex:1;min-width:180px;display:grid;gap:2px}
.klink .btn{text-decoration:none;display:inline-block}
.kact{border-top:1px solid var(--line);padding-top:16px}
.kedit{display:grid;gap:16px}
.kmodbox{background:var(--tint);border-radius:14px;padding:14px;display:grid;gap:10px}
.kmod-h,.kles-h{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.kmod-h input,.kles-h input{flex:1;min-width:160px}
.kles{background:#fff;border-radius:12px;padding:12px;display:grid;gap:10px;box-shadow:inset 0 0 0 1.5px var(--line)}
.kdrag svg{width:22px;height:22px;fill:none;stroke:var(--navy);stroke-width:1.7}
.notice.overdue{background:var(--bad-bg);box-shadow:inset 0 0 0 1.5px var(--bad)}
.cert{max-width:760px;margin:0 auto;text-align:center;padding:48px 40px;border:6px double var(--navy);display:grid;gap:10px;justify-items:center}
.cert p{margin:0}.cert h2{font-size:2rem}.cert-k{font:700 .8rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.cert-foot{margin-top:20px;color:var(--muted);font-size:.85rem}
@media (max-width:900px){.kcols,.klayout{grid-template-columns:minmax(0,1fr)}.kinfo,.kside{position:static;max-height:none}.khead{padding:20px}.grid3{grid-template-columns:minmax(0,1fr)}}
@media print{
  body *{visibility:hidden}
  .cert,.cert *{visibility:visible}
  .cert{position:absolute;left:0;top:0;width:100%;box-shadow:none;max-width:none}
  .noprint{display:none!important}
}

/* Ausbildung (Tf-Register, SIM, RFU) */
.au-tabs{margin:0 0 12px}
.au-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:12px 0}
.au-kpi{background:#fff;border:1px solid var(--line2);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.au-kpi b{font-size:1.6rem;line-height:1.1;color:var(--ink)}
.au-kpi span{font-weight:600;font-size:.85rem}
.au-kpi em{font-style:normal;font-size:.78rem;color:var(--mute,#5f5f5f)}
.au-kpi.warn{border-color:#d9a000;background:#fffaf0}
.au-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.au-bars{display:flex;flex-direction:column;gap:6px}
.au-bar{display:grid;grid-template-columns:48px 1fr 44px;gap:8px;align-items:center;font-size:.85rem}
.au-bar i{display:block;height:10px;background:#e6e9f2;border-radius:6px;overflow:hidden}
.au-bar u{display:block;height:100%;background:var(--brand,#253876);text-decoration:none}
.au-list{display:flex;flex-direction:column;gap:6px}
.au-li{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line2)}
.au-grid{display:grid;grid-template-columns:64px repeat(5,minmax(112px,1fr));gap:6px;overflow-x:auto;margin:10px 0}
.au-h{font-size:.82rem;display:flex;flex-direction:column;gap:3px;padding:4px 2px}
.au-h.today b{color:var(--brand,#253876);text-decoration:underline}
.au-h select{font-size:.78rem;padding:3px}
.au-t{font-weight:700;font-size:.85rem;display:flex;flex-direction:column;justify-content:center}
.au-t small{font-weight:400;color:#5f5f5f}
.au-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;min-height:54px;padding:6px 8px;border:1.5px solid var(--line2);border-radius:10px;background:#fff;cursor:pointer;font:inherit;color:var(--ink)}
.au-cell b{font-size:.85rem;font-weight:600}
.au-cell small{font-size:.74rem;color:#5f5f5f}
.au-cell:hover,.au-cell:focus-visible{border-color:var(--brand,#253876)}
.au-cell.st-frei{background:#f6f8fc;color:#6b7280;border-style:dashed}
.au-cell.st-leer{background:#fafafa;color:#b0b0b0;border-style:dotted}
.au-cell.st-geplant{background:#e8eefc}
.au-cell.st-eingeladen{background:#dff3f4}
.au-cell.st-durchgefuehrt{background:#e3f4e6}
.au-cell.st-krank{background:#fde6e6}
.au-cell.st-abgesagt{background:#fff0dc}
.au-cell.st-ausfall{background:repeating-linear-gradient(45deg,#eee,#eee 6px,#f7f7f7 6px,#f7f7f7 12px);color:#777}
.au-cell.mk{box-shadow:inset 3px 0 0 #3fa4a9}
.au-tr{position:absolute;top:4px;right:5px;font-style:normal;font-size:.68rem;font-weight:700;background:var(--brand,#253876);color:#fff;border-radius:8px;padding:1px 5px}
.au-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 2px;border:1px solid #bbb}
.au-dot.st-geplant{background:#e8eefc}.au-dot.st-eingeladen{background:#dff3f4}.au-dot.st-durchgefuehrt{background:#e3f4e6}.au-dot.st-krank{background:#fde6e6}.au-dot.st-abgesagt{background:#fff0dc}.au-dot.st-ausfall{background:#ddd}
.au-q{display:inline-block;font-size:.7rem;padding:1px 5px;margin-right:2px;border-radius:6px;background:#eee;color:#888}
.au-q.on{background:#dff3e3;color:#1c6b2f}
.au-leg{margin-top:4px}
@media (max-width:700px){.au-grid{grid-template-columns:52px repeat(5,minmax(104px,1fr))}}
.au-cell.st-none{background:transparent;border:1px dashed #e3e3e3;cursor:default;min-height:54px}
.au-ti{font-style:normal;font-size:.72rem;color:#5f5f5f;font-weight:700}
.au-dn{font-size:.78rem;display:flex;gap:4px;align-items:center}.au-dn input{width:56px;padding:2px 4px}
.au-cols-ed{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.au-col{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 8px;border:1px solid var(--line2);border-radius:10px;background:#fff}
.au-col .co-fix{flex:1;min-width:140px}
.au-col .co-name{flex:1;min-width:140px}
.au-col .co-opt{flex:2;min-width:180px}
.au-colbtn{display:flex;gap:4px;margin-left:auto}

/* Verwaltung: Gruppen, Aufklapp-Blöcke, Themenliste */
details.acc{border:1.5px solid var(--line2);border-radius:14px;background:#fff;margin:0 0 10px}
details.acc>summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;color:var(--navy)}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary::before{content:"▸";font-size:.9rem;transition:transform .15s}
details.acc[open]>summary::before{transform:rotate(90deg)}
details.acc[open]>summary{border-bottom:1px solid var(--line2)}
details.acc>fieldset,details.acc>form{margin:0;border:0;padding:14px 16px}
details.acc.newacc{padding:0}
.thlist{display:flex;flex-direction:column;gap:8px}
.throw{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line2);border-radius:12px;background:#fff}
.throw .th-name{flex:1;min-width:160px}
.thcount{min-width:78px;text-align:right}
.thdel{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff6e5;border:1px solid #e6c36a;border-radius:12px;padding:10px 12px;margin:-2px 0 4px}

/* Interaktive Bausteine (Lernbereich) */
.kbs{display:flex;flex-direction:column;gap:20px}.kb-h{margin:0 0 8px;color:var(--navy)}.kb-div{margin:12px 0 0;color:var(--navy);border-bottom:2px solid var(--line2);padding-bottom:6px}.kb-hr{border:0;border-top:1px solid var(--line2);width:100%}
.kb-after[hidden]{display:none}.kb-after{display:flex;flex-direction:column;gap:20px}
.kb-call{border-left:5px solid var(--teal,#3fa4a9);background:#eef6f6;padding:12px 16px;border-radius:10px}.kb-call b{display:block;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.kb-call.c-warnung{border-color:#c0392b;background:#fbeceb}.kb-call.c-vorschrift{border-color:#233a7a;background:#eceffa}.kb-call.c-hinweis{border-color:#d9a21b;background:#fdf6e3}.kb-call.c-beispiel{border-color:#7a8a99;background:#f1f3f5}
.kb-quote{margin:0;padding:8px 18px;border-left:4px solid var(--line2);font-size:1.1rem;font-style:italic}.kb-quote cite{display:block;font-size:.85rem;font-style:normal;color:var(--muted,#666);margin-top:4px}
.kb-fig{margin:0}.kb-fig img,.kb-hs img,.kb-cmp img{max-width:100%;display:block;border-radius:10px}.kb-fig figcaption{font-size:.85rem;color:var(--muted,#666);margin-top:4px}
.kb-acc{border:1px solid var(--line2);border-radius:10px;margin-bottom:6px;background:#fff}.kb-acc summary{padding:12px 14px;cursor:pointer;font-weight:600}.kb-acc .ktext{padding:0 14px 12px}
.kb-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid var(--line2);margin-bottom:10px}.kb-tab{border:0;background:none;padding:10px 14px;cursor:pointer;font:inherit;font-weight:600;color:var(--muted,#666);border-bottom:3px solid transparent;margin-bottom:-2px}.kb-tab[aria-selected=true]{color:var(--navy);border-color:var(--teal,#3fa4a9)}
.kb-pbar{height:6px;background:var(--line2);border-radius:3px;overflow:hidden;margin:6px 0 10px}.kb-pbar i{display:block;height:100%;background:var(--teal,#3fa4a9);transition:width .2s}.kb-proc{border:1px solid var(--line2);border-radius:12px;padding:14px}.kb-pt{margin:0 0 6px}
.kb-tl{list-style:none;margin:0;padding:0 0 0 18px;border-left:3px solid var(--line2)}.kb-tl li{position:relative;padding:0 0 14px 14px}.kb-tl li::before{content:"";position:absolute;left:-26px;top:4px;width:13px;height:13px;border-radius:50%;background:var(--teal,#3fa4a9);border:3px solid #fff;box-shadow:0 0 0 2px var(--line2)}
.kb-card{display:block;width:100%;min-height:150px;border:2px solid var(--line2);border-radius:14px;background:#fff;padding:22px;font:inherit;font-size:1.1rem;cursor:pointer;text-align:center;margin-bottom:10px}.kb-card.back{background:#eef6f6;border-color:var(--teal,#3fa4a9)}.kb-hint{display:block;margin-top:10px}
.kb-fc .row{align-items:center;justify-content:space-between}
.kb-opts{display:flex;flex-direction:column;gap:6px;margin:8px 0}.kb-opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line2);border-radius:10px;padding:10px 12px;cursor:pointer}
.kb-fb{margin-top:8px}.kb-fb.ok{color:#14703d}.kb-fb.bad{color:#a9322a}.kb-fb:empty{display:none}
.kb-gap{width:9em !important;display:inline-block;margin:0 4px;padding:4px 8px;border:2px solid var(--line2);border-radius:8px;font:inherit}.kb-gap.good,.kb-mrow select.good{border-color:#14703d;background:#eaf6ee}.kb-gap.wrong,.kb-mrow select.wrong{border-color:#c0392b;background:#fbeceb}.kb-fill{line-height:2.2}
.kb-mrow{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;margin-bottom:6px}.kb-mrow select{padding:8px;border:2px solid var(--line2);border-radius:8px;font:inherit}
.kb-ord{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.kb-ord li{display:flex;justify-content:space-between;align-items:center;gap:10px;border:2px solid var(--line2);border-radius:10px;padding:8px 12px}.kb-ord li.good{border-color:#14703d;background:#eaf6ee}.kb-ord li.wrong{border-color:#c0392b;background:#fbeceb}.kb-mv{display:flex;gap:4px}
.kb-sit{background:#f4f6f8;border-radius:12px;padding:14px;margin-bottom:10px}.kb-scc{display:flex;flex-direction:column;gap:8px;align-items:stretch}.kb-ch{text-align:left}
.kb-hs,.kb-cmp{position:relative;display:inline-block;max-width:100%}.kb-pin{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;border:3px solid #fff;background:var(--nbtn);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 1px 6px #0006}.kb-pin.seen{background:var(--teal,#3fa4a9)}.kb-pin.on{outline:3px solid #d9a21b}.kb-hsc{margin:8px 0 0}.kb-hsb{position:absolute;z-index:3;background:#fff;color:#222;border-radius:12px;padding:12px 38px 12px 14px;box-shadow:0 6px 24px #0005;line-height:1.4;font-size:.92rem;max-height:80%;overflow:auto}.kb-hsb[hidden]{display:none}.kb-hsb b{display:block;color:var(--navy);margin-bottom:4px}.kb-hsx{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;border:0;background:#eef2f6;cursor:pointer;font-size:.9rem}.kb-pin.on{z-index:4}
.kb-cmp{width:100%}.kb-cmp img{width:100%}.kb-cmpt{position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden}.kb-cmpt img{width:auto;max-width:none;height:100%;border-radius:10px 0 0 10px}.kb-cmp input[type=range]{position:absolute;left:0;right:0;bottom:8px;width:100%}.kb-l1,.kb-l2{position:absolute;top:8px;background:#000a;color:#fff;font-size:.78rem;padding:2px 8px;border-radius:6px}.kb-l1{left:8px}.kb-l2{right:8px}
.kb-gate{text-align:center}.kb-solved>h3.kb-h::after{content:" ✓";color:#14703d}.klesson.locked{opacity:.5;cursor:not-allowed}
.kbe{border:1px solid var(--line2);border-radius:12px;padding:12px;margin:10px 0;display:flex;flex-direction:column;gap:8px;background:#fbfcfd}.kbe-h{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.kbe-h .kb-e-title{flex:1;min-width:140px}.kbes{display:flex;flex-direction:column}.kbe textarea{font-family:inherit}
@media (max-width:600px){.kb-mrow{grid-template-columns:1fr}}
.au-cell[role=button]{cursor:pointer}.au-x{position:absolute;top:3px;right:3px;width:20px;height:20px;padding:0;border:0;border-radius:6px;background:#0000;color:#8a8f98;font-size:.75rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s}.au-cell:hover .au-x,.au-cell:focus-within .au-x,.au-x:focus-visible{opacity:1}.au-x:hover{background:#fbeceb;color:#a9322a}@media (hover:none){.au-x{opacity:.7}}

/* Trainerplanung: Terminkarten, Tagesstunden, Jahresleiste, Kopiermodus */
.pl-chip{background:color-mix(in srgb,var(--c) 15%,#fff);color:#1f2a4d;border-radius:8px;padding:4px 20px 4px 8px;display:flex;flex-direction:column;gap:0;white-space:normal;position:relative;box-shadow:0 1px 0 #0000000d;line-height:1.25}
.pl-chip .tm{font-weight:700;font-size:.68rem;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:color-mix(in srgb,var(--c) 70%,#1f2a4d)}
.pl-chip .tt{font-weight:600;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-chip .sb{font-size:.7rem;color:#5b6475;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-chip .fl{position:absolute;top:3px;right:4px;font-style:normal;font-size:.7rem;font-weight:700}.pl-chip .fl.bad{color:#fff;background:var(--red,#c0392b);border-radius:50%;width:15px;height:15px;display:grid;place-items:center}.pl-chip .fl.warn{top:auto;bottom:2px;color:#b07800}.pl-chip .fl.draft{width:8px;height:8px;border-radius:50%;border:2px dashed var(--c);top:6px;right:6px}.pl-chip .fl.src{top:auto;bottom:2px;font:700 .58rem var(--mono,monospace);color:#5b6475}
.pl-chip.allday{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 22%,#fff) 0 7px,color-mix(in srgb,var(--c) 12%,#fff) 7px 14px)}
.pl-chip.conflict{outline:2px solid var(--red);outline-offset:0;box-shadow:none}.pl-chip.conflict::after,.pl-chip.warn::after{content:none}.pl-chip.draft{outline:1.5px dashed var(--c);outline-offset:-1px;opacity:1}.pl-chip.warn{box-shadow:none}
.pl-chip:hover{background:color-mix(in srgb,var(--c) 26%,#fff)}.pl-chip.copying{outline:2px solid var(--navy);outline-offset:1px}
.pl-chip.ev{display:block;padding:3px 6px 3px 7px}.pl-chip.ev b{color:#1f2a4d}
.pl-tl.compact .pl-chip .tm,.pl-tl.compact .pl-chip .sb{display:none}.pl-tl.compact .pl-chip{padding:2px 4px 2px 5px}

.pl-cell:hover{background:#f7fafc}.pl-cell.over{background:#e3edf8}.pl-cell.copyover{outline-color:#14703d;background:#eaf6ee}
.pl.copymode .pl-cell,.pl.copymode .pl-col,.pl.copymode .pl-ad{cursor:copy}
.pl-copybar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pl-year{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.pl-year .yr-h{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:.85rem}
.yr-w{display:flex;gap:2px;flex-wrap:nowrap;overflow:hidden}.yw{position:relative;flex:1 1 0;min-width:0;height:22px;border:0;border-radius:4px;background:#eef1f5;cursor:pointer;padding:0}.yw.l1{background:#e3f1ef}.yw.l2{background:#b9dfdb}.yw.l3{background:#7cc4be}.yw.l4{background:#3fa4a9}
.yw.vis{box-shadow:0 0 0 2px var(--navy);z-index:1}.yw.now{background-image:linear-gradient(var(--red),var(--red));background-size:100% 3px;background-repeat:no-repeat;background-position:bottom}.yw.cf::after{content:"";position:absolute;top:2px;right:2px;width:5px;height:5px;border-radius:50%;background:var(--red)}
.yw em{position:absolute;top:-14px;left:0;font:700 .58rem var(--mono,monospace);color:var(--muted,#667);font-style:normal;letter-spacing:.04em;white-space:nowrap}.pl-year .yr-w{margin-top:16px}
.pl-year .yr-w{overflow:visible}
.pl-cell.nodrop{outline:2px solid var(--red,#c0392b);outline-offset:-3px;background:repeating-linear-gradient(45deg,#fbeceb,#fbeceb 8px,#fff 8px,#fff 16px);cursor:not-allowed}
.au-sugs{max-height:220px;overflow:auto;border:1px solid var(--line2);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:2px;background:#fff}
.au-sg{display:flex;align-items:center;gap:10px;text-align:left;border:0;background:none;padding:7px 8px;border-radius:8px;font:inherit;cursor:pointer;flex-wrap:wrap}.au-sg .note{flex:1}.au-sg:hover,.au-sg.on{background:#e8eefc}

/* Mobil: Tabellen scrollen im Rahmen statt die Seite zu verbreitern */
.tablewrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.tablewrap table{min-width:100%;width:max-content}
.tablewrap td,.tablewrap th{white-space:nowrap}
#main,#main>*,.card,.hero,.au-tabs{min-width:0;max-width:100%}
.au-tabs{overflow-x:auto;flex-wrap:nowrap}.au-tabs>*{flex:none}
@media (max-width:700px){.tablewrap{margin:0 -4px}.tablewrap th,.tablewrap td{padding:10px 8px}}
@media (max-width:700px){
  .app .card .chip{padding:7px 12px;font-size:.84rem}
  .app .card .chips{gap:6px}
  .app .card .btn{padding:9px 14px;font-size:.88rem}
  .app .card input[type=search],.app .card input[type=text],.app .card input[type=date],.app .card select{max-width:100%;min-width:0}
}
.pl-chip .fl.ok{top:auto;bottom:2px;color:#1f7a3a;font-size:.8rem}

.pl-chip.grp .tt{font-size:.82rem}
.pl-gl{list-style:none;margin:8px 0;padding:0;display:grid;gap:4px;max-height:50vh;overflow:auto}
.pl-gl li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 10px;border-radius:10px;background:var(--tint)}
.pl-gl .tm{font:700 .75rem var(--mono,monospace);color:#5b6475;white-space:nowrap}.pl-gl .gb .ok{color:#1f7a3a;font-weight:700;font-size:.85rem}
.pl-chip.grp{padding-right:6px}.pl-chip.grp .tt{font-size:.76rem;overflow:visible;text-overflow:clip}.pl-chip.grp .fl{top:2px;right:3px}

/* Konto-Karte in der Seitenleiste: kompakt, Menü klappt nach oben auf */
.ub{position:relative}
.ub-card{list-style:none;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:16px;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--nbtn),#3a5aa8 70%,var(--teal));box-shadow:0 6px 16px -8px rgba(37,56,118,.7);transition:transform .15s,box-shadow .15s}
.ub-card::-webkit-details-marker{display:none}.ub-card:hover{transform:translateY(-1px);box-shadow:0 10px 20px -8px rgba(37,56,118,.75)}
.ub-card:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.ub-av{flex:none;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);display:grid;place-items:center;font-weight:800;font-size:.82rem}
.ub-t{min-width:0;display:grid;line-height:1.2;flex:1}.ub-t b{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ub-t span{font-size:.72rem;color:var(--teal-lt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ub-chev{flex:none;width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:.85;transition:transform .2s}.ub[open] .ub-chev{transform:rotate(180deg)}
.ub-menu{position:absolute;left:0;right:0;bottom:calc(100% + 8px);display:grid;gap:4px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px -12px rgba(37,56,118,.35);z-index:30;animation:ubin .14s ease-out}
@keyframes ubin{from{opacity:0;transform:translateY(6px)}}
.ub-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 11px;border:0;border-radius:10px;background:none;color:var(--navy);font:700 .84rem inherit;font-family:inherit;text-align:left;cursor:pointer}
.ub-item:hover{background:var(--tint)}.ub-item.out{color:var(--bad,#a9322a)}.ub-item.out:hover{background:var(--bad-bg,#fbeceb)}
.ub-item svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ub-zoom{display:flex;align-items:center;gap:2px;padding:3px;border-radius:10px;background:var(--tint)}
.ub-zoom span{flex:1;padding-left:8px;font-size:.74rem;color:var(--muted)}
.ub-zoom button{border:0;background:none;border-radius:8px;padding:5px 9px;font:700 .76rem inherit;font-family:inherit;color:var(--navy);cursor:pointer}.ub-zoom button:hover{background:#fff}
@media (prefers-reduced-motion:reduce){.ub-menu{animation:none}.ub-card,.ub-chev{transition:none}}

.login .forgot{margin:12px 0 0;text-align:center}.msg.ok{color:#1f7a3a;background:#e4f4e8;padding:10px 12px;border-radius:10px;font-size:.88rem}

.pl-nl{margin:6px 0 4px 18px;padding:0;display:grid;gap:2px;font-size:.88rem}
.pl-pubs{list-style:none;margin:8px 0;padding:0;display:grid;gap:4px;max-height:50vh;overflow:auto}
.pl-pubs label{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--tint);cursor:pointer}
.pl-pubs input{width:18px;height:18px}.pl-pubs .pb{display:grid;min-width:0}.pl-pubs small{color:var(--muted);overflow-wrap:anywhere}
.pl-pubs .tg{font:700 .68rem inherit;font-family:inherit;padding:3px 8px;border-radius:999px;background:#fff;color:var(--navy)}.pl-pubs .tg.n{background:#e4f4e8;color:#1f7a3a}.pl-pubs .tg.d{background:#fbeceb;color:#a9322a}.pl-pubs .tg.c{background:#fff3cf;color:#8a6200}

.kvid{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;margin-bottom:12px}
.kvid iframe,.kvid video{position:absolute;inset:0;width:100%;height:100%;border:0}
.kcover[style*="url("] .kcount{background:rgba(20,30,60,.7);color:#fff}


/* Datenreiche Seiten (Zeitachse, Raster) nutzen die volle Fensterbreite, alle anderen bleiben zentriert und gut lesbar. */
/* Alle Seiten gleich breit (kein Sprung beim Wechsel, z. B. zur Trainerplanung) */

.au-art{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle;flex:none}
.au-leg2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 28px;margin:6px 0 4px;font-size:.82rem}
.au-leg2>div{display:grid;gap:6px;align-content:start}
.au-leg2>div>b{font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:#5f5f5f}
.au-lg{display:flex;align-items:center;gap:8px}
.au-sw{display:inline-block;width:26px;height:16px;border-radius:5px;border:1.5px solid var(--line2);flex:none}
.au-sw.st-frei{background:#f6f8fc;border-style:dashed}.au-sw.st-geplant{background:#e8eefc}.au-sw.st-eingeladen{background:#dff3f4}.au-sw.st-durchgefuehrt{background:#e3f4e6}.au-sw.st-krank{background:#fde6e6}.au-sw.st-abgesagt{background:#fff0dc}
.au-sw.st-ausfall{background:repeating-linear-gradient(45deg,#eee,#eee 4px,#f7f7f7 4px,#f7f7f7 8px)}
.au-sw.mk{background:#fff;box-shadow:inset 3px 0 0 #3fa4a9}
.au-xx{width:26px;text-align:center;color:#8a8f98}
.au-cell small .au-art{margin-top:2px}

/* Modulübersicht */
.kat-grp{display:grid;gap:8px}
.kat-grp>.kbar-top h3{margin:0;font-size:1.05rem}
.kat-mod>summary b{flex:1 1 220px;font-weight:700}
.kat-ue{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy);white-space:nowrap}
.kat-body{padding:0 16px 14px;display:grid;gap:10px}
.kat-body h4{margin:4px 0 0;color:var(--navy);font-size:.95rem}
.kat-in{margin:0;padding-left:1.2em;display:grid;gap:4px}
.kat-me .pill{font-weight:600}

/* Lernbegleiter */
.ktutor{display:grid;gap:10px;margin-top:22px;background:var(--tint);box-shadow:none}
.ktutor h3{margin:0}
.kt-msgs{display:grid;gap:8px;max-height:340px;overflow:auto;padding:2px}
.kt-msg{padding:10px 14px;border-radius:14px;max-width:92%}
.kt-msg.you{background:#fff;justify-self:end;border:1.5px solid var(--line2)}
.kt-msg.bot{background:#fff;justify-self:start;border-left:4px solid var(--teal,#3fa4a9)}
.kt-msg p{margin:4px 0}
.kt-in{align-items:flex-end;flex-wrap:nowrap}
.kt-in textarea{flex:1;min-width:0;resize:vertical}
.ktpl{padding:7px 10px;border-radius:10px;border:1.5px solid var(--line2);background:#fff;font:inherit;margin-left:6px}

/* Kurs-Assistent */
.wz-steps{list-style:none;display:flex;gap:10px;margin:0;padding:0;flex-wrap:wrap}
.wz-s{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:99px;background:#fff;border:1.5px solid var(--line2);color:var(--muted);font-weight:600}
.wz-s span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--tint);color:var(--navy);font-size:.85rem}
.wz-s.on{color:var(--navy);border-color:var(--navy)}
.wz-s.on span{background:var(--nbtn);color:#fff}
.wz-s.done span{background:var(--ok-bg);color:var(--ok)}

/* Folien */
.kb-deck{border:1.5px solid var(--line2);border-radius:18px;background:#fff;overflow:hidden;outline:none}
.kb-deck:focus-visible{box-shadow:0 0 0 3px var(--teal,#3fa4a9)}
.kd-top{display:flex;gap:10px;align-items:center;padding:10px 14px;background:var(--tint);flex-wrap:wrap}
.kd-sp{flex:1}
.kd-q{width:34px;height:34px;border-radius:50%;border:2px solid var(--navy);background:#fff;color:var(--navy);font-weight:800;font-size:1rem;cursor:pointer}
.kd-q.on{background:var(--nbtn);color:#fff}
.kd-q:disabled{opacity:.35;cursor:default}
.kd-toc{display:grid;gap:2px;padding:8px 14px;max-height:260px;overflow:auto;border-bottom:1px solid var(--line2)}
.kd-toc[hidden],.kd-info[hidden]{display:none}
.kd-toc button{display:flex;gap:10px;align-items:center;text-align:left;padding:7px 10px;border:0;border-radius:10px;background:none;color:var(--navy);font:inherit;cursor:pointer}
.kd-toc button:hover,.kd-toc button.on{background:var(--tint);font-weight:700}
.kd-tn{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:var(--tint);font-size:.8rem;font-weight:700}
.kd-toc button.seen .kd-tn{background:var(--ok-bg);color:var(--ok)}
.kd-bar{height:4px;background:var(--line2)}
.kd-bar i{display:block;height:100%;background:var(--teal,#3fa4a9);transition:width .25s}
.kd-info{margin:14px 18px 0;padding:12px 16px;border-radius:14px;background:#e6f4f5;border-left:5px solid var(--teal,#3fa4a9)}
.kd-stage{padding:18px 22px;min-height:300px}
.kd-slide{display:grid;gap:18px}
.kd-slide.kd-hasimg{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}
.kd-t{margin:0;font-size:1.5rem;color:var(--teal-d,#2b8a90)}
.kd-sub{margin:4px 0 0;color:var(--muted);font-size:1.05rem}
.kd-main{display:grid;gap:14px;align-content:start}
.kd-fig img{width:100%;border-radius:12px}
.kd-steps{display:grid;gap:10px}
.kd-l-karten .kd-steps{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kd-step{display:flex;gap:12px;padding:12px 16px;border-radius:14px;background:var(--tint);border-left:5px solid var(--teal,#3fa4a9)}
.kd-no{display:grid;place-items:center;min-width:28px;height:28px;border-radius:50%;background:var(--nbtn);color:#fff;font-weight:700;font-size:.85rem}
.kd-l-stufen .kd-steps{justify-items:center}
.kd-stufe{width:var(--w);display:grid;gap:2px;text-align:center;padding:12px 16px;border-radius:12px;color:#fff;background:color-mix(in srgb,var(--navy) calc(100% - var(--k) * 100%),var(--teal,#3fa4a9))}
.kd-stufe span{font-size:.9rem;opacity:.95}
.kd-new{animation:kdIn .35s ease both}
@keyframes kdIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.kd-nav{display:flex;gap:10px;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--line2);background:#fff}
.kd-q-box{display:grid;gap:8px;padding:14px;border-radius:14px;border:1.5px dashed var(--line2)}
.kb-deck:fullscreen{overflow:auto;display:flex;flex-direction:column;border-radius:0}
.kb-deck:fullscreen .kd-stage{flex:1;font-size:1.15rem}
@media (max-width:700px){.kd-slide.kd-hasimg{grid-template-columns:1fr}.kd-stage{padding:14px}.kd-nav .btn{flex:1}}
@media (prefers-reduced-motion:reduce){.kd-new{animation:none}}

/* Suche in der Verwaltung */
.admsearch{margin-bottom:10px}
.admsearch input{width:100%;padding:11px 14px;border:1.5px solid var(--line2);border-radius:12px;background:#fff;font:inherit}
.admsearch input:focus{outline:2px solid var(--navy);outline-offset:1px}
.admhits{list-style:none;margin:8px 0 0;padding:6px;background:var(--card);border-radius:12px;box-shadow:var(--shadow)}
.admhits button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--navy);font:inherit;font-weight:600;padding:10px 12px;border-radius:9px;cursor:pointer}
.admhits button:hover,.admhits button:focus-visible{background:var(--tint)}
.admnone{margin:8px 2px 0}

/* Protokoll-, Fehler- und Messtabellen: Details umbrechen, am Handy als Karten statt breiter Tabelle */
.audit .det{word-break:break-word;overflow-wrap:anywhere;min-width:220px;max-width:520px}
@media (max-width:700px){
  table.stackm,table.stackm tbody,table.stackm tr,table.stackm td{display:block;width:100%}
  table.stackm thead{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
  table.stackm tr{border:1px solid var(--line2);border-radius:12px;padding:8px 12px;margin:0 0 10px;background:#fff}
  table.stackm td{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;padding:4px 0;border:0;text-align:right}
  table.stackm td::before{content:attr(data-l);flex:0 0 76px;text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#667)}
  table.stackm td.det:empty{display:none}
  table.stackm td.det,table.stackm td[data-l="Meldung"]{display:block;text-align:left;min-width:0;max-width:none}
  table.stackm td.det::before,table.stackm td[data-l="Meldung"]::before{display:block;margin-bottom:2px}
}

/* Trainerplanung: kompakte Werkzeugleiste auf dem Handy */
.pl-acts .sh{display:none}
@media (max-width:700px){
  .app .pl-card{gap:8px;padding:10px 12px}
  .app .pl-bar{gap:6px 8px}
  .app .pl-bar .chips{gap:5px;flex-wrap:nowrap}
  .app .pl-card .chip,.app .pl-card .btn.sm{padding:5px 8px;min-height:30px;font-size:.8rem;line-height:1.1}
  .app .pl-card .pl-nav{gap:5px;flex-wrap:nowrap}
  .pl-bar select{min-width:140px}
  .pl-acts{margin-left:0;flex-wrap:nowrap;overflow-x:auto;max-width:100%;gap:5px;scrollbar-width:none}
  .pl-acts::-webkit-scrollbar{display:none}
  .pl-acts>*{flex:none}
  .pl-acts .lg{display:none}.pl-acts .sh{display:inline}
  .pl-range{font-size:.88rem}
  .pl-quick input{padding:7px 10px;font-size:.88rem}
  .pl-filters{flex-wrap:nowrap;overflow-x:auto;gap:5px;scrollbar-width:none}
  .pl-filters::-webkit-scrollbar{display:none}
  .pl-filters>*{flex:none}
  .app .pl-card .pl-filters .chip{padding:4px 9px;min-height:28px;font-size:.78rem}
  .pl-filters .pill{padding:4px 9px;font-size:.78rem}
  .pl-pill{margin-left:0}
  .pl-year{display:none}
}

/* Suche in den Modulen */
.modsearch{margin-bottom:14px}
.modflash{animation:modflash 1.8s ease-out}
@keyframes modflash{0%,60%{outline:3px solid var(--teal,#2aa3a8);outline-offset:3px;background-color:var(--tint)}100%{outline:3px solid transparent;outline-offset:3px}}
@media (prefers-reduced-motion:reduce){.modflash{animation:none;outline:3px solid var(--teal,#2aa3a8);outline-offset:3px}}

/* Fragenliste: aufklappbare Zeilen mit Miniaturbild und Detailansicht */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.qlist{display:grid;gap:10px}
.qrow{border:1.5px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.qrow.open{border-color:var(--line2);box-shadow:var(--shadow)}
.qrow.old{opacity:.75}
.qhead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;min-height:60px;padding:10px 14px;background:transparent;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.qhead:not(:has(.qthw)){grid-template-columns:minmax(0,1fr) auto}
.qhead:hover{background:var(--tint)}
.qhead:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
.qthw{display:block}
.qthumb{display:block;width:56px;height:56px;object-fit:contain;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line2)}
.qthumb.ph{display:grid;place-items:center;background:var(--tint);color:var(--navy)}
.qthumb.ph svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.qmain{display:grid;gap:4px;min-width:0}
.qmeta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.85rem}
.qmeta .pill,.qmeta .tag{font-size:.74rem;padding:2px 9px}
.qtext{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink);line-height:1.35;overflow-wrap:anywhere}
.chev{width:10px;height:10px;border-right:2.5px solid var(--navy);border-bottom:2.5px solid var(--navy);transform:rotate(45deg);margin:0 6px 4px 0;transition:transform .15s}
.qrow.open .chev{transform:rotate(-135deg);margin-bottom:-4px}
.qpanel{border-top:1.5px solid var(--line);padding:14px;background:#fbfdfd}
.qview .q-text{font-size:1.05rem;max-width:none;text-wrap:pretty}
.qcols{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px;align-items:start}
.qbody{display:grid;gap:12px;min-width:0}
.qbig img{display:block;max-width:100%;max-height:320px;object-fit:contain;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line2)}
.qbig img.loading{opacity:.6;max-height:120px}
.qopts{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.qopts li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:start;padding:8px 10px;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);overflow-wrap:anywhere}
.qopts li.ok{background:var(--ok-bg);box-shadow:inset 0 0 0 1.5px var(--ok)}
.qopts .mk{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line2);font-weight:700;font-size:.8rem;color:#fff;background:#fff}
.qopts li.ok .mk{background:var(--ok);border-color:var(--ok)}
.qans p{margin:4px 0 0;white-space:pre-line;background:#fff;padding:10px 12px;border-radius:10px;box-shadow:inset 0 0 0 1.5px var(--line)}
.qexpl{margin:0;font-size:.92rem;color:var(--muted)}
.qmetas{margin:0;display:grid;gap:8px;font-size:.88rem}
.qmetas dt{font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.qmetas dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.qact{margin-top:14px;padding-top:12px;border-top:1.5px solid var(--line);display:grid;gap:8px}
.qact .row{gap:8px}
.qact .note{margin:0}
.qedit-in h3{margin:0 0 10px;color:var(--navy)}
.impimg{display:inline-grid;justify-items:start;gap:3px;margin-right:8px;vertical-align:top}
.impimg .qthumb{width:44px;height:44px}
@media (max-width:760px){
  .qcols{grid-template-columns:minmax(0,1fr)}
  .qmetas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qact .btn{flex:1 1 auto}
  .qthumb{width:48px;height:48px}
}
@media (max-width:700px){.impwrap th:nth-child(3),.impwrap td:nth-child(3){display:none}.impwrap td:nth-child(4){min-width:200px}}

/* Schwebende Meldung (global) */
#gtoast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:70;width:max-content;max-width:calc(100% - 28px);pointer-events:none}
#gtoast .toast{margin:0;display:flex;align-items:center;gap:12px;pointer-events:auto;box-shadow:0 6px 24px rgba(37,56,118,.25);animation:gtoastin .22s ease-out}
#gtoast .toastx{flex:none;border:0;background:transparent;color:inherit;font:700 1.3rem/1 var(--f);padding:0 2px;cursor:pointer;min-width:28px;min-height:28px}
@keyframes gtoastin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (min-width:901px){#gtoast{bottom:24px}}
@media (prefers-reduced-motion:reduce){#gtoast .toast{animation:none}}

/* ---------- Regelwerke und Quellen ---------- */
.rw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.rw-card{background:#fff;border:1px solid var(--line2);border-radius:16px;padding:16px 18px;display:grid;gap:10px;box-shadow:var(--shadow)}
.rw-card.off{opacity:.75}
.rw-name{font-size:1.08rem;color:var(--navy)}
.rw-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 14px;margin:0}
.rw-meta dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.rw-meta dd{margin:0;font-weight:600}
.rw-cnt{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rw-form .grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.rw-list{display:grid;gap:10px;margin-top:10px}
.rw-item{border:1px solid var(--line2);border-radius:14px;padding:12px 14px;display:grid;gap:6px;background:#fff}
.rw-item.rw-bad{background:var(--bad-bg);border-color:#f0b4ba}
.rw-ihead{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rw-t{font-weight:600}
.rw-src{font-size:.92rem}
.rw-act{display:flex;flex-wrap:wrap;gap:8px}
.rw-all{margin-top:10px}
.rw-bulk{background:var(--tint);border-radius:12px;padding:10px 14px;align-items:center}
.au-kpi.bad b{color:var(--bad)}
.au-kpi.good b{color:var(--ok)}
.srcbox{border:1px solid var(--line2);background:var(--tint);border-radius:12px;padding:12px 14px;display:grid;gap:8px;margin-top:12px}
.srcbox.editing{background:#fff;box-shadow:inset 0 0 0 1.5px var(--teal)}
.srcl{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.src-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(160px,1.4fr) minmax(130px,.9fr) auto;gap:8px;align-items:center}
.src-row select,.src-row input{min-width:0}
.relopts{display:grid;gap:8px;width:100%;background:var(--tint);border-radius:12px;padding:10px 14px}
.relopts .f{margin:0}
.poolsrc{max-width:220px;padding:6px 10px;border-radius:99px;border:1.5px solid var(--line2);background:#fff}
@media (max-width:700px){
  .src-row{grid-template-columns:1fr auto}
  .src-row select,.src-row input:nth-of-type(1),.src-row input:nth-of-type(2){grid-column:1 / -1}
  .rw-grid{grid-template-columns:1fr}
}
@media print{
  body.printrw *{visibility:hidden}
  body.printrw .rw-report,body.printrw .rw-report *{visibility:visible}
  body.printrw .rw-report{position:absolute;left:0;top:0;width:100%;box-shadow:none}
}
.kback{justify-self:start;text-align:left}
.khead .kback{background:rgba(255,255,255,.92);color:var(--navy)}

/* Modulauswahl */
.kat-row{display:flex;gap:10px;align-items:flex-start}
.kat-row .acc{flex:1;min-width:0}
.kat-sel{padding-top:14px}
.kat-picks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.kat-pick{display:flex;gap:10px;align-items:center;background:var(--tint);border-radius:12px;padding:8px 12px}
.kat-pt{flex:1;min-width:0;font-weight:600}
.kat-pa{display:flex;gap:6px}
.kat-selbox{position:sticky;top:8px;z-index:5;box-shadow:var(--shadow),0 0 0 2px var(--teal)}
@media (max-width:700px){.kat-selbox{position:static}.kat-pick{flex-wrap:wrap}.kat-pt{flex:1 1 100%}}

/* Ausbildungspfade */
.pf-sub{align-items:center}
.pf-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pf-ready{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:#fff8d6;border:1px solid #f0dc7a}
.pf-why{max-width:34ch;text-align:right}
.pill.warn{background:#fff3b0;color:#6b5600}
.pill.info{background:#dbeafe;color:#1e40af}
.pf-board{display:grid;grid-template-columns:repeat(var(--n),minmax(210px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}
.pf-col{background:var(--tint);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;min-width:0}
.pf-col.empty{opacity:.55}
.pf-col-h{font-weight:700;font-size:.86rem;color:var(--navy);line-height:1.3}
.pf-card{background:#fff;border-radius:12px;padding:10px 12px;box-shadow:var(--shadow);display:grid;gap:6px;border:2px solid transparent}
.pf-card.ready{border-color:var(--yellow)}
.pf-card-h{display:flex;justify-content:space-between;gap:8px}
.pf-dots{display:flex;gap:4px;flex-wrap:wrap}
.pf-dot{width:12px;height:12px;border-radius:50%;background:var(--line2);display:inline-block}
.pf-dot.bereit{background:var(--yellow);box-shadow:0 0 0 2px #c9a800 inset}
.pf-dot.freigegeben{background:#3b82f6}
.pf-dot.erledigt{background:var(--ok)}
.pf-act{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:.88rem}
.pf-end{justify-self:start;margin-top:2px}
.pf-chk{display:flex;gap:8px;align-items:flex-start;font-size:.9rem}
.pf-chk input{margin-top:3px}
.pf-pcard{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.pf-flow{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.pf-step{display:grid;grid-template-columns:28px 1fr auto;gap:10px;padding:10px;border-radius:12px;background:var(--tint);margin-bottom:8px}
.pf-step-n{font-weight:700;color:var(--navy);padding-top:6px}
.pf-step-f{display:grid;gap:6px;min-width:0}
.pf-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pf-row select,.pf-row input{min-width:0;width:100%}
.pf-step-b{display:flex;flex-direction:column;gap:4px}
@media (max-width:700px){
  .pf-board{grid-template-columns:1fr;overflow:visible}
  .pf-col.empty{display:none}
  .pf-row{grid-template-columns:1fr}
  .pf-why{text-align:left;max-width:none}
}
.pf-card .pf-why{text-align:left;max-width:none}

/* Einheitliche Breite: Scrollleiste verschiebt das Layout beim Seitenwechsel nicht mehr */
html{scrollbar-gutter:stable}
.khead.compact{padding:16px 22px;gap:6px}
.khead.compact h2{font-size:1.3rem}

/* Abhängigkeiten im Register */
.au-dep{display:grid;grid-template-columns:minmax(160px,220px) 1fr auto;gap:12px;align-items:start;padding:10px 0;border-top:1px solid var(--line)}
.dp-chip{cursor:pointer}.dp-chip input{margin:0}
@media (max-width:700px){.au-dep{grid-template-columns:1fr}}

/* Kennzahlen-Kacheln: feste Spalten statt Umbruch mit Einzelkachel (8 kacheln = 4 x 2), gleich hoch, Zahl oben */
.au-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}
.au-kpi{justify-content:flex-start;min-height:108px;gap:4px}
.au-kpi span{line-height:1.25}
.au-kpi em{line-height:1.3}
@media (max-width:900px){.au-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:360px){.au-kpis{grid-template-columns:minmax(0,1fr)}}

/* Simulator-/RFU-Planung nutzt die Klassen der Trainerplanung (pl-*); hier nur Ergänzungen */
.au-tlx .pl-cell{padding:4px}.au-tlx .pl-cell>.au-cell{flex:1;min-width:0}
.au-dn-in{width:100%;margin-top:4px;padding:2px 4px;font-size:.78rem;border:1px solid var(--line2);border-radius:6px}
.pl-tl.compact .au-cell{min-height:40px;padding:3px 4px}.pl-tl.compact .au-cell small{display:none}

/* Kurs direkt in der Liste löschen: kleines × auf der Karte, Bestätigung als Overlay */
.kx{position:absolute;top:10px;right:10px;z-index:3;width:30px;height:30px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#fff;background:rgba(20,30,60,.38);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:.0;transform:scale(.85);transition:opacity .15s,transform .15s,background .15s}
.kx svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.kcard:hover .kx,.kcard:focus-within .kx,.kx:focus-visible{opacity:1;transform:none}
.kx:hover{background:var(--bad,#c5000f)}
@media (hover:none){.kx{opacity:.92;transform:none}}
.kask{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:22px;text-align:left;background:rgba(255,255,255,.94);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:kaskin .16s ease-out}
.kask b{color:var(--navy);font-size:1.05rem}
.kask span{color:var(--muted);font-size:.9rem;line-height:1.35}
.kdanger{background:var(--bad,#c5000f);border-color:var(--bad,#c5000f);color:#fff}
@keyframes kaskin{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.kask{animation:none}.kx{transition:none}}

/* Ausbildung: Werkzeugleiste wie in der Trainerplanung (Reiter, Suche, Aktionen in einer Karte) */
.pl-card>.pl-bar+.pl-bar,.pl-card>.pl-bar+.pl-year{margin-top:0}
.au-tfbar input[type=search]{flex:1 1 260px;min-width:0;max-width:420px}
.au-tfbar .check{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}
input[type=search]{color:var(--ink);background:#fff;border:1.5px solid var(--line2);border-radius:10px;padding:10px 12px;font-weight:400}
.au-tfbar input[type=search]{width:100%}
.au-tfbar input[type=search]:focus{outline:2px solid var(--navy);outline-offset:1px}
.rw-kb{margin:6px 0 2px;padding:8px 10px;background:var(--tint);border-radius:10px;display:grid;gap:4px}
.rw-kb details summary{cursor:pointer;font-weight:600}

/* Regelwerke: Cockpit */
.rwc-band{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:stretch}
.rwc-score{background:#fff;border:1px solid var(--line2);border-radius:18px;padding:16px 18px;display:flex;gap:16px;align-items:center;box-shadow:var(--shadow)}
.rwc-pct{display:flex;align-items:baseline;gap:2px;color:var(--navy);line-height:1}
.rwc-pct b{font-size:3.2rem;letter-spacing:-.03em}
.rwc-pct span{font-size:1.2rem;font-weight:700}
.rwc-sc{flex:1;min-width:0;display:grid;gap:6px}
.rwc-bar{height:10px;border-radius:99px;background:var(--tint);overflow:hidden}
.rwc-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--teal),var(--nbtn));transition:width .5s ease}
.rwc-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rwc-tile{border:1px solid var(--line2);background:#fff;border-radius:16px;padding:12px;display:flex;flex-direction:column;justify-content:center;gap:2px;text-align:left;cursor:pointer;color:var(--ink);box-shadow:var(--shadow)}
.rwc-tile b{font-size:1.9rem;line-height:1;color:var(--navy)}
.rwc-tile span{font-size:.82rem;font-weight:600;line-height:1.25}
.rwc-tile.bad b{color:var(--bad)}
.rwc-tile.bad:not(:disabled){border-color:#f0b4ba;background:var(--bad-bg)}
.rwc-tile.warn:not(:disabled){border-color:#e9c36a;background:#fff8e6}
.rwc-tile.warn b{color:#9a6a00}
.rwc-tile:disabled{cursor:default;opacity:.65;box-shadow:none}
.rwc-tile.plain{cursor:default}
.rwc-tile[aria-pressed=true]{outline:3px solid var(--navy);outline-offset:1px}
.rwc-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rwr-list{display:grid;gap:10px}
.rwr{display:flex;gap:14px;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line2);border-left:6px solid var(--line2);border-radius:16px;padding:12px 14px 12px 16px;box-shadow:var(--shadow)}
.rwr.ok{border-left-color:var(--green)}
.rwr.warn{border-left-color:var(--orange)}
.rwr.bad{border-left-color:var(--red)}
.rwr.off{opacity:.7}
.rwr-main{min-width:0;display:grid;gap:3px}
.rwr-name{font-size:1.05rem;color:var(--navy)}
.rwr-sub{font-size:.88rem;color:var(--muted)}
.rwr-st{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.rwr-act{display:flex;gap:8px;align-items:center;flex:none}
.rw-menu{position:relative}
.rw-menu summary{list-style:none;cursor:pointer;min-width:40px;text-align:center;font-weight:700;letter-spacing:.1em}
.rw-menu summary::-webkit-details-marker{display:none}
.rw-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:230px;background:#fff;border:1px solid var(--line2);border-radius:14px;box-shadow:var(--shadow),0 12px 30px rgba(37,56,118,.16);padding:6px;display:grid}
.rw-pop button{border:0;background:none;text-align:left;padding:10px 12px;border-radius:10px;cursor:pointer;color:var(--ink);font-weight:600}
.rw-pop button:hover,.rw-pop button:focus-visible{background:var(--tint)}
.rwseg{display:inline-flex;background:var(--tint);border-radius:99px;padding:4px;gap:2px;max-width:100%}
.rwseg button{border:0;background:none;border-radius:99px;padding:8px 16px;font-weight:700;color:var(--navy);cursor:pointer}
.rwseg button[aria-pressed=true]{background:var(--nbtn);color:#fff}
.rwseg .ct{background:rgba(255,255,255,.28);border-radius:99px;padding:0 7px;margin-left:4px;font-size:.8rem}
.rwseg button[aria-pressed=false] .ct{background:var(--teal-lt)}
.rwd-head{display:grid;gap:12px}
.rwd-top{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.rwd-body{display:grid;gap:10px}
.rwc-prog{display:grid;gap:4px}
.rw-bulk{position:sticky;bottom:12px;z-index:6;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--nbtn);color:#fff;border-radius:16px;padding:10px 14px;box-shadow:0 10px 28px rgba(37,56,118,.35)}
.rw-bulk b{margin-right:auto}
.rw-bulk .btn.sec{background:#fff;color:var(--navy)}
.rw-bulk .btn:not(.sec){background:var(--teal-lt);color:var(--navy)}
.rw-item{border-left:5px solid var(--line2)}
.rw-item.rw-bad{border-left-color:var(--red)}
@media (max-width:700px){
  .rwc-band{grid-template-columns:1fr}
  .rwc-pct b{font-size:2.6rem}
  .rwr{flex-direction:column;align-items:stretch}
  .rwr-act{justify-content:space-between}
  .rwr-act .btn.sm:first-child{flex:1}
  .rw-bulk{bottom:96px}
  .rw-pop{left:0;right:auto;max-width:calc(100vw - 64px)}
}
@media (prefers-reduced-motion:reduce){.rwc-bar i{transition:none}}
.rwr:nth-last-child(-n+2) .rw-pop{top:auto;bottom:calc(100% + 6px)}
/* Eingang: mehrere Aktionen je Meldung dürfen umbrechen; Sammelbestätigung im Textvergleich */
.rwr-act.sig{flex-wrap:wrap;justify-content:flex-end;max-width:340px}
.rw-bulk-vg .btn{justify-self:start;margin-top:6px}
@media (max-width:700px){.rwr-act.sig{max-width:none;justify-content:flex-start}.rwr-act.sig .btn.sm:first-child{flex:1 1 100%}}

/* Editor: Bausteinkarten mit Live-Vorschau, Einfügepunkte, Kachelauswahl */
.kbes .kbe{margin:0;background:#fff;gap:10px;transition:border-color .15s,box-shadow .15s}
.kbe.open{border-color:var(--navy);box-shadow:0 0 0 3px rgba(37,56,118,.12)}
.kbe-h .kbe-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--tint);font-size:1rem;flex:none}
.kbe-pv{position:relative;cursor:pointer;border:1.5px dashed transparent;border-radius:10px;padding:8px 10px;max-height:240px;overflow:hidden;background:#fff}
.kbe-pv:hover,.kbe-pv:focus-visible{border-color:var(--teal,#3fa4a9);outline:none}
.kbe-pv::after{content:"";position:absolute;left:0;right:0;bottom:0;height:38px;background:linear-gradient(rgba(255,255,255,0),#fff);pointer-events:none}
.kbe-pvin{pointer-events:none}
.kbe-pvin .kb{margin:0}
.kbe-edit{position:absolute;right:8px;top:8px;z-index:1;padding:4px 10px;border-radius:99px;background:var(--nbtn);color:#fff;font:700 .78rem var(--f);opacity:.92}
.kbe-pv[hidden],.kbe-ed[hidden]{display:none}
.kbe-ed{display:flex;flex-direction:column;gap:8px}
.kbe-ins{position:relative;display:flex;justify-content:center;align-items:center;height:22px}
.kbe-ins::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--teal,#3fa4a9);opacity:0;transition:opacity .15s}
.kbe-ins:hover::before,.kbe-ins:focus-within::before{opacity:.5}
.kbe-plus{position:relative;z-index:1;min-width:26px;height:26px;padding:0 8px;border-radius:99px;border:1.5px solid var(--line2);background:#fff;color:var(--navy);font:700 .9rem var(--f);cursor:pointer;opacity:.55;transition:opacity .15s,background .15s}
.kbe-ins:hover .kbe-plus,.kbe-plus:focus-visible{opacity:1;background:var(--nbtn);color:#fff;border-color:var(--navy)}
@media (hover:none){.kbe-plus{opacity:1}}
.kbe-ins.last{height:auto;margin-top:6px}
.kbe-ins.last::before{display:none}
.kbe-ins.last .kbe-plus{width:100%;height:auto;padding:12px;border-style:dashed;border-radius:12px;opacity:1;font-size:.95rem}
.kbe-ins.last .kbe-plus span{font-weight:700}
.kbe-ins.on{height:auto;display:block;margin:6px 0}
.kbe-ins.on::before{display:none}
.kbp{border:2px solid var(--navy);border-radius:16px;padding:12px;background:#fff;box-shadow:var(--shadow);display:grid;gap:12px}
.kbp-top{display:flex;gap:8px;align-items:center}
.kbp-q{flex:1;min-width:0}
.kbp-gh{font:700 .74rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.kbp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.kbp-t{display:grid;gap:3px;text-align:left;align-content:start;padding:10px 12px;border:1.5px solid var(--line2);border-radius:12px;background:#fff;color:var(--ink,inherit);font:inherit;cursor:pointer;transition:border-color .12s,transform .1s}
.kbp-t:hover,.kbp-t:focus-visible{border-color:var(--navy);outline:none}
.kbp-t:active{transform:scale(.97)}
.kbp-t .kbp-i{font-size:1.25rem;line-height:1}
.kbp-t b{font-size:.92rem}
.kbp-t .note{font-size:.78rem;line-height:1.3}
.kbp-t[hidden],.kbp-g[hidden],.kbp-none[hidden]{display:none}

/* Modulübersicht: ganze Zeile wählbar, feste Auswahlleiste, Detailpanel */
.kat-r{display:flex;gap:10px;align-items:center;padding:12px 14px;border:1.5px solid var(--line2);border-radius:14px;background:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .12s,background .12s}
.kat-r:hover{border-color:var(--navy)}
.kat-r:focus-visible{outline:3px solid var(--teal,#3fa4a9);outline-offset:1px}
.kat-r.on{border-color:var(--navy);background:var(--tint)}
.kat-ck{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--line2);background:#fff;display:grid;place-items:center;transition:background .12s,border-color .12s}
.kat-r.on .kat-ck{background:var(--nbtn);border-color:var(--navy)}
.kat-r.on .kat-ck::after{content:"✓";color:#fff;font-size:.85rem;font-weight:800;line-height:1}
.kat-rt{flex:1;min-width:0;display:grid;gap:1px}
.kat-rt b{font-weight:700}
.kat-r .kat-ue{margin-left:0}
.kat-i{flex:none}
@media (max-width:600px){.kat-r{flex-wrap:wrap}.kat-rt{flex:1 1 55%}.kat-r .kat-i{margin-left:auto}}
.kat-bar{position:sticky;bottom:12px;z-index:25;background:#fff;border-radius:18px;box-shadow:0 8px 30px rgba(37,56,118,.28),0 0 0 2px var(--navy);padding:10px 12px;display:grid;gap:10px;max-height:70vh;overflow:auto}
.kat-bar-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.kat-bar-sp{flex:1}
.kat-bar-b{display:grid;gap:10px}
@media (max-width:900px){.kat-bar{bottom:calc(84px + env(safe-area-inset-bottom))}}
.kat-dr-back{position:fixed;inset:0;z-index:50;background:rgba(20,30,70,.4)}
.kat-dr-panel{position:fixed;z-index:51;right:0;top:0;bottom:0;width:min(440px,100%);overflow:auto;background:#fff;padding:18px;display:grid;gap:12px;align-content:start;box-shadow:-10px 0 40px rgba(20,30,70,.25)}
.kat-dr-h{display:flex;gap:10px;align-items:center}
.kat-dr-h b{flex:1;font-size:1.05rem}
.kat-dr-panel h4{margin:4px 0 0;color:var(--navy)}
@media (max-width:900px){.kat-dr-panel{top:auto;left:50%;right:auto;transform:translateX(-50%);width:min(100%,560px);max-height:82dvh;border-radius:24px 24px 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom))}}

/* Editor: Zeilen statt Kurzsyntax */
.kbrs{display:grid;gap:8px}
.kbr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px;border:1.5px solid var(--line2);border-radius:12px;background:var(--tint)}
.kbr-no{display:grid;place-items:center;width:26px;height:26px;margin-top:5px;border-radius:50%;background:#fff;color:var(--navy);font:700 .8rem var(--f)}
.kbr-fs{display:grid;gap:6px;min-width:0}
.kbr-fs.kbr-hs{grid-template-columns:repeat(2,minmax(0,1fr))}
.kbr-fs.kbr-hs>textarea,.kbr-fs.kbr-hs>input[type=text]{grid-column:1/-1}
.kbr .kbr-f{width:100%;min-width:0;box-sizing:border-box;font:inherit}
.kbr textarea.kbr-f{resize:vertical}
.kbr-n{margin:0}
.kbr-ok{grid-column:2;margin:0}
.kbr:has(.kbr-ok){grid-template-columns:auto minmax(0,1fr) auto}
.kbr:has(.kbr-ok) .kbr-no{grid-row:1 / span 2}
.kbr:has(.kbr-ok) .kbr-fs{grid-column:2}
.kbr:has(.kbr-ok) .kbr-a{grid-column:3;grid-row:1 / span 2}
.kbr-a{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:520px){.kbr{grid-template-columns:auto minmax(0,1fr)}.kbr-a{grid-column:1/-1;justify-content:flex-start}.kbr:has(.kbr-ok) .kbr-a{grid-column:1/-1;grid-row:auto}}

/* Editor: Folien und Szenarien */
.kdss{display:grid;gap:8px}
.kds{border:1.5px solid var(--line2);border-radius:14px;background:#fff;overflow:hidden}
.kds[open]{border-color:var(--navy)}
.kds>summary{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;cursor:pointer;list-style:none;background:var(--tint)}
.kds>summary::-webkit-details-marker{display:none}
.kds>summary b{flex:1 1 140px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.kds-b{display:grid;gap:10px;padding:12px}
.kds-act{gap:6px}
.kds-q{border:1.5px dashed var(--line2);border-radius:12px;padding:0}
.kds-q>summary{padding:10px 12px;cursor:pointer;font-weight:700;color:var(--navy)}
.kdn{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px;border:1.5px solid var(--line2);border-radius:12px;background:var(--tint)}
.kdn .kdn-f,.kdn .kdn-g,.kds-f{width:100%;min-width:0;box-sizing:border-box;font:inherit}
.kdn textarea.kdn-f,.kds textarea.kds-f{resize:vertical}
@media (max-width:520px){.kdn{grid-template-columns:auto minmax(0,1fr)}.kdn .kbr-a{grid-column:1/-1;justify-content:flex-start}}
/* Editor: Rückgängig / Wiederholen, lokale Sicherung */
.kh-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}
.kh-bar .btn[disabled]{opacity:.4;cursor:default}
.kh-st{margin-left:auto;font-size:.82rem}
.kh-offer{display:grid;gap:8px;margin:0 0 12px;border:1.5px solid var(--navy)}
.kh-offer .row{display:flex;flex-wrap:wrap;gap:8px}
/* Bausteine ziehen */
.kbe-gr{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:36px;margin:-4px 0 -4px -6px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;color:var(--muted,#667);font-size:1.25rem;line-height:1;border-radius:8px}
.kbe-gr:hover{background:var(--tint)}
.kbe-drag{opacity:.55;outline:2px dashed var(--navy)}
.kbe-dropb{box-shadow:0 -4px 0 0 var(--navy)}
.kbe-dropa{box-shadow:0 4px 0 0 var(--navy)}
body.kbe-dragging{cursor:grabbing;user-select:none;-webkit-user-select:none}

/* Zeitplan der Ausbildungspfade */
.pf-time{grid-template-columns:1fr 1fr}
.pf-zp-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.pf-start{display:inline-flex;gap:6px;align-items:center}
.pf-start input[type=date]{width:auto;min-width:0}
.pf-zp table td{vertical-align:middle}
.pf-zp .pf-late td{background:color-mix(in srgb,var(--bad,#c0392b) 8%,transparent)}

/* Gruppenplan: Zeitachse der Ausbildungspfade */
.pf-knav{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.pf-knav select{width:auto;min-width:0;max-width:100%}
.pf-kscroll{overflow-x:auto;border:1px solid var(--line,#d6e3e6);border-radius:12px}
.pf-kgrid{position:relative;display:grid;grid-template-columns:var(--kn) 1fr;min-width:calc(var(--kn) + var(--n) * 26px)}
.pf-kname{padding:8px 10px;border-bottom:1px solid var(--line,#e3ecee);display:flex;flex-direction:column;justify-content:center;gap:2px;background:#fff;position:sticky;left:0;z-index:3;font-size:.88rem}
.pf-kname.head{border-bottom:0}
.pf-kdays{border-bottom:1px solid var(--line,#d6e3e6)}
.pf-kmon,.pf-kdr{display:grid}
.pf-km{font-size:.72rem;font-weight:700;color:var(--navy);padding:4px 6px;border-left:1px solid var(--line,#d6e3e6);white-space:nowrap;overflow:hidden}
.pf-kd{font-size:.68rem;text-align:center;color:#5f6b6e;padding:3px 0;min-height:20px}
.pf-kd.we,.pf-kc.we{background:rgba(37,56,118,.05)}
.pf-kd.today{background:var(--yellow);color:var(--navy);font-weight:700;border-radius:4px}
.pf-klane{display:grid;gap:3px 0;padding:3px 0;border-bottom:1px solid var(--line,#e3ecee);position:relative}
.pf-kc{pointer-events:none}
.pf-kc.today{background:rgba(255,200,0,.14)}
.pf-kline{position:absolute;top:0;bottom:0;width:2px;background:var(--yellow);z-index:2;pointer-events:none}
.pf-kb{display:block;font-size:.72rem;line-height:20px;padding:0 6px;border-radius:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 1px;z-index:1;align-self:center;background:#e6eef0;color:#3a4650;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.pf-kb.erledigt{background:var(--ok-bg);color:var(--ok)}
.pf-kb.freigegeben{background:#dce6ff;color:var(--navy)}
.pf-kb.bereit{background:#fff0b3;color:#6b4a00}
.pf-kb.plan{border-radius:3px}
.pf-kb.late{background:var(--bad-bg);color:var(--bad)}
.pf-kb.conf{box-shadow:inset 0 0 0 2px var(--bad)}
.pf-klegend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:.78rem;color:#5f6b6e}
.pf-klegend span{display:inline-flex;align-items:center;gap:6px}
.pf-klegend .pf-kb{display:inline-block;width:22px;height:12px;line-height:12px;padding:0;margin:0}
.pf-conf{font-size:.8rem;color:var(--bad);margin-top:3px}
.pf-plform{display:grid;gap:8px;margin-top:8px;padding:10px;border-radius:10px;background:rgba(37,56,118,.05)}
.pf-plform .f{margin:0}
.pf-kconf ul{margin:0}
@media(max-width:640px){.pf-kgrid{--kn:104px!important}.pf-kname{padding:6px 8px;font-size:.8rem}}
.pf-kmon{min-height:22px}
.pf-subrow td{padding-top:0!important;border-top:0!important}
.pf-subrow .pf-plform{max-width:520px}

/* Mein Ausbildungsplan und Kalender (Lernen) */
.pf-zp-r{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.kmy{display:grid;gap:14px}
.kmy-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.kmy-steps li{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 10px;border-radius:10px;background:rgba(37,56,118,.05)}
.kmy-steps li.late{background:var(--bad-bg)}
.kmy-steps li.erledigt .kmy-n{text-decoration:line-through;color:#5f6b6e}
.kmy-n{font-weight:600;flex:1 1 180px;min-width:0}
.kmy-cal{border-top:1px solid var(--line,#e3ecee);padding-top:12px}
.kmy-how{margin:8px 0 0}

/* Kalenderansicht im Ausbildungsplan */
.kmy-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:flex-start}
.kc-nav{display:flex;gap:8px;align-items:center;margin:4px 0 10px}
.kc-nav b{flex:1;text-align:center}
.kc-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.kc-h{font-size:.72rem;font-weight:700;color:#5f6b6e;text-align:center;padding:2px 0}
.kc-d{min-height:92px;padding:4px;border-radius:8px;background:rgba(37,56,118,.04);display:flex;flex-direction:column;gap:3px;min-width:0;font-size:.74rem}
.kc-d.out{background:transparent}
.kc-d.we{background:rgba(37,56,118,.08)}
.kc-d.today{box-shadow:inset 0 0 0 2px var(--yellow)}
.kc-d b{font-size:.74rem;color:var(--navy)}
.kc-ev{display:block;padding:1px 5px;border-radius:5px;background:#e6eef0;color:#3a4650;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.5}
.kc-ev.erledigt{background:var(--ok-bg);color:var(--ok)}
.kc-ev.freigegeben{background:#dce6ff;color:var(--navy)}
.kc-ev.bereit{background:#fff0b3;color:#6b4a00}
.kc-ev.late{background:var(--bad-bg);color:var(--bad)}
.kc-agenda{list-style:none;margin:10px 0 0;padding:0;display:none;gap:6px}
.kc-agenda li{display:flex;gap:10px;padding:8px 10px;border-radius:10px;background:rgba(37,56,118,.05)}
.kc-agenda li.today{box-shadow:inset 0 0 0 2px var(--yellow)}
.kc-agenda li b{min-width:46px}
.kc-agenda li>div{display:grid;gap:4px;flex:1;min-width:0}
.kc-ag{display:flex;flex-direction:column;font-size:.86rem}
.kc-ag.late>span:first-child{color:var(--bad)}
@media(max-width:700px){.kc-grid{display:none}.kc-agenda{display:grid}}

/* Lernen: Lernenden-Ansicht und Verwalten getrennt */
.kseg{display:inline-flex;gap:4px;padding:4px;background:#fff;border-radius:99px;box-shadow:inset 0 0 0 1.5px var(--line2);width:fit-content}
.kseg button{border:0;background:none;color:var(--navy);font:700 .9rem var(--f);padding:8px 20px;min-height:40px;border-radius:99px;cursor:pointer}
.kseg button[aria-pressed="true"]{background:var(--nbtn);color:#fff}
.kresume{display:grid;gap:10px;justify-items:start;border-radius:20px;padding:22px 24px;color:#fff;background:linear-gradient(110deg,var(--nbtn),var(--teal));box-shadow:var(--shadow)}
.kresume.late{background:linear-gradient(110deg,#8f1a26,var(--nbtn))}
.kresume h2{color:#fff;margin:0;font-size:1.45rem;line-height:1.2}
.kresume p{margin:0;opacity:.94}
.kresume-k{font:700 .74rem var(--f);letter-spacing:.07em;text-transform:uppercase;background:rgba(255,255,255,.2);padding:4px 10px;border-radius:99px}
.kresume .kbar{width:100%;max-width:420px;background:rgba(255,255,255,.3)}
.kresume .kbar i{background:#fff}
.kresume .btn{background:#fff;color:var(--navy);min-height:46px;padding-inline:26px}
.kblock{display:grid;gap:10px}
.ksec{margin:0;font-size:1.05rem;color:var(--navy)}
.ksec-h{display:flex;justify-content:space-between;align-items:center;gap:10px}
.kiconbtn{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--line2);cursor:pointer}
.kiconbtn[aria-pressed="true"]{background:var(--nbtn);color:#fff;box-shadow:none}
.kiconbtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.krows{display:grid;gap:10px}
.krow{display:flex;align-items:center;gap:14px;width:100%;text-align:left;border:0;background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:12px 14px;cursor:pointer;font:inherit;color:var(--ink)}
.krow:hover{background:var(--tint)}
.kico{flex:none;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(120deg,var(--teal),var(--nbtn))}
.kico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.krow-b{flex:1;min-width:0;display:grid;gap:5px}
.krow-b .kbadges:empty{display:none}
.krow-t{color:var(--navy);font-size:1rem;overflow-wrap:anywhere}
.krow-go{flex:none;font-weight:700;font-size:.86rem;color:var(--navy);white-space:nowrap}
.klinkrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:var(--tint);border-radius:14px;padding:14px 16px;cursor:pointer;font:inherit;color:var(--navy)}
.klinkrow .kl-t{flex:1;min-width:0;display:grid;gap:2px}
.ktoprow{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.klinkrow:hover{background:var(--line)}
.knewmenu{display:grid;gap:4px;padding:8px}
.knewmenu button{display:grid;gap:2px;text-align:left;border:0;background:none;padding:12px 14px;border-radius:12px;cursor:pointer;font:inherit;color:var(--navy);min-height:48px}
.knewmenu button:hover{background:var(--tint)}
@media (max-width:900px){.kresume{padding:20px}.kresume h2{font-size:1.25rem}.krow{padding:12px}.krow-go{display:none}}

/* Kurs-Ansicht: fester Fortsetzen-Knopf (nur Handy/Tablet) */
.kfab,.kfab-sp{display:none}
@media (max-width:900px){
  .kfab{display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;z-index:29;left:0;right:0;margin-inline:auto;bottom:calc(86px + env(safe-area-inset-bottom));width:min(calc(100% - 20px),560px);padding:10px 10px 10px 18px;border-radius:22px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px);box-shadow:0 6px 26px rgba(37,56,118,.24),0 0 0 1px rgba(37,56,118,.08)}
  .kfab-p{display:grid;gap:1px;min-width:0}.kfab-p b{color:var(--navy);font-size:1.05rem}
  .kfab .btn{min-height:46px;padding-inline:24px;flex:none}
  .kfab-sp{display:block;height:72px}
  body.insession .kfab{display:none}
  .kcols .kinfo{order:-1}
  .kcols .kinfo:not(.done){display:none} /* Stand und Knopf stehen schon im festen Balken unten */
  .kcols .kinfo>.btn[data-a="k-lesson"]{display:none}
  .klayout .kside{order:2}
}


/* Ausbildung: Das ist offen, Zeitplan (Soll/Ist) */
.au-tasks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
@media (min-width:760px){.au-tasks{grid-template-columns:repeat(4,minmax(0,1fr))}}
.au-task{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;border:0;border-radius:14px;padding:12px 14px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line2);cursor:pointer;font:inherit;color:var(--ink);min-height:92px}
.au-task b{font-size:1.7rem;line-height:1.1;color:var(--navy)}
.au-task span{font-weight:700;font-size:.86rem}
.au-task em{font-style:normal;font-size:.76rem;color:var(--muted)}
.au-task.warn{box-shadow:inset 0 0 0 1.5px #d9a000;background:#fffaf0}
.au-task.on{box-shadow:inset 0 0 0 2.5px var(--navy)}
.au-link{width:100%;text-align:left;border:0;background:none;cursor:pointer;font:inherit;color:var(--ink)}
.au-link:hover{background:var(--tint)}
.au-util{margin:10px 0;line-height:1.7}
.au-more{margin-top:8px}.au-more>summary{cursor:pointer;font-weight:700;color:var(--navy);padding:8px 0}
.zp-head{display:grid;gap:10px}
.zp-yr{display:flex;align-items:center;gap:12px}.zp-yr b{font-size:1.3rem;color:var(--navy)}
.zp-sum{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.zp-g{margin:10px 0 0;font-size:1.05rem;color:var(--navy)}
.zp-row{display:grid;gap:10px}
.zp-row.now{box-shadow:var(--shadow),inset 4px 0 0 var(--teal)}
.zp-h{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:0;background:none;cursor:pointer;font:inherit;color:var(--ink);text-align:left;padding:0;min-height:44px}
.zp-t{display:grid;gap:2px;min-width:0}.zp-t b{color:var(--navy);font-size:1.02rem}
.zp-bar{position:relative;display:flex;height:16px;border-radius:99px;background:var(--line);overflow:visible}
.zp-bar i{display:block;height:100%}
.zp-bar i:first-child{border-radius:99px 0 0 99px}
.zp-bar .d{background:var(--green)}.zp-bar .p{background:var(--teal)}.zp-bar .o{background:var(--bad)}
.zp-line{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1.5px;border-radius:2px;background:var(--nbtn);text-decoration:none}
.zp-n{margin:0;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:.9rem}
.zp-k{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--line2);margin-right:5px}
.zp-k.d{background:var(--green)}.zp-k.p{background:var(--teal)}.zp-k.o{background:var(--bad)}
.zp-people{border-top:1px solid var(--line);padding-top:6px}
.zp-ph{margin:10px 0 2px;font-size:.9rem}
.zp-ph.bad{color:var(--bad)}.zp-ph.warn{color:#8a5a00}.zp-ph.ok{color:var(--ok)}
.zp-rule>summary{cursor:pointer;font-weight:700;color:var(--navy)}
.au-tabrow{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.au-tabrow .au-tabs{flex:1;min-width:0;margin:0;gap:6px}
.au-tabrow .kiconbtn{flex:none;width:40px;height:40px}
.au-sub{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line)}
.au-sub .chip{background:var(--tint)}
.au-sub .chip[aria-pressed="true"]{background:var(--nbtn)}
@media (max-width:900px){.au-tabrow .au-tabs .chip{padding:7px 12px;font-size:.84rem;min-height:38px}}
/* Ausbildung: Hauptreiter umbrechen statt horizontal scrollen */
.app .pl-bar .au-tabrow .au-tabs{flex-wrap:wrap;overflow-x:visible}
@media (max-width:900px){.au-tabrow .au-tabs{gap:6px}.au-tabrow .au-tabs .chip{padding:7px 11px}}
/* Ausbildung Planung: auf dem Handy ein Tag pro Bildschirm, wischen statt seitlich suchen */
@media (max-width:700px){
  .au-tlx{--nw:68px}
  .pl-stage:has(.au-tlx) .pl-scroll{container-type:inline-size;scroll-snap-type:x mandatory;scroll-padding-left:68px;overscroll-behavior-x:contain}
  .au-tlx{grid-template-columns:var(--nw) repeat(var(--n),calc(100cqw - var(--nw)));min-width:calc(var(--nw) + var(--n) * (100cqw - var(--nw)))}
  .au-tlx .pl-dh{scroll-snap-align:start;scroll-snap-stop:always}
  .au-tlx .pl-name,.au-tlx .pl-corner{padding:8px 6px}
  .au-tlx .pl-name .nm{font-size:.8rem;word-break:break-word}
  .au-tlx .au-cell{min-height:56px}
  .au-tlx .pl-cell{padding:4px 6px}
  .pl-bar [data-au="zoom"],.pl-bar [aria-label="Zeitraum"]{display:none}
}
/* Ausbildung Tf-Register: Personenkarten statt Tabelle */
.au-tfbar{display:grid;gap:10px;margin:0 0 12px}
.au-tfbar .au-search{position:relative}
.au-tfbar .au-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:1.9;stroke-linecap:round;pointer-events:none}
.au-tfbar .au-search input{width:100%;max-width:none;height:48px;padding:0 16px 0 44px;border:0;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line2),var(--shadow);font:inherit}
.au-tfacts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.au-chk{cursor:pointer;user-select:none}
.au-chk input{position:absolute;opacity:0;pointer-events:none}
.au-chk:has(input:checked){background:var(--nbtn);color:#fff;border-color:var(--navy)}
.au-chk:has(input:focus-visible){outline:2px solid var(--navy);outline-offset:2px}
.au-tfhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 4px 8px}
.tfp-list{display:grid;gap:10px}
.tfp{display:grid;grid-template-columns:44px 1fr;gap:6px 14px;align-items:center;background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:14px 16px}
.tfp.act{cursor:pointer;transition:background .15s,transform .15s}
.tfp.act:hover{background:var(--tint)}.tfp.act:active{transform:scale(.99)}
.tfp.act:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.tfp.off{opacity:.65}
.tfp-av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#8fd6dc,#d3eef0);color:var(--navy);font-weight:800;font-size:.95rem;grid-row:span 1}
.tfp-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.tfp-id b{color:var(--navy);font-size:1.02rem;overflow:hidden;text-overflow:ellipsis}
.tfp-id .pill{align-self:flex-start;margin-top:3px}
.tfp-st,.tfp-x{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 18px;padding-top:10px;border-top:1px solid var(--line)}
.tfp-g{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tfp-l{font:700 .68rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.tfp .au-q{padding:3px 8px;font-size:.78rem;border-radius:8px;margin-right:3px}
.au-kv{font-size:.85rem}.au-kv i{font-style:normal;color:var(--muted);margin-right:4px}
.au-empty{display:grid;gap:4px;text-align:center;padding:28px 16px}
@media (min-width:900px){
  .tfp{grid-template-columns:44px minmax(180px,1.1fr) minmax(280px,2fr);padding:12px 18px}
  .tfp-st,.tfp-x{grid-column:auto;border-top:0;padding-top:0}
  .tfp-x{grid-column:2/-1;padding-top:8px;border-top:1px solid var(--line)}
  .tfp-st{justify-content:flex-start;gap:6px 26px}
}

/* Konten: Anfragen, Anlegen, Import, Liste */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.forgot.reg{margin-top:-4px}
.rqhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.rqhead h2{margin:0}
.rq{display:grid;gap:10px;padding:14px 0;border-top:1.5px solid var(--line2)}
.rqwho{display:grid;gap:2px;min-width:0}
.rqwho .note{overflow-wrap:anywhere}
.rqact{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.rqact select{flex:1 1 100%;min-width:0}
.rqact .btn{flex:1 1 0}
.rqsw{margin-top:14px;border-radius:14px;align-items:flex-start;text-align:left}
.uadd{display:flex;flex-wrap:wrap;gap:10px}
.uadd .btn{flex:1 1 180px}
.uimp textarea{font-family:var(--mono);font-size:.85rem}
.uimpsum{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px}
.uimpt{max-height:340px;overflow:auto;border-radius:12px;box-shadow:inset 0 0 0 1.5px var(--line2)}
.uimpt table{min-width:560px}
.ulist{display:grid}
.ucard{display:grid;gap:10px;padding:14px 0;border-top:1.5px solid var(--line2)}
.ucard:first-child{border-top:0;padding-top:4px}
.uwho{display:grid;gap:2px;min-width:0}
.uwho .note{overflow-wrap:anywhere}
.uctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.uctl select{flex:1 1 170px;min-width:0;max-width:260px}
.uact{display:flex;flex-wrap:wrap;gap:8px}
/* Benutzerliste: je Person eine Zeile wie bei Themen, Bearbeiten klappt darunter auf */
.urow{border:1px solid var(--line2);border-radius:12px;background:#fff;margin-top:8px}
.urow:first-child{margin-top:0}
.urow.open{border-color:var(--nbtn,var(--line2))}
.uhead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:center;padding:10px 12px}
.uhead .uctl,.uhead .uact{grid-column:1 / -1}
.uav{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--tint);color:var(--navy,#253876);font:800 .8rem var(--f);letter-spacing:.02em}
.uedit{border-top:1px solid var(--line2);padding:14px 12px 14px;display:grid;gap:16px}
.uedit .grid2{display:grid;gap:12px}
.uedit .lbl{display:block;font-weight:700;font-size:.9rem}
.uemore h3{font-size:.92rem;margin:0 0 8px}
.uemore .row{display:flex;flex-wrap:wrap;gap:8px}
.uopt{margin-top:12px;padding:12px;border-radius:10px;background:var(--tint)}
.udanger{border:1px solid #e6b8b8;background:#fff5f5;border-radius:12px;padding:12px}
.udanger .note{margin:0 0 10px}
.btn.danger{color:var(--bad,#b3261e);border-color:currentColor}
.utools{display:grid;gap:10px;margin:0 0 14px;align-items:end}
.utools .f{margin:0}
.utools .btn{justify-self:start}
.uwl{display:flex;align-items:center;gap:10px}
.upick,.upick-sp{width:20px;height:20px;flex:0 0 20px}
.uall{margin:0 0 8px 12px}
.ubulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;margin:0 0 10px;border-radius:12px;background:var(--tint)}
.ubulk select{min-width:0;max-width:200px}
@media (min-width:720px){.utools{grid-template-columns:minmax(200px,1.4fr) minmax(190px,1fr) minmax(150px,.8fr) auto}}
html[data-mode=dark] .urow{background:#1d2430}
html[data-mode=dark] .udanger{background:#3a1a1d;border-color:#6b2a30}
@media (min-width:720px){
  .uedit .grid2{grid-template-columns:1fr 1fr}
}
@media (min-width:900px){
  .uhead{grid-template-columns:auto minmax(200px,1.2fr) minmax(240px,1fr) auto}
  .uhead .uctl,.uhead .uact{grid-column:auto}
  .uact{justify-content:flex-end}
}
@media (min-width:900px){
  .ucard{grid-template-columns:minmax(220px,1.3fr) minmax(250px,1fr) auto;align-items:center;gap:16px}
  .rq{grid-template-columns:minmax(220px,1fr) auto;align-items:center}
  .rqact select{flex:0 1 200px}
  .rqact .btn{flex:0 0 auto}
}
/* Freie Folien: Anzeige und Folieneditor */
.kp-cv{position:relative;width:100%;aspect-ratio:16/9;container-type:inline-size;overflow:hidden;background:#fff}
.kp-el{position:absolute;box-sizing:border-box}
.kp-t .kp-tx{width:100%;height:100%;padding:.6cqw .9cqw;box-sizing:border-box;white-space:pre-wrap;overflow:hidden;overflow-wrap:anywhere;line-height:1.25;outline:none;border-radius:inherit}
.kp-i img{width:100%;height:100%;display:block;border-radius:inherit}
.kp-mini{pointer-events:none}
.kd-slide.kd-free{display:grid;gap:12px}
.kd-free .kp-cv{border:1px solid var(--line);border-radius:10px}
.kb-deck:fullscreen .kd-free .kp-cv{width:min(100%,calc((100vh - 150px)*16/9));margin:0 auto}
.kds-pv{max-width:420px;border:1.5px solid var(--line2);border-radius:10px;overflow:hidden;pointer-events:none}
body.kp-open{overflow:hidden}
.kpres{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:var(--bg);font-family:var(--f);color:var(--ink)}
.kp-top{display:flex;gap:8px;align-items:center;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:var(--card);border-bottom:1px solid var(--line)}
.kp-name{flex:1;min-width:0;font:inherit;padding:8px 10px;border:1.5px solid var(--line2);border-radius:10px;box-sizing:border-box}
.kp-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:12px}
.kp-cvw{position:relative;touch-action:none;box-shadow:var(--shadow);user-select:none;-webkit-user-select:none}
.kp-cvh{position:absolute;inset:0}
.kp-cvh .kp-cv{height:100%;aspect-ratio:auto}
.kp-cvh .kp-el{cursor:move;touch-action:none}
.kp-el.editing{cursor:text}
.kp-el.editing .kp-tx{outline:2px solid var(--teal);user-select:text;-webkit-user-select:text}
.kp-sel{position:absolute;border:2px solid var(--blue);box-sizing:border-box;pointer-events:none}
.kp-hd{position:absolute;width:14px;height:14px;background:#fff;border:2px solid var(--navy);border-radius:50%;pointer-events:auto;touch-action:none;box-sizing:border-box}
.kp-hd::after{content:'';position:absolute;inset:-16px}
.kp-hd[data-h=nw]{left:-8px;top:-8px;cursor:nwse-resize}.kp-hd[data-h=ne]{right:-8px;top:-8px;cursor:nesw-resize}
.kp-hd[data-h=sw]{left:-8px;bottom:-8px;cursor:nesw-resize}.kp-hd[data-h=se]{right:-8px;bottom:-8px;cursor:nwse-resize}
.kp-gv,.kp-gh{position:absolute;background:var(--orange);pointer-events:none}
.kp-gv{top:0;bottom:0;width:1px}.kp-gh{left:0;right:0;height:1px}
.kp-tools{flex:none;background:var(--card);border-top:1px solid var(--line);padding:4px 10px;height:clamp(150px,27vh,240px);overflow-y:auto;overscroll-behavior:contain}
.kp-r{display:flex;gap:6px;align-items:center;overflow-x:auto;padding:3px 0;-webkit-overflow-scrolling:touch}
.kp-b{flex:none;min-height:38px;min-width:38px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1.5px solid var(--line2);border-radius:10px;background:#fff;color:var(--navy);font:inherit;font-weight:700;white-space:nowrap;cursor:pointer}
.kp-b.on{background:var(--nbtn);color:#fff;border-color:var(--navy)}
.kp-b[disabled]{opacity:.4;cursor:default}
.kp-v{flex:none;min-width:28px;text-align:center;font-weight:700;color:var(--navy)}
.kp-sw{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid #888;background-image:linear-gradient(45deg,#ddd 25%,transparent 25%,transparent 75%,#ddd 75%);background-size:6px 6px}
.kp-sw[style*="background:#"]{background-image:none}
.kp-c{flex:none;width:34px;height:34px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1.5px var(--grey-lt);cursor:pointer}
.kp-c.on{box-shadow:0 0 0 3px var(--navy)}
.kp-cc{width:28px;height:24px;padding:0;border:0;background:none}
.kp-form{flex-wrap:wrap;overflow:visible}
.kp-form textarea,.kp-form input{width:100%;box-sizing:border-box;font:inherit;padding:8px 10px;border:1.5px solid var(--line2);border-radius:10px}
.kp-strip{display:flex;gap:8px;overflow-x:auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line)}
.kp-th{position:relative;flex:none;width:104px;padding:0;border:2px solid var(--line2);border-radius:8px;background:#fff;overflow:hidden;cursor:pointer}
.kp-th.on{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy)}
.kp-th em{position:absolute;left:4px;bottom:3px;padding:0 5px;font-size:.7rem;font-style:normal;font-weight:700;background:rgba(255,255,255,.9);border-radius:4px;color:var(--navy)}
.kp-th.kp-new{width:56px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--navy);background:var(--tint)}
.kp-legacy{display:flex;align-items:center;justify-content:center;text-align:center;background:#fff}
.kp-mini.kp-legacy span{font-size:7cqw;padding:0 6cqw;font-weight:700;color:var(--navy)}
.kp-lg{max-width:80%;display:grid;gap:8px;justify-items:center}
.kp-lg b{font-size:max(15px,3cqw);color:var(--navy)}
.kp-lg p{margin:0;font-size:max(12px,1.9cqw);color:var(--muted)}
@media (max-width:600px){.kp-stage{padding:8px}.kp-th{width:88px}}
/* Folieneditor: Mehrfachauswahl, Drehen, Animation, Aufzählung, Notizen */
.kp-ln{position:relative;padding-left:1.1em}
.kp-ln::before{content:'•';position:absolute;left:.2em}
.kp-el::before{content:'';position:absolute;inset:-5px}
.kp-rb{position:absolute;border:1.5px dashed var(--blue);background:rgba(85,120,170,.12);pointer-events:none}
.kp-sel.multi{border-style:dashed}
.kp-rot{left:calc(50% - 8px);top:-34px;cursor:grab;background:var(--teal);border-color:#fff}
.kp-rot::before{content:'';position:absolute;left:50%;top:100%;width:2px;height:20px;margin-left:-1px;background:var(--blue)}
.kp-bdg{position:absolute;left:-8px;top:-8px;min-width:18px;height:18px;padding:0 4px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--orange);color:#fff;font:700 11px/1 var(--f);pointer-events:none;z-index:3}
.kp-note{flex:none;font-size:.82rem;color:var(--muted);padding:0 4px}
.kp-hid{visibility:hidden}
.kp-an-fade{animation:kpFade .6s both}
.kp-an-up{animation:kpUp .6s both}
.kp-an-left{animation:kpLeft .6s both}
.kp-an-zoom{animation:kpZoom .5s both}
@keyframes kpFade{from{opacity:0}}
@keyframes kpUp{from{opacity:0;translate:0 12%}}
@keyframes kpLeft{from{opacity:0;translate:-15% 0}}
@keyframes kpZoom{from{opacity:0;scale:.6}}
@media (prefers-reduced-motion:reduce){.kp-an-fade,.kp-an-up,.kp-an-left,.kp-an-zoom{animation:none}}
.kd-notes{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--tint)}
.kd-notes summary{cursor:pointer;font-weight:700;color:var(--navy)}

/* ---------- Verwaltung: gleiche Bausteine wie die anderen Module (Kacheln wie Start, Reiterkarte wie Ausbildung) ---------- */
.tile .admmeta{font-size:.8rem;font-weight:700;color:var(--navy)}
.tile .admmeta .pill{margin-left:6px}
.notice.admalert{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;font:inherit}
.admalert .admgo{margin-left:auto;font-weight:800;white-space:nowrap}
.admfold{border:1px solid var(--line2,#e3e8ef);border-radius:14px;background:var(--card)}
.admfold>summary b{font-size:.98rem}
.au-tabs .cnt{margin-left:2px;padding:1px 8px}
.admmeta.ok{color:#1d6b3a}
.admmeta.warn{color:#8a5a00}
.admfold>summary{padding:12px 16px}
.admfold>summary .note{margin:0}
/* Zeitplan: Wochenverlauf */
.zc-card{display:grid;gap:10px}
.zc-sel{gap:6px}
.zc-kpi{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.zc-k{background:var(--tint);border-radius:14px;padding:10px 8px;text-align:center;display:grid;gap:2px}
.zc-k b{font-size:1.4rem;color:var(--navy);line-height:1.1}.zc-k span{font-size:.72rem;color:var(--muted)}
.zc-k.ok b{color:var(--ok)}.zc-k.bad{background:#fdecec}.zc-k.bad b{color:var(--bad)}
.zc-leg{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.82rem;color:var(--ink)}
.zc-leg span{display:inline-flex;align-items:center;gap:6px}
.zc-l{display:inline-block;width:22px;height:0;border-top:3px solid var(--navy)}
.zc-l.ist{border-color:var(--green);border-top-width:4px}.zc-l.plan{border-top:3px dashed var(--teal)}.zc-l.all{border-top:2px dashed var(--muted)}
.zc{width:100%;height:auto;display:block}
.zc-grid{stroke:var(--line2);stroke-width:1}
.zc-t{font:600 11px var(--mono,monospace);fill:var(--muted)}
.zc-all{stroke:var(--muted);stroke-width:1.5;stroke-dasharray:5 4}
.zc-today{stroke:var(--navy);stroke-width:1;stroke-dasharray:2 3;opacity:.6}
.zc-soll{fill:none;stroke:var(--navy);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.zc-ist{fill:none;stroke:var(--green);stroke-width:4;stroke-linejoin:round;stroke-linecap:round}
.zc-plan{fill:none;stroke:var(--teal);stroke-width:3;stroke-dasharray:6 5;stroke-linecap:round}
.zc-dot{fill:var(--green);stroke:#fff;stroke-width:2}
.zc-tab summary{cursor:pointer;font-weight:700;color:var(--navy)}
.zc-tab td.neg{color:var(--bad);font-weight:700}
@media (max-width:560px){.zc-kpi{grid-template-columns:repeat(3,1fr)}.zc-k b{font-size:1.2rem}}
@media (max-width:560px){.zc-sel .chip{padding:6px 11px;font-size:.82rem;min-height:36px}.zc-leg{font-size:.78rem;gap:2px 12px}.zc-t{font-size:10px}}

.rw-ae{display:grid;gap:6px;margin-top:8px;padding:10px 12px;border:1px solid var(--line,#d0d5dd);border-radius:8px}
.rw-ao{margin:0;padding-left:0;list-style:none;display:grid;gap:2px}
.rw-ae .row{margin-top:4px}

/* ---------- SCORM ---------- */
body.ksc-open{overflow:hidden}
.ksc-ov{position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font-family:var(--f)}
.ksc-top{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;box-shadow:0 1px 0 var(--line2)}
.ksc-t{color:var(--navy);font-size:1.02rem;margin-right:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ksc-sub{max-width:40ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ksc-body{flex:1;overflow:auto;padding:16px;-webkit-overflow-scrolling:touch}
.ksc-body>.stack{max-width:1100px;margin:0 auto}
.ksc-banner{padding:8px 14px;background:var(--tint);color:var(--navy);font-weight:600;font-size:.9rem}
.ksc-banner.bad{background:var(--bad-bg);color:var(--bad)}
.ksc-main{flex:1;display:flex;min-height:0;position:relative}
.ksc-toc{width:290px;flex:none;overflow:auto;background:#fff;box-shadow:1px 0 0 var(--line2);padding:8px 0}
.ksc-h{font-weight:700;color:var(--navy);padding:8px 10px 4px;font-size:.85rem}
.ksc-i{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;border:0;background:none;padding:9px 10px;cursor:pointer;font:inherit;color:var(--ink);border-left:4px solid transparent}
.ksc-i small{display:block;color:var(--muted);font-size:.76rem}
.ksc-i:hover:not(:disabled){background:var(--tint)}
.ksc-i.cur{background:var(--tint);border-left-color:var(--navy);font-weight:700}
.ksc-i:disabled{opacity:.55;cursor:not-allowed}
.ksc-dot{flex:none;width:14px;height:14px;border-radius:50%;margin-top:3px;box-shadow:inset 0 0 0 2px var(--line2);background:#fff}
.ksc-dot.ok{background:var(--ok);box-shadow:none}.ksc-dot.bad{background:var(--bad);box-shadow:none}
.ksc-top .btn{flex:none}
.ksc-frame{flex:1;min-width:0;display:flex;background:#fff}
.ksc-fr{flex:1;width:100%;height:100%;border:0;background:#fff}
.ksc-empty{margin:auto;padding:20px;text-align:center}
.ksc-tocb{display:none}
@media (max-width:820px){
  .ksc-tocb{display:inline-flex}.ksc-tl{display:none}.ksc-top{padding:8px 10px}.ksc-body{padding:12px}
  .ksc-toc{position:absolute;z-index:2;top:0;bottom:0;left:0;width:min(86vw,320px);transform:translateX(-102%);transition:transform .18s;box-shadow:4px 0 18px rgba(0,0,0,.2)}
  .ksc-toc.open{transform:none}
  .ksc-sub{display:none}
}
.ksc-pk{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line)}
.ksc-code{font:.82rem/1.45 var(--mono);width:100%;tab-size:2;white-space:pre;overflow:auto}
.ksc-cell{display:grid;gap:2px;justify-items:start;border:0;background:none;padding:4px 6px;border-radius:8px;cursor:pointer;font:inherit;text-align:left}
.ksc-cell:hover{background:var(--tint)}.ksc-cell small{color:var(--muted);font-size:.74rem}
.ksc-st td,.ksc-st th{white-space:nowrap;vertical-align:top}
.ksc-lesson{display:grid;gap:12px;margin:12px 0}
.ksc-list{display:grid;gap:8px}
.ksc-row{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line)}
.ksc-lh{font-weight:700;color:var(--navy);margin-top:6px}
.ksc-ed{display:grid;gap:10px}

/* Anwesenheit in der Benutzerliste */
.pres{display:inline-flex;align-items:center;gap:6px;font-size:.85em;color:var(--muted,#5f6b6e)}
.pres i{width:9px;height:9px;border-radius:50%;background:#b9c3c5;flex:none}
.pres.on{color:#1f7a4a;font-weight:600}
.pres.on i{background:#2faa6a;box-shadow:0 0 0 3px rgba(47,170,106,.2)}

.rolepick{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px}
.rolechips{display:inline-flex;flex-wrap:wrap;gap:4px}
.rolebox2{display:flex;flex-direction:column;gap:8px;width:100%}
/* ---------- Kurseditor (Kursstruktur links, Formular rechts) ---------- */
.ked-wrap{display:grid;gap:16px;align-items:start}
@media (min-width:940px){.ked-wrap{grid-template-columns:270px minmax(0,1fr)}.ked-tree{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}}
.ked-tree summary{font-weight:700;color:var(--navy);cursor:pointer;padding:2px 0 8px}
.ked-tl{display:grid;gap:2px}
.ked-t{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:none;border-radius:8px;padding:8px 10px;font:inherit;color:var(--ink);cursor:pointer;line-height:1.25}
.ked-t svg{flex:none;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ked-t span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ked-t:hover{background:var(--tint)}
.ked-t.cur{background:var(--nbtn);color:#fff;font-weight:700}
.ked-t.crs{font-weight:700;color:var(--navy)}.ked-t.crs.cur{color:#fff}
.ked-t.mod{margin-top:8px;font-weight:700;color:var(--navy);box-shadow:inset 0 -1.5px 0 var(--line)}.ked-t.mod.cur{color:#fff}
.ked-t.les{padding-left:22px;font-size:.92rem}
.ked-t.add{padding-left:22px;font-size:.84rem;color:var(--blue)}
.ked-off{display:none!important}
.ked-main{display:grid;gap:14px}
.ked-h{font-size:1.25rem}
.ked-sec{font-weight:700;color:var(--navy);padding:4px 0;box-shadow:inset 0 -1.5px 0 var(--line);margin-top:4px}
.ked-pane{display:grid;gap:12px}
.ked-s{border-radius:12px}
.ked-lst{display:grid;gap:6px}
.ked-lr{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff;border-radius:10px;padding:6px 8px;box-shadow:inset 0 0 0 1.5px var(--line)}
.ked-ls{display:flex;gap:8px;align-items:center;border:0;background:none;font:inherit;font-weight:600;color:var(--navy);cursor:pointer;text-align:left;min-width:0;flex:1}
.ked-ls svg{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.ked-lb{display:flex;gap:4px}
.ked-fmt{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:4px 0}
.ked-bar{position:sticky;bottom:0;background:#fff;padding:10px 0 4px;box-shadow:0 -1px 0 var(--line);display:grid;gap:8px;z-index:3}
.kmodbox{background:none;padding:0}
.kact-ov{position:fixed;inset:0;z-index:950;background:rgba(20,30,60,.45);display:grid;place-items:center;padding:12px}
.kact-box{background:#fff;border-radius:14px;width:min(760px,100%);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.kact-h{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;box-shadow:0 1px 0 var(--line);color:var(--navy);font-size:1.1rem}
.kact-b{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;overflow:hidden;min-height:260px}
.kact-l{overflow:auto;padding:8px 8px 12px 18px;box-shadow:1px 0 0 var(--line)}
.kact-g{font:700 .72rem var(--mono);letter-spacing:.06em;color:var(--muted);padding:10px 4px 4px}
.kact-i{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--ink)}
.kact-i input{position:absolute;opacity:0;pointer-events:none}
.kact-i svg{flex:none;width:20px;height:20px;fill:none;stroke:var(--teal);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kact-i:hover{background:var(--tint)}.kact-i.on{background:var(--tint);box-shadow:inset 3px 0 0 var(--navy);font-weight:700;color:var(--navy)}
.kact-d{padding:16px 18px;overflow:auto}.kact-d h4{margin:0 0 8px;color:var(--navy)}
.kact-f{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;box-shadow:0 -1px 0 var(--line)}
@media (max-width:640px){.kact-b{grid-template-columns:1fr}.kact-l{box-shadow:0 1px 0 var(--line);max-height:46vh}}

/* Kurseditor: Innenabstände und Formularelemente wie im Rest der App */
.ked-main,.ked-pane,.kles,.kmodbox{grid-template-columns:minmax(0,1fr);min-width:0}
details.acc.ked-s>.stack,details.acc[data-k="kset"]>.stack{padding:16px;gap:14px}
details.acc.ked-s>summary,details.acc[data-k="kset"]>summary{font-weight:700}
.ked-main .grid2,.ked-main .grid3{gap:14px}
.ked-main .grid2>*,.ked-main .grid3>*{min-width:0}
.ked-main input[type=date],.ked-main input[type=color]{max-width:100%;min-width:0}
.ked-main input[type=color]{width:56px;height:42px;padding:3px;border:1.5px solid var(--line2);border-radius:10px;background:#fff}
.ked-main .chk.perm{width:100%}
.ked-main .chips{display:flex;flex-wrap:wrap;gap:8px}
.ked-s .f>span{font-weight:700;font-size:.88rem;color:var(--navy)}
.ked-main .kles{box-shadow:none;padding:0;border-radius:0;background:none}

/* ---------- Interaktives Projekt: Laufzeit ---------- */
.kb-studio{margin:6px 0}
.ks{position:relative;display:grid;gap:8px}
.ks-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ks-t{flex:1;min-width:0;font-weight:700;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ks-stage{position:relative;overflow:hidden;border-radius:12px;box-shadow:inset 0 0 0 1.5px var(--line);background:#fff}
.ks .kp-el{user-select:none;-webkit-user-select:none}
.ks-hid{opacity:0!important;pointer-events:none}
.ks-act{cursor:pointer}
.ks-act:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.ks-fx-fade{animation:ksFade .35s both}
.ks-fx-left{animation:ksLeft .4s both}
.ks-fx-up{animation:ksUp .4s both}
@keyframes ksFade{from{opacity:0}}
@keyframes ksLeft{from{opacity:0;transform:translateX(8%)}}
@keyframes ksUp{from{opacity:0;transform:translateY(8%)}}
.ks-toast{position:absolute;left:12px;right:12px;bottom:12px;z-index:5;background:var(--nbtn);color:#fff;padding:10px 14px;border-radius:10px;box-shadow:var(--shadow)}
.ks-toast[hidden]{display:none}
.ks:fullscreen{background:var(--bg);padding:12px;align-content:start}
.ks:fullscreen .ks-stage{width:min(100%,calc((100vh - 90px)*16/9));margin:0 auto}
@media (prefers-reduced-motion:reduce){.ks-fx-fade,.ks-fx-left,.ks-fx-up{animation:none}}
/* Lektionseditor: Kurzansicht des Projekts */
.kst-sum{display:grid;gap:6px}
.kst-th{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.kst-m{flex:none;width:132px;border:1.5px solid var(--line2);border-radius:8px;overflow:hidden}
/* ---------- Studio (Editor) ---------- */
.kpres [data-hid]{opacity:.4;outline:1px dashed var(--muted)}
.kp-bev{left:auto;right:-8px;background:var(--nbtn)}
.kp-sh{font:700 .72rem var(--mono);letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin:6px 2px 4px}
.kp-thl{display:flex;gap:8px}
.kp-thn{display:none}
.kp-ol{display:none}
.kp-pn{display:grid;gap:8px;width:100%}
.kp-pt{font-weight:700;color:var(--navy);margin-top:4px}
.kp-pt .kp-note{font-weight:400;display:block;padding:2px 0 0}
.kp-evc{border:1.5px solid var(--line2);border-radius:12px;padding:10px;display:grid;gap:8px;background:#fff}
.kp-arow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.kp-act{border-top:1px dashed var(--line2);padding-top:8px;display:grid;gap:6px}
select.kp-f,input.kp-f[type=text],input.kp-f[type=number],input.kp-f[type=url]{font:inherit;padding:7px 8px;border:1.5px solid var(--line2);border-radius:8px;min-width:0;max-width:100%;background:#fff;color:var(--ink);box-sizing:border-box}
input.kp-f[type=number]{width:84px}
.kp-l{display:grid;gap:2px;font-size:.76rem;color:var(--muted)}
.kp-grow{flex:1;min-width:0}.kp-grow input{width:100%}
.kp-g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.kp-g3 input{width:100%!important}
.kp-x{min-width:32px;min-height:32px}
.kp-pvw{position:absolute;inset:0;z-index:20;background:var(--bg);display:flex;flex-direction:column}
.kp-pvt{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;background:var(--card);border-bottom:1px solid var(--line)}
.kp-pvt .kp-note{flex:1;min-width:160px}
.kp-pvb{flex:1;overflow:auto;padding:14px;max-width:1100px;width:100%;margin:0 auto;box-sizing:border-box}
@media (min-width:900px){
  .kpres.kp-studio{display:grid;grid-template-columns:230px minmax(0,1fr) 340px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"top top top" "strip stage tools"}
  .kp-studio .kp-top{grid-area:top}.kp-studio .kp-stage{grid-area:stage}
  .kp-studio .kp-strip{grid-area:strip;flex-direction:column;overflow-y:auto;overflow-x:hidden;border-top:0;border-right:1px solid var(--line);padding:10px;gap:4px}
  .kp-studio .kp-tools{grid-area:tools;height:auto;border-top:0;border-left:1px solid var(--line);padding:10px;overflow-y:auto}
  .kp-studio .kp-r{flex-wrap:wrap;overflow:visible}
  .kp-studio .kp-thl{display:grid;gap:8px}
  .kp-studio .kp-th{width:100%}
  .kp-studio .kp-th.kp-new{width:100%;height:40px}
  .kp-studio .kp-thn{display:block;padding:4px 8px 6px;font-size:.8rem;color:var(--navy);text-align:left;background:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .kp-studio .kp-th em{bottom:auto;top:4px}
  .kp-studio .kp-ol{display:grid;gap:2px}
  .kp-o{display:flex;align-items:center;gap:8px;border:0;background:none;padding:6px 8px;border-radius:8px;font:inherit;text-align:left;cursor:pointer;color:var(--ink)}
  .kp-o.on{background:var(--nbtn);color:#fff}
  .kp-o:hover:not(.on){background:var(--tint)}
  .kp-o b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
  .kp-o span{width:18px;text-align:center;opacity:.7}.kp-o i{font-style:normal}
}
@media (max-width:899px){.kp-studio .kp-sh{display:none}.kp-studio .kp-strip{display:flex}.kp-studio .kp-pv{margin-left:auto}}

/* ---------- Studio-Komponenten ---------- */
.kc{position:relative;width:100%;height:100%;box-sizing:border-box;container-type:inline-size;font-family:var(--f);color:var(--ink);border-radius:inherit;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line2)}
.kc img{display:block;max-width:100%;user-select:none;-webkit-user-select:none}
.kc-tag{position:absolute;left:6px;top:6px;z-index:3;font:700 .62rem var(--mono);letter-spacing:.04em;background:var(--nbtn);color:#fff;padding:2px 6px;border-radius:5px;pointer-events:none}
.kc-pv .kc-tag{display:block}.kc:not(.kc-pv) .kc-tag{display:none}
.kc-ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:.9rem}
.kc-ico{position:absolute;right:8px;bottom:8px;background:rgba(255,255,255,.9);border-radius:50%;width:2em;height:2em;display:grid;place-items:center}
.kc-t{font-weight:700;color:var(--navy);padding:2.2cqw 3cqw 0;font-size:3.4cqw}
.kc-drag{display:flex;flex-direction:column}
.kc-dg{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:3cqw;padding:3cqw;align-content:start}
.kc-pv .kc-dg{padding-top:7cqw}
.kc-pool,.kc-zones{display:grid;gap:2cqw;align-content:start}
.kc-it{font:inherit;font-size:2.8cqw;font-weight:700;color:var(--navy);background:#e6f4f5;border:1.5px solid var(--teal);border-radius:2cqw;padding:1.6cqw 2.2cqw;text-align:left;cursor:grab;touch-action:none;transition:transform .25s,box-shadow .2s}
.kc-it.drag{transition:none;z-index:10;position:relative;cursor:grabbing;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.kc-it.sel{background:var(--nbtn);color:#fff;border-color:var(--navy)}
.kc-it.ok{background:#e3f5e8;border-color:#2e9b57;color:#1f7a4a;cursor:default}
.kc-it.bad{animation:kcShake .4s}
@keyframes kcShake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.kc-z{border:2px dashed var(--line2);border-radius:2cqw;padding:1.6cqw 2.2cqw;min-height:7cqw;display:grid;gap:1.2cqw;align-content:start;background:#fafcfc}
.kc-z>b{font-size:2.6cqw;color:var(--muted)}
.kc-zi{display:grid;gap:1.2cqw}
.kc-fb{padding:0 3cqw 2.4cqw;font-size:2.6cqw;font-weight:700;min-height:1.2em}
.kc-fb.ok{color:#1f7a4a}.kc-fb.bad{color:#b3261e}
.kc-gallery{display:grid;grid-template-rows:minmax(0,1fr) auto auto;background:#111}
.kc-gv{min-height:0;display:grid;place-items:center}.kc-gv img{max-height:100%;object-fit:contain;width:100%;height:100%}
.kc-ar{position:absolute;top:50%;transform:translateY(-50%);border:0;background:rgba(255,255,255,.85);color:var(--navy);width:2.4em;height:2.4em;border-radius:50%;font-size:1.3rem;cursor:pointer}
.kc-pl{left:8px}.kc-nx{right:8px}
.kc-cap{color:#fff;font-size:2.6cqw;text-align:center;padding:1.2cqw 3cqw;background:rgba(0,0,0,.55)}
.kc-dots{display:flex;gap:6px;justify-content:center;padding:6px;background:rgba(0,0,0,.55)}
.kc-dots i{width:8px;height:8px;border-radius:50%;background:#ffffff66}.kc-dots i.on{background:#fff}
.kc-zv,.kc-sv{position:absolute;inset:0;overflow:hidden;touch-action:none;background:#f3f6f7;display:grid;place-items:center;cursor:grab}
.kc-zv img,.kc-sv img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;will-change:transform}
.kc-zb{position:absolute;right:8px;bottom:8px;display:flex;gap:6px;z-index:2}
.kc-zb button{width:2.4em;height:2.4em;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--navy);font-weight:700;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.kc-sc{position:absolute;inset:0;overflow-y:auto;padding:3cqw;font-size:3cqw;line-height:1.45;overscroll-behavior:contain}
.kc-sc img{width:100%;border-radius:1.5cqw;margin-bottom:2cqw}
.kc-sc p{margin:0 0 2cqw}
.kc-scroll:focus-within{box-shadow:inset 0 0 0 2px var(--teal)}
.kp-cpb{display:grid;gap:2px;text-align:left;padding:10px 12px;border:1.5px solid var(--line2);border-radius:10px;background:#fff;cursor:pointer;font:inherit;color:var(--ink)}
.kp-cpb:hover{background:var(--tint)}.kp-cpb b{color:var(--navy)}
.kp-c .kc-pv{pointer-events:none}
.kp-studio:not(.kp-deck) .kp-r{flex-wrap:wrap;overflow:visible}
.kc-video iframe,.kc-video video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.kc-audio{display:grid;place-items:center;padding:0 2cqw}
.kc-au{display:flex;align-items:center;gap:12px;width:100%}.kc-au audio{flex:1;min-width:0}
.kc-aui{font-size:1.6rem}
.kc-parallax{background:#111}
.kc-pxv{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain}
.kc-pxi{position:relative}
.kc-pxs{position:sticky;top:0;overflow:hidden}
.kc-pxl{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform}
.kc-pxt{position:absolute;left:4cqw;right:4cqw;top:0;color:#fff;font-size:3.2cqw;line-height:1.4;text-shadow:0 1px 4px #000a;will-change:transform}

.kb-hse{position:relative;display:inline-block;max-width:100%;line-height:0;border-radius:10px;overflow:hidden;border:1px solid var(--line,#d8dee9);cursor:crosshair;touch-action:none}
.kb-hse img{max-width:100%;max-height:60vh;display:block;user-select:none;-webkit-user-drag:none}
.kb-hsep{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;border:3px solid #fff;background:#253876;color:#fff;font:700 .8rem/22px system-ui,sans-serif;text-align:center;box-shadow:0 1px 5px rgba(0,0,0,.4);cursor:grab;touch-action:none}
.kb-hsep:active{cursor:grabbing}

.krow-w{position:relative}.krow-w>.krow{width:100%}
.kedit-pen{position:absolute;top:8px;right:8px;z-index:2;border:1px solid var(--line,#d8dee9);background:#fff;color:var(--navy);border-radius:999px;font:600 .78rem system-ui,sans-serif;padding:4px 10px;cursor:pointer;opacity:.85}.kedit-pen:hover{opacity:1;background:#eef7f8}
.khbtns{display:flex;gap:8px;flex-wrap:wrap}.khead .kpen{background:rgba(255,255,255,.92);color:var(--navy)}

/* Baustein-Menü: kompakt und ruhig */
.kbp{border:1px solid var(--line2);border-radius:18px;padding:12px;box-shadow:0 10px 30px rgba(20,40,80,.14);gap:10px}
.kbp-q{border-radius:999px!important;padding-left:14px}
.kbp-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}.kbp-t{min-width:0}.kbp-t b{overflow-wrap:anywhere;min-width:0}
.kbp-t{grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:8px 10px;border:1px solid transparent;background:#f3f7f9;border-radius:12px}
.kbp-t:hover,.kbp-t:focus-visible{border-color:var(--navy);background:#fff}
.kbp-t .kbp-i{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#fff;font-size:1rem}
.kbp-t b{font-size:.84rem;line-height:1.15;font-weight:600}
.kbp-gh{font:700 .7rem var(--mono);margin-bottom:4px}
.admnav{margin-bottom:16px}
.notice.admalert{border:0}
.notice.admalert:focus:not(:focus-visible){outline:none}

/* Startseite je Rolle: eine Karte je Rolle */
.srgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.srcard{display:flex;flex-direction:column;gap:12px;background:var(--tint);border-radius:16px;padding:16px}
.srhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.srhead b{font-size:1.05rem;color:var(--navy)}
.srhead .note{margin:0;font-size:.82rem}
.srcard .f select{width:100%}
.srlab{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#6b7893}
.srblocks{display:flex;flex-direction:column;gap:8px}
.srblk{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1.5px solid var(--line2);border-radius:12px;padding:10px 12px;cursor:pointer}
.srblk:has(input:checked){border-color:var(--navy)}
.srblk span{display:flex;flex-direction:column;gap:2px;min-width:0}
.srblk b{font-size:.92rem;color:var(--navy)}
.srblk small{font-size:.8rem;color:var(--muted);line-height:1.3}

/* Jetzt dran, Befehlszeile, Warum-gesperrt */
.hero .cmd-open{position:absolute;right:20px;top:20px;z-index:2;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border-radius:22px;border:2px solid var(--navy);background:var(--card);color:var(--navy);font:700 .92rem var(--f);cursor:pointer}
.hero .cmd-open svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.hero .cmd-open:hover{background:var(--tint)}
.hero.compact .cmd-open{display:none}
@media (max-width:700px){.hero .cmd-open{position:static;margin-top:12px;width:100%;justify-content:center}}
.cmd-start{display:flex;gap:10px;align-items:flex-end;margin:6px 0 4px}
.cmd-start .f{flex:1;min-width:0;margin:0}
.todo-list{display:grid;gap:12px;margin-top:14px}
.todo{border:1px solid var(--line2);border-radius:14px;padding:14px 16px;display:grid;gap:10px;background:var(--card)}
.todo-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.todo p{margin:0}
.todo-r{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding-block:4px;border-top:1px solid var(--line)}
.todo-r:first-of-type{border-top:0}
.why{background:var(--tint);border-left:5px solid var(--orange);border-radius:0 12px 12px 0;padding:12px 16px;display:grid;gap:8px;margin-bottom:14px}
.why p{margin:0}
.toastundo{flex:none;border:2px solid currentColor;background:transparent;color:inherit;font:700 .85rem var(--f);padding:4px 12px;border-radius:8px;cursor:pointer;min-height:32px}
#cmd{position:fixed;inset:0;z-index:60}
#cmd[hidden]{display:none}
.cmd-back{position:absolute;inset:0;background:rgba(20,30,70,.45)}
.cmd-panel{position:absolute;left:50%;top:max(16px,env(safe-area-inset-top));transform:translateX(-50%);width:min(calc(100% - 24px),600px);max-height:calc(100dvh - 32px);overflow:auto;background:var(--card);border-radius:18px;padding:18px;box-shadow:0 20px 60px rgba(20,30,70,.35);display:grid;gap:14px}
#cmd-form{display:flex;gap:10px;align-items:flex-end}
#cmd-form .f{flex:1;min-width:0}
.cmd-res{border:2px solid var(--navy);border-radius:14px;padding:14px 16px;display:grid;gap:10px}
.cmd-res ul{margin:0;padding-left:18px;display:grid;gap:4px}
.cmd-res pre{max-height:40vh;overflow:auto;margin:0}
.cmd-lbl{font:700 .72rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.cmd-next{display:grid;gap:6px}
.cmd-next .row,.cmd-res .row{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- Netzplan: Linien, Bahnhöfe, Signale ---------- */
.l-green{--lc:var(--green)}.l-navy{--lc:var(--nbtn)}.l-orange{--lc:var(--orange)}.l-violet{--lc:var(--violet)}.l-teal{--lc:var(--teal)}.l-grey{--lc:#5f5f5f}
.netz h2{margin-bottom:14px}
.net-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:22px 20px}
.net-lh{display:inline-block;margin:0 0 10px;background:var(--lc);color:#fff;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;padding:3px 12px;border-radius:6px}
.net-stops{list-style:none;margin:0;padding:0 0 0 30px;position:relative;display:flex;flex-direction:column;gap:2px}
.net-stop:not(:last-child)::after{content:"";position:absolute;left:-23px;top:30px;bottom:-14px;width:6px;background:var(--lc)}
.net-stop{position:relative;transition:opacity .15s}
.net-stop button{width:100%;text-align:left;background:none;border:0;border-radius:10px;padding:9px 10px 9px 6px;display:flex;flex-direction:column;gap:1px;min-width:0;cursor:pointer;color:var(--ink)}
.net-stop button:hover{background:color-mix(in srgb,var(--lc) 12%,transparent)}
.net-stop b{color:var(--navy);font-size:1.02rem;display:flex;align-items:center;gap:8px}
.net-d{font-size:.86rem;color:var(--muted)}
.net-node{z-index:1;position:absolute;left:-30px;top:12px;width:20px;height:20px;border-radius:50%;background:var(--card);border:4px solid var(--lc)}
.net-stop.sig .net-node{background:var(--red);border-color:var(--red);animation:net-pulse 2s infinite}
.net-cnt{font:700 .75rem var(--mono);background:var(--red);color:#fff;border-radius:10px;padding:0 7px;line-height:19px}
.net-stop.dim{opacity:.25}
.net-stop.hit button{background:color-mix(in srgb,var(--lc) 18%,transparent);outline:2px solid var(--lc)}
@keyframes net-pulse{0%{box-shadow:0 0 0 0 rgba(240,0,20,.3)}70%{box-shadow:0 0 0 9px rgba(240,0,20,0)}100%{box-shadow:0 0 0 0 rgba(240,0,20,0)}}
@media (prefers-reduced-motion:reduce){.net-stop.sig .net-node{animation:none}}
/* Reiter einer Linie */
.net-strip{display:flex;flex-direction:column;gap:8px;background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:12px 16px 10px;margin-bottom:14px}
.net-sname{align-self:flex-start;background:var(--lc);color:#fff;font-weight:700;font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;padding:2px 10px;border-radius:5px}
.net-sts{display:flex;position:relative;overflow-x:auto;padding-bottom:2px}
.net-sts::before{content:"";position:absolute;left:0;right:0;top:9px;height:5px;background:var(--lc);border-radius:3px}
.net-sts button{position:relative;width:auto;flex:1 1 auto;min-width:84px;background:none;border:0;padding:0 4px 0 0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;cursor:pointer;color:var(--muted)}
.net-n{width:19px;height:19px;border-radius:50%;background:var(--card);border:4px solid var(--lc);margin-left:2px;position:relative}
.net-n.sig{border-color:var(--red)}
.net-sts button[aria-selected=true] .net-n{background:var(--lc)}
.net-l{font-weight:700;font-size:.9rem}
.net-sts button[aria-selected=true] .net-l{color:var(--navy)}
.tabbar:empty{display:none}
@media (max-width:900px){
  .tabbar{width:auto;min-width:150px}
  body.on-start .tabbar{display:none}
}
@media (min-width:901px){.side{min-height:0}}

/* ---------- Dunkelmodus: Flächen und Texte mit festen Farben (erzeugt aus den Regeln oben) ---------- */
html[data-mode=dark] .hero{background:linear-gradient(110deg,var(--teal-lt),var(--hero2,#213c3e))}
html[data-mode=dark] .btn.end{background:#1d2430}
html[data-mode=dark] .chip{background:#1d2430}
html[data-mode=dark] input[type=text],html[data-mode=dark] input[type=password],html[data-mode=dark] input[type=number],html[data-mode=dark] input[type=date],html[data-mode=dark] select,html[data-mode=dark] textarea{background:#1d2430}
html[data-mode=dark] .prog i{background:#2c3c3e}
html[data-mode=dark] .task .n{background:#1d2430}
html[data-mode=dark] .opt{background:#1d2430}
html[data-mode=dark] input.cb{background-color:#1d2430}
html[data-mode=dark] input.cb:checked:not([type=radio]){background-color:var(--nbtn)}
html[data-mode=dark] .opt.miss{background:#1d2430}
html[data-mode=dark] tbody tr:hover{background:#1d2430}
html[data-mode=dark] .login .top{background:linear-gradient(110deg,var(--teal-lt),var(--hero2,#213c3e))}
html[data-mode=dark] .colorin{background:#1d2430}
html[data-mode=dark] .chk{background:#1d2430}
html[data-mode=dark] .notice{background:var(--yellow-lt,#4d4516)}
html[data-mode=dark] .logoprev{background:repeating-conic-gradient(#282828 0 25%,#1d2430 0 50%) 0 0/16px 16px}
html[data-mode=dark] .pg-box.warn{background:#4d4516}
html[data-mode=dark] .bk{background:#1d2430}
html[data-mode=dark] .chk.perm small{color:#a6adaf}
html[data-mode=dark] .st-bar{background:rgba(20,27,38,.94)}
html[data-mode=dark] .modal-panel{background:#1d2430}
html[data-mode=dark] .skel i{background:linear-gradient(90deg,var(--tint) 25%,#1d2430 50%,var(--tint) 75%)}
html[data-mode=dark] .notice.running{background:#4d4516}
html[data-mode=dark] .q-img{background:#1d2430}
html[data-mode=dark] .qimg-ed img{background:#1d2430}
html[data-mode=dark] input.cb[type=radio]:checked{background:radial-gradient(circle,#1d2430 0 28%,var(--navy) 32%)}
html[data-mode=dark] .pl-corner,html[data-mode=dark] .pl-dh,html[data-mode=dark] .pl-name{background:#1d2430}
html[data-mode=dark] .we{background:#202b2d}
html[data-mode=dark] .pl-cell.today,html[data-mode=dark] .pl-col.today,html[data-mode=dark] .pl-ad.today{background:#1e2b2d}
html[data-mode=dark] .pl-cell.over{background:#1d2a39}
html[data-mode=dark] .pl-chip.allday{background:repeating-linear-gradient(135deg,var(--c) 0 7px,color-mix(in srgb,var(--c) 80%,#1d2430) 7px 14px)}
html[data-mode=dark] .pl-form input[type=date],html[data-mode=dark] .pl-form input[type=time]{background:#1d2430}
html[data-mode=dark] .pl-trow input[type=color]{background:#1d2430}
html[data-mode=dark] .pl-warn{background:#423513;color:#f5dfa5}
html[data-mode=dark] .pill.warn{background:#423513;color:#f5dfa5}
html[data-mode=dark] .preset{background:#1d2430}
html[data-mode=dark] .pvmock{color:#cdd3df}
html[data-mode=dark] .pvside{background:#1d2430}
html[data-mode=dark] .pvtile small{color:#a0a7b2}
html[data-mode=dark] .imp .impwrap thead th{background:#1d2430}
html[data-mode=dark] .msg.ok{color:#a7e0bd}
html[data-mode=dark] .card.danger h2{color:var(--red,#da7d78)}
html[data-mode=dark] .kcount{background:rgba(20,27,38,.2)}
html[data-mode=dark] .kmod{background:#1d2430}
html[data-mode=dark] .kdot{background:#1d2430}
html[data-mode=dark] .kles{background:#1d2430}
html[data-mode=dark] .au-kpi{background:#1d2430}
html[data-mode=dark] .au-kpi em{color:var(--mute,#b0b0b0)}
html[data-mode=dark] .au-kpi.warn{background:#1d2430}
html[data-mode=dark] .au-bar i{background:#242833}
html[data-mode=dark] .au-h.today b{color:var(--brand,#a0add8)}
html[data-mode=dark] .au-t small{color:#b0b0b0}
html[data-mode=dark] .au-cell{background:#1d2430}
html[data-mode=dark] .au-cell small{color:#b0b0b0}
html[data-mode=dark] .au-cell.st-frei{background:#1d2430;color:#999ea7}
html[data-mode=dark] .au-cell.st-leer{background:#1d2430}
html[data-mode=dark] .au-cell.st-geplant{background:#172139}
html[data-mode=dark] .au-cell.st-eingeladen{background:#213839}
html[data-mode=dark] .au-cell.st-durchgefuehrt{background:#213625}
html[data-mode=dark] .au-cell.st-krank{background:#3c1616}
html[data-mode=dark] .au-cell.st-abgesagt{background:#422e13}
html[data-mode=dark] .au-cell.st-ausfall{background:repeating-linear-gradient(45deg,#2a2a2a,#2a2a2a 6px,#262626 6px,#262626 12px);color:#9f9f9f}
html[data-mode=dark] .au-dot{border:1px solid #5a5a5a}
html[data-mode=dark] .au-dot.st-geplant{background:#172139}
html[data-mode=dark] .au-dot.st-eingeladen{background:#213839}
html[data-mode=dark] .au-dot.st-durchgefuehrt{background:#213625}
html[data-mode=dark] .au-dot.st-krank{background:#3c1616}
html[data-mode=dark] .au-dot.st-abgesagt{background:#422e13}
html[data-mode=dark] .au-dot.st-ausfall{background:#343434}
html[data-mode=dark] .au-q{background:#2a2a2a}
html[data-mode=dark] .au-q.on{background:#223926;color:#a7dfb4}
html[data-mode=dark] .au-cell.st-none{border:1px dashed #464646}
html[data-mode=dark] .au-ti{color:#b0b0b0}
html[data-mode=dark] .au-col{background:#1d2430}
html[data-mode=dark] details.acc{background:#1d2430}
html[data-mode=dark] .throw{background:#1d2430}
html[data-mode=dark] .thdel{background:#3e2f12}
html[data-mode=dark] .kb-call{background:#212f2f}
html[data-mode=dark] .kb-call.c-warnung{background:#361b19}
html[data-mode=dark] .kb-call.c-vorschrift{background:#1b2035}
html[data-mode=dark] .kb-call.c-hinweis{background:#3d3316}
html[data-mode=dark] .kb-call.c-beispiel{background:#24282b}
html[data-mode=dark] .kb-quote cite{color:var(--muted,#ababab)}
html[data-mode=dark] .kb-fig figcaption{color:var(--muted,#ababab)}
html[data-mode=dark] .kb-acc{background:#1d2430}
html[data-mode=dark] .kb-tab{color:var(--muted,#ababab)}
html[data-mode=dark] .kb-tl li::before{border:3px solid #383838}
html[data-mode=dark] .kb-card{background:#1d2430}
html[data-mode=dark] .kb-card.back{background:#212f2f}
html[data-mode=dark] .kb-fb.ok{color:#a3e5c0}
html[data-mode=dark] .kb-fb.bad{color:#d2847f}
html[data-mode=dark] .kb-gap.good,html[data-mode=dark] .kb-mrow select.good{background:#203326}
html[data-mode=dark] .kb-gap.wrong,html[data-mode=dark] .kb-mrow select.wrong{background:#361b19}
html[data-mode=dark] .kb-ord li.good{background:#203326}
html[data-mode=dark] .kb-ord li.wrong{background:#361b19}
html[data-mode=dark] .kb-sit{background:#21262b}
html[data-mode=dark] .kb-pin{border:3px solid #383838}
html[data-mode=dark] .kb-hsb{background:#1d2430;color:#dadada}
html[data-mode=dark] .kb-hsx{background:#21282f}
html[data-mode=dark] .kb-solved>h3.kb-h::after{color:#a3e5c0}
html[data-mode=dark] .kbe{background:#1d2430}
html[data-mode=dark] .au-x:hover{background:#361b19;color:#d2847f}
html[data-mode=dark] .pl-chip{background:color-mix(in srgb,var(--c) 15%,#1d2430);color:#bbc3de}
html[data-mode=dark] .pl-chip .tm{color:color-mix(in srgb,var(--c) 70%,#bbc3de)}
html[data-mode=dark] .pl-chip .sb{color:#a1a7b2}
html[data-mode=dark] .pl-chip .fl.warn{color:#f0ca79}
html[data-mode=dark] .pl-chip .fl.src{color:#a1a7b2}
html[data-mode=dark] .pl-chip.allday{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--c) 22%,#1d2430) 0 7px,color-mix(in srgb,var(--c) 12%,#1d2430) 7px 14px)}
html[data-mode=dark] .pl-chip:hover{background:color-mix(in srgb,var(--c) 26%,#1d2430)}
html[data-mode=dark] .pl-chip.ev b{color:#bbc3de}
html[data-mode=dark] .pl-cell:hover{background:#1d2430}
html[data-mode=dark] .pl-cell.over{background:#1d2a39}
html[data-mode=dark] .pl-cell.copyover{background:#203326}
html[data-mode=dark] .yw{background:#23282e}
html[data-mode=dark] .yw.l1{background:#253533}
html[data-mode=dark] .yw.l2{background:#314a47}
html[data-mode=dark] .yw em{color:var(--muted,#9f9faa)}
html[data-mode=dark] .pl-cell.nodrop{background:repeating-linear-gradient(45deg,#361b19,#361b19 8px,#1d2430 8px,#1d2430 16px)}
html[data-mode=dark] .au-sugs{background:#1d2430}
html[data-mode=dark] .au-sg:hover,html[data-mode=dark] .au-sg.on{background:#172139}
html[data-mode=dark] .pl-chip .fl.ok{color:#9ddcb0}
html[data-mode=dark] .pl-gl .tm{color:#a1a7b2}
html[data-mode=dark] .pl-gl .gb .ok{color:#9ddcb0}
html[data-mode=dark] .ub-av{background:rgba(20,27,38,.18)}
html[data-mode=dark] .ub-menu{background:#1d2430}
html[data-mode=dark] .ub-item.out{color:var(--bad,#d2847f)}
html[data-mode=dark] .ub-item.out:hover{background:var(--bad-bg,#361b19)}
html[data-mode=dark] .ub-zoom button:hover{background:#1d2430}
html[data-mode=dark] .msg.ok{color:#9ddcb0;background:#223627}
html[data-mode=dark] .pl-pubs .tg{background:#1d2430}
html[data-mode=dark] .pl-pubs .tg.n{background:#223627;color:#9ddcb0}
html[data-mode=dark] .pl-pubs .tg.d{background:#361b19;color:#d2847f}
html[data-mode=dark] .pl-pubs .tg.c{background:#483b15;color:#f3d691}
html[data-mode=dark] .au-leg2>div>b{color:#b0b0b0}
html[data-mode=dark] .au-sw.st-frei{background:#1d2430}
html[data-mode=dark] .au-sw.st-geplant{background:#172139}
html[data-mode=dark] .au-sw.st-eingeladen{background:#213839}
html[data-mode=dark] .au-sw.st-durchgefuehrt{background:#213625}
html[data-mode=dark] .au-sw.st-krank{background:#3c1616}
html[data-mode=dark] .au-sw.st-abgesagt{background:#422e13}
html[data-mode=dark] .au-sw.st-ausfall{background:repeating-linear-gradient(45deg,#2a2a2a,#2a2a2a 4px,#262626 4px,#262626 8px)}
html[data-mode=dark] .au-sw.mk{background:#1d2430}
html[data-mode=dark] .kt-msg.you{background:#1d2430}
html[data-mode=dark] .kt-msg.bot{background:#1d2430}
html[data-mode=dark] .ktpl{background:#1d2430}
html[data-mode=dark] .wz-s{background:#1d2430}
html[data-mode=dark] .kb-deck{background:#1d2430}
html[data-mode=dark] .kd-q{background:#1d2430}
html[data-mode=dark] .kd-info{background:#213435}
html[data-mode=dark] .kd-t{color:var(--teal-d,#8fcfd3)}
html[data-mode=dark] .kd-nav{background:#1d2430}
html[data-mode=dark] .admsearch input{background:#1d2430}
html[data-mode=dark] .qrow{background:#1d2430}
html[data-mode=dark] .qthumb{background:#1d2430}
html[data-mode=dark] .qpanel{background:#1d2430}
html[data-mode=dark] .qbig img{background:#1d2430}
html[data-mode=dark] .qopts li{background:#1d2430}
html[data-mode=dark] .qopts .mk{background:#1d2430}
html[data-mode=dark] .qans p{background:#1d2430}
html[data-mode=dark] .rw-card{background:#1d2430}
html[data-mode=dark] .rw-item{background:#1d2430}
html[data-mode=dark] .rw-item.rw-bad{border-color:#69343a}
html[data-mode=dark] .srcbox.editing{background:#1d2430}
html[data-mode=dark] .poolsrc{background:#1d2430}
html[data-mode=dark] .khead .kback{background:rgba(20,27,38,.92)}
html[data-mode=dark] .pf-ready{background:#453d14;border:1px solid #827638}
html[data-mode=dark] .pill.warn{background:#554c19;color:#f5e5a5}
html[data-mode=dark] .pill.info{background:#152842;color:#7b91da}
html[data-mode=dark] .pf-card{background:#1d2430}
html[data-mode=dark] .kask{background:rgba(20,27,38,.94)}
html[data-mode=dark] input[type=search]{background:#1d2430}
html[data-mode=dark] .rwc-score{background:#1d2430}
html[data-mode=dark] .rwc-tile{background:#1d2430}
html[data-mode=dark] .rwc-tile.bad:not(:disabled){border-color:#69343a}
html[data-mode=dark] .rwc-tile.warn:not(:disabled){background:#3e3212}
html[data-mode=dark] .rwc-tile.warn b{color:#f2d087}
html[data-mode=dark] .rwr{background:#1d2430}
html[data-mode=dark] .rw-pop{background:#1d2430}
html[data-mode=dark] .rwseg .ct{background:rgba(20,27,38,.28)}
html[data-mode=dark] .rw-bulk .btn.sec{background:#1d2430}
html[data-mode=dark] .kbes .kbe{background:#1d2430}
html[data-mode=dark] .kbe-pv{background:#1d2430}
html[data-mode=dark] .kbe-pv::after{background:linear-gradient(rgba(20,27,38,0),#1d2430)}
html[data-mode=dark] .kbe-plus{background:#1d2430}
html[data-mode=dark] .kbp{background:#1d2430}
html[data-mode=dark] .kbp-t{background:#1d2430}
html[data-mode=dark] .kat-r{background:#1d2430}
html[data-mode=dark] .kat-ck{background:#1d2430}
html[data-mode=dark] .kat-bar{background:#1d2430}
html[data-mode=dark] .kat-dr-panel{background:#1d2430}
html[data-mode=dark] .kbr-no{background:#1d2430}
html[data-mode=dark] .kds{background:#1d2430}
html[data-mode=dark] .kbe-gr{color:var(--muted,#9f9faa)}
html[data-mode=dark] .pf-kscroll{border:1px solid var(--line,#404e51)}
html[data-mode=dark] .pf-kname{border-bottom:1px solid var(--line,#3b494c);background:#1d2430}
html[data-mode=dark] .pf-kdays{border-bottom:1px solid var(--line,#404e51)}
html[data-mode=dark] .pf-km{border-left:1px solid var(--line,#404e51)}
html[data-mode=dark] .pf-kd{color:#a6adaf}
html[data-mode=dark] .pf-klane{border-bottom:1px solid var(--line,#3b494c)}
html[data-mode=dark] .pf-kb{background:#263032;color:#bac3ca}
html[data-mode=dark] .pf-kb.freigegeben{background:#132142}
html[data-mode=dark] .pf-kb.bereit{background:#544818;color:#f5dca5}
html[data-mode=dark] .pf-klegend{color:#a6adaf}
html[data-mode=dark] .kmy-steps li.erledigt .kmy-n{color:#a6adaf}
html[data-mode=dark] .kmy-cal{border-top:1px solid var(--line,#3b494c)}
html[data-mode=dark] .kc-h{color:#a6adaf}
html[data-mode=dark] .kc-ev{background:#263032;color:#bac3ca}
html[data-mode=dark] .kc-ev.freigegeben{background:#132142}
html[data-mode=dark] .kc-ev.bereit{background:#544818;color:#f5dca5}
html[data-mode=dark] .kseg{background:#1d2430}
html[data-mode=dark] .kresume-k{background:rgba(20,27,38,.2)}
html[data-mode=dark] .kresume .kbar{background:rgba(20,27,38,.3)}
html[data-mode=dark] .kresume .kbar i{background:#1d2430}
html[data-mode=dark] .kresume .btn{background:#1d2430}
html[data-mode=dark] .kiconbtn{background:#1d2430}
html[data-mode=dark] .au-task{background:#1d2430}
html[data-mode=dark] .au-task.warn{background:#1d2430}
html[data-mode=dark] .zp-ph.warn{color:#f3d191}
html[data-mode=dark] .au-tfbar .au-search input{background:#1d2430}
html[data-mode=dark] .tfp-av{background:linear-gradient(135deg,#8fd6dc,#243d3f)}
html[data-mode=dark] .kp-cv{background:#1d2430}
html[data-mode=dark] .kp-hd{background:#1d2430}
html[data-mode=dark] .kp-b{background:#1d2430}
html[data-mode=dark] .kp-c{border:2px solid #383838}
html[data-mode=dark] .kp-th{background:#1d2430}
html[data-mode=dark] .kp-th em{background:rgba(20,27,38,.9)}
html[data-mode=dark] .kp-legacy{background:#1d2430}
html[data-mode=dark] .kp-rot{border-color:#383838}
html[data-mode=dark] .admfold{border:1px solid var(--line2,#3a424c)}
html[data-mode=dark] .admmeta.ok{color:#a7debc}
html[data-mode=dark] .admmeta.warn{color:#f3d191}
html[data-mode=dark] .zc-k.bad{background:#381616}
html[data-mode=dark] .rw-ae{border:1px solid var(--line,#464b52)}
html[data-mode=dark] .ksc-top{background:#1d2430}
html[data-mode=dark] .ksc-toc{background:#1d2430}
html[data-mode=dark] .ksc-dot{background:#1d2430}
html[data-mode=dark] .ksc-frame{background:#1d2430}
html[data-mode=dark] .ksc-fr{background:#1d2430}
html[data-mode=dark] .ksc-row{background:#1d2430}
html[data-mode=dark] .pres{color:var(--muted,#a6adaf)}
html[data-mode=dark] .pres i{background:#414748}
html[data-mode=dark] .pres.on{color:#9ddcbb}
html[data-mode=dark] .ked-lr{background:#1d2430}
html[data-mode=dark] .ked-bar{background:#1d2430}
html[data-mode=dark] .kact-box{background:#1d2430}
html[data-mode=dark] .ked-main input[type=color]{background:#1d2430}
html[data-mode=dark] .ks-stage{background:#1d2430}
html[data-mode=dark] .kp-evc{background:#1d2430}
html[data-mode=dark] select.kp-f,html[data-mode=dark] input.kp-f[type=text],html[data-mode=dark] input.kp-f[type=number],html[data-mode=dark] input.kp-f[type=url]{background:#1d2430}
html[data-mode=dark] .kc{background:#1d2430}
html[data-mode=dark] .kc-ico{background:rgba(20,27,38,.9)}
html[data-mode=dark] .kc-it{background:#213435}
html[data-mode=dark] .kc-it.ok{background:#203727;color:#9ddcbb}
html[data-mode=dark] .kc-z{background:#1d2430}
html[data-mode=dark] .kc-fb.ok{color:#9ddcbb}
html[data-mode=dark] .kc-fb.bad{color:#da7d78}
html[data-mode=dark] .kc-ar{background:rgba(20,27,38,.85)}
html[data-mode=dark] .kc-dots i.on{background:#1d2430}
html[data-mode=dark] .kc-zv,html[data-mode=dark] .kc-sv{background:#22292b}
html[data-mode=dark] .kc-zb button{background:rgba(20,27,38,.92)}
html[data-mode=dark] .kp-cpb{background:#1d2430}
html[data-mode=dark] .kb-hse{border:1px solid var(--line,#3d4451)}
html[data-mode=dark] .kb-hsep{border:3px solid #383838}
html[data-mode=dark] .kedit-pen{border:1px solid var(--line,#3d4451);background:#1d2430}
html[data-mode=dark] .kedit-pen:hover{background:#1f2f31}
html[data-mode=dark] .khead .kpen{background:rgba(20,27,38,.92)}
html[data-mode=dark] .kbp-t{background:#1f282d}
html[data-mode=dark] .kbp-t:hover,html[data-mode=dark] .kbp-t:focus-visible{background:#1d2430}
html[data-mode=dark] .kbp-t .kbp-i{background:#1d2430}
html[data-mode=dark] .srlab{color:#8d95a6}
html[data-mode=dark] .srblk{background:#1d2430}
@media (max-width:900px){html[data-mode=dark] .side{background:rgba(20,27,38,.9)}html[data-mode=dark] .tabbar{background:rgba(20,27,38,.88)}html[data-mode=dark] .sheet-panel{background:#1d2430}html[data-mode=dark] .kfab{background:rgba(20,27,38,.94)}}
@media (max-width:700px){html[data-mode=dark] table.stackm tr{background:#1d2430}html[data-mode=dark] table.stackm td::before{color:var(--muted,#9f9faa)}}
@media (min-width:900px){html[data-mode=dark] .kp-studio .kp-thn{background:#1d2430}}
html[data-mode=dark] img.logo-img,html[data-mode=dark] .logo img{filter:brightness(0) invert(1)}
.ub-zoom button[aria-pressed=true]{background:var(--nbtn);color:#fff}
html[data-mode=dark] .login .top img{filter:brightness(0) invert(1)}

/* Themefarben: aus den Eingaben (--t-*) werden Hell und Dunkel abgeleitet */
:root{--t-primary:#253876;--t-accent:#3fa4a9;--t-hero:#87d7dc;--t-bg:#eef6f7}
:root{--navy:var(--t-primary);--navy-d:color-mix(in srgb,var(--t-primary) 80%,#000);--teal:var(--t-accent);--teal-lt:var(--t-hero);--hero2:color-mix(in srgb,var(--t-hero) 45%,#fff);--bg:var(--t-bg);
  --tint:color-mix(in srgb,var(--t-accent) 12%,#fff);--line:color-mix(in srgb,var(--t-accent) 22%,#fff);--line2:color-mix(in srgb,var(--t-accent) 50%,#fff)}
html{background:var(--bg)}
html[data-mode=dark]{--navy:color-mix(in srgb,var(--t-primary) 30%,#fff);--nbtn:color-mix(in srgb,var(--t-primary) 80%,#fff);--teal-lt:color-mix(in srgb,var(--t-hero) 22%,#0b1119);--hero2:color-mix(in srgb,var(--t-hero) 12%,#0b1119);--bg:#0f1520;
  --tint:color-mix(in srgb,var(--t-accent) 16%,#1d2430);--line:color-mix(in srgb,var(--t-accent) 22%,#1d2430);--line2:color-mix(in srgb,var(--t-accent) 42%,#1d2430);
  --card:#1d2430;--ink:#e3e8f0;--muted:#a9b3c5;--grey:#a9b3c5;--shadow:0 1px 2px rgba(0,0,0,.45),0 10px 28px rgba(0,0,0,.35);--ok:#7ed48a;--ok-bg:#173320;--bad:#ff8c94;--bad-bg:#3b1c21;color-scheme:dark}
/* Jetzt dran: offene Aufgaben als Signale auf einer Strecke, passend zum Netzplan */
.todo-list{display:grid;gap:10px;margin-top:16px;position:relative;padding-left:32px}
.todo:not(:last-child)::after{content:"";position:absolute;left:-24px;top:37px;bottom:-25px;width:6px;background:var(--line2)}
.todo{position:relative;border:1px solid var(--line2);border-radius:14px;padding:14px 16px;background:var(--card)}
.todo::before{z-index:1;content:"";position:absolute;left:-32px;top:15px;width:22px;height:22px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px var(--card);animation:net-pulse 2s infinite}
@media (prefers-reduced-motion:reduce){.todo::before{animation:none}}
.todo-h b{font-size:1.05rem}
.sheet-panel .ub-zoom{margin:12px 0 10px}

/* ---------- Lernfahrplan (Kurseditor als Strecke) ---------- */
.ked-tl{position:relative}
.ked-t.les{position:relative;padding-left:34px}
.ked-t.les .ked-nd{position:absolute;left:14px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--card,#fff);border:2px solid var(--blue);z-index:1}
.ked-t.les::before{content:"";position:absolute;left:18px;top:0;bottom:0;width:2px;background:color-mix(in srgb,var(--blue) 35%,var(--line))}
.ked-t.les.sig .ked-nd{border-radius:3px;border-color:var(--bad,#c62828);background:var(--bad,#c62828)}
.ked-t.les.br{padding-left:50px}
.ked-t.les.br .ked-nd{left:30px;border-style:dashed}
.ked-t.les.br::before{left:34px;background:repeating-linear-gradient(var(--blue) 0 4px,transparent 4px 8px);width:2px;opacity:.6}
.ked-t.cur .ked-nd{background:#fff}
.ked-wz{flex:none;margin-left:auto;font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--orange,#e8860c) 20%,transparent);color:var(--ink)}
.ked-t.cur .ked-wz{background:rgba(255,255,255,.22);color:#fff}
.kwz{display:grid;gap:8px}
.klesson.skipped{opacity:.55;text-decoration:line-through;display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:.92rem}
.klesson.skipped .note{margin-left:auto;text-decoration:none}
.klesson.pend .note{margin-left:auto;font-size:.72rem}
.ked-t.cur .ked-nd{border-color:#fff;background:var(--nbtn)}.ked-t.cur.sig .ked-nd{background:#fff}.ked-t.les.br .ked-nd{background:var(--card,#fff)}
.ked-tools{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.ked-sl{flex:none;margin-left:auto;font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--tint);color:var(--ink)}
.ked-sl.mid{background:color-mix(in srgb,var(--orange,#e8860c) 30%,transparent)}
.ked-sl.hi{background:color-mix(in srgb,var(--bad,#c62828) 28%,transparent)}
.ked-t.cur .ked-sl{background:rgba(255,255,255,.22);color:#fff}
.ked-t .ked-wz+.ked-sl{margin-left:6px}
.abn-b{padding:14px 16px;display:grid;gap:10px;overflow:auto;max-height:70vh}
.abn-r{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.abn-r li{padding:7px 10px;border-radius:8px;background:var(--tint)}
.abn-r .abn-n{font-size:.72rem;font-weight:700;text-transform:uppercase;margin-right:6px;color:var(--blue)}
.abn-entfaellt{opacity:.5;text-decoration:line-through}
.abn-offen{outline:1px dashed var(--line)}
.kdue[hidden],.kwz-r[hidden]{display:none!important}

/* Trainerplanung: Dialoge (Termin: Was/Wann/Wer, Schicht: Trainerkarten) */
.pl-sec{display:grid;gap:10px;margin:0}
.pl-sec h3{margin:0;font:800 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pl-quicktimes{display:flex;flex-wrap:wrap;gap:6px}
.pl-quicktimes .chip{min-height:40px;padding:0 14px}
.pl-selhide{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pl-who{gap:8px}
.pl-who-c{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 14px 0 6px;border:2px solid var(--line);background:#fff}
.pl-who-c[aria-pressed=true]{border-color:var(--navy,#253876);background:var(--tint)}
.pl-who-c .av,.pl-gcard .av{width:30px;height:30px;border-radius:99px;display:grid;place-items:center;background:var(--tint);color:var(--navy,#253876);font:800 .72rem var(--mono)}
.pl-who-c[aria-pressed=true] .av{background:var(--navy,#253876);color:#fff}
.pl-who-c .dot{width:10px;height:10px;border-radius:99px;background:#9fb0c3}
.pl-who-c.ok .dot{background:#46aa46}.pl-who-c.warn .dot{background:#f08c32}.pl-who-c.bad .dot{background:#f00014}
.pl-whonote{margin:0;border-radius:12px;padding:10px 14px;font-size:.88rem;line-height:1.4;border-left:5px solid #9fb0c3;background:var(--tint)}
.pl-whonote.ok{background:#e6f6ea;color:#14602b;border-color:#46aa46}.pl-whonote.warn{background:#fff1de;color:#7a3800;border-color:#f08c32}.pl-whonote.bad{background:#fde8ea;color:#8c0010;border-color:#f00014}
.pl-ghead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.pl-gcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pl-gcard{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"av nm" "av sb";column-gap:10px;align-items:center;text-align:left;min-height:56px;padding:8px 12px;border-radius:16px;border:2px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.pl-gcard .av{grid-area:av}.pl-gcard .nm{grid-area:nm;font-weight:700}.pl-gcard .sb{grid-area:sb;font-size:.78rem;color:var(--muted)}
.pl-gcard.best{border-color:var(--navy,#253876);background:var(--tint)}
.pl-gcard:disabled{opacity:.55;cursor:default}
.pl-gno{font-size:.88rem}.pl-gno summary{cursor:pointer;min-height:36px;display:flex;align-items:center;font-weight:700;color:var(--muted)}
.pl-gno ul{margin:4px 0 0;padding-left:18px;display:grid;gap:3px}
html[data-mode=dark] .pl-who-c,html[data-mode=dark] .pl-gcard{background:#1d2430}
@media (max-width:700px){.pl-gcards{grid-template-columns:1fr 1fr}}

/* Trainerplanung: Werkzeugleiste, Kontextmenü, Meine Schichten */
.pl-acts .bd{display:inline-block;min-width:22px;text-align:center;padding:1px 7px;margin-left:6px;border-radius:99px;background:var(--navy,#253876);color:#fff;font-size:.78rem;font-weight:800}
.pl-autob.has{border:2px solid #f08c32;background:#fff6ec}.pl-autob.has .bd{background:#f08c32;color:#1f1300}
.pl-pubb:not(.sec){background:#ffd900;color:var(--navy,#253876)}
@media (max-width:700px){.pl-acts .lg{display:none}}
.pl-cmback{position:fixed;inset:0;z-index:79;background:transparent}
.pl-cm{position:fixed;z-index:80;width:280px;background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(37,56,118,.3);padding:8px;display:grid;gap:2px}
.pl-cm .cmt{padding:8px 12px 6px;font:800 .72rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pl-cm button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:transparent;color:var(--ink);font-weight:600;text-align:left;cursor:pointer}
.pl-cm button span{flex:1}.pl-cm button small{color:var(--muted)}.pl-cm button:hover,.pl-cm button:focus-visible{background:var(--tint)}
.pl-mine{width:min(520px,100%)}
.pl-mday{margin:6px 0 0;font:800 .78rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pl-mcard{border:1px solid var(--line);border-left:6px solid var(--navy,#253876);border-radius:18px;padding:12px 14px;display:grid;gap:8px}
html[data-mode=dark] .pl-cm{background:#1d2430}

.admlock{background:var(--tint);border-radius:10px;padding:10px 12px;margin:0 0 10px;color:var(--navy)}

/* Trainerplanung: Dialoge einheitlich (Termin und Schicht), keine Überbreite am Handy */
.pl-form{box-sizing:border-box;max-width:100%;overflow-x:hidden}
.pl-form input,.pl-form select,.pl-form textarea{box-sizing:border-box;max-width:100%;min-width:0}
.pl-form .grid2{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px}
.pl-form .grid2>*{min-width:0}
.pl-form .f{display:grid;gap:6px;min-width:0}
.pl-form details{margin:-4px 0}
.pl-form .pl-sec>.pl-gl{margin:0}

/* Linienleiste: kein globaler nav-Hover (färbte den ganzen Streifen und überdeckte die Linie) */
.net-strip .net-sts button,.net-strip .net-sts button:hover,.net-strip .net-sts button:focus{background:none;box-shadow:none;color:var(--muted)}
.net-strip .net-sts button[aria-selected=true],.net-strip .net-sts button[aria-selected=true]:hover{color:var(--navy)}
.net-sts button:hover .net-n{transform:scale(1.18);background:var(--lc)}
.net-sts button:hover .net-l{color:var(--navy)}
.net-n{transition:transform .15s ease,background .15s ease}
.net-sts button[aria-selected=true] .net-n{box-shadow:0 0 0 4px color-mix(in srgb,var(--lc) 22%,transparent)}
.net-sts button:focus-visible{outline:none}
.net-sts button:focus-visible .net-n{box-shadow:0 0 0 3px var(--navy)}
@media (prefers-reduced-motion:reduce){.net-n{transition:none}}

/* Trainerplanung: Zeitachse füllt die Seitenhöhe (Zeilen wachsen mit), bei kleinem Fenster bleibt es bei der Mindesthöhe */
@media (min-width:901px){
  .pl-tl{grid-template-rows:auto repeat(var(--r,1),minmax(74px,1fr));min-height:calc(100vh / var(--z,1) - 420px);min-height:calc(100dvh / var(--z,1) - 420px)}
}

/* Trainerplanung: Block per Griff unten rechts in Breite und Höhe ziehen (nur Desktop mit Maus) */
@media (min-width:901px) and (pointer:fine){
  .pl-stage{resize:both;overflow:hidden;min-width:520px;min-height:260px;max-width:100%}
  .pl-stage.sized .pl-scroll{height:100%;overflow:auto}
  .pl-stage.sized .pl-tl{min-height:100%}
}

/* Trainerplanung: Zeilenhöhe am unteren Rand des Trainernamens ziehen */
.pl-rh{position:absolute;left:0;right:0;bottom:0;height:10px;cursor:row-resize;z-index:3;touch-action:none}
.pl-rh::after{content:"";position:absolute;left:30%;right:30%;bottom:2px;height:3px;border-radius:3px;background:var(--line2);opacity:0;transition:opacity .12s}
.pl-name:hover .pl-rh::after,.pl-rh:hover::after{opacity:1}
@media (pointer:coarse){.pl-rh{display:none}}

/* Suche im Kopf der Module */
.herosea{position:relative;margin-top:14px}
.herosea>svg{position:absolute;left:14px;top:13px;width:18px;height:18px;fill:none;stroke:var(--navy);stroke-width:2;stroke-linecap:round;pointer-events:none}
.herosea input{width:100%;min-height:44px;padding:10px 14px 10px 42px;border:2px solid var(--navy);border-radius:22px;background:var(--card);color:var(--ink,inherit);font:600 .95rem var(--f)}
.herosea input:focus{outline:2px solid var(--teal,#2aa3a8);outline-offset:2px}
.herosea .herohits,.herosea .admnone{margin:8px 0 0;max-height:min(60vh,420px);overflow:auto}
.herosea .admnone{background:var(--card);border-radius:12px;padding:10px 14px}
.hero.compact .herosea{display:none}
@media (min-width:701px){.hero{position:relative}.herosea{position:absolute;right:20px;top:20px;width:min(360px,45%);margin:0;z-index:3}.herosea .herohits,.herosea .admnone{position:absolute;left:0;right:0;z-index:4}}
html[data-mode=dark] .herosea input{background:#1d2430}
.hero:has(.herosea){overflow:visible}

/* Trefferliste: Art, Titel, Pfeil */
.admhits.hitl{padding:6px;border:1px solid var(--line2,#d6e4e6);border-radius:16px;box-shadow:0 14px 34px rgba(20,40,80,.18)}
.admhits.hitl li+li{border-top:1px solid var(--line,#e8eff0)}
.admhits.hitl button{display:flex;align-items:center;gap:12px;padding:11px 10px;border-radius:11px;min-height:48px}
.srk{flex:none;min-width:84px;text-align:center;font:700 .68rem var(--f);letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--tint);color:var(--navy)}
.srk-k{background:#e1f3f4;color:#116369}.srk-p{background:#e8e6f6;color:#4a3f8f}.srk-q{background:#fdeedd;color:#8a4b0f}.srk-a{background:#e6f0e0;color:#3b6b22}.srk-s{background:#e3e9f6;color:#223a7a}.srk-e{background:#f6e6ee;color:#8a2f5c}
.srt{flex:1;min-width:0;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.sra{flex:none;color:var(--navy);opacity:.5;font-size:1.3rem;line-height:1}
.admhits.hitl button:hover .sra,.admhits.hitl button:focus-visible .sra{opacity:1}
@media (min-width:701px){.herosea{width:min(380px,46%)}.herosea .herohits{left:auto;right:0;width:min(480px,92vw)}}
@media (max-width:700px){.srk{min-width:72px;font-size:.62rem}}
html[data-mode=dark] .srk{background:#2a3446;color:#cfe}
.srk-b{background:var(--navy);color:#fff}

/* Befehl-Vorschau im Suchfeld */
.herores{margin-top:8px;padding:14px 16px;background:var(--card);border:1px solid var(--line2,#d6e4e6);border-radius:16px;box-shadow:0 14px 34px rgba(20,40,80,.18);color:var(--ink,inherit);text-align:left}
.herores .hr-t{display:block;margin:8px 0 4px;color:var(--navy);font-size:1rem;line-height:1.3}
.herores ul{margin:6px 0 4px;padding-left:18px;font-size:.9rem}
.herores .row{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
@media (min-width:701px){.herosea .herores{position:absolute;right:0;width:min(480px,92vw);z-index:4;max-height:70vh;overflow:auto}}

/* Kurs per Swipe */
.sw-steps{margin-bottom:4px}
.sw-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.sw-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px 16px;border:2px solid var(--line2,#d6e4e6);border-radius:16px;background:var(--card);color:var(--navy);font:inherit;cursor:pointer;min-height:76px;transition:transform .15s,border-color .15s,box-shadow .15s}
.sw-tile b{font-size:1rem}.sw-tile span{font-size:.82rem;color:var(--muted,#5b6b73)}
.sw-tile:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,40,80,.12)}
.sw-tile.on{border-color:var(--navy);background:var(--tint);box-shadow:0 0 0 3px rgba(35,57,119,.15)}
.sw-tile.dim{opacity:.55}
.sw-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}
.sw-head h2{margin:0}
.sw-stage{position:relative;width:min(320px,100%);height:clamp(300px,44vh,380px);margin:8px auto 4px;touch-action:pan-y;user-select:none}
.sw-card.sw-top,.sw-card.sw-back{position:absolute;inset:0;border-radius:26px;color:#fff;box-shadow:0 18px 40px rgba(20,40,80,.28);display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:26px 24px}
.sw-card.sw-back{transform:translateY(calc(var(--d)*10px)) scale(calc(1 - var(--d)*.05));filter:saturate(.8) brightness(.95);box-shadow:0 8px 20px rgba(20,40,80,.18)}
.sw-top{cursor:grab;transition:transform .22s cubic-bezier(.2,.8,.3,1),opacity .22s;outline:none;z-index:2}
.sw-top.sw-drag{cursor:grabbing;transition:none}
.sw-top:focus-visible{outline:3px solid var(--teal,#2aa3a8);outline-offset:3px}
.sw-top.sw-fly-r{transform:translate(130%,-20px) rotate(18deg)!important;opacity:0}
.sw-top.sw-fly-l{transform:translate(-130%,-20px) rotate(-18deg)!important;opacity:0}
.sw-ca{background:linear-gradient(150deg,#1d8d93,#35c0c5)}.sw-cb{background:linear-gradient(150deg,#1f3570,#4a64b8)}.sw-cc{background:linear-gradient(150deg,#d9791b,#f3b04a)}
.sw-cd{background:linear-gradient(150deg,#5a3f98,#9a7ad8)}.sw-ce{background:linear-gradient(150deg,#2f7d3a,#6cc067)}.sw-cf{background:linear-gradient(150deg,#2b2f3a,#5b6376)}
.sw-glyph{position:absolute;top:22px;left:24px;font-style:normal;font-size:3.4rem;line-height:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25))}
.sw-kind{font:700 .72rem var(--f);letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.sw-title{font-size:1.7rem;line-height:1.1}
.sw-sub{font-size:.95rem;line-height:1.35;opacity:.95}
.sw-min{margin-top:6px;align-self:flex-start;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.22);font:700 .75rem var(--f)}
.sw-stamp{position:absolute;top:26px;right:22px;padding:4px 12px;border:3px solid #fff;border-radius:10px;font:800 1.05rem var(--f);letter-spacing:.08em;opacity:0;transform:rotate(10deg);pointer-events:none}
.sw-no{left:auto;transform:rotate(-10deg)}
.sw-btns{display:flex;justify-content:center;gap:18px;margin:14px 0 4px}
.sw-btn{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:transparent;color:var(--navy);font:inherit;cursor:pointer}
.sw-btn span{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--card);box-shadow:0 6px 16px rgba(20,40,80,.18);font-size:1.6rem;transition:transform .12s}
.sw-btn small{font-size:.74rem;color:var(--muted,#5b6b73)}
.sw-btn:hover span{transform:scale(1.08)}.sw-btn:active span{transform:scale(.94)}
.sw-keep span{background:#2f9a4a;color:#fff}.sw-skip span{background:#fff;color:#c43b3b}
.sw-back1 span{width:46px;height:46px;font-size:1.2rem;margin-top:8px}
.sw-btn:disabled{opacity:.4;cursor:default}
.sw-line{position:relative;margin:14px 0 6px;padding:12px 56px 12px 8px;border-radius:16px;background:var(--tint);overflow-x:auto}
.sw-line ol{list-style:none;margin:0;padding:0;display:flex;gap:0;min-width:min-content;position:relative}
.sw-line ol::before{content:"";position:absolute;left:18px;right:18px;top:19px;height:4px;border-radius:2px;background:var(--navy);opacity:.25}
.sw-st{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;width:92px;flex:none;animation:swpop .35s cubic-bezier(.34,1.56,.64,1) both}
.sw-st i{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-style:normal;font-size:1.1rem;color:#fff;border:3px solid var(--card);box-shadow:0 3px 8px rgba(20,40,80,.25)}
.sw-st span{font:600 .7rem var(--f);color:var(--navy);text-align:center;line-height:1.2;max-width:88px}
.sw-st.sw-ca i,.sw-row.sw-ca .sw-ico{background:#1d8d93}.sw-st.sw-cb i,.sw-row.sw-cb .sw-ico{background:#1f3570}.sw-st.sw-cc i,.sw-row.sw-cc .sw-ico{background:#d9791b}
.sw-st.sw-cd i,.sw-row.sw-cd .sw-ico{background:#5a3f98}.sw-st.sw-ce i,.sw-row.sw-ce .sw-ico{background:#2f7d3a}.sw-st.sw-cf i,.sw-row.sw-cf .sw-ico{background:#2b2f3a}
.sw-st.sw-ca,.sw-st.sw-cb,.sw-st.sw-cc,.sw-st.sw-cd,.sw-st.sw-ce,.sw-st.sw-cf{background:none}
.sw-empty{font-size:.85rem;color:var(--muted,#5b6b73);padding:8px 10px}
.sw-lok{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:1.7rem}
@keyframes swpop{from{transform:scale(.3) translateY(12px);opacity:0}to{transform:none;opacity:1}}
.sw-rows{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.sw-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line2,#d6e4e6);border-radius:14px;background:var(--card)}
.sw-ico{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;font-style:normal;font-size:1.2rem;color:#fff}
.sw-rt{flex:1;min-width:0;display:flex;flex-direction:column}.sw-rt small{color:var(--muted,#5b6b73)}
.sw-rb{display:flex;gap:6px;flex:none}
.sw-card3 .f{margin-top:14px}
@media (max-width:700px){.sw-title{font-size:1.5rem}}
@media (prefers-reduced-motion:reduce){.sw-top,.sw-st{transition:none;animation:none}}
html[data-mode=dark] .sw-tile.on{background:#1d2a44}
.sw-card3 .chk{margin-top:12px}
.modhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.modhead h3{margin:0}
.modcard.off{opacity:.85}

/* Marke RailMentis (Markenpaket „Modern“): Midnight Navy 101828, Petrol 008C95, Eis-Mint 82E8DC, Kühles Weiß F6F8FB, Sekundärtext 667085, Rahmen DCE3ED.
   Buttons: Petrol, für weißen Text um 15 % abgedunkelt (008C95 allein erreicht nur 4,05:1, abgedunkelt ca. 5,3:1) [abgeleitet]. Mint nur als Fläche, nie als kleiner Text auf Weiß. */
html[data-brand=railmentis]{--t-primary:#101828;--t-accent:#008c95;--t-hero:#82e8dc;--t-bg:#f6f8fb;--ink:#101828;--muted:#667085;--grey:#667085;--line:#dce3ed;--line2:#b9c6d6;
  --f:'Manrope',Arial,Helvetica,sans-serif;--nbtn:color-mix(in srgb,var(--t-accent) 85%,#000)}
html[data-brand=railmentis] h1,html[data-brand=railmentis] h2,html[data-brand=railmentis] h3{font-weight:600}
html[data-brand=railmentis] .btn{font-weight:600}
html[data-brand=railmentis] .logo img{height:36px}
html[data-brand=railmentis] .login .top img{height:36px;max-width:100%}
html[data-brand=railmentis][data-mode=dark]{--nbtn:color-mix(in srgb,var(--t-accent) 85%,#000);--navy:#e3e8f0;--ink:#e3e8f0;--muted:#a9b3c5;--line:#2a3445;--line2:#3a4760}
html[data-brand=railmentis] .logo img[src^="brand/"],html[data-brand=railmentis] .login .top img[src^="brand/"]{filter:none}
/* RailMentis: Benutzerbereich unten in der Seitenleiste. Ruhige weiße Karte, Menü mit Segmenten über die volle Breite (nichts ragt heraus). */
html[data-brand=railmentis] .side{overflow-x:hidden;max-height:calc(100vh - 32px);overflow-y:auto}
html[data-brand=railmentis] .ub-card{background:var(--rm-card);border:1px solid var(--rm-line);box-shadow:var(--rm-sh);padding:8px 10px;border-radius:var(--rm-r2);color:var(--rm-ink)}
html[data-brand=railmentis] .ub-card:hover{background:var(--rm-soft);transform:none;box-shadow:var(--rm-sh)}
html[data-brand=railmentis] .ub-card:focus-visible{outline:2px solid var(--rm-accent);outline-offset:2px}
html[data-brand=railmentis] .ub-av{background:var(--rm-accent-soft);box-shadow:none;color:var(--rm-accent-d)}
html[data-brand=railmentis] .ub-t b{color:var(--rm-ink);font-weight:700}
html[data-brand=railmentis] .ub-t span{color:var(--rm-mute)}
html[data-brand=railmentis] .ub-chev{stroke:var(--rm-mute);opacity:1}
html[data-brand=railmentis] .ub-menu{position:static;margin-top:6px;padding:6px;gap:2px;background:var(--rm-card);border:1px solid var(--rm-line);border-radius:var(--rm-r2);box-shadow:none;animation:none}
/* RailMentis: Konto-Block als ruhige Fläche (kein Rahmen), Rolle als Etikett, Umgebungs-Hinweis für Demo und Testinstanz */
html[data-brand=railmentis] .ub-card{background:var(--rm-soft);border-color:transparent;box-shadow:none}
html[data-brand=railmentis] .ub-card:hover{background:color-mix(in srgb,var(--rm-soft) 65%,var(--rm-line))}
html[data-brand=railmentis] .ub-t span.ub-role{justify-self:start;margin-top:3px;padding:2px 8px;border-radius:99px;font-size:.66rem;font-weight:700;letter-spacing:.02em;color:var(--rm-lernen);background:var(--rm-accent-soft)}
html[data-brand=railmentis] .env-chip{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:700;line-height:1.25;color:var(--rm-planen);background:color-mix(in srgb,var(--rm-planen) 11%,transparent);border:1px solid color-mix(in srgb,var(--rm-planen) 32%,transparent);border-radius:var(--rm-r1);padding:7px 10px;margin:0 0 8px}
html[data-brand=railmentis] .env-chip i{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor}
html[data-brand=railmentis] .env-top{display:none}
html[data-brand=railmentis] .env-login{display:inline-flex;margin:12px 0 0}
@media (max-width:900px){html[data-brand=railmentis] .logo{display:flex;align-items:center;gap:8px;min-width:0}html[data-brand=railmentis] .env-top{display:flex;margin:0;padding:3px 8px;font-size:.64rem;white-space:nowrap}}
html[data-brand=railmentis] .ub-chev{transform:rotate(180deg)}
html[data-brand=railmentis] .ub[open] .ub-chev{transform:none}
html[data-brand=railmentis] .ub-item{box-sizing:border-box;padding:10px 12px;font-weight:600;color:var(--rm-ink);border-radius:var(--rm-r1)}
html[data-brand=railmentis] .ub-item:hover{background:var(--rm-soft)}
html[data-brand=railmentis] .ub-item svg{color:var(--rm-mute)}
html[data-brand=railmentis] .ub-item.out{color:#b3261e}
html[data-brand=railmentis] .ub-item.out svg{color:currentColor}
html[data-brand=railmentis] .ub-item.out:hover{background:var(--bad-bg,#fbeceb)}
html[data-brand=railmentis][data-mode=dark] .ub-item.out{color:#ff8a8a}
html[data-brand=railmentis] .ub-zoom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:3px;margin:6px 0 2px;border-radius:var(--rm-r1);background:var(--rm-soft)}
html[data-brand=railmentis] .ub-zoom span{grid-column:1/-1;padding:4px 6px 2px;font:600 .72rem var(--f);letter-spacing:.06em;text-transform:uppercase;color:var(--rm-mute)}
html[data-brand=railmentis] .ub-zoom button{min-width:0;padding:7px 4px;border-radius:8px;color:var(--rm-ink);font-weight:600;text-align:center}
html[data-brand=railmentis] .ub-zoom button:hover{background:var(--rm-card)}
html[data-brand=railmentis] .ub-zoom button[aria-pressed=true]{background:var(--rm-card);color:var(--rm-accent-d);box-shadow:inset 0 0 0 1px var(--rm-accent)}
html[data-brand=railmentis][data-mode=dark] .ub-zoom button[aria-pressed=true]{color:#5cc8cf}
html[data-brand=railmentis] .ub-zoom button:focus-visible{outline:2px solid var(--rm-accent);outline-offset:1px}

/* RailMentis: gruppierte Seitenleiste (Übersicht, Lernen, Prüfen, Planen, Gemeinsam, Verwaltung) und mobile Tabbar.
   Alles unter html[data-brand=railmentis]: eurobahn bleibt unverändert. Aktiver Bereich: gefüllt (Seite) oder getönt (Modul der Seite). */
html[data-brand=railmentis] #nav{gap:2px}
html[data-brand=railmentis] #nav .rm-l{padding:10px 12px;font-weight:600;font-size:.94rem;border-radius:10px;line-height:1.25}
html[data-brand=railmentis] #nav .rm-l span{min-width:0;overflow-wrap:anywhere}
html[data-brand=railmentis] #nav .rm-m[aria-current="true"]{background:color-mix(in srgb,var(--t-accent) 11%,#fff);color:var(--navy)}
html[data-brand=railmentis][data-mode=dark] #nav .rm-m[aria-current="true"]{background:color-mix(in srgb,var(--t-accent) 24%,#101828);color:#fff}
html[data-brand=railmentis] #nav .rm-l:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
html[data-brand=railmentis][data-mode=dark] #nav .rm-l:focus-visible{outline-color:var(--t-hero)}
html[data-brand=railmentis] .rm-subs{display:grid;gap:2px;margin:2px 0 6px 21px;padding-left:10px;border-left:2px solid var(--line)}
html[data-brand=railmentis] #nav .rm-l.sub{padding:8px 10px;font-weight:500;font-size:.9rem}
html[data-brand=railmentis] .rm-sec{display:grid;gap:2px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
html[data-brand=railmentis] .rm-sh{font:700 .7rem var(--f);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:2px 12px 4px}
@media (max-width:900px){
  /* Die eurobahn-Regeln blenden die Tabbar auf der Startseite aus und verschmälern sie (dort ist sie nur der Hbf-Knopf). RailMentis braucht sie überall. */
  html[data-brand=railmentis] .tabbar{width:min(calc(100% - 20px),560px);min-width:0}
  html[data-brand=railmentis] body.on-start:not(.insession):not(.pk-open) .tabbar{display:flex}
  html[data-brand=railmentis] .tabbar button[aria-current]{background:var(--nbtn);color:#fff}
  html[data-brand=railmentis] .tabbar button{min-height:48px}
  html[data-brand=railmentis] .tabbar button:focus-visible{outline:3px solid var(--navy);outline-offset:-3px}
}

/* ---------- RailMentis-Dashboard ---------- */
html[data-brand=railmentis] .dash-h{margin:0 0 12px}
html[data-brand=railmentis] .dash-g{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start}
html[data-brand=railmentis] .dash-s{display:grid;gap:12px;min-width:0}
html[data-brand=railmentis] .dash-sh{margin:0;font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--grey)}
html[data-brand=railmentis] .dash-chips{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
html[data-brand=railmentis] .dash-chips li{display:inline-flex;gap:8px;align-items:baseline;padding:6px 12px;border:1px solid var(--line,#d9dee8);border-radius:99px;background:var(--card,#fff);font-size:.88rem}
html[data-brand=railmentis] .dash-chips li b{color:var(--navy)}
html[data-brand=railmentis] .dash-c{background:var(--card,#fff);border:1px solid var(--line,#d9dee8);border-left:4px solid var(--grey-lt);border-radius:12px;padding:14px 16px;display:grid;gap:8px}
html[data-brand=railmentis] .dash-c.info{border-left-color:var(--blue)}
html[data-brand=railmentis] .dash-c.ok{border-left-color:var(--ok,#2f7d32)}
html[data-brand=railmentis] .dash-c.warn{border-left-color:#b07c00}
html[data-brand=railmentis] .dash-c.bad{border-left-color:var(--bad,#b3261e)}
html[data-brand=railmentis] .dash-c h3{margin:0;font-size:1rem;display:flex;gap:8px;align-items:center}
html[data-brand=railmentis] .dash-c p{margin:0;color:var(--ink,#1d2433)}
html[data-brand=railmentis] .dash-c .row{margin:0}
html[data-brand=railmentis] .dash-l{list-style:none;margin:0;padding:0;display:grid;gap:6px}
html[data-brand=railmentis] .dash-l li{display:grid;gap:2px}
html[data-brand=railmentis] .dash-l li span{color:var(--grey);font-size:.88rem}
html[data-brand=railmentis] .dash-c .btn{min-height:44px}
html[data-brand=railmentis] .dash-c .btn:focus-visible{outline:3px solid var(--navy);outline-offset:2px}

/* Planung: Ansicht „Liste“ (Wochenagenda, vor allem fürs Handy). Neue Klassen, wirkt nur in dieser Ansicht. */
.pl-list{display:flex;flex-direction:column;gap:2px;padding:6px 10px 12px}
.pl-ld{padding:8px 2px 4px;border-top:1px solid var(--line)}
.pl-ld:first-child{border-top:0}
.pl-ld h3{margin:0 0 6px;font-size:.95rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pl-ld h3 .wd{display:inline-block;min-width:1.6em;font-weight:700}
.pl-ld.we h3,.pl-ld.hol h3{color:var(--muted)}
.pl-ld.today h3{color:var(--ink)}
.pl-le{margin:0 0 6px;color:var(--muted)}
.pl-lr-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pl-lr{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 10px;border-radius:10px;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--c);cursor:pointer}
.pl-lr:focus-visible{outline:3px solid var(--line2);outline-offset:2px}
.pl-lr .tm{flex:0 0 auto;min-width:5.6em;font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem}
.pl-lr .tx{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.pl-lr .tx b{font-weight:700;overflow-wrap:anywhere}
.pl-lr .tx span{font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.pl-lr .fl{flex:0 0 auto;font-style:normal;font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--tint);color:var(--ink)}
.pl-lr .fl.bad{background:#c0392b;color:#fff}
.pl-lr .fl.warn{background:#f6e3b4;color:#6b4a00}
.pl-lr.draft{border-style:dashed;border-left-style:solid}
.pl-lr.open{background:repeating-linear-gradient(135deg,transparent 0 8px,rgba(0,0,0,.025) 8px 16px),var(--card)}
.pl-lr.conflict{border-color:#c0392b}
html[data-mode=dark] .pl-lr .fl.warn{background:#4a3a10;color:#f0ca79}
@media (max-width:420px){.pl-lr{flex-wrap:wrap}.pl-lr .tm{min-width:0}}
.pl-more{margin-top:8px}
.pl-more>summary{cursor:pointer;font-weight:600;font-size:.9rem;padding:10px 2px;min-height:44px;display:flex;align-items:center}
.pl-more>summary:focus-visible{outline:3px solid var(--line2);outline-offset:2px}
.pl-more[open]>summary{margin-bottom:6px}
.pl-more>summary::after{content:"▾";margin-left:8px;font-size:.8rem;color:var(--muted)}
.pl-more[open]>summary::after{content:"▴"}
.pl-more>summary::-webkit-details-marker{display:none}
/* Kurs aus Modulen: Terminplan */
.kat-plan{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0;background:var(--tint)}
.kat-plan h4{margin:0 0 8px;font-size:.95rem}
.kat-plan .chk{display:flex;gap:8px;align-items:flex-start;margin:6px 0}
.ksched{margin:6px 0 0}
.ksched-f{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:8px 0}
.ksched-f .f{flex:1 1 180px}

.pl-hol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 16px;font-size:.92rem}
.pl-hol li{padding:4px 0;border-bottom:1px solid var(--line)}
.pl-hol b{display:inline-block;min-width:3.4em;font-variant-numeric:tabular-nums}

.modsw{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.05rem;cursor:pointer}
.modsw input{width:20px;height:20px;accent-color:var(--navy)}
html[data-brand=railmentis] .modsw input{accent-color:var(--rm-accent)}

/* Darstellungsoptionen (Mein Bereich) */
.prefs{display:grid;gap:10px;margin-top:12px}
.pref{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.pref input{margin-top:3px;width:18px;height:18px;flex:none}
.pref span{display:grid;gap:1px}.pref b{font-size:.88rem}.pref small{font-size:.78rem;color:var(--muted,#5b6678)}
html[data-motion=reduced] *,html[data-motion=reduced] *::before,html[data-motion=reduced] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-contrast=high]{--muted:#2b3445;--rm-mute:#2b3445;--line:#7a8699;--rm-line:#7a8699;--rm-line2:#5f6b7e}
html[data-contrast=high] :focus-visible{outline:3px solid currentColor;outline-offset:2px}
html[data-contrast=high][data-mode=dark]{--muted:#d5dbe6;--rm-mute:#d5dbe6;--line:#8d99ad;--rm-line:#8d99ad}
html[data-density=compact] nav button{padding:7px 12px}
html[data-density=compact] .card{padding-block:12px}
html[data-density=compact] .stack{gap:10px}
/* RailMentis-Kontomenü: Schrift passend zur Navigation */
html[data-brand=railmentis] .ub-menu{font-size:.84rem}
html[data-brand=railmentis] .ub-item{font:600 .84rem/1.2 var(--f,inherit);padding:8px 10px}
html[data-brand=railmentis] .ub-zoom button{font:600 .78rem/1.2 var(--f,inherit);padding:6px 2px}
html[data-brand=railmentis] .ub-zoom span{font:600 .66rem/1.2 var(--f,inherit)}
html[data-brand=railmentis] .ub-t b{font-size:.84rem}
html[data-brand=railmentis] .ub-t span{font-size:.7rem}
.me-s .ub-zoom{max-width:360px;margin-top:8px}
.pref input{accent-color:var(--rm-accent,var(--nbtn,#253876))}

/* Versionsanzeige (Benutzermenü, Verwaltung → Module) */
/* Version: Umgebung als Etikett, Stand in Schreibmaschinenschrift, Alter in Worten; Klick kopiert die Angabe für den Support */
.ub-ver{display:flex;align-items:center;gap:7px;width:100%;box-sizing:border-box;margin:2px 0 4px;padding:6px 10px;border:0;border-radius:10px;background:none;font:inherit;font-size:.72rem;color:var(--muted,#667);text-align:left;cursor:pointer}
.ub-ver:hover{background:rgba(120,130,150,.12)}
.ub-ver:focus-visible{outline:2px solid var(--teal,#3fa4a9);outline-offset:1px}
.ub-ver:empty{display:none}
.ub-ver .vd{flex:none;width:7px;height:7px;border-radius:50%;background:#2f9e6b;box-shadow:0 0 0 3px rgba(47,158,107,.18)}
.ub-ver .vt,.vhead .vt{flex:none;padding:1px 7px;border-radius:99px;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--teal,#2a7f86);background:rgba(63,164,169,.14)}
.ub-ver code,.vhead code{font:600 .76rem ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--navy,#1d2433);letter-spacing:.01em}
.ub-ver small{margin-left:auto;font-size:.68rem;opacity:.85;white-space:nowrap}
.vhead{display:flex;align-items:center;gap:10px;margin:2px 0 6px}
.vhead .vid{font-size:1.5rem;font-weight:700;letter-spacing:.02em}
.vhead .vt{font-size:.74rem;padding:3px 10px}
.verlist{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:10px 0 0}
.verlist dt{color:var(--muted,#667)}
.verlist dd{margin:0;overflow-wrap:anywhere}
.verlist code{font:600 .85rem ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

html[data-brand=railmentis] .ub-ver .vt,html[data-brand=railmentis] .vhead .vt{color:var(--rm-lernen);background:var(--rm-accent-soft)}
html[data-brand=railmentis] .ub-ver code,html[data-brand=railmentis] .vhead code{color:var(--rm-ink)}
html[data-brand=railmentis] .ub-ver:hover{background:var(--rm-soft)}

/* Menü und Seiten (RailMentis): Einträge je Modul */
html[data-brand=railmentis] .mgrp{display:grid;gap:10px;margin:0 0 20px}
html[data-brand=railmentis] .mgh{display:flex;align-items:center;gap:9px;margin:4px 0 2px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rm-ink,#10243a)}
html[data-brand=railmentis] .mgh small{margin-left:auto;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted,#667)}
html[data-brand=railmentis] .mgd{width:9px;height:9px;border-radius:50%;background:var(--rm-muted,#8a97a6)}
html[data-brand=railmentis] .mgd.mg-lernen{background:var(--rm-lernen,#2f8f6b)}
html[data-brand=railmentis] .mgd.mg-pruef{background:var(--rm-pruefen,#2b5b9a)}
html[data-brand=railmentis] .mgd.mg-plan{background:var(--rm-planen,#c9772b)}
html[data-brand=railmentis] .mrow{border-width:1px;background:#fff}
html[data-brand=railmentis] .hgh{margin:14px 0 2px;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rm-accent,#008c95)}
html[data-brand=railmentis] .hgh:first-child{margin-top:0}

/* Design-Vorschau (RailMentis) */
.pvtabs{display:flex;gap:4px;padding:3px;margin:0 0 12px;border-radius:999px;background:rgba(120,130,150,.12);width:max-content;max-width:100%}
.pvt{border:0;background:none;font:inherit;font-size:.8rem;font-weight:600;padding:6px 14px;border-radius:999px;color:inherit;cursor:pointer}
.pvt[aria-pressed=true]{background:#fff;color:#10243a;box-shadow:0 1px 3px rgba(16,36,58,.15)}
.rpv{--pv-lernen:var(--rm-lernen,#2f8f6b);--pv-pruefen:var(--rm-pruefen,#2b5b9a);--pv-planen:var(--rm-planen,#c9772b);border:1px solid var(--pv-line);border-radius:14px;overflow:hidden;background:var(--pv-bg);font-size:.72rem;color:var(--pv-ink);min-height:300px;display:grid}
.rpv .pvd{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5;flex:none}
.rpv .pvd-lernen{background:var(--pv-lernen);opacity:1}.rpv .pvd-pruefen{background:var(--pv-pruefen);opacity:1}.rpv .pvd-planen{background:var(--pv-planen);opacity:1}.rpv .pvd-start{background:var(--pv-acc);opacity:1}
.rpv-desk{display:grid;grid-template-columns:118px minmax(0,1fr)}
.rpv-side{background:#fff;border-right:1px solid var(--pv-line);padding:12px 8px;display:grid;gap:3px;align-content:start}
.rpv-side img{height:18px;width:auto;margin:0 0 10px 4px;justify-self:start}
.rpv-side span{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:8px;font-weight:600}
.rpv-side span.on{background:var(--pv-acc);color:#fff}.rpv-side span.on .pvd{background:#fff;opacity:1}
.rpv-side small{font-size:.58rem;letter-spacing:.08em;color:#7a8696;margin:10px 0 2px 8px}
.rpv-main,.rpv-pmain{padding:14px;display:grid;gap:9px;align-content:start}
.rpv-eyebrow{font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pv-acc)}
.rpv-h{font-size:1.25rem;font-weight:700;margin-top:-4px}
.rpv-card{background:#fff;border:1px solid var(--pv-line);border-radius:12px;padding:10px 12px;display:grid;gap:6px}
.rpv-li{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--pv-line)}
.rpv-li span{flex:1}.rpv-li em{font-style:normal;font-size:.62rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--pv-soft);color:var(--pv-acc)}
.rpv-row{display:flex;align-items:center;gap:10px}
.rpv-btn{background:var(--pv-acc);color:#fff;font-weight:700;padding:7px 13px;border-radius:9px;white-space:nowrap}.rpv-btn.wide{text-align:center;padding:9px}
.rpv-bar{flex:1;height:6px;border-radius:4px;background:var(--pv-soft);overflow:hidden}.rpv-bar i{display:block;height:100%;width:62%;background:var(--pv-acc)}
.rpv-phone{width:190px;margin:12px auto;border:6px solid var(--pv-ink);border-radius:22px;background:var(--pv-bg);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;min-height:420px}
.rpv-top{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#fff;border-bottom:1px solid var(--pv-line)}
.rpv-av{width:20px;height:20px;border-radius:50%;background:var(--pv-soft);color:var(--pv-acc);display:grid;place-items:center;font-weight:700}
.rpv-phone .rpv-main,.rpv-phone .rpv-pmain{padding:10px;gap:7px}.rpv-phone .rpv-h{font-size:1rem}.rpv-phone .rpv-li em{display:none}.rpv-phone .rpv-row small{display:none}
.rpv-tab{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--pv-line);padding:6px 2px;font-size:.54rem;font-weight:600}
.rpv-tab span{display:grid;justify-items:center;gap:3px}.rpv-tab .on{color:var(--pv-acc)}
.rpv-login{margin:auto;width:min(230px,80%);background:#fff;border:1px solid var(--pv-line);border-radius:14px;padding:18px;display:grid;gap:9px;justify-items:stretch;text-align:center}
.rpv-login img{justify-self:center}.rpv-login b{font-size:.95rem}.rpv-login small{color:#667}
.rpv-in{border:1px solid var(--pv-line);border-radius:8px;padding:8px 10px;text-align:left;color:#8a96a5;background:var(--pv-bg)}
html[data-mode=dark] .rpv{background:#151b24;color:#e6ebf2}
html[data-mode=dark] .rpv-side,html[data-mode=dark] .rpv-card,html[data-mode=dark] .rpv-top,html[data-mode=dark] .rpv-tab,html[data-mode=dark] .rpv-login{background:#1d2430;border-color:#2c3646}
html[data-mode=dark] .rpv-li,html[data-mode=dark] .rpv-side{border-color:#2c3646}
html[data-mode=dark] .rpv-in{background:#151b24;border-color:#2c3646}
html[data-mode=dark] .rpv-phone{border-color:#3a4558}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.kat-quick{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.kat-quick .f{flex:1;min-width:200px;margin:0}

/* Verwaltung → Benutzer (RailMentis): ruhige Formulare, kompakte Aktionen, eigenes Dateifeld */
html[data-brand=railmentis] .uadd{gap:8px;justify-content:flex-start}
html[data-brand=railmentis] .uadd .btn{flex:0 0 auto;min-width:0;padding:9px 16px;font-size:.9rem}
html[data-brand=railmentis] .uimp{display:grid;gap:16px}
html[data-brand=railmentis] .uimp>h2,html[data-brand=railmentis] .uimp>p{margin:0!important}
html[data-brand=railmentis] .uimp .f{display:grid;gap:6px;font-size:.85rem;font-weight:600;color:var(--rm-ink,#10243a)}
html[data-brand=railmentis] .uimp .row{display:flex;gap:10px;flex-wrap:wrap}
html[data-brand=railmentis] .uimp textarea{min-height:130px;border:1px solid var(--rm-line,#d9e0e8);border-radius:12px;padding:12px 14px;background:#fff;resize:vertical}
html[data-brand=railmentis] .uimp input[type=file]{width:100%;box-sizing:border-box;padding:14px;border:1.5px dashed var(--rm-line,#c9d3de);border-radius:12px;background:var(--rm-accent-soft,#e6f4f4);font:inherit;font-size:.85rem;font-weight:500;color:#5b6677;cursor:pointer}
html[data-brand=railmentis] .uimp input[type=file]::file-selector-button{margin-right:12px;padding:8px 14px;border:0;border-radius:9px;background:var(--rm-accent,#008c95);color:#fff;font:inherit;font-weight:600;cursor:pointer}
html[data-brand=railmentis] .uimp input[type=file]::file-selector-button:hover{filter:brightness(.92)}
html[data-brand=railmentis] .uimp .grid2{display:grid;grid-template-columns:minmax(0,420px)}
/* Neues Konto */
html[data-brand=railmentis] form[data-form=u-new]{display:grid;gap:16px}
html[data-brand=railmentis] form[data-form=u-new] .f{display:grid;gap:6px;font-size:.85rem;font-weight:600}
/* Schalter und Sammelauswahl: flach statt Kapsel */
html[data-brand=railmentis] .rqsw,html[data-brand=railmentis] .uall{box-shadow:none;background:none;padding:6px 2px;border-radius:8px;font-weight:600}
html[data-brand=railmentis] .rqsw{margin-top:12px}
html[data-brand=railmentis] .uall{margin:0 0 8px 14px}
/* Konten: Werkzeugleiste und Liste */
html[data-brand=railmentis] .utools{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:14px}
html[data-brand=railmentis] .utools .f{display:grid;gap:6px;font-size:.8rem;font-weight:600;color:#5b6677}
html[data-brand=railmentis] .utools .usearch{flex:1 1 220px}
html[data-brand=railmentis] .urow,html[data-brand=railmentis] .ucard{border-color:var(--rm-line,#e1e7ee)}
html[data-brand=railmentis] .uav{background:var(--rm-accent-soft,#e6f4f4);color:var(--rm-accent,#008c95)}
html[data-mode=dark][data-brand=railmentis] .uimp textarea{background:#1d2430;border-color:#2c3646}
html[data-mode=dark][data-brand=railmentis] .uimp input[type=file]{background:#1d2430;border-color:#3a4558;color:#a0a7b2}
html[data-brand=railmentis] .upick-sp{display:inline-block;width:22px;height:22px;flex:none}
html[data-mode=dark][data-brand=railmentis] .uav{background:rgba(0,140,149,.28);color:#8fe9e2}
.ksec-btns{display:flex;gap:8px;align-items:center}
.kplus{background:var(--nbtn,#101828);color:#fff;box-shadow:none}
html[data-brand=railmentis] .kplus{background:var(--rm-accent,#008c95)}
.kplus-big{margin-top:12px}
.kempty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:34px 20px 30px;text-align:center}
.kempty p{margin:0;max-width:420px;color:var(--muted,#5b6677);font-size:.92rem;line-height:1.5}
.kempty-ic{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--rm-accent-soft,#e6f4f4);color:var(--rm-accent,#008c95);margin-bottom:4px}
.kempty-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kempty b{font-size:1.1rem}
.kempty-btn{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:11px 20px;border-radius:999px}
.kempty-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
html[data-mode=dark] .kempty-ic{background:rgba(0,140,149,.25);color:#8fe9e2}

/* Kurs zusammenstellen: Seitenpanel mit genau einem Scrollbereich */
html:has(.kat-sheet){overflow:hidden}
.kat-sheet{position:fixed;inset:0;z-index:80;display:flex;justify-content:flex-end}
.kat-sheet-back{position:absolute;inset:0;background:rgba(16,36,58,.38);backdrop-filter:blur(2px);animation:ksfade .18s ease-out}
.kat-sheet-panel{position:relative;display:flex;flex-direction:column;width:min(520px,100vw);height:100dvh;background:#fff;box-shadow:-18px 0 50px rgba(16,36,58,.22);animation:ksin .22s cubic-bezier(.2,.8,.2,1)}
.ks-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px 14px;border-bottom:1px solid var(--line2,#e1e7ee)}
.ks-h h3{margin:0 0 2px;font-size:1.2rem}
.ks-b{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 22px;display:grid;gap:22px;align-content:start}
.ks-b section{display:grid;gap:10px}
.ks-b h4{margin:0;font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--rm-accent,#008c95)}
.ks-b h4 .note{text-transform:none;letter-spacing:0;font-weight:500}
.ks-b p.note{margin:-4px 0 0}
.ks-b .kat-plan{border:0;background:none;padding:0;margin:0}
.ks-b .kat-plan .grid2{display:grid;grid-template-columns:1fr}
.ks-f{display:flex;gap:10px;flex-wrap:wrap;padding:14px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line2,#e1e7ee);background:#fff}
.ks-f .btn:first-child{flex:1 1 200px}
.kat-ic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;margin-right:6px;vertical-align:-3px}
@keyframes ksin{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes ksfade{from{opacity:0}to{opacity:1}}
@media (max-width:700px){
  .kat-sheet{align-items:flex-end}
  .kat-sheet-panel{width:100vw;height:auto;max-height:92dvh;border-radius:20px 20px 0 0;animation:ksup .24s cubic-bezier(.2,.8,.2,1)}
  @keyframes ksup{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
}
@media (prefers-reduced-motion:reduce){.kat-sheet-back,.kat-sheet-panel{animation:none}}
html[data-mode=dark] .kat-sheet-panel,html[data-mode=dark] .ks-f{background:#1d2430}
html[data-mode=dark] .ks-h,html[data-mode=dark] .ks-f{border-color:#2c3646}
