/* Logistik-Modul (Bestände, Bestellungen, Artikel) — ergänzt board.css */
/* Kontrollzeile der Logistik-Seiten: viele Schalter -> umbrechen statt seitlich scrollen (sonst wird der Nutzer-Chip rechts abgeschnitten) */
.ctl{flex-wrap:wrap;overflow:visible;row-gap:8px}
.ctl .seg button,.ctl .sel b{white-space:nowrap}
.ctl .search{min-width:140px;flex:1 1 160px;max-width:280px}
.auth{margin-left:auto;display:flex;gap:6px;align-items:center;flex:none}
.auth input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 9px;font:500 12.5px var(--sans);color:var(--ink);width:150px}
.auth .who{font:500 11.5px var(--mono);color:var(--ink-3);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 11px;white-space:nowrap}
.auth .msg{font-size:12px;color:var(--bad)}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:6px 12px;font:600 12.5px var(--sans);color:var(--ink);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;line-height:1.3}
.btn:hover{border-color:var(--line-2)}
.btn.pri{background:var(--brand-ink);border-color:var(--brand-ink);color:#fff}.btn.pri:hover{background:var(--brand)}
.btn.good{background:var(--good-soft);border-color:#CFE2D4;color:var(--good)}
.btn.danger{color:var(--bad)}
.btn.sm{padding:3px 9px;font-size:11.5px;border-radius:7px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.inp,select.inp,textarea.inp{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 9px;font:500 13px var(--sans);color:var(--ink)}
.inp.n{text-align:right;font-variant-numeric:tabular-nums;width:88px}
.inp.sm{padding:3px 7px;font-size:12px}
textarea.inp{width:100%;min-height:120px;font-family:var(--mono);font-size:12px;line-height:1.5}
.search{min-width:200px}
.hint{font-size:12px;color:var(--ink-3)}
/* Tabellen */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-top:var(--gap);overflow:auto}
.card h2{font-size:13px;letter-spacing:.02em;margin:0 0 4px;font-weight:700}
.card .sub{margin:0 0 10px}
.tbl.lg{font-size:13px;white-space:nowrap}
.tbl.lg th{position:sticky;top:0;background:var(--surface);z-index:2}
.tbl.lg td.l,.tbl.lg th.l{text-align:left}
.tbl.lg td .sku{display:block;font:500 10.5px var(--mono);color:var(--ink-4);letter-spacing:.02em}
.tbl.lg tr.grp td{background:var(--surface-2);font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:5px 8px}
.tbl.lg tr:hover td{background:#FBF8F3}
.tbl.lg tr.sel{display:table-row;background:none;border:0;border-radius:0;padding:0;gap:0;font-size:inherit;font-weight:inherit}   /* board.css kennt .sel als Kopfleisten-Box – hier nur die Zeile färben */
.tbl.lg tr.sel td{background:var(--brand-soft)}
.tbl.lg td.neg{color:var(--bad);font-weight:700}
.tbl.lg td.dim{color:var(--ink-4)}
.tbl.lg .chk{width:16px;height:16px;accent-color:var(--brand)}
.tbl.lg input.inp{width:76px}
/* Ampel + Status */
.st.kritisch{background:var(--bad-soft);color:var(--bad)}.st.kritisch i{background:var(--bad)}
.st.niedrig{background:var(--warn-soft);color:var(--warn)}.st.niedrig i{background:var(--gold)}
.st.ok{background:var(--good-soft);color:var(--good)}.st.ok i{background:var(--good)}
.stp{display:inline-flex;align-items:center;gap:6px;font:600 11.5px var(--sans);padding:3px 9px;border-radius:999px;white-space:nowrap;border:1px solid transparent}
.stp i{width:7px;height:7px;border-radius:50%;background:currentColor}
.stp.entwurf{background:var(--surface-2);color:var(--ink-3)}
.stp.bestellt{background:#E8ECF7;color:var(--c3)}
.stp.bestaetigt{background:var(--warn-soft);color:var(--gold-ink)}
.stp.geliefert{background:var(--good-soft);color:var(--good)}
.stp.storniert{background:var(--bad-soft);color:var(--bad);text-decoration:line-through}
.tend{font-weight:700}.tend.steigend{color:var(--good)}.tend.fallend{color:var(--bad)}.tend.stabil{color:var(--ink-4)}
/* Reichweite-Balken */
.rw{display:inline-flex;align-items:center;gap:8px;min-width:150px}
.rw .trk{position:relative;flex:1;height:8px;background:var(--surface-2);border-radius:4px;min-width:80px}
.rw .trk i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--good)}
.rw .trk i.warn{background:var(--gold)}.rw .trk i.bad{background:var(--bad)}
.rw .trk b{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink-4)}
.rw .trk b.ziel{background:var(--ink)}
.rw span{font-weight:600;min-width:52px;text-align:right}
/* Auswahl-Leiste */
.selbar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--brand-ink);color:#fff;border-radius:14px;padding:10px 12px 10px 18px;display:none;gap:14px;align-items:center;box-shadow:0 14px 40px rgba(53,9,18,.3);z-index:60;font-size:13px}
.selbar.on{display:flex}
.selbar .btn{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff}.selbar .btn.pri{background:#C59A3D;border-color:#C59A3D;color:#3B0211}
/* Modal + Toast */
.mo-ov{position:fixed;inset:0;background:rgba(30,12,17,.45);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:100;padding:16px}
.mo{background:var(--surface);border-radius:16px;border:1px solid var(--line);width:min(880px,100%);max-height:92vh;overflow:auto;box-shadow:0 24px 70px rgba(53,9,18,.25)}
.mo .mh{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:3}
.mo .mh h3{margin:0;font-size:16px;letter-spacing:-.01em}
.mo .mh .x{margin-left:auto;border:0;background:transparent;font-size:20px;cursor:pointer;color:var(--ink-3)}
.mo .mb{padding:16px 20px}
.mo .mf{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:14px 20px;border-top:1px solid var(--line);position:sticky;bottom:0;background:var(--surface);flex-wrap:wrap}
.mo .mf .left{margin-right:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.frm{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.frm label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-3);font-weight:600}
.frm label .inp{width:100%}
.steps{display:flex;gap:0;margin:4px 0 14px;flex-wrap:wrap}
.steps .s{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);background:var(--surface-2);font-size:12px;color:var(--ink-3);font-weight:600}
.steps .s:first-child{border-radius:9px 0 0 9px}.steps .s:last-child{border-radius:0 9px 9px 0}
.steps .s.done{background:var(--good-soft);color:var(--good);border-color:#CFE2D4}
.steps .s.cur{background:var(--brand-ink);color:#fff;border-color:var(--brand-ink)}
.steps .s small{font-weight:500;font-family:var(--mono);font-size:10.5px;opacity:.8}
.toast{position:fixed;right:22px;bottom:22px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;z-index:120;box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;transform:translateY(8px);transition:.2s}
.toast.on{opacity:1;transform:none}.toast.bad{background:var(--bad)}.toast.good{background:var(--good)}.toast.warn{background:var(--gold-ink)}
pre.mail{white-space:pre-wrap;font:12.5px/1.55 var(--mono);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:14px;margin:0}
/* Wochenmatrix */
.matrix{border-collapse:separate;border-spacing:0;font-size:12px;white-space:nowrap}
.matrix th,.matrix td{padding:5px 6px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;min-width:52px}
.matrix th{position:sticky;top:0;background:var(--surface);z-index:2;font:600 10.5px var(--mono);color:var(--ink-3)}
.matrix th small{display:block;font-weight:400;color:var(--ink-4)}
.matrix th.cur,.matrix td.cur{background:#FBF4E4}
.matrix td:first-child,.matrix th:first-child{position:sticky;left:0;background:var(--surface);z-index:3;text-align:left;min-width:190px;font-weight:600}
.matrix tr.grp td{background:var(--surface-2);font:600 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);text-align:left}
.matrix td button{border:0;border-radius:6px;padding:2px 7px;font:600 12px var(--sans);cursor:pointer;color:#fff}
.matrix td button.bestellt{background:var(--c3)}.matrix td button.bestaetigt{background:var(--gold)}.matrix td button.geliefert{background:var(--good)}.matrix td button.entwurf{background:var(--ink-4)}
.empty{color:var(--ink-3);text-align:center;padding:28px;font-size:13px}
.kpi-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;font-size:13px}.kpi-list div{display:flex;justify-content:space-between;gap:8px}
.lief{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--gap);margin-top:var(--gap)}
.lief .t h3{margin:0 0 8px;font-size:15px}
.badge{display:inline-block;font:600 10.5px var(--mono);padding:2px 7px;border-radius:6px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
@media (max-width:860px){.selbar{left:12px;right:12px;transform:none;flex-wrap:wrap}.auth input{width:120px}}

/* Nur-Lesen (Rolle ohne Recht logistik_bestellen / logistik_stamm) – zugriff.js setzt die Klassen auf <body> */
body.ro .chk, body.ro th:has(> .chk), body.ro td:has(> .chk), body.ro .selbar, body.ro #btnVor, body.ro button[data-o], body.ro #neu, body.ro #btnNeu2, body.ro td[data-act] button { display: none !important; }
body.ro-stamm #sync { display: none !important; }

/* Bestandsplaner, Konzept B (03.11.2026): je Gruppe eine Tabelle, Produktzeile mit Bild, Varianten darunter, Spaltenblöcke */
.planer-h{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin:22px 0 10px}
.planer-h h2{font-size:15px;margin:0 0 4px;letter-spacing:-.01em}
.planer-h .sub{max-width:900px}
.planer-h .erkl summary{cursor:pointer;font-size:12.5px;color:var(--brand);font-weight:600;list-style:none;display:inline-flex;gap:6px;align-items:center}
.planer-h .erkl summary::before{content:"▸";font-size:10px;transition:transform .15s}
.planer-h .erkl[open] summary::before{transform:rotate(90deg)}
.planer-h{margin:14px 0 8px}
.tgl{display:inline-flex;gap:7px;align-items:center;font:600 12.5px var(--sans);color:var(--ink-2);cursor:pointer;white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:6px 11px}
.tgl .chk,.tgl input{accent-color:var(--brand)}
.kat{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}
.kat a{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);text-decoration:none;font:600 12.5px var(--sans);color:var(--ink)}
.kat a.off{opacity:.45}
.kat a small{font-weight:500;color:var(--ink-3)}
.dots{display:inline-flex;gap:3px}.dots i{width:7px;height:7px;border-radius:50%;display:inline-block}
.d-kritisch{background:var(--bad)}.d-niedrig{background:var(--gold)}.d-ok{background:var(--good)}
.sek{margin:0 0 26px;scroll-margin-top:64px}
.sek-h{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:0 2px 8px;margin-bottom:8px}
.sek-h h2{margin:0;font-size:16px;letter-spacing:-.01em}
.sek-h .n{font:500 12px var(--mono);color:var(--ink-3)}
.sek-h .kp{display:flex;gap:16px;margin-left:auto;font-size:12.5px;color:var(--ink-3);flex-wrap:wrap}
.sek-h .kp b{color:var(--ink);font-weight:600}.sek-h .kp .k{color:var(--bad)}.sek-h .kp .w{color:var(--gold-ink)}
.card.pl{padding:0;overflow:hidden}
.card.pl .tw{overflow-x:auto}
.tbl.pz{width:100%}
.tbl.pz thead th{position:static;font:600 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:7px 10px;border-bottom:1px solid var(--line);text-align:right}
.tbl.pz thead tr.sup th{font-size:10px;color:var(--ink-4);padding:8px 10px 0;border-bottom:0;text-align:left;letter-spacing:.1em}
.tbl.pz th.l,.tbl.pz td.l{text-align:left}
.tbl.pz td{padding:7px 10px;text-align:right;vertical-align:middle}
.tbl.pz .rw{min-width:120px}.tbl.pz .rw .trk{min-width:60px}
.tbl.pz th.b1,.tbl.pz td.b1{border-left:2px solid var(--surface-2)}
.tbl.pz tr.pr td{background:var(--surface-2);padding:7px 10px;text-align:left}
.tbl.pz tr.pr:hover td{background:var(--surface-2)}
.tbl.pz .pn{display:flex;align-items:center;gap:10px;font-size:13.5px}
.tbl.pz .pn small{font-weight:500;color:var(--ink-3);font-size:12px}
.tbl.pz .pn .pr-r{margin-left:auto;display:inline-flex;gap:8px;align-items:center}
.pimg{width:34px;height:34px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;padding:2px;flex:none;display:inline-block}
.pimg.x{background:var(--surface);position:relative}.pimg.x::after{content:"";position:absolute;inset:9px;border-radius:4px;background:var(--line)}
.tbl.pz tr.va td.l:nth-child(2){padding-left:54px}
.tbl.pz .vn{font-weight:600}
.tbl.pz tr.va .sku{display:block}
.tbl.pz td.bs{font-size:15px;font-weight:700}
.tbl.pz td.vor{font-weight:800;color:var(--brand);font-size:14px}
.tbl.pz td.vor.none{color:var(--ink-4);font-weight:400}
.tbl.pz .pal{font-size:11px;color:var(--ink-4);font-weight:500;margin-left:5px}
/* Reichweite mit Status-Icon (ersetzt Balken, Status-Pill und Farbstreifen, 03.11.2026) */
.tbl.pz .rwx{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.tbl.pz .rwx b{font-weight:700;font-size:13.5px}
.tbl.pz .rwx.kritisch b{color:var(--bad)}.tbl.pz .rwx.niedrig b{color:var(--gold-ink)}
.tbl.pz .rwx small{font-size:11px;color:var(--ink-3)}
.tbl.pz .ico{display:inline-flex;width:15px;height:15px;flex:none}
.tbl.pz .ico svg{width:15px;height:15px;fill:var(--good)}
.tbl.pz .ico.kritisch svg{fill:var(--bad)}.tbl.pz .ico.niedrig svg{fill:var(--gold)}
.tbl.pz .tnd{display:inline-block;width:14px;font-style:normal;font-size:9px;color:var(--ink-4);text-align:right;vertical-align:1px}
.tbl.pz .tnd.up{color:var(--good)}.tbl.pz .tnd.dn{color:var(--bad)}
.tbl.pz .nl{display:inline-block;line-height:1.3;white-space:nowrap}
.tbl.pz .nl em{font-style:normal;font-size:11px;color:var(--ink-3);margin-left:3px}
.tbl.pz .nl em.bestaetigt{color:var(--good)}
.tbl.pz .nl small{display:block;font-size:11px;color:var(--ink-4)}
@media (max-width:860px){.sek-h .kp{margin-left:0;width:100%}}
.inp.n.bad{border-color:var(--bad);color:var(--bad)}

/* Mengen-Stepper in halben/ganzen Paletten (03.11.2026) */
.qty{display:inline-flex;align-items:center;gap:2px;white-space:nowrap}
.qty button{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:600 11.5px var(--mono);padding:4px 6px;border-radius:6px;cursor:pointer;min-width:30px;line-height:1.2}
.qty button:hover{background:var(--surface-2);border-color:var(--line-2)}
.qty input.inp.n{width:72px;margin:0 3px;padding:4px 6px}
.qty small{margin-left:6px;color:var(--ink-3);font:500 11px var(--mono);min-width:50px}
/* Bestellfenster: ein Block je Lieferant */
.cg{margin-bottom:18px}.cg:last-child{margin-bottom:0}
.cgh{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.cgh h4{margin:0;font-size:15px;letter-spacing:-.01em}
.cgh label{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink-3)}
.cgh .hint{margin-left:auto}

/* Bestände · Kopfleiste (03.11.2026, Konzept D Variante A): vier Werte, Shopify-Stand, ein Knopf */
.ks{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 18px;display:flex;align-items:center;flex-wrap:wrap;row-gap:6px}
.ks .it{display:flex;flex-direction:column;gap:2px;padding:4px 22px 4px 0;margin-right:22px;border-right:1px solid var(--line)}
.ks .it .l{font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.ks .it .v{font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.1;display:flex;align-items:baseline;gap:6px}
.ks .it .v small{font-size:12px;font-weight:500;color:var(--ink-3);letter-spacing:0}
.ks .it .v .bad{color:var(--bad)}.ks .it .v .warn{color:var(--gold-ink)}
.ks .it .s{font-size:11.5px;color:var(--ink-3);white-space:nowrap}
.ks .it .s b{color:var(--ink);font-weight:600}.ks .it .s .k{color:var(--bad);font-weight:600}.ks .it .s .w{color:var(--gold-ink);font-weight:600}
.ks .act{margin-left:auto;display:flex;gap:12px;align-items:center;padding:4px 0}
.ks .ok{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--good);font-weight:600;white-space:nowrap}
.ks .ok i{width:7px;height:7px;border-radius:50%;background:currentColor}
.ks .ok.bad{color:var(--bad)}
.ks .err{width:100%}
@media (max-width:900px){.ks .it{border-right:0;margin-right:0;padding-right:0;flex:1 1 45%}.ks .act{margin-left:0;width:100%;justify-content:space-between}}

/* Bestände · Nachschub-Wochenraster (03.11.2026, Konzept D/3): KW einmal im Kopf, fünf gleich breite Felder je Zeile */
.tbl.pz th.nbc,.tbl.pz td.nbc{padding-top:6px;padding-bottom:6px}
.tbl.pz .nbh,.tbl.pz .nbg{display:inline-grid;grid-template-columns:repeat(5,50px);gap:4px;vertical-align:middle;white-space:nowrap}
.tbl.pz .nbh span{display:flex;flex-direction:column;align-items:center;gap:1px;text-transform:none;letter-spacing:.02em}
.tbl.pz .nbh b{font:700 10.5px var(--mono);color:var(--ink-3)}
.tbl.pz .nbh span:first-child b{color:var(--brand)}
.tbl.pz .nbh small{font:500 9.5px var(--mono);color:var(--ink-4);letter-spacing:0}
.tbl.pz .nbg{grid-template-columns:repeat(5,50px) auto;align-items:center}
.tbl.pz .nbg .c{height:30px;border-radius:6px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font:700 11px var(--mono);color:var(--ink-2);letter-spacing:-.01em;line-height:1}
.tbl.pz .nbg .c.none::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--line-2)}
.tbl.pz .nbg .c.bestaetigt{background:var(--good-soft);color:var(--good)}
.tbl.pz .nbg .c.bestellt{background:var(--warn-soft);color:var(--gold-ink)}
.tbl.pz .nbg .c.entwurf{background:transparent;border:1px dashed var(--line-2);color:var(--ink-3)}
.tbl.pz .nbg .c em{font:700 9.5px var(--sans);font-style:normal;color:var(--bad);letter-spacing:.04em;text-transform:uppercase}
.tbl.pz .nbg .c.leer{box-shadow:inset 0 0 0 1.5px var(--bad)}
.tbl.pz .nbg .c.leer:not(.bestaetigt):not(.bestellt):not(.entwurf){background:var(--bad-soft)}
.tbl.pz .nbg .c.leer:not(.bestaetigt):not(.bestellt):not(.entwurf) em{font-size:10.5px}
.tbl.pz .nbg small{margin-left:6px;font:600 10.5px var(--mono);color:var(--ink-3);line-height:1.25;text-align:left}

