:root{
  --paper:#EEF1F0;--surface:#FFFFFF;--ink:#16202B;--muted:#56616D;--line:#D3D9DE;
  --signal:#D3361A;--ok:#2B7347;--warn:#A86B00;--due:#C22A1C;--onstatus:#FFFFFF;--focus:#1E6FD9;
  --okbg:#E2F0E7;--warnbg:#F9EDD4;--duebg:#F9E0DC;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#11161B;--surface:#192027;--ink:#E7ECEF;--muted:#9AA6B0;--line:#2B353E;
    --signal:#FF6B4A;--ok:#5DBE85;--warn:#E3A940;--due:#FF6656;--onstatus:#11161B;--focus:#6AA8FF;
    --okbg:#1C3226;--warnbg:#3A2D12;--duebg:#3E1C18;color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#11161B;--surface:#192027;--ink:#E7ECEF;--muted:#9AA6B0;--line:#2B353E;
  --signal:#FF6B4A;--ok:#5DBE85;--warn:#E3A940;--due:#FF6656;--onstatus:#11161B;--focus:#6AA8FF;
  --okbg:#1C3226;--warnbg:#3A2D12;--duebg:#3E1C18;color-scheme:dark;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 "Atkinson Hyperlegible","Segoe UI Variable Text",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-variant-numeric:tabular-nums}
h1,h2,h3,h4{line-height:1.2;margin:0}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}

.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}
.top-inner{max-width:1120px;margin:0 auto;padding:10px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto;min-width:0}
.brand h1{font-size:1.2rem}
.brand p{margin:0;color:var(--muted);font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46ch}
.tabs{display:flex;gap:4px;background:var(--paper);border-radius:8px;padding:4px}
.tab{border:0;background:transparent;padding:7px 14px;border-radius:6px;color:var(--muted);cursor:pointer}
.tab[aria-current="page"]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 0 0 1px var(--line)}
.count{display:inline-block;min-width:1.5em;padding:0 .45em;margin-left:6px;border-radius:999px;background:var(--due);color:var(--onstatus);font-size:.75rem;line-height:1.5em;text-align:center;font-weight:700}
.tools{display:flex;gap:6px}

.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;padding:7px 14px;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--signal);border-color:var(--signal);color:var(--onstatus);font-weight:700}
.btn.primary:hover{filter:brightness(1.06)}
.btn.quiet{border-color:transparent;background:transparent;color:var(--muted)}
.btn.quiet:hover{color:var(--ink)}
.btn.danger{background:var(--due);border-color:var(--due);color:var(--onstatus);font-weight:700}
.btn:disabled{opacity:.5;cursor:default}
.linkish{border:0;background:none;padding:0;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkish:hover{color:var(--ink)}

.banner{max-width:1120px;margin:12px auto 0;padding:0 20px}
.banner div{padding:10px 14px;border-radius:8px;background:var(--warnbg);font-size:.9rem}
main{max-width:1120px;margin:0 auto;padding:24px 20px 72px}

.pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 24px;margin-bottom:8px}
.pagehead h2{font-size:1.6rem;margin-right:auto}
.lede{color:var(--muted);margin:4px 0 0;max-width:62ch}

.group{margin-top:28px}
.group h3{font-size:1rem;margin-bottom:8px;display:flex;gap:10px;align-items:baseline}
.group h3 span{color:var(--muted);font-weight:400}
.rows{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rows li+li{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:10px 16px;width:100%;text-align:left;background:none;border:0;cursor:pointer}
.row:hover{background:var(--paper)}
.row .name{font-weight:700}
.sub{color:var(--muted);font-size:.875rem}
.when{text-align:right;max-width:min(30rem,55vw)}
.row>div:nth-child(2){min-width:8rem}
.when b{display:block}
.s-due{color:var(--due)}.s-warn{color:var(--warn)}.s-ok{color:var(--ok)}.s-none{color:var(--muted)}

.empty{background:var(--surface);border:1px dashed var(--line);border-radius:10px;padding:32px 24px;text-align:center}
.empty p{margin:0 0 16px;color:var(--muted)}

.filters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 12px}
.filters input{flex:1 1 240px}
.inv-head,.inv{display:grid;grid-template-columns:8rem minmax(0,1fr) 9rem 11rem 9.5rem;gap:12px;align-items:center;padding:10px 16px}
.inv-head{font-size:.8rem;color:var(--muted);padding-bottom:6px}
.inv{width:100%;text-align:left;background:none;border:0;cursor:pointer}
.inv:hover{background:var(--paper)}
.inv .nr{font-weight:700}
.dot{display:inline-block;width:.6em;height:.6em;border-radius:50%;margin-right:6px;vertical-align:.05em}
.dot.due{background:var(--due)}.dot.warn{background:var(--warn)}.dot.ok{background:var(--ok)}.dot.none{background:var(--line)}
.out{opacity:.6}
@media (max-width:760px){
  .inv-head{display:none}
  .inv{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}
  .inv .nr{grid-column:1/-1;font-size:.85rem;color:var(--muted)}
  .inv .c-kat{display:none}
  .inv .c-ort{grid-column:1;font-size:.875rem;color:var(--muted)}
  .inv .c-st{grid-row:2;grid-column:2;text-align:right}
}

