/* Intellihaus Plantafel – Werkstatt-Plantafel: feste Namensspalte, Tage als Spalten, Aderfarben als Baustellen-Kennung.
   Nur Systemschriften: keine Verbindung zu fremden Servern (DSGVO). */
:root{
  --brand:#1e55b5;
  --bg:#edf0f3; --panel:#ffffff; --ink:#17202b; --muted:#5b6674; --line:#d5dbe2; --soft:#e5e9ee;
  --accent:var(--brand); --accent-ink:#ffffff; --warn:#a6500a; --warn-bg:#fff1dc; --bad:#b42318; --bad-bg:#fde8e6; --ok:#1d7a4b;
  --w-braun:#8b5a2b; --w-schwarz:#272b31; --w-grau:#8a929c; --w-blau:#2462c9; --w-knx:#2f8f4e;
  --w-rot:#c4362c; --w-orange:#d9731a; --w-violett:#7a4fc0; --w-tuerkis:#138a8a; --w-gelb:#b89200;
  --font-display:"Bahnschrift","DIN Alternate","Roboto Condensed","Arial Narrow",sans-serif;
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-mono:ui-monospace,"Cascadia Mono","SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#10151c; --panel:#171f29; --ink:#e5eaf0; --muted:#98a4b2; --line:#2a3441; --soft:#1f2834;
  --accent:color-mix(in srgb,var(--brand) 55%,#ffffff); --accent-ink:#0b1220; --warn:#f2a651; --warn-bg:#3a2912; --bad:#f07a6e; --bad-bg:#3a1714; --ok:#5cc28a;
  --w-braun:#b47d49; --w-schwarz:#7f8892; --w-grau:#a7afb9; --w-blau:#5d91e8; --w-knx:#4db66f;
  --w-rot:#e1635b; --w-orange:#ef9546; --w-violett:#a283e3; --w-tuerkis:#3bb6b6; --w-gelb:#e0c03d;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#10151c; --panel:#171f29; --ink:#e5eaf0; --muted:#98a4b2; --line:#2a3441; --soft:#1f2834;
  --accent:color-mix(in srgb,var(--brand) 55%,#ffffff); --accent-ink:#0b1220; --warn:#f2a651; --warn-bg:#3a2912; --bad:#f07a6e; --bad-bg:#3a1714; --ok:#5cc28a;
  --w-braun:#b47d49; --w-schwarz:#7f8892; --w-grau:#a7afb9; --w-blau:#5d91e8; --w-knx:#4db66f;
  --w-rot:#e1635b; --w-orange:#ef9546; --w-violett:#a283e3; --w-tuerkis:#3bb6b6; --w-gelb:#e0c03d;
  color-scheme:dark}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.45;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:max(14px,env(safe-area-inset-top,0px)) 40px}
[hidden]{display:none!important}
img{max-width:100%}
.wrap{max-width:1440px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}

/* Kopf */
.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand .logo{height:44px;width:auto;max-width:200px;object-fit:contain;display:block}
.mark{width:44px;height:44px;border-radius:8px;background:var(--brand);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:1.25rem;letter-spacing:.02em;flex:none}
.brand .txt{min-width:0}
.brand h1{font-family:var(--font-display);font-weight:700;font-size:1.6rem;line-height:1;margin:0;letter-spacing:.01em;text-transform:uppercase}
.brand h1 span{color:var(--accent)}
.brand p{margin:3px 0 0;color:var(--muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.userbox{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.who{text-align:right;line-height:1.2}
.who b{display:block}
.who small{color:var(--muted)}
.live{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:3px 7px;border-radius:4px;border:1px solid var(--line);color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--muted)}
.live.on{color:var(--ok)}.live.on::before{background:var(--ok)}
.live.off{color:var(--warn)}.live.off::before{background:var(--warn)}

.tabs{display:flex;gap:2px;border-bottom:2px solid var(--line);overflow-x:auto}
.tab{background:none;border:0;padding:8px 14px;font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tab.dev{margin-left:auto}
.subtabs{display:flex;gap:6px;flex-wrap:wrap}
.subtab{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:6px 11px;font-weight:500}
.subtab[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}

.bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.grow{flex:1}
.btn{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:7px 12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;min-height:36px;text-decoration:none;color:var(--ink)}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger{color:var(--bad)}
.btn.ghost{background:transparent}
.btn.small{min-height:30px;padding:4px 9px;font-size:.85rem}
.btn:disabled{opacity:.45;cursor:not-allowed}
.week{display:flex;align-items:center;gap:6px}
.week .kw{font-family:var(--font-display);font-size:1.5rem;font-weight:700;letter-spacing:.02em;min-width:70px;text-align:center}
.week .range{color:var(--muted);font-size:.85rem;min-width:150px}
.iconbtn{width:36px;height:36px;justify-content:center;padding:0}
label.switch{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.85rem}

.notice{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:10px 12px;font-size:.86rem;color:var(--muted)}
.notice.warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--line));background:var(--warn-bg);color:var(--ink)}
.notice.bad{border-color:color-mix(in srgb,var(--bad) 45%,var(--line));background:var(--bad-bg);color:var(--ink)}
.notice strong{color:var(--ink)}
.sectionhead{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;font-size:1.1rem;font-weight:700;margin:0}

/* Plantafel */
.boardbox{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
table.board{border-collapse:separate;border-spacing:0;width:100%;min-width:760px}
.board th,.board td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top}
.board thead th{position:sticky;top:0;background:var(--panel);z-index:2;text-align:left;padding:8px 8px 6px;font-weight:500}
.board .namecol{position:sticky;left:0;background:var(--panel);z-index:1;width:190px;min-width:170px;padding:8px 10px;text-align:left}
.board thead .namecol{z-index:3}
.dayhead .d{font-family:var(--font-display);font-size:1.15rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.dayhead .d .date{font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--muted);margin-left:4px;text-transform:none;letter-spacing:0}
.dayhead .cnt{font-size:.72rem;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}
.dayhead .cnt b{font-weight:600;color:var(--ink)}
.dayhead.today .d{color:var(--accent)}
.dayhead.hol .d{color:var(--muted)}
.dayhead .holname{font-size:.72rem;color:var(--warn);font-weight:600}
.person .nm{font-weight:600;line-height:1.2}
.person .rl{font-size:.75rem;color:var(--muted);font-weight:400}
tr.me .namecol{box-shadow:inset 4px 0 0 var(--accent)}
tr.me .nm::after{content:" (ich)";color:var(--accent);font-weight:500;font-size:.8rem}
.tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}
.tag{font-family:var(--font-mono);font-size:.64rem;padding:1px 4px;border-radius:3px;background:var(--soft);color:var(--muted);border:1px solid var(--line)}
.rolegroup td{background:var(--soft);font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;color:var(--muted);padding:3px 10px}
td.cell{padding:4px;height:64px;min-width:130px}
td.cell.hol{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--soft) 6px 8px)}
td.cell.today{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
td.cell.over{background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
.addbtn{width:100%;height:100%;min-height:54px;border:1px dashed transparent;border-radius:6px;background:transparent;color:var(--muted);font-size:.75rem;display:flex;align-items:center;justify-content:center}
.addbtn:hover,.addbtn:focus-visible{border-color:var(--line);color:var(--ink)}
.addbtn .plus{font-size:1.1rem;opacity:0}
.addbtn:hover .plus,.addbtn:focus-visible .plus{opacity:1}
.addbtn .free{opacity:.55}
.addbtn:hover .free{display:none}
@media (hover:none){.addbtn .plus{opacity:.5}.addbtn .free{display:none}}
.chip{display:block;width:100%;min-height:54px;text-align:left;border:1px solid color-mix(in srgb,var(--c) 30%,var(--line));border-left:4px solid var(--c);border-radius:6px;padding:5px 7px;
  background:color-mix(in srgb,var(--c) 11%,var(--panel));line-height:1.25;color:var(--ink)}
.chip .t{font-weight:600;font-size:.82rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.chip .s{font-size:.7rem;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip .w{font-size:.68rem;color:var(--warn);font-weight:600;display:block}
.chip[draggable="true"]{cursor:grab}
.chip.abs{background:repeating-linear-gradient(135deg,var(--soft) 0 7px,var(--panel) 7px 14px);border-left-style:dashed}
.chip.gone{--c:var(--line)}
div.chip{cursor:default}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:5px}
.sw{width:12px;height:12px;border-radius:2px;background:var(--c);display:inline-block;flex:none}

.empty{padding:28px 20px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;max-width:640px}
.empty h2{font-family:var(--font-display);text-transform:uppercase;font-size:1.5rem;margin:0}
.empty p{margin:0;color:var(--muted)}

/* Tagesplan */
.daychips{display:flex;gap:6px;flex-wrap:wrap}
.daychip{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:6px 10px;font-family:var(--font-display);font-weight:600;font-size:1rem;text-transform:uppercase}
.daychip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.card.job{border-top:4px solid var(--c)}
.card h3{margin:0;font-size:1rem;line-height:1.25}
.card .meta{font-size:.8rem;color:var(--muted)}
.card ul{margin:2px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px}
.card li{display:flex;justify-content:space-between;gap:8px;font-size:.88rem;border-top:1px solid var(--soft);padding-top:3px}
.card li .rl{color:var(--muted);font-size:.78rem}
.card li .nt{display:block;color:var(--muted);font-size:.75rem}
.warnline{font-size:.78rem;color:var(--warn);font-weight:600;background:var(--warn-bg);border-radius:4px;padding:3px 6px}

/* Verwaltung */
.split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.list{display:flex;flex-direction:column;gap:6px}
.row{display:flex;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 12px;text-align:left;width:100%;color:var(--ink)}
.row:hover{border-color:var(--muted)}
.row[aria-current="true"]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.row .main{flex:1;min-width:0}
.row .main b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .main small{color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .side{font-size:.78rem;color:var(--muted);text-align:right;white-space:nowrap}
.row.done{opacity:.6}
.pill{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.pill.admin{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.pill.planer{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.pill.off{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.form{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:10px}
.split>.form{position:sticky;top:max(8px,env(safe-area-inset-top,0px))}
.form h2{margin:0;font-family:var(--font-display);text-transform:uppercase;font-size:1.3rem}
.form h3{margin:6px 0 0;font-size:.95rem}
.form p{margin:0}
.field{display:flex;flex-direction:column;gap:4px}
.field>span{font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.field small{color:var(--muted);font-size:.78rem}
.field input,.field select,.field textarea,.cellinput{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--bg);min-height:38px;width:100%}
.field input[type=color]{padding:2px;width:64px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.swatches{display:flex;flex-wrap:wrap;gap:6px}
.swatch{width:30px;height:30px;border-radius:50%;border:2px solid var(--panel);background:var(--c);box-shadow:0 0 0 1px var(--line)}
.swatch[aria-checked="true"]{box-shadow:0 0 0 2px var(--ink)}
.checks{display:flex;flex-wrap:wrap;gap:6px}
.check{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:6px;padding:5px 9px;font-size:.85rem;background:var(--bg)}
.formbtns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.err{color:var(--bad);font-size:.85rem;min-height:1.2em}

/* Listen-Editor im Entwicklermodus */
.ltable{width:100%;border-collapse:collapse;min-width:520px}
.ltable th{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:600;padding:4px 6px}
.ltable td{padding:3px 4px;border-top:1px solid var(--soft);vertical-align:middle}
.ltable .cellinput{min-height:32px;padding:5px 8px}
.ltable .key{font-family:var(--font-mono);font-size:.8rem;color:var(--muted)}
.ltable td.act{white-space:nowrap;text-align:right}
.scrollx{overflow-x:auto}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;font-size:.88rem}
.kv dt{color:var(--muted)}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.logbox{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:6px}
.logbox table{width:100%;border-collapse:collapse;font-size:.82rem}
.logbox td,.logbox th{padding:5px 8px;border-bottom:1px solid var(--soft);text-align:left;vertical-align:top}
.logbox th{position:sticky;top:0;background:var(--panel);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.logopreview{display:flex;align-items:center;justify-content:center;min-height:90px;border:1px dashed var(--line);border-radius:8px;padding:12px;background:repeating-conic-gradient(var(--soft) 0 25%,var(--panel) 0 50%) 0 0/16px 16px}
.logopreview img{max-height:80px}
.devbadge{font-family:var(--font-mono);font-size:.68rem;color:var(--muted)}
.devfoot{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:6px}

/* Anmeldung */
.loginwrap{min-height:calc(100vh - 80px);display:grid;place-items:center}
.loginbox{width:min(400px,100%);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:14px}
.loginbox .brand{flex-direction:column;align-items:flex-start;gap:10px}
.loginbox .brand .logo{height:64px;max-width:260px}
.loginbox .mark{width:56px;height:56px;font-size:1.5rem}
.loginbox .foot{font-size:.75rem;color:var(--muted)}

/* Dialog */
.overlay{position:fixed;inset:0;background:color-mix(in srgb,#000 45%,transparent);display:flex;align-items:center;justify-content:center;z-index:20;
  padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.dialog{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:min(580px,100%);max-height:100%;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.dialog h2{margin:0;font-family:var(--font-display);text-transform:uppercase;font-size:1.4rem;line-height:1.1}
.dialog .sub{color:var(--muted);font-size:.85rem;margin-top:2px}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.opt{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--line);border-left:4px solid var(--c,var(--line));border-radius:6px;padding:7px 9px;background:var(--bg);text-align:left;cursor:pointer}
.opt input{margin-top:3px}
.opt small{display:block;color:var(--muted);font-size:.74rem}
.opt:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.optgroup{font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
@media (max-width:520px){.overlay{align-items:flex-end;padding-bottom:0}.dialog{border-radius:12px 12px 0 0;padding-bottom:max(16px,env(safe-area-inset-bottom,0px))}.who{display:none}}

.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:6px;font-size:.88rem;z-index:30;max-width:calc(100% - 32px)}
.copybox{width:100%;min-height:160px;font-family:var(--font-mono);font-size:.8rem;border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:8px}
@media (prefers-reduced-motion:no-preference){.chip,.row,.btn{transition:border-color .12s,background-color .12s}}
@media print{.tabs,.bar,.userbox,.legend,.notice{display:none!important}body{background:#fff}}

.card li a.tel{color:var(--accent);text-decoration:none;font-size:.78rem;margin-left:6px}
.form input[readonly],.form textarea[readonly]{background:var(--soft);color:var(--muted)}
.field input[type=checkbox],.field input[type=radio]{width:auto;min-height:0;padding:0;border:0;background:none}
/* Schnellplanung */
.palette{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;position:sticky;top:env(safe-area-inset-top,0px);z-index:5}
.palette.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.palrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pallabel{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;color:var(--muted);min-width:118px}
.pal{border:1px solid color-mix(in srgb,var(--c) 35%,var(--line));border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 12%,var(--panel));border-radius:6px;padding:5px 10px;font-size:.84rem;font-weight:600;color:var(--ink);cursor:grab;user-select:none;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal.abs{background:repeating-linear-gradient(135deg,var(--soft) 0 7px,var(--panel) 7px 14px);border-left-style:dashed}
.pal.eraser{border-left-color:var(--muted);background:var(--panel)}
.pal[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px;background:color-mix(in srgb,var(--c) 30%,var(--panel))}
.palhelp{font-size:.8rem;color:var(--muted)}
.boardbox.painting td.cell,.boardbox.painting th.person{cursor:crosshair}
.boardbox.painting td.cell:hover{background:color-mix(in srgb,var(--accent) 8%,var(--panel))}
.boardbox.painting th.person:hover{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.boardbox.painting .chip,.boardbox.painting .addbtn{pointer-events:none}
td.cell.paint{background:color-mix(in srgb,var(--pc) 28%,var(--panel))!important;box-shadow:inset 0 0 0 2px var(--pc)}
th.person.over{background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
.boardbox,.palette{user-select:none}
@media print{.palette{display:none!important}}
/* Schnellplanung als Seitenleiste */
.boardwrap{display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px;align-items:start;margin-top:12px}
.boardmain{display:flex;flex-direction:column;gap:10px;min-width:0}
@media (max-width:900px){.boardwrap{grid-template-columns:1fr}.palette.side{position:static;max-height:none}}
.palette.side{--pal:var(--muted);position:sticky;top:max(8px,env(safe-area-inset-top,0px));max-height:calc(100vh - 24px);overflow:auto;display:flex;flex-direction:column;gap:8px;padding:12px;
  background:color-mix(in srgb,var(--pal) 9%,var(--panel));border:1px solid color-mix(in srgb,var(--pal) 40%,var(--line));border-top:4px solid var(--pal);border-radius:8px;box-shadow:none}
.palette.side.on{box-shadow:0 0 0 2px var(--accent)}
.palhead{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem}
.palgroup{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.pallist{display:flex;flex-direction:column;gap:5px}
.palette.side .pal{display:flex;flex-direction:column;align-items:flex-start;width:100%;max-width:none;white-space:normal;text-align:left;padding:6px 9px;line-height:1.2}
.palette.side .pal .pt{font-weight:600;font-size:.84rem;overflow-wrap:anywhere}
.palette.side .pal .ps{font-weight:400;font-size:.72rem;color:var(--muted)}
.qj{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px dashed color-mix(in srgb,var(--pal) 40%,var(--line))}
.qj input#qjName{border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:var(--panel);width:100%;min-height:36px}
.qj input#qjName:focus{outline:2px solid var(--accent);outline-offset:0}
.qjsw{display:flex;flex-wrap:wrap;gap:5px}
.swatch.mini{width:20px;height:20px;border-width:2px}
.swatch.custom{position:relative;overflow:hidden;display:inline-block;cursor:pointer;background:conic-gradient(#e33,#ec3,#3c5,#3ae,#a5e,#e33)}
.swatch.custom[aria-checked="true"]{background:var(--c)}
.swatch.custom input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;border:0;padding:0}
.palette.side .palhelp{font-size:.76rem;line-height:1.4}
/* Auswahl 5/6/7 Tage */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}
.segbtn{border:0;border-right:1px solid var(--line);background:transparent;padding:4px 11px;font-weight:600;font-size:.85rem;display:flex;flex-direction:column;align-items:center;line-height:1.15;min-height:36px;justify-content:center;color:var(--ink)}
.segbtn:last-child{border-right:0}
.segbtn small{font-weight:400;font-size:.68rem;color:var(--muted)}
.segbtn[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.segbtn[aria-pressed="true"] small{color:inherit;opacity:.85}
.printhead{display:none}

/* Druck: ganze Woche auf eine Seite (A4 quer), alle Mitarbeiter, ohne Bedienelemente */
@page{size:A4 landscape;margin:8mm}
@media print{
  :root{--bg:#fff!important;--panel:#fff!important;--ink:#111!important;--muted:#555!important;--line:#bbb!important;--soft:#eee!important;color-scheme:light}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html,body{background:#fff!important;padding:0!important;margin:0!important;height:auto!important;overflow:visible!important}
  .wrap{max-width:none!important;gap:4px!important}
  header.top,.tabs,.bar,.palette,.notice,.legend,.devfoot,.toast,#modal,.overlay{display:none!important}
  .printhead{display:flex!important;justify-content:space-between;align-items:baseline;font-size:11pt;margin:0 0 4px;border-bottom:2px solid #111;padding-bottom:3px}
  .boardwrap{display:block!important;margin:0!important}
  .boardmain{display:block!important}
  .boardbox{overflow:visible!important;border:1px solid #999!important;border-radius:0!important;max-height:none!important}
  table.board{min-width:0!important;width:100%!important;table-layout:fixed;font-size:8pt}
  .board thead{display:table-header-group}
  .board thead th,.board .namecol{position:static!important}
  .board .namecol{width:36mm!important;min-width:0!important;padding:2px 4px!important}
  .board tr{break-inside:avoid;page-break-inside:avoid}
  .board th,.board td{border-color:#999!important}
  .dayhead{padding:3px 4px!important}
  .dayhead .d{font-size:9pt}
  .dayhead .cnt{font-size:6.5pt}
  .person .nm{font-size:8.5pt}.person .rl{font-size:6.5pt}
  .tags{display:none!important}
  .rolegroup td{padding:1px 4px!important;font-size:7pt}
  td.cell{height:auto!important;min-width:0!important;padding:1px!important}
  td.cell.today{box-shadow:none!important}
  .addbtn{display:none!important}
  .chip{min-height:0!important;padding:1px 3px!important;border-width:1px!important;border-left-width:3px!important;border-radius:2px!important}
  .chip .t{font-size:7.5pt;-webkit-line-clamp:2}
  .chip .s{font-size:6.5pt}
  .cards{grid-template-columns:repeat(3,1fr)!important}
}
.linkbtn{border:0;background:none;color:var(--accent);font:inherit;font-size:.72rem;text-transform:none;letter-spacing:0;padding:0 0 0 6px;cursor:pointer;text-decoration:underline}
.lockic{width:.85em;height:.85em;vertical-align:-1px;margin-right:4px}
.tab .lockic{opacity:.7}

/* ================= Farbschemen ================= */
:root[data-theme="light"]{color-scheme:light}
:root[data-theme="anthrazit"]{
  --bg:#1b1c1e; --panel:#26282b; --ink:#ececec; --muted:#a3a7ad; --line:#3a3d42; --soft:#303236;
  --accent:color-mix(in srgb,var(--brand) 60%,#ffffff); --accent-ink:#111; --warn:#f0a24b; --warn-bg:#3b2a15; --bad:#f07a6e; --bad-bg:#3d1916; --ok:#62c48f;
  --w-braun:#b8814d; --w-schwarz:#8a9097; --w-grau:#a9adb3; --w-blau:#6b9cee; --w-knx:#55bb75;
  --w-rot:#e4685f; --w-orange:#f09a4c; --w-violett:#a88be6; --w-tuerkis:#40baba; --w-gelb:#e3c444;
  color-scheme:dark}
:root[data-theme="sand"]{
  --bg:#f2ede3; --panel:#fffdf8; --ink:#2a251e; --muted:#6e6555; --line:#e0d6c4; --soft:#ece4d5;
  --accent:var(--brand); --accent-ink:#fff; --warn:#9a4b06; --warn-bg:#fbebd2; --bad:#a8261c; --bad-bg:#f9e2dc; --ok:#2f7a45;
  --w-braun:#8b5a2b; --w-schwarz:#2c2a27; --w-grau:#8c867c; --w-blau:#2a5fb8; --w-knx:#327f43;
  --w-rot:#bd3a2c; --w-orange:#cf6d18; --w-violett:#7550b5; --w-tuerkis:#167f7f; --w-gelb:#a88508;
  color-scheme:light}

/* ================= Druck als Formular ================= */
#printarea{display:none}
@page land{size:A4 landscape;margin:10mm 10mm 9mm}
@page port{size:A4 portrait;margin:12mm 12mm 10mm}
@media print{
  body.printing > *:not(#printarea){display:none!important}
  body.printing #printarea{display:block!important;color:#111;font-family:var(--font-body);font-size:10.5pt}
  body.printing{padding:0!important}
  .pf-page{break-after:page;page-break-after:always;display:flex;flex-direction:column;min-height:0}
  .pf-page:last-child{break-after:auto;page-break-after:auto}
  .pf-week{page:land}
  .pf-day{page:port;font-size:11pt}
  .pf-head{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:2.5px solid var(--brand);padding-bottom:6px;margin-bottom:8px}
  .pf-logo img{max-height:20mm;max-width:80mm;display:block}
  .pf-logo .mark{width:14mm;height:14mm;font-size:16pt}
  .pf-co{display:flex;flex-direction:column;align-items:flex-end;text-align:right;font-size:9.5pt;color:#333;line-height:1.4}
  .pf-co b{font-size:13pt;color:#111}
  .pf-title{display:flex;justify-content:space-between;align-items:baseline;margin:2px 0 8px}
  .pf-title h1{font-family:var(--font-display);font-size:20pt;margin:0;text-transform:uppercase;letter-spacing:.02em;color:#111}
  .pf-title div{font-size:11.5pt;color:#333}
  .pf-simplehead{font-size:13pt;border-bottom:2px solid #111;padding-bottom:3px;margin-bottom:6px}
  .pf-table{width:100%;border-collapse:collapse;table-layout:fixed}
  .pf-table col.pf-namecol{width:40mm}
  .pf-table th,.pf-table td{border:0.6pt solid #9a9a9a;padding:3px 4px;vertical-align:top;text-align:left}
  .pf-table thead th{background:#ececec;font-size:10.5pt;font-weight:700}
  .pf-table thead{display:table-header-group}
  .pf-table tr{break-inside:avoid}
  .pf-table tbody th{font-weight:600;font-size:10.5pt}
  .pf-table td.hol,.pf-table th.hol{background:#f3f3f3}
  .pf-group td{background:#f6f6f6;font-size:8.5pt;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#444;padding:1px 4px}
  .pf-chip{border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 14%,#fff);padding:2px 4px;line-height:1.25}
  .pf-chip b{font-size:9.5pt;font-weight:600;display:block}
  .pf-chip small{font-size:8.5pt;color:#444;display:block}
  .pf-chip.abs{background:repeating-linear-gradient(135deg,#f1f1f1 0 4px,#fff 4px 8px)}
  .pf-hol{font-size:8.5pt;color:#666;font-style:italic}
  .pf-h2{font-size:13pt;margin:12px 0 5px;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em}
  .pf-list{width:100%;border-collapse:collapse;font-size:10.5pt}
  .pf-list th,.pf-list td{border-bottom:0.6pt solid #bbb;padding:4px 5px;text-align:left;vertical-align:top}
  .pf-list thead th{border-bottom:1.2pt solid #555;font-size:9pt;text-transform:uppercase;letter-spacing:.04em;color:#444}
  .pf-list td.num{text-align:right}
  .pf-sw{display:inline-block;width:11px;height:11px;background:var(--c)}
  .pf-job{border:0.8pt solid #999;border-top:5px solid var(--c);padding:8px 10px;margin-bottom:10px;break-inside:avoid}
  .pf-job h2{margin:0 0 6px;font-size:17pt}
  .pf-job dl{display:grid;grid-template-columns:28mm 1fr;gap:2px 8px;margin:0 0 8px}
  .pf-job dt{color:#555}.pf-job dd{margin:0;font-weight:600}
  .pf-notes{margin-top:10px;min-height:28mm;border:0.6pt dashed #999;padding:4px 6px;font-size:9.5pt;color:#555}
  .pf-sign{display:flex;gap:20mm;margin-top:auto;padding-top:14mm}
  .pf-sign div{flex:1;font-size:9pt;color:#555;display:flex;flex-direction:column;gap:2px}
  .pf-sign span{border-bottom:0.8pt solid #333;height:10mm}
  .pf-foot{display:flex;justify-content:space-between;gap:10px;border-top:0.6pt solid #999;margin-top:6mm;padding-top:3px;font-size:8.5pt;color:#555}
  .pf-week .pf-sign{padding-top:8mm}
  body.print-bw .pf-chip,body.print-bw .pf-job{border-left-color:#555!important;border-top-color:#555!important;background:#fff!important}
  body.print-bw .pf-sw{background:#555}
  body.print-bw .pf-head{border-bottom-color:#111}
}
:root[data-theme="dark"] .brand .logo,:root[data-theme="anthrazit"] .brand .logo{background:#fff;border-radius:6px;padding:3px 6px}
@media (prefers-color-scheme: dark){:root:not([data-theme]) .brand .logo{background:#fff;border-radius:6px;padding:3px 6px}}

/* Bereichs-Passwort: maskiert, aber nicht vom Passwort-Manager des Browsers erfasst */
.pwmask{-webkit-text-security:disc;text-security:disc;font-family:inherit}

/* ================= Lager / Werkzeug ================= */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:8px}
.kpi{display:flex;flex-direction:column;align-items:flex-start;gap:0;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:8px 12px;text-align:left}
.kpi b{font-size:1.35rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.kpi span{font-size:.78rem;color:var(--muted)}
.kpi.warn{border-left-color:var(--warn)} .kpi.bad{border-left-color:var(--bad)}
.kpi[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.lagerbar{margin-top:10px}
.lagerbar input[type=search]{flex:1 1 260px;min-width:0;max-width:440px;border:1px solid var(--line);border-radius:6px;padding:7px 10px;background:var(--panel)}
.lagerbar select,.selbar select,.selbar input{border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--panel);max-width:100%}
.seg{display:inline-flex;gap:0}
.seg .btn{border-radius:0}.seg .btn:first-child{border-radius:6px 0 0 6px}.seg .btn:last-child{border-radius:0 6px 6px 0;margin-left:-1px}
.seg .btn.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.selbar{position:sticky;top:6px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--accent);box-shadow:0 2px 10px color-mix(in srgb,#000 12%,transparent);border-radius:8px;padding:8px 10px;margin:10px 0}
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:12px;margin-top:10px;align-items:start}
.tcard{background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:8px;display:flex;flex-direction:column;min-width:0}
.tcard.wide{grid-column:1/-1}
.tcard.warn{border-top-color:var(--warn)} .tcard.bad{border-top-color:var(--bad)}
.tcard.lagercard{border-top-color:var(--ok)}
.tcard>header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:9px 12px 6px}
.tcard h3{margin:0;font-size:1rem;line-height:1.2}
.tcard header small{color:var(--muted);font-size:.76rem}
.tcard .cnt{font-size:1.1rem;font-weight:700;color:var(--muted)}
.tcard>footer{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid var(--soft)}
.tlist{padding:0 6px 6px}
.lagercard .tlist{columns:3 330px;column-gap:14px;max-height:min(62vh,640px);overflow:auto}
.tempty{padding:14px;text-align:center;font-size:.85rem;border:1px dashed var(--line);border-radius:6px;margin:4px 6px}
.trow{display:flex;align-items:center;gap:6px;padding:3px 4px;border-top:1px solid var(--soft);break-inside:avoid;background:var(--panel)}
.trow:first-child{border-top:0}
.trow[draggable="true"]{cursor:grab}
.trow.dragging{opacity:.4}
.trow .tmain{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;background:none;border:0;padding:3px 0;text-align:left;color:var(--ink)}
.trow .tmain:hover b{text-decoration:underline}
.trow .nr{flex:0 0 52px;font-size:.78rem;color:var(--muted)}
.trow .tn{min-width:0;flex:1}
.trow .tn b{display:block;font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow .tn small{display:block;color:var(--muted);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow .tn small i{font-style:normal;color:var(--warn)}
.trow.ro{padding:6px 6px}
.trow .ret{padding:2px 8px;font-size:.9rem;white-space:nowrap;line-height:1.2}
.qty{font-family:var(--font-mono);font-size:.72rem;background:var(--soft);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-weight:600}
.chk{font-size:.68rem;font-weight:700;border-radius:999px;padding:1px 7px;white-space:nowrap;border:1px solid var(--line);color:var(--muted)}
.chk.over{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 50%,var(--line));background:var(--bad-bg)}
.chk.soon{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,var(--line));background:var(--warn-bg)}
.chk.ok{color:var(--ok)}
.tover{outline:2px dashed var(--accent);outline-offset:2px;background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.dropchips{display:flex;flex-wrap:wrap;gap:6px;padding:4px 12px 12px}
.dropchip{border:1px dashed var(--line);border-radius:999px;padding:5px 12px;font-size:.85rem;background:var(--bg)}
.dropchip.st{color:var(--bad)}
.dropchip.tover{border-style:solid;border-color:var(--accent)}
.tooltable{min-width:860px}
.tooltable td{padding:5px 6px}
.tooltable tr.st-defekt td,.tooltable tr.st-verloren td{background:color-mix(in srgb,var(--bad) 6%,transparent)}
.where{font-size:.85rem}.where.lager{color:var(--ok);font-weight:600}.where.defekt,.where.verloren{color:var(--bad);font-weight:600}.where.reparatur{color:var(--warn);font-weight:600}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);text-align:left;cursor:pointer}
.tooltable .linkbtn{color:var(--ink);font-size:.92rem;text-decoration:none}
.tooltable .linkbtn:hover{text-decoration:underline}
.tlog ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px;font-size:.82rem;max-height:200px;overflow:auto}
.tlog li{border-top:1px solid var(--soft);padding-top:3px;color:var(--ink)}
.tlog li i{color:var(--muted);font-style:normal}
.minitools{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px;font-size:.88rem}
.minitools li{border-top:1px solid var(--soft);padding-top:2px}
.minitools .mono{color:var(--muted);font-size:.78rem;display:inline-block;min-width:44px}
@media print{.kpis,.selbar,.tcards,.tooltable{display:none!important}}
@media print{
  .pf-text{font-size:11pt;margin:4px 0 8px}
  .pf-text.small{font-size:9.5pt;color:#333;margin-top:10px}
  .pf-tools td.c-nr{white-space:nowrap;width:14mm}
  .pf-tools td.c-qty,.pf-tools th.c-qty{text-align:right;width:12mm}
  .pf-tools td.c-ok,.pf-tools th.c-ok{text-align:center;width:16mm}
  .pf-tools td.c-ok{font-size:11pt}
  .pf-tools td.c-check{white-space:nowrap;width:24mm}
  .pf-tools td.c-since{white-space:nowrap;width:20mm}
  .pf-tools tr{break-inside:avoid}
  .pf-h2 small{font-weight:400;font-size:10pt}
}
/* Lager 2.2: Nach Mitarbeiter, Inventur, Einstellungen */
.msplit{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:14px;margin-top:10px;align-items:start}
@media (max-width:860px){.msplit{grid-template-columns:1fr}}
.mlist{display:flex;flex-direction:column;gap:6px;position:sticky;top:8px}
.mlist select{border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--panel)}
.mrows{display:flex;flex-direction:column;gap:4px;max-height:calc(100vh - 160px);overflow:auto;padding-right:2px}
.mrow{padding:7px 10px}
.mrow.warn{border-left:3px solid var(--warn)} .mrow.bad{border-left:3px solid var(--bad)}
.mcnt{min-width:30px;text-align:right;font-weight:700;font-size:1rem}
.mcnt.zero{color:var(--muted);font-weight:400}
.mrow.tover{outline:2px dashed var(--accent)}
.mpanel>header{align-items:center;flex-wrap:wrap}
.mpanel>header .bar{gap:6px}
.mbody{padding:0 10px 10px;overflow:auto}
.mtable{min-width:620px}
.mtable td{padding:5px 6px}
.mtable tr[draggable="true"]{cursor:grab}
.sortbtn{background:none;border:0;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.sortbtn.on{color:var(--accent)}
.selbar .sep{width:1px;align-self:stretch;background:var(--line);margin:0 2px}
.invhead{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-top:10px}
@media (max-width:860px){.invhead{grid-template-columns:1fr}}
.progress{height:12px;border-radius:999px;background:var(--soft);overflow:hidden;border:1px solid var(--line)}
.progress span{display:block;height:100%;background:var(--ok)}
.invrow{cursor:pointer}
.invrow input{width:20px;height:20px;flex:0 0 auto}
.invrow.seen .tn b{color:var(--ok)}
.invrow.seen{background:color-mix(in srgb,var(--ok) 7%,var(--panel))}
.tcard.done{border-top-color:var(--ok)}
.lsgrid{align-items:start}
.lsrows{display:flex;flex-direction:column;gap:4px;margin:4px 0 6px}
.lsrows.cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:4px 14px}
.lsrow{display:flex;gap:6px;align-items:center}
.lsrow .cellinput{flex:1;min-width:0;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--bg)}
.lsrow .cellinput.num{flex:0 0 92px}
.lsrow .mono{min-width:26px;text-align:right;font-size:.8rem}
.small{font-size:.8rem}
.issuelist{display:flex;flex-direction:column;gap:2px;max-height:48vh;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:6px;background:var(--bg)}
.irow{padding:4px 6px;border-radius:4px}
.irow:hover{background:var(--soft)}
.irow:has(input:checked){background:color-mix(in srgb,var(--accent) 10%,transparent)}
.fullinput{width:100%;border:1px solid var(--line);border-radius:6px;padding:7px 10px;background:var(--panel)}
@media print{.msplit,.invhead{display:none!important}}
@media print{.pf-tools td.c-seen,.pf-tools th.c-seen{text-align:center;width:12mm}.pf-tools td.c-seen{font-size:11pt}}

/* Baustellenauswertung */
.rptable{min-width:900px}
.rptable td{padding:6px 6px;vertical-align:middle}
.rptable tbody tr{cursor:pointer}
.rptable tbody tr:hover td{background:var(--soft)}
.rptable tr.sel td{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.rptable tfoot td{border-top:2px solid var(--line);padding:7px 6px}
.ltable .num,.ltable th.num{text-align:right}
.neg{color:var(--bad)}
.bcell{min-width:110px}
.budget{display:inline-block;width:70px;height:8px;border-radius:999px;background:var(--soft);border:1px solid var(--line);overflow:hidden;vertical-align:middle;margin-right:4px}
.budget span{display:block;height:100%;background:var(--ok)}
.budget.warn span{background:var(--warn)} .budget.over span{background:var(--bad)}
.rpdetail .kpis{margin:8px 0}
.rpgrid{gap:18px}
.rpdetail details{margin-top:8px}
.rpdetail summary{cursor:pointer;font-weight:600}
.lagerbar input[type=date]{border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--panel)}
.ratehead,.raterow{display:grid;grid-template-columns:minmax(0,1fr) 120px 120px;gap:6px;align-items:center}
.ratehead span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.rates{display:flex;flex-direction:column;gap:3px;max-height:34vh;overflow:auto}
.raterow .cellinput{border:1px solid var(--line);border-radius:6px;padding:5px 8px;background:var(--bg);text-align:right;min-width:0}
@media print{.rptable,.rpdetail{display:none!important}.pf-list td.num,.pf-list th.num{text-align:right}.pf-sum td{border-top:1.2pt solid #333}}

/* BWA-Kalkulation */
.bwagrid{align-items:start;gap:18px}
.bwagrid .field{margin-bottom:6px}
.bwastaff{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2px 12px;max-height:22vh;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--bg)}
.bwares .kpis{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.kpi.ok{border-left-color:var(--ok)}
/* Rollen & Rechte */
.permgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.permgroup{border:1px solid var(--line);border-radius:6px;padding:6px 10px 8px;margin:0;display:flex;flex-direction:column;gap:3px;background:var(--bg)}
.permgroup legend{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:0 4px}
.permgroup .check{font-size:.85rem}
.permgroup input:disabled+*,.permgroup .check:has(input:disabled){opacity:.75}
.roletable{min-width:760px}
.roletable td,.roletable th{padding:5px 8px}
.roletable .rc{text-align:center;min-width:120px}
.roletable th.rc{vertical-align:bottom}
.roletable th.rc .cellinput{width:100%;text-align:center;font-weight:600;border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--bg);text-transform:none;letter-spacing:0}
.roletable th.rc small{display:block;text-transform:none;letter-spacing:0;font-weight:400}
.roletable tfoot .cellinput{width:100%;border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--bg)}
.roletable tr.rg td{background:var(--soft);font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.roletable input[type=checkbox]{width:18px;height:18px}
.linkbtn.danger{color:var(--bad);font-size:.75rem;text-transform:none;letter-spacing:0}

.folderbox .folderpath{font-size:.85rem;background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:4px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folderbox small{word-break:break-all}
/* Sicherheit / 2FA */
.qr{width:220px;height:220px;margin:8px auto;background:#fff;padding:6px;border-radius:8px;border:1px solid var(--line)}
.qr svg{width:100%;height:100%;display:block}
.tfasteps{margin:6px 0 0;padding-left:20px;font-size:.9rem}
.recovery{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:8px 0}
.recovery span{background:var(--soft);border:1px solid var(--line);border-radius:6px;padding:6px 10px;text-align:center;font-size:1.05rem;letter-spacing:.08em}
@media print{.pf-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:4mm;margin-top:6mm}.pf-codes span{border:0.8pt solid #333;padding:3mm;text-align:center;font-family:var(--font-mono);font-size:14pt}}
tr.neg td{color:var(--bad)}
/* Ordner & Dateien */
.crumbs{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:.92rem;margin:4px 0}
.crumbs .linkbtn{color:var(--accent)}
.fbtools{margin:6px 0}
.fbtable{min-width:560px}
.fbtable td{padding:6px 6px}
.fbtable tr.fbdir{cursor:pointer}
.fbtable tr.fbdir:hover td{background:var(--soft)}
.fbtable a{color:var(--ink);text-decoration:none}
.fbtable a:hover{text-decoration:underline}
.fbextra{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.fbextra summary{cursor:pointer;font-weight:600}
.fbextra .lsrow .cellinput:first-child{flex:0 0 200px}
/* BWA-Liste */
.bwatable{min-width:820px}
.bwatable .cellinput{width:100%;border:1px solid var(--line);border-radius:6px;padding:5px 7px;background:var(--bg)}
.bwatable .cellinput.num{text-align:right}
.bwatable td{padding:3px 4px}
.bwatable tfoot td{border-top:2px solid var(--line);padding:6px}

/* Kostenzusammenstellung je Baustelle (2.8) */
.jobcol{display:flex;flex-direction:column;gap:12px;min-width:0}
.costcard{min-width:0}
.costhead{flex-wrap:wrap;gap:8px 12px;margin-bottom:8px}
.costprint{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.costtab{width:100%}
.costtab td small{color:var(--muted)}
.costtab tr.sum td{border-top:2px solid var(--line-strong,var(--line));font-weight:600}
.costtab tr.gap td{border:0;height:6px;padding:0}
.costtab tr.ok td b{color:var(--ok,#1d7a4b)}
.costtab tr.bad td b{color:var(--bad,#b3261e)}
.costtab small.warn{color:var(--warn,#a15c00)}
.rpdetail .costcard{margin:10px 0 14px}
@media print{
  .pf-list tr.sum td{border-top:1.5px solid #222!important;font-weight:600}
  .pf-list tr.gap td{border:0!important;height:8px;padding:0!important}
  .pf-list tr.bad td b{color:#b3261e}
  .pf-list td small{color:#555}
  .pf-list td.small{font-size:8.5pt;color:#444;word-break:break-all}
}
.costtab td.num,.costtab th.num{white-space:nowrap}
.costcard h3{margin:14px 0 6px}
.finstack{display:flex;flex-direction:column;gap:6px}
.finstack > div{max-width:900px}
.finstack > div:first-child .bar,.finstack > div:first-child .fullinput{max-width:520px}
.dlgtabs{margin:-4px 0 6px}
/* Bautagesberichte (2.9) */
.reptable tr.click{cursor:pointer}
.reptable tr.click:hover td{background:var(--hover,rgba(29,122,75,.06))}
.reptable .repsum{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Feiertage (2.9.1) */
:root{--holc:#c2410c}
.dayhead.hol{background:color-mix(in srgb,var(--holc) 16%,transparent);box-shadow:inset 0 3px 0 var(--holc)}
.dayhead.hol .d,.dayhead.hol .holname{color:var(--holc);font-weight:700}
td.cell.hol{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--holc) 9%,transparent) 0 6px,color-mix(in srgb,var(--holc) 20%,transparent) 6px 8px)}
.holtag{font-size:.72rem;font-weight:600;color:var(--holc);letter-spacing:.02em}
.vistable th.c,.vistable td.c{text-align:center}
.vistable th.c .btn{padding:1px 6px;margin:2px 1px 0;font-size:.7rem}
@media print{.pf-table td.hol,.pf-table th.hol{background:color-mix(in srgb,var(--holc) 14%,#fff)!important}}
/* Baustellenliste: Bautagesbericht direkt (2.9.2) */
.rowwrap{display:flex;gap:8px;align-items:stretch}
.rowwrap > .row{flex:1;min-width:0}
.rowwrap > .repbtn{flex:0 0 auto;align-self:center;white-space:nowrap;font-weight:600;color:var(--accent,#1d7a4b);border-color:currentColor}
@media (max-width:700px){.rowwrap{flex-direction:column}.rowwrap > .repbtn{align-self:stretch}}
/* Plantafel: Auswahl + Rechtsklick-Menü (2.9.4) */
td.cell.sel{outline:2px solid var(--accent);outline-offset:-2px;background-color:color-mix(in srgb,var(--accent) 12%,transparent)}
td.cell.cutmark{outline:2px dashed var(--muted);outline-offset:-3px}
td.cell.cutmark .chip{opacity:.55}
.ctxmenu{position:fixed;z-index:200;min-width:240px;max-width:340px;background:var(--panel,#fff);color:var(--ink,#15202b);border:1px solid var(--line,#d4dbe2);border-radius:10px;box-shadow:0 10px 32px rgba(0,0,0,.22);padding:5px;font-size:.9rem;user-select:none}
.ctxmenu .ch{padding:6px 10px 5px;font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctxmenu .chint{padding:6px 10px 3px;font-size:.72rem;color:var(--muted);border-top:1px solid var(--line);margin-top:4px}
.ctxmenu .cs{height:1px;background:var(--line,#e2e7ec);margin:4px 2px}
.ctxmenu .ci{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;color:inherit;font:inherit;text-align:left;padding:7px 10px;border-radius:6px;cursor:pointer}
.ctxmenu .ci span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ctxmenu .ci kbd{font:inherit;font-size:.72rem;color:var(--muted);background:none;border:0}
.ctxmenu .ci:hover:not([disabled]),.ctxmenu .ci:focus-visible{background:color-mix(in srgb,var(--accent) 14%,transparent);outline:none}
.ctxmenu .ci[disabled]{opacity:.4;cursor:default}
.ctxmenu .ci .sw{width:10px;height:16px;border-radius:3px;background:var(--c);flex:0 0 auto}
.ctxmenu .csub{position:relative}
.ctxmenu .cmenu{display:none;position:absolute;left:100%;top:-6px;min-width:250px;max-height:70vh;overflow:auto;background:var(--panel,#fff);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 32px rgba(0,0,0,.22);padding:5px;margin-left:2px}
.ctxmenu.flip .cmenu{left:auto;right:100%;margin:0 2px 0 0}
.ctxmenu .csub:hover > .cmenu,.ctxmenu .csub:focus-within > .cmenu{display:block}
/* Plantafel: Kopfzeile bleibt sichtbar, Monatsansicht (2.9.5) */
.boardscroll{max-height:calc(100vh - 150px);overflow:auto;overscroll-behavior:contain}
.board thead th{box-shadow:0 1px 0 var(--line)}
.board.month{min-width:0}
.board.month .namecol{width:150px;min-width:140px}
.board.month .namecol .tags,.board.month .namecol .rl{display:none}
.board.month .dayhead{padding:5px 3px 4px;width:84px;min-width:64px;text-align:center}
.board.month .dayhead .d{font-size:.8rem;line-height:1.15}
.board.month .dayhead .d .date{display:block;margin:0;font-size:.78rem;color:var(--ink)}
.board.month .dayhead .cnt{justify-content:center;font-size:.68rem}
.board.month .dayhead .holname{font-size:.62rem}
.board.month td.cell{width:84px;min-width:64px;max-width:96px;height:38px;padding:2px}
.board.month .chip{min-height:32px;padding:2px 4px;border-left-width:3px}
.board.month .chip .t{font-size:.68rem;font-weight:600;-webkit-line-clamp:2;line-height:1.15}
.board.month .chip .s{display:none}
.board.month .addbtn{min-height:32px}
.board.month .addbtn .free{display:none}
.board.month .holtag{font-size:.6rem}
.board.month th.wkstart,.board.month td.wkstart{border-left:2px solid color-mix(in srgb,var(--muted) 60%,transparent)}
@media print{.boardscroll{max-height:none!important;overflow:visible!important}}
/* Baustellen-Status (2.9.9) */
.jobfilter{margin:0 0 8px;flex-wrap:wrap}
.jobfilter small{opacity:.65;margin-left:3px}
.jst{display:inline-block;font-size:.7rem;font-weight:600;padding:1px 7px;border-radius:9px;margin-top:3px}
.jst.arbeit{background:color-mix(in srgb,#1d7a4b 16%,transparent);color:#1d7a4b}
.jst.offen{background:color-mix(in srgb,#b7791f 18%,transparent);color:#9a5b00}
.jst.erledigt{background:color-mix(in srgb,var(--muted) 18%,transparent);color:var(--muted)}
.jstatus{display:flex}
.jstatus .segbtn{cursor:pointer;display:flex;align-items:center;gap:6px}
.jstatus input{position:absolute;opacity:0;pointer-events:none}
.jstatus .segbtn{flex-direction:row;justify-content:center;min-width:96px}
.jstatus .segbtn:has(input:checked){background:var(--accent);color:#fff;border-color:var(--accent)}
.jstatus .jst-offen:has(input:checked){background:#b7791f;border-color:#b7791f}
.jstatus .jst-erledigt:has(input:checked){background:#6b7782;border-color:#6b7782}
/* Mitarbeiterausstattung (2.11) */
.ofsplit{margin-top:4px}
.ofcard h4{margin:14px 0 6px;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ofsizes{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}
.ofsizes .field{width:120px;margin:0}
.ofadd{flex-wrap:wrap;gap:6px;margin-top:6px}
.ofadd input,.ofadd select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink)}
.oftable td{vertical-align:middle}
.oftable .cellinput{min-width:0}
.ofmatrix td,.ofmatrix th{white-space:nowrap}
.ofmatrix tr.click{cursor:pointer}
.ofmatrix tr.click:hover td{background:color-mix(in srgb,var(--accent) 6%,transparent)}
/* Zeitablaufplan (2.12) */
.jdates{display:block;font-size:.75rem;color:var(--muted)}
.jdates.late{color:var(--bad,#b3261e);font-weight:600}
.gantt{margin:8px 0;font-size:.8rem;--gname:230px}
.gt-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line)}
.gt-name{flex:0 0 var(--gname);padding:5px 8px 5px 0;display:flex;gap:6px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.gt-n{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:50%;background:var(--soft,#eef1f4);font-size:.68rem;font-weight:700}
.gt-track{position:relative;flex:1;min-height:28px}
.gt-head .gt-track{min-height:34px}
.gt-head .gt-name{font-weight:700;color:var(--muted);text-transform:uppercase;font-size:.72rem}
.gt-mon{position:absolute;top:2px;font-weight:700;font-size:.72rem;padding-left:3px;border-left:1px solid var(--muted)}
.gt-kw{position:absolute;bottom:2px;font-size:.62rem;color:var(--muted);padding-left:2px}
.gt-w{position:absolute;top:0;bottom:0;border-left:1px dashed color-mix(in srgb,var(--line) 80%,transparent)}
.gt-bar{position:absolute;top:5px;bottom:5px;border-radius:5px;background:color-mix(in srgb,var(--accent) 28%,transparent);border:1px solid var(--accent);overflow:hidden}
.gt-bar.late{background:color-mix(in srgb,#b3261e 22%,transparent);border-color:#b3261e}
.gt-bar.done{background:color-mix(in srgb,#1d7a4b 30%,transparent);border-color:#1d7a4b}
.gt-fill{position:absolute;left:0;top:0;bottom:0;background:color-mix(in srgb,var(--accent) 70%,transparent)}
.gt-bar.done .gt-fill{background:#1d7a4b}
.gt-lbl{position:relative;font-size:.66rem;font-weight:700;padding:0 4px;line-height:18px;color:var(--ink)}
.gt-none{position:absolute;left:6px;top:6px;color:var(--muted);font-size:.72rem}
.gt-today{position:absolute;top:0;bottom:0;border-left:2px solid #d97706;z-index:2}
.gt-mark{position:absolute;top:0;bottom:-2px;border-left:2px solid;z-index:2}
.gt-mark.start{border-color:#1d7a4b}.gt-mark.end{border-color:#b3261e}
.gt-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;color:var(--muted);font-size:.72rem}
.gt-sw{display:inline-block;width:14px;height:9px;border-radius:2px;margin-right:4px;vertical-align:middle;background:color-mix(in srgb,var(--accent) 28%,transparent);border:1px solid var(--accent)}
.gt-sw.fill{background:color-mix(in srgb,var(--accent) 70%,transparent)}
.gt-sw.late{background:color-mix(in srgb,#b3261e 22%,transparent);border-color:#b3261e}
.gt-sw.start{width:2px;border:0;background:#1d7a4b}.gt-sw.end{width:2px;border:0;background:#b3261e}.gt-sw.today{width:2px;border:0;background:#d97706}
.phtable input[type=range]{width:90px;vertical-align:middle}
.phtable td{vertical-align:middle}
@media print{.gantt{--gname:60mm;font-size:8.5pt}.gt-bar,.gt-fill,.gt-sw,.gt-n{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.phwide{margin-top:12px}
@media print{.gantt.print .gt-track{min-height:19px}.gantt.print .gt-head .gt-track{min-height:28px}.gantt.print .gt-bar{top:3px;bottom:3px}.gantt.print .gt-name{padding:2px 6px 2px 0}.gantt.print + .pf-list td,.gantt.print + .pf-list th{padding-top:2px;padding-bottom:2px}}
/* Auslastung (2.13) – Farben: Kategorie-Palette (blau/aqua/orange) + neutral „frei“, geprüft für hell und dunkel */
:root{--cap-1:#2a78d6;--cap-2:#1baf7a;--cap-3:#eb6834;--cap-free:#dcdbd5}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--cap-1:#3987e5;--cap-2:#199e70;--cap-3:#d95926;--cap-free:#3a3a37}}
:root[data-theme="dark"],:root[data-theme="anthrazit"]{--cap-1:#3987e5;--cap-2:#199e70;--cap-3:#d95926;--cap-free:#3a3a37}
.capbox{margin-top:12px}
.capchart{width:100%;height:auto;display:block;margin-top:6px}
.capchart .capgrid{stroke:var(--line);stroke-width:1}
.capchart .capy{font-size:11px;fill:var(--muted);text-anchor:end}
.capchart .capx{font-size:11px;fill:var(--muted);text-anchor:middle}
.capchart .capu{font-size:11px;fill:var(--ink);text-anchor:middle;font-weight:600}
.capchart .capu.over{fill:var(--bad,#b3261e)}
.capchart .capline{stroke:var(--ink);stroke-width:2;stroke-dasharray:3 2}
.capchart .capbar.off rect:not(.hit){opacity:.55}
.capchart .capbar:hover rect:not(.hit){filter:brightness(1.08)}
.caplegend{display:flex;flex-wrap:wrap;gap:12px;font-size:.78rem;color:var(--muted)}
.caplegend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-2px}
.caplegend i.ln{height:0;border-top:2px dashed var(--ink);border-radius:0;vertical-align:3px}
.capgrid2{margin-top:12px;gap:12px}
.capjobs{display:flex;flex-direction:column;gap:6px}
.capjob{display:grid;grid-template-columns:minmax(120px,40%) 1fr 40px;gap:8px;align-items:center;font-size:.85rem}
.capjob .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capjob .n .sw{display:inline-block;width:8px;height:14px;border-radius:2px;background:var(--c);margin-right:6px;vertical-align:-2px}
.capjob .b{height:12px;background:var(--soft,#eef1f4);border-radius:3px;overflow:hidden}.capjob .b i{display:block;height:100%;background:var(--cap-1);border-radius:0 3px 3px 0}
.capjob b{text-align:right}
.captable .ubar{display:inline-block;width:60px;height:8px;background:var(--soft,#eef1f4);border-radius:4px;overflow:hidden;vertical-align:middle}
.captable .ubar i{display:block;height:100%;background:var(--cap-1)}.captable .ubar i.over{background:var(--bad,#b3261e)}
@media print{.capwrap{height:72mm;flex:0 0 auto;overflow:hidden}.pf-page .capchart{width:100%;height:72mm;max-height:none}.capchart text{fill:#333}.capchart rect,.caplegend i{-webkit-print-color-adjust:exact;print-color-adjust:exact}.capchart{max-height:120mm}}
.warnsm{font-size:.72rem;color:#9a5b00;background:#fff3d6;border:1px solid #f0c66e;border-radius:4px;padding:1px 5px;white-space:nowrap}
:root[data-theme=dark] .warnsm{background:#3a2e12;color:#f3c66b;border-color:#6b5420}
.gt-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.phtable tr.bad td{background:color-mix(in srgb,var(--bad,#b3261e) 12%,transparent)}.phtable tr.bad input[type=date]{color:var(--bad,#b3261e);font-weight:600}
/* Lager → Autos */
.plate{display:inline-block;font-family:ui-monospace,Consolas,monospace;font-weight:700;letter-spacing:.04em;border:1.5px solid currentColor;border-radius:4px;padding:0 6px;line-height:1.5}
.carnow{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:10px 0}
.carnow>div{display:flex;flex-direction:column;gap:2px;background:var(--panel2,rgba(127,127,127,.07));border-radius:8px;padding:8px 10px}
.carnow b{font-size:1.05rem}
.cbadges{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.cbadge{font-size:.78rem;border-radius:4px;padding:2px 7px;border:1px solid}
.cbadge.warn{background:#fff3d6;color:#8a5200;border-color:#f0c66e}.cbadge.bad{background:#fde4e2;color:#a3221b;border-color:#f0a19b}
.cdot.warn{color:#d18b00}.cdot.bad{color:#c4291f}
.row.inactive{opacity:.6}
.fuelseg{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;width:max-content;max-width:100%}
.fuelseg label{cursor:pointer}.fuelseg input{position:absolute;opacity:0;pointer-events:none}
.fuelseg span{display:block;padding:6px 11px;border-right:1px solid var(--line);font-size:.88rem}.fuelseg label:last-child span{border-right:0}
.fuelseg input:checked+span{background:var(--brand);color:#fff;font-weight:600}
.fuelseg input:focus-visible+span{outline:2px solid var(--brand);outline-offset:-2px}
.hochecks{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.signs2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:6px}
.sigpad{width:100%;height:90px;display:block;background:#fff;border:1px dashed var(--line);border-radius:6px;touch-action:none;cursor:crosshair}
.sigline{display:flex;justify-content:space-between;border-top:1px solid var(--text,#222);margin-top:2px;padding-top:3px;font-size:.82rem}
@media (max-width:640px){.signs2{grid-template-columns:1fr}}
.hoprint th{width:120px;background:#f1f3f5;text-align:left}
.hoitems{display:grid;grid-template-columns:repeat(2,1fr);gap:3px 18px;font-size:10pt}
.hosign>div{display:flex;flex-direction:column}
.hosign img+span{height:1mm!important}.pf-sign.hosign{padding-top:6mm}
.fuelseg{flex-wrap:nowrap}.row .plate,.carcard h3 .plate{width:max-content}
.cphotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:6px 0}
.cphotos figure{margin:0;display:flex;flex-direction:column;gap:2px}
.cphotos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block;background:var(--line)}
.cphotos figcaption{font-size:.72rem;color:var(--muted)}
.hoprev{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.hoprev img{width:70px;height:52px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
label.btn input[type=file]{display:none}
.pf-photos{display:grid;grid-template-columns:1fr 1fr;gap:5mm;margin-top:3mm}
.pf-photos.small{grid-template-columns:repeat(3,1fr);gap:3mm}
.pf-photos figure{margin:0;break-inside:avoid}
.pf-photos img{width:100%;max-height:80mm;object-fit:contain;display:block;border:0.5pt solid #bbb}
.pf-photos.small img{max-height:45mm}
.pf-photos figcaption{font-size:8pt;color:#555;margin-top:1mm}
.pf-page.compact .pf-list td,.pf-page.compact .pf-list th{padding-top:.6mm!important;padding-bottom:.6mm!important;font-size:9pt}.pf-page.compact .pf-h2{margin-top:3mm}.pf-page.compact .pf-sign{padding-top:5mm}
.rstate.ok{color:var(--ok,#1a7f45)}.rstate.warn{color:#b26b00}.rstate.bad{color:#b3261e}
.fernlist{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:5px}.howto{line-height:1.5;padding-left:20px}.howto li{margin:4px 0}
.notice.ok{border-color:color-mix(in srgb,var(--ok,#1a7f45) 45%,var(--line));background:color-mix(in srgb,var(--ok,#1a7f45) 10%,transparent)}
/* Übersicht */
.hgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:10px}
.hcard{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;border-top:4px solid var(--line)}
.hcard.ok{border-top-color:var(--ok,#1a7f45)}.hcard.warn{border-top-color:#d18b00}.hcard.bad{border-top-color:#c4291f}
.hcard header{display:flex;align-items:baseline;gap:10px;padding:10px 12px 6px}.hcard header.click{cursor:pointer}
.hnum{font-size:1.7rem;line-height:1;font-variant-numeric:tabular-nums}
.hcard.warn .hnum{color:#b26b00}.hcard.bad .hnum{color:#b3261e}.hcard.ok .hnum{color:var(--ok,#1a7f45)}
.hcard header span{font-weight:600;font-size:.9rem}
.hlist{display:flex;flex-direction:column;padding:0 6px 8px}
.hrow{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:.9rem}
.hrow:hover,.hrow:focus-visible{background:color-mix(in srgb,var(--brand) 10%,transparent);outline:none}
.hrow small{color:var(--muted);font-size:.78rem;text-align:right}
.hempty{padding:4px 8px;font-size:.85rem}
/* Urlaubskonto */
.vactable td.neg b{color:#b3261e}.vactable td.low b{color:#b26b00}
.shoplink{text-decoration:none;font-size:.95em;margin-left:2px}
.ostate{font-size:.8rem;border-radius:4px;padding:1px 6px;border:1px solid var(--line)}
.ostate.offen{background:#fff3d6;border-color:#f0c66e;color:#8a5200}.ostate.bestellt{background:#e3eefc;border-color:#9dbbe8;color:#1d4f91}.ostate.geliefert{background:#e3f4e9;border-color:#9fd1b2;color:#1a6b3c}

/* ===== 2.22: Kalkulation neu ===== */
.bwahead{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}
.bwalayout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.bwaleft{display:flex;flex-direction:column;gap:12px;min-width:0}
.bwacard{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel)}
.bwacard h3{margin:0 0 8px;font-size:1rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bwanum{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:.78rem}
.bwahint{font-size:.8rem;margin:0 0 8px}
.bwacard .bwatable{min-width:720px}
.bwains{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px}
.bwain{display:flex;flex-direction:column;gap:2px;font-size:.85rem}
.bwain>span:first-child{font-weight:600}
.bwain-i{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--bg);overflow:hidden}
.bwain-i input{flex:1;min-width:0;border:0;background:none;padding:6px 8px;text-align:right;font:inherit}
.bwain-i em{font-style:normal;color:var(--muted);padding:0 8px;font-size:.8rem;border-left:1px solid var(--line);background:var(--panel);align-self:stretch;display:grid;place-items:center}
.bwain small{color:var(--muted);font-size:.72rem}
.bwacard .bwastaff{max-height:30vh}
.bwaright{position:sticky;top:0}
.bwaresult{border:2px solid var(--ink);border-radius:12px;padding:14px;background:var(--panel);display:flex;flex-direction:column;gap:10px}
.bwabig{display:flex;flex-direction:column;align-items:flex-start}
.bwabig span{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.bwabig b{font-size:2.2rem;line-height:1.1;color:var(--cap-2)}
.bwabig small{color:var(--muted)}
.bwabar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--line)}
.bwabar i{display:block;height:100%}
.bwaleg{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px;font-size:.78rem}
.bwaleg span{display:flex;align-items:center;gap:5px}.bwaleg b{margin-left:auto}
.bwaleg i{width:10px;height:10px;border-radius:2px;display:inline-block}
.bwasteps{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.bwastep{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line);font-size:.88rem}
.bwastep i{font-style:normal;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);font-size:.75rem;font-weight:700}
.bwastep small{display:block;color:var(--muted);font-size:.72rem}
.bwastep.sum{border-bottom:0;font-weight:700;font-size:1rem}.bwastep.sum i{background:var(--cap-2);color:#fff;border-color:var(--cap-2)}
.bwacheck{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bwacheck>div{border-radius:8px;padding:8px;background:var(--bg);border-left:4px solid var(--ok);display:flex;flex-direction:column;font-size:.78rem}
.bwacheck>div.bad{border-left-color:var(--bad)}.bwacheck b{font-size:1.1rem}.bwacheck small{color:var(--muted);font-size:.7rem}
@media (max-width:980px){.bwalayout{grid-template-columns:1fr}.bwaright{position:static}.bwains{grid-template-columns:1fr 1fr}}

/* ===== 2.22: Hauptmenü anpassen ===== */
.tabs{flex-wrap:wrap;overflow-x:visible;align-items:flex-end;row-gap:0}
.tab{padding:8px 12px}
.tabs .navcfg{margin-left:auto;align-self:center;background:none;border:1px solid transparent;border-radius:6px;color:var(--muted);padding:4px 8px;font-size:1rem}
.tabs .navcfg:hover{border-color:var(--line);color:var(--ink)}
.tabs.editing{border:2px dashed var(--accent);border-radius:8px;padding:4px;gap:6px;background:var(--panel)}
.tabs.editing .tab{cursor:grab;border:1px solid var(--line);border-radius:6px;margin:0;background:var(--bg);display:inline-flex;align-items:center;gap:6px}
.tabs.editing .tab.off{opacity:.45;text-decoration:line-through}
.tabs.editing .tab.dragging{opacity:.3}
.tabs.editing .tab.over{outline:2px solid var(--accent)}
.tab .eye{font-size:.8rem;border:0;background:none;cursor:pointer;padding:0 2px}
.navbar-edit{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0;font-size:.85rem}
.tab .badge{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:#fff;font-size:.7rem;margin-left:5px;font-family:var(--font-body,inherit);letter-spacing:0;vertical-align:middle}

/* ===== 2.22: Kunden / Aufgaben ===== */
.crmlayout{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:14px;align-items:start;margin-top:12px}
.crmlist{border:1px solid var(--line);border-radius:10px;background:var(--panel);max-height:72vh;overflow:auto}
.crmlist button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:8px 10px;cursor:pointer}
.crmlist button[aria-selected="true"]{background:var(--bg);box-shadow:inset 4px 0 0 var(--accent)}
.crmlist button small{display:block;color:var(--muted)}
.crmcard{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.crmcard dl{display:grid;grid-template-columns:130px 1fr;gap:4px 10px;margin:0;font-size:.9rem}.crmcard dt{color:var(--muted)}.crmcard dd{margin:0}
.duechip{display:inline-block;padding:1px 7px;border-radius:9px;font-size:.75rem;font-weight:600;background:var(--bg);border:1px solid var(--line)}
.duechip.late{background:var(--bad);color:#fff;border-color:var(--bad)}.duechip.soon{background:var(--warn);color:#fff;border-color:var(--warn)}
.tasklist{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.taskrow{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--panel)}
.taskrow.p1{border-left-color:var(--bad)}.taskrow.p2{border-left-color:var(--cap-1)}.taskrow.p3{border-left-color:#8a96a8}
.taskrow.done{opacity:.55}.taskrow.done .tt{text-decoration:line-through}
.taskrow input[type=checkbox]{width:20px;height:20px}
.taskrow .tt{font-weight:600}.taskrow small{color:var(--muted);display:block}
.tab{font-size:.98rem;padding:8px 10px}
#crmQ{border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:var(--panel);font:inherit}
.joblinks{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--bg);display:flex;flex-direction:column;gap:8px;font-size:.9rem;margin:6px 0}
.jtask{display:flex;align-items:center;gap:6px;padding:2px 0}
/* ===== 2.24: Verwaltung ===== */
.vwlayout{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr);gap:14px;align-items:start;margin-top:12px}
.vwside{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:6px;max-height:76vh;overflow:auto;position:sticky;top:6px}
.vwnode{display:flex;align-items:center;padding-left:calc(var(--d) * 14px)}
.vwtw{border:0;background:none;width:20px;color:var(--muted);cursor:pointer;padding:0}.vwtw:disabled{cursor:default}
.vwlbl{border:0;background:none;text-align:left;padding:4px 6px;border-radius:6px;cursor:pointer;flex:1;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vwlbl:hover{background:var(--bg)}.vwlbl.on{background:var(--ink);color:var(--bg)}.vwlbl.root{width:100%;font-weight:700}
.vwmain{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:10px 12px;min-height:300px}
.vwmain.dropping{outline:3px dashed var(--accent);outline-offset:-6px}
.vwmain #vwQ{border:1px solid var(--line);border-radius:6px;padding:6px 10px;background:var(--bg);min-width:220px}
.vwtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin:10px 0}
.vwtile{border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:14px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer;text-align:left}
.vwtile:hover{border-color:var(--accent)}.vwti{font-size:1.8rem}.vwtile small{color:var(--muted)}
.vwstaffgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:10px 0}
.vwstaff{display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:8px 10px;text-align:left;cursor:pointer}
.vwstaff:hover{border-color:var(--accent)}.vwav{grid-row:span 2;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-weight:700}
.vwstaff small{color:var(--muted)}
.vwdrop{font-size:.8rem;border:1px dashed var(--line);border-radius:8px;padding:8px;text-align:center;margin-top:10px}
@media (max-width:860px){.vwlayout{grid-template-columns:1fr}.vwside{position:static;max-height:40vh}}
/* ===== 2.25: E-Mail ===== */
.mllayout{display:grid;grid-template-columns:220px minmax(260px,360px) minmax(0,1fr);gap:10px;margin-top:12px;height:calc(100vh - 230px);min-height:480px}
.mlside,.mllist,.mlread{border:1px solid var(--line);border-radius:10px;background:var(--panel);min-height:0;display:flex;flex-direction:column}
.mlside{padding:8px;gap:4px}.mlside select{width:100%}
.mlfolders{display:flex;flex-direction:column;overflow:auto;flex:1}
.mlaccbtns{display:flex;flex-wrap:wrap;gap:4px;border-top:1px solid var(--line);padding-top:6px}
.mlsearch{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--line)}.mlsearch input{flex:1;border:1px solid var(--line);border-radius:6px;padding:6px 9px;background:var(--bg)}
.mlitems{overflow:auto;flex:1}
.mlitem{display:grid;grid-template-columns:1fr auto;gap:2px 8px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:8px 10px;cursor:pointer}
.mlitem:hover{background:var(--bg)}.mlitem.on{background:var(--bg);box-shadow:inset 4px 0 0 var(--accent)}
.mlitem.unseen .mlfrom,.mlitem.unseen .mlsubj{font-weight:700}.mlitem.unseen{box-shadow:inset 3px 0 0 var(--cap-1)}
.mlfrom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mldate{color:var(--muted);font-size:.78rem}
.mlsubj{grid-column:1/-1;font-size:.85rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mlitem.unseen .mlsubj{color:var(--ink)}
.mlpager{padding:6px 8px;border-top:1px solid var(--line);justify-content:space-between}
.mlread{padding:10px 14px;overflow:auto}
.mlempty{margin:auto}
.mltools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px}
.mlsubject{margin:10px 0 4px;font-size:1.15rem}
.mlhead{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.88rem;margin-bottom:8px}.mlhead>div{flex-basis:100%}
.mlatts{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;align-items:center}
.mlatt{border:1px solid var(--line);border-radius:6px;padding:3px 8px;background:var(--bg);font-size:.85rem;display:inline-flex;gap:5px;align-items:center}
.mldl{text-decoration:none}
.mlcontent{flex:1;display:flex;flex-direction:column;min-height:300px}
.mlframe{width:100%;flex:1;min-height:420px;border:1px solid var(--line);border-radius:6px;background:#fff}
.mltext{white-space:pre-wrap;word-wrap:break-word;font-size:.92rem;line-height:1.45}
.mlshare{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 10px;max-height:160px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:6px}
.mlcompose .mlrow{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:4px 0}
.mlcompose .mlrow span{color:var(--muted);font-size:.85rem}.mlcompose .mlrow input{border:0;background:none;padding:6px 2px;font:inherit}
.mlcompose .mlrow.hide,.hide{display:none!important}
.mlcompose textarea{width:100%;font:inherit;font-size:.92rem;border:1px solid var(--line);border-radius:6px;padding:8px;background:var(--bg);resize:vertical}
.mlattlist{display:flex;flex-wrap:wrap;gap:6px}
.mlpick{display:flex;flex-direction:column;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:4px;margin:6px 0}
.dialog .ok{color:var(--ok);font-size:.88rem}
@media (max-width:1100px){.mllayout{grid-template-columns:1fr;height:auto}.mllist{max-height:45vh}}
/* ===== 2.25: Kalender ===== */
.calbar{margin:12px 0 6px}
.callayers{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.85rem;margin-bottom:8px;align-items:center}
.calothers summary{cursor:pointer;color:var(--muted)}.calothers{position:relative}.calothers[open]>label{display:block}
.calgrid{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}
.calwd{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg);border-bottom:1px solid var(--line)}.calwd span{padding:4px 8px;font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase}
.calcells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calcell{min-height:108px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px 4px;display:flex;flex-direction:column;gap:2px;cursor:pointer;min-width:0}
.calgrid.week .calcell{min-height:340px}.calgrid.week .calwd{display:none}
.calcell:nth-child(7n){border-right:0}.calcell.out{background:var(--bg);opacity:.6}.calcell.we{background:color-mix(in srgb,var(--bg) 60%,transparent)}
.calcell.today{box-shadow:inset 0 0 0 2px var(--accent)}.calcell.over{background:color-mix(in srgb,var(--accent) 15%,transparent)}
.calnum{font-size:.78rem;font-weight:700;color:var(--muted)}.calcell.today .calnum{color:var(--accent)}
.calchip{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 14%,var(--panel));border-radius:4px;padding:1px 5px;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--ink)}
.calchip.auto{font-style:italic;opacity:.9}.calchip[draggable=true]{cursor:grab}
.calmore{border:0;background:none;color:var(--muted);font-size:.72rem;text-align:left;cursor:pointer}
.callist{display:flex;flex-direction:column;gap:8px}
.calday{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:6px 10px;display:flex;flex-direction:column;gap:3px}.calday.today{border-color:var(--accent)}
.caldh{font-weight:700;font-size:.85rem}.calday .calchip{font-size:.85rem;padding:3px 7px}
.calatt{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 10px;max-height:130px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:6px}
.calcol input{display:none}.calcol i{display:inline-block;width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer}.calcol input:checked+i{border-color:var(--ink)}
@media (max-width:760px){.calcell{min-height:70px}.calchip{font-size:.68rem}}
.mlshare,.calatt,.mlpick{flex-shrink:0}
.mlfolders .vwlbl{flex:none}
.mlside select{border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--bg);font:inherit;font-weight:600}
.mltools select{border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--bg)}
.mldiag{border:1px solid var(--line);border-radius:6px;padding:6px 8px;margin:6px 0;font-size:.82rem;background:var(--bg)}.mldiag .ok{color:var(--ok)}.mldiag .bad{color:var(--bad)}.mldiag small{color:var(--ink)}
.mlcomp{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.mlcompc{border:1px dashed var(--accent);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:4px;background:var(--panel)}
.buchgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start}
.buchtax{border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:10px 12px;display:flex;flex-direction:column;gap:6px;margin-top:10px}
.buchtax h3{margin:0;font-size:1rem}.buchtx{display:flex;gap:8px;align-items:center;font-size:.85rem}
@media (max-width:900px){.buchgrid{grid-template-columns:1fr}}
/* ===== 2.27: E-Mail wie Outlook ===== */
.mlitem{grid-template-columns:18px minmax(0,1fr) auto;align-items:center;user-select:none}
.mlitem .mlck{grid-row:span 2;margin:0;width:15px;height:15px;opacity:.35}.mlitem:hover .mlck,.mlitem .mlck:checked{opacity:1}
.mlitem .mlsubj{grid-column:2/-1}.mlitem.sel{background:color-mix(in srgb,var(--cap-1) 12%,var(--panel))}
.mlprio{color:var(--bad);font-weight:900}
.mlsearch input[type=checkbox]{align-self:center}
.mlfilter{display:flex;gap:6px;align-items:center;padding:4px 8px;border-bottom:1px solid var(--line);font-size:.8rem}.mlfilter select{border:1px solid var(--line);border-radius:6px;padding:3px 5px;background:var(--bg);font-size:.8rem}
.mlbulk{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px 8px;background:color-mix(in srgb,var(--cap-1) 10%,var(--panel));border-bottom:1px solid var(--line);font-size:.82rem}.mlbulk select{font-size:.8rem;border-radius:6px;border:1px solid var(--line)}
.mlfold{display:flex;align-items:center;border-radius:6px}.mlfold .vwlbl{flex:1}.mlfold.over{outline:2px dashed var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.mlfmenu{border:0;background:none;color:var(--muted);cursor:pointer;opacity:0;padding:2px 6px}.mlfold:hover .mlfmenu{opacity:1}
.mlcnt{display:inline-block;min-width:18px;text-align:center;border-radius:9px;background:var(--cap-1);color:#fff;font-size:.72rem;padding:0 5px;margin-left:4px}.vwlbl.on .mlcnt{background:#fff;color:var(--ink)}
.mlcnt0{color:var(--muted);font-size:.75rem;margin-left:4px}
.mlmenu{position:fixed;z-index:200;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:6px;display:flex;flex-direction:column;min-width:220px}
.mlmenu b{padding:4px 8px;font-size:.8rem;color:var(--muted)}.mlmenu button{border:0;background:none;text-align:left;padding:7px 10px;border-radius:6px;cursor:pointer;font:inherit}.mlmenu button:hover{background:var(--bg)}
.mlopts{display:flex;gap:16px;align-items:center;font-size:.82rem;padding:4px 0;flex-wrap:wrap}.mlopts select{border:1px solid var(--line);border-radius:6px;padding:2px 4px}
.mlrte{display:flex;flex-wrap:wrap;gap:2px;align-items:center;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;padding:4px;background:var(--bg)}
.mlrte button{border:1px solid transparent;background:none;border-radius:4px;padding:3px 7px;cursor:pointer;font-size:.85rem;min-width:28px}.mlrte button:hover{border-color:var(--line);background:var(--panel)}
.mlrte select{font-size:.8rem;border:1px solid var(--line);border-radius:4px}.mlrte input[type=color]{width:28px;height:24px;border:0;padding:0;background:none}.mlrte .sep{width:1px;height:20px;background:var(--line);margin:0 4px}
.mleditor{min-height:300px;max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:0 0 6px 6px;padding:10px 12px;background:#fff;color:#222;font-family:Calibri,'Segoe UI',Arial,sans-serif;font-size:11pt;line-height:1.4;outline:none}
.mleditor:focus{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 40%,transparent)}.mleditor blockquote{margin:0 0 0 6px;border-left:2px solid #1f6feb;padding-left:8px}.mleditor .mlsig{color:#444}
.mllayout.mlpane-bottom{grid-template-columns:220px minmax(0,1fr);grid-template-rows:minmax(200px,40%) minmax(0,1fr)}.mllayout.mlpane-bottom .mlside{grid-row:1/3}.mllayout.mlpane-bottom .mlread{grid-column:2}
.mllayout.mlpane-off{grid-template-columns:220px minmax(0,1fr)}.mllayout.mlpane-off .mlread{display:none}.mllayout.mlpane-off.mlreading .mllist{display:none}.mllayout.mlpane-off.mlreading .mlread{display:flex}
.mlside{overflow:auto}.mlfolders{min-height:80px}.mlaccbtns .btn{font-size:.78rem}
/* ===== 2.28 ===== */
.vwseg{display:flex;flex-wrap:wrap;gap:6px;margin-left:8px}
.vwsegb{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:10px 18px;font-size:1.02rem;font-weight:600;cursor:pointer;color:var(--ink);display:inline-flex;align-items:center;gap:6px;transition:background .15s}
.vwsegb:hover{border-color:var(--accent)}.vwsegb.on{background:var(--ink);color:var(--bg);border-color:var(--ink);box-shadow:0 2px 6px rgba(0,0,0,.15)}
.mlacclist{display:flex;flex-direction:column;gap:6px}.mlaccrow{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--bg)}.mlaccrow small{display:block}.mlaccic{font-size:1.4rem}
.mlvacon{background:#fff4d6;border-color:#e8b100;color:#7a5600}
.vacon{font-size:1rem;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.rulerow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 8px;margin:4px 0;background:var(--bg);font-size:.85rem}
.rulerow.off{opacity:.5}.rulerow select,.rulerow input:not([type=checkbox]){border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--panel);font-size:.85rem}.rulerow input[data-f=value]{min-width:180px;flex:1}.rulebtns{margin-left:auto}
.rulerow select{width:auto;flex:none;max-width:220px}.rulerow .check{border:0;background:none;padding:0}
/* ===== 2.30: Auswertung ===== */
.sbar{position:relative;display:flex;gap:2px;height:14px;align-items:stretch;background:color-mix(in srgb,var(--line) 45%,transparent);border-radius:4px;overflow:visible;min-width:80px}
.sbar.big{height:26px;margin:8px 0}
.sbar i{display:block;height:100%}.sbar i:first-child{border-radius:4px 0 0 4px}.sbar i:last-of-type{border-radius:0 4px 4px 0}
.sbmark{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1px;background:var(--ink);border-radius:2px;box-shadow:0 0 0 2px var(--panel)}
.kcleg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.8rem;margin:4px 0}.kcleg span{display:inline-flex;align-items:center;gap:5px}.kcleg i{width:11px;height:11px;border-radius:3px;display:inline-block}
.sbmarkleg{display:inline-block;width:3px;height:13px;background:var(--ink);border-radius:2px}
.resb{display:inline-flex;flex-direction:column;align-items:flex-end;font-family:var(--font-mono);font-weight:700;font-size:.92rem;padding:3px 8px;border-radius:6px;white-space:nowrap}
.resb small{font-weight:500;font-size:.72rem;opacity:.85}.resb.pos{color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,transparent)}.resb.low{color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent)}.resb.neg{color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent)}.resb.none{color:var(--muted);font-weight:500;font-size:.75rem;font-family:inherit}
.rpcharts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0}.rpchart{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:12px 14px;min-width:0}.rpchart.wide{grid-column:1/-1}.rpchart h3{margin:0 0 6px;font-size:1rem}.rpchart h4{margin:12px 0 4px;font-size:.85rem}
.rpmini td{padding:3px 6px;font-size:.85rem}.neg{color:var(--bad)}
.divbars{display:flex;flex-direction:column;gap:2px}.divrow,.cvrow{display:grid;grid-template-columns:minmax(120px,32%) 1fr 110px;gap:8px;align-items:center;border:0;background:none;padding:3px 4px;border-radius:6px;cursor:pointer;text-align:left;font:inherit}.divrow:hover,.cvrow:hover{background:var(--bg)}
.divname{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.divval{font-size:.8rem;text-align:right;color:var(--ok)}.divval.neg{color:var(--bad)}
.divtrack{display:grid;grid-template-columns:1fr 1fr;height:14px}.divneg{display:flex;justify-content:flex-end;border-right:1px solid var(--muted)}.divpos{display:flex}.divneg i{background:var(--bad);border-radius:4px 0 0 4px;height:100%}.divpos i{background:var(--ok);border-radius:0 4px 4px 0;height:100%}.divgap{text-align:center;font-size:.8rem}
.cvrow{grid-template-columns:minmax(120px,26%) 1fr 110px}.cvrow .divval{color:var(--ink)}
.colchart{display:flex;align-items:flex-end;gap:4px;height:170px;padding-top:16px}.colchart.small{height:110px}
.colc{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}.colc i{width:70%;max-width:38px;background:var(--cap-1);border-radius:4px 4px 0 0;min-height:2px}.colv{font-size:.68rem;color:var(--muted)}.coll{font-size:.7rem;color:var(--muted);white-space:nowrap;margin-top:3px}
.bvlist{display:flex;flex-direction:column;gap:6px}
.bvcard{display:grid;grid-template-columns:8px minmax(0,1.3fr) minmax(120px,1fr) 150px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:10px 12px;cursor:pointer;text-align:left;font:inherit}.bvcard:hover{border-color:var(--accent)}
.bvsw{width:8px;height:36px;border-radius:3px;background:var(--c)}.bvmain{display:flex;flex-direction:column;min-width:0}.bvmain b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bvres{text-align:right}
.bvsum{margin-top:8px;text-align:right;font-size:.95rem}
.ctrllist{display:flex;flex-direction:column;gap:6px}.ctrlrow{display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:2px 10px;align-items:center;border:1px solid var(--line);border-left:5px solid var(--warn);border-radius:8px;background:var(--panel);padding:8px 10px;text-align:left;cursor:pointer;font:inherit}.ctrlrow.bad{border-left-color:var(--bad)}.ctrlic{grid-row:span 2;font-size:1.2rem}.ctrlt{font-weight:600;font-size:.85rem}.ctrlrow small{grid-column:2/-1;color:var(--muted)}
.hrow{display:grid;grid-template-columns:150px 1fr 70px;gap:8px;align-items:center;margin:6px 0;font-size:.85rem}.htrack{height:14px;background:color-mix(in srgb,var(--line) 45%,transparent);border-radius:4px}.htrack i{display:block;height:100%;border-radius:4px}.hist{background:var(--cap-1)}.hplan{background:#8a96a8}.hbud{background:var(--ink)}
.bigres{display:flex;justify-content:flex-end}.bigres .resb{font-size:1.3rem}
@media (max-width:900px){.rpcharts{grid-template-columns:1fr}.bvcard{grid-template-columns:8px 1fr 120px}.bvbar{display:none}}
/* ===== 2.31: Lieferanten & Shops ===== */
.lktile{border-style:dashed;border-color:var(--cap-2)}
.lkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:8px 0 14px}
.lkcard{border:1px solid var(--line);border-top:5px solid var(--c);border-radius:12px;background:var(--panel);padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.lkmain{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);background:color-mix(in srgb,var(--c) 10%,var(--bg));border:1px solid color-mix(in srgb,var(--c) 35%,var(--line));border-radius:8px;padding:12px 14px}
.lkmain:hover{background:color-mix(in srgb,var(--c) 20%,var(--bg))}.lkmain b{font-size:1.1rem}.lkmain small{color:var(--muted)}
.lkkv{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:6px;font-size:.85rem}.lkkv span{color:var(--muted)}.lkkv b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lkcopy{border:1px solid var(--line);background:var(--bg);border-radius:6px;cursor:pointer;padding:2px 8px}.lkcopy:hover{border-color:var(--accent)}.lkn{font-size:.78rem}
.lkedit{display:flex;flex-direction:column;gap:6px}.lkerow{display:grid;grid-template-columns:24px 1.2fr 1.6fr 1fr 1fr 1fr 90px auto;grid-template-rows:auto auto;gap:4px 6px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg)}
.lkerow input,.lkerow select{border:1px solid var(--line);border-radius:6px;padding:5px 7px;background:var(--panel);font:inherit;font-size:.85rem;min-width:0}.lkerow .lknote{grid-column:2/8}.lkenr{grid-row:span 2;color:var(--muted);font-size:.8rem;text-align:center}
@media (max-width:1000px){.lkerow{grid-template-columns:24px 1fr 1fr}.lkerow .lknote{grid-column:2/-1}}
/* 2.32: Hauptmenü im gleichen Stil wie die Untermenüs (große Knöpfe mit Symbol), mit der Maus sortierbar */
.tabs{gap:6px;border-bottom:0;padding:6px 0 8px;align-items:center;row-gap:6px}
.tabs .tab{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:10px 16px;margin:0;font-family:inherit;font-size:1.02rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink);display:inline-flex;align-items:center;gap:7px;cursor:pointer;transition:background .15s,border-color .15s}
.tabs .tab:hover{border-color:var(--accent)}
.tabs .tab[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);box-shadow:0 2px 6px rgba(0,0,0,.15)}
.tabs .tab .tabic{font-size:1.1rem;line-height:1}
.tabs .tab svg{width:14px;height:14px;opacity:.7}
.tabs .tab .badge{margin-left:2px}
.tabs.editing .tab{padding:8px 12px}
[data-segk][draggable="true"]{user-select:none}
[data-segk].dragging{opacity:.35}
[data-segk].segover{outline:2px dashed var(--accent);outline-offset:2px}
.vwseg.sub{margin:10px 0 6px;gap:6px}
.vwseg.sub .vwsegb{padding:7px 13px;font-size:.95rem}
@media (max-width:700px){.tabs .tab{padding:8px 11px;font-size:.95rem}}
/* 2.33: einheitliche Kennzahl-Kacheln mit Symbol, Werkzeugleisten-Knöpfe, Arbeitsschutz, Gewährleistung */
.kpi{border-radius:10px;transition:border-color .15s,box-shadow .15s}
.kpi.ic{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:10px 14px}
.kpi.ic .kpiic{grid-row:1/3;font-style:normal;font-size:1.5rem;line-height:1;width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--bg)}
.kpi.ic b{font-size:1.45rem}
button.kpi:hover{border-color:var(--accent)}
.btn.tb{display:inline-flex;align-items:center;gap:6px;border-radius:10px;font-weight:600}
.plseg{margin:10px 0 4px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:700px){.grid3{grid-template-columns:1fr}}
.qwrap{overflow-x:auto}
.qtable th small,.qtable td small{display:block;font-weight:400;color:var(--muted);font-size:.72rem}
.qtable thead th{font-size:.8rem;white-space:normal;min-width:92px;vertical-align:bottom}
.qtable .namecol{text-align:left;min-width:170px;position:sticky;left:0;background:var(--panel);z-index:1}
.qcell{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:5px 8px;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;min-width:84px;color:var(--ink)}
span.qcell{display:inline-block;min-width:0;padding:0 6px;cursor:default}
.qcell.late{background:var(--bad);border-color:var(--bad);color:#fff}
.qcell.soon{background:var(--warn);border-color:var(--warn);color:#fff}
.qcell.ok{background:color-mix(in srgb,var(--ok) 16%,var(--panel));border-color:var(--ok)}
.qcell.none{color:var(--muted)}
.qcell:disabled{cursor:default}
.qbstaff{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px}
.qkrows{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow:auto}
.qkrow{display:grid;grid-template-columns:1fr 80px auto auto;gap:6px;align-items:center}
.qkrow input{border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit;background:var(--panel)}
.gwfs{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:0}
.gwfs legend{font-weight:700;padding:0 6px}
.gwmrow{display:grid;grid-template-columns:1fr 140px 140px auto;gap:6px;align-items:end;margin-bottom:6px}
.gwmrow input{border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit;background:var(--panel);width:100%}
.gwmrow label{display:flex;flex-direction:column}.gwmrow.done input[data-f=t]{text-decoration:line-through;opacity:.6}
@media (max-width:700px){.gwmrow{grid-template-columns:1fr 1fr}}
.duechip.past{color:var(--muted);text-decoration:line-through}
.netz{display:inline-block;padding:1px 8px;border-radius:9px;font-size:.78rem;font-weight:600;border:1px solid var(--line);background:var(--bg)}
.netz.n-fertig{border-color:var(--ok);color:var(--ok)}.netz.n-anmeldung,.netz.n-genehmigt,.netz.n-ibn,.netz.n-zaehler{border-color:var(--warn)}
.warnt{color:var(--warn);font-weight:600}.badt{color:var(--bad)}.okt{color:var(--ok)}
.qtable th{text-transform:none;letter-spacing:0}
.qtable thead th{font-size:.82rem;font-weight:700;color:var(--ink)}
.qtable thead th small{font-weight:400}
/* 2.34: Mail-Erweiterungen, Baustellendoku */
.mllater{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px dashed var(--accent);border-radius:8px;padding:8px 10px;background:var(--bg)}
.mllater.hide{display:none}
.mllater input{border:1px solid var(--line);border-radius:6px;padding:5px 8px;font:inherit;background:var(--panel)}
.mloutbtn{width:100%;margin-top:6px;border-color:var(--warn)}
.mlcust{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:6px 10px;margin:6px 0;background:var(--bg)}
.mlcust.none{border-left-color:var(--line)}.mlcustic{font-size:1.3rem}
.mlfollow{border:1px solid var(--line);border-radius:6px;padding:4px 6px;font:inherit;font-size:.85rem;background:var(--panel)}
.tplbox{display:flex;flex-direction:column;gap:10px;max-height:58vh;overflow:auto}
.tplrow{border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.tplrow input,.tplrow textarea{border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit;background:var(--panel);width:100%;box-sizing:border-box}
.tplrow button{align-self:flex-end}
.doccard .dokvars{margin:0;flex-wrap:wrap}
.dokdlg .dokgrid{display:grid;grid-template-columns:minmax(240px,1fr) 2fr;gap:16px}
.dokdlg h4{margin:6px 0}
@media (max-width:800px){.dokdlg .dokgrid{grid-template-columns:1fr}}
.dokcats{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:4px 8px;background:var(--bg)}
.dokcat summary{cursor:pointer;padding:6px 2px;display:flex;align-items:center;gap:6px}
.dokfiles{display:flex;flex-direction:column;gap:2px;padding:0 0 6px 24px}
.dokf{font-size:.85rem;display:flex;align-items:center;gap:6px}.dokfn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px}
/* Druck */
.dokcover{margin-top:30mm}.dokbar{height:8px;width:60mm;background:var(--c);border-radius:4px;margin-bottom:8mm}
.doktitle{font-size:26pt;margin:0 0 10mm}
.dokdl{display:grid;grid-template-columns:45mm 1fr;gap:3mm 6mm;font-size:12pt}.dokdl dt{color:#555}.dokdl dd{margin:0;font-weight:600}
.dokt th{width:45mm;text-align:left;background:#f1f3f6}
.doktext{white-space:normal;font-size:11pt;line-height:1.45;border-left:3px solid #ccd;padding-left:4mm}
.dokverz .dokvh td{background:#eef1f5;padding-top:6px}
.dokplan img{display:block;max-width:100%;max-height:235mm;margin:4mm auto;object-fit:contain}
.dokcap,.dokphotos figcaption{font-size:8.5pt;color:#555;text-align:center}
.dokphotos{display:grid;grid-template-columns:1fr 1fr;gap:5mm}
.dokphotos figure{margin:0;break-inside:avoid}.dokphotos img{width:100%;height:105mm;object-fit:cover;border:1px solid #ccc}
.dokdlg .dokgrid > div > .check{display:flex;width:100%;box-sizing:border-box;margin:2px 0}
/* 2.35: E-Rechnung */
.erdrop{border:2px dashed var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;background:var(--panel);margin:8px 0}
.erdrop.over{border-color:var(--accent);background:var(--bg)}
.erviewbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 6px}.erfmt{font-weight:700}
.ercheck{border:1px solid var(--line);border-left:5px solid var(--ok);border-radius:10px;padding:8px 12px;margin:8px 0;background:var(--panel)}
.ercheck.warn{border-left-color:var(--warn)}.ercheck.bad{border-left-color:var(--bad)}
.ercheck ul{margin:4px 0 4px 18px;padding:0}.ercheck ul.w li{color:var(--muted)}.ercheck small{display:block;margin-top:4px}
.erdoc{background:#fff;color:#111;border:1px solid var(--line);border-radius:10px;padding:22px 26px;box-shadow:0 2px 10px rgba(0,0,0,.06);font-size:.92rem}
.erdoc .muted{color:#555}
.erhead{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.erhead h1{margin:0 0 4px;font-size:1.6rem}
.ermeta{display:grid;grid-template-columns:auto auto;gap:2px 14px;margin:0}.ermeta dt{color:#555}.ermeta dd{margin:0}
.erparties{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.erparty{display:flex;flex-direction:column;border:1px solid #e3e6ea;border-radius:8px;padding:10px 12px;background:#fafbfc}.erparty small{color:#666;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em}
.ertab{width:100%;border-collapse:collapse;margin-top:10px}.ertab th{background:#eef1f5;text-align:left;padding:6px 8px;font-size:.8rem;border-bottom:1px solid #b9c0c9}.ertab td{padding:6px 8px;border-bottom:1px solid #e6e9ed;vertical-align:top}.ertab .num,.ersum .num{text-align:right;white-space:nowrap}
.ersum{display:flex;justify-content:flex-end;margin-top:10px}.ersum table{border-collapse:collapse;min-width:300px}.ersum td{padding:4px 8px}.ersum .big td{font-weight:700;border-top:1px solid #444}.ersum .pay td{font-size:1.1rem}
.erpay,.ernotes{margin-top:14px}.erpay h3,.ernotes h3{font-size:.95rem;margin:0 0 4px}.ersrc{margin-top:16px;font-size:.75rem}
.erform h4{margin:16px 0 6px;font-size:1rem}
.erlines input,.erlines select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:6px;padding:5px 7px;font:inherit;background:var(--panel)}
.erlines .erdesc{margin-top:3px;font-size:.8rem}
.erform .ersum{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;align-self:start}
.ersrcbox{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel);margin:8px 0}
.ertext pre{max-height:240px;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px;font-size:.78rem;white-space:pre-wrap}
.erfmts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.erfmtopt{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;cursor:pointer;background:var(--panel)}
.erfmtopt.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.erfmtopt input{align-self:flex-start}.erfmtopt small{color:var(--muted)}
.erpdfmode{display:flex;flex-direction:column;gap:2px;margin:8px 0}
.erbtn{font-size:1rem}
.erdlg #erDlgBody{max-height:76vh;overflow:auto}
@media (max-width:700px){.erparties{grid-template-columns:1fr}}
.erprint .erdoc{border:0;box-shadow:none;padding:0}.erprint .noprint{display:none}
/* 2.36: alte Struktur */
.altbar{margin-top:12px;border-top:1px dashed var(--line);padding-top:8px}
.altbarhead{display:flex;align-items:center;gap:6px}
.altbarbtn{flex:1;text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:6px 8px;font:inherit;font-weight:600;cursor:pointer;color:var(--ink)}
.altbarbtn:hover{border-color:var(--accent)}
.altshow{margin-top:10px;font-size:.8rem}
.altsubs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
/* Konto-Sperre */
.pill.locked{color:#fff;background:var(--bad);border-color:var(--bad);font-weight:600}
.lockfs{border:1px solid var(--line);border-radius:8px;padding:8px 12px 10px;margin:4px 0 8px;display:flex;flex-direction:column;gap:8px}
.lockfs legend{font-weight:600;padding:0 4px}
