/* Coach-Board — Design-Referenz: Mockup Runde 4 (Soft CRM 2.0) */
:root{
  --bg:#EFF3F9; --surface:#FFFFFF; --surface2:#F6F8FC; --line:#E2E8F2; --line2:#CDD8E8;
  --ink:#1D2A3B; --muted:#5C6B81; --faint:#92A0B6;
  --accent:#2E6BE6; --accent-ink:#fff; --accent-soft:#E7EEFC;
  --seg1:#E8EEF7; --seg2:#9DBCF3; --seg3:#1D4FB8;
  --ok:#188055; --ok-bg:#E2F5EC; --yel:#F2C200; --yel-bg:#FFF7D6; --yel-ink:#7A6200;
  --err:#C4372B; --err-bg:#FBE7E4; --info:#6A48C9; --info-bg:#EEE9FB; --grp:#7A3FA0; --grp-bg:#F2E7F9;
  --coach:#1D2A3B; --beob:#7A7C33; --teamer:#2E8CA3;
  --r:14px; --r-sm:10px; --shadow:0 2px 10px rgba(30,42,58,.07);
  --fd:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --wd:760; --fs:14.5px; --pad:20px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--fd);font-size:var(--fs);line-height:1.5;-webkit-font-smoothing:antialiased}
button{font-family:inherit}

