/* VIPTEAM.ONE – Design. Schriften (Manrope, Bricolage Grotesque) liegen lokal auf dem Server. */
@font-face{font-family:"Manrope";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/manrope-latin-400.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/manrope-latin-500.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/manrope-latin-600.woff2") format("woff2")}
@font-face{font-family:"Manrope";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/manrope-latin-700.woff2") format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/bricolage-latin-500.woff2") format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/bricolage-latin-700.woff2") format("woff2")}

:root{
  --ink:#1C2138; --ink-2:#5D637A; --blue:#0A6BA3; --blue-d:#085884; --brand:#4CC2F1;
  --mist:#ECEEF6; --line:#DDE0EA; --card:#FFFFFF; --bg:#F5F6FA; --gold:#FFD400;
  --ok:#0E6E63; --warn:#8A5A00; --bad:#B3412E; --on-blue:#FFFFFF;
  --s1:#0E6E63; --s2:#A86F14; --s3:#5B3FA8; --s1-soft:#E2F2EF; --s2-soft:#F7EDDB; --s3-soft:#ECE7F8;
  --font:"Manrope","Segoe UI",system-ui,-apple-system,sans-serif;
  --head:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root{
    --ink:#ECEEF5; --ink-2:#A3A9BD; --blue:#4CC2F1; --blue-d:#7AD3F5; --brand:#4CC2F1;
    --mist:#232A3F; --line:#2C3246; --card:#1B2030; --bg:#12151F; --gold:#FFD400;
    --ok:#3FB5A6; --warn:#E3B04B; --bad:#E8826F; --on-blue:#12151F;
    --s1:#3FB5A6; --s2:#E0A84A; --s3:#A390EA; --s1-soft:#173430; --s2-soft:#372B17; --s3-soft:#2A2442;
    color-scheme:dark;
  }
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.55 var(--font);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3{font-family:var(--head);line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700}
h2{font-size:1.3rem;font-weight:700}
h3{font-size:1.05rem;font-weight:500}
h1,h2{font-weight:700}
p{margin:0 0 1em;max-width:66ch}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
button,input,select,textarea{font:inherit;color:inherit}

.wrap{width:100%;max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.topbar{display:flex;justify-content:space-between;align-items:center;padding-block:18px}
.topbar nav{display:flex;gap:20px;align-items:center;font-size:.95rem}
.topbar nav a{color:var(--ink-2)}
.brand{display:flex;align-items:center}
.logo{display:block;height:40px;width:auto}
.link{background:none;border:0;padding:0;color:var(--ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-size:inherit}
form.inline{display:inline}

/* Knöpfe */
.btn{display:inline-block;background:var(--ink);color:var(--card);border:0;border-radius:10px;padding:.75rem 1.3rem;font-weight:500;cursor:pointer;text-decoration:none;text-align:center}
.btn:hover{opacity:.88}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn.ghost:hover{border-color:var(--blue)}
.btn.sm{padding:.4rem .85rem;font-size:.9rem;border-radius:8px}
.btn.ok{background:var(--ok);color:var(--on-blue)}
.btn.no{background:transparent;color:var(--bad);border:1.5px solid var(--line)}
.btn.danger{background:var(--bad);color:#fff}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:1.25rem}

/* Meldungen */
.msg{padding:.8rem 1rem;border-radius:10px;border:1.5px solid var(--line);background:var(--card);margin:0 0 1rem}
.msg.ok{border-color:var(--ok)}
.msg.err{border-color:var(--bad);color:var(--bad)}
.hint{font-size:.88rem;color:var(--ink-2);margin:.3rem 0 0}
.note{background:var(--mist);border-left:5px solid var(--gold);border-radius:0 12px 12px 0;padding:1rem 1.2rem;margin:1.25rem 0}

/* Seiten ohne Seitenleiste */
main.narrow{width:100%;max-width:460px;margin:2rem auto 3rem;padding-inline:max(16px,env(safe-area-inset-left,0px))}
main.medium{width:100%;max-width:760px;margin:2rem auto 3rem;padding-inline:max(16px,env(safe-area-inset-left,0px))}
main.wide{width:100%;max-width:1080px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px))}
.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.75rem}

/* Formulare */
label{display:block;font-weight:500;font-size:.92rem;margin:1rem 0 .3rem}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=search],input[type=url],input[type=date],input[type=datetime-local],select,textarea{width:100%;background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:.7rem .85rem}
textarea{min-height:110px;resize:vertical}
fieldset{border:1.5px solid var(--line);border-radius:12px;margin:1rem 0 0;padding:.5rem 1rem .9rem}
legend{font-weight:500;font-size:.92rem;padding:0 .4rem}
.choice label{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;margin:.6rem 0 0}
.choice input{margin-top:.3rem}
.check{display:flex;gap:.6rem;align-items:flex-start;font-weight:400;margin-top:1.1rem}
.check input{margin-top:.3rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
input[type=file]{width:100%}

/* Startseite */
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;padding:3rem 0 4rem}
.hero .lead{font-size:1.15rem;color:var(--ink-2)}
.hero h1 span{display:block}
.ticket{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:2rem;position:relative}
.ticket::before{content:"";position:absolute;left:-1px;top:2rem;bottom:2rem;width:5px;background:var(--gold);border-radius:0 4px 4px 0}
.ticket .row{display:grid;gap:.75rem;margin-top:1.25rem}
.vision{background:var(--mist);padding:3.5rem 0}
.vision .cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:1.5rem}
.vision h3{color:var(--blue)}

