/* Layout: Projektleiste links (Bautafel-Stil), Arbeitsfläche rechts; auf dem Handy untereinander */
:root{
  --bg:#eef1f2; --panel:#ffffff; --ink:#1b2428; --muted:#5d6b71; --line:#d3dade;
  --plan:#0a2e52; --plan-ink:#ffffff; --brand-blue:#1967c6; --brand-gray:#a7afb3; --signal:#f2b705; --signal-ink:#1b2428;
  --ok:#2e7d4f; --warn:#a86a00; --bad:#b3362c; --chip:#e3eaed;
  --f-display:"Barlow Condensed","Arial Narrow",sans-serif;
  --f-body:"Barlow",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#12181b; --panel:#1a2226; --ink:#e4eaec; --muted:#93a3a9; --line:#2c383d;
  --plan:#0d2a48; --plan-ink:#e9f0f7; --brand-blue:#4a8fe6; --brand-gray:#a7afb3; --signal:#f2b705; --signal-ink:#1b2428;
  --ok:#5cbf86; --warn:#e0a63a; --bad:#ec7a70; --chip:#243034; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#12181b; --panel:#1a2226; --ink:#e4eaec; --muted:#93a3a9; --line:#2c383d;
  --plan:#0d2a48; --plan-ink:#e9f0f7; --brand-blue:#4a8fe6; --brand-gray:#a7afb3; --signal:#f2b705; --signal-ink:#1b2428;
  --ok:#5cbf86; --warn:#e0a63a; --bad:#ec7a70; --chip:#243034; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45}
h1,h2,h3{font-family:var(--f-display);font-weight:600;letter-spacing:.01em;margin:0;text-wrap:balance}
a{color:var(--plan)}
:root[data-theme="dark"] a{color:var(--ink)}
button,input,select,textarea{font:inherit;color:inherit}
.app{display:grid;grid-template-columns:292px 1fr;min-height:100vh}
aside{background:linear-gradient(180deg,#0c3460 0%,#0a2e52 45%,#08243f 100%);color:var(--plan-ink);padding:22px 16px 20px;display:flex;flex-direction:column;gap:18px;position:relative;overflow:hidden;border-right:4px solid var(--brand-blue)}
aside::before{content:"";position:absolute;right:-70px;bottom:-40px;width:260px;height:300px;background:linear-gradient(160deg,rgba(25,103,198,.28),rgba(25,103,198,0));clip-path:polygon(0 30%,100% 0,100% 100%,0 100%);pointer-events:none}
aside::after{content:"";position:absolute;right:-30px;bottom:120px;width:120px;height:180px;background:rgba(167,175,179,.08);clip-path:polygon(0 25%,100% 0,100% 75%,0 100%);pointer-events:none}
aside>*{position:relative;z-index:1}
.brand{display:flex;align-items:center;gap:12px;line-height:1;padding:2px 2px 4px}
.brand .logo{width:34px;height:auto;flex:none}.brand .logo .l1{fill:#fff}.brand .logo .l2{fill:#3d86e8}.brand .logo .l3{fill:var(--brand-gray)}
.brand b{display:block;font-family:"Poppins",var(--f-body);font-weight:600;font-size:27px;letter-spacing:-.01em}
.brand small{display:block;font-size:11.5px;font-family:var(--f-body);font-weight:500;letter-spacing:.06em;opacity:.8;margin-top:5px}
.nav{display:flex;flex-direction:column;gap:4px}
.nav-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;opacity:.7;margin:6px 0 2px}
.nav button{all:unset;cursor:pointer;padding:8px 10px;border-radius:6px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.nav button:hover{background:rgba(255,255,255,.08)}
.nav button:focus-visible{outline:2px solid var(--signal)}
.nav button.on{background:rgba(255,255,255,.13);box-shadow:inset 3px 0 0 #3d86e8}
.nav .nr{font-family:var(--f-mono);font-size:11px;opacity:.7}
.nav .pbtn.open{background:rgba(255,255,255,.1)}
.nav .pbtn.akt span{display:flex;flex-direction:column;gap:3px;min-width:0}.nav .pbtn.akt b{font-weight:600;line-height:1.25}.nav .pbtn.akt em{font-style:normal;font-family:var(--f-mono);font-size:11px;opacity:.75}
.nav .pbtn.akt{background:rgba(255,255,255,.08)}.nav .pbtn.akt.on{background:rgba(255,255,255,.16)}
.nav .nav-wechsel{font-size:12.5px;opacity:.8;padding:4px 10px;text-decoration:underline}.nav .nav-leer{opacity:.85;font-style:italic}
.nav .nr b.rot{background:var(--bad);color:#fff;border-radius:999px;padding:0 6px;font-weight:600;opacity:1}
.phead{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:flex-end}
.phead .crumb{font-family:var(--f-mono);font-size:12.5px;color:var(--muted)}
.phead h1{font-size:30px;line-height:1.1}
.subnav{display:none}
.mnav{display:none}
.phead.kat{align-items:flex-start;flex-wrap:nowrap;gap:12px}
.backbtn{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:6px 14px 6px 8px;cursor:pointer;font-weight:600;margin-top:2px;flex:none}
.backbtn:hover{border-color:var(--plan);color:var(--plan)}
.backbtn:focus-visible,.crumblink:focus-visible,.kkarte:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.backbtn .ic{width:18px;height:18px}
.crumblink{all:unset;cursor:pointer;color:var(--plan);text-decoration:underline;text-underline-offset:2px}
:root[data-theme="dark"] .crumblink{color:var(--ink)}
.kat-h{display:flex;align-items:center;gap:10px}
.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.kat-ic{width:28px;height:28px;color:var(--plan)}
.kkarten{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.kkarte{all:unset;box-sizing:border-box;cursor:pointer;position:relative;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px 14px;display:flex;flex-direction:column;gap:3px;min-height:150px;min-width:0;transition:border-color .15s,transform .15s,box-shadow .15s;border-top:3px solid var(--grp,var(--plan))}
.kkarte:hover{border-color:var(--muted);transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.08)}
.kkarte:active{transform:translateY(0)}
.kkarte[data-grp="Planung"]{--grp:#1f4e5f}.kkarte[data-grp="Vergabe"]{--grp:#f2b705}.kkarte[data-grp="Ausführung"]{--grp:#2e7d4f}.kkarte[data-grp="Ablage"]{--grp:#7a8a91}
.kk-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.kk-ic{width:30px;height:30px;padding:6px;border-radius:8px;background:var(--chip);color:var(--plan);box-sizing:content-box}
.kk-g{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600}
.kk-l{font-family:var(--f-display);font-size:19px;font-weight:600;line-height:1.15}
.kk-v{font-family:var(--f-display);font-size:30px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.05}
.kk-s{font-size:12.5px;color:var(--muted);font-family:var(--f-mono);overflow-wrap:anywhere;padding-right:16px}
.kk-go{position:absolute;right:14px;bottom:10px;font-size:22px;color:var(--muted);line-height:1}
.kk-bar{display:block;height:5px;border-radius:3px;background:var(--chip);overflow:hidden;margin:4px 0 2px}.kk-bar i{display:block;height:100%;background:var(--ok)}
.kkarte.bad .kk-v{color:var(--bad)}.kkarte.ok .kk-v{color:var(--ok)}.kkarte.warnt .kk-v{color:var(--warn)}
.kkarte.bad{box-shadow:inset 0 0 0 1px var(--bad)}
.kkarte.ki .kk-v{color:var(--plan)}
:root[data-theme="dark"] .kk-ic,:root[data-theme="dark"] .kat-ic{color:var(--signal)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .kk-ic,:root:not([data-theme="light"]) .kat-ic{color:var(--signal)}:root:not([data-theme="light"]) .crumblink{color:var(--ink)}}
@media (max-width:560px){.kkarten{grid-template-columns:1fr 1fr;gap:8px}.kkarte{min-height:128px;padding:11px 12px}.kk-v{font-size:24px}.kk-l{font-size:16px}.kk-s{font-size:11.5px}.backbtn span{display:none}.backbtn{padding:6px}}
.rpcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:var(--muted);margin:-4px 0 2px}
.rpcrumb .sep{opacity:.6}.rpcrumb>span:last-child{color:var(--ink);font-weight:600}
.rpsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.rpsum>div{background:var(--panel);padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.rpsum span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.rpsum b{font-family:var(--f-display);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.rpsum b.warn{color:var(--warn)}
.rkarten{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.rkarte{all:unset;box-sizing:border-box;cursor:pointer;position:relative;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--plan);border-radius:8px;padding:12px 16px 14px;display:flex;flex-direction:column;gap:3px;min-width:0;transition:border-color .15s,transform .15s,box-shadow .15s}
.rkarte:hover{border-color:var(--muted);border-left-color:var(--plan);transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.08)}
.rkarte:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.rkarte.warnt{border-left-color:var(--signal)}
.rkarte.firma{border-left-color:var(--muted)}.rkarte.firma.auftrag{border-left-color:var(--ok)}
.rk-sub{font-family:var(--f-mono);font-size:11.5px;color:var(--muted)}
.rk-t{font-family:var(--f-display);font-size:21px;font-weight:600;line-height:1.15;padding-right:14px}
.rk-f{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.rk-v{font-family:var(--f-display);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:4px}
.rk-s{font-size:12px;color:var(--muted);font-family:var(--f-mono)}
.rk-h{font-size:12.5px;font-weight:600;color:var(--warn);margin-top:2px;padding-right:16px}
.kk-bar i.over{background:var(--bad)}
.phead2{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:flex-end}.phead2 h2{font-size:24px;margin:0}
.akte-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;align-items:flex-start}
.akte-top h2{font-size:28px;margin:2px 0 6px;line-height:1.1}
.akte-kontakt{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px}
.akte-kontakt a{color:var(--plan)}
.akte-zahl{display:flex;flex-direction:column;align-items:flex-end;gap:1px;text-align:right}
.akte-zahl span{font-size:12px;color:var(--muted)}.akte-zahl b{font-family:var(--f-display);font-size:28px;font-weight:600;font-variant-numeric:tabular-nums}
.stepper{list-style:none;display:flex;margin:16px 0 2px;padding:0;counter-reset:st}
.stepper li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);position:relative;text-align:center}
.stepper li span{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);background:var(--panel);z-index:1}
.stepper li::before{content:"";position:absolute;top:7px;left:-50%;right:50%;height:2px;background:var(--line)}
.stepper li:first-child::before{display:none}
.stepper li.ok{color:var(--ink);font-weight:600}.stepper li.ok span{background:var(--ok);border-color:var(--ok)}.stepper li.ok::before{background:var(--ok)}
.akte-nav{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:0;z-index:5;background:var(--bg);padding:6px 0}
.akte-nav button{cursor:pointer;font:inherit;font-size:13px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--ink);background:var(--panel)}
.akte-nav button:hover{border-color:var(--plan)}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.akte-vertrag{display:flex;flex-direction:column;gap:14px;scroll-margin-top:50px}
.akte-h{border:0;padding:0;background:none}.akte-h h3{margin:0}
#ak-angebot,#ak-vp,#ak-dok{scroll-margin-top:50px}
.akte-docs{list-style:none;margin:0;padding:6px 16px 12px}
.akte-docs li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 16px;padding:8px 0;border-bottom:1px solid var(--line);align-items:baseline}
.akte-docs li:last-child{border-bottom:0}
@media (max-width:560px){.akte-docs li{grid-template-columns:1fr}.akte-zahl{align-items:flex-start;text-align:left}.stepper li{font-size:10.5px}}
:root[data-theme="dark"] .akte-kontakt a{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .akte-kontakt a{color:var(--ink)}}
.rp-h{font-size:15px;margin:6px 0 -2px;display:flex;gap:8px;align-items:baseline}
.rk-phase{display:flex;align-items:center;gap:3px;margin:4px 0 2px}
.rk-phase i{width:18px;height:4px;border-radius:2px;background:var(--line)}.rk-phase i.ok{background:var(--plan)}
.rkarte.st4 .rk-phase i.ok{background:var(--ok)}
.rk-phase b{font-size:11.5px;font-weight:600;margin-left:6px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.rp-step{margin:4px 0 0}.rp-step li.next{color:var(--plan);font-weight:600}.rp-step li.next span{border-color:var(--plan)}
details.rp-anf>summary{cursor:pointer;list-style:none}details.rp-anf>summary::-webkit-details-marker{display:none}
details.rp-anf>summary h3::before{content:"▸ ";color:var(--muted)}details.rp-anf[open]>summary h3::before{content:"▾ "}
.rp-anf-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px}
@media (max-width:900px){.rp-anf-grid{grid-template-columns:1fr}}
.rp-firmen{display:flex;flex-direction:column;max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:6px}
.rp-fz{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer}
.rp-fz:last-child{border-bottom:0}.rp-fz.on{background:var(--chip)}
.rp-fn{display:flex;flex-direction:column;min-width:0}.rp-fn b{font-weight:600}
.rp-anf-r textarea{min-height:110px}
.rp-send{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.rp-ang tr.best td{background:color-mix(in srgb,var(--ok) 8%,transparent)}
.rp-ang tr.vergeben td{opacity:.85}
.rp-ang .sum{width:120px}.rp-ang .sum.lohn{width:76px}
.rp-absage{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:12px}
.rp-step li.skip{color:var(--muted)}
.as-fab{position:fixed;right:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:var(--plan);color:#fff;padding:11px 16px 11px 14px;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.22);cursor:pointer}
.as-fab .ic{width:20px;height:20px}
.as-fab b{background:var(--signal);color:#111;border-radius:999px;min-width:22px;padding:1px 7px;font-size:12.5px;text-align:center}.as-fab b.rot{background:var(--bad);color:#fff}
.as-fab:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.as-panel{position:fixed;top:0;right:0;bottom:0;width:min(400px,100vw);z-index:59;background:var(--bg);border-left:1px solid var(--line);box-shadow:-10px 0 30px rgba(0,0,0,.14);display:flex;flex-direction:column}
.asp-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 16px 10px;border-bottom:1px solid var(--line);background:var(--panel)}
.asp-h h3{margin:2px 0 0;font-size:19px}
.asp-b{overflow:auto;padding:12px 14px 90px;display:flex;flex-direction:column;gap:10px}
.asp-chat{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.asp-chat textarea{min-height:70px;width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:6px;padding:8px;background:var(--panel)}
.asp-chat .sublabel{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.chat.mini{max-height:260px;overflow:auto}
.ashints{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.ashints.inline{margin:2px 0}
.as-panel .ashint{width:auto}
.ashint{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:7px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}
.ashint.w0{border-left-color:var(--bad)}.ashint.w1{border-left-color:var(--signal)}.ashint.w2{border-left-color:var(--plan)}
.ash-top{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.ashint.w0 .ash-w{color:var(--bad)}.ashint.w1 .ash-w{color:var(--warn)}
.ash-t{font-weight:600;line-height:1.3}
.ash-x{font-size:13px;color:var(--muted);line-height:1.4}
.ash-a{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}
.lage .group-h h3{display:flex;align-items:center;gap:8px}
.rpsum b.bad{color:var(--bad)}
.rkarte.bad{border-left-color:var(--bad)}
.warn-t{color:var(--warn)}
dialog.wide{width:min(820px,96vw)}
.etext{width:100%;box-sizing:border-box;font-family:var(--f-body);line-height:1.45}
#eMail.disabled{opacity:.45;pointer-events:none}
.dlg-actions .l{display:flex;flex-wrap:wrap;gap:6px}
@media (max-width:560px){.as-fab span{display:none}.as-fab{padding:12px}}
.as-panel[hidden],.as-fab[hidden]{display:none!important}
@media print{.as-fab,.as-panel{display:none!important}}
.rpsum em{font-style:normal;font-size:11.5px;color:var(--muted);font-family:var(--f-mono);overflow-wrap:anywhere}
.rpsum b.ok{color:var(--ok)}
.rkarte.st4{border-left-color:var(--ok)}.rkarte.neu{border-left-color:var(--line)}
.rkarte.bad .rk-v{color:var(--bad)}
.tl-mini{position:relative;display:block;height:8px;border-radius:4px;background:var(--chip);margin:6px 0 2px}
.tl-mini i{position:absolute;top:0;bottom:0;border-radius:4px;background:var(--plan)}
.tl-mini b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--bad)}
.as-div{position:relative;cursor:default}
.rk-klick{all:unset;position:absolute;inset:0;cursor:pointer;border-radius:8px}
.rk-klick:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.as-div a,.as-div .rk-act{position:relative;z-index:1}
.rk-act{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.rp-aus summary{cursor:pointer;margin:6px 0}
tr.tp-fokus td{background:color-mix(in srgb,var(--signal) 14%,transparent)}
.as-mehr{margin:-4px 0 4px}
main{padding-bottom:90px}
.tkpill{display:inline-block;font-size:12px;padding:1px 9px;border-radius:999px;border:1px solid currentColor;white-space:nowrap;font-weight:600}
.tkpill.big{font-size:14px;padding:4px 14px}
.s-offen{color:var(--bad)}.s-arbeit{color:var(--warn)}.s-erledigt{color:#2f6fb5}.s-zu{color:var(--ok)}.s-ab{color:var(--muted)}
.chip.tk-typ{font-size:11px}.chip.prio-k{background:var(--bad);color:#fff}.chip.prio-h{background:var(--signal);color:#111}
.tkkopf{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;align-items:flex-start}
.tktitel{font-family:var(--f-display);font-size:26px;font-weight:600;border:1px solid transparent;background:transparent;padding:2px 6px;margin-left:-6px;border-radius:4px;width:min(640px,100%);color:var(--ink)}
.tktitel:hover{border-color:var(--line)}.tktitel:focus{border-color:var(--muted);background:var(--panel);outline:none}
.tkstatus{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.tkgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}
.tkrechts{display:flex;flex-direction:column;gap:14px}
@media (max-width:900px){.tkgrid{grid-template-columns:1fr}.tkstatus{align-items:flex-start}}
.tkfelder textarea{width:100%;box-sizing:border-box}
.fotogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.foto{all:unset;cursor:pointer;aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--chip);display:grid;place-items:center;border:1px solid var(--line)}
.foto img{width:100%;height:100%;object-fit:cover}
.foto.neu{border-style:dashed;color:var(--plan);font-weight:600;font-size:14px}
.foto:focus-visible{outline:2px solid var(--signal)}
.planscroll{overflow:auto;max-height:72vh;border:1px solid var(--line);border-radius:8px;background:#fff}
.planbox{position:relative;min-width:100%}
.planbox img{display:block;width:100%;height:auto;cursor:crosshair;user-select:none}
.planbox.setzen img{cursor:copy;outline:3px solid var(--signal);outline-offset:-3px}
.pin{position:absolute;transform:translate(-50%,-100%);min-width:24px;height:24px;padding:0 5px;border-radius:12px 12px 12px 2px;border:2px solid #fff;background:currentColor;font:600 11.5px/20px var(--f-mono);text-align:center;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.35);box-sizing:border-box}
.pin::after{content:attr(data-n)}
button.pin,i.pin{color:var(--bad)}
.pin.s-offen{background:var(--bad)}.pin.s-arbeit{background:var(--warn)}.pin.s-erledigt{background:#2f6fb5}.pin.s-zu{background:var(--ok)}.pin.s-ab{background:#888}
.pin{color:#fff!important;font-style:normal}
.pinlegende{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}
.pin-l{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px;background:currentColor}
.planmini{position:relative;cursor:pointer;border:1px solid var(--line);border-radius:6px;overflow:hidden;max-height:240px}
.planmini img{display:block;width:100%}
.rkarte.plan{padding-top:0;overflow:hidden}
.rk-img{display:block;margin:0 -16px 8px;height:120px;background:#fff;border-bottom:1px solid var(--line);overflow:hidden}
.rk-img img{width:100%;height:100%;object-fit:cover;object-position:center}
.verlauf{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.verlauf li{border-left:2px solid var(--line);padding-left:10px}
.wahl{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:4px 0 10px}
.wahlk{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);border-radius:7px;padding:9px 12px;background:var(--bg);display:flex;flex-direction:column;gap:2px}
.wahlk:hover{border-color:var(--muted)}.wahlk.on{border-color:var(--plan);box-shadow:inset 0 0 0 1px var(--plan);background:var(--panel)}
.wahlk:focus-visible{outline:2px solid var(--signal)}
.sublabel{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin-top:6px}
.gwchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.gwchip{display:inline-flex;align-items:center;gap:5px;background:var(--chip);border-radius:999px;padding:4px 6px 4px 10px;font-size:13px}
.gwchip.haupt{background:var(--plan);color:var(--plan-ink)}.gwchip em{font-style:normal;font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.8}
.gwchip button{all:unset;cursor:pointer;width:20px;height:20px;border-radius:50%;text-align:center;line-height:20px;font-size:14px}.gwchip button:hover{background:rgba(0,0,0,.12)}.gwchip-up{font-size:9px!important}
.fbank{border:1px solid var(--line);border-radius:6px;padding:10px 12px 12px;margin:0;display:flex;flex-direction:column;gap:12px}.fbank legend{font-weight:600;padding:0 6px;font-size:13.5px}
.okt{color:var(--ok)}
.bankzeile{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;margin-top:8px;font-size:13px}.bankzeile>span:first-child{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.bankzeile.fehlt b{color:var(--warn)}
.vgwahl-opt{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.vgw{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:5px;background:var(--panel);border-top:3px solid var(--signal)}
.vgw:nth-child(2){border-top-color:var(--ok)}.vgw:hover,.vgw:focus-visible{border-color:var(--plan);box-shadow:0 4px 14px rgba(0,0,0,.08)}
.vgw b{font-family:var(--f-display);font-size:18px}.vgw span{font-size:13px;color:var(--muted)}.vgw em{font-style:normal;font-size:12px;font-family:var(--f-mono);color:var(--muted)}.vgw i{font-style:normal;font-size:12.5px;color:var(--plan);font-weight:600;margin-top:4px}
@media (max-width:560px){.vgwahl-opt{grid-template-columns:1fr}}
.zlkopf{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.zltab td{vertical-align:top}.zltab td.num{white-space:nowrap}.zltab tr.zl-block td{background:color-mix(in srgb,var(--bad) 6%,transparent)}.zltab tr.zl-on td{background:color-mix(in srgb,var(--ok) 6%,transparent)}
.zlchks{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.zlchk{font-size:11.5px;border-radius:4px;padding:1px 6px;background:var(--chip);color:var(--muted)}
.zlchk.bad{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}.zlchk.warn{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}
.zlab{display:inline-flex;gap:6px;align-items:center;justify-content:flex-end}
.zlbest{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:6px}
.rehinw{max-height:240px;overflow:auto}#dlgRechnung .vfirma-zeile input{flex:1;min-width:0}.rehinw .info{color:var(--muted)}.asrech{border-left:4px solid var(--signal)}
.stammtabs{display:flex;gap:6px;margin:0 0 14px;flex-wrap:wrap}
.lvs-suche .group-b{display:flex;flex-direction:column;gap:10px}.lvs-suche .search{width:100%;max-width:none}
.lvs-filter{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.lvs-filter .field{margin:0}
.lvs-unten{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.lvs-unten .btn{margin-left:auto}
.lvs-pos{margin-top:6px;font-size:13px;color:var(--muted,#5d6874);border-left:2px solid var(--line,#d5dbe1);padding-left:8px}.lvs-pos div{margin:2px 0}
.lvs-tab tr.lvs-grp td{background:var(--hell,#eef2f6);padding-top:10px;padding-bottom:8px}.lvs-tab tr.lvs-grp .mono{color:var(--muted,#5d6874);font-size:12px;margin-right:6px}.lvs-tab tr.click td:nth-child(2){min-width:200px}.lvs-tab tr.click td:first-child{min-width:260px}
.lvs-tab mark,.lvs-pos mark{background:#fde68a;color:inherit;border-radius:2px;padding:0 1px}
.nwampel{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:baseline}.nwampel.ok{background:var(--ok)}.nwampel.warn{background:var(--warn)}.nwampel.bad{background:var(--bad)}
.nwtab tr.nw-opt td{color:var(--muted)}.nwtab .sub{display:inline}
.mhinw{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}.mhinw>div{padding:8px 12px;border-radius:6px;border-left:4px solid;background:var(--panel);font-size:14px}.mhinw .bad{border-color:var(--bad)}.mhinw .warn{border-color:var(--warn)}.mhinw .info{border-color:var(--line);color:var(--muted)}
.ntpos input{width:100%;min-width:56px;padding:5px 7px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}.ntpos td:first-child input{min-width:200px}.ntpos td .sub{white-space:nowrap}.ntpos td,.ntpos th{padding-left:6px;padding-right:6px}.ntpos td:nth-child(2) input,.ntpos td:nth-child(3) input{max-width:80px}.ntpos td:nth-child(6){white-space:nowrap}
.kvbox{padding:8px 0}
.lvschaetz{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line);background:var(--chip)}.lvschaetz>div{display:flex;flex-direction:column;gap:2px}.lvschaetz b{font-size:20px;font-family:var(--f-mono)}
.lpwtab{max-height:380px;overflow:auto;margin:8px 0}.lpwtab table{width:100%}.lpwtab input.money{width:100px;padding:5px 7px;border:1px solid var(--line);border-radius:4px}
.teamliste{display:flex;flex-direction:column;gap:6px;margin:6px 0 12px}.teamz{display:grid;grid-template-columns:1fr 170px auto;gap:8px;align-items:center}.teamneu{display:grid;grid-template-columns:1fr 170px auto;gap:8px;align-items:end}
.steuer td{vertical-align:top}.steuer td.num,.steuer th{white-space:nowrap}.steuer td:first-child{min-width:180px;max-width:240px}.steuer th,.steuer td{padding-left:8px;padding-right:8px}
.bs-kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.bs-kopf h1{font-size:30px;margin:2px 0}
.bs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:18px}
.bs-k{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:6px;min-height:118px;padding:16px;border-radius:12px;background:var(--panel);border:1px solid var(--line);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.bs-k:hover{border-color:var(--plan)}.bs-k:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.bs-k.primaer{background:var(--plan);color:#fff;border-color:var(--plan)}.bs-k.primaer .bs-s{color:rgba(255,255,255,.8)}.bs-k.ok{border-color:var(--ok)}.bs-k.warn{border-left:5px solid var(--warn)}
.bs-ic{width:28px;height:28px}.bs-t{font-family:var(--f-display);font-size:21px;font-weight:600;line-height:1.15}.bs-s{font-size:14px;color:var(--muted)}
.bs-liste{list-style:none;margin:0;padding:0}.bs-liste li{padding:12px 16px;border-top:1px solid var(--line)}.bs-liste li>span{display:flex;flex-direction:column;gap:2px}
@media (max-width:820px){.bs-grid{grid-template-columns:1fr 1fr;gap:10px}.bs-k{min-height:104px;padding:14px}.bs-t{font-size:18px}.bs-kopf h1{font-size:24px}
  .btpers input,.btleist input,.btleist select{font-size:16px;padding:10px}.btchips .fchip{padding:9px 13px;font-size:15px}.btleist td:first-child{min-width:200px}}
.bugrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:900px){.bugrid{grid-template-columns:1fr}}
.bulogo img{max-height:80px;max-width:240px;display:block;margin-bottom:8px;background:#fff;padding:6px;border:1px solid var(--line);border-radius:6px}
.buvs{background:#fff;color:#1b2428;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.08);aspect-ratio:1/1.1;display:flex;flex-direction:column}.buvs-kopf{display:flex;align-items:center;gap:10px;padding:14px 16px;color:#fff}.buvs-kopf b{display:block;font-size:14px}.buvs-kopf small{display:block;font-size:10px;opacity:.8}.buvs-logo{background:#fff;padding:4px;border-radius:3px;display:inline-flex}.buvs-logo img{max-height:34px;max-width:90px}.buvs-r{margin-left:auto;text-align:right}
.buvs-body{flex:1;padding:16px;display:flex;flex-direction:column;gap:8px}.buvs-l{height:9px;background:#e8ecee;border-radius:3px}.buvs-l.k{width:60%}.buvs-fuss{border-top:1px solid #e1e5e7;padding:8px 16px;font-size:9.5px;color:#68767c;line-height:1.4}
.btchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.btgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px 12px}
.btpers input,.btleist input,.btleist select,.sitab input{width:100%;padding:5px 7px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}.btleist td:first-child{min-width:260px}.btleist select{min-width:180px}
.btfotos{display:flex;flex-wrap:wrap;gap:6px}.btfoto{all:unset;cursor:pointer;padding:6px 10px;border:1px solid var(--line);border-radius:6px;font-size:13px}.btfoto:hover{border-color:var(--plan)}
.siamp{display:inline-block;min-width:34px;text-align:center;padding:2px 6px;border-radius:10px;font-family:var(--f-mono);font-size:12px;background:var(--chip)}.siamp.ok{background:#e3f2e8;color:var(--ok)}.siamp.warn{background:#fdf1dc;color:var(--warn)}.siamp.bad{background:#f8e1df;color:var(--bad)}
.sitab input[type=date]{min-width:130px}
.bzvg{border:1px solid var(--line);border-radius:6px;padding:8px 12px;background:var(--panel)}.bzvg summary{cursor:pointer;font-weight:600;font-size:14px}.bzvl{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px;margin-top:8px;font-size:13.5px}.bzvl label{display:flex;gap:6px;align-items:flex-start}
.okbox{background:var(--ok-bg,#e8f5ec);border:1px solid var(--ok,#2e7d4f);color:inherit;border-radius:8px;padding:8px 12px;margin:0 0 12px}
.lfgruppen{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 12px;margin:0 0 10px;font-size:13px}.lfgruppen label{display:flex;gap:6px;align-items:center}
.lpneu{display:grid;grid-template-columns:130px 1fr 150px auto;gap:8px;align-items:end;margin:8px 0}@media(max-width:640px){.lpneu{grid-template-columns:1fr 1fr}}
#lpPreise table{width:100%}#lpPreise{max-height:260px;overflow:auto}
.fsbox{border-left:4px solid var(--warn)}.fsbox.bald{border-left-color:var(--signal)}.fsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.bptab td{vertical-align:top}.bptab tr.bp-ueber td{background:color-mix(in srgb,var(--bad) 6%,transparent)}.bptab tr.bp-done td{color:var(--muted)}
.bptab.ed td:nth-child(3){min-width:280px}.bpin{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:4px;padding:5px 7px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px}.bpin.kurz{width:70px}
.bptab textarea.bpin{resize:vertical}.bp-notizen{margin-top:4px;display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--plan)}.bp-notizen .mono{color:var(--muted);font-size:11.5px;margin-right:4px}
.group-b.bp-schnell{display:grid;grid-template-columns:minmax(200px,1.2fr) minmax(150px,.9fr) 2fr auto;gap:10px 12px;align-items:end}.bp-schnell .field{margin:0}.bp-treffer{grid-column:1/-1;font-size:12.5px;min-height:18px}.bp-treffer .ok{color:var(--ok,#1d7a46);font-weight:600}@media(max-width:760px){.group-b.bp-schnell{grid-template-columns:1fr}}.bptab.ed td:last-child,.bptab.ed .k-grp .btn{white-space:nowrap}
.wbstapel{display:flex;flex-direction:column;gap:16px}.wbstapel section.group{margin:0}.wbpaar2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.wbsp{display:flex;flex-direction:column;gap:16px;min-width:0}.wbpaar2>*{min-width:0}
@media(max-width:1100px){.wbpaar2{grid-template-columns:1fr}}.wbx{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px}.wbx:hover,.wbx:focus-visible{color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent)}
.wbtab td .sub{font-size:11px;color:var(--muted);font-weight:400}
.wbtab{width:100%;border-collapse:collapse;font-size:13px}.wbtab th,.wbtab td{padding:6px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.wbtab th.num,.wbtab td.num{text-align:right;white-space:nowrap}
.wbtab tr.sum td{background:color-mix(in srgb,var(--plan) 6%,transparent);font-weight:600}.wbtab tr.total td{background:var(--plan);color:#fff;font-weight:700}.wbtab tr.total td .err,.wbtab tr.total td .ok-t{color:#fff}
.wbtab.ed td{padding:4px 6px}.wbtab .wbin.num{text-align:right;min-width:110px}.wbtab .wbin.kurz2{min-width:70px;width:84px}.wbtab td .err{color:var(--bad)}.ok-t{color:var(--ok,#1d7a46)}.wbtab td.err{color:var(--bad);font-weight:600}.wbtab td.ok-t{font-weight:600}
.form-grid.tri{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:760px){.form-grid.tri{grid-template-columns:1fr}}.wbpaar{display:flex;gap:6px}.wbpaar>*{flex:1;min-width:0}
.wbhinw{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}.wbhinw div{padding:8px 12px;border-radius:4px;font-size:13px;border-left:3px solid var(--warn,#b77d00);background:color-mix(in srgb,var(--warn,#b77d00) 8%,transparent)}.wbhinw div.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent)}
.wbbe>div{display:flex;flex-direction:column;gap:2px}.wbbe b{font-size:18px}
.wbtab.sensi td.sens{font-family:var(--f-mono,monospace);font-size:12px}.wbtab.sensi td.neg{background:color-mix(in srgb,var(--bad) 10%,transparent);color:var(--bad)}.wbtab.sensi td.pos{background:color-mix(in srgb,var(--ok,#1d7a46) 9%,transparent)}.wbtab.sensi td.basis{outline:2px solid var(--plan);outline-offset:-2px;font-weight:700}
.wbtab.vgl .sub{font-size:11.5px;font-weight:400}.wbvar{flex-wrap:wrap}
.bra{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-width:26px;border-radius:50%;font-weight:700;font-size:12px;color:#fff;background:#b3bcc0;border:2px solid transparent;cursor:default;padding:0;line-height:1}
.bra.a-G{background:#2a8c4d}.bra.a-A{background:#d99a0d}.bra.a-R{background:#bf2a1f}.bra.klein{width:20px;height:20px;min-width:20px;font-size:10.5px}
.brwahl{display:flex;gap:6px}.brwahl .bra{cursor:pointer;opacity:.3}.brwahl .bra.on{opacity:1;border-color:var(--ink);box-shadow:0 0 0 2px var(--panel) inset}.brwahl .bra:hover,.brwahl .bra:focus-visible{opacity:.8}.brwahl .bra:disabled{cursor:default}
.brcockpit{gap:18px}.brprojekt{border:1px solid var(--line);border-radius:6px;overflow:hidden}.brp-h{background:var(--plan);color:#fff;padding:9px 14px;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.brp-h .note{color:rgba(255,255,255,.75)}
.brthema{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;padding:12px 14px;border-top:1px solid var(--line)}.brthema:first-of-type{border-top:0}.brt-l{display:flex;flex-direction:column;gap:6px}.brt-t{font-weight:600}.brvor{font-size:12px}.brt-r{display:flex;flex-direction:column;gap:4px}
@media(max-width:760px){.brthema{grid-template-columns:1fr}}.form-grid.brneu{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end}@media(max-width:1000px){.form-grid.brneu{grid-template-columns:1fr 1fr}}
.bp-kopfz{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:6px;margin-bottom:4px}.bp-typ{background:color-mix(in srgb,var(--plan) 12%,transparent);color:var(--plan)}.bpreihen{flex-wrap:wrap}
.druckframe{position:fixed;right:0;bottom:0;width:2px;height:2px;border:0;opacity:0;pointer-events:none}.seitepdf{display:inline-flex;gap:6px;align-items:center;white-space:nowrap}.seitepdf .ic{width:16px;height:16px}.phead.kat .seitepdf{align-self:flex-start;margin-left:auto}body.pdfdruck .as-fab,body.pdfdruck .as-panel{display:none!important}
.brmenu{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.phead .actions .ic{width:15px;height:15px;vertical-align:-3px}
.stammliste-w{margin:0 0 16px;overflow:hidden}.stammliste{width:100%;border-collapse:collapse;font-size:14px}.stammliste th{text-align:left;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.stammliste td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.stammliste tr:last-child td{border-bottom:0}.stammliste th.num,.stammliste td.num{text-align:right}.stammliste .sub{font-size:12.5px;color:var(--muted);margin-top:2px}.stammliste tr.click:hover td{background:color-mix(in srgb,var(--plan) 5%,transparent)}.stammliste tr.mitauftrag td:first-child{box-shadow:inset 3px 0 0 var(--ok,#1d7a46)}.stammliste .chev{color:var(--muted);font-size:20px;margin-left:10px;vertical-align:middle}.stammliste .nowrap{white-space:nowrap}.stammliste td.mono{white-space:nowrap}.stammliste td:first-child strong{display:inline-block;min-width:180px}.stammliste .sub{font-family:inherit}.warn-t{color:var(--warn,#b77d00)}.stammliste a{color:var(--plan);overflow-wrap:anywhere}.stammliste .stift{padding:3px 8px;font-size:14px;line-height:1}.stammliste td:first-child strong{min-width:150px}
.eidrop{border:2px dashed var(--line);border-radius:8px;padding:18px;display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;background:var(--panel)}.eidrop.drag{border-color:var(--plan);background:color-mix(in srgb,var(--plan) 6%,var(--panel))}.eiupload{cursor:pointer}
.eitab td{vertical-align:top}.eiakt{display:flex;flex-direction:column;gap:5px;align-items:stretch;min-width:118px}.eiakt .btn{white-space:nowrap;text-align:center}.eiakt .wbx{align-self:flex-end}.eitab select.bpin{min-width:180px}.eitab tr.ei-fertig td{color:var(--muted)}.eitab .linkbtn b{color:var(--ink)}.wbx.armed{font-size:12px;color:var(--bad)}
.pwschritt{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}.pwschritt:last-child{border-bottom:0}.pwnr{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--chip);font-weight:700;font-size:13px}.pwschritt.ok .pwnr{background:var(--ok);color:#fff}.pwschritt.wart .pwnr{background:var(--signal);color:#111}.pwschritt.bad .pwnr{background:var(--bad);color:#fff}
.pwform{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:6px;margin:6px 0 4px}@media(max-width:700px){.pwform{grid-template-columns:1fr}}.pwbeanst{border-left:3px solid var(--bad);background:color-mix(in srgb,var(--bad) 7%,transparent);padding:6px 10px;margin:6px 0;font-size:13px;display:flex;flex-direction:column;gap:6px}.pwtab tr.pwdetail td{background:color-mix(in srgb,var(--plan) 5%,transparent)}
.bp-vorschlag{margin-top:3px;font-size:12px;display:flex;gap:6px}.bp-weg{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;font-size:12.5px;border-top:1px solid var(--line)}.bp-wegp{color:var(--muted)}.bp-wegp .mono{font-size:11.5px}.bp-chk{display:inline-flex;gap:6px;align-items:center;white-space:nowrap;font-size:12.5px}.bptn td{padding:4px 6px}
.vfirma-zeile{display:flex;gap:8px;align-items:center}.vfirma-zeile select{flex:1;min-width:0}
.hinweisbox{border-left:3px solid var(--signal);background:var(--bg);padding:8px 12px;margin:0 0 10px;font-size:13.5px}
label.check{display:flex;gap:8px;align-items:flex-start;margin:6px 0;font-size:14px}
pre.letter{white-space:pre-wrap;font-family:var(--f-body);font-size:14px;line-height:1.5;margin:0}
.stammnav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stammnav .rpcrumb{margin:0}
.field .checks label,.field label.check,label.check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--ink);margin:0;padding:6px 8px}
.field .checks label input,label.check input{flex:none;margin:0}
.abrtab td.num{white-space:nowrap}.abrtab .sub{white-space:nowrap}
.abr-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.abr-kpi>div{display:flex;flex-direction:column;gap:2px}
.abr-kpi span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.abr-kpi b{font-family:var(--f-display);font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}.abr-kpi b.ok{color:var(--ok)}.abr-kpi b.bad{color:var(--bad)}
.abr-kpi em{font-style:normal;font-size:12px;color:var(--muted);font-family:var(--f-mono)}
.abr-bar{height:10px;border-radius:5px;background:var(--chip);overflow:hidden;margin-top:14px}.abr-bar i{display:block;height:100%;background:var(--ok)}.abr-bar i.over{background:var(--bad)}
.kkarte[data-grp="Finanzen"],.kkarte[data-grp="Kosten"],.tgpanel[data-grp="Kosten"],.kkarte[data-grp="Wirtschaftlichkeit"],.tgpanel[data-grp="Wirtschaftlichkeit"]{--grp:#5b4a8a}
.tgpanel[data-grp="Planung"]{--grp:#1f4e5f}.tgpanel[data-grp="Vergabe"]{--grp:#f2b705}.tgpanel[data-grp="Ausführung"]{--grp:#2e7d4f}.tgpanel[data-grp="Ablage"]{--grp:#7a8a91}
.tg-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 8px}
.tgkarten{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}
.tgkarte{min-height:170px;padding-bottom:30px}
.tgkarte.auf{border-color:var(--grp);box-shadow:0 0 0 1px var(--grp)}
.tg-list{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:12.5px}
.tg-list span{display:flex;justify-content:space-between;gap:8px}.tg-list em{font-style:normal;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tg-list b{font-family:var(--f-mono);font-weight:500;white-space:nowrap}.tg-list .bad b{color:var(--bad)}.tg-list .warnt b{color:var(--warn)}
.tg-warn{font-size:12px;color:var(--warn);margin-top:4px}.tgkarte.bad .tg-warn{color:var(--bad)}
.tg-chev{font-size:16px}
.tgpanel{margin-top:14px;padding:12px 14px 14px;border:1px solid var(--line);border-left:4px solid var(--grp);border-radius:8px;background:var(--panel)}
.tgpanel .tg-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tgpanel h3{margin:0;font-family:var(--f-display);font-size:18px}
.tgpanel .kkarte{background:var(--bg)}
@media (max-width:560px){.tgkarten{grid-template-columns:1fr}.tgkarte{min-height:0}.tg-bar .note{display:none}}.kkarte[data-grp="Ausführung"]{--grp:#2e7d4f}
.projstand{margin-bottom:12px}
.liqwrap{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;align-items:center}
@media (max-width:900px){.liqwrap{grid-template-columns:1fr}}
.liqchart{width:100%;height:auto;display:block}
.liqchart .grid{stroke:var(--line);stroke-width:1}.liqchart .null{stroke:var(--muted);stroke-width:1}
.liqchart .ax{font:11px var(--f-mono);fill:var(--muted)}.liqchart .val{font:600 11.5px var(--f-mono);fill:var(--ink)}
.liqchart .lbar rect{fill:var(--plan)}.liqchart .lbar.neg rect{fill:var(--bad)}.liqchart .lbar:hover rect,.liqchart .lbar:focus rect{opacity:.8}
.liqchart .lbar:focus{outline:none}
.liqleg{display:flex;flex-direction:column;gap:6px;font-size:13px}.liqleg .lb{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--plan);margin-right:6px;vertical-align:-1px}.liqleg .lb.neg{background:var(--bad)}
.liqtab td{vertical-align:top}.liqtab td.num{text-align:right;white-space:nowrap}.liqtab td.neg{color:var(--bad)}
.liqtab tr.negz td{background:color-mix(in srgb,var(--bad) 7%,transparent)}.liqtab tr.ueberf td{background:color-mix(in srgb,var(--signal) 12%,transparent)}
.zpos{font-size:13px;padding:2px 0;white-space:nowrap}.zpos>span:first-child{font-family:var(--f-mono);font-weight:600;display:inline-block;min-width:84px;text-align:right;margin-right:6px}
.chip.zst-f{background:color-mix(in srgb,var(--ok) 18%,transparent)}.chip.zst-p{background:color-mix(in srgb,var(--signal) 25%,transparent)}.chip.zst-g{background:var(--chip)}
.ok-t{color:var(--ok)}.hinweisbox.neg{border-left-color:var(--bad)}
.ckwahl{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:2px 0 4px}.ckwahl .note{flex-basis:100%}
.ckprojekt{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.ckprojekt h2{margin:2px 0 0;font-size:26px}
.rkarte.proj{min-height:auto}.rkarten.projk{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}.pk-grid em{overflow-wrap:anywhere}
.pk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;margin:8px 0 4px}
.pk-grid>span{display:flex;flex-direction:column;min-width:0}.pk-grid em{font-style:normal;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.pk-grid b{font-family:var(--f-display);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
@media (max-width:560px){.pk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ichkarte{display:flex;gap:10px;align-items:center;padding:6px 8px 12px;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.15)}
.ichkarte .ich-av{width:32px;height:32px;border-radius:50%;flex:none;background:rgba(255,255,255,.15);display:grid;place-items:center}
.ichkarte span{display:flex;flex-direction:column;min-width:0}.ichkarte b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ichkarte em{font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.ichkarte em.rolle-lesen{color:var(--signal)}
.lesenbar{background:var(--chip);border-left:3px solid var(--signal);padding:6px 12px;font-size:13px;margin-bottom:10px}
.aetab td{vertical-align:top;font-size:13.5px}.chip.ae-n{background:color-mix(in srgb,var(--ok) 18%,transparent)}.chip.ae-d{background:color-mix(in srgb,var(--bad) 16%,transparent)}.chip.ae-g{background:var(--chip)}
#swipeZeiger{position:fixed;left:8px;top:50%;width:44px;height:44px;margin-top:-22px;border-radius:50%;background:var(--plan);color:#fff;display:grid;place-items:center;opacity:0;transform:translateX(calc(-60px + var(--p,0)*60px)) scale(calc(.6 + var(--p,0)*.4));pointer-events:none;z-index:50;transition:opacity .1s}
#swipeZeiger.an{opacity:calc(.3 + var(--p,0)*.7)}
#swipeZeiger svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@keyframes navZurueck{from{opacity:.4;transform:translateX(-18px)}to{opacity:1;transform:none}}
main.nav-zurueck{animation:navZurueck .22s ease-out}
@media (prefers-reduced-motion:reduce){main.nav-zurueck{animation:none}.kkarte{transition:none}}
.btn{border:1px solid var(--line);background:var(--panel);padding:7px 12px;border-radius:4px;cursor:pointer;font-weight:500;text-decoration:none;color:var(--ink);display:inline-block}
.btn:hover{border-color:var(--muted)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn:focus-visible,.icon:focus-visible{outline:2px solid var(--signal);outline-offset:1px}
.btn.primary{background:var(--signal);color:var(--signal-ink);border-color:var(--signal);font-weight:600}
.btn.ghost-light{background:transparent;color:var(--plan-ink);border-color:rgba(255,255,255,.35)}
.btn.danger{color:var(--bad)}
.btn.small{padding:4px 9px;font-size:13px}
main{padding-block:24px 48px;padding-inline:clamp(16px,3vw,36px);min-width:0;display:flex;flex-direction:column;gap:20px}
.head{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:space-between;align-items:flex-end}
.head h1{font-size:34px;line-height:1.05}
.meta{display:flex;flex-wrap:wrap;gap:4px 18px;color:var(--muted);font-size:14px;margin-top:6px}
.meta b{font-family:var(--f-mono);font-weight:500;color:var(--ink)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto}
.tabs button{white-space:nowrap}
.tabs button{all:unset;white-space:nowrap;cursor:pointer;padding:8px 14px;font-family:var(--f-display);font-size:18px;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs button.on{color:var(--ink);border-color:var(--signal)}
.tabs button:focus-visible{outline:2px solid var(--signal)}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.toolbar .l,.toolbar .r{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.group{background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.group-h{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line)}
.group-h h3{font-size:19px}
.group-b{padding:14px;display:flex;flex-direction:column;gap:14px}
.step{font-family:var(--f-mono);font-size:12px;background:var(--signal);color:var(--signal-ink);border-radius:3px;padding:1px 6px;margin-right:8px;vertical-align:2px}
.din{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.groups{display:flex;flex-direction:column;gap:14px}
.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.num,.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
td .sub{color:var(--muted);font-size:13px}
.chips{display:flex;flex-wrap:wrap;gap:4px}
.chip{background:var(--chip);padding:1px 8px;border-radius:999px;font-size:12px;white-space:nowrap}
.chip.main{background:var(--plan);color:var(--plan-ink)}
.status{font-size:13px;border:1px solid var(--line);border-radius:4px;padding:3px 6px;background:var(--panel)}
.status[data-s="versendet"]{border-color:var(--warn);color:var(--warn)}
.status[data-s="angebot"]{border-color:var(--ok);color:var(--ok)}
.status[data-s="abgesagt"]{border-color:var(--bad);color:var(--bad)}
.sum{width:120px;text-align:right;font-family:var(--f-mono);border:1px solid var(--line);border-radius:4px;padding:3px 6px;background:var(--panel)}
.best{color:var(--ok);font-weight:600}
.actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.empty{background:var(--panel);border:1px dashed var(--line);border-radius:6px;padding:28px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:12px;align-items:center}
.empty strong{color:var(--ink);font-family:var(--f-display);font-size:20px;font-weight:600}
.search,.sel{border:1px solid var(--line);border-radius:4px;padding:7px 10px;background:var(--panel);min-width:0;max-width:100%}
.search{width:240px}
.note{font-size:12px;color:var(--muted)}
dialog{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);padding:0;width:min(600px,calc(100vw - 32px))}
dialog::backdrop{background:rgba(10,20,25,.5)}
dialog form{display:flex;flex-direction:column;gap:14px;padding:20px}
dialog h2{font-size:24px}
fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
legend{font-family:var(--f-display);font-size:17px;font-weight:600;padding:0;margin-bottom:8px;color:var(--muted)}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:4px;padding:8px 10px;background:var(--bg);width:100%}
.field textarea{min-height:110px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row-plz{display:grid;grid-template-columns:110px 1fr;gap:12px}
.dlg-actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:4px}
.dlg-actions .r{display:flex;gap:8px;margin-left:auto}
.checks{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:4px;padding:8px 10px;background:var(--bg)}
.checks label{display:flex;gap:8px;align-items:baseline;font-size:14px;flex-wrap:wrap}
.checks label.off{color:var(--muted)}
pre.letter{white-space:pre-wrap;font-family:var(--f-body);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:14px;margin:0;max-height:50vh;overflow:auto;user-select:all}
pre.letter.mono{font-family:var(--f-mono);font-size:12.5px}
.mail{font-family:var(--f-mono);font-size:13px;user-select:all;word-break:break-all}
.pos input{border:1px solid transparent;background:transparent;padding:5px 6px;border-radius:3px;width:100%}
.pos input:hover{border-color:var(--line)}
.pos input:focus{border-color:var(--muted);background:var(--bg);outline:none}
.pos td{padding:4px 8px}
.pos .oz{width:110px;font-family:var(--f-mono)}
.pos .menge{width:100px;text-align:right;font-family:var(--f-mono)}
.pos .einheit{width:80px}
.ablage{display:flex;flex-direction:column;gap:14px}
.tree{padding:8px;display:flex;flex-direction:column;gap:1px}
/* Rechnungsprüfung */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px;align-items:start}
@media (max-width:1100px){.split{grid-template-columns:1fr}}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid .full{grid-column:1/-1}
@media (max-width:600px){.form-grid{grid-template-columns:1fr}}
.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:.7}
.money{text-align:right;font-family:var(--f-mono)}
.sheet{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:18px 20px;display:flex;flex-direction:column;gap:2px;font-size:14px}
.sheet h3{font-size:20px;margin-bottom:6px}
.sheet .sec{font-family:var(--f-display);font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:12px;padding-bottom:3px;border-bottom:1px solid var(--line)}
.sl{display:grid;grid-template-columns:1fr auto auto;gap:4px 14px;padding:3px 0;align-items:baseline}
.sl .p{font-family:var(--f-mono);font-size:12px;color:var(--muted);text-align:right;min-width:52px}
.sl .v{font-family:var(--f-mono);font-variant-numeric:tabular-nums;text-align:right;min-width:130px}
.sl.minus .v{color:var(--bad)}
.sl.total{border-top:1px solid var(--ink);font-weight:600;margin-top:2px;padding-top:5px}
.sl.pay{background:var(--chip);padding:6px 8px;border-radius:4px;font-weight:600;margin-top:4px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:13px}
.kv span:nth-child(odd){color:var(--muted)}
.warn{display:flex;flex-direction:column;gap:4px}
.warn div{font-size:13px;padding:5px 10px;border-radius:4px;border-left:3px solid var(--warn);background:var(--chip)}
.warn div.bad{border-color:var(--bad)}.warn div.info{border-color:var(--line);color:var(--muted)}.warn div.okt{border-color:var(--ok)}
.bar{height:6px;background:var(--chip);border-radius:3px;overflow:hidden;min-width:80px}
.bar i{display:block;height:100%;background:var(--plan)}
.bar i.over{background:var(--bad)}
:root[data-theme="dark"] .bar i:not(.over){background:var(--signal)}
.pill{font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.pill.geprueft{border-color:var(--ok);color:var(--ok)}
.pill.inpruefung{border-color:var(--warn);color:var(--warn)}
.pill.zurueckgewiesen{border-color:var(--bad);color:var(--bad)}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--chip)}
tr.sel td{background:var(--chip)}
/* Assistent */
.chat{display:flex;flex-direction:column;gap:12px;padding:14px;max-height:62vh;overflow:auto}
.msg{max-width:min(760px,100%);padding:10px 14px;border-radius:8px;line-height:1.5;overflow-wrap:anywhere}
.msg.user{align-self:flex-end;background:var(--plan);color:var(--plan-ink)}
.msg.assistant{align-self:flex-start;background:var(--bg);border:1px solid var(--line)}
.msg.assistant p{margin:0 0 8px}.msg.assistant p:last-child{margin:0}
.msg.assistant ul{margin:4px 0 8px;padding-left:20px}
.msg.assistant h4{margin:10px 0 4px;font-family:var(--f-display);font-size:16px}
.composer{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);align-items:flex-end;flex-wrap:wrap}
.composer textarea{flex:1;min-width:200px;min-height:56px;border:1px solid var(--line);border-radius:4px;padding:8px 10px;background:var(--bg);resize:vertical}
.quick{display:flex;flex-wrap:wrap;gap:6px}
/* PDF-Ansicht */
#dlgPdf{width:min(1000px,calc(100vw - 24px));max-height:calc(100vh - 24px)}
#dlgPicker{width:min(680px,calc(100vw - 24px))}
.pk-list{max-height:46vh}
.pk-list label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;padding:6px 4px;border-bottom:1px solid var(--line);align-items:start}
.pk-list label:last-child{border-bottom:0}
.pk-list .pk-sub{grid-column:2;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.pk-list label.drin{opacity:.6}
#dlgPdf .pdf-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}
#pdfPages{background:var(--chip);padding:12px;display:flex;flex-direction:column;align-items:center;gap:12px;overflow:auto;max-height:calc(100vh - 140px)}
#pdfPages canvas,#pdfPages img{box-shadow:0 1px 4px rgba(0,0,0,.25);max-width:none;background:#fff}
#pdfPages img{max-width:100%}
/* Word-Vorschau: bewusst immer Papierweiß */
.docpage{--paper:#ffffff;--paper-ink:#1d2326;--paper-line:#c9d0d3;background:var(--paper);color:var(--paper-ink);width:100%;max-width:820px;padding:44px clamp(18px,5vw,60px);box-shadow:0 1px 4px rgba(0,0,0,.25);font-size:13.5px;line-height:1.5;color-scheme:light}
.docpage p{margin:0 0 5px}.docpage h4{margin:14px 0 6px;font-family:var(--f-display);font-size:18px}
.docpage table{border-collapse:collapse;width:100%;margin:8px 0}.docpage td{border:1px solid var(--paper-line);padding:4px 7px;vertical-align:top}
.docpage td p{margin:0}.docpage hr.pg{border:0;border-top:2px dashed var(--paper-line);margin:22px -20px}
/* Verhandlungsprotokoll */
.vp-sec{font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-right:8px}
.vp-akte{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.vp-akte .box{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:10px 12px;font-size:13.5px}
.vp-akte .box b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin-bottom:3px}
.calc{display:grid;grid-template-columns:1fr auto;gap:3px 16px;font-size:14px;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:10px 12px}
.calc span:nth-child(even){font-family:var(--f-mono);text-align:right}
.calc .t{font-weight:600}
.jn{display:flex;gap:6px 18px;align-items:center;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}
.jn .q{flex:1 1 260px;min-width:0}
.jn label{display:flex;gap:5px;align-items:center;font-size:14px}
.radio{display:flex;gap:18px;flex-wrap:wrap}.radio label{display:flex;gap:6px;align-items:center}
.sticky-bar{position:sticky;bottom:0;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px 14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;box-shadow:0 -2px 10px rgba(0,0,0,.08);z-index:2}
.fixtext{font-size:13px;color:var(--muted);margin:0}
.vplayout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:start}
.vpidx{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px);display:flex;flex-direction:column;gap:1px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px}
.vpidx button{all:unset;cursor:pointer;display:flex;gap:7px;align-items:center;padding:5px 6px;border-radius:4px;font-size:13px}
.vpidx button:hover{background:var(--chip)}.vpidx button:focus-visible{outline:2px solid var(--signal)}
.vpidx .mono{font-size:10.5px;color:var(--muted);min-width:34px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--line);flex:none}.dot.ok{background:var(--ok)}.dot.offen{background:var(--signal)}
.vpmain{display:flex;flex-direction:column;gap:10px;min-width:0}
.vpsec{background:var(--panel);border:1px solid var(--line);border-radius:6px}
.vpsec>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:11px 14px}
.vpsec>summary::-webkit-details-marker{display:none}
.vpsec>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);margin-right:2px;align-self:center;transition:transform .15s}
.vpsec[open]>summary::before{transform:rotate(45deg)}
.vpsec>summary h3{font-size:18px}.vpsec>summary .vpsum{font-size:13px;color:var(--muted);margin-left:auto;text-align:right}
.vpsec[open]>summary{border-bottom:1px solid var(--line)}
.vpsec>summary:focus-visible{outline:2px solid var(--signal)}
@media (max-width:900px){.vplayout{grid-template-columns:1fr}.vpidx{position:static;flex-direction:row;flex-wrap:wrap}.vpidx .actions{margin-top:0!important}}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.tile .tl{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.tile .tv{font-family:var(--f-display);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.1}
.tile .ts{font-size:12px;color:var(--muted);font-family:var(--f-mono)}
.tile.ok{box-shadow:inset 3px 0 0 var(--ok)}.tile.ok .tv{color:var(--ok)}
.tile.bad{box-shadow:inset 3px 0 0 var(--bad)}.tile.bad .tv{color:var(--bad)}
.bez{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.bz{border:1px solid var(--line);border-radius:5px;padding:8px 10px;display:flex;flex-direction:column;gap:5px;background:var(--bg)}
.bz.need{border-color:var(--signal);box-shadow:inset 0 0 0 1px var(--signal)}
.bz label{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bz label .mono{color:var(--ink);font-size:11.5px;margin-right:4px}
.bz-in{display:flex;gap:6px;align-items:center}
.bz-in input,.bz-in span.money{flex:1;min-width:0;border:1px solid var(--line);border-radius:4px;padding:5px 8px;background:var(--panel);text-align:right;font-family:var(--f-mono)}
.bz .unit{font-size:12px;color:var(--muted);min-width:44px}
.bz select{font-size:12px;border:1px solid var(--line);border-radius:4px;padding:3px 4px;background:var(--panel);color:var(--muted)}
.kgkw{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.kgkw-box{border:1px solid var(--line);border-radius:5px;padding:10px 12px;background:var(--bg);display:flex;flex-direction:column;gap:6px}
.kgkw-box label{font-size:13.5px}.kgkw-box .bz-in input{max-width:160px}
.kin{width:116px;border:1px solid var(--line);border-radius:4px;padding:4px 7px;background:var(--panel);text-align:right;font-family:var(--f-mono);font-size:13px}
.kin::placeholder{color:var(--muted);opacity:.75}
.ktab td{padding:7px 10px;font-size:13.5px}.ktab th{padding:8px 10px}
.ktab td.num{text-align:right;white-space:nowrap}
.ktab .k-paket{min-width:210px}
.ktab .k-paket .linkbtn{text-decoration:none;font-weight:600;color:var(--ink)}
.ktab .k-paket .linkbtn:hover{text-decoration:underline}
.ktab tr.k-grp td{background:var(--bg);font-family:var(--f-display);font-weight:600;font-size:15px;padding-top:12px}
.ktab tr.k-sum td{font-weight:600;border-bottom:2px solid var(--line)}
.ktab tr.k-total td{font-weight:700;font-size:14.5px;border-top:2px solid var(--ink)}
.ktab td.neg{color:var(--bad)}
.dintab td{vertical-align:top}.dintab td.mono{font-family:var(--f-mono);font-size:12.5px;color:var(--muted)}.dintab .din-t{min-width:220px;max-width:340px}
.dintab tr.din-leer td{color:var(--muted)}.dintab tr.din-leer td.din-t{opacity:.85}
.dinsel{font-size:12.5px;border:1px solid var(--line);border-radius:4px;padding:4px 5px;background:var(--panel);color:var(--ink);max-width:190px}
.dinwert{display:inline-flex;align-items:center;gap:4px;margin-bottom:3px}.dinwert .kin{width:104px}.dinwert .unit{font-size:12px;color:var(--muted)}
.dinkopf{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:6px}.dinkopf .bz-in select{font-size:12.5px;border:1px solid var(--line);border-radius:4px;padding:4px;background:var(--panel);color:var(--ink)}
.dinant{display:flex;flex-direction:column;gap:6px}
.dinant-z{display:grid;grid-template-columns:minmax(150px,280px) 1fr 64px 110px;gap:10px;align-items:center;font-size:13px}
.dinant-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dinant-l b{font-family:var(--f-mono);font-weight:500;margin-right:4px}
.dinant-bar{height:10px;background:var(--chip);border-radius:2px;overflow:hidden}.dinant-bar i{display:block;height:100%;background:var(--plan)}
:root[data-theme="dark"] .dinant-bar i{background:var(--signal)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .dinant-bar i{background:var(--signal)}}
.dinant-p,.dinant-v{text-align:right;font-family:var(--f-mono);font-size:12.5px}.dinant-v{color:var(--muted)}
@media (max-width:640px){.dinant-z{grid-template-columns:1fr 64px;row-gap:3px}.dinant-bar{grid-column:1/-1;grid-row:2}.dinant-v{display:none}}
.kk-dinbar{display:flex;gap:2px;height:8px;margin-top:6px}.kk-dinbar i{background:var(--plan);opacity:.85;border-radius:1px}.kk-dinbar i:nth-child(even){opacity:.5}
.tile.warnt{box-shadow:inset 3px 0 0 var(--warn)}.tile.warnt .tv{color:var(--warn)}
.fchips{display:flex;flex-wrap:wrap;gap:6px}
.fchip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer;color:var(--ink)}
.fchip b{font-family:var(--f-mono);font-weight:500;color:var(--muted);margin-left:2px}
.fchip.on{background:var(--plan);color:var(--plan-ink);border-color:var(--plan)}.fchip.on b{color:var(--plan-ink)}
.fchip:focus-visible{outline:2px solid var(--signal)}
.vgtab td{padding:7px 10px;font-size:13.5px;vertical-align:middle}.vgtab th{padding:8px 10px}
.vgtab td.num{text-align:right;white-space:nowrap}
.vgtab .k-paket{min-width:200px}.vgtab .k-paket .linkbtn{text-decoration:none;font-weight:600;color:var(--ink)}
.vg-date{border:1px solid var(--line);border-radius:4px;padding:3px 6px;background:var(--panel);font-size:13px;font-family:var(--f-mono)}
.vg-date.geschaetzt{color:var(--muted);border-style:dashed;font-style:italic}
tr.vg-aus td{opacity:.55}
.ampel{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--line);vertical-align:middle}
.ampel.rot{background:var(--bad)}.ampel.gelb{background:var(--signal)}.ampel.gruen{background:var(--ok)}.ampel.ok{background:transparent;border:2px solid var(--ok)}.ampel.aus{background:transparent;border:2px dashed var(--line)}
.stufen{display:flex;gap:3px;align-items:center;white-space:nowrap}
.stufen span{width:14px;height:6px;border-radius:2px;background:var(--line)}.stufen span.an{background:var(--plan)}
:root[data-theme="dark"] .stufen span.an{background:var(--signal)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .stufen span.an{background:var(--signal)}}
.stufen em{font-style:normal;font-size:12.5px;margin-left:6px}
.uv-dash-h{display:flex;gap:8px;align-items:center;margin-top:6px}.uv-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;align-items:stretch}
.uv-grid>.group{margin:0;display:flex;flex-direction:column}.uv-grid>.group>.group-b{flex:1}
.lage-mehr{all:unset;cursor:pointer;display:block;margin-top:10px;font-size:13.5px;font-weight:600;color:var(--plan)}.lage-mehr:hover{text-decoration:underline}.lage-mehr:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
@media (max-width:980px){.uv-grid{grid-template-columns:1fr}}
.tile.tbtnk{all:unset;box-sizing:border-box;cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.tile.tbtnk:hover{border-color:var(--muted)}.tile.tbtnk:focus-visible{outline:2px solid var(--signal)}
.todo{list-style:none;margin:0;padding:6px 14px 12px}.todo li{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.todo li:last-child{border-bottom:0}
.todo .linkbtn{text-decoration:none;color:var(--ink)}.todo .linkbtn:hover{text-decoration:underline}
.tp{display:grid;grid-template-columns:minmax(0,min(700px,52%)) minmax(0,1fr);overflow:hidden}
@media (max-width:1100px){.tp{grid-template-columns:1fr}}
.tp-links{border-right:1px solid var(--line);min-width:0}
.tptab{border-collapse:collapse}.tptab th{padding:0 6px 6px;font-size:10.5px;white-space:nowrap;vertical-align:bottom;border-bottom:0;box-shadow:inset 0 -1px 0 var(--line);height:46px;box-sizing:border-box}
.tptab td{padding:0 4px;border-bottom:0;box-shadow:inset 0 -1px 0 var(--line);height:34px;box-sizing:border-box;font-size:13px;white-space:nowrap}
.tptab input{border:1px solid transparent;background:transparent;padding:3px 5px;border-radius:3px;font-size:13px;height:24px;box-sizing:border-box}
.tptab input:hover{border-color:var(--line)}.tptab input:focus{border-color:var(--muted);background:var(--bg);outline:none}
.tptab .tp-name input{width:220px}.tptab .tp-d{width:52px}.tptab .tp-v{width:78px;font-family:var(--f-mono)}.tptab .vg-date{height:24px;padding:2px 4px}
.tptab tr.tp-sam td{background:var(--bg)}.tptab tr.tp-sam .tp-name input{font-weight:700}
.tptab tr.tp-konf td{box-shadow:inset 0 -2px 0 var(--bad)}
.tptab tr{height:34px}
.tptab select.tp-p{font-size:12px;border:1px solid transparent;background:transparent;max-width:92px}.tptab select.tp-p:hover{border-color:var(--line)}
.tp-vp{font-family:var(--f-mono);font-size:10px;background:var(--plan);color:var(--plan-ink);border-radius:3px;padding:1px 4px;margin-left:2px}.tp-vp.leer{background:var(--chip);color:var(--muted)}
.tp-akt{display:flex;gap:1px;opacity:.35}.tptab tr:hover .tp-akt,.tp-akt:focus-within{opacity:1}
.tbtn{all:unset;cursor:pointer;width:20px;height:22px;text-align:center;font-size:12px;border-radius:3px;color:var(--muted)}.tbtn:hover{background:var(--chip);color:var(--ink)}.tbtn:focus-visible{outline:2px solid var(--signal)}
.tp-rechts{overflow-x:auto;min-width:0;position:relative}
.tp-kopf{position:relative;height:46px;box-sizing:border-box;border-bottom:1px solid var(--line);background:var(--panel)}
.tp-m{position:absolute;top:0;height:22px;border-left:1px solid var(--line);font-size:11px;font-weight:600;padding:4px 6px;box-sizing:border-box;white-space:nowrap;overflow:hidden}
.tp-wochen{position:absolute;top:22px;left:0;right:0;height:24px}
.tp-w{position:absolute;top:0;height:24px;border-left:1px solid var(--line);font-size:10px;color:var(--muted);padding:5px 3px;box-sizing:border-box;white-space:nowrap;overflow:hidden;font-family:var(--f-mono)}
.tp-body{position:relative}
.tp-row{position:absolute;left:0;right:0;border-bottom:1px solid var(--line)}.tp-row.odd{background:color-mix(in srgb,var(--bg) 45%,transparent)}
.tp-frei{position:absolute;top:0;bottom:0;background:var(--chip);opacity:.6}
.tp-heute{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--bad);z-index:2}
.tp-bar{position:absolute;height:18px;border-radius:3px;background:var(--signal);border:1px solid color-mix(in srgb,var(--signal) 70%,var(--ink));box-sizing:border-box;z-index:3;overflow:hidden}
.tp-bar i{position:absolute;left:0;top:7px;height:4px;background:var(--ink);opacity:.55}
.tp-bar.vp{background:var(--plan);border-color:var(--plan)}
:root[data-theme="dark"] .tp-bar.vp{background:#3f8aa3;border-color:#3f8aa3}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .tp-bar.vp{background:#3f8aa3;border-color:#3f8aa3}}
.tp-bar.konf{outline:2px solid var(--bad);outline-offset:1px}
.tp-krit{color:var(--bad);font-weight:600}
.tp-bar.krit{background:#d9534f;border-color:#a33a37;color:#fff}
.tp-sum{position:absolute;height:6px;background:var(--ink);z-index:3}.tp-sum::before,.tp-sum::after{content:"";position:absolute;top:0;border-top:7px solid var(--ink);border-left:5px solid transparent;border-right:5px solid transparent}
.tp-sum::before{left:-5px}.tp-sum::after{right:-5px}
.tp-ms{position:absolute;width:12px;height:12px;background:var(--ink);transform:rotate(45deg);z-index:3}
.tp-lbl{position:absolute;height:34px;line-height:34px;font-size:11.5px;color:var(--muted);white-space:nowrap;z-index:3;pointer-events:none}
.tp-pfeile{position:absolute;left:0;top:0;z-index:2;overflow:visible}.tp-pfeile path{fill:none;stroke:var(--muted);stroke-width:1.2}.tp-pfeile path.kopf{fill:var(--muted);stroke:none}.tp-pfeile path.konf{stroke:var(--bad)}
.imp-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.pos tr.lv-titel td{background:var(--bg)}.pos tr.lv-titel input{font-weight:700}
.pos tr.lv-lt textarea{width:100%;min-height:90px;border:1px solid var(--line);border-radius:4px;padding:8px;background:var(--bg);font-size:13px}
.pos select.art{font-size:12.5px;border:1px solid transparent;background:transparent;padding:4px}
.pos select.art:hover{border-color:var(--line)}
.btn.lt-on{background:var(--chip);font-weight:600}
.pos .zw{width:70px}.pos .zw.ki{color:var(--plan);font-style:italic}
:root[data-theme="dark"] .pos .zw.ki{color:#7fc4da}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pos .zw.ki{color:#7fc4da}}
.pos td.num{font-family:var(--f-mono);font-size:12.5px;text-align:right;white-space:nowrap}
.lohnbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%;padding-top:6px;border-top:1px dashed var(--line);font-size:13px}
.lohnbar span{margin-right:auto}
.ps-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.ps-card{border:1px solid var(--line);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.ps-card.best{border-color:var(--ok);box-shadow:inset 3px 0 0 var(--ok)}
.ps-top{display:flex;gap:8px;align-items:center;justify-content:space-between}.ps-top select{flex:1;min-width:0;font-weight:600;border:1px solid var(--line);border-radius:4px;padding:5px;background:var(--panel)}
.pstab td{padding:4px 8px;font-size:13px}.pstab th{padding:7px 8px}.pstab .ps-txt{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pstab .ps-h{text-align:center;border-left:1px solid var(--line)}.pstab td.ps-ep{border-left:1px solid var(--line)}
.pstab .kin{width:96px}.pstab .kin.hoch{background:color-mix(in srgb,var(--warn) 22%,var(--panel));border-color:var(--warn)}
.pstab .kin.niedrig{background:color-mix(in srgb,var(--plan) 18%,var(--panel));border-color:var(--plan)}.pstab .kin.fehlt{border-style:dashed}
.pstab .kin.unterlohn{box-shadow:inset 0 -2px 0 var(--bad);color:var(--bad)}
.pstab tr.ps-nz td{color:var(--muted)}.pstab tfoot td{padding:8px}
.trow{display:flex;align-items:center;gap:2px;padding-left:calc(var(--d)*22px);border-radius:4px}
.trow:hover{background:var(--chip)}
.trow.on{background:var(--chip);box-shadow:inset 3px 0 0 var(--signal)}
.trow.on .nm{font-weight:600}
.tog{all:unset;cursor:pointer;width:22px;height:28px;display:flex;align-items:center;justify-content:center;flex:none;border-radius:3px}
.tog::before{content:"";width:6px;height:6px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s}
.tog.auf::before{transform:rotate(45deg) translate(-2px,-2px)}
.tog.leer{cursor:default}.tog.leer::before{display:none}
.tog:hover::before{border-color:var(--ink)}
.tog:focus-visible,.tsel:focus-visible{outline:2px solid var(--signal)}
.tsel{all:unset;cursor:pointer;display:flex;gap:9px;align-items:center;padding:6px 8px 6px 2px;font-size:14px;flex:1;min-width:0}
.tree .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.tree .cnt{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.tree .ico{width:17px;height:12px;border:1.5px solid var(--muted);border-radius:1px 3px 2px 2px;position:relative;flex:none;background:var(--panel)}
.tree .ico::before{content:"";position:absolute;left:-1.5px;top:-4px;width:7px;height:3px;border:1.5px solid var(--muted);border-bottom:0;border-radius:2px 2px 0 0}
.tree .ico.offen{border-radius:1px 3px 2px 2px;transform:skewX(-12deg);background:color-mix(in srgb,var(--signal) 22%,var(--panel))}
.trow.on .ico,.trow.on .ico::before{border-color:var(--signal)}
@media (prefers-reduced-motion:reduce){.tog::before{transition:none}}
.crumb{font-family:var(--f-mono);font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.drop{border:2px dashed var(--line);border-radius:6px;padding:16px;text-align:center;color:var(--muted);font-size:14px}
.drop.over{border-color:var(--signal);background:var(--chip);color:var(--ink)}
.ftype{font-family:var(--f-mono);font-size:10px;font-weight:500;border:1px solid var(--line);border-radius:3px;padding:1px 4px;color:var(--muted);margin-right:8px}
.fname{overflow-wrap:anywhere}
.files{list-style:none;margin:0;padding:0}
.file{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line)}
.file:hover{background:var(--bg)}
.file .ftype{margin:0;text-align:center;padding:5px 0;font-size:10.5px;border-radius:4px;background:var(--chip);border-color:transparent;color:var(--ink)}
.file .ft-pdf{background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--bad)}
.file .ft-docx,.file .ft-docm,.file .ft-doc{background:color-mix(in srgb,var(--plan) 18%,transparent)}
.file .ft-xlsx,.file .ft-xlsm,.file .ft-xls{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.fmain{min-width:0}
.file .fname{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;text-decoration:none;font-weight:500}
.file .fname:hover{text-decoration:underline}
.fmeta{font-family:var(--f-mono);font-size:12px;color:var(--muted);margin-top:2px}
.factions{display:flex;gap:6px;align-items:center}
.move{font-size:13px;border:1px solid var(--line);border-radius:4px;padding:4px 6px;background:var(--panel);max-width:150px}
@media (max-width:640px){.file{grid-template-columns:40px minmax(0,1fr)}.factions{grid-column:2}}
.linkbtn{all:unset;cursor:pointer;color:var(--plan);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
:root[data-theme="dark"] .linkbtn{color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .linkbtn,:root:not([data-theme="light"]) a{color:var(--ink)}}
.linkbtn:focus-visible{outline:2px solid var(--signal)}
.err{color:var(--bad);font-size:13px}
@media (max-width:980px){.ablage{grid-template-columns:1fr}}
.dirty{color:var(--warn);font-size:13px}
.saved{color:var(--ok);font-size:13px}
@media (max-width:820px){
  .app{grid-template-columns:1fr}
  aside{padding:16px}
  .row2{grid-template-columns:1fr}
  .head h1{font-size:28px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Termine und Fristen: Kalender (Monat, Woche, Liste) */
.kal-bar{margin:14px 0 8px}.kal-titel{font-size:22px;margin-left:6px;text-transform:capitalize}
.kal-bar .sel{border:1px solid var(--line);border-radius:4px;padding:5px 8px;background:var(--panel);max-width:220px}
.kal-kats{margin-bottom:12px}.fchip.kat{display:inline-flex;align-items:center;gap:6px}
.fchip.kat i{width:10px;height:10px;border-radius:3px;background:var(--kc);flex:none}
.fchip.kat:not(.on){opacity:.55;text-decoration:line-through}.fchip.kat.on{background:var(--panel);color:var(--ink);border-color:var(--kc)}
.k-termin{--kc:#1967c6}.k-bespr{--kc:#0f8a7e}.k-gw{--kc:#7a4fc2}.k-nachtrag{--kc:#c2621f}.k-nachweis{--kc:#5d6b71}.k-ticket{--kc:#b3362c}.k-angebot{--kc:#a86a00}.k-behinderung{--kc:#8a3b6b}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .k-termin{--kc:#5b9cf0}:root:not([data-theme="light"]) .k-bespr{--kc:#3fbfae}:root:not([data-theme="light"]) .k-gw{--kc:#a787e6}:root:not([data-theme="light"]) .k-nachtrag{--kc:#e88a4a}:root:not([data-theme="light"]) .k-nachweis{--kc:#93a3a9}:root:not([data-theme="light"]) .k-ticket{--kc:#ec7a70}:root:not([data-theme="light"]) .k-angebot{--kc:#e0a63a}:root:not([data-theme="light"]) .k-behinderung{--kc:#d77fb3}}
:root[data-theme="dark"] .k-termin{--kc:#5b9cf0}:root[data-theme="dark"] .k-bespr{--kc:#3fbfae}:root[data-theme="dark"] .k-gw{--kc:#a787e6}:root[data-theme="dark"] .k-nachtrag{--kc:#e88a4a}:root[data-theme="dark"] .k-nachweis{--kc:#93a3a9}:root[data-theme="dark"] .k-ticket{--kc:#ec7a70}:root[data-theme="dark"] .k-angebot{--kc:#e0a63a}:root[data-theme="dark"] .k-behinderung{--kc:#d77fb3}
.pill[class*="kp-"]{border-color:var(--kc)}
.kp-termin{--kc:#1967c6}.kp-bespr{--kc:#0f8a7e}.kp-gw{--kc:#7a4fc2}.kp-nachtrag{--kc:#c2621f}.kp-nachweis{--kc:#5d6b71}.kp-ticket{--kc:#b3362c}.kp-angebot{--kc:#a86a00}.kp-behinderung{--kc:#8a3b6b}
.kal-mon{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--line);gap:1px}
.kal-wt{background:var(--panel);padding:6px 8px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.kal-tag{background:var(--panel);min-height:112px;padding:4px 4px 6px;display:flex;flex-direction:column;gap:2px;min-width:0;cursor:pointer}
.kal-tag.we{background:color-mix(in srgb,var(--panel) 85%,var(--bg))}.kal-tag.fremd{background:var(--bg)}.kal-tag.fremd .kal-nr{opacity:.45}
.kal-tag:hover{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand-blue) 35%,transparent)}
.kal-nr{font-family:var(--f-mono);font-size:12px;padding:1px 4px;align-self:flex-start;border-radius:999px}
.kal-tag.heute .kal-nr{background:var(--brand-blue);color:#fff}
.kal-e{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:4px;align-items:baseline;width:100%;min-width:0;font-size:12px;line-height:1.3;padding:2px 5px;border-radius:3px;border-left:3px solid var(--kc);background:color-mix(in srgb,var(--kc) 13%,var(--panel));color:var(--ink)}
.kal-e:hover{background:color-mix(in srgb,var(--kc) 24%,var(--panel))}.kal-e:focus-visible{outline:2px solid var(--signal)}
.kal-e .kal-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.kal-e .kal-z{font-family:var(--f-mono);font-size:11px;color:var(--muted);flex:none}
.kal-e.ueber{background:color-mix(in srgb,var(--bad) 16%,var(--panel));border-left-color:var(--bad)}
.kal-e.offen{border-style:dashed;border-width:1px 1px 1px 3px;border-color:var(--kc);background:var(--panel)}
.kal-mehr{all:unset;cursor:pointer;font-size:11.5px;color:var(--muted);padding:1px 5px}.kal-mehr:hover{color:var(--ink);text-decoration:underline}
.kal-wo-w{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.kal-wo{display:grid;grid-template-columns:52px repeat(7,minmax(110px,1fr));min-width:820px}
.kal-wk{padding:6px 8px;font-size:13px;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}.kal-wk.heute{color:var(--brand-blue)}.kal-wk.heute b{color:var(--brand-blue)}
.kal-ganz{border-left:1px solid var(--line);border-bottom:2px solid var(--line);padding:3px;display:flex;flex-direction:column;gap:2px;min-height:34px;cursor:pointer}
.kal-h{font-family:var(--f-mono);font-size:10.5px;color:var(--muted);text-align:right;padding:0 6px;box-sizing:border-box;border-top:1px solid var(--line)}.kal-hg{border-top:0;border-bottom:2px solid var(--line);padding-top:8px}
.kal-sp{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0 43px,var(--line) 43px 44px);cursor:pointer}
.kal-sp.heute{background-color:color-mix(in srgb,var(--brand-blue) 5%,transparent)}
.kal-pos{position:absolute;left:2px;right:2px;display:flex}.kal-pos .kal-e{flex-direction:column;align-items:stretch;gap:0;height:100%;overflow:hidden}.kal-pos .kal-s{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kal-einl{margin-top:14px}.kal-einl ul{list-style:none;margin:0;padding:8px 14px 12px;display:flex;flex-direction:column;gap:8px}.kal-einl li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.kal-ant{display:flex;gap:6px;margin-left:auto}
.tm-teil{display:flex;flex-direction:column;max-height:190px;overflow:auto;border:1px solid var(--line);border-radius:4px;padding:4px 2px;background:var(--bg)}
.tm-teil .tm-p{justify-content:flex-start}.tm-teil .tm-p input{width:auto}.tm-teil .tm-p .ok,.tm-teil .tm-p .err,.tm-teil .tm-p .sub{margin-left:auto;font-size:12.5px}
#dlgTermin .field .lbl{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}#dlgTermin label.check input{width:auto}
@media (max-width:700px){.kal-tag{min-height:74px;padding:2px}.kal-e{font-size:10.5px;padding:1px 3px;border-left-width:2px}.kal-e .kal-z{display:none}.kal-wt{padding:4px;font-size:10.5px;text-align:center}.kal-bar .r{width:100%}.kal-bar .sel{max-width:none;flex:1}}
.tm-teil .ok{color:var(--ok)}.tm-teil .err{color:var(--bad)}
/* Projektauswahl im Kalender */
.kal-pw{position:relative}.kal-pbtn{max-width:260px;display:inline-flex;gap:6px;align-items:center}.kal-pbtn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kal-pbtn.aktiv{border-color:var(--brand-blue);box-shadow:inset 0 0 0 1px var(--brand-blue)}
.kal-pick{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:min(440px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px rgba(0,0,0,.18);display:flex;flex-direction:column;max-height:min(520px,70vh)}
.kal-pick-k{padding:10px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line)}
.kal-pick-k input{border:1px solid var(--line);border-radius:4px;padding:8px 10px;background:var(--bg);width:100%;font-size:15px}
.kal-pick-l{overflow:auto;padding:4px 0;flex:1}
.kal-pick-z{display:flex;align-items:center;gap:6px;padding:0 10px 0 2px}.kal-pick-z:hover{background:var(--bg)}
.kal-pick-z label.check{flex:1;min-width:0;cursor:pointer}.kal-pick-z label.check input{width:auto}
.kal-pick-z label span:first-of-type{display:flex;flex-direction:column;min-width:0}.kal-pick-z em{font-style:normal;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kal-pick-z .linkbtn{font-size:12px;white-space:nowrap;opacity:.75}.kal-pick-z .linkbtn:hover{opacity:1}
.kal-pick-leer{padding:10px 14px;margin:0}
.kal-pick-f{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--line)}
.tm-ohne{padding:6px 8px;font-size:12.5px;border-top:1px dashed var(--line);margin-top:4px}
@media (max-width:700px){.kal-pw{flex:1}.kal-pbtn{max-width:none;width:100%}.kal-pick{left:0;right:auto}}
.kal-pick-z[hidden],.kal-pick [hidden]{display:none}
