:root{
  color-scheme: light;
  --bg:#EDEFEA; --surface:#FBFCFA; --raise:#FFFFFF;
  --fg:#14201C; --fg-2:#3D4A43; --muted:#6B756D;
  --line:#D6DBD2; --line-2:#BFC7BA;
  --signal:#8A6100; --signal-fill:#D8A400; --signal-soft:#F6E9C2; --on-signal:#231A00;
  --go:#1B6B4F; --go-soft:#DCEDE4;
  --warn:#9E3F26; --warn-soft:#F6E2DA;
  --blau:#1D4F86; --blau-soft:#DEE9F6;
  --shadow:0 1px 2px rgba(20,32,28,.06),0 4px 14px rgba(20,32,28,.05);
  --sans:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
  --cond:"IBM Plex Sans Condensed","IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* Grundreset -- eigenstaendige Seite, es gibt keine Plattform, die das mitliefert */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:15px;line-height:1.5;
  -webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--cond);font-weight:700;text-wrap:balance;margin:0;letter-spacing:-.01em}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--signal-fill);outline-offset:2px;border-radius:3px}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---------- Kopf ---------- */
.top{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line-2)}
.top-in{max-width:1500px;margin:0 auto;padding:11px 20px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:11px;margin-right:auto}
.brand b{font-family:var(--cond);font-size:19px;font-weight:700;letter-spacing:-.015em}
.brand span{font-family:var(--cond);font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted)}
.nav{display:flex;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:2px}
.nav a{font-family:var(--cond);font-size:13px;font-weight:600;letter-spacing:.02em;text-decoration:none;
  padding:5px 13px;border-radius:5px;color:var(--muted)}
.nav a.on{background:var(--raise);color:var(--fg);box-shadow:var(--shadow)}
.stats{display:flex;gap:20px}
.stat{display:flex;flex-direction:column;line-height:1.15}
.stat b{font-family:var(--mono);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
.stat span{font-family:var(--cond);font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);margin-top:2px}

.wrap{max-width:1500px;margin:0 auto;padding:22px 20px 70px}
.view[hidden]{display:none!important}

/* ---------- Steuerleiste ---------- */
.bar{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;
  display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.search{flex:1 1 260px;min-width:200px;display:flex;align-items:center;gap:8px;background:var(--raise);
  border:1px solid var(--line-2);border-radius:7px;padding:7px 11px}
.search input{border:0;background:none;width:100%;outline:none}
.search svg{flex:none;color:var(--muted)}
select.sel{background:var(--raise);border:1px solid var(--line-2);border-radius:7px;padding:7px 10px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.chip{font-family:var(--cond);font-size:13px;font-weight:600;background:var(--surface);border:1px solid var(--line);
  border-radius:20px;padding:5px 13px;cursor:pointer;display:flex;align-items:center;gap:7px}
.chip em{font-family:var(--mono);font-style:normal;font-size:11px;color:var(--muted)}
.chip[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.chip[aria-pressed="true"] em{color:var(--bg);opacity:.65}

/* ---------- Layout Shop ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}
@media (max-width:980px){.split{grid-template-columns:minmax(0,1fr)}}

/* ---------- Artikelliste ---------- */
.list{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:clip}
.lhead,.row{display:grid;grid-template-columns:98px minmax(0,1fr) 74px 104px 210px 116px;gap:13px;
  align-items:center;padding:10px 16px}
.lhead{font-family:var(--cond);font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);border-bottom:1px solid var(--line-2);background:var(--bg);position:sticky;top:55px;z-index:5}
.row{border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row:hover{background:var(--raise)}
.sku{font-family:var(--mono);font-size:12px;color:var(--muted)}
.nm{min-width:0}
.nm b{font-weight:500;display:block;overflow-wrap:anywhere}
.nm i{font-style:normal;font-family:var(--cond);font-size:11px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted)}
.tag{display:inline-block;font-family:var(--cond);font-size:10px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;padding:1px 6px;border-radius:3px;margin-left:7px;vertical-align:1px}
.tag.med{background:var(--warn-soft);color:var(--warn)}
.tag.box{background:var(--signal-soft);color:var(--signal)}
.avail{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums;color:var(--go)}
.avail small{font-family:var(--sans);color:var(--muted);font-size:11px}
.avail.none{color:var(--muted)}
.price{text-align:right}
.price b{font-family:var(--mono);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;
  display:block;white-space:nowrap}
.price s{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap}
.act{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.step{display:flex;align-items:center;border:1px solid var(--line-2);border-radius:6px;background:var(--raise)}
.step button{width:26px;height:28px;border:0;background:none;cursor:pointer;color:var(--muted);font-size:15px;
  line-height:1}
.step button:hover:not(:disabled){color:var(--fg)}
.step button:disabled{opacity:.3;cursor:not-allowed}
.step input{width:38px;height:28px;border:0;background:none;text-align:center;font-family:var(--mono);
  font-size:13px;outline:none;-moz-appearance:textfield}
.step input::-webkit-outer-spin-button,.step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.add{font-family:var(--cond);font-size:13px;font-weight:700;background:var(--signal-fill);color:var(--on-signal);
  border:0;border-radius:6px;padding:0 12px;height:30px;cursor:pointer;white-space:nowrap}
.add:disabled{background:var(--line);color:var(--muted);cursor:not-allowed}
.empty{padding:44px 20px;text-align:center;color:var(--muted)}

.nm .sn{margin-top:4px;font-family:var(--mono);font-size:11px;color:var(--muted);line-height:1.7;
  overflow-wrap:anywhere}
.nm .sn b{font-family:var(--cond);font-weight:600;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--fg-2);margin-right:7px}
.nm .sn code{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 6px;
  margin:0 4px 3px 0;display:inline-block;font-size:11px}
.nm .sn details{display:inline}
.nm .sn summary{cursor:pointer;color:var(--signal);font-family:var(--sans);font-size:11px;display:inline}
.nm .sn summary::marker{content:""}
.tag.leih{background:var(--warn-soft);color:var(--warn)}

/* ---------- Warenkorb ---------- */
.side{position:sticky;top:78px;display:flex;flex-direction:column;gap:14px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:15px 16px}
.card>h2{font-size:15px;margin-bottom:11px;display:flex;justify-content:space-between;align-items:baseline}
.card>h2 span{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--muted)}
.citem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:8px 0;
  border-bottom:1px solid var(--line)}
