/* SchaffRaum CRM – Gestaltung aus Entwurf V6 (4 Designs: Dunkel, Hell, Sand Tag, Sand Nacht).
   Schrift lokal eingebunden (keine Google-Fonts-Verbindung, DSGVO). */
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-display:swap;font-weight:400;src:url('../fonts/plus-jakarta-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-display:swap;font-weight:600;src:url('../fonts/plus-jakarta-sans-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-display:swap;font-weight:700;src:url('../fonts/plus-jakarta-sans-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-display:swap;font-weight:800;src:url('../fonts/plus-jakarta-sans-latin-800-normal.woff2') format('woff2')}

:root{
  --bg:#080a17;--bg2:#0e1124;--card:rgba(255,255,255,.045);--card2:rgba(255,255,255,.08);
  --line:rgba(255,255,255,.09);--text:#eceefa;--muted:#9aa0c3;--faint:#5f6590;
  --violet:#b9a6ff;--mint:#86f0c6;--peach:#ffb59c;--sky:#8ccaff;--rose:#ff9fca;--amber:#ffd98a;--red:#ff8a9b;
  --glow:0 0 0 1px var(--line),0 20px 50px -20px rgba(0,0,0,.6);
  --r:20px;--r2:14px;
}
body.light{
  --bg:#f3f2fb;--bg2:#ffffff;--card:rgba(255,255,255,.75);--card2:rgba(20,20,60,.05);
  --line:rgba(30,30,80,.09);--text:#1b1d35;--muted:#62668a;--faint:#a3a6c4;
  --violet:#7b62f0;--mint:#14b886;--peach:#f07a52;--sky:#3c8de0;--rose:#e0559a;--amber:#d39a14;--red:#e0485f;
  --glow:0 0 0 1px var(--line),0 18px 40px -24px rgba(40,40,100,.35);
}
body.dream{
  --bg:#fbf2f8;--bg2:#fffafd;--card:rgba(255,255,255,.72);--card2:rgba(214,120,180,.08);
  --line:rgba(180,90,150,.14);--text:#3d2440;--muted:#8a6788;--faint:#c4a3c0;
  --violet:#a98bf0;--mint:#5fc9a8;--peach:#f59e85;--sky:#86b6ec;--rose:#ec7fb5;--amber:#e0a84a;--red:#e76a8a;
  --glow:0 0 0 1px var(--line),0 18px 40px -22px rgba(190,90,160,.35);
}
body.dream .space .b1{background:#ffb3d9;opacity:.5}body.dream .space .b2{background:#cdb8ff;opacity:.5}body.dream .space .b3{background:#ffd3bf;opacity:.45}
body.dream .starfield{display:none}
.theme{display:flex;gap:3px;padding:3px;border-radius:14px;border:1px solid var(--line);background:var(--card);flex:none}
.theme button{width:36px;height:34px;border-radius:11px;border:0;background:none;cursor:pointer;display:grid;place-items:center;color:var(--muted);font-size:17px;font-weight:700}
.theme button.on{background:var(--card2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.theme svg{width:17px}
.so.x{background:#000}.so.xing{background:#026466}
a.so,a.mi,a.fi{text-decoration:none;color:inherit}
.tip{position:fixed;pointer-events:none;background:var(--bg2);border:1px solid var(--line);box-shadow:var(--glow);padding:9px 12px;border-radius:12px;font-size:12px;z-index:99;opacity:0;transition:opacity .15s}
.tip.show{opacity:1}
input[type=range]{width:100%;accent-color:var(--violet)}
.rgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.del{opacity:0;border:0;background:none;color:var(--red);cursor:pointer;margin-left:auto;transition:.2s;display:inline-grid}
.bub:hover .del{opacity:1}.del svg{width:14px}
.rad .rs{transition:transform .35s;transform-origin:160px 160px}.rad .rs:hover{transform:scale(1.05)}.rad .rs:hover polygon{fill-opacity:.42;stroke-width:3.2}.rad circle{cursor:pointer}
body.present .side,body.present .top,body.present .noprint{display:none!important}body.present .app{grid-template-columns:1fr}
.ctab td input{width:86px;padding:6px 8px;border-radius:9px;border:1px solid var(--line);background:var(--card2);outline:none;text-align:right}
tr.due td{background:rgba(255,138,155,.08)}
@media print{.side,.top,.noprint{display:none!important}.app{grid-template-columns:1fr}}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;font-size:14px;transition:background .4s,color .4s}
button,input,select,textarea{font:inherit;color:inherit}
/* Space background */
.space{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.space .blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.35;animation:float 22s ease-in-out infinite}
.space .b1{width:520px;height:520px;background:#6c4dff;top:-160px;left:-120px}
.space .b2{width:460px;height:460px;background:#16c79a;bottom:-180px;right:-100px;animation-delay:-7s}
.space .b3{width:380px;height:380px;background:#ff7aa8;top:35%;left:45%;opacity:.18;animation-delay:-12s}
body.light .space .blob{opacity:.18}
.starfield{position:absolute;inset:0;background-image:radial-gradient(1px 1px at 20% 30%,#fff8,transparent),radial-gradient(1px 1px at 70% 20%,#fff6,transparent),radial-gradient(1.5px 1.5px at 40% 80%,#fff7,transparent),radial-gradient(1px 1px at 85% 65%,#fff5,transparent),radial-gradient(1px 1px at 10% 70%,#fff6,transparent),radial-gradient(1.5px 1.5px at 55% 45%,#fff4,transparent),radial-gradient(1px 1px at 92% 90%,#fff6,transparent),radial-gradient(1px 1px at 30% 10%,#fff5,transparent);animation:twinkle 6s ease-in-out infinite alternate}
body.light .starfield{display:none}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(60px,40px) scale(1.1)}}
@keyframes twinkle{from{opacity:.4}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,138,155,.6)}50%{box-shadow:0 0 0 6px rgba(255,138,155,0)}}
/* Layout */
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.side{position:sticky;top:0;height:100vh;padding:22px 16px;display:flex;flex-direction:column;gap:6px;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.03),transparent);backdrop-filter:blur(20px)}
.logo{display:flex;align-items:center;gap:11px;padding:4px 10px 22px}
.logo .mark{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:conic-gradient(from 200deg,var(--violet),var(--mint),var(--peach),var(--violet));box-shadow:0 8px 24px -6px var(--violet)}
.logo .mark svg{width:22px;height:22px}
.logo b{font-size:17px;letter-spacing:-.3px;display:block}
.logo small{font-size:10.5px;color:var(--muted);letter-spacing:1.6px;text-transform:uppercase}
.nav{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;cursor:pointer;color:var(--muted);font-weight:600;border:0;background:none;width:100%;text-align:left;transition:.2s;position:relative}
.nav svg{width:19px;height:19px}
.nav:hover{background:var(--card2);color:var(--text)}
.nav.on{background:linear-gradient(90deg,rgba(185,166,255,.2),rgba(185,166,255,.04));color:var(--text);box-shadow:inset 0 0 0 1px rgba(185,166,255,.25)}
.nav.on::before{content:"";position:absolute;left:-16px;top:10px;bottom:10px;width:4px;border-radius:4px;background:var(--violet)}
.nav .cnt{margin-left:auto;font-size:11px;background:var(--rose);color:#1b1030;border-radius:20px;padding:1px 8px;font-weight:700}
.nav.locked{opacity:.35;cursor:not-allowed}
.side .sep{font-size:10.5px;letter-spacing:1.5px;color:var(--faint);text-transform:uppercase;padding:16px 14px 6px}
.side .me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px;border-radius:16px;background:var(--card);box-shadow:var(--glow)}
.av{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:13px;color:#16122e;flex:none}
.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:14px 28px;backdrop-filter:blur(18px);background:linear-gradient(180deg,var(--bg) 30%,transparent);}
.search{flex:1;max-width:520px;position:relative}
.search input{width:100%;padding:12px 16px 12px 44px;border-radius:16px;border:1px solid var(--line);background:var(--card);outline:none;transition:.2s}
.search input:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgba(185,166,255,.15)}
.search>svg{position:absolute;left:15px;top:13px;width:18px;color:var(--muted)}
.sres{position:absolute;top:52px;left:0;right:0;background:var(--bg2);border-radius:16px;box-shadow:var(--glow);padding:8px;display:none;max-height:380px;overflow:auto}
.sres.show{display:block;animation:rise .2s}
.sres .it{padding:10px 12px;border-radius:10px;cursor:pointer;display:flex;gap:10px;align-items:center}
.sres .it:hover{background:var(--card2)}
.ibtn{width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;position:relative;flex:none}
.ibtn svg{width:19px;height:19px}
.ibtn .dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--red);animation:pulse 2s infinite}
.ticker{flex:1;overflow:hidden;border-radius:14px;border:1px solid var(--line);background:var(--card);height:42px;display:flex;align-items:center;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker .tr{display:flex;gap:40px;white-space:nowrap;animation:ticker 45s linear infinite;padding-left:20px}
.ticker span{color:var(--muted);font-size:13px}.ticker b{color:var(--sky);font-weight:600;margin-right:6px}
.page{padding:8px 28px 40px;animation:rise .35s ease}
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:10px 0 22px;flex-wrap:wrap}
.ph h1{font-size:28px;letter-spacing:-.8px;font-weight:800}
.ph p{color:var(--muted);margin-top:4px}
/* Cards & elements */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--glow);padding:20px;backdrop-filter:blur(16px);animation:rise .4s ease both}
.card h3{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:14px}
.card h3 .sub{margin-left:auto;font-weight:500;color:var(--muted);font-size:12px}
.grid{display:grid;gap:18px}
.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}
.g21{grid-template-columns:2fr 1fr}.g12{grid-template-columns:1fr 2fr}
.kpi .lbl{color:var(--muted);font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:8px}
.kpi .val{font-size:30px;font-weight:800;letter-spacing:-1px;margin:10px 0 4px}
.kpi .tr{font-size:12px;font-weight:600}
.kpi .ic{width:34px;height:34px;border-radius:11px;display:grid;place-items:center}
.kpi .ic svg{width:17px;height:17px;color:#16122e}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:14px;border:0;cursor:pointer;font-weight:700;transition:.2s;white-space:nowrap}
.btn svg{width:17px;height:17px}
.btn.pri{background:linear-gradient(135deg,var(--violet),#8f7bff);color:#140f2e;box-shadow:0 10px 26px -10px var(--violet)}
.btn.pri:hover{transform:translateY(-2px)}
.btn.gh{background:var(--card2);border:1px solid var(--line)}
.btn.gh:hover{border-color:var(--violet)}
.btn.dan{background:rgba(255,138,155,.15);color:var(--red);border:1px solid rgba(255,138,155,.3)}
.btn.sm{padding:7px 12px;font-size:12.5px;border-radius:11px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);cursor:pointer;font-weight:600;font-size:13px;transition:.15s;user-select:none;display:inline-flex;align-items:center;gap:6px}
.chip:hover{border-color:var(--violet)}
.chip.on{background:rgba(185,166,255,.2);border-color:var(--violet);color:var(--text)}
.chip.z1.on{background:rgba(140,202,255,.2);border-color:var(--sky)}
.chip.z2.on{background:rgba(255,217,138,.2);border-color:var(--amber)}
.chip.z3.on{background:rgba(255,159,202,.22);border-color:var(--rose)}
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11.5px;font-weight:700;white-space:nowrap}
.b-neu{background:rgba(140,202,255,.16);color:var(--sky)}
.b-kontakt{background:rgba(185,166,255,.16);color:var(--violet)}
.b-besicht{background:rgba(255,217,138,.16);color:var(--amber)}
.b-vertrag{background:rgba(255,181,156,.18);color:var(--peach)}
.b-mieter{background:rgba(134,240,198,.16);color:var(--mint)}
.b-abgesagt{background:rgba(160,160,190,.14);color:var(--muted)}
.b-spam{background:rgba(255,138,155,.15);color:var(--red)}
.zb{width:26px;height:26px;border-radius:9px;display:inline-grid;place-items:center;font-weight:800;font-size:12px}
.zb.z1{background:rgba(140,202,255,.18);color:var(--sky)}.zb.z2{background:rgba(255,217,138,.18);color:var(--amber)}.zb.z3{background:rgba(255,159,202,.2);color:var(--rose)}
table{width:100%;border-collapse:separate;border-spacing:0 6px}
th{text-align:left;font-size:11.5px;color:var(--faint);font-weight:700;text-transform:uppercase;letter-spacing:.8px;padding:4px 12px}
td{padding:13px 12px;background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
td:first-child{border-left:1px solid var(--line);border-radius:14px 0 0 14px}td:last-child{border-right:1px solid var(--line);border-radius:0 14px 14px 0}
tr.row{cursor:pointer;transition:.15s}tr.row:hover td{background:var(--card2)}
.nm{display:flex;align-items:center;gap:11px}.nm small{display:block;color:var(--muted);font-size:12px}
.muted{color:var(--muted)}.faint{color:var(--faint)}
.stars{display:inline-flex;gap:2px}.stars svg{width:14px;height:14px}
.inp,select.inp,textarea.inp{width:100%;padding:11px 14px;border-radius:13px;border:1px solid var(--line);background:var(--card2);outline:none;transition:.2s}
.inp:focus{border-color:var(--violet)}
select.inp option{background:var(--bg2);color:var(--text)}
label.l{display:block;font-size:12px;font-weight:700;color:var(--muted);margin:0 0 7px;letter-spacing:.3px}
.fg{margin-bottom:16px}
.msg{display:flex;gap:6px;margin-top:8px}
.mi{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:10.5px;font-weight:800;color:#fff;cursor:pointer;opacity:.25;transition:.2s;border:0}
.mi.on{opacity:1;transform:scale(1.05)}
.mi.m-wa{background:#25D366}.mi.m-tg{background:#2AABEE}.mi.m-vb{background:#7360F2}.mi.m-sg{background:#3A76F0}
.so{width:30px;height:30px;border-radius:10px;display:inline-grid;place-items:center;font-size:11px;font-weight:800;color:#fff}
.so.ig{background:linear-gradient(45deg,#f9a825,#e91e63,#7b1fa2)}.so.tt{background:#111;box-shadow:inset -2px 0 #25F4EE,inset 2px 0 #FE2C55}.so.fb{background:#1877F2}.so.li{background:#0A66C2}.so.web{background:var(--faint)}
/* Drawer & modal */
.ov{position:fixed;inset:0;background:rgba(5,6,16,.55);backdrop-filter:blur(6px);z-index:50;display:none}
.ov.show{display:block;animation:rise .2s}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(680px,100%);background:var(--bg2);z-index:60;transform:translateX(105%);transition:transform .35s cubic-bezier(.2,.8,.2,1);overflow-y:auto;border-left:1px solid var(--line);box-shadow:-30px 0 60px -20px rgba(0,0,0,.5)}
.drawer.show{transform:none}
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.97);width:min(860px,94vw);max-height:90vh;overflow-y:auto;background:var(--bg2);border-radius:26px;z-index:60;opacity:0;pointer-events:none;transition:.3s;box-shadow:var(--glow)}
.modal.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.dh{position:sticky;top:0;z-index:2;padding:22px 26px;display:flex;align-items:center;gap:14px;background:var(--bg2);border-bottom:1px solid var(--line)}
.db{padding:22px 26px}
.sec{margin-bottom:24px}
.sec>h4{font-size:12px;letter-spacing:1.3px;text-transform:uppercase;color:var(--faint);margin-bottom:12px;font-weight:700}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kv>div{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:11px 13px}
.kv>div>small,.kv small{display:block;color:var(--faint);font-size:11px;font-weight:700;margin-bottom:3px}
.cmp{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}
.cmp .bx{border-radius:16px;padding:16px;border:1px solid var(--line);background:var(--card)}
.cmp .bx b{font-size:22px;display:block;margin-top:4px}
.cmp .arr{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--card2)}
.tl{display:flex;flex-direction:column;gap:12px}
.bub{max-width:88%;padding:12px 15px;border-radius:16px 16px 16px 5px;background:var(--card);border:1px solid var(--line);animation:rise .3s}
.bub.mine{align-self:flex-end;border-radius:16px 16px 5px 16px;background:rgba(185,166,255,.13);border-color:rgba(185,166,255,.3)}
.bub .meta{font-size:11px;color:var(--faint);margin-bottom:5px;font-weight:600;display:flex;gap:8px}
.cin{display:flex;gap:10px;margin-top:14px}
.files{display:flex;flex-wrap:wrap;gap:10px}
.fi{display:flex;align-items:center;gap:9px;padding:10px 13px;border-radius:13px;background:var(--card);border:1px solid var(--line);font-size:12.5px;font-weight:600}
.fi svg{width:16px;color:var(--violet)}
.ring{width:64px;height:64px;flex:none}
/* Sites */
.tree{display:flex;flex-direction:column;gap:6px}
.site{padding:13px 14px;border-radius:15px;cursor:pointer;border:1px solid transparent;transition:.2s;display:flex;align-items:center;gap:12px}
.site:hover{background:var(--card2)}
.site.on{background:var(--card);border-color:rgba(185,166,255,.35);box-shadow:var(--glow)}
.site .pg{height:5px;border-radius:5px;background:var(--card2);margin-top:7px;overflow:hidden}
.site .pg i{display:block;height:100%;background:linear-gradient(90deg,var(--mint),var(--sky));border-radius:5px}
.gal{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.gal div{aspect-ratio:4/3;border-radius:14px;position:relative;overflow:hidden}
.gal .add{border:1.5px dashed var(--line);display:grid;place-items:center;color:var(--muted);cursor:pointer;font-size:12px;font-weight:600;text-align:center}
.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(122px,1fr));gap:10px}
.room{padding:13px;border-radius:15px;border:1px solid var(--line);background:var(--card);cursor:pointer;transition:.2s;position:relative}
.room:hover{transform:translateY(-3px);border-color:var(--violet)}
.room .st{position:absolute;top:12px;right:12px;width:10px;height:10px;border-radius:50%}
.room b{font-size:15px}.room small{display:block;color:var(--muted);font-size:11.5px;margin-top:3px}
.room .adv{position:absolute;bottom:10px;right:10px;font-size:10px;font-weight:800;color:var(--peach)}
.s-frei{background:var(--mint);box-shadow:0 0 12px var(--mint)}.s-belegt{background:var(--red)}.s-bald{background:var(--amber);box-shadow:0 0 10px var(--amber)}
.area{margin-bottom:18px}.area h5{font-size:13px;font-weight:700;margin:0 0 10px;display:flex;align-items:center;gap:8px;color:var(--muted)}
.lock{display:inline-flex;align-items:center;gap:4px;color:var(--faint);font-size:12px}
.lock svg{width:12px}
/* Chat */
.chat{display:grid;grid-template-columns:230px 1fr;height:calc(100vh - 190px);min-height:460px;padding:0;overflow:hidden}
.chans{border-right:1px solid var(--line);padding:16px}
.chan{padding:10px 12px;border-radius:12px;cursor:pointer;font-weight:600;color:var(--muted);margin-bottom:3px}
.chan.on,.chan:hover{background:var(--card2);color:var(--text)}
.cmain{display:flex;flex-direction:column;min-height:0}
.cmsgs{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}
.cfoot{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px}
/* Matrix */
.mx td,.mx th{text-align:center}.mx td:first-child,.mx th:first-child{text-align:left}
.tg{width:40px;height:23px;border-radius:20px;background:var(--card2);border:1px solid var(--line);position:relative;cursor:pointer;display:inline-block;transition:.2s}
.tg::after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--faint);transition:.2s}
.tg.on{background:rgba(134,240,198,.25);border-color:var(--mint)}.tg.on::after{left:19px;background:var(--mint)}
/* KB */
.kb{padding:18px;border-radius:18px;background:var(--card);border:1px solid var(--line);cursor:pointer;transition:.2s}
.kb:hover{border-color:var(--violet);transform:translateY(-2px)}
.vid{aspect-ratio:16/9;border-radius:18px;background:linear-gradient(135deg,#2a1f5c,#0d3b3a);display:grid;place-items:center;position:relative;overflow:hidden;margin:14px 0}
.vid .pl{width:70px;height:70px;border-radius:50%;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);display:grid;place-items:center}
.vid .pl svg{width:28px;color:#fff;margin-left:4px}
/* misc */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(30px);background:var(--bg2);padding:13px 20px;border-radius:15px;box-shadow:var(--glow);z-index:99;opacity:0;transition:.3s;font-weight:600;display:flex;gap:10px;align-items:center}
.toast.show{opacity:1;transform:translateX(-50%)}
.toast i{width:9px;height:9px;border-radius:50%;background:var(--mint)}
.empty{padding:40px;text-align:center;color:var(--muted)}
.list-it{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.list-it:last-child{border:0}
.warn{padding:12px 14px;border-radius:13px;background:rgba(255,217,138,.12);border:1px solid rgba(255,217,138,.3);color:var(--amber);font-weight:600;font-size:13px;display:flex;gap:10px;align-items:center;margin-bottom:16px}
.warn svg{width:18px;flex:none}
.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
svg.ch text{fill:var(--muted);font-size:10px;font-family:inherit}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}
.lbox{width:min(420px,100%);padding:38px;border-radius:30px;background:var(--card);box-shadow:var(--glow);backdrop-filter:blur(22px);text-align:center;animation:rise .6s}
.lbox .mark{width:74px;height:74px;border-radius:24px;margin:0 auto 18px;display:grid;place-items:center;background:conic-gradient(from 200deg,var(--violet),var(--mint),var(--peach),var(--violet));box-shadow:0 16px 40px -10px var(--violet);animation:spin 18s linear infinite}
.lbox .mark svg{width:38px;animation:spin 18s linear infinite reverse}
.menu-t{display:none}
@media(max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.g3,.g21,.g12{grid-template-columns:1fr}.ticker{display:none}}
@media(max-width:820px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;width:260px;z-index:70;transform:translateX(-105%);transition:.3s;background:var(--bg2)}
  .side.show{transform:none}
  .menu-t{display:grid}
  .top{padding:12px 16px}.page{padding:6px 16px 30px}
  .g2,.g4{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr 1fr}
  .hide-m{display:none}
  .chat{grid-template-columns:1fr}.chans{display:none}
  .gal{grid-template-columns:repeat(3,1fr)}
  .cmp{grid-template-columns:1fr}.cmp .arr{transform:rotate(90deg);margin:auto}
}