/* Bereich */
.app{display:block;padding-block:1.75rem 3rem;flex:1}
.content{min-width:0}
.appbar{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.appbar .bar{display:flex;align-items:center;gap:1rem 1.25rem;flex-wrap:wrap;min-height:60px;padding-block:.5rem}
.appbar .logo{height:32px}
.mainnav{display:flex;gap:.25rem;margin-left:auto;overflow-x:auto;scrollbar-width:thin}
.mainnav a{color:var(--ink-2);text-decoration:none;font-weight:600;padding:.5rem .8rem;border-radius:8px;white-space:nowrap}
.mainnav a:hover{color:var(--ink)}
.mainnav a[aria-current="page"]{color:var(--ink);background:var(--bg)}
.me{display:flex;align-items:center;gap:.6rem;font-size:.9rem}
.me a{display:flex;align-items:center;gap:.5rem;color:var(--ink);text-decoration:none;font-weight:600}
.me a[aria-current="page"]{text-decoration:underline;text-underline-offset:4px}
.me small{display:block;color:var(--ink-2);font-weight:500;line-height:1.1}
.crumb{margin:0 0 1rem;font-size:.92rem}
.crumb a{color:var(--ink-2);font-weight:600;text-decoration:none}
.crumb a:hover{color:var(--ink)}
@media (max-width:720px){.mainnav{order:3;width:100%;margin-left:0}.me .who-name{display:none}}
.avatar{width:96px;height:96px;border-radius:24px 48px 24px 48px;object-fit:cover;background:var(--mist);flex:none}
.avatar.sm{width:44px;height:44px;border-radius:12px 22px 12px 22px;font-size:.95rem}
.avatar.xs{width:34px;height:34px;border-radius:10px 17px 10px 17px;font-size:.8rem}
.avatar.initials{display:inline-grid;place-items:center;color:var(--blue);font-weight:700;font-size:1.6rem;border:2px solid var(--line)}
.avatar.sm.initials{font-size:.95rem}
.avatar.xs.initials{font-size:.8rem}
.profile-head{display:flex;gap:1.25rem;align-items:center;margin:1rem 0 1.5rem;flex-wrap:wrap}

/* Karten, Kacheln, Zahlen */
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0 1.75rem}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.1rem}
.stat b{display:block;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.stat small{color:var(--ink-2)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin:1rem 0 2rem}
.tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;text-decoration:none;color:var(--ink)}
a.tile:hover{border-color:var(--blue)}
.tile h3{margin-bottom:.3em}
.tile p{margin:0;color:var(--ink-2);font-size:.92rem}
.tile.locked{opacity:.65}
.tile .soon{display:inline-block;margin-top:.6rem;font-size:.8rem;color:var(--ink-2);border:1.5px dashed var(--line);border-radius:999px;padding:.05rem .6rem}