.back{margin-bottom:16px}
.tag{background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--signal);border-radius:10px;padding:18px 22px;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center}
.tag .nrbox{min-width:7rem}
.tag .nrbox small{display:block;color:var(--muted);font-size:.8rem}
.tag .nrbox strong{font-size:2rem;line-height:1.1;letter-spacing:.01em}
.tag .what{flex:1 1 260px;min-width:0}
.tag .what h2{font-size:1.4rem}
.tag .acts{display:flex;flex-wrap:wrap;gap:6px}
.pill{display:inline-block;padding:1px 10px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:.8rem;color:var(--muted);margin-top:6px}
.pill.alert{background:var(--duebg);border-color:transparent;color:var(--due);font-weight:700}

.cols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px;margin-top:24px}
@media (max-width:900px){.cols{grid-template-columns:minmax(0,1fr)}}
.plakrow>div{min-width:0;overflow-wrap:break-word}
@media (max-width:600px){.row{grid-template-columns:auto minmax(0,1fr);row-gap:4px}.row>div:nth-child(2){min-width:0}.row .when{grid-column:2;text-align:left;max-width:none}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.card+.card{margin-top:24px}
.card h3{font-size:1.05rem;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:8px 12px;flex-wrap:wrap}
.plaks{display:grid;gap:14px}
.plakrow{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.plakrow b{display:block}
.facts{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0}
.facts div{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:12px}
.facts dt{color:var(--muted);font-size:.875rem;padding-top:1px}
.facts dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}
@media (max-width:520px){.facts div{grid-template-columns:1fr;gap:0}}
.people{display:flex;flex-wrap:wrap;gap:6px}
.people span{padding:2px 10px;border-radius:999px;background:var(--paper);font-size:.875rem}

.log{list-style:none;padding:0;margin:4px 0 0 7px;border-left:2px solid var(--line)}
.log li{position:relative;padding:0 0 22px 22px}
.log li:last-child{padding-bottom:4px}
.log li::before{content:"";position:absolute;left:-8px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--ink)}
.log li.k-stk::before,.log li.k-mtk::before{border-color:var(--ok)}
.log li.k-stoerung::before,.log li.k-vorkommnis::before{border-color:var(--due)}
.log .d{font-size:.875rem;color:var(--muted)}
.log h4{font-size:1rem;margin:2px 0 6px}
.log dl{margin:0;display:grid;gap:2px}
.log dl div{display:flex;gap:8px;flex-wrap:wrap}
.log dt{color:var(--muted);font-size:.875rem}
.log dt::after{content:":"}
.log dd{margin:0;white-space:pre-line}
.log .note{margin:6px 0 0;white-space:pre-line}
.log .meta{margin-top:6px;font-size:.8rem;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap}
.log li.storno h4,.log li.storno dl,.log li.storno .note{text-decoration:line-through;text-decoration-thickness:1px;opacity:.6}
.stornoinfo{margin-top:6px;font-size:.875rem;color:var(--due)}

