/* 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:900px;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)}