/* ---------- Login ---------- */
.loginwrap{min-height:100vh;display:grid;place-items:center;padding:20px}
.loginbox{background:var(--surface);border-radius:20px;box-shadow:0 10px 50px rgba(30,42,58,.14);padding:38px 36px;width:400px;max-width:94vw}
.loginbox img{height:30px;margin-bottom:18px;display:block}
.loginbox h1{font-weight:var(--wd);font-size:21px;margin-bottom:4px}
.loginbox p{color:var(--muted);font-size:13px;margin-bottom:20px}
.loginbox label{display:block;font-size:11px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);margin:12px 0 5px}
.loginbox input{width:100%;padding:12px 14px;border:1.5px solid var(--line2);border-radius:10px;font-size:15px;font-family:inherit;color:var(--ink)}
.loginbox input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.loginbox .err{color:var(--err);font-size:12.5px;font-weight:700;margin-top:10px;display:none}
.loginbox .err.on{display:block}
.loginbox button{margin-top:20px;width:100%;background:var(--accent);color:#fff;border:0;border-radius:99px;padding:13px;font-size:15px;font-weight:800;cursor:pointer}
.loginbox .demo{margin-top:14px;font-size:11.5px;color:var(--faint);text-align:center}

/* ---------- App-Rahmen ---------- */
.app{display:grid;grid-template-columns:226px 1fr;min-height:100vh;position:relative}
@media(max-width:980px){.app{grid-template-columns:1fr}}
.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh}
@media(max-width:980px){.sidebar{position:static;height:auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);align-items:center}}
.logo{display:flex;align-items:center;gap:10px;padding:4px 10px 18px}
.logo img{height:22px;display:block}
.logo .sub{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--faint);text-transform:uppercase}
.logo .yr{margin-left:auto;font-size:10px;font-weight:700;color:var(--faint);border:1px solid var(--line);border-radius:99px;padding:2px 8px}
.nav{display:flex;flex-direction:column;gap:2px}
@media(max-width:980px){.nav{flex-direction:row}}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:var(--r-sm);color:var(--muted);font-weight:650;font-size:13.5px;white-space:nowrap;cursor:pointer;text-decoration:none}
.nav a svg{width:16px;height:16px;flex:none;opacity:.72}
.nav a:hover{background:var(--surface2);color:var(--ink)}
.nav a.on{background:var(--accent-soft);color:var(--accent)} .nav a.on svg{opacity:1}
.nav .cnt{margin-left:auto;font-size:10.5px;font-weight:800;background:var(--err);color:#fff;border-radius:99px;padding:1px 7px}
.nav .cnt.y{background:var(--yel);color:var(--yel-ink)}
.nav .cnt:empty{display:none}
.sidefoot{margin-top:auto;padding:10px;font-size:11.5px;color:var(--faint);display:grid;gap:4px}
.sidefoot .row{display:flex;gap:8px;align-items:center}
.sidefoot .sync{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
.sidefoot .sync.warn{background:var(--yel)} .sidefoot .sync.off{background:var(--faint)}
@media(max-width:980px){.sidefoot{display:none}}
.main{display:flex;flex-direction:column;min-width:0}
.topbar{display:flex;align-items:center;gap:16px;padding:15px var(--pad);border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:20}
.topbar h1{font-weight:var(--wd);font-size:19px;letter-spacing:-.01em}
.search{margin-left:auto;display:flex;gap:8px;align-items:center;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);padding:7px 12px;min-width:230px}
.search input{border:0;outline:0;background:transparent;font-family:inherit;font-size:12.5px;color:var(--ink);width:100%}
.user{display:flex;gap:8px;align-items:center;font-size:12.5px;font-weight:700;cursor:pointer}
.user .av{width:29px;height:29px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}
.content{padding:var(--pad);display:grid;gap:var(--pad);align-content:start;width:100%}
.screen{display:none}.screen.on{display:grid;gap:var(--pad)}
.demobanner{background:var(--yel-bg);border:1px solid var(--yel);border-radius:var(--r-sm);padding:10px 15px;font-size:13px;font-weight:650;color:var(--yel-ink)}

/* ---------- Bausteine ---------- */
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}
@media(max-width:1200px){.kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.kpis{grid-template-columns:repeat(2,1fr)}}
.kpi{background:var(--surface);border-radius:var(--r);padding:15px 17px;box-shadow:var(--shadow);cursor:pointer}
.kpi .l{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.kpi .v{font-weight:var(--wd);font-size:28px;letter-spacing:-.02em;margin-top:2px;font-variant-numeric:tabular-nums}
.kpi .v small{font-size:14px;color:var(--faint);font-weight:600}
.kpi .s{font-size:12px;color:var(--muted)}
.kpi .s.up{color:var(--ok)} .kpi .s.yc{color:var(--yel-ink)} .kpi .s.ec{color:var(--err)}
.card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.card .hd{display:flex;align-items:center;gap:10px;padding:14px 17px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.card .hd h2{font-weight:var(--wd);font-size:15px}
.card .hd .hint{margin-left:auto;font-size:12px;color:var(--faint)}
.card .bd{padding:15px 17px}
.frow{display:grid;grid-template-columns:180px 1fr;gap:6px 16px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--line)}
.frow:last-of-type{border-bottom:0}
.frow .sl{font-size:13px;font-weight:750;white-space:nowrap;grid-row:span 2}
.frow .sl small{display:block;font-weight:500;color:var(--faint);font-size:11px}
.bar{display:flex;height:22px;border-radius:7px;overflow:hidden;background:var(--surface2);border:1px solid var(--line);position:relative}
.bar>i{height:100%}
.bar .s3{background:var(--seg3)} .bar .s2{background:var(--seg2)} .bar .s1{background:var(--seg1)}
.bar .cap{position:absolute;top:-4px;bottom:-4px;width:2.5px;background:var(--err);opacity:.85;border-radius:2px}
.frow .nums{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.frow .nums b{color:var(--seg3)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding-top:12px}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.todos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:1100px){.todos{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.todos{grid-template-columns:1fr}}
.todo{display:flex;align-items:center;gap:13px;background:var(--surface);border-left:5px solid var(--line2);border-radius:var(--r-sm);padding:13px 15px;cursor:pointer;box-shadow:var(--shadow);transition:.1s}
.todo:hover{transform:translateX(2px)}
.todo .n{font-weight:var(--wd);font-size:21px;min-width:26px;text-align:center;font-variant-numeric:tabular-nums}
.todo .tx b{display:block;font-size:13.5px}
.todo .tx span{font-size:12px;color:var(--muted)}
.todo .go{margin-left:auto;color:var(--faint);font-weight:800}
.todo.acc{border-left-color:var(--accent)} .todo.red{border-left-color:var(--err)}
.todo.yel{border-left-color:var(--yel);background:var(--yel-bg)} .todo.vio{border-left-color:var(--grp)} .todo.blu{border-left-color:var(--info)}
.chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:7px 14px;font-size:12.5px;font-weight:650;color:var(--muted);cursor:pointer}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.chip .c{opacity:.65;font-variant-numeric:tabular-nums}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:750;text-align:left;padding:10px 13px;border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer}
td{padding:10px 13px;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:0}
tbody tr{cursor:pointer} tbody tr:hover{background:var(--surface2)}
.tblwrap{overflow-x:auto}
.tfoot{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;border-top:1px solid var(--line);font-size:12px;color:var(--faint)}
.pill{display:inline-block;font-size:11px;font-weight:750;border-radius:99px;padding:3.5px 10px;white-space:nowrap}
.pill.ok{background:var(--ok-bg);color:var(--ok)} .pill.acc{background:var(--accent);color:#fff}
.pill.mut{background:var(--surface2);color:var(--muted);border:1px solid var(--line)}
.pill.yel{background:var(--yel-bg);color:var(--yel-ink);border:1px solid var(--yel)}
.pill.err{background:var(--err-bg);color:var(--err)} .pill.info{background:var(--info-bg);color:var(--info)} .pill.grp{background:var(--grp-bg);color:var(--grp)}
.age{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;border-radius:5px;padding:2px 7px;margin-left:6px}
.age.warn{background:var(--yel-bg);color:var(--yel-ink);border:1px solid var(--yel)}
.age.hot{background:var(--err-bg);color:var(--err)}
.kw{display:inline-block;font-size:11px;font-weight:650;background:var(--surface2);border:1px solid var(--line);border-radius:5px;padding:2px 8px;color:var(--muted);margin-right:4px}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%}
.dot.g{background:var(--ok)} .dot.y{background:var(--yel)} .dot.r{background:var(--err)}
.mutx{color:var(--faint)}
.btn{border:1.5px solid var(--accent);background:var(--surface);color:var(--accent);border-radius:99px;padding:9px 14px;font-size:12.5px;font-weight:750;cursor:pointer;text-align:center}
.btn.pri{background:var(--accent);color:#fff}
.btn.ghost{border-color:var(--line);color:var(--muted)}
.btn.dngr{border-color:var(--err);color:var(--err);background:var(--surface)}
.btn.big{padding:12px 18px;font-size:14px}
.btn.sm{padding:5px 11px;font-size:11.5px}
.btn:disabled{opacity:.5;cursor:default}

/* ---------- Profil-Overlay ---------- */
.scrim{position:fixed;inset:0;background:rgba(20,26,36,.35);z-index:60;display:none}
.scrim.on{display:block}
.prof{position:fixed;top:0;right:0;bottom:0;width:600px;max-width:96%;background:var(--surface);box-shadow:-24px 0 60px rgba(0,0,0,.22);z-index:70;display:none;overflow:auto;padding:26px}
.prof.on{display:block}
.prof .close{position:absolute;top:16px;right:16px;border:1px solid var(--line);background:var(--surface2);border-radius:9px;width:32px;height:32px;cursor:pointer;font-weight:800;color:var(--muted);font-size:14px}
.prof .who{display:flex;gap:14px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:16px}
.prof .who .av{width:54px;height:54px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px;flex:none}
.prof .who b{font-weight:var(--wd);font-size:19px;display:block;letter-spacing:-.01em}
.prof .who small{color:var(--faint);font-size:12px}
.prof .who .pill{margin-left:auto}
.prow2{display:flex;gap:11px;align-items:center;padding:7px 0;font-size:14px}
.prow2 .ic{width:30px;height:30px;border-radius:9px;background:var(--surface2);border:1px solid var(--line);display:grid;place-items:center;font-size:13px;flex:none}
.prow2 a{color:var(--ink);font-weight:700;text-decoration:none}
.prow2 a:hover{text-decoration:underline;color:var(--accent)}
.prof h4{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:16px 0 8px}
.prof .box{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font-size:13.5px;line-height:1.6}
.prof select,.prof textarea,.prof input[type=text]{width:100%;padding:12px 14px;border:1.5px solid var(--line2);border-radius:var(--r-sm);font-size:14px;background:var(--surface);color:var(--ink);font-family:inherit;font-weight:500}
.prof textarea{min-height:70px;resize:vertical}
.klaer{border:1.5px solid var(--yel);background:var(--yel-bg);border-radius:var(--r-sm);padding:13px 15px;font-size:13px;line-height:1.55}
.klaer.rot{border-color:var(--err);background:var(--err-bg)}
.klaer b{display:block;margin-bottom:3px}
.hist{border-left:2px solid var(--line);margin-left:5px;padding-left:15px;display:grid;gap:10px}
.hist .h{position:relative;font-size:13px;color:var(--muted)}
.hist .h::before{content:"";position:absolute;left:-19.5px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--line2)}
.hist .h b{color:var(--ink)} .hist .h.hot::before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.pacts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}
.pacts .wide{grid-column:1/-1}
.savedmsg{display:none;margin-top:8px;font-size:12.5px;color:var(--ok);font-weight:700}
.savedmsg.on{display:block}