dialog{border:1px solid var(--line);border-radius:12px;padding:0;width:min(680px,calc(100% - 24px));background:var(--surface);color:var(--ink)}
dialog::backdrop{background:rgba(8,12,16,.5)}
.dlg-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}
.dlg-head h2{font-size:1.15rem}
.dlg-body{padding:16px 20px;display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;max-height:min(68vh,720px);overflow:auto}
.dlg-foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}
.err{color:var(--due);margin-right:auto;font-size:.9rem}
.full{grid-column:1/-1}
.f{display:flex;flex-direction:column;gap:4px;font-size:.875rem;color:var(--muted)}
.f .hint{font-size:.8rem}
.req::after{content:" *";color:var(--signal)}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:8px 10px;width:100%;min-width:0}
textarea{resize:vertical;min-height:4.5em}
fieldset{border:1px solid var(--line);border-radius:8px;padding:10px 12px 12px;margin:0}
legend{padding:0 6px;color:var(--muted);font-size:.875rem}
.frist-row{display:grid;grid-template-columns:minmax(0,1fr) 11rem auto;gap:8px;margin-bottom:8px}
.export-list{display:grid;gap:10px}
.export-list button{display:grid;text-align:left;gap:2px;padding:12px 14px;white-space:normal;min-width:0}
.export-list button span{color:var(--muted);font-size:.875rem}
@media (max-width:600px){
  .dlg-body{grid-template-columns:1fr}
  .frist-row{grid-template-columns:1fr 1fr}
  .frist-row .linkish{grid-column:1/-1;justify-self:start}
  .brand p{max-width:60vw}
}
.check-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.check-row:first-child{border-top:0;padding-top:4px}
.c-rili{grid-column:span 4;font-size:.875rem;align-self:end}.c-pct{grid-column:span 2}
.c-name{grid-column:span 4}.c-int{grid-column:span 2}.c-ein,.c-min,.c-max{grid-column:span 2}.c-ext,.c-hin{grid-column:span 3}.c-rm{grid-column:1/-1;justify-self:start}
.fsrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}
.fsrow select{width:auto;flex:1 1 220px}
.ckdev{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ckdev+.ckdev{margin-top:14px}
.ckdev>header{padding:10px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:4px 12px;flex-wrap:wrap;background:var(--paper)}
.ck{padding:12px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:start}
.ck+.ck{border-top:1px solid var(--line)}
.ck.is-nok{background:var(--duebg)}
.ck .inputs{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.ck .inputs label{display:flex;flex-direction:column;font-size:.8rem;color:var(--muted);gap:2px;flex:1 1 8rem;max-width:15rem}
.ck .bem{grid-column:1/-1}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.seg span{display:block;padding:7px 12px;font-size:.9rem;white-space:nowrap}
.seg label+label span{border-left:1px solid var(--line)}
.seg input:checked+span.okk{background:var(--ok);color:var(--onstatus);font-weight:700}
.seg input:checked+span.nok{background:var(--due);color:var(--onstatus);font-weight:700}
.seg input:focus-visible+span{outline:3px solid var(--focus);outline-offset:-3px}
.ckzone{margin-top:22px}
.ckzone>h3{font-size:1rem;margin:0 0 8px;display:flex;gap:10px;align-items:baseline}
.ckzone>h3 span{color:var(--muted);font-weight:400;font-size:.875rem}
.ckdev>header{align-items:center}
.ckdev>header .hl{display:flex;flex-direction:column;min-width:0}
.ckdev>header .hr{display:flex;align-items:center;gap:10px}
.prog{font-size:.8rem;padding:1px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.prog.done{background:var(--okbg);color:var(--ok);border-color:transparent;font-weight:700}
.prog.bad{background:var(--duebg);color:var(--due);border-color:transparent;font-weight:700}
.ck{padding:10px 16px;align-items:center;gap:6px 16px}
.ck-title{font-weight:700;line-height:1.3}
.ck-last{font-size:.8rem;color:var(--muted);margin-top:2px}
.ck-last .dot{width:.5em;height:.5em}
.ck .inputs{gap:6px 14px;align-items:center}
.ck .inputs label.m{flex-direction:row;align-items:center;gap:6px;flex:0 1 auto;max-width:none;font-size:.85rem}
.ck .inputs label.m input{width:6rem;padding:5px 8px}
.ck .inputs label.m.x input{width:9.5rem}
.ck details.hint{grid-column:1/-1;font-size:.85rem;color:var(--muted);margin-top:-2px}
.ck details.hint summary{cursor:pointer;width:max-content}
.ck .bem[hidden]{display:none}
.ck-last .linkish{font-size:.8rem;margin-left:12px}
.ck .hinttext{grid-column:1/-1;margin:0;font-size:.85rem;color:var(--muted);background:var(--paper);border-radius:6px;padding:6px 10px}
.ck .hinttext[hidden]{display:none}
@media (max-width:600px){
  .tabs{width:100%;overflow-x:auto}.tab{flex:1 0 auto;padding:7px 8px}
  .brand p{display:none}
  .tab .lg{display:none}
  .seg{display:flex}.seg label{flex:1}.seg span{text-align:center}
  .ckdev>header{padding:10px 12px}.ck{padding:10px 12px}
  .ckzone>h3{flex-wrap:wrap}
  .savebar{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));gap:8px}
  .savebar label{flex:1 1 100%}.savebar label span{display:none}
  .savebar .btn{flex:1 1 100%}
}
.seg span{padding:6px 12px}
.bar{flex:1 1 100%;height:6px;background:var(--paper);border-radius:3px;overflow:hidden;order:-1}
.bar i{display:block;height:100%;background:var(--ok);width:0}
.bar i.bad{background:var(--warn)}
details.histbox>summary{cursor:pointer;font-weight:700;padding:4px 0;width:max-content}
@media (prefers-reduced-motion:no-preference){.bar i{transition:width .2s}}
.notice{background:var(--warnbg);border-radius:8px;padding:12px 14px;font-size:.9rem}
.notice ol{margin:6px 0 8px;padding-left:1.3em}
.notice li{margin:2px 0}
.chk{display:flex;align-items:flex-start;gap:10px;color:var(--ink);font-size:.95rem}
.chk input{width:auto;margin-top:3px}
.doclist{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.doclist li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:start}
.doclist a{color:var(--ink);font-weight:700;overflow-wrap:anywhere}
.einw{border-collapse:separate;border-spacing:0;font-size:.9rem;background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:100%}
.einw th,.einw td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.einw thead th{vertical-align:bottom;font-weight:400;min-width:9rem}
.einw thead th .linkish{font-size:.8rem}
.einw th:first-child,.einw td:first-child{position:sticky;left:0;background:var(--surface);z-index:1;font-weight:700;min-width:10rem;border-right:1px solid var(--line)}
.einw tbody tr:last-child td{border-bottom:0}
.einw td.yes{color:var(--ok)}
.einw td.no{color:var(--muted)}
.ckdev .outofservice{padding:12px 16px;background:var(--duebg);color:var(--due);font-weight:700}
.savebar{position:sticky;bottom:0;z-index:4;margin-top:16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;box-shadow:0 -6px 18px rgba(0,0,0,.08)}
.savebar label{display:flex;align-items:center;gap:8px;flex:1 1 260px;color:var(--muted);font-size:.9rem}
.savebar label input{flex:1}
.okmsg{margin-top:12px;padding:10px 14px;border-radius:8px;background:var(--okbg)}
.run summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:10px 16px;cursor:pointer;list-style:none}
.run summary::-webkit-details-marker{display:none}
.run summary:hover{background:var(--paper)}
.run .inner{padding:0 16px 14px;overflow-x:auto}
.run table,.mini{border-collapse:collapse;width:100%;font-size:.875rem}
.run th,.run td,.mini th,.mini td{text-align:left;padding:5px 8px;border-top:1px solid var(--line);vertical-align:top}
.run th,.mini th{color:var(--muted);font-weight:400;border-top:0}
.run.storno summary b{text-decoration:line-through}
.cklist{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.cklist li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}
.tblwrap{overflow-x:auto}
.mark-nok{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--duebg);color:var(--due);font-weight:700;font-size:1.4rem;border:2px solid var(--due)}
.mini .linkish{text-align:left}
.filters select{width:auto;flex:1 1 200px}
@media (max-width:600px){
  .check-row{grid-template-columns:1fr 1fr}
  .c-name,.c-int,.c-ein,.c-ext,.c-hin,.c-rili,.c-pct{grid-column:1/-1}.c-min,.c-max{grid-column:span 1}
  .ck{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:no-preference){
  .row,.inv,.btn{transition:background-color .12s,border-color .12s}
}

.authcard{max-width:440px;margin:40px auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;display:grid;gap:14px}
.authcard h2{font-size:1.35rem}
.authcard .err{margin:0;min-height:1.2em}
.usertbl{width:100%;border-collapse:collapse;font-size:.9rem}
.usertbl td,.usertbl th{padding:8px 6px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.usertbl th{border-top:0;color:var(--muted);font-weight:400}
.usertbl select{width:auto}
[hidden]{display:none!important}

code{font-size:.9em;background:var(--paper);padding:1px 4px;border-radius:4px}

.dienstbtn{border-color:var(--line)}
.dienstbtn.imdienst{background:var(--okbg);color:var(--ok);font-weight:700;border-color:transparent}
.dienstzeile{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;background:var(--okbg);border-radius:10px;padding:12px 16px;margin:4px 0 12px}
.dienstzeile.aus{background:var(--surface);border:1px solid var(--line)}
.c-sch{grid-column:1/-1}
.dstelle .fsrow+.fsrow{margin-top:6px}
.dbtab td,.dbtab th{padding:8px 10px}.dbtab td:first-child,.dbtab th:first-child{padding-left:16px}
.mpnur[hidden]{display:none!important}

/* ---------- Auswertung ---------- */
:root{--s1:#2a78d6;--s2:#eb6834;--vgrid:#E3E7EA}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--s1:#3987e5;--s2:#d95926;--vgrid:#2B353E}}
:root[data-theme="dark"]{--s1:#3987e5;--s2:#d95926;--vgrid:#2B353E}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:8px 0 18px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.kpi b{font-size:1.7rem;line-height:1.1}
.kpi span{color:var(--muted);font-size:.85rem}
.kpi.warn{border-color:var(--due);box-shadow:inset 4px 0 0 var(--due)}
.vcard{margin-bottom:18px}
.vgrid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:18px;align-items:start}
.vgrid2 .vcard{margin:0}
.vleg{display:flex;gap:16px;font-size:.85rem;color:var(--muted);margin:-4px 0 10px}
.vleg i,.vtr i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
i.s1{background:var(--s1)}i.s2{background:var(--s2)}
.vcol{display:grid;grid-template-columns:2.6rem 1fr;height:220px;padding-bottom:22px}
.vaxis{position:relative;font-size:.75rem;color:var(--muted)}
.vaxis span{position:absolute;right:8px;transform:translateY(50%)}
.vplot{position:relative;display:grid;grid-template-columns:repeat(var(--n),1fr);align-items:end;border-bottom:1px solid var(--muted)}
.vgrid{position:absolute;left:0;right:0;height:1px;background:var(--vgrid)}
.vbar{position:relative;height:100%;display:flex;align-items:flex-end;justify-content:center;outline-offset:-2px;cursor:default}
.vstack{width:min(24px,70%);display:flex;flex-direction:column;gap:2px;border-radius:4px 4px 0 0;overflow:hidden;position:relative;z-index:1}
.vstack i{display:block;min-height:2px}
.vbar:hover .vstack,.vbar:focus .vstack{filter:brightness(1.12)}
.vx{position:absolute;bottom:-20px;font-size:.7rem;color:var(--muted);white-space:nowrap}
.vtab{margin-top:10px}.vtab summary{cursor:pointer;color:var(--muted);font-size:.85rem}
.vhbars{display:grid;gap:10px}
.vhrow{display:grid;grid-template-columns:42% minmax(0,1fr) 6.5rem;gap:10px;align-items:center;font-size:.9rem;border-radius:6px;outline-offset:2px}
.vhl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vht{height:14px;background:var(--paper);border-radius:0 4px 4px 0;overflow:hidden}
.vht i{display:block;height:100%;border-radius:0 4px 4px 0}
.vhrow:hover .vht i,.vhrow:focus .vht i{filter:brightness(1.12)}
.vhv{white-space:nowrap;text-align:right}
.vtip{position:fixed;z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;box-shadow:0 6px 18px rgba(0,0,0,.15);font-size:.85rem;pointer-events:none;max-width:280px}
.vtk{color:var(--muted);margin-bottom:4px}
.vtr{display:flex;align-items:center;gap:6px}.vtr b{min-width:2ch}.vtr i{width:12px;height:3px;border-radius:2px;margin:0}
@media (max-width:600px){.vhrow{grid-template-columns:1fr auto}.vht{grid-column:1/-1;order:3}}
.tools{flex-wrap:wrap}
@media (max-width:600px){
  .tools{width:100%;gap:4px}.tools .btn{padding:6px 8px}
  .tools .dienstbtn{flex:1 1 100%;text-align:center}
}
