/* Grundlage (vorher vom claude.ai-Rahmen gesetzt) */
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
/* LEITTECHNIK Corporate Design (Handbuch v23.10.2024): Rot #CD001A · Schwarz · Grau #D9D9D8 · Grau Folie #ECECEB
   Schrift: Nexa Bold (Überschriften) / Nexa Regular (Text), Alternative Arial */
:root{
  --lt-red:#CD001A; --lt-black:#000000; --lt-grey:#D9D9D8; --lt-grey-light:#ECECEB;
  --bg:#FFFFFF; --panel:#FFFFFF; --band:#ECECEB; --ink:#000000; --ink-2:#222221; --ink-3:#6B6B69;
  --line:#D9D9D8; --field:#FFFFFF; --red:#CD001A; --red-ink:#FFFFFF; --red-soft:#FBE5E8; --hl:#FFE0E4;
  --ok:#2E7D4F; --warn:#8A5A00; --warn-soft:#FFF4DC; --logo-ink:#000000;
  --font:"Nexa","Nexa Regular",Arial,"Helvetica Neue",Helvetica,sans-serif;
  --font-b:"Nexa Bold","Nexa",Arial,"Helvetica Neue",Helvetica,sans-serif;
  --mono:Consolas,"SFMono-Regular",Menlo,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#161615; --panel:#1F1F1E; --band:#222221; --ink:#ECECEB; --ink-2:#D9D9D8; --ink-3:#9A9A97;
    --line:#383836; --field:#161615; --red:#E8203A; --red-ink:#FFFFFF; --red-soft:#3A1419; --hl:#5A1A24;
    --ok:#6CC592; --warn:#E9B955; --warn-soft:#33280F; --logo-ink:#FFFFFF;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#161615; --panel:#1F1F1E; --band:#222221; --ink:#ECECEB; --ink-2:#D9D9D8; --ink-3:#9A9A97;
  --line:#383836; --field:#161615; --red:#E8203A; --red-ink:#FFFFFF; --red-soft:#3A1419; --hl:#5A1A24;
  --ok:#6CC592; --warn:#E9B955; --warn-soft:#33280F; --logo-ink:#FFFFFF;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--font);padding:0 16px}
a{color:var(--red)}
.wrap{max-width:1360px;margin:0 auto;padding-block:0 64px}

/* Kopf: Logo auf weißem Balken, rote Linie mit Kreis als Branding-Element */
.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-block:22px 16px}
.logo{height:54px;width:auto;max-width:100%;color:var(--logo-ink);display:block}
.src{font:12px/1.45 var(--font);color:var(--ink-3);margin:-16px 0 26px}