body.sand{--bg:#f5efe6;--bg2:#fffdf9;--card:rgba(255,255,255,.8);--card2:rgba(130,95,60,.06);--line:rgba(130,95,60,.15);--text:#3b2a1e;--muted:#86705c;--faint:#bca68e;--violet:#b08968;--mint:#8aa984;--peach:#d99a7a;--sky:#9fb3c4;--rose:#cf9f97;--amber:#cf9d4f;--red:#c46a5e;--glow:0 0 0 1px var(--line),0 18px 40px -24px rgba(110,75,40,.35)}
body.sand .space .b1{background:#e6cfb5;opacity:.55}body.sand .space .b2{background:#d8c3a5;opacity:.5}body.sand .space .b3{background:#f0d9c4;opacity:.5}body.sand .starfield{display:none}
body.sand .btn.pri{background:linear-gradient(135deg,#c79f7b,#a07452);color:#fff;box-shadow:0 10px 26px -10px #a07452}
body.sand .nav.on{background:linear-gradient(90deg,rgba(176,137,104,.22),rgba(176,137,104,.04));box-shadow:inset 0 0 0 1px rgba(176,137,104,.3)}
body.sand .chip.on{background:rgba(176,137,104,.18)}body.sand .bub.mine{background:rgba(176,137,104,.12);border-color:rgba(176,137,104,.3)}
body.sand .side{background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.2))}
body.sand .logo .mark,body.sand .lbox .mark{background:conic-gradient(from 200deg,#c79f7b,#8aa984,#e3b48f,#c79f7b);box-shadow:0 8px 24px -6px #b08968}
body.sand .ov{background:rgba(60,40,20,.25)}
.soc{position:relative;overflow:visible}.soc:hover{z-index:25}
.soc .pv{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30;background:var(--bg2);border-radius:18px;box-shadow:var(--glow);overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-6px);transition:.25s}
.soc:hover .pv{opacity:1;transform:none}.pvh{height:66px;padding:36px 14px 0}
.kform{grid-template-columns:1.3fr 1fr 1.2fr .8fr 1.6fr auto auto}
@media(max-width:1100px){.kform{grid-template-columns:1fr 1fr!important}}



.b-ex{background:rgba(160,160,190,.12);color:var(--muted);border:1px dashed var(--faint)}
body.sandnight{--bg:#1c1510;--bg2:#251c15;--card:rgba(255,240,220,.05);--card2:rgba(255,235,210,.08);--line:rgba(255,230,200,.11);--text:#f1e6d8;--muted:#bba68f;--faint:#7d6a57;--violet:#c9a27e;--mint:#9cba95;--peach:#e0a383;--sky:#a9bccc;--rose:#d9aaa1;--amber:#ddb064;--red:#d97b6c;--glow:0 0 0 1px var(--line),0 20px 50px -20px rgba(0,0,0,.6)}
body.sandnight .space .b1{background:#7a5236;opacity:.35}body.sandnight .space .b2{background:#4f6b4a;opacity:.3}body.sandnight .space .b3{background:#8a5a3c;opacity:.22}body.sandnight .starfield{opacity:.45}
body.sandnight .btn.pri{background:linear-gradient(135deg,#d2ab86,#9c7150);color:#1c1510;box-shadow:0 10px 26px -10px #c9a27e}
body.sandnight .nav.on{background:linear-gradient(90deg,rgba(201,162,126,.22),rgba(201,162,126,.04));box-shadow:inset 0 0 0 1px rgba(201,162,126,.3)}
body.sandnight .chip.on{background:rgba(201,162,126,.2)}body.sandnight .bub.mine{background:rgba(201,162,126,.13);border-color:rgba(201,162,126,.3)}
body.sandnight .logo .mark,body.sandnight .lbox .mark{background:conic-gradient(from 200deg,#c9a27e,#9cba95,#e0a383,#c9a27e);box-shadow:0 8px 24px -6px #c9a27e}
.theme button{width:auto;min-width:36px;padding:0 8px;font-size:15px;display:inline-flex;align-items:center;justify-content:center}.theme button small{font-size:10px;margin-left:1px}
.pano{position:relative;height:300px;border-radius:18px;overflow-x:auto;overflow-y:hidden;background:#111;scrollbar-width:thin}
.pano .pi{position:relative;height:100%;width:2400px;background:linear-gradient(90deg,#2b2a3a,#3d3a52 12%,#4a4560 20%,#2f3b45 33%,#3b4c56 45%,#2d2f40 58%,#463d3a 70%,#3a3446 85%,#2b2a3a)}
.pano .floor{position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.5))}
.pano .door{position:absolute;bottom:34%;width:110px;height:40%;border:3px solid rgba(255,255,255,.22);border-bottom:0;border-radius:4px 4px 0 0;color:rgba(255,255,255,.55);font-size:11px;font-weight:700;display:grid;place-items:center}
.hs{position:absolute;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:17px;background:rgba(255,255,255,.2);backdrop-filter:blur(6px);border:2px solid #fff;cursor:pointer;animation:pulse 2s infinite}
.qr{display:grid;grid-template-columns:repeat(21,1fr);width:92px;height:92px;background:#fff;padding:5px;border-radius:8px;flex:none}.qr i{background:#111}
.cams{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.cam{aspect-ratio:16/9;border-radius:14px;background:radial-gradient(circle at 30% 40%,#2a3040,#0d1017);position:relative;overflow:hidden;color:#fff}
.cam .rec{position:absolute;top:10px;left:12px;font-size:11px;font-weight:700;display:flex;gap:6px;align-items:center}.cam .rec i{width:8px;height:8px;border-radius:50%;background:#ff4d5e;animation:pulse 1.5s infinite}
.cam .scan{position:absolute;left:0;right:0;height:2px;background:rgba(134,240,198,.45);animation:scan 3.2s linear infinite}
.cam .lbl{position:absolute;bottom:10px;left:12px;right:12px;display:flex;justify-content:space-between;font-size:11px;opacity:.85}
@keyframes scan{from{top:0}to{top:100%}}
.fab{position:fixed;right:24px;bottom:24px;width:58px;height:58px;border-radius:20px;border:0;cursor:pointer;z-index:40;background:conic-gradient(from 200deg,var(--violet),var(--mint),var(--peach),var(--violet));box-shadow:0 14px 34px -10px var(--violet);display:grid;place-items:center}
.fab svg{width:26px;color:#16122e}
.aip{position:fixed;right:24px;bottom:94px;width:min(390px,92vw);height:500px;background:var(--bg2);border-radius:22px;box-shadow:var(--glow);z-index:45;display:none;flex-direction:column;overflow:hidden}
.aip.show{display:flex;animation:rise .25s}
.wk{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.wk>div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;min-height:150px}
.wk .tk{font-size:11.5px;font-weight:600;padding:6px 8px;border-radius:9px;margin-top:6px;background:var(--card2);border-left:3px solid var(--violet)}
.ann{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;background:linear-gradient(90deg,rgba(185,166,255,.14),transparent);border:1px solid var(--line);margin-bottom:10px}
@media(max-width:820px){.wk{grid-template-columns:repeat(2,1fr)}.cams{grid-template-columns:1fr}}


.so.pin{background:#E60023}.so.mast{background:#6364FF}.so.tum{background:#36465D}.so.gh{background:#24292f}.so.blog{background:#f57d00}
.flow{stroke-dasharray:5 7;animation:flow 1.8s linear infinite}@keyframes flow{to{stroke-dashoffset:-24}}
.mp{cursor:pointer;transition:transform .25s;transform-box:fill-box;transform-origin:center}.mp:hover{transform:scale(1.6)}
.net .np{transition:stroke-opacity .2s}.net .np:hover{stroke-opacity:.95}
.fs{position:fixed;inset:3vh 3vw;z-index:85;background:var(--bg2);border-radius:26px;box-shadow:var(--glow);opacity:0;pointer-events:none;transform:scale(.7);transition:.35s cubic-bezier(.2,.8,.2,1);overflow:hidden}
.fs.show{opacity:1;pointer-events:auto;transform:none}
#fsB svg{max-width:none!important;max-height:calc(94vh - 190px);width:100%}
.xbtn{margin-left:8px;width:30px;height:30px;border-radius:10px;border:1px solid var(--line);background:var(--card2);cursor:pointer;display:inline-grid;place-items:center;color:var(--text)}
.xbtn svg{width:15px}
textarea.inp{line-height:1.6;resize:vertical}


.drawer{left:50%;top:50%;right:auto;bottom:auto;width:min(860px,94vw);max-height:90vh;border-radius:26px;border:0;transform:translate(-50%,-46%) scale(.97);opacity:0;pointer-events:none;transition:transform .3s,opacity .3s,width .3s,height .3s;box-shadow:var(--glow)}
.drawer.show{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
.drawer.big,.modal.big{width:min(1500px,92vw);max-height:92vh;height:92vh}
.modal{transition:opacity .3s,transform .3s,width .3s,height .3s}
.wa{display:grid;grid-template-columns:280px 1fr;height:560px;border-radius:20px;overflow:hidden;background:#111b21;color:#e9edef}
.wa .wl{border-right:1px solid #222d34;overflow:auto}.wa .wi{display:flex;gap:10px;align-items:center;padding:12px 14px;cursor:pointer;border-bottom:1px solid #1f2c33}.wa .wi:hover,.wa .wi.on{background:#2a3942}
.wa .wh{background:#202c33;padding:12px 16px;display:flex;align-items:center;gap:12px}
.wa .wb{flex:1;overflow:auto;padding:18px 22px;background:#0b141a;background-image:radial-gradient(rgba(255,255,255,.035) 1px,transparent 1px);background-size:18px 18px;display:flex;flex-direction:column;gap:8px}
.wa .m{max-width:70%;padding:7px 10px 18px;border-radius:9px;font-size:13.5px;position:relative;background:#202c33}.wa .m.o{align-self:flex-end;background:#005c4b}.wa .m small{position:absolute;right:8px;bottom:3px;font-size:10px;opacity:.6}
.wa .wf{background:#202c33;padding:10px 14px;display:flex;gap:10px}.wa .wf input{flex:1;background:#2a3942;border:0;border-radius:10px;padding:10px 14px;color:#e9edef;outline:none}
.wa .av2{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#111b21;flex:none}
.wgrid{display:grid;gap:18px}.wg2{grid-template-columns:repeat(2,1fr)}.wg3{grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.wa{grid-template-columns:1fr}.wa .wl{display:none}.wg2,.wg3{grid-template-columns:1fr}}

/* ===== Ergänzungen Stufe 1 ===== */
.flash{padding:12px 16px;border-radius:14px;margin-bottom:16px;font-weight:600;border:1px solid var(--line);background:var(--card)}
.flash.ok{border-color:var(--mint);color:var(--mint)}
.flash.err{border-color:var(--red);color:var(--red)}
.err-t{color:var(--red);font-size:12px;margin-top:5px}
.fgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.fgrid .full{grid-column:1/-1}
.data td,.data th{padding:11px 12px;text-align:left;background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.data th{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--faint);background:none;border:0}
.data td:first-child{border-left:1px solid var(--line);border-radius:14px 0 0 14px}
.perm{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--card)}
.perm+.perm{margin-top:10px}
.perm .ph2{display:flex;align-items:center;gap:10px;font-weight:700}
.perm .subs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0 34px}
.perm .stage{margin-left:auto;font-size:11px;color:var(--faint);font-weight:600}
.ck{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.ck input{width:18px;height:18px;accent-color:var(--violet);cursor:pointer}
.chip input{accent-color:var(--violet)}
.sites{display:flex;flex-wrap:wrap;gap:8px}
.inline{display:inline}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.soon{display:grid;place-items:center;text-align:center;padding:60px 20px;gap:14px}
.soon .ring{width:90px;height:90px;border-radius:30px;display:grid;place-items:center;background:conic-gradient(from 200deg,var(--violet),var(--mint),var(--peach),var(--violet));animation:spin 18s linear infinite}
.soon .ring svg{width:40px;color:#140f2e;animation:spin 18s linear infinite reverse}
.lform{text-align:left;display:grid;gap:14px;margin-top:22px}
.audit td{font-size:12.5px}
.code{font-family:ui-monospace,Consolas,monospace;font-size:12px;color:var(--muted);word-break:break-all}
@media(max-width:820px){.fgrid{grid-template-columns:1fr}.perm .subs{margin-left:0}}
.pagination{display:flex;gap:6px;list-style:none;margin-top:14px;flex-wrap:wrap}
.pagination li a,.pagination li span{display:inline-block;padding:6px 11px;border-radius:10px;border:1px solid var(--line);background:var(--card2);color:var(--text);text-decoration:none;font-size:12.5px}
.pagination li.active span{border-color:var(--violet);color:var(--violet)}
.pagination li.disabled span{opacity:.4}
.flash svg{width:16px;vertical-align:-3px}
a{color:inherit;text-decoration:none}
a.nav{text-decoration:none}
.nav .sub{font-size:10px;padding:2px 7px;border-radius:20px;background:var(--card2);white-space:nowrap;margin-left:auto;flex:none}
.nav span:first-of-type{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip svg,.ck svg{width:16px;height:16px;flex:none}
.ph .btn,.actions .btn{text-decoration:none}
.viewmode select{width:auto;padding:8px 12px;font-size:12.5px;border-radius:12px}
.flash.prev{border-color:var(--amber);color:var(--amber)}
.mno{font-size:10.5px;font-weight:800;letter-spacing:.5px;color:var(--faint);background:var(--card2);padding:2px 6px;border-radius:7px}
/* ===== Stufe 2 ===== */
.noteform{display:flex;gap:10px;align-items:flex-end}
.noteform textarea{flex:1}
details.adm{margin-top:8px;font-size:12px}details.adm summary{cursor:pointer;color:var(--faint)}
details.adm form{display:flex;gap:6px;margin-top:6px;align-items:flex-start}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-bottom:12px}
.thumbs figure{position:relative;margin:0;aspect-ratio:4/3;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--card2)}
.thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.thumbs .x{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:8px;border:0;background:rgba(0,0,0,.55);color:#fff;cursor:pointer}
.filerow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.filerow svg{width:16px;flex:none;color:var(--muted)}.filerow a{font-weight:600;word-break:break-all}.filerow small{margin-left:auto;white-space:nowrap}
.upform{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.upform .inp{flex:1;min-width:140px}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kv b{display:block;font-weight:600;word-break:break-word}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.toolbar .inp{width:auto;min-width:150px}.toolbar .inp.grow{flex:1;min-width:200px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tabs a{padding:7px 12px;border-radius:11px;border:1px solid var(--line);background:var(--card);font-size:12.5px;font-weight:600}
.tabs a.on{border-color:var(--violet);background:rgba(185,166,255,.15)}
.tabs a small{color:var(--faint);margin-left:4px}
.st-badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;background:var(--card2);white-space:nowrap}
.st-frei{background:rgba(134,240,198,.18);color:var(--mint)}.st-vermietet{background:rgba(185,166,255,.2);color:var(--violet)}
.st-reserviert{background:rgba(255,217,138,.2);color:var(--amber)}.st-gesperrt{background:rgba(255,138,155,.15);color:var(--red)}
.st-neu{background:rgba(140,202,255,.2);color:var(--sky)}.st-kontakt{background:rgba(185,166,255,.2);color:var(--violet)}
.st-angebot{background:rgba(255,217,138,.2);color:var(--amber)}.st-mieter{background:rgba(134,240,198,.18);color:var(--mint)}
.st-ex_mieter,.st-archiv,.st-verloren{color:var(--faint)}.st-spam{background:rgba(255,138,155,.15);color:var(--red)}
.st-auszug_gemeldet{background:rgba(255,181,156,.2);color:var(--peach)}.st-aktiv{background:rgba(134,240,198,.18);color:var(--mint)}.st-beendet{color:var(--faint)}
.occ{height:8px;border-radius:8px;background:var(--card2);overflow:hidden;margin-top:8px}.occ i{display:block;height:100%;background:linear-gradient(90deg,var(--violet),var(--mint))}
.sitecard{display:block;transition:.2s}.sitecard:hover{transform:translateY(-3px)}
.sitecard h3{font-size:17px;margin-bottom:4px}
.nums{display:flex;gap:14px;margin-top:12px;font-size:12.5px}.nums b{font-size:18px;display:block}
.dist{display:grid;grid-template-columns:150px 1fr 60px;gap:10px;align-items:center;padding:4px 0;font-size:12.5px}
.dist .bar{height:10px;border-radius:10px;background:var(--card2);overflow:hidden}.dist .bar i{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,var(--mint),var(--sky))}
.dist.far .bar i{background:linear-gradient(90deg,var(--amber),var(--peach))}
.rowset{display:grid;gap:8px}.rowset .r{display:grid;grid-template-columns:1.4fr .8fr 1.6fr auto;gap:8px;align-items:center}
.rowset .r.e{grid-template-columns:2fr 1fr auto}.rowset .r.s{grid-template-columns:1fr 2fr auto}
.msgr{display:flex;gap:8px;flex-wrap:wrap;font-size:12px}
.stars-in{display:flex;gap:4px}.stars-in label{cursor:pointer}
.codebox{font-family:ui-monospace,Consolas,monospace;font-size:26px;letter-spacing:4px;font-weight:800;padding:10px 16px;border-radius:12px;background:var(--card2);display:inline-block}
.contact a{color:var(--violet);font-weight:600}
.dupbox{border:1px solid var(--amber);border-radius:14px;padding:14px;margin-bottom:16px;background:rgba(255,217,138,.08)}
.tree{display:grid;gap:10px}.tree .ar{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--card)}
.tree .sa{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.inline-form{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.inline-form .inp{width:auto;flex:1;min-width:120px;padding:7px 10px}
.req::after{content:" *";color:var(--red)}
@media(max-width:820px){.kv{grid-template-columns:1fr 1fr}.rowset .r,.rowset .r.e,.rowset .r.s{grid-template-columns:1fr}.dist{grid-template-columns:100px 1fr 50px}.noteform{flex-direction:column;align-items:stretch}}
.linkbtn{border:0;background:none;color:var(--red);cursor:pointer;font-weight:700;margin-left:4px}
.ic-s{width:13px;height:13px;vertical-align:-2px}
@media(max-width:820px){.top{flex-wrap:wrap;gap:8px}.viewmode{order:3;width:100%}.viewmode select{width:100%}.page{overflow-x:hidden}}
/* ===== Stufe 3: Diagramme ===== */
.ch{width:100%;height:auto;display:block;overflow:visible}
.ch text{fill:var(--muted);font-size:10.5px;font-family:inherit}.ch text.big{font-size:22px;font-weight:800;fill:var(--text)}.ch text.ax{font-weight:700;fill:var(--faint)}
.ch .grid{stroke:var(--line);stroke-width:1}.ch .web{fill:none;stroke:var(--line)}
.c0{fill:var(--violet);background:var(--violet)}.c1{fill:var(--mint);background:var(--mint)}.c2{fill:var(--peach);background:var(--peach)}.c3{fill:var(--sky);background:var(--sky)}
.c4{fill:var(--rose);background:var(--rose)}.c5{fill:var(--amber);background:var(--amber)}.c6{fill:var(--red);background:var(--red)}.c7{fill:var(--faint);background:var(--faint)}
.s0{stroke:var(--violet)}.s1{stroke:var(--mint)}.s2{stroke:var(--peach)}.s3{stroke:var(--sky)}.s4{stroke:var(--rose)}.s5{stroke:var(--amber)}.s6{stroke:var(--red)}.s7{stroke:var(--faint)}
.ch .ln{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.ch .area{stroke-width:2;fill-opacity:.18}.ch .area.s0{fill:var(--violet)}.ch .area.s1{fill:var(--mint)}.ch .area.s2{fill:var(--peach)}.ch .area.s3{fill:var(--sky)}.ch .area.s4{fill:var(--rose)}.ch .area.s5{fill:var(--amber)}.ch .area.s6{fill:var(--red)}.ch .area.s7{fill:var(--faint)}
.ch .area:hover{fill-opacity:.4}.ch rect:hover,.ch circle:hover{opacity:.8}.ch .dot{fill-opacity:.75}
.donut .seg{fill:none;stroke-width:30}
.donutwrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.donutwrap svg{width:190px;flex:none}
.dleg{display:grid;gap:6px;font-size:12.5px}.dleg i,.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:8px}
.hbars{display:grid;gap:7px}.hb{display:grid;grid-template-columns:150px 1fr 90px;gap:10px;align-items:center;font-size:12.5px}
.hb .bar{height:12px;border-radius:12px;background:var(--card2);overflow:hidden}.hb .bar i{display:block;height:100%;border-radius:12px}.hb b{text-align:right}
.heat{display:grid;gap:3px;font-size:10.5px}.heat i{display:block;height:20px;border-radius:4px;background:var(--violet)}.heat .hh{color:var(--faint);text-align:center;font-weight:600}
.nodata{padding:30px;text-align:center;color:var(--faint);border:1px dashed var(--line);border-radius:14px}
.chart-card{position:relative}.chart-card .fs{position:absolute;top:14px;right:14px}
.chart-card:fullscreen{background:var(--bg2);padding:40px;overflow:auto}
.radar{max-width:420px;margin:auto}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.kpis>div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.kpis small{display:block;color:var(--faint);font-size:11px;font-weight:700}.kpis b{font-size:20px;letter-spacing:-.4px}
.pos{color:var(--mint)}.neg{color:var(--red)}
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.subnav a{padding:8px 13px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-weight:600;font-size:13px}
.subnav a.on{border-color:var(--violet);background:rgba(185,166,255,.15)}
td.r,th.r{text-align:right}
@media print{.subnav,.fs,.toolbar,.viewmode,.theme{display:none!important}.card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}body{background:#fff!important;color:#000}}
@media(max-width:820px){.hb{grid-template-columns:100px 1fr 70px}}
.yt{display:grid;gap:8px;place-items:start}.yt iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:12px}
.heat .rl{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heat i.z{background:var(--card2);opacity:1}
/* ===== Stufe 4 ===== */
.bell{position:relative}.bell .bdg{position:absolute;top:-6px;right:-6px;background:var(--red);color:#fff;border-radius:20px;font-size:10px;font-weight:800;padding:1px 6px}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.week .day{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;min-height:150px}
.week .day.today{border-color:var(--violet)}.week .day h5{font-size:12px;color:var(--faint);margin-bottom:8px}
.task{display:block;padding:7px 9px;border-radius:10px;background:var(--card2);margin-bottom:6px;font-size:12px;border-left:3px solid var(--violet)}
.task.overdue{border-left-color:var(--red)}.task small{display:block;color:var(--faint)}
.chatwrap{display:grid;grid-template-columns:260px 1fr;gap:16px;min-height:calc(100vh - 220px)}
.chatlist{display:flex;flex-direction:column;gap:6px}.chatlist a{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-weight:600;font-size:13px}
.chatlist a.on{border-color:var(--violet);background:rgba(185,166,255,.12)}.chatlist .cnt{background:var(--rose);color:#1b1030;border-radius:20px;padding:0 8px;font-size:11px}
.msgs{display:flex;flex-direction:column;gap:10px;overflow-y:auto;max-height:calc(100vh - 340px);padding-right:6px}
.sendform{display:flex;gap:10px;margin-top:12px}.sendform textarea{flex:1}
.plan{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);user-select:none}.plan img{width:100%;display:block}
.plan .mk{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800;box-shadow:0 0 0 3px rgba(255,255,255,.6);cursor:pointer}
.plan .mk.ok{background:var(--mint);color:#16122e}.plan.edit{cursor:crosshair}
.qrbox{background:#fff;padding:14px;border-radius:12px;display:inline-block;color:#000;text-align:center}.qrbox svg{width:180px;height:180px;display:block}
.kbbody{white-space:pre-line;line-height:1.7}
.notif{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card);margin-bottom:6px}
.notif.unread{border-color:var(--violet)}.notif small{margin-left:auto;color:var(--faint);white-space:nowrap}
.ann{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--card);margin-bottom:10px}.ann.new{border-color:var(--amber)}.ann.pin{border-color:var(--violet)}
@media(max-width:1100px){.week{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.chatwrap{grid-template-columns:1fr}.week{grid-template-columns:1fr}}
@media print{.noprint{display:none!important}}
.notif svg{width:18px;flex:none;color:var(--muted)}
.dmbtn{width:100%;display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-weight:600;font-size:13px;cursor:pointer;color:var(--text);text-align:left}
/* Stufe 5 */
.dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}.dl dt{color:var(--muted);font-size:13px}.dl dd{margin:0}
.pre{white-space:pre-line}
details.inl>summary{list-style:none;display:inline-flex}details.inl>summary::-webkit-details-marker{display:none}
details.inl[open]{min-width:min(560px,80vw)}details.inl[open]>form{margin-top:8px}
details.card>summary{cursor:pointer;list-style:none}
.steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.steps span{padding:4px 10px;border-radius:999px;border:1px solid var(--line);font-size:12px}.steps span.on{background:var(--acc,#7c5cff);color:#fff;border-color:transparent}
.maptbl select{min-width:180px}
.ckgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px}
.cmp3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.cmp3>div{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:14px;background:var(--card2,rgba(127,127,127,.06))}.cmp3 small{color:var(--muted)}
@media(max-width:760px){.cmp3{grid-template-columns:1fr}}
details.tpl{margin:6px 0}details.tpl>summary{cursor:pointer;font-weight:600}details.tpl textarea{margin:6px 0}
/* Netz-Darstellungen */
.ch.net .spoke{stroke:var(--line);stroke-dasharray:3 5}
.ch.net .edge{fill:none;stroke:var(--violet,#9b87f5);opacity:.45;transition:opacity .2s}
.ch.net .edge:hover{opacity:.95}
.ch.net .hub,.ch.orbit .sun{fill:var(--violet,#9b87f5);opacity:.9;filter:drop-shadow(0 0 10px rgba(155,135,245,.7))}
.ch.net .node{stroke:var(--bg,#111);stroke-width:2;transition:transform .2s;transform-box:fill-box;transform-origin:center;cursor:pointer}
.ch.net .node:hover,.ch.geo .pin:hover circle{transform:scale(1.25)}
.ch.net .neuron{opacity:.55;animation:pulse 3s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.25}50%{opacity:1}}
.ch .lbl{font-size:12px;font-weight:600;fill:var(--text)}.ch .lbl.s{font-size:10px;font-weight:500;fill:var(--muted)}
.ch.orbit .ring{fill:none;stroke:var(--line);stroke-dasharray:2 6}
.ch.orbit .planet{animation:spin linear infinite;transform:rotate(var(--start))}
@keyframes spin{from{transform:rotate(var(--start))}to{transform:rotate(calc(var(--start) + 360deg))}}
.ch.orbit .planet:hover{animation-play-state:paused}
.ch.geo .flow{fill:none;stroke:var(--mint,#5fd3a6);opacity:.55;stroke-dasharray:6 8;animation:flow 2.2s linear infinite}
@keyframes flow{to{stroke-dashoffset:-28}}
.ch.geo .pin circle{transition:transform .2s;transform-box:fill-box;transform-origin:center;cursor:pointer}
.ch.geo .own circle{fill:var(--violet,#9b87f5);stroke:#fff;stroke-width:2}
.ch.geo .rival circle{fill:var(--peach,#ffb86b);stroke:#fff;stroke-width:1.5}
.ch.geo .origin circle{fill:var(--mint,#5fd3a6);opacity:.8}
.ch.geo .lbls text{paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}
.tilt{perspective:900px}.tilt svg{transition:transform .15s ease-out;transform-style:preserve-3d}
@media (prefers-reduced-motion:reduce){.ch.net .neuron,.ch.orbit .planet,.ch.geo .flow{animation:none}}
.hovercard{position:relative;cursor:default}.hovercard .hc{display:none;position:absolute;left:0;top:120%;z-index:20;min-width:240px;max-width:320px;padding:12px 14px;border-radius:14px;background:var(--bg2,#1b1830);border:1px solid var(--line);box-shadow:0 12px 30px rgba(0,0,0,.25);font-weight:400;font-size:13px;line-height:1.5}
.hovercard:hover .hc,.hovercard:focus-within .hc{display:block}
/* Virtueller Rundgang */
.tourbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tourbar a{padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:13px}.tourbar a.on{background:var(--violet,#9b87f5);color:#fff;border-color:transparent}
.tourview{border-radius:16px;overflow:hidden;background:#000}
.tourimg{position:relative;line-height:0}.tourimg img{width:100%;height:auto;display:block;user-select:none}
.tourview.pano{overflow-x:auto;cursor:grab}.tourview.pano.drag{cursor:grabbing}.tourview.pano .tourimg{display:inline-block}.tourview.pano .tourimg img{height:460px;width:auto;max-width:none}
.tourimg[data-tour-pick]{cursor:crosshair}
.tmark{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1;background:rgba(255,255,255,.92);color:#222;box-shadow:0 0 0 4px rgba(155,135,245,.45);cursor:pointer;animation:pulse 2.4s ease-in-out infinite}
.tmark span{display:none;position:absolute;bottom:120%;left:50%;transform:translateX(-50%);white-space:nowrap;background:#111;color:#fff;padding:6px 10px;border-radius:10px;font-size:12px;line-height:1.4}
.tmark:hover span,.tmark:focus span{display:block}.tmark:hover{animation:none;transform:translate(-50%,-50%) scale(1.15)}
.tmark.weg{background:var(--violet,#9b87f5);color:#fff;font-size:18px}.tmark.k-feuerloescher,.tmark.k-brandschutztuer{box-shadow:0 0 0 4px rgba(255,90,90,.55)}.tmark.k-notausgang,.tmark.k-erste_hilfe{box-shadow:0 0 0 4px rgba(95,211,166,.6)}
dialog.dlg{border:1px solid var(--line);border-radius:20px;background:var(--bg2,#1b1830);color:var(--text);padding:20px;width:min(520px,92vw)}dialog.dlg::backdrop{background:rgba(0,0,0,.45)}
.mread summary{cursor:pointer;list-style-position:outside}
.camgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:16px}
.camtile{margin:0;padding:8px}.camtile canvas{width:100%;height:auto;border-radius:8px;display:block;background:#000}.camtile figcaption{padding:8px 4px 2px;font-size:.92em}
.navsub{display:flex;flex-direction:column;margin:2px 0 6px 44px;border-left:2px solid var(--line);padding-left:8px}
.navsub a{color:var(--muted);font-size:13px;padding:5px 8px;border-radius:8px;text-decoration:none;font-weight:600}.navsub a:hover{color:var(--text)}.navsub a.on{color:var(--text);background:var(--card)}
.subgroups{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;margin-bottom:16px}.subgroups .grp{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.subgroups .grp>span{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-right:2px}
.subgroups .grp.cur>span{color:var(--violet)}
.progress{height:14px;border-radius:10px;background:var(--line);overflow:hidden}.progress>div{height:100%;border-radius:10px;background:linear-gradient(90deg,var(--violet),var(--mint));transition:width .6s}
a.card.kpi{text-decoration:none;color:inherit}a.card.kpi:hover{border-color:var(--violet)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}.seg a{padding:7px 12px;font-size:13px;font-weight:600;text-decoration:none;color:var(--muted)}.seg a.on{background:rgba(185,166,255,.18);color:var(--text)}
.calleg{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.calleg .ev{display:inline-block;margin:0}
.cal{display:grid;gap:8px}.cal.woche{grid-template-columns:repeat(7,minmax(0,1fr))}.cal.monat{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal .wd{font-size:11px;font-weight:800;color:var(--faint);text-align:center;text-transform:uppercase}
.cal .cd{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px;min-height:110px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cal.woche .cd{min-height:260px}.cal .cd.today{border-color:var(--violet);box-shadow:0 0 0 1px var(--violet)}.cal .cd.other{opacity:.45}
.cal .dn{font-weight:800;font-size:13px;color:var(--text);text-decoration:none;margin-bottom:2px}
.ev{display:block;font-size:11.5px;line-height:1.3;padding:4px 7px;border-radius:7px;text-decoration:none;color:var(--text);border-left:3px solid var(--sky);background:rgba(140,202,255,.12);overflow:hidden;text-overflow:ellipsis}
.ev small{display:block;color:var(--muted);font-size:10.5px}.ev.big{font-size:14px;padding:10px 12px;margin-bottom:8px}.ev.big small{font-size:12px}
.ev.pflege{border-color:var(--mint);background:rgba(134,240,198,.12)}.ev.pruefung{border-color:var(--amber);background:rgba(255,217,138,.14)}
.ev.erledigt{border-color:var(--faint);background:transparent;color:var(--muted)}.ev.vertrag{border-color:var(--peach);background:rgba(255,181,156,.14)}.ev.late{border-color:var(--red);background:rgba(255,138,155,.14)}
.cal .more{font-size:11px;color:var(--muted)}
@media(max-width:900px){.cal.woche{grid-template-columns:1fr}.cal.woche .cd{min-height:0}.cal.monat .ev{font-size:0;padding:3px;border-left-width:6px}.cal.monat .cd{min-height:64px}}
.hwgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.hw{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;padding:14px}.hw:hover{border-color:var(--violet)}.hw.off{opacity:.5}
.hw small{display:block;font-size:12px}.hwav{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,var(--violet),var(--sky));color:#16122e;flex:none}
.techgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.techc{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit;padding:12px 14px}.techc b{font-size:24px}.techc span{font-weight:700}.techc small{color:var(--muted);font-size:11px}.techc.on,.techc:hover{border-color:var(--violet)}
.askbox{display:flex;gap:10px;padding:12px}.askbox .inp{flex:1;font-size:15px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:var(--card);font-size:12.5px;text-decoration:none;color:var(--muted)}.chip:hover{color:var(--text);border-color:var(--violet)}
.filerow>a{min-width:140px;word-break:normal;overflow-wrap:anywhere}.filerow>small{white-space:normal;text-align:right;max-width:65%}.filerow>span{min-width:0;flex:1 1 auto}
.warn{color:var(--amber)!important;font-weight:600}
/* M17.2 Farbwelten (Version 6.0): je Welt hell und dunkel */
body.retro{--bg:#f3ead8;--bg2:#fffaf0;--card:rgba(255,252,244,.82);--card2:rgba(110,70,30,.06);--line:rgba(110,70,30,.16);--text:#3a2716;--muted:#7d6447;--faint:#b49a7a;--violet:#c0602a;--mint:#6f8f3a;--peach:#e08a3c;--sky:#7a9a8c;--rose:#c46f55;--amber:#d49a2a;--red:#b8483a;--glow:0 0 0 1px var(--line),0 18px 40px -24px rgba(60,50,30,.3)}
body.retro .space .b1{background:#e8b47a;opacity:.5}body.retro .space .b2{background:#a9c08a;opacity:.5}body.retro .space .b3{background:#e9cfa4;opacity:.5}body.retro .starfield{display:none}
body.retro .btn.pri{background:linear-gradient(135deg,#d9783a,#9c4f22);color:#fff;box-shadow:0 10px 26px -10px #9c4f22}
body.retro .nav.on{background:linear-gradient(90deg,rgba(192,96,42,.22),rgba(192,96,42,.04));box-shadow:inset 0 0 0 1px rgba(192,96,42,.3)}body.retro .chip.on{background:rgba(192,96,42,.18)}
body.retro .logo .mark,body.retro .lbox .mark{background:conic-gradient(from 200deg,#c0602a,#6f8f3a,#e08a3c,#c0602a)}
body.retro .side{background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,.25))}body.retro .ov{background:rgba(40,40,20,.25)}
body.retronacht{--bg:#1f160e;--bg2:#2a1e13;--card:rgba(255,230,190,.05);--card2:rgba(255,220,170,.08);--line:rgba(255,220,170,.12);--text:#f4e6cf;--muted:#c4a885;--faint:#80684c;--violet:#e38a4a;--mint:#a3bf6a;--peach:#f0a35c;--sky:#9fbfae;--rose:#e0937a;--amber:#f0c060;--red:#e0705f;--glow:0 0 0 1px var(--line),0 20px 50px -20px rgba(0,0,0,.6)}
body.retronacht .space .b1{background:#8a4a1e;opacity:.3}body.retronacht .space .b2{background:#4f6a2a;opacity:.3}body.retronacht .space .b3{background:#7a5a2a;opacity:.3}body.retronacht .starfield{opacity:.4}
body.retronacht .btn.pri{background:linear-gradient(135deg,#e38a4a,#b0602a);color:#1f160e;box-shadow:0 10px 26px -10px #b0602a}
body.retronacht .nav.on{background:linear-gradient(90deg,rgba(227,138,74,.22),rgba(227,138,74,.04));box-shadow:inset 0 0 0 1px rgba(227,138,74,.3)}body.retronacht .chip.on{background:rgba(227,138,74,.18)}
body.retronacht .logo .mark,body.retronacht .lbox .mark{background:conic-gradient(from 200deg,#e38a4a,#a3bf6a,#f0a35c,#e38a4a)}
body.sonnig{--bg:#fdf8e4;--bg2:#fffef6;--card:rgba(255,255,250,.85);--card2:rgba(120,140,60,.06);--line:rgba(110,130,80,.15);--text:#2f3a2a;--muted:#6c7a5e;--faint:#aab59a;--violet:#e0b030;--mint:#7fbf7a;--peach:#f2b07a;--sky:#7fb6e0;--rose:#e8a0b0;--amber:#e6b422;--red:#d8665a;--glow:0 0 0 1px var(--line),0 18px 40px -24px rgba(60,50,30,.3)}
body.sonnig .space .b1{background:#fbe7a0;opacity:.5}body.sonnig .space .b2{background:#cfe8c0;opacity:.5}body.sonnig .space .b3{background:#cfe4f6;opacity:.5}body.sonnig .starfield{display:none}
body.sonnig .btn.pri{background:linear-gradient(135deg,#f2c94c,#e0a82e);color:#2f3a2a;box-shadow:0 10px 26px -10px #e0a82e}
body.sonnig .nav.on{background:linear-gradient(90deg,rgba(224,176,48,.22),rgba(224,176,48,.04));box-shadow:inset 0 0 0 1px rgba(224,176,48,.3)}body.sonnig .chip.on{background:rgba(224,176,48,.18)}
body.sonnig .logo .mark,body.sonnig .lbox .mark{background:conic-gradient(from 200deg,#e0b030,#7fbf7a,#f2b07a,#e0b030)}
body.sonnig .side{background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,.25))}body.sonnig .ov{background:rgba(40,40,20,.25)}
body.sonnignacht{--bg:#141a20;--bg2:#1b232b;--card:rgba(255,250,220,.05);--card2:rgba(255,250,220,.08);--line:rgba(255,250,220,.11);--text:#f6f2dc;--muted:#b9c2a8;--faint:#6c7868;--violet:#f2cf5c;--mint:#9fd89a;--peach:#f4c09a;--sky:#9fcdf0;--rose:#f0b8c4;--amber:#f2cf5c;--red:#ef8a7e;--glow:0 0 0 1px var(--line),0 20px 50px -20px rgba(0,0,0,.6)}
body.sonnignacht .space .b1{background:#5a5a2a;opacity:.3}body.sonnignacht .space .b2{background:#2f5a3a;opacity:.3}body.sonnignacht .space .b3{background:#2f4f6a;opacity:.3}body.sonnignacht .starfield{opacity:.4}
body.sonnignacht .btn.pri{background:linear-gradient(135deg,#f2cf5c,#d8a83a);color:#141a20;box-shadow:0 10px 26px -10px #d8a83a}
body.sonnignacht .nav.on{background:linear-gradient(90deg,rgba(242,207,92,.22),rgba(242,207,92,.04));box-shadow:inset 0 0 0 1px rgba(242,207,92,.3)}body.sonnignacht .chip.on{background:rgba(242,207,92,.18)}
body.sonnignacht .logo .mark,body.sonnignacht .lbox .mark{background:conic-gradient(from 200deg,#f2cf5c,#9fd89a,#f4c09a,#f2cf5c)}
body.ozean{--bg:#eaf4f8;--bg2:#fafdff;--card:rgba(255,255,255,.82);--card2:rgba(20,90,120,.06);--line:rgba(20,90,120,.14);--text:#12303d;--muted:#4f7180;--faint:#93b2bf;--violet:#1f8fb0;--mint:#1fb59a;--peach:#f08a6a;--sky:#3aa0e0;--rose:#d96a9a;--amber:#e0a83a;--red:#d9504f;--glow:0 0 0 1px var(--line),0 18px 40px -24px rgba(60,50,30,.3)}
body.ozean .space .b1{background:#a8dcef;opacity:.5}body.ozean .space .b2{background:#b8ecdf;opacity:.5}body.ozean .space .b3{background:#cfe2f6;opacity:.5}body.ozean .starfield{display:none}
body.ozean .btn.pri{background:linear-gradient(135deg,#2aa6c8,#14708f);color:#fff;box-shadow:0 10px 26px -10px #14708f}
body.ozean .nav.on{background:linear-gradient(90deg,rgba(31,143,176,.22),rgba(31,143,176,.04));box-shadow:inset 0 0 0 1px rgba(31,143,176,.3)}body.ozean .chip.on{background:rgba(31,143,176,.18)}
body.ozean .logo .mark,body.ozean .lbox .mark{background:conic-gradient(from 200deg,#1f8fb0,#1fb59a,#f08a6a,#1f8fb0)}
body.ozean .side{background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,.25))}body.ozean .ov{background:rgba(40,40,20,.25)}
body.ozeannacht{--bg:#06141c;--bg2:#0b1e29;--card:rgba(200,240,255,.05);--card2:rgba(200,240,255,.08);--line:rgba(200,240,255,.10);--text:#e2f4fb;--muted:#8fb4c4;--faint:#4f7282;--violet:#5fd0f0;--mint:#5ff0c8;--peach:#ffb08f;--sky:#7fc8ff;--rose:#ff9fc8;--amber:#ffd98a;--red:#ff8a9b;--glow:0 0 0 1px var(--line),0 20px 50px -20px rgba(0,0,0,.6)}
body.ozeannacht .space .b1{background:#0f5a7a;opacity:.3}body.ozeannacht .space .b2{background:#0f6a5a;opacity:.3}body.ozeannacht .space .b3{background:#1a3f7a;opacity:.3}body.ozeannacht .starfield{opacity:.4}
body.ozeannacht .btn.pri{background:linear-gradient(135deg,#5fd0f0,#2a98c0);color:#06141c;box-shadow:0 10px 26px -10px #2a98c0}
body.ozeannacht .nav.on{background:linear-gradient(90deg,rgba(95,208,240,.22),rgba(95,208,240,.04));box-shadow:inset 0 0 0 1px rgba(95,208,240,.3)}body.ozeannacht .chip.on{background:rgba(95,208,240,.18)}
body.ozeannacht .logo .mark,body.ozeannacht .lbox .mark{background:conic-gradient(from 200deg,#5fd0f0,#5ff0c8,#ffb08f,#5fd0f0)}
body.wald{--bg:#eef3e8;--bg2:#fbfdf8;--card:rgba(255,255,252,.82);--card2:rgba(50,90,40,.06);--line:rgba(50,90,40,.14);--text:#1f2e1a;--muted:#5d7354;--faint:#a0b296;--violet:#4f8a3a;--mint:#3aa078;--peach:#d98a5a;--sky:#5a90b0;--rose:#c4708a;--amber:#c9a02a;--red:#c4503f;--glow:0 0 0 1px var(--line),0 18px 40px -24px rgba(60,50,30,.3)}
body.wald .space .b1{background:#c2dca8;opacity:.5}body.wald .space .b2{background:#a8d0b8;opacity:.5}body.wald .space .b3{background:#e0e8c4;opacity:.5}body.wald .starfield{display:none}
body.wald .btn.pri{background:linear-gradient(135deg,#5f9a46,#3a6a2a);color:#fff;box-shadow:0 10px 26px -10px #3a6a2a}
body.wald .nav.on{background:linear-gradient(90deg,rgba(79,138,58,.22),rgba(79,138,58,.04));box-shadow:inset 0 0 0 1px rgba(79,138,58,.3)}body.wald .chip.on{background:rgba(79,138,58,.18)}
body.wald .logo .mark,body.wald .lbox .mark{background:conic-gradient(from 200deg,#4f8a3a,#3aa078,#d98a5a,#4f8a3a)}
body.wald .side{background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,.25))}body.wald .ov{background:rgba(40,40,20,.25)}
body.waldnacht{--bg:#0d140c;--bg2:#141e12;--card:rgba(220,255,200,.05);--card2:rgba(220,255,200,.08);--line:rgba(220,255,200,.10);--text:#e6f2dc;--muted:#a2b892;--faint:#5f7454;--violet:#8fd06a;--mint:#6fe0a8;--peach:#f0b07a;--sky:#8fc0e0;--rose:#e0a0b8;--amber:#e8cf6a;--red:#ef8a7e;--glow:0 0 0 1px var(--line),0 20px 50px -20px rgba(0,0,0,.6)}
body.waldnacht .space .b1{background:#2f5a1e;opacity:.3}body.waldnacht .space .b2{background:#1e5a3a;opacity:.3}body.waldnacht .space .b3{background:#4a5a1e;opacity:.3}body.waldnacht .starfield{opacity:.4}
body.waldnacht .btn.pri{background:linear-gradient(135deg,#8fd06a,#5a9a3a);color:#0d140c;box-shadow:0 10px 26px -10px #5a9a3a}
body.waldnacht .nav.on{background:linear-gradient(90deg,rgba(143,208,106,.22),rgba(143,208,106,.04));box-shadow:inset 0 0 0 1px rgba(143,208,106,.3)}body.waldnacht .chip.on{background:rgba(143,208,106,.18)}
body.waldnacht .logo .mark,body.waldnacht .lbox .mark{background:conic-gradient(from 200deg,#8fd06a,#6fe0a8,#f0b07a,#8fd06a)}
.themesel{display:flex;align-items:center;gap:6px}.themesel select{padding:7px 10px;border-radius:12px;background:var(--card);color:var(--text);border:1px solid var(--line);font-weight:600;font-size:12.5px}
.themesel option{background:var(--bg2);color:var(--text)}
.hero{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;align-items:center;background:linear-gradient(135deg,rgba(185,166,255,.14),rgba(134,240,198,.08))}
.hero h2{margin:4px 0 6px;font-size:26px;letter-spacing:-.5px}.hero small{color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.hero p{color:var(--muted);margin:0 0 12px}
@media(max-width:1000px){.hero{grid-template-columns:1fr}}
.globewrap{position:relative;border-radius:16px;overflow:hidden;background:radial-gradient(ellipse at center,rgba(185,166,255,.12),transparent 70%)}
.globewrap canvas{width:100%;height:auto;display:block;cursor:grab}.globewrap canvas:active{cursor:grabbing}
.globelegend{position:absolute;left:14px;bottom:12px;display:flex;gap:14px;font-size:12px;color:var(--muted)}.globelegend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}
.repbtn{position:relative}.repbtn>summary{list-style:none}.repbtn>summary::-webkit-details-marker{display:none}
.repbox{position:absolute;right:0;top:44px;width:340px;z-index:50;padding:14px}.rephead{display:none}
@media print{
  body.rep-print .page>*:not(.rephead):not(.repout){display:none!important}body.rep-print .rephead{display:flex!important;justify-content:space-between;align-items:baseline;border-bottom:2px solid #6b5bd2;padding-bottom:6px;margin-bottom:10px}
  body.rep-print .rephead b{font-size:20px}body.rep-print .rephead span{font-size:10px;color:#555}
  body.rep-print .repout{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}body.rep-print .repout .card{padding:8px;break-inside:avoid;max-height:84mm;overflow:hidden}
  body.rep-print .repout svg{max-height:70mm;width:100%}body.rep-print .repout .wide{grid-column:span 2}
  @page{size:A4;margin:12mm}
}
.repout{display:none}
.notrans *,.notrans *::before,.notrans *::after{transition:none!important;animation:none!important}
.msgs{display:flex;flex-direction:column;gap:8px}.cmsg{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--card);max-width:88%}
.cmsg.out{align-self:flex-end;background:rgba(185,166,255,.10)}.cmsg .mh{font-size:12px;color:var(--muted);margin-bottom:4px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.assignf{display:flex;flex-direction:column;gap:4px;min-width:220px;position:relative}.lead-hits{position:absolute;top:38px;left:0;right:0;z-index:20;background:var(--bg2);border:1px solid var(--line);border-radius:10px;display:none}
.lead-hits a{display:block;padding:6px 10px;font-size:12.5px;text-decoration:none;color:var(--text)}.lead-hits a:hover{background:var(--card2)}
.gembed{border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--card2)}.gembed.size-s{height:240px}.gembed.size-m{height:380px}.gembed.size-l{height:640px}
.gembed iframe{width:100%;height:100%;border:0;background:#fff}.gembed-ph{height:100%;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;text-align:center;padding:16px}
.gtiles{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:18px}.gtile.s{grid-column:span 2}.gtile.m{grid-column:span 3}.gtile.l{grid-column:span 6}
@media(max-width:900px){.gtile.s,.gtile.m,.gtile.l{grid-column:span 6}}
.blogo{display:inline-block;vertical-align:middle;border-radius:6px}.blogo.txt{display:inline-grid;place-items:center;background:var(--card2);font-weight:800;font-size:11px;color:var(--muted)}
.acc{border-top:1px solid var(--line);padding:12px 0}.acch{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.acch .btn{margin-left:auto}
.ltiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.ltile{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}.ltile.off{opacity:.45}
.ltile img,.ltile .noimg{width:100%;height:120px;object-fit:cover;display:block}.ltile .noimg{display:grid;place-items:center;color:var(--faint);background:var(--card2)}
.lt-b{padding:8px 10px;display:flex;flex-direction:column;gap:3px}.lt-b small{font-size:11.5px}.lt-b .actions{margin-top:4px}
.v6plan{position:relative}.planov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.planov a,.planov rect{pointer-events:all}
.planov .subplan{fill:rgba(185,166,255,.08);stroke:var(--violet);stroke-width:.4;stroke-dasharray:1.2 .8;cursor:pointer}.planov .subplan:hover{fill:rgba(185,166,255,.2)}
.planov .route{fill:none;stroke:#18b45b;stroke-width:.9;stroke-linejoin:round;stroke-dasharray:2 1;vector-effect:non-scaling-stroke;stroke-width:4px}
.planov .netline{stroke:#ff7a45;stroke-width:3px;vector-effect:non-scaling-stroke;stroke-dasharray:8 5;animation:dash 1s linear infinite}@keyframes dash{to{stroke-dashoffset:-26}}
.pm{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:13px;text-decoration:none;background:#fff;box-shadow:0 0 0 2px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.25)}
.pm.sub{width:20px;height:20px;font-size:10px;opacity:.85}.pm.k-feuerloescher{background:#ffe1e1}.pm.k-eingang{background:#e3f0ff}.pm.k-fluchtweg,.pm.k-sammelplatz{background:#dff7e7}
.pm.hit{box-shadow:0 0 0 4px var(--amber),0 0 18px var(--amber);z-index:3;width:32px;height:32px}.pm.start{box-shadow:0 0 0 4px #ff7a45;z-index:3}.pm.goal{box-shadow:0 0 0 4px #18b45b;z-index:3;width:32px;height:32px}
.micwrap{position:relative;display:block;flex:1}.micwrap>.inp{width:100%;padding-right:40px}
.micbtn{position:absolute;right:6px;bottom:6px;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--card2);cursor:pointer;font-size:14px;line-height:1}
.micbtn.on{background:var(--red);animation:pulse 1s infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(255,138,155,.3)}}
/* M09.12–M09.15 Heizung: Tankfüllstand, Peiltabelle */
.tankbar{display:grid;grid-template-columns:minmax(140px,1.2fr) 2fr minmax(150px,1.2fr);gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.tankbar:last-child{border-bottom:0}.tankbar .tb{height:14px;border-radius:7px;background:rgba(127,127,127,.15);overflow:hidden}
.tankbar .tb i{display:block;height:100%;background:linear-gradient(90deg,var(--sky),var(--violet));border-radius:7px}.tankbar .tb i.low{background:var(--red,#e5484d)}
.tankbig{position:relative;height:220px;width:120px;border:3px solid var(--line);border-radius:18px;overflow:hidden;margin:0 auto;background:rgba(127,127,127,.08)}
.tankbig i{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,#b8862b,#e3b65a)}.tankbig b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;text-shadow:0 1px 3px rgba(0,0,0,.4);color:#fff}
.peil{max-height:340px;overflow:auto}.peil table td,.peil table th{padding:3px 10px}
tr.sub td{background:rgba(127,127,127,.05);font-size:13px}
.calcbox{font-family:ui-monospace,monospace;font-size:13px;line-height:1.7;background:rgba(127,127,127,.07);border-radius:10px;padding:10px 14px}
@media(max-width:700px){.tankbar{grid-template-columns:1fr}}
/* Kanal-Abzeichen & Nachrichtenverlauf (Farbe des Originalkanals) */
.chan{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 6px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;
  background:color-mix(in srgb,var(--ch) 16%,transparent);color:color-mix(in srgb,var(--ch) 75%,var(--text));border:1px solid color-mix(in srgb,var(--ch) 40%,transparent)}
.chan img{display:block;background:#fff;border-radius:50%;padding:1px}.chan .chdot{width:10px;height:10px;border-radius:50%;display:inline-block}
tr.chrow td:first-child{box-shadow:inset 4px 0 0 var(--ch)}tr.chrow.unread td{font-weight:600}
.thread{display:flex;flex-direction:column;gap:10px}
.bub{max-width:78%;border-radius:14px;padding:10px 13px;border:1px solid color-mix(in srgb,var(--ch) 35%,transparent);background:color-mix(in srgb,var(--ch) 10%,transparent);position:relative}
.bub.in{align-self:flex-start;border-top-left-radius:4px}.bub.out{align-self:flex-end;border-top-right-radius:4px;background:color-mix(in srgb,var(--ch) 20%,transparent)}
.bub .mh{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:6px}
.bub .pre{white-space:pre-wrap;line-height:1.5}.bub.hl{outline:2px solid var(--ch)}
.origin{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.mailhead{border-left:5px solid var(--ch);padding:10px 14px;border-radius:10px;background:color-mix(in srgb,var(--ch) 8%,transparent)}
.mailhead dl{display:grid;grid-template-columns:90px 1fr;gap:3px 10px;margin:6px 0 0;font-size:13px}.mailhead dt{color:var(--muted)}
.lsearch{position:relative}.lsearch .lead-hits{top:44px}
.daygrp{margin-top:14px}.daygrp h3{font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.apt{display:grid;grid-template-columns:110px 1.4fr 1.2fr 1.4fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;margin-bottom:8px;cursor:pointer;background:rgba(127,127,127,.04)}
.apt:hover{border-color:var(--violet)}.apt .tm{font-size:20px;font-weight:700}.apt.today{border-color:var(--mint)}
.ppl{display:flex;flex-wrap:wrap;gap:4px}.ppl .pp{font-size:12px;padding:2px 8px;border-radius:999px;background:rgba(127,127,127,.14)}.ppl .pp.lead{background:color-mix(in srgb,var(--violet) 25%,transparent)}
.ckgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}
@media(max-width:800px){.apt{grid-template-columns:1fr 1fr}}
details.sendbox{margin-top:4px}details.sendbox>summary{list-style:none}details.sendbox[open]>form{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(127,127,127,.04)}
textarea[data-autogrow]{resize:vertical;overflow:hidden}
.tabs a small.due{background:color-mix(in srgb,var(--red) 25%,transparent);color:var(--red);padding:1px 6px;border-radius:8px;margin-left:4px}
.upu{align-items:flex-start;padding:8px;border:1px solid var(--line);border-radius:10px}.upu.sel{border-color:var(--violet)}
.money-pos{color:var(--mint);font-weight:800}.money-dep{color:var(--red);font-weight:800}.size-red{color:var(--red);font-weight:800}.btn.btn-go{background:var(--mint);border-color:var(--mint);color:#06231a}
.keygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.keycard{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;align-items:start}
.keycard img,.keycard .kph{width:72px;height:72px;border-radius:10px;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:30px;background:rgba(127,127,127,.12)}
/* Lagerorte: große Karten mit Titelbild (einheitlich schwarz-weiß, beim Darüberfahren farbig und leicht bewegt) */
.sitegrid .sitecard.big{padding:0;overflow:hidden}.sitecard.big>*:not(.cover){margin-left:18px;margin-right:18px}.sitecard.big>.occ{margin-bottom:18px}
.sitecard .cover{position:relative;height:190px;overflow:hidden;margin-bottom:14px}
.sitecard .cover img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transform:scale(1.02);transition:filter .5s,transform 6s ease-out}
.sitecard:hover .cover img{filter:grayscale(0);transform:scale(1.12)}
.sitecard .cover-ph{height:100%;display:flex;align-items:center;justify-content:center;filter:grayscale(1);transition:filter .5s;
  background:radial-gradient(circle at 30% 30%,hsl(var(--h) 60% 55%),transparent 60%),linear-gradient(135deg,hsl(var(--h) 40% 25%),hsl(calc(var(--h) + 60) 40% 15%))}
.sitecard:hover .cover-ph{filter:none}.sitecard .cover-ph span{font-size:54px;font-weight:800;color:rgba(255,255,255,.55);letter-spacing:.05em}
.sitecard .cover-name{position:absolute;left:16px;bottom:12px;color:#fff;font-weight:800;font-size:22px;text-shadow:0 2px 10px rgba(0,0,0,.7)}
@media (prefers-reduced-motion:reduce){.sitecard .cover img{transition:filter .5s}}
.candlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px;max-height:300px;overflow:auto;padding:2px}
.cand{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.cand:has(input:checked){border-color:var(--mint);background:color-mix(in srgb,var(--mint) 10%,transparent)}
.chtabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:8px}
.chtabs a{padding:4px;border-radius:999px;border:2px solid transparent;opacity:.6}.chtabs a.on{border-color:var(--ch);opacity:1}.chtabs a:hover{opacity:1}