/* Tabellen */
.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:14px}
table{border-collapse:collapse;width:100%;min-width:560px}
th,td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--line);font-size:.95rem;vertical-align:middle}
th{font-size:.85rem;color:var(--ink-2);font-weight:500}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right}
.person{display:flex;align-items:center;gap:.7rem;min-width:0}
.person a{color:var(--ink);font-weight:500;text-decoration:none}
.person a:hover{text-decoration:underline}
.person small{display:block;color:var(--ink-2);overflow-wrap:anywhere}
.tag{display:inline-block;border-radius:999px;padding:.1rem .65rem;font-size:.8rem;font-weight:500;border:1.5px solid currentColor;white-space:nowrap}
.tag.aktiv{color:var(--ok)}.tag.wartet{color:var(--warn)}.tag.gesperrt{color:var(--bad)}.tag.mail{color:var(--ink-2)}
.tools{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0;align-items:end}
.tools label{margin:0 0 .25rem}
.tools .field{min-width:150px;flex:1 1 150px}
.tools .field.grow{flex:2 1 240px}
.pager{display:flex;gap:1rem;align-items:center;margin:1rem 0;color:var(--ink-2);font-size:.92rem}
.empty{padding:1.75rem;text-align:center;color:var(--ink-2)}
.code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--mist);border-radius:8px;padding:.35rem .7rem;font-size:1.05rem;user-select:all;letter-spacing:.06em}
.seg{display:grid;gap:.6rem;margin:1rem 0}
.seg label{display:flex;gap:.75rem;align-items:flex-start;margin:0;font-weight:400;background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:.9rem 1rem;cursor:pointer}
.seg label:has(input:checked){border-color:var(--blue);background:var(--mist)}
.seg b{display:block;font-weight:500}
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1.25rem;margin:1rem 0}
dl.facts dt{color:var(--ink-2)}
dl.facts dd{margin:0;overflow-wrap:anywhere}
.section{margin-top:2rem}
.danger-zone{border:1.5px solid var(--bad);border-radius:14px;padding:1.25rem;margin-top:2rem}
.danger-zone h2{color:var(--bad)}

/* Rechtliches */
.legal h1{margin-bottom:.4em}
.legal h2{margin:2rem 0 .5rem}
.legal ul{padding-left:1.2rem;margin:0 0 1em}
.legal li{margin-bottom:.35em;max-width:68ch}
.legal address{font-style:normal;margin:0 0 1em}

.foot{display:flex;gap:1.5rem;flex-wrap:wrap;padding-block:1.5rem;color:var(--ink-2);font-size:.9rem}
.foot a{color:var(--ink-2)}