.citem:last-of-type{border-bottom:0}
.citem b{font-weight:500;font-size:13px;overflow-wrap:anywhere}
.citem .num{font-size:13px}
.citem em{grid-column:1/-1;font-style:normal;font-family:var(--mono);font-size:11px;color:var(--muted);
  display:flex;justify-content:space-between;align-items:center}
.citem button{border:0;background:none;color:var(--warn);cursor:pointer;font-size:11px;font-family:var(--sans);
  text-decoration:underline;padding:0}
.sum{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid var(--fg);
  margin-top:10px;padding-top:9px}
.sum b{font-family:var(--cond);font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.sum .num{font-size:19px;font-weight:600}
.field{display:block;margin:12px 0 0}
.field span{display:block;font-family:var(--cond);font-size:11px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.field input,.field textarea{width:100%;background:var(--raise);border:1px solid var(--line-2);border-radius:7px;
  padding:8px 11px;outline:none;font-family:inherit;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--signal-fill)}
.go{width:100%;margin-top:13px;font-family:var(--cond);font-size:15px;font-weight:700;letter-spacing:.02em;
  background:var(--signal-fill);color:var(--on-signal);border:0;border-radius:8px;padding:11px;cursor:pointer}
.go:disabled{background:var(--line);color:var(--muted);cursor:not-allowed}
.note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.45}
.note.warn{color:var(--warn)}

/* ---------- Admin ---------- */
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;margin-bottom:16px}
.tool{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:13px 15px}
.tool h3{font-size:13px;letter-spacing:.03em;margin-bottom:4px}
.tool p{font-size:12px;color:var(--muted);margin:0 0 10px}
.tool .rowin{display:flex;gap:7px;align-items:center}
.tool input[type=number]{width:78px;background:var(--raise);border:1px solid var(--line-2);border-radius:6px;
  padding:6px 8px;font-family:var(--mono);font-variant-numeric:tabular-nums}
.tool button{font-family:var(--cond);font-size:13px;font-weight:600;background:var(--raise);
  border:1px solid var(--line-2);border-radius:6px;padding:7px 12px;cursor:pointer;white-space:nowrap}
.tool button:hover{border-color:var(--fg-2)}
.tool button.pri{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.ahead,.arow{display:grid;grid-template-columns:94px minmax(0,1fr) 52px 72px 80px 80px 112px 172px 86px;gap:10px;
  align-items:center;padding:9px 16px}
.ahead{font-family:var(--cond);font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--muted);border-bottom:1px solid var(--line-2);background:var(--bg);position:sticky;top:55px;z-index:5}
.arow{border-bottom:1px solid var(--line)}
.arow:last-child{border-bottom:0}
.arow:hover{background:var(--raise)}
.r{text-align:right}
.ek{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums;color:var(--fg-2)}
.ek.miss{color:var(--muted);opacity:.55}
.marge{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}
.marge.neg{color:var(--warn);font-weight:600}
.marge.pos{color:var(--go)}
.pin{display:flex;align-items:center;gap:5px;justify-content:flex-end}
.pin input{width:80px;background:var(--raise);border:1px solid var(--line-2);border-radius:6px;padding:6px 8px;
  text-align:right;font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums;outline:none}
.pin input:focus{border-color:var(--signal-fill)}
.pin input.set{border-color:var(--signal-fill);background:var(--signal-soft)}
.pin span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.scroll{overflow-x:auto}
.scroll>.list{min-width:840px}

/* ---------- Bestellungen ---------- */
.ord{border-bottom:1px solid var(--line);padding:11px 16px;display:grid;
  grid-template-columns:minmax(0,1fr) auto;gap:3px 14px}
.ord:last-child{border-bottom:0}
.ord b{font-weight:600}
.ord .num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.ord ul{grid-column:1/-1;margin:5px 0 0;padding:0;list-style:none;font-size:12px;color:var(--fg-2)}
.ord li{display:flex;justify-content:space-between;gap:12px;padding:1px 0}
.ord li span:first-child{overflow-wrap:anywhere}
.ord time{font-family:var(--mono);font-size:11px;color:var(--muted)}

/* ---------- Status ---------- */
.live{display:flex;align-items:center;gap:7px;font-family:var(--cond);font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--line-2);flex:none}
.dot.on{background:var(--go)}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--fg);color:var(--bg);
  padding:11px 20px;border-radius:8px;box-shadow:var(--shadow);font-family:var(--cond);font-weight:600;
  z-index:60;max-width:min(560px,90vw);text-align:center}
.toast[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){
  .toast{animation:pop .22s ease-out}
  @keyframes pop{from{opacity:0;transform:translate(-50%,8px)}}
}
@media (max-width:760px){
  .lhead,.ahead{display:none}
  .row{grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:13px 15px}
  .row .sku{grid-column:1;order:1}
  .row .nm{grid-column:1/-1;order:3}
  .row .avail{grid-column:1;order:4}
  .row .price{grid-column:2;order:5;text-align:right}
  .row .act{grid-column:1/-1;order:6;justify-content:flex-start;margin-top:5px}
}