/* Bestände · Überverkauf-Schalter (03.11.2026, Konzept D): Kippschalter in eigener Spalte */
.tbl.pz th.c,.tbl.pz td.c{text-align:center}
.tbl.pz .wvx{display:inline-flex;flex-direction:column;align-items:center;gap:3px}
.tbl.pz .wvx small{font-size:10px;line-height:1.2;color:var(--ink-3);white-space:nowrap}
.tbl.pz .wvx.on small{color:var(--good);font-weight:600}
.tbl.pz .wvx.k small{color:var(--bad);font-weight:600}
.tbl.pz .wvx.dim small{color:var(--ink-4)}
.tbl.pz .wvx.dim .sw{background:var(--line)}.tbl.pz .wvx.dim .sw:hover{background:var(--line-2)}
.sw{position:relative;display:inline-block;width:30px;height:18px;border-radius:999px;background:var(--line-2);border:0;padding:0;cursor:pointer;transition:background .15s;vertical-align:middle}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:left .15s}
.sw.on{background:var(--good)}.sw.on::after{left:14px}
.sw.off{background:var(--line);cursor:default}
.sw.busy{opacity:.5}
.sw:disabled{cursor:default}
body.ro .sw{pointer-events:none;opacity:.6}
/* Schalter-Ablauf (05.11.2026): kein Ladezeiger, sondern Ring im Knopf, Glanz auf der Schiene, Häkchen bei Erfolg, Schütteln bei Fehler */
.sw::before{content:"";position:absolute;top:4px;left:4px;width:10px;height:10px;border-radius:50%;box-sizing:border-box;z-index:1;opacity:0;transition:left .15s,opacity .15s}
.sw.on::before{left:16px}
.sw.pend{background-image:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:220% 100%;animation:swShine 1.1s linear infinite}
.sw.pend::before{opacity:1;border:2px solid var(--line);border-top-color:var(--brand);animation:swSpin .65s linear infinite}
.sw.ok::before{opacity:1;border:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 5.3l2 2L8 3' fill='none' stroke='%233D7A5A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat;animation:swPop .38s cubic-bezier(.3,1.6,.5,1)}
.sw.ok::after{animation:swThumb .38s cubic-bezier(.3,1.6,.5,1)}
.sw.err{animation:swShake .38s}
.sw.busy{opacity:1}
@keyframes swSpin{to{transform:rotate(360deg)}}
@keyframes swShine{from{background-position:120% 0}to{background-position:-120% 0}}
@keyframes swPop{0%{transform:scale(.2);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes swThumb{0%{transform:scale(1)}45%{transform:scale(1.22)}100%{transform:scale(1)}}
@keyframes swShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
.tbl.pz .wvx small.dots{color:var(--ink-3);font-weight:600}
.wvx small.dots{position:relative}
.wvx small.dots::after{content:"…";position:absolute;left:100%;bottom:0;clip-path:inset(0 100% 0 0);animation:swDots 1s steps(4,jump-none) infinite}
@keyframes swDots{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@media (prefers-reduced-motion:reduce){.sw.pend,.sw.pend::before,.sw.ok::before,.sw.ok::after,.sw.err{animation:none}}

/* Lieferungen · Tagesraster (10.11.2026): ein Werktag je Spalte, Artikel/Bestand/Überfällig links fest, Kopf oben fest.
   Aufbau wie der Bestandsplaner (Produktzeile mit Bild, Varianten darunter); Farben der Felder wie das Wochenraster dort. */
.lt-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:16px 0 8px}
.lt-leg{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}
.lt-leg span{display:inline-flex;align-items:center;gap:6px}
.lt-leg i.lc{width:16px;height:14px;min-height:0;margin:0;border-radius:4px;display:inline-block;cursor:default;box-shadow:inset 0 0 0 1px rgba(53,9,18,.10)}
.lt-leg i.lc.geliefert{background:var(--surface-2)}
.lt-leg i.lc.leer{background:var(--bad-soft);box-shadow:inset 0 0 0 1.5px var(--bad)}
.lt-nav{display:flex;gap:6px;flex-wrap:wrap}
.lt-card{margin-top:0}
.lt-wrap{overflow:auto;max-height:calc(100vh - 150px);overscroll-behavior-x:contain;scroll-behavior:auto}
.tbl.pz.lt{--dw:60px;--s1:210px;--s2:84px;--s3:96px;width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.tbl.pz.lt th,.tbl.pz.lt td{box-sizing:border-box}
.tbl.pz.lt thead th{position:sticky;top:0;z-index:4;background:var(--surface);text-align:center;padding:0}
.tbl.pz.lt thead tr.dy th{top:31px}
.tbl.pz.lt thead th.w{height:31px;border-left:1px solid var(--line-2);border-bottom:1px solid var(--line);text-align:left;padding:0 10px;text-transform:none;letter-spacing:0;white-space:nowrap}
.tbl.pz.lt thead th.w .wi{position:sticky;left:calc(var(--s1) + var(--s2) + var(--s3) + 10px);display:inline-block}
.tbl.pz.lt thead th.w b{font:700 11.5px var(--mono);color:var(--ink-2);margin-right:8px}
.tbl.pz.lt thead th.w .wi span{font:500 10.5px var(--mono);color:var(--ink-4)}
.tbl.pz.lt thead th.w.akt b{color:var(--brand)}
.tbl.pz.lt thead th.w.past b{color:var(--ink-4)}
.tbl.pz.lt thead th.d{width:var(--dw);min-width:var(--dw);height:40px;border-left:1px solid var(--line);text-transform:none;letter-spacing:0}
.tbl.pz.lt thead th.d b{display:block;font:600 10px var(--mono);color:var(--ink-4);letter-spacing:.04em}
.tbl.pz.lt thead th.d span{display:inline-block;font:700 12.5px var(--sans);color:var(--ink-2);min-width:26px;line-height:20px;border-radius:999px}
.tbl.pz.lt thead th.d.past span{color:var(--ink-4);font-weight:500}
.tbl.pz.lt thead th.d.today b{color:var(--brand)}
.tbl.pz.lt thead th.d.today span{background:var(--brand);color:#fff;padding:0 6px}
.tbl.pz.lt .w0{border-left:1px solid var(--line-2) !important}
.tbl.pz.lt thead th.s1,.tbl.pz.lt thead th.s2,.tbl.pz.lt thead th.s3{z-index:6;text-align:left;padding:0 10px;vertical-align:bottom;padding-bottom:9px}
.tbl.pz.lt thead th.s2{text-align:right}
.tbl.pz.lt .s1{position:sticky;left:0;width:var(--s1);min-width:var(--s1);z-index:3}
.tbl.pz.lt .s2{position:sticky;left:var(--s1);width:var(--s2);min-width:var(--s2);z-index:3}
.tbl.pz.lt .s3{position:sticky;left:calc(var(--s1) + var(--s2));width:var(--s3);min-width:var(--s3);z-index:3;box-shadow:8px 0 10px -8px rgba(53,9,18,.18)}
.tbl.pz.lt tbody td.s1,.tbl.pz.lt tbody td.s2,.tbl.pz.lt tbody td.s3{background:var(--surface)}
.tbl.pz.lt tbody tr.va:hover td.s1,.tbl.pz.lt tbody tr.va:hover td.s2,.tbl.pz.lt tbody tr.va:hover td.s3{background:#FBF8F3}
.tbl.pz.lt tr.va td.s1{padding-left:54px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl.pz.lt td.s2{line-height:1.2}
.tbl.pz.lt td.s2 b{display:block;font-size:14px;font-weight:700}
.tbl.pz.lt td.s2 b.neg{color:var(--bad)}
.tbl.pz.lt td.s2 small{font:500 10.5px var(--mono);color:var(--ink-3)}
.tbl.pz.lt td.s2 small.kritisch{color:var(--bad);font-weight:700}.tbl.pz.lt td.s2 small.niedrig{color:var(--gold-ink);font-weight:700}
.tbl.pz.lt td.s3{padding:3px 6px;text-align:center}
.tbl.pz.lt tbody td{border-bottom:1px solid var(--line)}
.tbl.pz.lt td.d{width:var(--dw);min-width:var(--dw);padding:3px;border-left:1px solid var(--line);text-align:center;vertical-align:middle;height:42px;position:relative}
.tbl.pz.lt td.d.past{background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(125,109,113,.045) 6px 7px)}
.tbl.pz.lt td.d.today{background:var(--brand-soft)}
.tbl.pz.lt tbody tr.va:hover td.d{background-color:#FBF8F3}
.tbl.pz.lt tbody tr.va:hover td.d.today{background:#EEDFDC}
.tbl.pz.lt td.d.leer{box-shadow:inset 0 0 0 1.5px var(--bad);background:var(--bad-soft)}
.tbl.pz.lt td.d em{display:block;font:700 9.5px var(--sans);font-style:normal;color:var(--bad);letter-spacing:.05em;text-transform:uppercase;line-height:1.3}
.tbl.pz.lt td.d.drop{outline:2px dashed var(--brand);outline-offset:-3px;background:var(--brand-soft)}
body.lt-drag .tbl.pz.lt td.d.past{opacity:.5}
.tbl.pz.lt tr.grp td{position:static;background:var(--surface);padding:12px 0 6px;border-bottom:1px solid var(--line-2)}
.tbl.pz.lt tr.grp .st{position:sticky;left:14px;display:inline-block;font:700 12px var(--sans);letter-spacing:.01em;text-transform:none;color:var(--ink)}
.tbl.pz.lt tr.grp .st small{font:500 11px var(--mono);color:var(--ink-3);margin-left:8px}
.tbl.pz.lt tr.pr td{padding:6px 0}
.tbl.pz.lt tr.pr .pn.st{position:sticky;left:10px;display:inline-flex;width:max-content;max-width:calc(100vw - 80px)}
/* Feld = eine Bestellposition */
.lc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;min-height:34px;margin:0;padding:2px 2px;border:0;border-radius:7px;background:var(--surface-2);color:var(--ink-2);font:700 11.5px var(--mono);letter-spacing:-.01em;line-height:1.1;cursor:pointer;transition:transform .08s,box-shadow .12s}
.lc + .lc{margin-top:3px}
.lc b{font-weight:700}
.lc small{font:700 9.5px var(--sans);letter-spacing:.02em}
.lc:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(53,9,18,.14)}
.lc.bestaetigt{background:var(--good-soft);color:var(--good)}
.lc.bestellt{background:var(--warn-soft);color:var(--gold-ink)}
.lc.entwurf{background:transparent;border:1px dashed var(--line-2);color:var(--ink-3)}
.lc.geliefert{background:transparent;color:var(--ink-4);font-weight:600;cursor:default}
.lc.geliefert:hover{transform:none;box-shadow:none;background:var(--surface-2)}
.lc.vz{box-shadow:inset 0 0 0 1.5px var(--gold)}
.lc.vz small{color:var(--bad)}
.lc.ueb{background:var(--bad-soft);color:var(--bad);box-shadow:none}
.lc.ueb small{color:var(--bad);font-weight:600}
.lc[draggable=true]:active{cursor:grabbing}
body.ro .lc{cursor:default}
.lt-erkl{margin:12px 2px 0}.lt-erkl summary{cursor:pointer;font-size:12.5px;color:var(--brand);font-weight:600}
/* Dialog */
.lt-dlg{display:flex;flex-direction:column;gap:14px}
.lt-dh{display:flex;align-items:center;gap:12px}
.lt-dh .pimg{width:46px;height:46px}
.lt-dh b{display:block;font-size:15px}.lt-dh small{font-size:12px;color:var(--ink-3)}
.lt-dh .m{margin-left:auto;font-size:22px;font-weight:800;letter-spacing:-.02em;text-align:right;line-height:1}
.lt-dh .m small{display:block;font-size:11px;font-weight:500;margin-top:3px}
.lt-f{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.lt-f div{background:var(--surface);padding:9px 12px;display:flex;flex-direction:column;gap:2px}
.lt-f span{font:600 10px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.lt-f b{font-size:14px}.lt-f b.w{color:var(--bad)}
.lt-q{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.lt-q span{font-size:12px;font-weight:600;color:var(--ink-3);margin-right:4px}
.lt-all{display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;align-items:start;font-size:13px;cursor:pointer;background:var(--surface-2);border-radius:10px;padding:10px 12px}
.lt-all .chk{margin:2px 0 0;width:16px;height:16px;accent-color:var(--brand)}
.lt-all small{grid-column:2;color:var(--ink-3);font-size:11.5px}
/* Leiste nach dem Ziehen: Rückgängig / ganze Bestellung mitnehmen */
.lt-leiste{position:fixed;left:50%;bottom:22px;transform:translate(-50%,16px);opacity:0;pointer-events:none;z-index:110;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 32px);background:var(--ink);color:#fff;border-radius:12px;padding:8px 8px 8px 16px;font-size:13px;box-shadow:0 12px 34px rgba(30,12,17,.3);transition:opacity .16s,transform .16s}
.lt-leiste.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.lt-leiste span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lt-leiste b{font-weight:700}
.lt-leiste button{border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;font:600 12.5px var(--sans);border-radius:8px;padding:6px 11px;cursor:pointer;white-space:nowrap}
.lt-leiste button:hover{background:rgba(255,255,255,.14)}
.lt-leiste button.x{border:0;font-size:17px;padding:2px 8px;opacity:.7}
.lt-hi h4{margin:0 0 6px;font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.lt-hi div{display:grid;grid-template-columns:170px 1fr auto;gap:10px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:12.5px}
.lt-hi div b{font-family:var(--mono);font-size:12px}.lt-hi div small{color:var(--ink-4);font-size:11px;white-space:nowrap}
@media (max-width:860px){.tbl.pz.lt{--s1:150px;--s2:64px;--s3:74px}.tbl.pz.lt tr.va td.s1{padding-left:12px}.lt-wrap{max-height:none}.lt-f{grid-template-columns:1fr}.lt-hi div{grid-template-columns:1fr}}

/* Warenfinanzen (10.11.2026): ruhig, ohne Farbflächen – Farbe nur in kleinen Punkten und Badges */
.wf-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap);align-items:start}
.wf-2 .card{margin-top:var(--gap)}
@media (max-width:1000px){.wf-2{grid-template-columns:1fr}}
.wf-chk{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column}
.wf-chk li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.wf-chk li:first-child{border-top:0}
.wf-chk li i{flex:none;width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--line-2)}
.wf-chk li.ok i{background:var(--good)}.wf-chk li.bad i{background:var(--bad)}.wf-chk li.warn i{background:var(--gold)}
.wf-chk li b{display:block;font-weight:600}
.wf-chk li span{color:var(--ink-3);font-size:12px}
.wf-chk li a{color:var(--brand);font-weight:600}
.wf-bars{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:6px;align-items:end;margin-top:10px}
.wf-bars .c{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
.wf-bars .v{font:600 10px var(--mono);color:var(--ink-3);height:14px;white-space:nowrap}
.wf-bars .st{width:100%;height:120px;display:flex;flex-direction:column;justify-content:flex-end;background:var(--surface-2);border-radius:6px;overflow:hidden}
.wf-bars .st i{display:block;width:100%;flex:none;border-radius:0;min-height:0}
.wf-bars .st i + i{border-top:1px solid var(--surface)}
.wf-bars .st .a{background:var(--brand)}.wf-bars .st .b{background:var(--line-2)}
.wf-bars .c.bad .st .a{background:var(--bad)}
.wf-bars b{font:700 11px var(--mono);color:var(--ink-2);white-space:nowrap}
.wf-bars small{font:500 9.5px var(--mono);color:var(--ink-4);height:12px}
.wf-bars .c.bad b{color:var(--bad)}.wf-bars .c.dim b{color:var(--ink-4)}
.wf-st{display:inline-block;font:600 10.5px var(--mono);padding:2px 7px;border-radius:6px;background:var(--surface-2);color:var(--ink-2)}
.wf-st.ok{background:var(--good-soft);color:var(--good)}.wf-st.bad{background:var(--bad-soft);color:var(--bad)}
.tbl.lg small.neg{color:var(--bad);font-weight:700}.tbl.lg small.dim{color:var(--ink-4)}
.tbl.lg tr.sum td{border-top:2px solid var(--line);background:var(--surface-2)}
.tbl.lg td.wf-tx{white-space:normal;max-width:340px}
.tbl.lg td.wf-tx small{display:block;color:var(--ink-4);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}
.wf-erkl{margin:0;padding-left:18px}.wf-erkl li{margin:3px 0}

.wf-2 .tbl.lg{width:100%}
.wf-2 .tbl.lg th,.wf-2 .tbl.lg td{padding-left:8px;padding-right:8px}

/* Rechnungen (10.11.2026) */
.tbl.lg.re{width:100%}
.tbl.lg.re tbody tr[data-id]{cursor:pointer}
.tbl.lg.re td small.le{display:block;font-size:11px;color:var(--ink-4);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbl.lg.re td a{color:var(--brand);font-weight:600;text-decoration:none}.tbl.lg.re td a:hover{text-decoration:underline}
.tbl.lg.re tr.neu td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.wf-st.warn{background:var(--warn-soft);color:var(--gold-ink)}
#cardK{padding:14px 18px}

/* Lagebild (10.11.2026, zweite Fassung): Produktkarten mit Bild wie im Bestandsplaner, je Variante eine Zeile.
   Erste Fassung (Tabellen mit acht Spalten) fand Julius zu voll und unschön – hier bewusst wenig. */
.lb-sek{margin-top:22px}
.lb-sek h2{font-size:15px;margin:0 0 10px;letter-spacing:-.01em}
.lb-sek h2 small{font-weight:500;font-size:12px;color:var(--ink-3);margin-left:8px}
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}
.lb-k{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;text-decoration:none;color:inherit;transition:border-color .12s}
.lb-k:hover{border-color:var(--line-2)}
.lb-kh{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.lb-kh .pimg{width:40px;height:40px}
.lb-kh b{font-size:14.5px;letter-spacing:-.01em}
.lb-v{display:grid;grid-template-columns:86px 54px 1fr;gap:8px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.lb-v .vn{color:var(--ink-2)}
.lb-v .bs{text-align:right;font-weight:700;font-size:14px}
.lb-v .bs.neg{color:var(--bad)}
.lb-v .tx{color:var(--ink-3);font-size:12.5px;text-align:right}
.lb-v .tx.bad{color:var(--bad);font-weight:600}.lb-v .tx.ok{color:var(--good)}
.lb-fuss{margin-top:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.lb-fuss a{display:grid;grid-template-columns:230px 1fr auto;gap:12px;align-items:center;padding:11px 16px;border-top:1px solid var(--line);text-decoration:none;color:inherit;font-size:13.5px}
.lb-fuss a:first-child{border-top:0}
.lb-fuss a:hover{background:#FBF8F3}
.lb-fuss a span{color:var(--ink-3)}
.lb-fuss a b{font-weight:600}.lb-fuss a b.neg{color:var(--bad)}
.lb-fuss a i{font-style:normal;color:var(--ink-4)}
@media (max-width:640px){.lb-fuss a{grid-template-columns:1fr auto}.lb-fuss a span{grid-column:1/-1}}

/* Warenfinanzen: je Lieferant eine Linie gegen das Zahlungsziel */
.wl-k{margin-top:var(--gap)}
.wl-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.wl-h b{font-size:16px;font-weight:700}
.wl-h small{color:var(--ink-3);font-size:12px}
.wl-h .wf-st{margin-left:auto}
/* Rechnungs-Blöcke: jeder Block eine Rechnung, Breite nach Betrag, Lücke zwischen den Zonen (11.11.2026) */
.wl-sek{margin:26px 0 0;font-size:15px;font-weight:700}.wl-sek small{font-weight:500;font-size:12.5px;color:var(--ink-3);margin-left:8px}
.wb{display:flex;gap:8px;margin-top:16px}
.wb-f{display:flex;flex-direction:column;gap:2px;min-width:132px;padding:10px 12px;border-radius:10px;background:var(--zb);color:var(--zt)}
.wb-f>span{font-size:12px;font-weight:600;white-space:nowrap}
.wb-f>b{font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.wb-f>small{font-size:11.5px;min-height:15px;white-space:nowrap}
.wb-f.rot{--zb:var(--bad-soft);--zt:var(--bad);--zf:var(--bad)}.wb-f.gelb{--zb:var(--warn-soft);--zt:#8A6516;--zf:#E0A93B}.wb-f.gruen{--zb:var(--good-soft);--zt:var(--good);--zf:var(--good)}
.wb-f.gs{--zb:var(--surface-2);--zt:var(--ink-3);min-width:104px}
.wb-z{display:flex;gap:3px;height:30px;margin:8px 0 6px}
.wb-b{min-width:3px;height:100%;padding:0;border:0;border-radius:4px;cursor:pointer;background:var(--zf);transition:transform .12s,filter .12s,box-shadow .12s}
.wb-b[draggable=true]{cursor:grab}.wb-b[draggable=true]:active{cursor:grabbing}
.wb-f.gs .wb-b{background:repeating-linear-gradient(135deg,var(--line-2) 0 3px,transparent 3px 6px);box-shadow:inset 0 0 0 1px var(--line-2)}
.wb-b.hov{transform:translateY(-3px);filter:brightness(1.12)}
.wb-b.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}
.wb-b.weg{background:repeating-linear-gradient(135deg,#CFC8BE 0 4px,#E2DCD3 4px 8px)}
.wb-weg{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--ink-3)}
.wb-weg i{flex:none;width:14px;height:10px;border-radius:3px;background:repeating-linear-gradient(135deg,#CFC8BE 0 4px,#E2DCD3 4px 8px)}
.wb-ohne small{color:var(--ink-3)}
.wb-d{position:relative;display:flex;align-items:center;gap:14px;margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--surface-2);min-height:44px}
.wb-dt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;flex:1}
.wb-dt b{font-size:15px;font-weight:700}.wb-dt span{font-size:12.5px;color:var(--ink-2)}.wb-dt small{font-size:11.5px;color:var(--ink-3)}
.wb-da{display:flex;flex-direction:column;align-items:flex-end;gap:5px;margin-right:22px}
.wb-da b{font-size:20px;font-weight:800;letter-spacing:-.02em}
.wb-x{position:absolute;top:4px;right:6px;border:0;background:none;font-size:18px;line-height:1;color:var(--ink-4);cursor:pointer}
.wb-er{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:12.5px}.wb-er .inp.n{width:110px;text-align:right}.wb-x2{border:0;background:none;font-size:16px;color:var(--ink-4);cursor:pointer}
.wb-da .btn{align-self:stretch}
.pdfm.gross{width:66px;height:90px;border-radius:6px;font-size:11px}
.pdfm.hoch{cursor:pointer;text-align:center;line-height:1.3;color:var(--brand)}.pdfm.hoch:hover{border-color:var(--brand);transform:none}
.wb-d.ziel{outline:2px dashed var(--brand);outline-offset:-2px}
.wl-r.weg b,.wl-r.weg .num{color:var(--ink-4)}
@media (max-width:700px){.wb{flex-direction:column}.wb-f{flex:none!important}.wb-d{flex-wrap:wrap}.wb-da{align-items:flex-start;margin-right:0}}
.wl-zu{margin-top:10px;font-size:12.5px;color:var(--ink-3)}.wl-zu b{color:var(--ink);font-weight:600}
.wl-k details{margin-top:10px}
.wl-k summary,.wl-auf>summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--brand)}
.wl-g h4{margin:14px 0 2px;font-size:12.5px;font-weight:700}
.wl-g h4 small{font-weight:500;color:var(--ink-3);margin-left:6px}
.wl-r{display:grid;grid-template-columns:120px 80px 90px 1fr 120px;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.wl-r .num{text-align:right}
.wl-r .wf-st{justify-self:end;white-space:nowrap}
.wl-r .q{grid-column:1/-1;color:var(--bad);font-size:11.5px}
.wl-auf{margin-top:14px}
.wl-auf>summary{color:var(--ink-2);font-size:13px}
.wl-auf>summary small{font-weight:500;color:var(--ink-3)}
.wl-auf>.card{margin-top:8px}
@media (max-width:700px){.wl-r{grid-template-columns:1fr auto auto}.wl-r .a,.wl-r .d{display:none}}

/* Rechnungs-PDF als ziehbares Miniaturbild */
.pdfm{flex:none;display:flex;align-items:center;justify-content:center;width:34px;height:46px;border:1px solid var(--line-2);border-radius:4px;background:#fff;overflow:hidden;font:600 9px var(--mono);color:var(--ink-4);text-decoration:none;cursor:grab;transition:transform .12s,border-color .12s}
.pdfm canvas{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.pdfm:hover{border-color:var(--brand);transform:scale(1.08)}
.pdfm:active{cursor:grabbing}
.pdfm.leer{border-style:dashed;background:transparent;cursor:default}.pdfm.leer:hover{transform:none;border-color:var(--line-2)}
.pdfm.x{color:var(--bad)}
.pdfz{display:flex;align-items:center;gap:10px}
.wl-r{grid-template-columns:34px 120px 80px 90px 1fr 120px}
@media (max-width:700px){.wl-r{grid-template-columns:34px 1fr auto auto}}
/* Handy (12.11.2026): breite Auswahlleisten (z. B. Gruppe mit allen Produktgruppen) seitlich wischen statt über den Rand ragen */
@media (max-width:640px){ .ctl>*{max-width:100%;min-width:0} .ctl label.tgl,.planer-h label.tgl{white-space:normal;flex-wrap:wrap;min-width:0;max-width:100%} .ctl .sel{overflow-x:auto;scrollbar-width:none} .ctl .sel::-webkit-scrollbar{display:none} .ctl .sel .seg{flex-wrap:nowrap;flex:none} }
/* Lieferungen: freier Tag ist anklickbar, um eine Lieferung von Hand einzutragen (12.11.2026) */
#tb tbody td.d.add{cursor:cell;position:relative}
#tb tbody td.d.add:hover{background:var(--good-soft)}
#tb tbody td.d.add:empty:hover::after{content:"+";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:600 16px var(--mono);color:var(--good)}
body.lt-drag #tb tbody td.d.add:hover::after{content:none}
/* Fenster „Lieferung ändern“: zwei Wege (Verschieben / Teilen), Verlauf eingeklappt (12.11.2026) */
.lt-modus{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lt-modus button{display:flex;flex-direction:column;gap:1px;text-align:left;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;transition:border-color .12s,background .12s}
.lt-modus button b{font-size:14px;font-weight:700;color:var(--ink)}.lt-modus button small{font-size:11.5px;color:var(--ink-3)}
.lt-modus button:hover{border-color:var(--line-2)}
.lt-modus button.on{border-color:var(--brand-ink);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--brand-ink)}
.lt-pane{display:flex;flex-direction:column;gap:12px}.lt-pane[hidden]{display:none}
.lt-split{display:flex;gap:4px;height:12px;flex:none}
.lt-split i{display:block;height:12px;border-radius:4px;background:var(--brand-ink);min-width:10px;transition:flex .18s}
.lt-split i.da{background:var(--good)}.lt-split i.r{background:var(--line-2)}
.lt-2{display:grid;grid-template-columns:1.25fr 1fr;gap:10px}
.lt-teil{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.lt-teil.rest{background:var(--surface-2);border-color:transparent}
.lt-teil .k{font:600 10px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.lt-teil .z{display:flex;align-items:baseline;gap:8px}
.lt-teil .z .inp{width:130px;font-size:20px;font-weight:800;letter-spacing:-.02em;text-align:left;padding:6px 10px}
.lt-teil .z b{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.lt-teil .z em{font-style:normal;font-size:12px;color:var(--ink-3)}
.lt-teil .d{font-size:14px;font-weight:600}.lt-teil small{font-size:11.5px;color:var(--ink-3)}
.lt-teil .btn.sm.on{background:var(--brand-ink);border-color:var(--brand-ink);color:#fff}
.lt-da{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.lt-da .chk{width:16px;height:16px;accent-color:var(--good);margin:0}
.lt-da:has(input:disabled){color:var(--ink-4);cursor:default}
details.lt-hi>summary{cursor:pointer;font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:2px 0}
details.lt-hi>summary small{font:500 11.5px var(--sans);letter-spacing:0;text-transform:none;margin-left:6px}
details.lt-hi[open]>summary{margin-bottom:6px}
@media (max-width:640px){.lt-2{grid-template-columns:1fr}}
.lt-no{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--ink-2)}.lt-no small{display:inline;font-weight:500;color:var(--ink-4)}.lt-no .inp{font-weight:400}
.lt-dh .m{white-space:nowrap}