@media (max-width:820px){
  .hero{grid-template-columns:minmax(0,1fr);gap:2rem;padding-top:1.5rem}
  .vision .cols,.grid3{grid-template-columns:minmax(0,1fr)}
  .app{grid-template-columns:minmax(0,1fr);gap:1rem}
  .logo{height:34px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.draft{background:var(--mist);border-left:5px solid var(--gold);border-radius:0 12px 12px 0;padding:.9rem 1.1rem;margin:1rem 0 1.5rem}
.ph{background:var(--gold);color:#0F2540;padding:.05em .35em;border-radius:4px}
.testbar{background:var(--gold);color:#0F2540;text-align:center;padding:.45rem 1rem;font-size:.9rem}

/* Teambaum, Willkommen */
.tabs{display:flex;gap:1rem;margin:.25rem 0 1rem}
.tabs a{padding:.35rem 0;border-bottom:2px solid transparent;color:var(--ink);text-decoration:none}
.tabs a[aria-current="page"]{border-bottom-color:var(--blue);font-weight:500}
.tree,.tree ul{list-style:none;margin:0;padding:0}
.tree ul{margin-left:1.1rem;padding-left:1rem;border-left:2px solid var(--line)}
.tree li{margin:.5rem 0}
.tree .node{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.tree .node small{display:block;color:var(--ink-2)}
.welcome{display:flex;align-items:center;gap:.8rem;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;margin:.5rem 0 1rem}
.welcome p{margin:0}
.plain{list-style:none;margin:0;padding:0}
.plain li{margin:.35rem 0}

/* Etappen: s1 Erleben, s2 Empfehlen, s3 Entwickeln */
.s1{--c:var(--s1);--soft:var(--s1-soft)}.s2{--c:var(--s2);--soft:var(--s2-soft)}.s3{--c:var(--s3);--soft:var(--s3-soft)}
.lead{color:var(--ink-2);max-width:60ch;margin-top:.5rem}
progress{display:block;width:100%;height:8px;border:0;border-radius:99px;background:var(--line);overflow:hidden;accent-color:var(--c,var(--s1));-webkit-appearance:none;appearance:none}
progress::-webkit-progress-bar{background:var(--line);border-radius:99px}
progress::-webkit-progress-value{background:var(--c,var(--s1));border-radius:99px}
progress::-moz-progress-bar{background:var(--c,var(--s1));border-radius:99px}
.path{margin-top:1.5rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card)}
.stage{padding:1.4rem 1.25rem;border-right:1px solid var(--line);position:relative}
.stage:last-child{border-right:0}
.stage .big{font-family:var(--head);font-weight:700;font-size:clamp(1.4rem,3.5vw,2rem);color:var(--c)}
.stage .q{color:var(--ink-2);font-size:.9rem;margin:.15rem 0 1rem}
.stage .meta{font-size:.85rem;color:var(--ink-2);margin:.5rem 0 0}
.stage.active{background:var(--soft)}
.stage.active::after{content:attr(data-here);position:absolute;top:.9rem;right:.9rem;font-size:.75rem;font-weight:700;color:var(--c);background:var(--card);padding:.1rem .55rem;border-radius:99px}
@media (max-width:640px){.path{grid-template-columns:1fr}.stage{border-right:0;border-bottom:1px solid var(--line)}.stage:last-child{border-bottom:0}}
.next{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:1.25rem;border-left:5px solid var(--c)}
.next .k{font-size:.88rem;color:var(--ink-2)}
.next h3{margin:.15rem 0}
.cgrid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:1rem 0 2rem}
.course{display:flex;flex-direction:column;gap:.5rem;background:var(--card);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:14px;padding:1.1rem 1.2rem;color:var(--ink);text-decoration:none}
a.course:hover{border-color:var(--c)}
.course .tag2{font-size:.8rem;font-weight:700;color:var(--c)}
.course h3{margin:0}
.course p{margin:0;color:var(--ink-2);font-size:.92rem}
.course .foot{display:flex;justify-content:space-between;font-size:.85rem;color:var(--ink-2);margin-top:auto;padding-top:.4rem}
.course.locked{opacity:.6}
.pill{display:inline-block;font-size:.8rem;font-weight:700;padding:.1rem .65rem;border-radius:99px;background:var(--soft,var(--mist));color:var(--c,var(--blue-d))}
.module{margin-top:1.5rem}
.module h3{margin-bottom:.5rem}
.lesson{display:flex;align-items:center;gap:.9rem;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem;color:var(--ink);text-decoration:none;margin-top:.5rem}
a.lesson:hover{border-color:var(--c)}
.lesson .dot{flex:none;width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:.8rem;font-weight:700;color:var(--on-blue)}
.lesson.done .dot{background:var(--ok);border-color:var(--ok)}
.lesson .t{flex:1;min-width:0}
.lesson .d{font-size:.85rem;color:var(--ink-2)}
.lesson.locked{opacity:.6}
.lesson-text{max-width:none}
.task{margin-top:1.25rem;background:var(--soft);border-radius:14px;padding:1.1rem 1.3rem}
.task strong{display:block;font-family:var(--head);font-size:1.05rem;margin-bottom:.3rem}
.filecard{margin-top:1.25rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.vis{display:flex;gap:.9rem;flex-wrap:wrap;font-size:.9rem}
.vis label{display:flex;align-items:center;gap:.4rem;font-weight:400;margin:0}
.admin-groups{display:grid;gap:1.75rem}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Lektionsvideo (Zwei-Klick-Player) */
.media{aspect-ratio:16/9;max-width:100%;border-radius:14px;background:linear-gradient(135deg,var(--soft,#E2F2EF),var(--card));border:1px solid var(--line);display:grid;place-items:center;text-align:center;color:var(--ink-2);margin:20px 0;overflow:hidden;padding:12px}
.media .hint{max-width:46ch;margin:10px auto 0}
.play{width:68px;height:68px;border-radius:50%;background:var(--c,var(--s1));border:0;display:grid;place-items:center;margin:0 auto;cursor:pointer}
.play::before{content:"";border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:5px}
.play:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.vframe{width:100%;height:100%;border:0;border-radius:12px}
.media:has(.vframe){padding:0;display:block}

.mv{display:flex;gap:.25rem;margin:0}.mv .btn{padding:.2rem .55rem}.lrow{display:flex;gap:.5rem;align-items:flex-start;margin-top:.75rem}.lrow>details{flex:1;min-width:0}.lrow>.mv{flex-direction:column}
.media.own{display:block;padding:0;background:#000}.media.own video{display:block;width:100%;aspect-ratio:16/9;background:#000;border-radius:inherit}
.vprev{max-width:460px;margin:.5rem 0 1rem}.vprev video{display:block;width:100%;aspect-ratio:16/9;background:#000;border-radius:10px}
.checks table{table-layout:fixed;width:100%}.checks th:nth-child(1){width:30%}.checks th:nth-child(2){width:34%}.checks td{vertical-align:top;overflow-wrap:anywhere}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.chip{display:inline-block;padding:.35rem .9rem;border-radius:999px;border:1.5px solid var(--line);text-decoration:none;color:var(--ink-2);font-size:.9rem}.chip.on{background:var(--ink);color:var(--card);border-color:var(--ink)}.catname{margin:1.2rem 0 .5rem;font-size:1.05rem}
.catrow{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.5rem 0}.catform{display:flex;flex-wrap:wrap;gap:.4rem;flex:1;min-width:0;margin:0}.catform input{min-width:0}.catform .ico{width:3.5rem;text-align:center}.catform input[name=descr]{flex:1 1 14rem}.catdesc{margin:-.3rem 0 .6rem;color:var(--ink-2)}mark{background:#FFE9A8;color:inherit;border-radius:3px;padding:0 .1em}.results li{margin:.9rem 0}.results .hint{display:block}.searchbox{display:flex;gap:.5rem;margin:1rem 0}.searchbox input{flex:1;min-width:0}
.catform input{width:auto;margin:0}.catform .ico{flex:0 0 3.5rem;width:3.5rem}.catform input[name=name]{flex:1 1 11rem}.catform input[name=descr]{flex:2 1 16rem}.catform .btn{margin:0}.catrow{padding:.5rem 0;border-top:1px solid var(--line)}.catrow:first-of-type{border-top:0}

.mailprev{white-space:pre-wrap;background:var(--mist);border:1px solid var(--line);border-radius:10px;padding:1rem;font:inherit}fieldset.vis{border:1px solid var(--line);border-radius:10px;margin:1rem 0;padding:.8rem 1rem}fieldset.vis label{display:block;margin:.3rem 0}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin-top:.5rem}
.tilechk{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;font-size:.9rem}.tilechk input{width:auto;margin:0}
.lg{min-width:0}.lg-head{display:flex;flex-wrap:wrap;gap:.5rem 1rem;justify-content:space-between;align-items:flex-start}.lg-lang select{width:auto;min-width:9rem}.lg-top{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem}
.lg-list{list-style:none;margin:0;padding:0}.lg-list li{border-top:1px solid var(--line)}.lg-list li:first-child{border-top:0}.lg-list a{display:flex;align-items:center;gap:.8rem;min-height:3rem;padding:.4rem .2rem;color:var(--ink);text-decoration:none}.lg-list a:hover{background:var(--mist)}
.lg-nr{flex:0 0 1.9rem;height:1.9rem;border-radius:50%;border:2px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--ink-2);background:var(--card)}.lg-nr.ok{background:var(--ok);border-color:var(--ok);color:var(--on-blue)}
.lg-text{font-size:1.02rem;overflow-wrap:anywhere;max-width:70ch}.lg-text h3{font-size:1.15rem;margin:1.4em 0 .4em}.lg-text h4{font-size:1.02rem;margin:1.2em 0 .3em}.lg-text p{margin:0 0 .9em}.lg-text ul,.lg-text ol{margin:0 0 .9em;padding-left:1.4em}.lg-text li{margin:.2em 0}
.lg-text blockquote{margin:0 0 .9em;padding:.7rem 1rem;border-left:4px solid var(--blue);background:var(--mist);border-radius:0 10px 10px 0}.lg-text blockquote>:last-child{margin-bottom:0}
.lg-text table{display:block;overflow-x:auto;border-collapse:collapse;max-width:100%}.lg-text th,.lg-text td{border:1px solid var(--line);padding:.4rem .7rem;text-align:left;vertical-align:top}.lg-text th{background:var(--mist)}
.lg-navi{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:space-between;margin-top:1.2rem}

/* Usability v1.15.1: Tablet/Mobil – Tabellen in Texten, Tipp-Flächen ≥ 44px, Navigation */
.lg-text table{min-width:0;width:max-content;max-width:100%}
.lg-text img,.lg-text video{max-width:100%;height:auto}
.mainnav{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;}
.mainnav a{scroll-snap-align:start}
@media (max-width:1024px),(pointer:coarse){
  .mainnav a,.me a,.crumb a{display:inline-flex;align-items:center;min-height:44px}
  .me .link,.me button{min-height:44px;padding-inline:.4rem}
  .btn.sm{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .link{min-height:44px;padding-inline:.3rem}
  input[type=file]{min-height:44px;padding:.5rem 0}
  .topbar nav a,.foot a,footer a{display:inline-flex;align-items:center;min-height:44px}
  .lg-list a{min-height:3.25rem}
}
@media (max-width:720px){
  .appbar .bar{gap:.25rem 1rem}
  .app{padding-block:1.25rem 2.5rem}
  .tablewrap{margin-inline:-4px}
}
@media (max-width:1024px),(pointer:coarse){
  .chip{display:inline-flex;align-items:center;min-height:44px}
  summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
  .app p>a:only-child,.card p>a:only-child,.wrap main p>a:only-child{display:inline-flex;align-items:center;min-height:44px}
  form p a,.auth a,.card .hint a{display:inline-flex;align-items:center;min-height:44px}
}

/* v1.16: Tab-Leiste am Handy, Mitgliederliste als Karten, Export-Leiste */
.tabbar{display:none}
.exportbar{margin-top:-.25rem}.exportbar .hint{flex-basis:100%;color:var(--ink-2)}
@media (max-width:720px){
  .mainnav{display:none}
  body:has(.tabbar){padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--card);border-top:1px solid var(--line);padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
  .tabbar>a,.tabbar summary{flex:1 1 0;min-width:0;min-height:56px;display:flex;align-items:center;justify-content:center;text-align:center;padding:.25rem .2rem;font-size:.78rem;font-weight:600;color:var(--ink-2);text-decoration:none;list-style:none;cursor:pointer}
  .tabbar summary::-webkit-details-marker{display:none}
  .tabbar a[aria-current="page"],.tabbar summary.cur{color:var(--ink);box-shadow:inset 0 3px 0 var(--blue)}
  .tabbar .more{flex:1 1 0;position:relative;min-width:0}
  .tabbar .morelist{position:absolute;right:8px;bottom:62px;min-width:190px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 28px rgba(0,0,0,.18);padding:.3rem;display:flex;flex-direction:column}
  .tabbar .morelist a{display:flex;align-items:center;min-height:48px;padding:0 .9rem;border-radius:10px;color:var(--ink);font-weight:600;text-decoration:none}
  .tabbar .morelist a[aria-current="page"]{background:var(--bg)}
  .foot{padding-bottom:1rem}
  /* Mitgliederliste als Karten */
  .cards{background:none;border:0;overflow:visible}
  .cards table{min-width:0;display:block}.cards thead{display:none}.cards tbody{display:flex;flex-direction:column;gap:.75rem}
  .cards tr{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.4rem .9rem}
  .cards td{display:flex;justify-content:space-between;gap:1rem;align-items:center;border:0;padding:.4rem 0;text-align:right}
  .cards td::before{content:attr(data-label);color:var(--ink-2);font-size:.85rem;text-align:left}
  .cards td.who{display:block;text-align:left;padding:.5rem 0;border-bottom:1px solid var(--line);margin-bottom:.2rem}.cards td.who::before{content:none}
}

/* Leitfaden-Tabellen: letzte Zeile behält ihren Rand, Abstand nach unten */
.lg-text table{margin:0 0 1.1em}.lg-text tr:last-child td{border-bottom:1px solid var(--line)}
.editbox{margin:1rem 0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.2rem 1rem 1rem}.editbox summary{font-weight:600}
.cards td small.hint{display:block}
.smtptrace{background:var(--mist);border:1px solid var(--line);border-radius:10px;padding:.8rem;overflow-x:auto;font-size:.82rem;white-space:pre-wrap;overflow-wrap:anywhere}

/* v1.17.2: Feinschliff Kurse/Leitfaden */
.lg-top{justify-content:flex-start;max-width:70ch}.lg-top .lg-lang{margin-left:auto}.lg-lang select{padding:.4rem 2rem .4rem .7rem;min-height:40px;font-size:.92rem}
.lg>.pill{margin-top:.6rem}.lg h1{margin-top:.3rem}
.lg-navi,.lg .actions{max-width:70ch}
.chip:hover{border-color:var(--ink-2);color:var(--ink)}.chip.on:hover{color:var(--card)}

/* Kopfzeile: auch bei vielen Menüpunkten in einer Zeile */
@media (min-width:721px){
  .appbar .bar{flex-wrap:nowrap}
  .mainnav{flex:1 1 auto;min-width:0;justify-content:flex-end;margin-left:0}
  .mainnav a{padding:.5rem .6rem}
  .me{flex:none}
}
@media (min-width:721px) and (max-width:1000px){.me .who-name{display:none}.mainnav a{font-size:.92rem;padding:.5rem .5rem}}
.empty{padding:1rem 0;text-align:left}.tablewrap .empty,.cards+.empty{text-align:center}
.lg-lang{flex:none;margin:0;display:block;width:auto}.lg-top{flex-wrap:nowrap;align-items:center}.lg-top .hint{white-space:nowrap}
.searchbox{display:flex;gap:.5rem;align-items:stretch;margin:1rem 0}.searchbox input{flex:1 1 auto;min-width:0}

/* Profil bearbeiten (Admin) */
.editbox summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .8rem;padding:.8rem 0;min-height:44px;cursor:pointer}.editbox summary .hint{font-weight:400;font-size:.88rem;color:var(--ink-2)}
.editform{display:flex;flex-direction:column;gap:.9rem;padding-top:.4rem;border-top:1px solid var(--line)}
.editform .grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem}
.editform .field{margin:0}.editform .field label{display:block;margin-bottom:.3rem;font-size:.9rem;font-weight:600}
.editform .hint{margin:0;color:var(--ink-2);font-size:.9rem}
.editactions{display:flex;flex-wrap:wrap;gap:.6rem}
@media (max-width:640px){.editform .grid2{grid-template-columns:1fr}.editactions .btn{flex:1 1 100%}}

/* WhatsApp */
.panelbox{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;margin:0 0 1rem}
.wa-channel{display:flex;flex-wrap:wrap;gap:.8rem 1.5rem;align-items:center;justify-content:space-between}.wa-channel h2{margin:0 0 .2rem;font-size:1.1rem}.wa-channel p{margin:0}
.wa-panel h2{margin-top:0}
a.btn.wa::before{content:"";display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:#25d366;margin-right:.5rem}
.wa-panel{margin:1.2rem 0 1.5rem}.panelbox.panel{margin-bottom:1.5rem}.panelbox .grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem}.panelbox .field{margin:0 0 .9rem}.panelbox .field label{display:block;margin-bottom:.3rem;font-weight:600;font-size:.9rem}
@media (max-width:640px){.panelbox .grid2{grid-template-columns:1fr}}

/* v1.18.1: Leitfaden – Übersicht und Kapitel in derselben Spaltenbreite */
.lg{max-width:860px}
.lg-text,.lg-top,.lg-navi,.lg .actions{max-width:none}
/* Sprachwahl für die ganze Plattform */
.langsw{margin:0;display:inline-block;flex:none}
.langsw select{width:auto;min-width:7.5rem;padding:.35rem 1.8rem .35rem .6rem;min-height:36px;font-size:.88rem}
.langsw.pub{position:absolute;top:.8rem;right:max(16px,env(safe-area-inset-right,0px))}
@media (max-width:720px){.langsw select{min-width:6.5rem}}
.lg{max-width:860px}.lg-text,.lg-top,.lg-navi,.lg .actions{max-width:none}
/* Kopfzeile in zwei Reihen: oben Marke, Sprache und Konto, darunter das Menü. Bleibt in jeder Sprache vollständig sichtbar. */
@media (min-width:721px){
  .appbar .bar{flex-wrap:wrap;row-gap:0;align-items:center;min-height:0;padding-block:0}
  .appbar .brand{order:1}
  .appbar .me{order:2;margin-left:auto;padding:.4rem 0}
  .appbar .brand{padding:.4rem 0}
  .appbar .mainnav{order:3;flex:0 0 100%;width:100%;justify-content:flex-start;gap:.15rem;overflow:visible;flex-wrap:wrap;border-top:1px solid var(--line,#e3e5ee);padding:.25rem 0 .35rem;margin:0}
  .appbar .mainnav a{padding:.45rem .8rem;font-size:.96rem}
}
@media (min-width:721px) and (max-width:1000px){.me .who-name{display:inline-block}}

/* Code One Academy (Verwaltung) */
.keybox{background:var(--mist);border:1px solid var(--line);border-radius:10px;padding:12px 14px;overflow-x:auto;font-size:.95rem;user-select:all}
.chk{display:inline-flex;gap:6px;align-items:center;margin-right:14px}
.flush{margin:0}
.liste{margin:8px 0 0;padding-left:20px}
details.box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-top:14px}
details.box summary{font-weight:700;cursor:pointer}
.badge{display:inline-block;min-width:1.5em;padding:.02rem .45rem;border-radius:99px;background:var(--blue);color:var(--on-blue,#fff);font-size:.74rem;font-weight:700;text-align:center;line-height:1.5;vertical-align:middle}
.section.first{margin-top:1.4rem}
.tile.wichtig{border-color:var(--blue);box-shadow:inset 0 3px 0 var(--blue)}
.kmark{display:inline-block;margin-left:.5rem;padding:.05rem .55rem;border-radius:99px;font-size:.72rem;font-weight:700;letter-spacing:.02em;vertical-align:middle;background:var(--soft);color:var(--ink)}
.kmark.wichtig{background:var(--blue);color:var(--on-blue,#fff)}
.kmark.neu{background:var(--ok);color:#fff}
.ksym{font-size:1.15em;margin-right:.15rem}
.tile .bar,.tile progress{margin-top:.6rem}