/* ---------- Interessenten ---------- */
.ip{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.ip .none{font-size:12px;color:var(--muted)}
.person{display:inline-flex;align-items:center;gap:4px;background:var(--go-soft);color:var(--go);
  border-radius:20px;padding:2px 9px;font-size:12px;font-weight:500;white-space:nowrap}
.person i{font-style:normal;font-family:var(--mono);font-size:10px;opacity:.75}
.person.mehr{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.person.zug{background:var(--signal-soft);color:var(--signal)}
.rang{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--muted);margin-right:2px}

/* ---------- Eintragen ---------- */
.enter{grid-column:1/-1;margin-top:11px;padding:15px 16px;background:var(--raise);
  border:1px solid var(--line-2);border-radius:9px}
.enter[hidden]{display:none}
.enter h3{font-size:14px;margin-bottom:3px}
.enter>p{font-size:12px;color:var(--muted);margin:0 0 13px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:11px}
.grid2 label{display:block}
.grid2 span{display:block;font-family:var(--cond);font-size:11px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.grid2 input,.grid2 textarea{width:100%;background:var(--surface);border:1px solid var(--line-2);
  border-radius:7px;padding:8px 11px;outline:none;font-family:inherit}
.grid2 input:focus,.grid2 textarea:focus{border-color:var(--signal-fill)}
.check{display:flex;gap:10px;align-items:flex-start;margin:13px 0 0;padding:11px 13px;background:var(--bg);
  border:1px solid var(--line);border-radius:8px;cursor:pointer}
.check input{margin:2px 0 0;flex:none;width:17px;height:17px;accent-color:var(--signal-fill)}
.check span{font-size:12.5px;line-height:1.5;color:var(--fg-2)}
.enter-act{display:flex;gap:9px;align-items:center;margin-top:13px;flex-wrap:wrap}
.enter-act .go{width:auto;margin:0;padding:9px 20px}
.ghost{font-family:var(--cond);font-size:14px;font-weight:600;background:none;border:1px solid var(--line-2);
  border-radius:8px;padding:9px 16px;cursor:pointer}
.ghost:hover{border-color:var(--fg-2)}
.fehler{color:var(--warn);font-size:12.5px;margin-left:auto}
.mine{background:var(--go-soft);border-color:var(--go)}

/* ---------- Schalter ---------- */
.sw{position:relative;display:inline-block;width:34px;height:19px;flex:none}
.sw input{opacity:0;width:0;height:0;position:absolute}
.sw i{position:absolute;inset:0;background:var(--line-2);border-radius:19px;transition:background .15s;
  cursor:pointer}
.sw i::before{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;background:var(--raise);
  border-radius:50%;transition:transform .15s}
.sw input:checked+i{background:var(--go)}
.sw input:checked+i::before{transform:translateX(15px)}
.sw input:focus-visible+i{outline:2px solid var(--signal-fill);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.sw i,.sw i::before{transition:none}}

/* ---------- Admin-Detail ---------- */
.arow.aus{opacity:.5}
.det{grid-column:1/-1;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line-2)}
.det[hidden]{display:none}
.dperson{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;gap:9px;align-items:center;
  padding:5px 0;font-size:13px}
.dperson .rang{font-size:12px}
.dperson .st{font-family:var(--cond);font-size:10px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;padding:2px 7px;border-radius:3px;background:var(--bg);color:var(--muted)}
.dperson .st.zugeteilt{background:var(--go-soft);color:var(--go)}
.dperson .st.abgeholt{background:var(--signal-soft);color:var(--signal)}
.dperson .st.abgelehnt{background:var(--warn-soft);color:var(--warn)}
.dperson select{background:var(--raise);border:1px solid var(--line);border-radius:6px;padding:3px 6px;
  font-size:12px}
.dperson .vz{font-family:var(--mono);font-size:11px;color:var(--muted)}
.dperson .vz.no{color:var(--warn)}
.expand{background:none;border:1px solid var(--line-2);border-radius:6px;padding:3px 9px;cursor:pointer;
  font-family:var(--mono);font-size:12px}
.expand:hover{border-color:var(--fg-2)}
.cell-in{width:100%;background:var(--raise);border:1px solid var(--line);border-radius:6px;padding:5px 7px;
  text-align:right;font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums;outline:none}
.cell-in:focus{border-color:var(--signal-fill)}
.cell-in.set{border-color:var(--signal-fill);background:var(--signal-soft)}
.setup{max-width:620px;margin:60px auto;text-align:center}
.setup code{font-family:var(--mono);font-size:13px;background:var(--surface);border:1px solid var(--line);
  border-radius:5px;padding:2px 7px}

/* ---------- Bilder ---------- */
.lhead,.row{grid-template-columns:64px minmax(0,1fr) 72px 100px 208px 112px}
.thumb{width:64px;height:64px;border-radius:7px;overflow:hidden;background:var(--bg);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex:none}
.thumb img{width:100%;height:100%;object-fit:contain;display:block;mix-blend-mode:multiply}

.thumb .ph{font-family:var(--cond);font-size:17px;font-weight:700;letter-spacing:.02em;
  color:var(--muted);user-select:none}
.thumb.gross{width:104px;height:104px}
.nm .sku2{font-family:var(--mono);font-size:11px;color:var(--muted);margin-right:8px}
.nm .ort{margin-top:3px;font-family:var(--cond);font-size:11px;font-weight:600;letter-spacing:.04em;
  color:var(--fg-2);display:inline-block;background:var(--bg);border:1px solid var(--line);
  border-radius:4px;padding:1px 7px}

/* ---------- Admin-Tabelle ---------- */
.ahead,.arow{grid-template-columns:52px minmax(0,1fr) 46px 66px 74px 74px 112px 172px 80px;gap:10px}
.arow{align-items:start}
.arow>*{padding-top:2px}
.thumb.mini{width:52px;height:52px;border-radius:6px}
.thumb.mini .ph{font-size:13px}
.zahl{display:flex;flex-direction:column;gap:2px;align-items:flex-end}
.zahl small{font-family:var(--mono);font-size:10px;color:var(--muted)}
.iknopf{background:var(--bg);border:1px solid var(--line-2);border-radius:6px;padding:4px 9px;
  cursor:pointer;font-family:var(--mono);font-size:12px;width:100%;text-align:center}
.iknopf.hat{background:var(--go-soft);border-color:var(--go);color:var(--go);font-weight:600}
.iknopf:hover{border-color:var(--fg-2)}
.zuteil{margin-top:8px;padding:12px 14px;background:var(--bg);border:1px solid var(--line-2);
  border-radius:8px}
.zuteil[hidden]{display:none}
.zuteil .grid2{gap:9px}
.zuteil select,.zuteil input{width:100%;background:var(--surface);border:1px solid var(--line-2);
  border-radius:6px;padding:7px 9px;outline:none;font-family:inherit;font-size:13px}
.zuteil select:focus,.zuteil input:focus{border-color:var(--signal-fill)}
.mailst{font-family:var(--mono);font-size:11px;padding:2px 7px;border-radius:3px;white-space:nowrap}
.mailst.ok{background:var(--go-soft);color:var(--go)}
.mailst.err{background:var(--warn-soft);color:var(--warn)}
.mailst.off{background:var(--bg);color:var(--muted)}
.dperson{grid-template-columns:24px minmax(0,1fr) auto auto auto}
.dperson .mail{font-family:var(--mono);font-size:11px;color:var(--muted);display:block}
.upl{position:relative;overflow:hidden;display:inline-block;cursor:pointer}
.upl input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.thumb.klick{cursor:pointer}
.thumb.klick:hover{border-color:var(--signal-fill)}
@media (max-width:900px){
  .ahead{display:none}
  .arow{grid-template-columns:52px minmax(0,1fr) 46px;gap:9px}
  .arow>*:nth-child(n+4){grid-column:2/-1;justify-self:stretch}
}

/* ---------- Ansichtsumschalter ---------- */
.umschalt{display:flex;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:8px;
  padding:2px}
.umschalt button{display:flex;align-items:center;gap:6px;font-family:var(--cond);font-size:13px;
  font-weight:600;background:none;border:0;border-radius:6px;padding:6px 12px;cursor:pointer;
  color:var(--muted)}
.umschalt button[aria-pressed="true"]{background:var(--raise);color:var(--fg);box-shadow:var(--shadow)}
.umschalt svg{flex:none}

/* ---------- Kachelansicht ---------- */
.kacheln{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:14px;
  align-items:start}
.kachel{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:13px;
  display:flex;flex-direction:column;gap:9px;min-width:0}
.kachel.offen{grid-column:1/-1}
.kachel .thumb{width:100%;height:158px;border-radius:8px}
.kachel .thumb .ph{font-size:30px}
.kachel h3{font-size:14.5px;font-weight:600;line-height:1.35;font-family:var(--sans);
  overflow-wrap:anywhere}
.kachel .kopf{display:flex;justify-content:space-between;align-items:baseline;gap:9px}
.kachel .kopf .sku2{margin:0}
.kachel .beschr{font-size:12.5px;color:var(--fg-2);line-height:1.5;margin:0}
.kachel .fuss{display:flex;justify-content:space-between;align-items:flex-end;gap:9px;margin-top:auto;
  padding-top:4px}
.kachel .fuss .price{text-align:left}
.kachel .add{height:32px}
.kachel .sn,.kachel .ort{margin-top:0}
.kachel .meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-family:var(--mono);
  font-size:11px;color:var(--muted)}
