:root{--page:#ececef;--bg:#f6f6f8;--panel:#fff;--ink:#14151a;--mute:#7a7f8a;--line:#e8e9ee;--brand:#111216;--brand-l:#f0f0f3;--on-brand:#fff;--ok:#2b8a3e;--ok-l:#e6f6ea;--warn:#d9730d;--warn-l:#fff4e0;--bad:#d03a3a;--bad-l:#fde8e8;--info:#3b5bdb;--info-l:#e9edff;--r:14px;--c1:#e0769a;--c2:#4b3fe0;--c3:#3aa05a;--c4:#f0a23b}:root[data-theme=dark]{--page:#0e0f12;--bg:#16171c;--panel:#1c1d23;--ink:#ececf0;--mute:#8b8f9a;--line:#2c2e36;--brand:#f2f2f5;--brand-l:#2a2b33;--on-brand:#111;--ok-l:#16301d;--warn-l:#3a2b10;--bad-l:#3b1818;--info-l:#1b2447;--info:#8da2ff}*{box-sizing:border-box}body{background:var(--page);color:var(--ink);margin:0;font:13.5px/1.45 Inter,Segoe UI,system-ui,sans-serif}#root{min-height:100vh}a{color:inherit}h1,h2,h3{margin:0}.shell{gap:12px;height:100vh;padding:12px;display:flex}.side{background:var(--panel);border:1px solid var(--line);border-radius:18px;flex-direction:column;flex-shrink:0;width:232px;padding:10px;display:flex}.logo{border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;margin-bottom:8px;padding:9px 10px;display:flex}.logo i{background:var(--brand);width:30px;height:30px;color:var(--on-brand);border-radius:8px;place-items:center;font-style:normal;font-weight:700;display:grid}.logo b{line-height:1.1;display:block}.logo small{color:var(--mute);font-size:11px}.nav{flex:1;padding:0 2px}.nav .grp{color:var(--mute);margin:14px 10px 6px;font-size:11.5px}.nav a{color:var(--mute);border-radius:9px;align-items:center;gap:11px;margin-bottom:2px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{background:var(--bg);color:var(--ink)}.nav a.aktiv{background:var(--brand-l);color:var(--ink);font-weight:600}.user{border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.user b{font-size:13px;display:block}.user small{color:var(--mute)}.main{background:var(--panel);border:1px solid var(--line);border-radius:18px;flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.top{border-bottom:1px solid var(--line);height:56px;color:var(--mute);align-items:center;gap:12px;padding:0 18px;display:flex}.top .sp{flex:1}.content{flex:1;padding:18px 20px 28px;overflow:auto}.ph{align-items:center;gap:10px;margin-bottom:16px;display:flex}.ph h2{letter-spacing:-.01em;flex:1;font-size:23px}.btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;border-radius:9px;align-items:center;gap:7px;padding:7px 13px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.p{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn.p:hover:not(:disabled){opacity:.88;background:var(--brand)}.btn.sm{padding:3px 10px;font-size:12.5px}.btn.danger{color:var(--bad)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px}.card.t{padding:0;overflow:hidden}.card h3{margin-bottom:12px;font-size:14px}.grid{gap:14px;display:grid}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g21{grid-template-columns:2fr 1fr}@media (width<=1100px){.g4{grid-template-columns:1fr 1fr}.g21{grid-template-columns:1fr}}@media (width<=900px){.g2,.g3{grid-template-columns:1fr}.side{display:none}}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--mute);background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:12.5px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}tr:last-child td{border-bottom:0}tr.klick{cursor:pointer}tr.klick:hover td{background:var(--bg)}.tag{border-radius:99px;padding:1px 9px;font-size:12px;font-weight:600;display:inline-block}.t-ok{background:var(--ok-l);color:var(--ok)}.t-warn{background:var(--warn-l);color:var(--warn)}.t-bad{background:var(--bad-l);color:var(--bad)}.t-info{background:var(--info-l);color:var(--info)}.t-mute{background:var(--bg);color:var(--mute);border:1px solid var(--line)}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:16px;display:flex}.tabs button{color:var(--mute);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:9px 16px;font-weight:600}.tabs button.aktiv{color:var(--ink);border-color:var(--ink)}.mut{color:var(--mute)}.leer{text-align:center;color:var(--mute);padding:28px}.form{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.form .voll{grid-column:1/-1}label.f{display:block}label.f>span{color:var(--mute);margin-bottom:3px;font-size:12px;display:block}input,select,textarea{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:9px;width:100%;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);padding:0}.fehler{color:var(--bad);margin-top:3px;font-size:12px}.meldung{border-radius:9px;margin-bottom:12px;padding:10px 12px}.meldung.bad{background:var(--bad-l);color:var(--bad)}.meldung.ok{background:var(--ok-l);color:var(--ok)}.meldung.warn{background:var(--warn-l);color:var(--warn)}.module{grid-template-columns:repeat(3,1fr);gap:6px 14px;display:grid}.module label{align-items:center;gap:8px;display:flex}.kopier{gap:8px;display:flex}.kopier input{font-family:Consolas,monospace}.key{letter-spacing:.04em;font-family:Consolas,monospace;font-size:16px;font-weight:700}.mb{z-index:10;background:#0006;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.md{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:min(620px,100%);max-height:90vh;padding:20px;overflow:auto}.md h3{margin-bottom:14px;font-size:17px}.md .aktionen{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.zentrum{place-items:center;min-height:100vh;padding:16px;display:grid}.login{width:min(400px,100%)}.login .logo{border:0;margin:0;padding:0 0 18px}.kz{color:#111;white-space:nowrap;background:#fff;border:1.5px solid #c8102e;border-radius:4px;align-items:stretch;padding:0 7px 0 0;font-family:Consolas,monospace;font-size:12.5px;font-weight:700;line-height:1.5;display:inline-flex;overflow:hidden}.kz:before{content:"A";color:#fff;background:#039 radial-gradient(circle at 50% 28%,#fc0 0 1.2px,#0000 1.6px);align-items:flex-end;margin-right:6px;padding:9px 4px 1px;font-size:8px;font-weight:700;line-height:1;display:flex}.kz.gross{font-size:18px}.toolbar,.fbar{flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex}.toolbar .sp,.fbar .sp{flex:1}.toolbar input[type=search]{width:260px}.toolbar select{width:auto}.chk{color:var(--ink);align-items:center;gap:8px;display:flex}.pager{border-top:1px solid var(--line);color:var(--mute);justify-content:flex-end;align-items:center;gap:6px;padding:10px 14px;display:flex}.who{align-items:center;gap:10px;display:flex}.who b{font-size:13px;display:block}.who small{color:var(--mute);font-size:12px}.ava{background:var(--brand-l);border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:grid}.auswahl{position:relative}.auswahl .liste{z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:10px;max-height:260px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0002}.auswahl .liste button{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 12px;display:block}.auswahl .liste button:hover{background:var(--bg)}.auswahl .liste small{color:var(--mute);display:block}.board{grid-template-columns:repeat(4,minmax(210px,1fr));align-items:start;gap:12px;display:grid;overflow-x:auto}.spalte{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);min-height:120px;padding:10px}.spalte h4{color:var(--mute);justify-content:space-between;margin:2px 4px 10px;font-size:12px;display:flex}.karte{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:10px;margin-bottom:8px;padding:10px 12px}.karte:hover,.karte:focus-visible{border-color:var(--ink);outline:0}.karte .titel{margin:8px 0 2px;font-weight:600}table.pos td{vertical-align:middle;padding:6px 8px}table.pos input,table.pos select{padding:5px 8px}.summen{width:min(340px,100%);margin-left:auto;padding:10px 16px}.summen div{justify-content:space-between;padding:3px 0;display:flex}.summen .gesamt{border-top:2px solid var(--ink);margin-top:6px;padding-top:8px;font-size:17px;font-weight:700}a{text-decoration:none}a:hover{text-decoration:underline}.bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.bar .sp{flex:1}.seg{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:2px;display:flex}.seg button{font:inherit;color:var(--mute);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:4px 14px;font-weight:600}.seg button.on{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #0002}.cal{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);display:grid;overflow:hidden}.cal .hd{text-align:center;border-bottom:1px solid var(--line);background:var(--bg);padding:8px;font-weight:600}.cal .hd small{color:var(--mute);font-size:11.5px;font-weight:400;display:block}.cal .hd.today b{background:var(--brand);color:var(--on-brand);border-radius:99px;padding:1px 9px}.cal .hrs div{height:48px;color:var(--mute);text-align:right;border-top:1px solid var(--line);padding:2px 8px 0 0;font-size:11.5px}.cal .day{border-left:1px solid var(--line);background-image:linear-gradient(var(--line) 1px, transparent 1px);background-size:100% 48px;position:relative}.cal .day.today{background-color:var(--bg)}.ev{cursor:pointer;border-left:3px solid var(--c);background:color-mix(in srgb, var(--c) 15%, var(--panel));border-radius:8px;padding:4px 7px;font-size:12px;line-height:1.35;position:absolute;left:3px;right:3px;overflow:hidden}.ev[draggable=true]{cursor:grab}.ev:active{opacity:.7}.ev small{color:var(--mute);display:block}.ev.s-Abgesagt,.ev.s-NichtErschienen{opacity:.55;text-decoration:line-through}.ev.s-Erschienen{border-left-color:var(--ok)}.leg2{color:var(--mute);align-items:center;gap:16px;font-size:12.5px;display:flex}.leg2 i{border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}dl.kv{grid-template-columns:repeat(4,1fr);gap:10px 16px;margin:0;display:grid}dl.kv .voll{grid-column:1/-1}dl.kv dt{color:var(--mut,#667);font-size:12px}dl.kv dd{margin:0}@media (width<=800px){dl.kv{grid-template-columns:1fr 1fr}}.kpi .v{letter-spacing:-.01em;margin-top:2px;font-size:26px;font-weight:700}.kpi .l{color:var(--mute);font-size:12.5px}th.n,td.n{text-align:right;font-variant-numeric:tabular-nums}.card h3 .r{color:var(--mute);margin-left:auto;font-size:12.5px;font-weight:400}.card h3{align-items:center;gap:8px;display:flex}.shelf{grid-template-columns:repeat(8,1fr);gap:6px;display:grid}.slot{white-space:nowrap;border:1px solid var(--line);text-align:center;background:var(--bg);min-height:50px;color:var(--mute);border-radius:7px;padding:6px 4px;font-size:11.5px;overflow:hidden}button.slot{font:inherit;cursor:pointer;font-size:11.5px}.slot.f{background:var(--info-l);color:var(--info);border-color:#0000;font-weight:600}.slot.r{background:var(--warn-l);color:var(--warn);border-color:#0000;font-weight:600}.slot.w{outline:2px solid var(--brand);outline-offset:-2px}.mini{text-align:right;width:72px;padding:4px 8px}.katalog{grid-template-columns:230px 1fr;align-items:start;gap:14px;display:grid}@media (width<=900px){.katalog{grid-template-columns:1fr}}tr.aktiv-zeile td{background:var(--brand-l);font-weight:600}svg.i{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:17px;height:17px}.logo i svg.i{width:17px;height:17px}.nav{overflow:auto}.nav a .ch{margin-left:auto;display:flex}.nav a .ch svg.i{width:14px;height:14px}.nav .sub{border-left:1px solid var(--line);margin:2px 0 6px 20px;padding-left:12px}.nav .sub a{gap:10px;padding:6px 10px;font-size:12.5px}.nav .sub a:before{content:"";background:var(--line);border-radius:50%;width:6px;height:6px}.nav .sub a.aktiv{background:0 0}.nav .sub a.aktiv:before{background:var(--ink)}.crumbs{color:var(--mute);flex:1;align-items:center;gap:10px;font-size:13px;display:flex}.crumbs b{color:var(--ink);font-weight:500}.crumbs .s{opacity:.5}.tgl{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:2px;display:flex}.ib{cursor:pointer;width:30px;height:28px;color:var(--ink);background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.ib.on{background:var(--panel);box-shadow:0 1px 2px #0002}.sketch{aspect-ratio:200/360;width:min(100%,230px);color:var(--mute);border:1px dashed var(--line);background:var(--bg);border-radius:14px;margin:0 auto;position:relative}.sketch.aktiv{cursor:crosshair}.sketch svg{width:100%;height:100%;display:block}.pin{background:var(--bad);color:#fff;border:2px solid var(--panel);border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 3px #0004}.pin.stat{flex-shrink:0;position:static;transform:none}canvas.unterschrift{aspect-ratio:600/160;border:1px dashed var(--line);touch-action:none;cursor:crosshair;background:#fff;border-radius:10px;width:100%;height:auto}.ph2{aspect-ratio:4/3;border:1.5px dashed var(--line);color:var(--mute);background:var(--bg);text-align:center;border-radius:10px;place-items:center;padding:4px;font-size:12px;display:grid}.foto{position:relative}.foto img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:10px;width:100%;display:block}.foto small{color:var(--mute);margin-top:3px;display:block}.foto button{position:absolute;top:4px;right:4px}.vertikal{gap:14px;display:grid}.leg{flex-wrap:wrap;flex:1;justify-content:center;gap:26px;display:flex}.leg div{align-items:flex-start;gap:7px;font-size:12.5px;font-weight:600;display:flex}.leg i{border-radius:3px;width:10px;height:10px;margin-top:4px}.leg small{color:var(--mute);font-size:11.5px;font-weight:400;display:block}.chart{margin-top:6px;position:relative}.chart svg{width:100%;height:190px;display:block}.mon{color:var(--mute);justify-content:space-between;margin-top:8px;padding:0 6px;font-size:12.5px;display:flex}.mon b{color:var(--ink)}.list .it{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;display:flex}.list .it:last-child{border:0}.list .it .g{flex:1}.list .it small{color:var(--mute);display:block}.bar-prog{background:var(--line);border-radius:9px;height:6px;display:block;overflow:hidden}.bar-prog i{height:100%;display:block}.field{grid-template-columns:130px 1fr;gap:6px;padding:5px 0;display:grid}.field>span{color:var(--mute)}.sw{appearance:none;background:var(--line);cursor:pointer;border:0;border-radius:99px;flex-shrink:0;margin:0;padding:0;position:relative;width:34px!important;height:20px!important}.sw:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .15s;position:absolute;top:2px;left:2px}.sw:checked{background:var(--brand)}.sw:checked:before{background:var(--on-brand);left:16px}.sw:disabled{opacity:.5;cursor:not-allowed}.bub{background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;border-radius:14px 14px 14px 4px;padding:10px 12px;font-size:13px}.phone{background:var(--bg);border:8px solid #15161a;border-radius:32px;width:min(290px,100%);margin:0 auto;padding:14px}.phone .pc,.pc{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-top:9px;padding:11px;font-size:12.5px}.portal-seite{background:var(--page);min-height:100vh;padding:16px}.portal-wrap{gap:14px;max-width:760px;margin:0 auto;display:grid}.portal-kopf{align-items:center;gap:12px;display:flex}.portal-kopf .logo{border:0;margin:0;padding:0}.portal-karte{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px}.portal-karte h3{margin-bottom:10px;font-size:14px}.zeile{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;display:flex}.zeile:last-child{border:0}.zeile .g{flex:1;min-width:140px}.slots{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}@media (width<=1100px){.portal-raster{grid-template-columns:1fr!important}}.bars{align-items:flex-end;gap:6px;height:170px;padding-top:6px;display:flex}.bars>div{height:100%;color:var(--mute);flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;font-size:11.5px;display:flex}.bars i{background:var(--line);border-radius:6px 6px 0 0;width:100%;display:block}.bars .cur i{background:var(--ink)}.hb{align-items:center;gap:10px;margin:9px 0;display:flex}.hb span{width:130px;font-size:12.5px}.hb .tr{background:var(--line);border-radius:9px;flex:1;height:8px;overflow:hidden}.hb .tr i{height:100%;display:block}.hb b{text-align:right;width:44px}.steps{margin:4px 0 16px;display:flex}.steps div{text-align:center;background:var(--bg);color:var(--mute);flex:1;padding:8px 4px;font-size:12.5px;font-weight:600}.steps div.d{background:var(--ok-l);color:var(--ok)}.steps div.c{background:var(--brand);color:var(--on-brand)}.steps div:first-child{border-radius:9px 0 0 9px}.steps div:last-child{border-radius:0 9px 9px 0}.kunden-raster{grid-template-columns:420px minmax(0,1fr);align-items:start;gap:14px;display:grid}@media (width<=1100px){.kunden-raster{grid-template-columns:1fr}}.kopfsuche{position:relative}.suchfeld{border:1px solid var(--line);width:280px;color:var(--mute);background:var(--panel);border-radius:10px;align-items:center;gap:8px;padding:6px 12px;display:flex}.suchfeld input{background:0 0;border:0;outline:0;flex:1;min-width:0;padding:0;font-size:13px}.suchfeld input:focus{outline:0}kbd{border:1px solid var(--line);color:var(--mute);background:var(--bg);white-space:nowrap;border-radius:5px;padding:0 5px;font:600 11px inherit}.treffer{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:380px;max-height:420px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow:auto;box-shadow:0 10px 30px #0003}.treffer .gruppe{color:var(--mute);padding:8px 10px 4px;font-size:11.5px}.treffer button{text-align:left;width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:7px 10px;display:block}.treffer button:hover{background:var(--bg)}.treffer small{color:var(--mute);display:block}.treffer .leer{padding:14px}.kopfsuche .treffer{left:0;right:auto}.ib.rahmen{border:1px solid var(--line);background:var(--panel);border-radius:10px;width:34px;height:34px;position:relative}.ib .punkt{background:#ef4444;border-radius:50%;width:7px;height:7px;position:absolute;top:5px;right:6px}.ib .punkt.w{background:var(--warn)}@media (width<=900px){.suchfeld{width:160px}.suchfeld kbd{display:none}}.monat{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.monat .kopf{text-align:center;background:var(--bg);border-bottom:1px solid var(--line);padding:8px;font-weight:600}.monat .zelle{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;min-height:104px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;flex-direction:column;align-items:stretch;gap:3px;padding:6px;display:flex}.monat .zelle:hover{background:var(--bg)}.monat .zelle.fremd{opacity:.45}.monat .zelle.heute b{background:var(--brand);color:var(--on-brand);border-radius:99px;align-self:flex-start;padding:0 7px}.mini-termin{border-left:3px solid var(--c);background:color-mix(in srgb, var(--c) 15%, var(--panel));white-space:nowrap;text-overflow:ellipsis;border-radius:5px;padding:1px 5px;font-size:11.5px;overflow:hidden}.mini-termin.s-Abgesagt,.mini-termin.s-NichtErschienen{opacity:.55;text-decoration:line-through}[hidden]{display:none!important}.md.pdfv{width:min(920px,100%)}.pdfrahmen{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;height:72vh}.md.pdfv .aktionen .sp{flex:1}.firmenlogo{object-fit:contain;max-width:200px;max-height:44px;display:block}.portal-kopf .logo{align-items:flex-end}.logobox{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.logobox .vorschau{border:1px dashed var(--line);background:#fff;border-radius:10px;place-items:center;width:220px;height:90px;padding:8px;display:grid}.logobox .vorschau img{object-fit:contain;max-width:100%;max-height:100%}.logo .marke{border-radius:8px;flex:none;width:30px;height:30px;display:block}