/* Anmeldung + Info-Popup (rechts oben) */
.acct{position:relative;display:flex;align-items:center;gap:10px;margin-left:auto}
.who{display:flex;align-items:center;gap:10px;min-width:0}
.avatar{width:44px;height:44px;border-radius:50%;border:3px solid var(--red);display:grid;place-items:center;font:700 12px/1 var(--font-b);letter-spacing:0;white-space:nowrap;color:var(--ink);background:var(--bg);flex:none}
.who.is-out .avatar{border-color:var(--line);color:var(--ink-3)}
.who-t{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.who-t b{font:700 14px var(--font-b);overflow-wrap:anywhere}
.who-t small{font-size:12px;color:var(--ink-3);overflow-wrap:anywhere}
.signin{font-size:13px;padding:7px 12px}
.info{width:30px;height:30px;padding:0;border-radius:50%;border:2px solid var(--ink);background:var(--bg);color:var(--ink);font:700 15px/1 Georgia,"Times New Roman",serif;font-style:italic;flex:none}
.info:hover,.info[aria-expanded=true]{border-color:var(--red);color:var(--red)}
.pop{position:absolute;right:0;top:calc(100% + 10px);z-index:30;width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);overflow-y:auto;background:var(--panel);border:1.5px solid var(--lt-grey);border-top:3px solid var(--red);border-radius:6px;box-shadow:0 14px 36px rgba(0,0,0,.18);padding:14px 16px 16px;font-size:13.5px}
.pop-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.pop-h b{font:700 13px var(--font-b);letter-spacing:.08em;text-transform:uppercase}
.x{background:none;border:0;font-size:22px;line-height:1;padding:0 4px;color:var(--ink-3)}
.x:hover{color:var(--red)}
.pop h4{font:700 11px var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:14px 0 6px;display:flex;justify-content:space-between;gap:8px}
.pop p{margin:0 0 6px;color:var(--ink-2)}
.pop ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.pop li{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.pop li a{font-family:var(--font-b);font-weight:700;overflow-wrap:anywhere}
.pop li small{color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.pop .muted{color:var(--ink-3);font-size:12.5px}
.gate{background:var(--band);border-radius:6px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.src b{color:var(--ink-2);font-family:var(--font-b);font-weight:700}
.src .dot{display:inline-block;width:8px;height:8px;border-radius:50%;border:2px solid var(--ink-3);margin-right:6px;vertical-align:0}
.src .dot.ok{border-color:var(--ok);background:var(--ok)} .src .dot.busy{border-color:var(--red)} .src .dot.err{border-color:var(--red);background:var(--red)}
.rule{position:relative;height:14px;margin-bottom:26px}
.rule::before{content:"";position:absolute;left:0;right:14px;top:6px;border-top:3px solid var(--red)}
.rule::after{content:"";position:absolute;right:0;top:0;width:14px;height:14px;border-radius:50%;border:3px solid var(--ink);background:var(--bg)}

h1{font:700 30px/1.1 var(--font-b);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;text-wrap:balance}
.lead{margin:0 0 28px;color:var(--ink-3);max-width:62ch}

/* Schritte als verbundene Kreise (Vernetzung) */
.flow{position:relative;display:flex;flex-direction:column;gap:26px;padding-left:44px}
.flow::before{content:"";position:absolute;left:13px;top:18px;bottom:18px;border-left:3px solid var(--red)}
.step{position:relative;display:flex;flex-direction:column;gap:12px}
.node{position:absolute;left:-44px;top:0;width:30px;height:30px;border-radius:50%;border:3px solid var(--ink);background:var(--bg);display:grid;place-items:center;font:700 13px/1 var(--font-b)}
.step.done .node{background:var(--red);border-color:var(--red);color:var(--red-ink)}
.step.off .node{border-color:var(--line);color:var(--ink-3)}
.step.off > :not(.node){opacity:.5}
.step-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;min-height:30px}
.step-t{font:700 17px/1.2 var(--font-b);letter-spacing:.08em;text-transform:uppercase;padding-top:5px}
.step-d{color:var(--ink-3);font-size:13px}

label.lbl{font:700 12px var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.field{position:relative}
input[type=text],textarea{width:100%;font:16px/1.4 var(--font);color:var(--ink);background:var(--field);border:1.5px solid var(--lt-grey);border-radius:6px;padding:12px 14px}
textarea{min-height:88px;resize:vertical}
input[type=text]:focus,textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
input:disabled,textarea:disabled{cursor:not-allowed;background:var(--band)}
.opts{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font-size:13px;color:var(--ink-3);margin-top:8px}
.opts input{accent-color:var(--red)}
.linkbtn{background:none;border:0;padding:0;font:13px var(--font);letter-spacing:0;color:var(--red);text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}
.linkbtn:hover{color:var(--ink)}

.list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:10;background:var(--panel);border:1.5px solid var(--lt-grey);border-radius:6px;box-shadow:0 12px 32px rgba(0,0,0,.14);max-height:380px;overflow-y:auto;margin:0;padding:4px 0;list-style:none}
.opt{display:grid;grid-template-columns:4.2em 1fr auto;gap:2px 12px;padding:9px 14px;cursor:pointer;align-items:baseline;border-left:3px solid transparent}
.opt[aria-selected=true]{background:var(--band);border-left-color:var(--red)}
.opt:hover{background:var(--band)}
.opt .nr{font:700 15px var(--font-b);color:var(--red);font-variant-numeric:tabular-nums}
.opt .bz{font-family:var(--font-b);font-weight:700;min-width:0;overflow-wrap:anywhere}
.opt .dt{font-size:12px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.opt .kd{grid-column:2 / 4;font-size:13px;color:var(--ink-3);overflow-wrap:anywhere}
.lock{display:inline-flex;align-items:center;gap:4px;font:700 11px/1.2 var(--font-b);letter-spacing:.02em;color:var(--ink-2);background:var(--band);border:1px solid var(--line);padding:2px 7px;border-radius:10px;margin-left:8px;vertical-align:2px;white-space:nowrap}
.lock svg{flex:none}
.opt.is-locked .nr,.opt.is-locked .bz{color:var(--ink-3)}
.plate .lock{font-size:12px;vertical-align:3px}
.opt mark{background:var(--hl);color:inherit;border-radius:2px}
.empty{padding:10px 14px;color:var(--ink-3);font-size:14px}

/* Projektkarte */
.plate{background:var(--band);border-radius:6px;padding:16px 18px;display:grid;grid-template-columns:auto 1fr;gap:4px 18px}
.plate .pn{font:700 34px/1 var(--font-b);color:var(--red);grid-row:span 2;align-self:center;font-variant-numeric:tabular-nums}
.plate .pb{font:700 19px/1.25 var(--font-b)}
.plate .pk{color:var(--ink-2);font-size:14px}
.plate dl{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px 24px;margin:10px 0 0;font-size:13px}
.plate dt{color:var(--ink-3);display:inline} .plate dd{display:inline;margin:0 0 0 6px;color:var(--ink)}
.folder{grid-column:1 / -1;font-size:13px;margin-top:10px;color:var(--ink-3);overflow-wrap:anywhere;display:flex;flex-direction:column;gap:4px}
.folder .k{font:700 11px var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.folder ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.folder li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.folder li::before{content:"";width:8px;height:8px;border-radius:50%;border:2px solid var(--red);flex:none;align-self:center}
.folder a{font-family:var(--font-b);font-weight:700;font-size:14px}
.folder small{color:var(--ink-3)}
a.doc{font-family:var(--font-b);font-weight:700;text-decoration:none;border-bottom:1.5px solid currentColor}
a.doc:hover{background:var(--red-soft)}
a.doc .ext{font-size:.8em;margin-left:3px}
.names{grid-column:1 / -1;display:flex;flex-direction:column;gap:5px;margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.names div{display:flex;gap:10px;align-items:center;font:12.5px/1.4 var(--mono);color:var(--ink-2);min-width:0}
.names span.k{color:var(--ink-3);width:4.6em;flex:none;font:700 11px var(--font-b);letter-spacing:.08em;text-transform:uppercase}
.names code{flex:1;min-width:0;overflow-wrap:anywhere;user-select:all}
.plate .clear{grid-column:1 / -1;justify-self:start;margin-top:10px}

button{font:700 14px var(--font-b);letter-spacing:.04em;border-radius:6px;border:1.5px solid transparent;padding:10px 18px;cursor:pointer}
button:focus-visible{outline:3px solid var(--red-soft);outline-offset:2px}
.primary{background:var(--red);color:var(--red-ink);text-transform:uppercase}
.primary:hover:not(:disabled){filter:brightness(.92)}
.primary:disabled{opacity:.4;cursor:not-allowed}
.ghost{background:transparent;color:var(--ink-2);border-color:var(--lt-grey)}
.ghost:hover{border-color:var(--ink)}
.tiny{font-size:11px;padding:3px 8px;letter-spacing:.02em}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.hint{font-size:13px;color:var(--ink-3)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:13px var(--font);letter-spacing:0;background:transparent;border:1.5px solid var(--lt-grey);color:var(--ink-2);border-radius:18px;padding:5px 12px}
.chip:hover{border-color:var(--red);color:var(--red)}

.out{min-height:130px;border:1.5px solid var(--lt-grey);border-radius:6px;background:var(--panel);padding:16px 18px}
.out .ph{color:var(--ink-3)}
.answer{max-width:70ch}
.answer p{margin:0 0 .75em}
.answer ul{margin:0 0 .75em;padding-left:1.2em}
.answer li::marker{color:var(--red)}
.answer strong{font-family:var(--font-b)}
.answer code{font-family:var(--mono);font-size:.92em}
.progress{font-size:12.5px;line-height:1.5;color:var(--ink-3);display:flex;flex-direction:column;gap:2px;margin-bottom:12px}
.progress div::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;border:2px solid var(--red);margin-right:8px;vertical-align:0}
.thinking::after{content:"";display:inline-block;width:1.2em;text-align:left;animation:dots 1.2s steps(4) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
@media (prefers-reduced-motion: reduce){.thinking::after{animation:none;content:"…"}}
.srcs{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.srcs h3{font:700 12px var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0}
.srcs ol{margin:0 0 6px;padding-left:1.5em;display:flex;flex-direction:column;gap:4px;font-size:14px}
.srcs li::marker{color:var(--red);font-family:var(--font-b)}
.srcs a{overflow-wrap:anywhere}
.srcs .late{color:var(--red);font-family:var(--font-b);font-weight:700}
.srcs small{display:block;color:var(--ink-3);font-size:11.5px;overflow-wrap:anywhere}
.msg{border-radius:6px;padding:10px 14px;font-size:14px}
.msg.err{background:var(--red-soft);color:var(--red)}
.msg.warn{background:var(--warn-soft);color:var(--warn)}
.note{font-size:12.5px;color:var(--warn);margin-top:8px}
.mailbar{margin-top:32px;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;background:var(--band);border-radius:6px;padding:14px 18px}
.mailbar .hint.ok{color:var(--ok)} .mailbar .hint.err{color:var(--red)}
footer{margin-top:44px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:4px 16px;justify-content:space-between}
@media (max-width:560px){
  .logo{height:42px}
  .acct{margin-left:0;width:100%}
  .pop{left:0;right:auto}
  h1{font-size:24px}
  .flow{padding-left:38px} .node{left:-38px;width:26px;height:26px;font-size:12px} .flow::before{left:11px}
  .opt{grid-template-columns:3.6em 1fr} .opt .dt,.opt .kd{grid-column:2}
  .plate{grid-template-columns:1fr} .plate .pn{grid-row:auto;font-size:28px}
}



/* ---------- Besprechungsprotokoll ---------- */
[hidden]{display:none!important}
span.lbl{font:700 12px var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
input[type=date],input[type=time],select{width:100%;font:16px/1.4 var(--font);color:var(--ink);background:var(--field);border:1.5px solid var(--lt-grey);border-radius:6px;padding:11px 12px;min-width:0}
input[type=date]:focus,input[type=time]:focus,select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.headrow{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:6px}
.headrow h1{margin:0}
.ht{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 24px;min-width:0}
.ht .src{margin:0;max-width:420px}
.headact{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 16px}
.headact .primary b{font-size:1.25em;line-height:0;margin-right:6px;vertical-align:-1px}
.tabs{display:inline-flex;border:1.5px solid var(--lt-grey);border-radius:6px;overflow:hidden;background:var(--bg)}
.tabs button{border:0;border-radius:0;background:transparent;color:var(--ink-2);padding:9px 20px;text-transform:uppercase;letter-spacing:.08em;font-size:13px}
.tabs button + button{border-left:1.5px solid var(--lt-grey)}
.tabs button[aria-selected=true]{background:var(--red);color:var(--red-ink)}
.tabs button:not([aria-selected=true]):hover{color:var(--red)}
.lead{margin-top:10px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px 16px}
.grid .wide{grid-column:1 / -1}
.fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.chipsIn{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1.5px solid var(--lt-grey);border-radius:6px;padding:6px 8px;background:var(--field);cursor:text}
.chipsIn:focus-within{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.pchip{display:inline-flex;align-items:center;gap:2px;background:var(--band);border:1px solid var(--line);border-radius:16px;padding:3px 4px 3px 11px;font-size:14px;max-width:100%;overflow-wrap:anywhere}
.pchip button{background:none;border:0;padding:0 6px;font:400 17px/1 var(--font);color:var(--ink-3)}
.pchip button:hover{color:var(--red)}
.chipsIn input[type=text]{border:0;box-shadow:none;padding:6px 4px;flex:1;min-width:12ch;width:auto;background:transparent}
.chipsIn input[type=text]:focus{box-shadow:none}
.sugg{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.sugg .chip{font-size:12.5px;padding:3px 10px}

.pts{display:flex;flex-direction:column;gap:14px}
.pt{border:1.5px solid var(--lt-grey);border-radius:6px;background:var(--panel);padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:border-color .12s,background .12s}
.pt.drag{border-color:var(--red);border-style:dashed;background:var(--red-soft)}
.pt-h{display:flex;gap:10px;align-items:center}
.pt-nr{width:30px;height:30px;border-radius:50%;background:var(--red);color:var(--red-ink);display:grid;place-items:center;font:700 13px/1 var(--font-b);flex:none;font-variant-numeric:tabular-nums}
.pt-h input{flex:1;min-width:0;font-family:var(--font-b);font-weight:700}
.pm{width:34px;height:34px;padding:0;border-radius:50%;font:700 21px/1 var(--font-b);letter-spacing:0;border:2px solid var(--ink);background:var(--bg);color:var(--ink);flex:none;display:grid;place-items:center}
.pm.add:hover{border-color:var(--red);color:var(--red)}
.pm.del:hover{border-color:var(--red);color:var(--red)}
.pm.del.armed{border-color:var(--red);background:var(--red);color:var(--red-ink);width:auto;border-radius:17px;padding:0 12px;font-size:12px;letter-spacing:.04em}
.pt textarea{min-height:96px}
.pt-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.drop{border:1.5px dashed var(--line);border-radius:6px;padding:10px 14px;font-size:13px;color:var(--ink-3);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.drop svg{flex:none;color:var(--red)}
.drop label{cursor:pointer}
.imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.imgs:empty{display:none}
.imgs figure{margin:0;display:flex;flex-direction:column;gap:6px;position:relative;min-width:0}
.imgs img,.imgs .noimg{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:4px;border:1px solid var(--line);background:var(--band);display:block}
.imgs .noimg{display:grid;place-items:center;font-size:12px;color:var(--ink-3);text-align:center;padding:8px}
.imgs input[type=text]{font-size:13px;padding:7px 9px}
.imgs .rm{position:absolute;top:6px;right:6px;width:26px;height:26px;padding:0;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font:400 18px/1 var(--font);border:0}
.imgs .rm:hover{background:var(--red)}
.addpt{align-self:flex-start;display:inline-flex;align-items:center;gap:8px}
.addpt b{font-size:18px;line-height:1}

.actionbar{position:sticky;bottom:env(safe-area-inset-bottom,0px);z-index:6;margin-top:32px;display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;background:var(--band);border-radius:6px;padding:14px 18px;box-shadow:0 -6px 18px rgba(0,0,0,.06)}
.actionbar .hint{flex:1 1 220px;min-width:0}
.actionbar .hint.ok{color:var(--ok)} .actionbar .hint.err{color:var(--red)}
.actionbar .opts{margin:0;flex-basis:100%}
.actionbar .ghost{background:var(--bg)}

.plist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1.5px solid var(--lt-grey);border-radius:6px;overflow:hidden;background:var(--panel)}
.plist li + li{border-top:1px solid var(--line)}
.plist button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:6.4em 1fr auto;gap:2px 14px;align-items:baseline;width:100%;padding:11px 14px;cursor:pointer;border-left:3px solid transparent}
.plist button:hover,.plist button:focus-visible{background:var(--band)}
.plist button[aria-current=true]{background:var(--band);border-left-color:var(--red)}
.plist .d{font:700 14px var(--font-b);color:var(--red);font-variant-numeric:tabular-nums}
.plist .t{font-family:var(--font-b);font-weight:700;overflow-wrap:anywhere}
.plist .s{font-size:12px;color:var(--ink-3);white-space:nowrap}
.plist .w{grid-column:2 / 4;font-size:12.5px;color:var(--ink-3);overflow-wrap:anywhere}
.others{margin-top:12px;font-size:13px;color:var(--ink-3)}
.others ul{margin:6px 0 0;padding-left:1.2em}

/* Protokoll-Ansicht (Lesen) */
.proto{border:1.5px solid var(--lt-grey);border-radius:6px;background:var(--panel);padding:22px 24px;display:flex;flex-direction:column;gap:16px}
.proto .ph{color:var(--ink-3)}
.pv-head{display:grid;grid-template-columns:auto 1fr;gap:2px 16px;align-items:center}
.pv-head .pn{font:700 30px/1 var(--font-b);color:var(--red);grid-row:span 2;font-variant-numeric:tabular-nums}
.pv-head .pb{font:700 17px/1.25 var(--font-b)}
.pv-head .pk{color:var(--ink-3);font-size:14px}
.proto h2{font:700 21px/1.25 var(--font-b);margin:0;text-wrap:balance}
.proto h3{font:700 12px var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:6px 0 0;padding-bottom:6px;border-bottom:3px solid var(--red)}
.pv-meta{display:grid;grid-template-columns:max-content 1fr;gap:4px 18px;margin:0;font-size:14px}
.pv-meta dt{color:var(--ink-3)} .pv-meta dd{margin:0;overflow-wrap:anywhere}
.vpt{display:grid;grid-template-columns:30px 1fr;gap:4px 12px}
.vpt + .vpt{border-top:1px solid var(--line);padding-top:14px}
.vpt .n{width:28px;height:28px;border-radius:50%;border:2.5px solid var(--red);display:grid;place-items:center;font:700 12px/1 var(--font-b);color:var(--red)}
.vpt .b{min-width:0;display:flex;flex-direction:column;gap:6px}
.vpt .tt{font:700 16px/1.3 var(--font-b);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.art{font:700 10.5px/1.2 var(--font-b);letter-spacing:.08em;text-transform:uppercase;border-radius:10px;padding:3px 8px;border:1px solid var(--line);color:var(--ink-2);background:var(--band)}
.art.Aufgabe{background:var(--red-soft);color:var(--red);border-color:transparent}
.art.Beschluss{background:var(--ink);color:var(--bg);border-color:transparent}
.art.Offen{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.vpt .who{font-size:13px;color:var(--ink-3)}
.vpt .who b{color:var(--ink-2);font-family:var(--font-b)}
.vpt .tx p{margin:0 0 .5em} .vpt .tx ul{margin:0 0 .5em;padding-left:1.2em} .vpt .tx li::marker{color:var(--red)}
.vpt figure{margin:6px 0 0;max-width:520px}
.vpt figure img{border-radius:4px;border:1px solid var(--line);display:block}
.vpt figcaption{font-size:12.5px;color:var(--ink-3);margin-top:4px}
.tasks{overflow-x:auto}
.tasks table{width:100%;border-collapse:collapse;font-size:14px}
.tasks th{font:700 11px var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:6px 10px 6px 0;border-bottom:1.5px solid var(--line)}
.tasks td{padding:7px 10px 7px 0;border-bottom:1px solid var(--line);vertical-align:top}
.tasks td:first-child{font-family:var(--font-b);color:var(--red);font-variant-numeric:tabular-nums;width:2.5em}
.tasks td.dt{white-space:nowrap;font-variant-numeric:tabular-nums}
.foreign h1,.foreign h2,.foreign h3{font-family:var(--font-b);margin:.6em 0 .3em;text-transform:none;letter-spacing:0;border:0;color:var(--ink)}
.foreign h1{font-size:22px} .foreign h2{font-size:18px} .foreign h3{font-size:15px}
.foreign p{margin:0 0 .7em} .foreign table{border-collapse:collapse} .foreign td,.foreign th{border:1px solid var(--line);padding:4px 8px}
.pv-foot{font-size:12px;color:var(--ink-3);border-top:1px solid var(--line);padding-top:10px}

/* Werkzeugleiste je Punkt */
.ptools{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ptools button,.ptools label{font:700 12px var(--font-b);letter-spacing:.02em;background:var(--bg);color:var(--ink-2);border:1.5px solid var(--lt-grey);border-radius:14px;padding:4px 11px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.ptools button:hover,.ptools label:hover{border-color:var(--red);color:var(--red)}
.ptools .hint{font-size:12px;margin-left:auto}
.pt textarea{font-size:15px;line-height:1.5;overflow:hidden}
.pt.sticky-top{scroll-margin-top:80px}
.folderlist{margin-top:12px;font-size:13px;color:var(--ink-3)}
.folderlist ul{margin:6px 0 0;padding-left:1.2em}

/* Markdown-Ansicht */
.mdv{max-width:76ch;font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.mdv > :first-child{margin-top:0}
.mdv h1{font:700 22px/1.25 var(--font-b);margin:0 0 6px;text-wrap:balance;letter-spacing:0;text-transform:none}
.mdv h2{font:700 17px/1.3 var(--font-b);margin:26px 0 10px;padding-bottom:6px;border-bottom:3px solid var(--red)}
.mdv h3{font:700 13px/1.3 var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:18px 0 8px}
.mdv h4,.mdv h5,.mdv h6{font:700 14px var(--font-b);margin:14px 0 6px}
.mdv p{margin:0 0 .75em}
.mdv strong{font-family:var(--font-b)}
.mdv code{font-family:var(--mono);font-size:.9em;background:var(--band);border-radius:3px;padding:1px 4px}
.mdv pre{background:var(--band);border-radius:6px;padding:10px 12px;overflow-x:auto}
.mdv pre code{background:none;padding:0}
.mdv ul,.mdv ol{margin:0 0 .75em;padding-left:1.4em}
.mdv li{margin:2px 0}
.mdv li::marker{color:var(--red);font-family:var(--font-b)}
.mdv li.task{list-style:none;margin-left:-1.3em;display:block}
.mdv li.task > input,.mdv li.task > p > input{accent-color:var(--red);margin:0 8px 0 0;vertical-align:-2px;width:15px;height:15px}
.mdv li.task.done{color:var(--ink-3)}
.mdv li.task.done > strong.at,.mdv li.task.done strong.at{background:var(--band);color:var(--ink-3)}
.mdv strong.at{font:700 12px var(--font-b);background:var(--red-soft);color:var(--red);border-radius:10px;padding:1px 7px;white-space:nowrap}
.mdv blockquote{margin:0 0 1em;padding:6px 14px;border-left:3px solid var(--lt-grey);color:var(--ink-3);font-size:13.5px}
.mdv blockquote p{margin:0}
.mdv hr{border:0;border-top:1px solid var(--line);margin:20px 0}
.mdv .tblw{overflow-x:auto;margin:0 0 1em}
.mdv table{border-collapse:collapse;font-size:14px;min-width:50%}
.mdv th,.mdv td{overflow-wrap:normal;word-break:normal;hyphens:manual;text-align:left;padding:6px 12px 6px 0;border-bottom:1px solid var(--line);vertical-align:top}
.mdv th{white-space:nowrap;font:700 11px var(--font-b);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border-bottom-width:1.5px}
.mdv th:empty{padding:0;border:0}
.mdv thead:has(th:empty:only-child),.mdv thead:not(:has(th:not(:empty))){display:none}
.mdv td[align=right],.mdv th[align=right]{text-align:right;font-variant-numeric:tabular-nums}
.mdv figure{margin:8px 0 14px}
.mdv figure img{max-width:100%;border-radius:4px;border:1px solid var(--line);display:block;background:var(--band)}
.mdv figure img.pending{min-width:200px;min-height:90px}
.mdv figcaption{font-size:12.5px;color:var(--ink-3);margin-top:4px}
.mdv a{overflow-wrap:anywhere}

/* Aufgaben-Tabelle je Punkt */
.taskbox{border:1.5px solid var(--lt-grey);border-radius:6px;overflow:hidden;background:var(--bg)}
.task-h,.task-row{display:grid;grid-template-columns:34px minmax(0,2.4fr) minmax(0,1.1fr) minmax(0,1fr) 78px;gap:8px;align-items:start}
.task-h{background:var(--band);padding:8px 10px;font:700 10.5px/1.25 var(--font-b);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.task-row{padding:7px 10px;border-top:1px solid var(--line)}
.task-row input[type=text],.task-row textarea{font-size:14px;padding:8px 10px}
.task-row textarea{min-height:0;margin-top:6px;font-size:13px;color:var(--ink-2)}
.tcell{display:flex;flex-direction:column;min-width:0}
.tdone{display:grid;place-items:center;height:38px;cursor:pointer}
.tdone input{width:18px;height:18px;accent-color:var(--red);margin:0}
.task-row.done .tcell input{text-decoration:line-through;color:var(--ink-3)}
.tpm{display:flex;gap:6px;align-items:center;height:38px}
.pm.sm{width:30px;height:30px;font-size:18px;border-width:1.5px}

/* Personensuche in Teilnehmer/Kopie */
.chipsIn{position:relative}
.plist-ac{top:calc(100% + 4px)}
.opt.ac{grid-template-columns:1fr;gap:0}
.opt.ac .kd{grid-column:1}
.pchip .ptxt{cursor:text}
.pchip .ptxt:hover{text-decoration:underline;text-underline-offset:2px}
#mailLinkW,#mailLinkR{font-family:var(--font-b);font-weight:700}

@media (max-width:560px){
  .pt{padding:12px}
  .pt-meta{grid-template-columns:1fr}
  .task-h{display:none}
  .task-row{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr);grid-template-areas:"d t t" ". w b" ". p p"}
  .task-row .tdone{grid-area:d} .task-row .tcell{grid-area:t} .task-row [data-tf=wer]{grid-area:w} .task-row [data-tf=bis]{grid-area:b} .task-row .tpm{grid-area:p;justify-content:flex-end;height:auto}
  .proto{padding:16px}
  .plist button{grid-template-columns:5.6em 1fr} .plist .s{grid-column:2}
  .actionbar{padding:12px}
  .actionbar button{flex:1 1 auto}
}

/* Gesperrt bis zur Anmeldung: nur Kopf, Anmeldeseite und Fuß sichtbar */
body.locked .wrap > :not(.top):not(.rule):not(.gatePage):not(footer){display:none !important}
body.locked #signin{display:none !important}
body:not(.locked) .gatePage{display:none}
.gatePage{padding:28px 0 56px}
.gatePage .gate{max-width:640px;margin-top:18px}

/* Lesen: zweispaltig wie OneNote – links Kunden (Notizbücher) › Projekte › Protokolle, rechts das Protokoll */
body.mode-r .wrap{max-width:1360px}
.rv{display:grid;grid-template-columns:minmax(270px,350px) minmax(0,1fr);gap:0 32px;align-items:start;margin-top:14px}
/* Seitenleiste: rote Linie mit Kreis als Trenner (Gestaltungselement wie im Kopf) */
.rv-side{position:sticky;top:12px;height:calc(100vh - 24px);min-height:420px;display:flex;flex-direction:column;gap:10px;padding-right:22px;border-right:3px solid var(--red)}
.rv-side::after{content:"";position:absolute;right:-10px;bottom:-2px;width:11px;height:11px;border:3px solid var(--ink);border-radius:50%;background:var(--bg)}
.rv-search{display:flex;flex-direction:column;gap:6px}
.tree-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;min-height:18px}
.tree-s{flex:1;color:var(--ink-3);font-size:12.5px}
.tree-tools{display:flex;gap:6px;flex-wrap:wrap}
.tt{background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--ink-3);font:600 12px/1 var(--font);letter-spacing:.02em;text-transform:none;padding:5px 11px;cursor:pointer}
.tt span{color:var(--red);font-size:10px;margin-right:3px}
.tt:hover,.tt:focus-visible{border-color:var(--red);color:var(--ink);outline:none}
.tt[aria-pressed=true]{border-color:var(--red);color:var(--red);background:var(--red-soft)}
.tt:disabled{opacity:.45;cursor:default;border-color:var(--line);color:var(--ink-3);background:transparent}
.tree-b{flex:1 1 auto;min-height:120px;overflow-y:auto;margin:0 -6px;padding:0 6px}
.tree details + details{border-top:1px solid var(--line)}
.tree summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:4px}
.tree summary::-webkit-details-marker{display:none}
.tree summary:hover,.tree summary:focus-visible{background:var(--band);outline:none}
.tree .kd > summary{padding:10px 8px}
.tree .kb{width:30px;height:30px;flex:none;border-radius:50%;border:2.5px solid var(--red);display:grid;place-items:center;font:700 11px/1 var(--font-b);color:var(--ink);background:var(--bg);letter-spacing:0}
.tree .kd[open] > summary .kb{background:var(--red);color:var(--red-ink)}
.tree .kn{font-weight:700;line-height:1.25;overflow-wrap:anywhere}
.tree .cnt{margin-left:auto;color:var(--ink-3);font-size:12px;white-space:nowrap;padding-left:6px}
.tree .proj > summary{padding-left:48px;align-items:baseline}
.tree .proj > summary::before{content:"▸";color:var(--red);width:.8em;flex:none;margin-left:-16px}
.tree .proj[open] > summary::before{content:"▾"}
.tree .proj.cur > summary{background:var(--band);box-shadow:inset 3px 0 var(--red)}
.tree .pnr{color:var(--red);font-weight:700;font-variant-numeric:tabular-nums}
.tree .pbz{line-height:1.3;overflow-wrap:anywhere}
.tree ul{list-style:none;margin:0;padding:2px 0 8px}
.tree li button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:5.4em minmax(0,1fr) auto;gap:10px;align-items:baseline;width:100%;padding:6px 8px 6px 48px;border-radius:4px;cursor:pointer;font-size:14px}
.tree li button:hover,.tree li button:focus-visible{background:var(--band)}
.tree li button[aria-current=true]{background:var(--red-soft);box-shadow:inset 3px 0 var(--red)}
.tree li .t{overflow-wrap:anywhere}
.tree .d{color:var(--ink-3);font-size:12.5px;font-variant-numeric:tabular-nums}
.tree .op{color:var(--red);font-size:11.5px;font-weight:700;white-space:nowrap}
.tree .none{padding:12px 8px;color:var(--ink-3);font-size:13.5px}
.tree-more{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:2px}
.tree-more .lbl{margin-bottom:2px}
.tree-more button{all:unset;cursor:pointer;padding:6px 8px;border-radius:4px;font-size:13.5px;line-height:1.3}
.tree-more button:hover,.tree-more button:focus-visible{background:var(--band)}
.tree-more small{display:block;color:var(--ink-3);font-size:12px}
/* Hauptbereich */
.rv-main{min-width:0;display:flex;flex-direction:column;gap:16px}
.rv-main .actionbar{margin-top:6px}
.rv-empty{border:1.5px dashed var(--lt-grey);border-radius:6px;padding:48px 28px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--ink-3)}
.rv-empty b{font:700 16px/1.3 var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.rv-empty::before{content:"";width:34px;height:34px;border-radius:50%;border:3px solid var(--red)}
.rv-plate{background:var(--band);border-radius:6px;padding:14px 18px;display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap}
.rv-plate .pn{font:700 30px/1 var(--font-b);color:var(--red);font-variant-numeric:tabular-nums}
.rv-plate .rvt{flex:1 1 240px;min-width:0}
.rv-plate .pb{font:700 18px/1.25 var(--font-b)}
.rv-plate .pk{color:var(--ink-2);font-size:13.5px;margin-top:2px}
.rv-plate a{font-size:13px;white-space:nowrap}
.rv-sub{font:700 12px var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}
.rv-sub span{font:400 12.5px var(--font);letter-spacing:0;text-transform:none;color:var(--ink-3);margin-left:8px}
.rv-view{display:flex;flex-direction:column;gap:10px}
.rv-view > .linkbtn{align-self:flex-start}
@media (max-width:900px){
  .rv{grid-template-columns:1fr;gap:22px}
  .rv-side{position:relative;top:auto;height:auto;min-height:0;border-right:0;padding-right:0;padding-bottom:16px;border-bottom:3px solid var(--red)}
  .rv-side::after{right:-2px;bottom:-9px}
  .tree-b{max-height:55vh}
}

/* Texteditor im Besprechungspunkt (ohne Markdown-Symbole) */
.ptools .sep{width:1px;height:18px;background:var(--line);margin:0 2px}
.ptools button[data-cmd]{min-width:30px;justify-content:center}
.ptools button[aria-pressed=true]{border-color:var(--red);color:var(--red);background:var(--red-soft)}
.rte{min-height:110px;font:16px/1.5 var(--font);color:var(--ink);background:var(--field);border:1.5px solid var(--lt-grey);border-radius:6px;padding:12px 14px;overflow-wrap:anywhere;cursor:text}
.rte:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.rte.empty::before{content:attr(data-ph);color:var(--ink-3);pointer-events:none;position:absolute}
.rte > :first-child{margin-top:0} .rte > :last-child{margin-bottom:0}
.rte p{margin:0 0 .55em}
.rte h1,.rte h2,.rte h3,.rte h4{font:700 13px/1.3 var(--font-b);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:14px 0 6px}
.rte ul,.rte ol{margin:0 0 .55em;padding-left:1.5em}
.rte li{margin:2px 0}
.rte li::marker{color:var(--red);font-family:var(--font-b)}
.rte a{color:var(--red)}
.rte strong,.rte b{font-family:var(--font-b)}
.rte figure.rimg{position:relative;margin:10px 0;max-width:460px;display:flex;flex-direction:column;gap:6px;user-select:none}
.rte figure.rimg img,.rte figure.rimg .noimg{width:100%;border-radius:4px;border:1px solid var(--line);background:var(--band);display:block}
.rte figure.rimg .noimg{aspect-ratio:4 / 3;display:grid;place-items:center;font-size:12px;color:var(--ink-3);text-align:center;padding:8px}
.rte figure.rimg .cap{font-size:13px;padding:6px 9px;user-select:text}
.rte figure.rimg .rm{position:absolute;top:6px;right:6px;width:26px;height:26px;padding:0;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font:400 18px/1 var(--font);border:0;cursor:pointer}
.rte figure.rimg .rm:hover{background:var(--red)}
.rte .raw{margin:8px 0;padding:8px 12px;border:1.5px dashed var(--lt-grey);border-radius:6px;background:var(--band);font-size:13.5px;user-select:none}
.rte .raw table{border-collapse:collapse} .rte .raw td,.rte .raw th{padding:3px 10px 3px 0;border-bottom:1px solid var(--line);text-align:left}
.rte .raw pre{margin:0;white-space:pre-wrap;font:12.5px var(--mono)}
.rte .raw blockquote{margin:0;color:var(--ink-3)}

/* Editor zweispaltig: links Projekt und Kopfdaten (einklappbar), rechts die Besprechungspunkte */
.wv{display:grid;grid-template-columns:minmax(320px,400px) minmax(0,1fr);gap:0 32px;align-items:start;margin-top:14px}
.wv.collapsed{grid-template-columns:46px minmax(0,1fr)}
.wv .wside{grid-column:1;grid-row:1;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:0 22px 12px 0;border-right:3px solid var(--red)}
.wv .wmain{grid-column:2;grid-row:1}
.wside-body{display:flex;flex-direction:column;gap:18px}
.wside-bar{display:flex;align-items:center;gap:10px;min-width:0}
.wtoggle{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--ink-3);font:600 12px/1 var(--font);text-transform:none;letter-spacing:.02em;padding:5px 11px;cursor:pointer;flex:none}
.wtoggle span[aria-hidden]{color:var(--red);font-size:14px;line-height:.8}
.wtoggle:hover,.wtoggle:focus-visible{border-color:var(--red);color:var(--ink);outline:none}
.wmini{display:none;min-width:0;font-size:12.5px;color:var(--ink-3)}
.wmini b{color:var(--red);font-family:var(--font-b)}
.wv.collapsed .wside{padding-right:8px;overflow:visible;height:calc(100vh - 24px);min-height:260px}
.wv.collapsed .wside-body{display:none}
.wv.collapsed .wside-bar{flex-direction:column;align-items:center;gap:14px}
.wv.collapsed .wt-l{display:none}
.wv.collapsed .wtoggle{padding:6px 9px}
.wv.collapsed .wmini{display:block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;overflow:hidden;max-height:calc(100vh - 110px);text-overflow:ellipsis}
.wside .step{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px}
.wside .step > *{grid-column:1 / -1}
.wside .step > .node{grid-column:1;grid-row:1;position:static;width:24px;height:24px;font-size:11px;border-width:2.5px}
.wside .step > .step-h{grid-column:2;grid-row:1}
.wside .step-h{flex-wrap:nowrap;align-items:center;min-height:24px;gap:0 8px}
.wside .step-t{font-size:14px;padding-top:0}
.wside .step-d{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.wside .grid{grid-template-columns:1fr 1fr;gap:8px 10px}
.wside .plate{padding:12px 14px}
.wside .plate .pn{font-size:26px}
.wside .plate .pb{font-size:16px}
.wside .plate dl{font-size:12px;gap:2px 14px;margin-top:6px}
.wside .step.off > :not(.node){opacity:1}
/* Ablageort bei den Projektordnern */
.folder .roots{gap:2px}
.folder .roots li{flex-wrap:nowrap;align-items:flex-start;gap:6px;padding:4px 6px;border-radius:4px}
.folder .roots li::before{display:none}
.folder .roots li:has(input:checked){background:var(--bg);box-shadow:inset 3px 0 var(--red)}
.folder .roots label{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;flex:1;min-width:0;cursor:pointer}
.folder .roots input{accent-color:var(--red);margin:0;align-self:center}
.folder .roots .rn{font:700 13.5px var(--font-b);color:var(--ink)}
.folder .roots small{flex-basis:100%;padding-left:21px;font-size:11.5px}
.folder .roots a{font-size:13px;text-decoration:none;padding:0 2px}
/* Felder kompakter */
input[type=text],input[type=date],input[type=time],textarea,select{font-size:15px;padding:7px 10px}
.chipsIn{padding:3px 6px;gap:4px}
.chipsIn input[type=text]{padding:4px 4px}
.rte{min-height:84px;padding:8px 10px;font-size:15px}
.fld{gap:4px}
.lbl{font-size:11px}
.pt{padding:12px 14px;gap:8px}
.pt-h input{padding:7px 10px}
@media (max-width:1000px){
  .wv,.wv.collapsed{grid-template-columns:1fr;gap:22px}
  .wv .wmain,.wv .wside{grid-column:1;grid-row:auto}
  .wv .wside,.wv.collapsed .wside{position:static;max-height:none;height:auto;min-height:0;overflow:visible;border-right:0;padding:0 0 16px;border-bottom:3px solid var(--red)}
  .wv.collapsed .wside-bar{flex-direction:row}
  .wv.collapsed .wmini{writing-mode:horizontal-tb;transform:none;max-height:none}
  .wside .grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
}

/* Übersicht: linke Spalte einklappbar (wie im Editor) */
.rv-side-body{display:flex;flex-direction:column;gap:10px;flex:1 1 auto;min-height:0}
.rv-side-body .tree-b{flex:1 1 auto}
.rv.collapsed{grid-template-columns:46px minmax(0,1fr)}
.rv.collapsed .rv-side{padding-right:8px;min-height:260px}
.rv.collapsed .rv-side-body{display:none}
.rv.collapsed .wside-bar{flex-direction:column;align-items:center;gap:14px}
.rv.collapsed .wt-l{display:none}
.rv.collapsed .wtoggle{padding:6px 9px}
.rv.collapsed .wmini{display:block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;overflow:hidden;max-height:calc(100vh - 110px);text-overflow:ellipsis}
@media (max-width:900px){
  .rv.collapsed{grid-template-columns:1fr}
  .rv.collapsed .rv-side{min-height:0}
  .rv.collapsed .wside-bar{flex-direction:row}
  .rv.collapsed .wmini{writing-mode:horizontal-tb;transform:none;max-height:none}
}

/* Druck: nur das Protokoll, A4 hoch, Bilder und Tabellen auf Seitenbreite begrenzt */
.print-area{display:none}
@media print{
  /* Rand 0: so blendet der Browser seine Kopf-/Fußzeilen (Datum, Adresse, Seitenzahl) aus; Ränder kommen aus .pr-page */
  @page{size:A4 portrait;margin:0}
  .pr-page{width:100%;border-collapse:collapse}
  .pr-page > thead > tr > td,.pr-page > tfoot > tr > td,.pr-page > tbody > tr > td{padding:0 15mm;border:0;vertical-align:top}
  .pr-sp-top{height:13mm}
  .pr-foot{height:14mm;display:flex;align-items:center;border-top:.3mm solid #D9D9D8;margin-top:3mm;font-size:7.5pt;color:#6B6B69}
  html,body{background:#fff !important;color:#000}
  body .wrap{max-width:none;padding:0;margin:0}
  body .wrap > :not(.print-area){display:none !important}
  .print-area{display:block !important;font-size:10.5pt}
  .pr-head{display:flex;align-items:center;padding-bottom:3mm;margin-bottom:5mm;border-bottom:.8mm solid #CD001A}
  .pr-head svg{height:13mm;width:auto;color:#000}
  .print-area .mdv{max-width:none;font-size:10.5pt;line-height:1.45}
  .print-area .mdv figure{break-inside:avoid;page-break-inside:avoid;margin:2mm 0 4mm}
  .print-area .mdv figure img{max-width:100%;max-height:115mm;width:auto;height:auto;object-fit:contain}
  .print-area .mdv .tblw{overflow:visible}
  .print-area .mdv table{width:100%;font-size:9pt;table-layout:auto}
  .print-area .mdv tr{break-inside:avoid;page-break-inside:avoid}
  .print-area .mdv h1,.print-area .mdv h2,.print-area .mdv h3{break-after:avoid;page-break-after:avoid}
  .print-area .mdv a{color:#000;text-decoration:none}
  .print-area .mdv pre,.print-area .mdv code{white-space:pre-wrap;overflow-wrap:anywhere}
  .print-area .mdv td,.print-area .mdv th{overflow-wrap:break-word}
}

/* Offline-Anzeige und Warteschlange im Kopf */
.net{display:flex;align-items:baseline;gap:4px 12px;flex-wrap:wrap;font-size:12.5px}
.net-off{font:700 12px var(--font-b);color:var(--red);letter-spacing:.04em}
.headrow{position:relative}
.qpanel{position:absolute;z-index:25;top:calc(100% + 6px);left:0;width:min(560px,calc(100vw - 32px));background:var(--panel);border:1.5px solid var(--lt-grey);border-top:3px solid var(--red);border-radius:6px;box-shadow:0 14px 36px rgba(0,0,0,.18);padding:12px 14px;font-size:13.5px}
.qpanel .q-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.qpanel .ghost.sm{padding:5px 12px;font-size:12px}
.qpanel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.qpanel li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.qpanel .q-a{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none}
.qpanel .q-st{font-size:12px;color:var(--ink-3);margin-top:2px}
.qpanel .q-konflikt,.qpanel .q-fehler{color:var(--red)}
.qpanel .muted{color:var(--ink-3)}
.qpanel .linkbtn.armed{color:var(--red);font-weight:700}
@media print{ .qpanel,.net{display:none !important} }

/* Dokumentarten: Neu-Knopf mit Auswahl, Kennzeichen, Filter, Stundenaufstellung */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.newsplit{position:relative;display:inline-flex;align-items:stretch}
.newsplit #btnNewTop{border-top-right-radius:0;border-bottom-right-radius:0}
.newsplit .more{border-top-left-radius:0;border-bottom-left-radius:0;border-left:1.5px solid rgba(255,255,255,.45);padding:10px 12px}
.newmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:260px;background:var(--panel);border:1.5px solid var(--lt-grey);border-top:3px solid var(--red);border-radius:6px;box-shadow:0 14px 36px rgba(0,0,0,.18);padding:4px 0;display:flex;flex-direction:column}
.newmenu button{all:unset;box-sizing:border-box;display:grid;grid-template-columns:7.2em 1fr;gap:0 10px;align-items:baseline;padding:8px 14px;cursor:pointer;font:700 13.5px/1.3 var(--font-b);color:var(--ink);border-left:3px solid transparent}
.newmenu button small{grid-column:2;font:400 11.5px var(--font);color:var(--ink-3)}
.newmenu button:hover,.newmenu button:focus-visible{background:var(--band);border-left-color:var(--red)}
.ty{display:inline-block;font:700 10px/1.5 var(--font-b);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);background:var(--band);border:1px solid var(--line);border-radius:3px;padding:0 5px;margin-right:6px;vertical-align:1px;white-space:nowrap}
.newmenu .ty{margin:0;text-align:center;align-self:center}
.ty[data-typ=Besprechungsprotokoll]{color:var(--red-ink);background:var(--red);border-color:var(--red)}
.ty[data-typ=Telefonnotiz],.ty[data-typ=Checkliste]{border-color:var(--red);color:var(--red);background:var(--bg)}
.tree-typ{display:flex;gap:6px;flex-wrap:wrap}
.tree-typ .tt small{color:var(--ink-3);font-size:11px;margin-left:2px}
.tree-typ .tt[aria-pressed=true] small{color:var(--red)}
.stdbox{border:1.5px solid var(--lt-grey);border-radius:6px;overflow:hidden;background:var(--panel)}
.std-h,.std-row{display:grid;grid-template-columns:minmax(130px,1.3fr) minmax(0,2fr) 72px minmax(0,1.1fr) 70px;gap:8px;align-items:center}
.std-h{background:var(--band);padding:8px 10px;font:700 10.5px/1.25 var(--font-b);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.std-row{padding:7px 10px;border-top:1px solid var(--line)}
.std-row input[type=text]{font-size:14px;padding:7px 10px}
.std-row [data-sf=h]{text-align:right;font-variant-numeric:tabular-nums}
.std-row .tpm{display:flex;gap:6px;justify-content:flex-end}
.std-sum{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;justify-content:flex-end;padding:9px 12px;border-top:2px solid var(--red);background:var(--band);font-size:13px;color:var(--ink-3)}
.std-sum b{font:700 14px var(--font-b);color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:760px){
  .std-h{display:none}
  .std-row{grid-template-columns:minmax(0,1fr) 80px;grid-template-areas:"b h" "t t" "n p"}
  .std-row [data-sf=bereich]{grid-area:b} .std-row [data-sf=h]{grid-area:h} .std-row [data-sf=text]{grid-area:t} .std-row [data-sf=note]{grid-area:n} .std-row .tpm{grid-area:p}
}

/* Dokument verwalten: Kopieren, Verschieben, Löschen */
.docact{display:inline-flex;flex-wrap:wrap;gap:10px}
.ghost.danger:hover:not(:disabled),.ghost.danger.armed{border-color:var(--red);color:var(--red)}
.ghost.danger.armed{background:var(--red-soft)}
.ghost:disabled{opacity:.45;cursor:not-allowed}
.dlg{border:1.5px solid var(--lt-grey);border-top:3px solid var(--red);border-radius:6px;box-shadow:0 18px 48px rgba(0,0,0,.25);padding:16px 18px 18px;width:min(520px,calc(100vw - 32px));background:var(--panel);color:var(--ink);font-size:14px}
.dlg::backdrop{background:rgba(0,0,0,.35)}
.dlg .pop-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.dlg .pop-h b{font:700 14px var(--font-b);letter-spacing:.08em;text-transform:uppercase}
.xfer-doc{display:flex;flex-direction:column;gap:2px;margin:0 0 14px;padding:10px 12px;background:var(--band);border-radius:6px;overflow-wrap:anywhere}
.xfer-doc span{font-size:12.5px;color:var(--ink-2)} .xfer-doc .muted{color:var(--ink-3);margin-top:4px}
.dlg input[type=text]{margin-top:6px}
.xfer-list{display:flex;flex-direction:column;margin:6px 0 10px;max-height:240px;overflow-y:auto}
.xfer-list button{all:unset;cursor:pointer;padding:7px 10px;border-radius:4px;font-size:13.5px;line-height:1.3;border-left:3px solid transparent}
.xfer-list button small{display:block;color:var(--ink-3);font-size:12px}
.xfer-list button:hover,.xfer-list button:focus-visible{background:var(--band)}
.xfer-list button[aria-pressed=true]{background:var(--red-soft);border-left-color:var(--red)}
.xfer-list .pnr{color:var(--red)}
.xfer-list .muted{color:var(--ink-3);font-size:13px;padding:4px 2px}
.xfer-roots{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.xfer-roots label{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;cursor:pointer}
.xfer-roots input{accent-color:var(--red);margin-top:3px}
.xfer-roots small{display:block;color:var(--ink-3);font-size:12px}
.xfer-act{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}

/* Gewerk zwischen Kunde und Projekt (Ordner über dem Projektordner) */
.tree .gw > summary{padding-left:48px;align-items:center}
.tree .gw .gi{width:16px;height:12px;flex:none;border:2px solid var(--red);border-radius:2px 3px 3px 3px;position:relative;margin-top:2px}
.tree .gw .gi::before{content:"";position:absolute;left:-2px;top:-5px;width:7px;height:3px;border:2px solid var(--red);border-bottom:0;border-radius:2px 2px 0 0}
.tree .gw[open] > summary .gi{background:var(--red-soft)}
.tree .gw .gn{font-weight:700;font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.tree .gw .proj > summary{padding-left:72px}
.tree .gw .proj li button{padding-left:72px}
.tree .gw + .proj,.tree .gw + .gw,.tree .proj + .gw{border-top:1px solid var(--line)}
.rv-plate .gwn{font-family:var(--font-b);font-weight:700}

/* Fotodokumentation: große Knöpfe fürs Handy, je Foto Vorschau + Bezeichnung */
.foto-add{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;margin-bottom:12px}
.fbtn{display:inline-flex;align-items:center;gap:8px;font:700 15px var(--font-b);letter-spacing:.04em;border-radius:6px;border:1.5px solid transparent;padding:14px 22px;cursor:pointer;min-height:52px}
.fbtn.ghost{border-color:var(--lt-grey);color:var(--ink-2)}
.fbtn:focus-within{outline:3px solid var(--red-soft);outline-offset:2px}
.foto-cnt{font-size:13px;color:var(--ink-3)}
.fotos{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}
.foto{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:12px;align-items:center;border:1.5px solid var(--lt-grey);border-radius:6px;padding:8px;background:var(--panel)}
.foto.missing{border-color:var(--red)}
.foto.missing input{border-color:var(--red)}
.fthumb{width:132px;height:99px;border-radius:4px;background:var(--band);display:grid;place-items:center;overflow:hidden;font-size:11px;color:var(--ink-3);text-align:center}
.fthumb img{width:100%;height:100%;object-fit:cover;display:block}
.fbody{display:flex;flex-direction:column;gap:6px;min-width:0}
.fnr{font:700 12px var(--font-b);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.fnr small{font:400 11.5px var(--font);letter-spacing:0;text-transform:none;color:var(--warn)}
.foto input[type=text]{font-size:16px;padding:10px 12px}
.fact{display:flex;gap:6px}
.fact .pm.del.armed{width:auto;border-radius:16px;padding:0 10px;font-size:12px;background:var(--red);color:var(--red-ink);border-color:var(--red)}
.fact .pm:disabled{opacity:.3;cursor:default}
@media (max-width:640px){
  .foto{grid-template-columns:96px minmax(0,1fr);grid-template-areas:"t b" "a a"}
  .fthumb{width:96px;height:72px;grid-area:t} .fbody{grid-area:b} .fact{grid-area:a;justify-content:flex-end}
  .fbtn{flex:1 1 auto;justify-content:center}
  .foto-add2{position:sticky;bottom:8px;z-index:5}
}
.mdv img[data-name]{cursor:zoom-in}
.offmark{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin-top:8px}
.offmark .ghost.sm{padding:6px 12px;font-size:12.5px}
.offmark .ghost[aria-pressed=true]{border-color:var(--ok);color:var(--ok)}
.offmark small{color:var(--ink-3);font-size:12px}
.offpicks{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin-top:8px;font-size:13px}
.offpicks .lbl{width:100%}

/* Marke LEITSTAND: Symbol + Name, Unterzeile */
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand .appicon{flex:none;border-radius:22%;display:block}
.brand h1{margin:0;letter-spacing:.12em}
.brand-s{font:700 11px/1.3 var(--font-b);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-top:3px}
.ht{align-items:center}
.gatePage .brand{margin-bottom:14px}
.gatePage .brand h1{font-size:36px}
@media (max-width:520px){ .brand .appicon{width:34px;height:34px} .brand h1{font-size:24px} }

/* Handy: Aktionsleiste kompakt – Hauptaktion + „Mehr“, der Rest klappt bei Bedarf auf */
.more-btn{display:none}
@media (max-width:760px){
  .actionbar{padding:8px 10px;gap:8px;margin-top:20px}
  .actionbar .more-btn{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:10px 14px}
  .actionbar .more-btn span{font-size:18px;line-height:0}
  .actionbar > .primary{flex:1 1 0;padding:12px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
  .actionbar:not(.open) > :not(.primary):not(.more-btn):not(.hint):not(.mlink){display:none !important}
  .actionbar .hint{flex:1 1 100%;order:5;font-size:12.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .actionbar.open .hint{-webkit-line-clamp:unset}
  .actionbar.open{max-height:75vh;overflow-y:auto}
  .actionbar.open > button:not(.primary):not(.more-btn),.actionbar.open .docact > button{flex:1 1 calc(50% - 8px);padding:10px 8px;font-size:13px}
  .actionbar .docact{display:contents}
  .actionbar.open .more-btn{border-color:var(--red);color:var(--red)}
  .actionbar .opts{order:6}
}