.kachel .enter{margin-top:2px}

/* ---------- Beschreibung in der Liste ---------- */
.nm .beschr{margin-top:4px;font-size:12.5px;color:var(--fg-2);line-height:1.5;max-width:70ch}
.check.verbindlich{background:var(--signal-soft);border-color:var(--signal-fill)}
.check.verbindlich span b{color:var(--signal)}
.check+.check{margin-top:8px}

/* ================= Admin: responsiv ================= */
.tools{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.tool .rowin{flex-wrap:wrap;row-gap:8px}
.tool input[type=number]{flex:0 1 84px;min-width:64px}
.tool button{flex:0 1 auto}

.ahead,.arow{grid-template-columns:52px minmax(0,1fr) 46px 68px 76px 76px 108px 66px 34px;gap:10px}
.zelle-vk,.zelle-ek{display:block}
@media (max-width:1180px){
  .ahead,.arow{grid-template-columns:52px minmax(0,1fr) 46px 68px 76px 108px 66px 34px}
  .zelle-vk{display:none}
}
@media (max-width:1000px){
  .ahead,.arow{grid-template-columns:52px minmax(0,1fr) 46px 108px 66px 34px}
  .zelle-ek,.zelle-bestand{display:none}
}
@media (max-width:720px){
  .ahead{display:none}
  .arow{grid-template-columns:52px minmax(0,1fr) 46px;gap:10px}
  .arow .zelle-preis,.arow .zelle-leute,.arow .zelle-mehr,
  .arow .zelle-rabatt{grid-column:2/-1;justify-self:stretch}
  .arow .zelle-preis{display:flex;gap:8px;align-items:center}
  .arow .zelle-preis .zahl{flex:1}
}

/* ---------- Tags ---------- */
.tagchip{display:inline-flex;align-items:center;gap:5px;font-family:var(--cond);font-size:10.5px;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:3px;
  margin:0 5px 3px 0;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.tagchip.gruen{background:var(--go-soft);color:var(--go);border-color:transparent}
.tagchip.gelb{background:var(--signal-soft);color:var(--signal);border-color:transparent}
.tagchip.rot{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.tagchip.blau{background:var(--blau-soft);color:var(--blau);border-color:transparent}
.tagwahl{display:flex;flex-wrap:wrap;gap:6px}
.tagwahl label{cursor:pointer}
.tagwahl input{position:absolute;opacity:0;width:0;height:0}
.tagwahl .tagchip{opacity:.42;transition:opacity .12s;margin:0}
.tagwahl input:checked+.tagchip{opacity:1;box-shadow:inset 0 0 0 1.5px currentColor}
.tagwahl input:focus-visible+.tagchip{outline:2px solid var(--signal-fill);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.tagwahl .tagchip{transition:none}}

/* ---------- Rabatt-Schnellwahl ---------- */
.zelle-preis{position:relative}
.rabattknopf{background:var(--bg);border:1px solid var(--line-2);border-radius:6px;padding:3px 8px;
  cursor:pointer;font-family:var(--cond);font-size:11px;font-weight:600;white-space:nowrap}
.rabattknopf:hover{border-color:var(--fg-2)}
.rabattknopf.hat{background:var(--signal-soft);border-color:var(--signal-fill);color:var(--signal)}
.rabattwahl{position:absolute;right:0;top:100%;margin-top:5px;z-index:15;background:var(--raise);
  border:1px solid var(--line-2);border-radius:9px;box-shadow:var(--shadow);padding:7px;
  min-width:212px;display:flex;flex-direction:column;gap:3px}
.rabattwahl b{font-family:var(--cond);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:2px 7px 4px}
.rabattwahl button{display:flex;justify-content:space-between;align-items:baseline;gap:11px;
  background:none;border:0;border-radius:6px;padding:7px 9px;cursor:pointer;text-align:left;
  font-size:13px;width:100%}
.rabattwahl button:hover{background:var(--bg)}
.rabattwahl button strong{font-family:var(--mono);font-size:13px;font-weight:600}
.rabattwahl button span{color:var(--muted);font-size:12px}
.rabattwahl button em{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--go)}
.rabattwahl hr{border:0;border-top:1px solid var(--line);margin:4px 2px}

/* ---------- Bearbeitungsfeld ---------- */
.mehrknopf{background:none;border:1px solid var(--line-2);border-radius:6px;width:30px;height:28px;
  cursor:pointer;color:var(--muted);font-size:15px;line-height:1;padding:0}
.mehrknopf:hover{border-color:var(--fg-2);color:var(--fg)}
.mehrknopf[aria-expanded="true"]{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.edit{grid-column:1/-1;margin-top:10px;padding:14px 15px;background:var(--bg);
  border:1px solid var(--line-2);border-radius:9px;display:flex;flex-direction:column;gap:12px}
.edit h4{margin:0;font-family:var(--cond);font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.edit .grid2 input,.edit .grid2 select,.edit .grid2 textarea{background:var(--surface)}
.edit .aktionen{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.edit .weg{color:var(--warn);border-color:var(--warn)}
.stufe-marke{font-family:var(--mono);font-size:10px;color:var(--muted)}

/* ---------- Ausklappbare Bereiche ---------- */
.klapp{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:12px}
.klapp>summary{cursor:pointer;padding:13px 16px;font-family:var(--cond);font-size:14px;
  font-weight:700;letter-spacing:.01em;list-style:none;display:flex;align-items:center;gap:9px}
.klapp>summary::-webkit-details-marker{display:none}
.klapp>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--muted);
  border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s;flex:none;
  margin-left:2px}
.klapp[open]>summary::before{transform:rotate(45deg)}
.klapp>summary:hover{background:var(--raise)}
.klapp-in{padding:2px 16px 17px;border-top:1px solid var(--line)}
.klapp-in h4{margin:14px 0 8px;font-family:var(--cond);font-size:11px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.klapp-in .grid2{margin-top:14px}
.klapp-in .rowin{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.klapp-in .rowin input,.klapp-in .rowin select{background:var(--raise);border:1px solid var(--line-2);
  border-radius:7px;padding:8px 11px;outline:none;font-family:inherit;flex:1 1 190px;min-width:150px}
.klapp-in .rowin select{flex:0 1 120px}
.klapp-in .rowin button{font-family:var(--cond);font-size:13px;font-weight:600;background:var(--fg);
  border:1px solid var(--fg);color:var(--bg);border-radius:7px;padding:8px 15px;cursor:pointer;flex:none}
.liste-inline{display:flex;flex-wrap:wrap;gap:6px}
.loeschbar{display:inline-flex;align-items:center;gap:7px;background:var(--bg);border:1px solid var(--line);
  border-radius:20px;padding:4px 6px 4px 12px;font-size:13px}
.loeschbar button{border:0;background:none;cursor:pointer;color:var(--muted);font-size:14px;
  line-height:1;padding:0 3px}
.loeschbar button:hover{color:var(--warn)}
@media (prefers-reduced-motion:reduce){.klapp>summary::before{transition:none}}
.weg-x{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:6px;
  width:26px;height:26px;cursor:pointer;font-size:12px;line-height:1;padding:0;flex:none}
.weg-x:hover{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
.dperson{grid-template-columns:24px minmax(0,1fr) auto auto auto auto}
.ki{padding:13px 15px;background:var(--signal-soft);border:1px solid var(--signal-fill);
  border-radius:9px;margin-top:14px}
.ki h4{margin:0 0 4px;color:var(--signal)}
.ki .note{margin:0;max-width:70ch}
.ki input[type=file]{padding:6px 8px;font-size:13px}
.ki .grid2 input{background:var(--surface)}
#ki-unsicher:not(:empty){margin-top:11px;padding:10px 13px;background:var(--surface);
  border:1px solid var(--line-2);border-radius:8px;font-size:12.5px;line-height:1.55}
#ki-unsicher b{font-family:var(--cond);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--warn);display:block;margin-bottom:4px}
#ki-unsicher ul{margin:0;padding-left:17px}

/* ---------- Bild-Upload sichtbar machen ---------- */
.upl{position:relative}
.upl::after{content:"";position:absolute;inset:0;border-radius:inherit;
  background:rgba(20,32,28,.62);opacity:0;transition:opacity .13s;pointer-events:none}
.upl::before{content:"Bild";position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;z-index:2;font-family:var(--cond);font-size:10px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity .13s;
  pointer-events:none}
.upl:hover::after,.upl:focus-within::after{opacity:1}
.upl:hover::before,.upl:focus-within::before{opacity:1}
.upl.leer{border-style:dashed;border-color:var(--line-2)}
.upl.leer .ph{color:var(--line-2)}
.upl.zieht{border-color:var(--signal-fill);border-style:solid;background:var(--signal-soft)}
.upl.zieht::after{opacity:0}
.upl.laedt::after{opacity:1}
.upl.laedt::before{content:"…";opacity:1;font-size:17px}
.upl input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:3}
@media (prefers-reduced-motion:reduce){.upl::after,.upl::before{transition:none}}

/* Knopf im Bearbeitungsfeld */
.bildknopf{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:7px;
  font-family:var(--cond);font-size:14px;font-weight:600;background:none;
  border:1px solid var(--line-2);border-radius:8px;padding:9px 16px;cursor:pointer}
.bildknopf:hover{border-color:var(--fg-2)}
.bildknopf input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
/* Reicht der Platz nach unten nicht, klappt die Auswahl nach oben auf. */
.rabattwahl.hoch{top:auto;bottom:100%;margin:0 0 5px}
/* Am Fenster positioniert, weil .list mit overflow:clip sonst abschneidet. */
.rabattwahl{position:fixed;right:auto}

/* ---------- Kommentar zum Zustand ---------- */
.zustandskommentar{padding:4px 4px 2px}
.zustandskommentar .kopf{display:flex;align-items:baseline;justify-content:space-between;
  gap:10px;padding:2px 5px 8px}
.zustandskommentar .kopf b{font-family:var(--cond);font-size:13px}
.zustandskommentar .kopf em{font-style:normal;font-family:var(--mono);font-size:12px;
  color:var(--go)}
.zustandskommentar textarea{width:100%;background:var(--surface);border:1px solid var(--line-2);
  border-radius:7px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.5;
  outline:none;resize:vertical}
.zustandskommentar textarea:focus{border-color:var(--signal-fill)}
.zustandskommentar .pflicht{font-size:12px;color:var(--warn);padding:6px 5px 0;line-height:1.45}
.zustandskommentar .aktionen{display:flex;gap:7px;align-items:center;padding:9px 5px 3px}
.zustandskommentar .aktionen button{flex:none;width:auto;display:block;text-align:center}
.zustandskommentar .sichern{font-family:var(--cond);font-size:13px;font-weight:700;
  background:var(--signal-fill);color:var(--on-signal);border:0;border-radius:7px;
  padding:8px 16px;cursor:pointer}
.zustandskommentar .spaeter{font-family:var(--cond);font-size:13px;font-weight:600;
  background:none;border:1px solid var(--line-2);border-radius:7px;padding:8px 14px;
  cursor:pointer;color:var(--muted)}
.rabattknopf .notiz{margin-left:4px;opacity:.8}
.feldhinweis{display:block;margin-top:5px;font-size:12px;color:var(--warn);line-height:1.45}
.feldhinweis:empty{display:none}

/* ---------- Verfügbarkeit hervorheben ---------- */
.avail{display:inline-flex;align-items:baseline;gap:5px;justify-self:end;
  font-family:var(--cond);font-size:12px;font-weight:600;letter-spacing:.02em;
  color:var(--go);background:var(--go-soft);border-radius:20px;padding:3px 11px;
  white-space:nowrap}
.avail b{font-family:var(--mono);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.avail.none{color:var(--muted);background:var(--bg)}
.kachel .avail{justify-self:auto;padding:2px 9px}
.feldhinweis.hell{color:var(--muted)}
/* Die Werkzeugkarten sitzen jetzt im Klappbereich */
.klapp-in > .tools{margin:14px 0 2px}

/* ---------- Statistik ---------- */
.statistik{margin-bottom:12px}
.statzeile{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}
.statkachel{background:var(--surface);border:1px solid var(--line);border-radius:10px;
  padding:13px 15px;display:flex;flex-direction:column;gap:2px;min-width:0}
.statkachel b{font-family:var(--mono);font-size:26px;font-weight:600;line-height:1.1;
  font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.statkachel span{font-family:var(--cond);font-size:11px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin-top:3px}
.statkachel em{font-style:normal;font-size:12px;color:var(--fg-2);margin-top:4px}
.statkachel.hat{border-color:var(--go);background:var(--go-soft)}
.statkachel.hat b{color:var(--go)}
.externe{margin-top:10px;background:var(--surface);border:1px solid var(--line);
  border-radius:9px;padding:0}
.externe>summary{cursor:pointer;padding:10px 14px;font-family:var(--cond);font-size:13px;
  font-weight:600;list-style:none}
.externe>summary::-webkit-details-marker{display:none}
.externe>summary::before{content:"▸ ";color:var(--muted)}
.externe[open]>summary::before{content:"▾ "}
.externe ul{margin:0;padding:0 14px 12px 30px;font-family:var(--mono);font-size:12.5px;
  color:var(--fg-2);line-height:1.7}

/* ---------- Anlegen-Knopf und Modal ---------- */
.anlegen-knopf{display:inline-flex;align-items:center;gap:7px;font-family:var(--cond);
  font-size:14px;font-weight:700;letter-spacing:.01em;background:var(--signal-fill);
  color:var(--on-signal);border:0;border-radius:8px;padding:8px 16px;cursor:pointer;flex:none}
.anlegen-knopf span{font-size:17px;line-height:1;margin-top:-1px}
.anlegen-knopf:hover{filter:brightness(1.06)}

.modal{width:min(860px,94vw);max-height:88vh;padding:0;border:1px solid var(--line-2);
  border-radius:13px;background:var(--surface);color:var(--fg);box-shadow:var(--shadow);
  overflow:hidden}
.modal::backdrop{background:rgba(20,32,28,.42)}
.modal-kopf{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;
  background:var(--surface);z-index:2}
.modal-kopf h2{font-size:17px;margin:0}
.modal-zu{background:none;border:1px solid var(--line-2);border-radius:7px;width:32px;
  height:32px;cursor:pointer;color:var(--muted);font-size:14px;line-height:1;padding:0}
.modal-zu:hover{border-color:var(--fg-2);color:var(--fg)}
.modal-inhalt{padding:4px 20px 20px;overflow-y:auto;max-height:calc(88vh - 62px)}
.modal-inhalt .ki{margin-top:14px}
@media (max-width:640px){
  .modal{width:100vw;max-width:100vw;max-height:100vh;border-radius:0}
  .modal-inhalt{max-height:calc(100vh - 62px)}
}

/* ---------- Fotos ablegen ---------- */
.dropzone{position:relative;display:flex;align-items:center;justify-content:center;
  min-height:104px;margin-top:12px;padding:16px;border:2px dashed var(--line-2);
  border-radius:10px;background:var(--surface);cursor:pointer;text-align:center;
  transition:border-color .13s,background .13s}
.dropzone:hover{border-color:var(--signal-fill)}
.dropzone.zieht{border-color:var(--signal-fill);background:var(--signal-soft);
  border-style:solid}
.dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.dz-text b{display:block;font-family:var(--cond);font-size:15px;font-weight:700}
.dz-text span{display:block;margin-top:4px;font-size:12.5px;color:var(--muted)}
.dz-vorschau{display:flex;flex-wrap:wrap;gap:9px;margin-top:11px}
.dz-vorschau:empty{display:none}
.dz-bild{position:relative;width:78px;height:78px;border-radius:8px;overflow:hidden;
  border:1px solid var(--line-2);background:var(--bg);flex:none}
.dz-bild img{width:100%;height:100%;object-fit:cover;display:block}
.dz-bild button{position:absolute;top:3px;right:3px;width:20px;height:20px;border:0;
  border-radius:50%;background:rgba(20,32,28,.72);color:#fff;font-size:11px;line-height:1;
  cursor:pointer;padding:0}
.dz-bild button:hover{background:var(--warn)}
.dz-bild em{position:absolute;left:0;right:0;bottom:0;font-style:normal;font-family:var(--mono);
  font-size:9.5px;background:rgba(20,32,28,.66);color:#fff;padding:2px 4px;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feld-breit{display:block;margin-top:12px}
.feld-breit>span{display:block;font-family:var(--cond);font-size:11px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.feld-breit input{width:100%;background:var(--surface);border:1px solid var(--line-2);
  border-radius:7px;padding:8px 11px;outline:none;font-family:inherit}
.feld-breit input:focus{border-color:var(--signal-fill)}
@media (prefers-reduced-motion:reduce){.dropzone{transition:none}}

/* ---------- Kategoriewahl ---------- */
.katfeld>span{display:block;font-family:var(--cond);font-size:11px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.katwahl{display:flex;flex-wrap:wrap;gap:6px}
.katwahl button{font-family:var(--cond);font-size:13px;font-weight:600;background:var(--surface);
  border:1px solid var(--line);border-radius:20px;padding:6px 14px;cursor:pointer;color:var(--fg-2)}
.katwahl button:hover{border-color:var(--fg-2);color:var(--fg)}
.katwahl button[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.katneu{display:flex;gap:7px;margin-top:9px}
.katneu input{flex:1 1 auto;min-width:0;background:var(--surface);border:1px solid var(--line-2);
  border-radius:7px;padding:7px 11px;outline:none;font-family:inherit;font-size:13px}
.katneu input:focus{border-color:var(--signal-fill)}
.katneu button{flex:none;font-family:var(--cond);font-size:13px;font-weight:600;
  background:none;border:1px solid var(--line-2);border-radius:7px;padding:7px 14px;
  cursor:pointer}
.katneu button:hover{border-color:var(--fg-2)}

/* ---------- Tabellenansicht zum Durcharbeiten ---------- */
.tabelle-huelle[hidden]{display:none}
.tabelle{background:var(--surface);border:1px solid var(--line);border-radius:10px;
  overflow-x:auto}
.thead,.trow{display:grid;
  grid-template-columns:44px 108px minmax(190px,1.6fr) 150px 78px 84px 84px 92px 132px 96px;
  gap:8px;align-items:center;padding:7px 14px;min-width:1130px}
.thead{font-family:var(--cond);font-size:10px;font-weight:600;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);background:var(--bg);
  border-bottom:1px solid var(--line-2)}
.trow{border-bottom:1px solid var(--line)}
.trow:last-child{border-bottom:0}
.trow:hover{background:var(--raise)}
.trow.aus{opacity:.55}
.trow input,.trow select{width:100%;background:var(--raise);border:1px solid var(--line);
  border-radius:6px;padding:5px 7px;font-family:inherit;font-size:12.5px;outline:none;
  min-width:0}
.trow input[type=number]{text-align:right;font-family:var(--mono);
  font-variant-numeric:tabular-nums}
.trow input:focus,.trow select:focus{border-color:var(--signal-fill);
  background:var(--surface)}
.trow input.sku{font-family:var(--mono);font-size:12px}
.trow .ort{font-family:var(--cond);font-size:11px;font-weight:600;color:var(--fg-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trow .rechnung{font-family:var(--mono);font-size:10px;color:var(--muted);
  display:block;text-align:right;margin-top:2px}
.trow .zelle{min-width:0}
.gesichert{animation:gesichert 1.1s ease-out}
.abgelehnt{border-color:var(--warn)!important;background:var(--warn-soft)!important}
@keyframes gesichert{0%{background:var(--go-soft);border-color:var(--go)}
  100%{background:var(--raise);border-color:var(--line)}}
@media (prefers-reduced-motion:reduce){.gesichert{animation:none}}

/* Tabellenraster mit Bild und Tags */
.thead,.trow{grid-template-columns:52px 44px 100px minmax(170px,1.4fr) 132px 72px 78px 78px
  112px 92px 124px 132px 92px;min-width:1448px}
.trow .thumb{width:46px;height:46px;border-radius:6px}
.trow .thumb .ph{font-size:12px}
.trow .tagzelle{display:flex;flex-wrap:wrap;gap:3px;align-items:center;min-width:0}
.trow .tagzelle .tagchip{margin:0;font-size:9.5px;padding:2px 6px;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tagknopf{background:var(--bg);border:1px dashed var(--line-2);border-radius:20px;
  padding:2px 8px;cursor:pointer;font-family:var(--cond);font-size:10.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tagknopf:hover{border-color:var(--signal-fill);color:var(--signal)}

/* Aus der Tabelle herausgehoben, sonst schneidet der Waagerechtlauf es ab */
.tagpopover{position:fixed;z-index:40;background:var(--raise);border:1px solid var(--line-2);
  border-radius:9px;box-shadow:var(--shadow);padding:9px;min-width:210px;
  display:flex;flex-direction:column;gap:4px}
.tagpopover[hidden]{display:none}
.tagpopover b{font-family:var(--cond);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:1px 4px 4px}
.tagpopover label{display:flex;align-items:center;gap:8px;padding:4px 5px;border-radius:6px;
  cursor:pointer}
.tagpopover label:hover{background:var(--bg)}
.tagpopover input{width:16px;height:16px;accent-color:var(--signal-fill);flex:none;margin:0}
.tagpopover .tagchip{margin:0}

/* Spalte für die Preisanalyse */
.thead,.trow{grid-template-columns:52px 44px 100px minmax(160px,1.3fr) 124px 68px 74px 74px
  112px 92px 118px 160px 118px 88px;min-width:1642px}
.pa{display:flex;flex-direction:column;gap:1px;min-width:0}
.pa b{font-family:var(--mono);font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.pa span{font-family:var(--mono);font-size:10px;color:var(--muted);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.pa em{font-style:normal;font-size:10px;color:var(--muted);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.pa a{color:var(--muted);text-decoration:none}
.pa a:hover{color:var(--signal);text-decoration:underline}
/* Durchschnitt und Uebernahme stehen nebeneinander -- der Knopf soll sich
   sichtbar auf genau diese Zahl beziehen. */
.pa-kopf{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap}
.pa-nehmen{flex:none;font-family:var(--mono);font-size:9.5px;font-weight:600;
  letter-spacing:.04em;padding:2px 6px;border:1px solid var(--go);border-radius:5px;
  background:var(--go-soft);color:var(--go);cursor:pointer;white-space:nowrap}
.pa-nehmen:hover{background:var(--go);color:#fff}
.pa-nehmen:disabled{opacity:.5;cursor:default}
.pa-neu{align-self:flex-start;margin-top:2px;font-family:var(--mono);font-size:9.5px;
  padding:2px 6px;border:1px solid var(--line-2);border-radius:5px;background:var(--surface);
  color:var(--muted);cursor:pointer;white-space:nowrap}
.pa-neu:hover{color:var(--fg);border-color:var(--fg-2)}
.pa-neu:disabled{opacity:.5;cursor:default}

/* Manueller Rabatt: vier gaengige Stufen plus freies Feld. Die Knoepfe sind
   bewusst schmal -- sie stehen in einer engen Spalte neben dem Abgabepreis. */
.rab{display:flex;flex-wrap:wrap;gap:3px;align-items:center}
.zelle-rabatt{min-width:0}
.rab-k{font-family:var(--mono);font-size:9.5px;font-weight:600;padding:2px 5px;
  border:1px solid var(--line-2);border-radius:5px;background:var(--surface);
  color:var(--fg-2);cursor:pointer;min-width:24px}
.rab-k:hover{border-color:var(--signal-fill);color:var(--signal)}
.rab-k.an{background:var(--signal-fill);border-color:var(--signal-fill);color:var(--on-signal)}
.rab-k:disabled{opacity:.5;cursor:default}
.rab-feld{flex:0 0 44px;width:44px;box-sizing:border-box;font-family:var(--mono);
  font-size:10px;padding:2px 4px;border:1px solid var(--line);border-radius:5px;
  background:var(--raise);color:var(--fg);text-align:right}
.rab-feld::-webkit-inner-spin-button{display:none}
.trow .rab-feld,.arow .rab-feld{width:44px;min-width:0}
.rab-weg{flex:none;font-size:11px;line-height:1;padding:2px 5px;border:1px solid var(--line);
  border-radius:5px;background:var(--surface);color:var(--muted);cursor:pointer}
.rab-weg:hover{color:var(--warn);border-color:var(--warn)}
.pa-huelle{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line);
  width:100%;text-align:left}
.arow .zelle-preis{align-items:stretch}
.arow .zelle-preis>small{align-self:flex-end}
.paknopf{background:var(--bg);border:1px dashed var(--line-2);border-radius:6px;padding:4px 9px;
  cursor:pointer;font-family:var(--cond);font-size:11px;font-weight:600;white-space:nowrap;
  color:var(--muted)}
.paknopf:hover{border-color:var(--signal-fill);color:var(--signal)}
.paknopf:disabled{opacity:.5;cursor:wait}

/* Trefferauswahl -- am Fenster, damit die Tabelle sie nicht abschneidet */
.trefferwahl{position:fixed;z-index:45;background:var(--raise);border:1px solid var(--line-2);
  border-radius:10px;box-shadow:var(--shadow);padding:10px;width:min(520px,92vw);
  max-height:70vh;overflow-y:auto}
.trefferwahl[hidden]{display:none}
.trefferwahl>b{display:block;font-family:var(--cond);font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted);padding:2px 4px 8px}
.trefferwahl>p{margin:0 4px 9px;font-size:12px;color:var(--fg-2);line-height:1.5}
.treffer{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;
  background:none;border:1px solid var(--line);border-radius:7px;padding:8px 11px;
  cursor:pointer;text-align:left;margin-bottom:5px;font-size:13px}
.treffer:hover{border-color:var(--signal-fill);background:var(--signal-soft)}
.treffer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.treffer em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--muted);flex:none}
.trefferwahl .abbruch{width:100%;background:none;border:1px solid var(--line-2);border-radius:7px;
  padding:7px;cursor:pointer;font-family:var(--cond);font-weight:600;font-size:13px;
  color:var(--muted);margin-top:3px}
.trefferzeile{display:flex;align-items:stretch;gap:6px;margin-bottom:5px}
.trefferzeile .treffer{flex:1 1 auto;margin:0;min-width:0}
.ansehen{flex:none;display:flex;align-items:center;padding:0 11px;border:1px solid var(--line);
  border-radius:7px;font-family:var(--cond);font-size:12px;font-weight:600;color:var(--muted);
  text-decoration:none;white-space:nowrap}
.ansehen:hover{border-color:var(--signal-fill);color:var(--signal);background:var(--signal-soft)}

/* Abmelde-Knopf im Kopfbereich beider Oberflaechen */
.abmelden{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);text-decoration:none;padding:6px 10px;
  border:1px solid var(--line);border-radius:7px;background:var(--surface);white-space:nowrap}
.abmelden:hover{color:var(--fg);border-color:var(--line-2)}

/* Sprung ins Dashboard -- nur fuer angemeldete Verwaltung sichtbar */
.wechsel{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--on-signal);text-decoration:none;padding:6px 11px;
  border:1px solid var(--signal-fill);border-radius:7px;background:var(--signal-soft);
  white-space:nowrap;margin-left:auto}
.wechsel:hover{background:var(--signal-fill)}

/* Bestand, EK, VK, Rabatt, Abgabe -- der Rabatt steht in einer eigenen Spalte. */
.ahead,.arow{grid-template-columns:52px minmax(0,1fr) 46px 68px 76px 76px 116px 172px 66px 34px}
.preiszeile{display:flex;align-items:center;gap:6px;width:100%}
.preiszeile .cell-in{flex:1 1 auto;min-width:0}
.preiszeile .rabattknopf{flex:none;height:28px}
.zelle-preis > small{display:block;text-align:right;margin-top:2px}
@media (max-width:1180px){
  .ahead,.arow{grid-template-columns:52px minmax(0,1fr) 46px 68px 76px 116px 172px 66px 34px}
}
@media (max-width:1000px){
  .ahead,.arow{grid-template-columns:52px minmax(0,1fr) 46px 116px 172px 66px 34px}
}
@media (max-width:720px){
  .arow{grid-template-columns:52px minmax(0,1fr) 46px}
  /* Zu schmal fuer Spalten -- Rabatt und Preis stellen sich untereinander. */
  .arow .zelle-rabatt{grid-column:2/-1;justify-self:stretch}
}
.trow .zustandswahl{font-variant-numeric:tabular-nums}
.trow .rechnung[data-rolle="preis"]{font-size:11px;color:var(--fg-2);font-weight:600}
.gewerbeform[hidden]{display:none}
.gewerbeform{margin-top:8px}
.gewerbeform select{width:100%;background:var(--surface);border:1px solid var(--line-2);
  border-radius:7px;padding:8px 11px;outline:none;font-family:inherit}
.gewerbeform select:focus{border-color:var(--signal-fill)}