/* ---------- Gruppen ---------- */
.gcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(560px,1fr));gap:14px}
.gc .ghead{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line)}
.gc .ghead b{font-weight:var(--wd);font-size:15px}
.gc .ghead .pill{margin-left:auto}
.member{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13px}
.member:last-of-type{border-bottom:0}
.member b{font-weight:700;cursor:pointer} .member b:hover{color:var(--accent);text-decoration:underline}
.member small{color:var(--faint);display:block;font-size:11px}
.mslots{display:flex;gap:4px}
.ms{font-size:10px;font-weight:800;border-radius:4px;padding:2px 6px;background:var(--surface2);border:1px solid var(--line);color:var(--faint);white-space:nowrap}
.ms.on{background:var(--accent);border-color:var(--accent);color:#fff}
.gfoot{display:flex;gap:8px;padding-top:11px;flex-wrap:wrap}
.schnitt{font-size:12.5px;padding:9px 12px;border-radius:var(--r-sm)}
.schnitt.ok{background:var(--ok-bg);color:var(--ok);font-weight:700}
.schnitt.bad{background:var(--err-bg);color:var(--err);font-weight:700}

/* ---------- Planung ---------- */
.ptabs{display:flex;gap:8px;flex-wrap:wrap}
.ptab{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:8px 15px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer}
.ptab.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.ppanel{display:none}.ppanel.on{display:grid;gap:var(--pad)}
.rtool{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.canvas{position:relative;height:460px;background:repeating-linear-gradient(0deg,transparent,transparent 21px,var(--line) 21px,var(--line) 22px),repeating-linear-gradient(90deg,transparent,transparent 21px,var(--line) 21px,var(--line) 22px);border-radius:var(--r-sm);border:1px solid var(--line);overflow:hidden;touch-action:none}
.cr{position:absolute;border:2px solid var(--line2);border-radius:9px;background:rgba(255,255,255,.75);font-size:11px;font-weight:800;color:var(--muted);user-select:none}
.cr.editing{cursor:move}
.cr.sel{border-color:var(--accent)}
.cr .rn{padding:6px 9px 2px;display:block;pointer-events:none}
.cr .rn small{font-weight:600;color:var(--faint)}
.cr.quiet{border-style:dashed}
.cr .rsz{position:absolute;right:-6px;bottom:-6px;width:16px;height:16px;border-radius:5px;background:var(--accent);cursor:nwse-resize;display:none}
.cr.sel .rsz{display:block}
.stpos{position:absolute;width:34px;height:34px;border-radius:8px;background:var(--surface);border:2px solid var(--accent);color:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:800;cursor:grab;box-shadow:var(--shadow);user-select:none}
.stpos.t{border-color:var(--teamer);color:var(--teamer)}
.rank{display:grid;gap:6px;max-width:620px}
.rk{display:flex;gap:10px;align-items:center;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 13px;font-size:13.5px;cursor:grab}
.rk.dragging{opacity:.4}
.rk .h{color:var(--faint);letter-spacing:2px;font-size:11px}
.rk .no{font-weight:800;font-variant-numeric:tabular-nums;width:24px;color:var(--faint)}
.rk b{font-weight:700}
.rk .lvl{margin-left:auto;font-size:10.5px;font-weight:800;border-radius:5px;padding:2px 8px;cursor:pointer}
.rk .lvl.a{background:var(--ok-bg);color:var(--ok)} .rk .lvl.b{background:var(--info-bg);color:var(--info)} .rk .lvl.c{background:var(--grp-bg);color:var(--grp)}
.never{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.nv{display:inline-flex;gap:7px;align-items:center;background:var(--err-bg);color:var(--err);border-radius:99px;padding:5px 12px;font-size:12px;font-weight:700}
.nv i{cursor:pointer;font-style:normal;opacity:.7}
.pairwrap{display:grid;gap:14px}
.paircards{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:10px}
.pc2{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 11px;box-shadow:var(--shadow)}
.pc2 .n{font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--faint);text-transform:uppercase;display:flex;justify-content:space-between;margin-bottom:7px}
.pers{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;border:1px solid var(--line);background:var(--surface2);border-radius:7px;padding:6px 9px;margin-top:5px;cursor:pointer}
.pers.sel{border-color:var(--accent);background:var(--accent-soft)}
.pers .lv{margin-left:auto;font-size:10px;font-weight:800;border-radius:4px;padding:1px 6px}
.pers .lv.a{background:var(--ok-bg);color:var(--ok)}.pers .lv.b{background:var(--info-bg);color:var(--info)}.pers .lv.c{background:var(--grp-bg);color:var(--grp)}
.pc2.coll{border-color:var(--err);box-shadow:0 0 0 3px var(--err-bg)}
.collmsg{font-size:11.5px;color:var(--err);font-weight:700;margin-top:7px}

/* ---------- Live-Board ---------- */
.boardbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.slot-t{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:7px 13px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap}
.slot-t.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.slot-t.locked{opacity:.55}
.slot-t .warnb{color:var(--err);font-weight:900;margin-left:4px}
.rundesw{margin-left:auto;display:flex;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:5px}
.rundesw span{padding:8px 20px;font-size:13px;font-weight:800;color:var(--muted);cursor:pointer;border-radius:8px}
.rundesw span.on{background:var(--accent);color:#fff;box-shadow:var(--shadow)}
.planstat{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:12px 16px;font-size:13px}
.planstat .st1{font-weight:800;color:var(--ok)}
.planstat .st0{font-weight:800;color:var(--muted)}
.planstat .upd{background:var(--info-bg);color:var(--info);font-weight:750;border-radius:99px;padding:3px 11px;font-size:11.5px}
.checkstat{font-size:12.5px;color:var(--muted)} .checkstat b{color:var(--ink);font-variant-numeric:tabular-nums}
.rooms{display:grid;grid-template-columns:1fr;gap:14px}
.room{border:1.5px dashed var(--line2);border-radius:var(--r);padding:12px;background:rgba(255,255,255,.45)}
.room h3{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 2px 10px;display:flex;justify-content:space-between;gap:8px}
.room h3 small{font-weight:600;letter-spacing:0;text-transform:none;color:var(--faint)}
.stations{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:10px}
@media(max-width:640px){.stations{grid-template-columns:1fr}}
.st{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 11px;box-shadow:var(--shadow)}
.st .n{font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--faint);text-transform:uppercase;display:flex;justify-content:space-between;margin-bottom:8px}
.st.warned{border-color:var(--err);box-shadow:0 0 0 3px var(--err-bg)}
.mag{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:650;border-radius:7px;padding:5px 8px;margin-top:5px;border:1px solid var(--line);background:var(--surface);cursor:pointer}
.mag:hover{border-color:var(--accent)}
.mag .rl{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:9.5px;font-weight:900;flex:none}
.mag.coach{background:#E9EDF5;border-color:#C6D0DF}
.mag.coach .rl{background:var(--coach);color:#fff}
.mag.beob{background:#F3F5E4;border-color:#CFD3A6}
.mag.beob .rl{background:var(--beob);color:#fff}
.mag.coachee .rl{background:var(--surface);border:1.5px solid var(--line2);color:var(--muted)}
.mag.tmr{background:#E3F1F5;border-color:#A9D0DC}
.mag.tmr .rl{background:var(--teamer);color:#fff}
.mag .okk{margin-left:auto;color:var(--ok);font-weight:900;font-size:12.5px}
.mag .no{margin-left:auto;color:var(--faint);font-weight:700;font-size:10.5px}
.mag .nsx{margin-left:auto;color:var(--err);font-weight:900;font-size:12px}
.mag.conflict{border-color:var(--err);background:var(--err-bg)}
.warnwrap{border:1.5px solid #E7B5AE;border-radius:var(--r);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}
.warnbar{display:flex;gap:10px;align-items:center;background:var(--err-bg);padding:11px 14px;font-size:13px}
.warnbar b{color:var(--err)}
.staging{display:flex;gap:9px;align-items:center;flex-wrap:wrap;border:1.5px dashed var(--line2);border-radius:var(--r);padding:11px 13px;font-size:12.5px;color:var(--muted);background:rgba(255,255,255,.4)}
.stagechip{display:inline-flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line2);border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:650;cursor:pointer}
.stagechip .b{font-size:9.5px;font-weight:800;color:var(--yel-ink);background:var(--yel-bg);border:1px solid var(--yel);border-radius:4px;padding:1px 6px}
.boardlegend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-left:auto;align-items:center}
.boardlegend .rl{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:4px;font-size:8.5px;font-weight:900;margin-right:4px;vertical-align:-3px}

/* ---------- Check-in ---------- */
.ci-wrap{max-width:1180px;width:100%;display:grid;gap:14px}
.ci-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.ci-head .big{font-weight:var(--wd);font-size:22px}
.ci-grid{display:grid;grid-template-columns:1fr 290px;gap:16px;align-items:start}
@media(max-width:950px){.ci-grid{grid-template-columns:1fr}}
.ci-side{display:grid;gap:14px}
.ci-search{display:flex;gap:10px;align-items:center;background:var(--surface);border:2px solid var(--accent);border-radius:16px;padding:14px 18px;box-shadow:var(--shadow)}
.ci-search input{border:0;outline:0;flex:1;font-size:19px;font-weight:650;font-family:inherit;color:var(--ink);background:transparent}
.ci-list{display:grid;gap:10px}
.ci{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:13px 16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.ci .av{width:42px;height:42px;border-radius:50%;background:var(--surface2);border:1px solid var(--line);display:grid;place-items:center;font-weight:800;font-size:14px;color:var(--muted);flex:none;cursor:pointer}
.ci .nm{cursor:pointer}
.ci .nm b{font-size:16px;display:block}
.ci .nm small{color:var(--faint);font-size:12px}
.ci .stinfo{display:flex;gap:8px;flex-wrap:wrap;font-size:12px}
.ci .stx{background:var(--surface2);border:1px solid var(--line);border-radius:7px;padding:4px 10px;font-weight:700}
.ci .stx.chg{background:var(--info-bg);border-color:var(--info);color:var(--info)}
.ci .doit{margin-left:auto;display:flex;gap:8px;align-items:center}
.ci.done{outline:2px solid var(--ok);outline-offset:-2px}
.ci.noshow{outline:2px solid var(--err);outline-offset:-2px}
.ci .undo{border:1px solid var(--line);background:var(--surface2);border-radius:9px;padding:7px 11px;font-size:11.5px;font-weight:700;color:var(--muted);cursor:pointer}
.stateb{font-weight:800;font-size:13.5px}.stateb.okc{color:var(--ok)}.stateb.nsc{color:var(--err)}

/* ---------- Einstellungen ---------- */
.setgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;align-items:start}
.kv{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px}
.kv:last-child{border-bottom:0}
.kv b{font-variant-numeric:tabular-nums;text-align:right}
.tag{font-size:10.5px;font-weight:800;border-radius:5px;padding:2px 8px;background:var(--ok-bg);color:var(--ok)}
.tag.warn{background:var(--yel-bg);color:var(--yel-ink)}
.tag.err{background:var(--err-bg);color:var(--err)}

/* ---------- Toast & Popup ---------- */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:12px;padding:12px 20px;font-size:13.5px;font-weight:650;box-shadow:0 10px 30px rgba(0,0,0,.3);z-index:200;display:none}
.toast.on{display:block}
.pop{position:fixed;z-index:150;background:var(--surface);border-radius:12px;box-shadow:0 14px 50px rgba(0,0,0,.25);border:1px solid var(--line);max-height:340px;overflow:auto;min-width:260px;display:none}
.pop.on{display:block}
.pop .pi{padding:9px 14px;font-size:13px;cursor:pointer;display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line)}
.pop .pi:last-child{border-bottom:0}
.pop .pi:hover{background:var(--accent-soft)}
.pop .pi small{color:var(--faint);margin-left:auto}
.pop .ph{padding:8px 14px;font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);background:var(--surface2);position:sticky;top:0}

/* ---------- v0.2: breites Profil, Kann-Chips, Kennt-Matching, Kommentare, Drag ---------- */
.prof{width:min(1000px,96vw);padding:30px 34px}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:4px 34px;align-items:start}
@media(max-width:800px){.pgrid{grid-template-columns:1fr}}
.pfull{grid-column:1/-1}
.terminbox{border-radius:var(--r-sm);padding:13px 16px;font-size:14px;margin-bottom:4px}
.terminbox b{font-size:16px}
.terminbox.ok{background:var(--ok-bg);border:1.5px solid #9ED4B8;color:var(--ok)}
.terminbox.wait{background:var(--info-bg);border:1.5px solid #C9BCEB;color:var(--info)}
.terminbox.none{background:var(--surface2);border:1.5px dashed var(--line2);color:var(--muted)}
.slotpick{display:flex;gap:7px;flex-wrap:wrap}
.sp{border:1.5px solid var(--line2);background:var(--surface);border-radius:9px;padding:8px 13px;font-size:13px;font-weight:750;color:var(--muted);cursor:pointer}
.sp.kann{border-color:var(--accent);color:var(--accent)}
.sp.on{background:var(--accent);border-color:var(--accent);color:#fff}
.sp.warn3{border-color:var(--yel);color:var(--yel-ink)}
.sp .tiny{display:block;font-size:9.5px;font-weight:700;opacity:.75}
.kannchips{display:flex;gap:6px;flex-wrap:wrap}
.kc{border:1.5px solid var(--line);background:var(--surface2);border-radius:8px;padding:6px 11px;font-size:12px;font-weight:750;color:var(--faint);cursor:pointer;user-select:none}
.kc.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.acqrow{display:flex;gap:9px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--line);font-size:13.5px;flex-wrap:wrap}
.acqrow:last-child{border-bottom:0}
.acqrow .st2{font-size:10.5px;font-weight:800;border-radius:5px;padding:2px 8px}
.acqrow .st2.conf{background:var(--ok-bg);color:var(--ok)}
.acqrow .st2.heur{background:var(--yel-bg);color:var(--yel-ink)}
.acqrow .mini{border:1px solid var(--line2);background:var(--surface);border-radius:7px;padding:4px 10px;font-size:11px;font-weight:750;cursor:pointer;color:var(--muted)}
.acqrow .mini.ok2{color:var(--ok);border-color:#9ED4B8}
.acqrow .mini.no2{color:var(--err);border-color:#E7B5AE}
.cmt{display:grid;gap:8px}
.cmt .c1{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;font-size:13px}
.cmt .c1 small{display:block;color:var(--faint);font-size:11px;margin-top:2px}
.cmtadd{display:flex;gap:8px}
.cmtadd input{flex:1;padding:11px 13px;border:1.5px solid var(--line2);border-radius:9px;font-size:13.5px;font-family:inherit}
.klaerdone{border:1.5px solid var(--line2);background:var(--surface2);border-radius:var(--r-sm);padding:11px 14px;font-size:12.5px;color:var(--muted)}
.klaerdone b{color:var(--ink)}
.searchclear{cursor:pointer;color:var(--faint);font-weight:800;padding:0 2px}
.stpos.sel{outline:3px solid var(--accent-soft);border-color:var(--info)}
.mag.dragover,.pers.dragover{outline:2.5px dashed var(--accent);outline-offset:2px}
.mag[draggable=true]{cursor:grab}
.csize{display:flex;gap:5px;margin-left:auto}
.csize .chip{padding:5px 10px;font-size:11px}
.tn-slotchips{display:flex;gap:5px;flex-wrap:wrap}
.tsc{border:1.5px solid var(--line);background:var(--surface2);border-radius:7px;padding:4px 9px;font-size:11px;font-weight:800;color:var(--faint);cursor:pointer;user-select:none}
.tsc.on{background:var(--ok-bg);border-color:#9ED4B8;color:var(--ok)}
.ruhigbtn{cursor:pointer;font-size:16px;opacity:.35}
.ruhigbtn.on{opacity:1}

/* v0.5: Overlay-Fix, 3 Ablage-Zonen, Flag */
.prof .who{padding-right:46px}
.prof .close{z-index:5}
.stages{display:grid;grid-template-columns:1.2fr 1.2fr .8fr;gap:12px}
@media(max-width:1000px){.stages{grid-template-columns:1fr}}
.stagezone{border:1.5px dashed var(--line2);border-radius:var(--r);padding:10px 12px;background:rgba(255,255,255,.4);min-height:64px}
.stagezone h5{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.stagezone .zc{display:flex;gap:8px;flex-wrap:wrap}
.stagezone.dragover{outline:2.5px dashed var(--accent);outline-offset:2px}
.flagbtns{display:flex;gap:8px;margin-top:8px}

/* v0.6: Ampel bis aufs Board, sortierbare Spalten */
.fdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:1px;box-shadow:0 0 0 2px rgba(255,255,255,.65)}
.fdot.fg{background:#E5A50A}
.fdot.fr{background:var(--err,#C0392B)}
.thsort{cursor:pointer;user-select:none;white-space:nowrap}
.thsort:hover{color:var(--accent)}

/* v0.7: Teamer überall im Petrol-Ton — egal ob als Coach, Beobachter oder 1:1-Coachee platziert */
.mag.astm{background:#E3F1F5;border-color:#A9D0DC}
.mag.astm .rl{background:var(--teamer);color:#fff;border:none}
.stagechip.tmchip{background:#E3F1F5;border-color:#A9D0DC;color:#1F5E70}

/* ===== v0.8: Planungs-Umbau — Rot/Gelb, Gesamtplan, Tooltip, Adjazenz ===== */
/* Gelbe Konflikt-Stufe (prüfen/abwägen) neben dem bestehenden Rot (lösen) */
.st.warned-y{border:1.5px solid var(--yel);box-shadow:0 0 0 3px var(--yel-bg)}
.mag.conflict-y{border-color:var(--yel);background:var(--yel-bg)}
.mag.mkm-rot{box-shadow:0 0 0 2px var(--err)}
.mag.mkm-gelb{box-shadow:0 0 0 2px var(--yel)}
.warnb.yel{background:var(--yel-bg);color:var(--yel-ink);border-color:var(--yel)}

/* Abwesenheits-Badge: ausgeschrieben, rot umrandet; Chip gesamt abgedimmt */
.abw{display:inline-block;border:1.5px solid var(--err);color:var(--err);background:var(--err-bg);border-radius:6px;padding:0 6px;font-size:10.5px;font-weight:800;margin-left:4px;white-space:nowrap}
.chipabw{opacity:.75;border-color:#E7B5AE !important}

/* Coach-Teams Gesamtplan: 6 Spalten, Teams untereinander, Parkzone je Slot */
.gpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;align-items:start}
.gpcol{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r);padding:8px;display:grid;gap:7px;align-content:start}
.gpcol.locked{opacity:.82;background:#F3F2EE}
.gph{font-size:12px;font-weight:800;letter-spacing:.04em;display:flex;align-items:center;gap:6px;padding:2px 2px 0}
.pc3{background:var(--surface);border:1.5px solid var(--line);border-radius:9px;padding:7px 8px;display:grid;gap:5px}
.pc3 .n{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.pc3 .pers{margin:0;padding:5px 7px;font-size:12px}
.pc3.coll{border-color:#E7B5AE}
.pc3.coll-late{border-color:var(--err);box-shadow:0 0 0 3px var(--err-bg)}
.pc3.coll-late .pers{font-weight:800;color:var(--err)}
.collmsg{font-size:10.5px}
.gppark{border-top:1px dashed var(--line2);padding-top:6px;display:flex;gap:5px;flex-wrap:wrap;align-items:center;font-size:11.5px}
.gpchip{background:var(--surface);border:1px solid var(--line2);border-radius:7px;padding:3px 7px;font-size:11px;font-weight:650}
.pers.free{border-style:dashed;color:var(--faint);cursor:pointer}
.pers.free:hover{border-color:var(--accent);color:var(--accent)}

/* Custom-Tooltip: klappt nach unten auf */
.tip{position:fixed;z-index:90;max-width:330px;background:var(--surface);border:1.5px solid var(--line2);border-radius:11px;box-shadow:0 14px 34px rgba(20,25,35,.16);padding:11px 13px;font-size:12.5px;line-height:1.5;display:none;pointer-events:none}
.tip.on{display:block}
.cinfo{display:grid;gap:7px}
.cinfo .crow{display:grid;grid-template-columns:74px 1fr;gap:8px;align-items:start}
.cinfo .crow>span{font-size:10.5px;font-weight:800;letter-spacing:.04em;color:var(--faint);padding-top:1px}
.cinfo .crow>div{max-height:130px;overflow:auto}
.pophead{padding:11px 13px;border-bottom:1.5px solid var(--line);background:var(--surface2);border-radius:11px 11px 0 0;font-size:12.5px;line-height:1.5}

/* Coaches-Tabelle: Zeilen-Drag am Handle */
.rk-handle{cursor:grab;color:var(--faint);font-size:15px;width:26px;text-align:center;user-select:none}
.rk-handle.off{opacity:.3;cursor:pointer}
tr.dragging{opacity:.45;background:var(--accent-soft)}

/* Raumplan: Nachbarschafts-Linien */
.adjsvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.adjline{stroke:var(--info,#4A79C9);stroke-width:1.6;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;opacity:.55}

/* Check-in: AUTO-Badge am automatisch gewählten Slot */
.autob{font-size:8.5px;font-weight:900;letter-spacing:.06em;background:var(--accent);color:#fff;border-radius:4px;padding:1px 4px;vertical-align:1px}

/* v0.9: Undo, Modus-Chips, Raumplan-Overlay, manuelle Kanten */
.adjline.man{stroke:#D97706;opacity:.85}
.modech{border:1px solid var(--line2);border-radius:99px;padding:2px 9px;font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--muted);cursor:pointer;text-transform:uppercase}
.modech.on{background:var(--accent-soft,#E8EEFB);border-color:var(--accent);color:var(--accent)}
.mapov{position:fixed;inset:0;z-index:85;display:none;background:rgba(20,25,35,.45);padding:4vh 4vw;align-items:center;justify-content:center}
.mapov.on{display:flex}
.mapcard{background:var(--bg);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.3);width:min(1150px,100%);max-height:92vh;overflow:auto}
.maphd{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--surface);border-bottom:1.5px solid var(--line);font-size:14px}
.mapclose{margin-left:auto;cursor:pointer;font-weight:800;padding:4px 11px;border-radius:8px;border:1.5px solid var(--line2)}
.mapov .stpos{cursor:pointer}
.mapov .stpos.empty{opacity:.45}
.st.blink{outline:3px solid var(--accent);outline-offset:3px}

/* v0.9b: Beziehungs-Highlight beim Hover (Gruppe/Kennt), vereinheitlichte Team-Stationen */
.mag.hl-grp,.stagechip.hl-grp{outline:2.5px solid #7C5CD6;outline-offset:1px}
.mag.hl-kennt,.stagechip.hl-kennt{outline:2.5px solid #D97706;outline-offset:1px}

/* Overflow-Sweep: nichts rutscht mehr rechts aus den Boxen — Zeilen brechen um */
@media(max-width:640px){.gcards{grid-template-columns:1fr}}
.member{flex-wrap:wrap;row-gap:6px}
.member .mslots{flex-wrap:wrap}
.member>div:last-child{flex-wrap:wrap;min-width:0}
.mag{flex-wrap:wrap;min-width:0}
.mag>span:not(.rl){overflow-wrap:anywhere}
.pers{flex-wrap:wrap;min-width:0}
.pc3 .pers{overflow-wrap:anywhere}
.stagechip{max-width:100%;overflow-wrap:anywhere}
.gph{flex-wrap:wrap;row-gap:4px}
.planstat{flex-wrap:wrap;row-gap:8px}
.ghead{flex-wrap:wrap;row-gap:4px}
.member>div{min-width:0}

/* Feste Info-Leiste am unteren Rand des Live-Boards (Michaels Wahl statt Hover-Box) */
.infobar{position:fixed;left:244px;right:18px;bottom:12px;z-index:40;background:var(--surface);border:1.5px solid var(--line2);border-radius:12px;box-shadow:0 10px 30px rgba(20,25,35,.16);padding:10px 16px;display:flex;gap:16px;align-items:center;font-size:12.5px;min-height:46px}
@media(max-width:980px){.infobar{left:12px}}
.infobar .ibx{display:flex;gap:6px;align-items:flex-start;min-width:0}
.infobar .ibx>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#s-board{padding-bottom:78px}

/* ===== Rollen & Rechte ===== */
/* Nur-lesen-Rollen (z. B. Counter): Editier-Controls im Coachee-Profil ausblenden */
body.noedit #prof .pacts,
body.noedit #prof .cmtadd,
body.noedit #prof .flagbtns,
body.noedit #prof .slotpick,
body.noedit #prof .terminbox button,
body.noedit #prof #p-gruppe{display:none!important}
/* Mail-Läufe-Karte nur bei Recht „mailruns" */
body:not(.can-mailruns) #card-mailruns{display:none}
/* Admin-Verwaltung */
.admform{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;align-items:center}
.admform input,.admform select{padding:9px 11px;border:1.5px solid var(--line2);border-radius:8px;font-family:inherit;font-size:13px;background:var(--surface);color:var(--ink)}
.admform button{grid-column:1/-1}
@media(max-width:640px){.admform{grid-template-columns:1fr}}
.permgrid{width:100%;border-collapse:collapse}
.permgrid th,.permgrid td{padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px}
.permgrid th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}
.permgrid input[type=checkbox]{width:17px;height:17px;cursor:pointer;accent-color:var(--acc,#4a63e7)}
.rolesel{padding:5px 9px;border:1.5px solid var(--line2);border-radius:7px;font-family:inherit;font-size:12.5px;background:var(--surface);color:var(--ink);cursor:pointer}
/* Passwort-Dialog (verdeckte Eingabe + Wiederholung) */
.pwov{position:fixed;inset:0;background:rgba(20,25,35,.45);z-index:200;display:flex;align-items:center;justify-content:center}
.pwbox{background:var(--surface);border-radius:14px;box-shadow:0 18px 50px rgba(20,25,35,.3);padding:22px 24px;width:min(92vw,380px)}
.pwbox h3{margin:0 0 14px;font-size:15.5px}
.pwbox label{display:block;font-size:11px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);margin:10px 0 5px}
.pwbox input{width:100%;padding:11px 13px;border:1.5px solid var(--line2);border-radius:9px;font-family:inherit;font-size:14px;background:var(--surface);color:var(--ink)}
.pwbox .pwerr{color:var(--err);font-size:12.5px;min-height:18px;margin-top:8px;font-weight:650}
.pwbox .pwbtns{display:flex;gap:9px;justify-content:flex-end;margin-top:10px}
/* Passwortfeld mit Auge-Umschalter (Sternchen ↔ Klartext) */
.pwwrap{position:relative}
.pwwrap input{width:100%;padding-right:40px}
.pweye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;font-size:15px;line-height:1;padding:6px;color:var(--muted)}
.pweye:hover{color:var(--ink)}
