:root{--bg:#0f1115;--panel:#171a21;--panel2:#1e222b;--line:#2a2f3a;--text:#e6e8ec;--muted:#8b93a3;--acc:#4f8cff;--ok:#22c55e;--warn:#f59e0b;--bad:#ef4444;--pre:#a78bfa}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--acc);text-decoration:none}
#shell{display:flex;min-height:100vh}
.side{width:190px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 10px;position:sticky;top:0;height:100vh}
.side .logo{font-size:20px;padding:4px 10px 18px;letter-spacing:.5px}.side .logo b{color:var(--acc)}
.side a{color:var(--muted);padding:8px 10px;border-radius:6px;margin:1px 0}
.side a:hover{background:var(--panel2);color:var(--text)}
.side a.active{background:var(--panel2);color:var(--text);box-shadow:inset 3px 0 0 var(--acc)}
.grow{flex:1}
main{flex:1;padding:22px 26px;min-width:0}
h1{font-size:22px;margin:0 0 16px;font-weight:600}h2{font-size:16px;margin:22px 0 10px;font-weight:600}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.grid{display:grid;gap:12px}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}
.stat .n{font-size:26px;font-weight:600}.stat .l{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
input,select,textarea{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:7px 9px;font:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc)}
input.s{width:95px}textarea{width:100%;min-height:140px;font-family:ui-monospace,Consolas,monospace;font-size:12px}
.btn{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:7px 12px;cursor:pointer;font:inherit;white-space:nowrap}
.btn:hover{border-color:var(--acc)}.btn.primary{background:var(--acc);border-color:var(--acc);color:#fff}.btn.danger:hover{border-color:var(--bad);color:var(--bad)}
.btn.sm{padding:3px 8px;font-size:12px}
table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{background:var(--panel2);color:var(--muted);font-weight:500;font-size:12px;cursor:pointer;user-select:none;white-space:nowrap}
th.nosort{cursor:default}tr:hover td{background:#1b1f27}tr.click{cursor:pointer}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td .sub{color:var(--muted);font-size:12px}.muted{color:var(--muted)}
.ellip{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thumb{width:38px;height:38px;object-fit:contain;background:#fff;border-radius:4px}
.badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;border:1px solid var(--line);white-space:nowrap}
.av-in_stock{color:var(--ok);border-color:#22c55e55;background:#22c55e14}
.av-out_of_stock{color:var(--bad);border-color:#ef444455;background:#ef444414}
.av-preorder,.av-backorder{color:var(--pre);border-color:#a78bfa55}
.av-unknown{color:var(--muted)}.av-gone{color:#777;text-decoration:line-through}
.st-error{color:var(--bad)}.st-ok{color:var(--ok)}.st-dead{color:#777}.st-new{color:var(--warn)}
.chip{display:inline-block;font-size:11px;padding:0 6px;border-radius:4px;margin:1px;background:var(--panel2);border:1px solid var(--line)}
.chip.in{border-color:#22c55e77;color:var(--ok)}
.chip.av-in_stock{border-color:#22c55e77;color:var(--ok);background:#22c55e14}
.chip.av-out_of_stock{border-color:#ef444477;color:var(--bad);background:#ef444414}
.chip.av-preorder,.chip.av-backorder{border-color:#a78bfa77;color:var(--pre)}
.chip.av-unknown{color:var(--muted)}.chip.av-gone{color:#777;text-decoration:line-through}
.pager{display:flex;gap:8px;align-items:center;margin:12px 0;color:var(--muted)}
.kv{display:grid;grid-template-columns:160px 1fr;gap:4px 12px;font-size:13px}.kv div:nth-child(odd){color:var(--muted)}
.kv div{word-break:break-all}
pre{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:10px;overflow:auto;font-size:12px;max-height:420px}
.drop{border:2px dashed var(--line);border-radius:10px;padding:34px;text-align:center;color:var(--muted);cursor:pointer}
.drop.over{border-color:var(--acc);color:var(--text)}
.err{color:var(--bad);margin-top:8px}.ok{color:var(--ok)}
.login{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login form{display:flex;flex-direction:column;gap:10px;width:300px}
#toast{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:6px;z-index:9}
#toast div{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--acc);padding:9px 14px;border-radius:6px;max-width:420px}
#toast div.e{border-left-color:var(--bad)}
.chart{width:100%;height:260px}.chart text{fill:var(--muted);font-size:10px}
.legend span{margin-right:12px;font-size:12px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.form label,.form .lbl{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.bulk{position:sticky;bottom:0;background:var(--panel);border:1px solid var(--acc);border-radius:8px;padding:8px 12px;margin-top:10px}

/* Produktauswahl (Entdecken) */
.pick{position:relative}
.pick input{width:100%}
.pick-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);background:var(--panel2);border:1px solid var(--line);border-radius:8px;max-height:420px;overflow:auto;box-shadow:0 8px 30px #0008}
.pick-item{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--line)}
.pick-item:hover,.pick-item.on{background:#1f2633}
.hidden{display:none!important}

/* laufender Suchlauf */
.runbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:#f59e0b1f;border:1px solid #f59e0b77;color:#fcd34d;margin-bottom:8px}
.runbar.ok-bar{background:#22c55e14;border-color:#22c55e66;color:#86efac}
.runbar.err-bar{background:#ef444414;border-color:#ef444466;color:#fca5a5}
.spin{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.chip.err,.sub.err{margin-top:0}.chip.err{color:var(--bad);border-color:#ef444466}
.sub.ok{color:var(--ok)}.sub.err{color:var(--bad)}
.form label.cfgbool{grid-column:1/-1;flex-direction:row;align-items:flex-start;gap:10px;padding:8px 10px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;line-height:1.4}
.form label.cfgbool input{margin-top:3px;flex:none;width:auto}
.cfgbool>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.cfgbool .cfgbl{color:var(--text);font-size:13px}
.cfgbool .sub{color:var(--muted);font-size:12px}
.form label .sub{line-height:1.4}
.thumb.big{width:80px;height:80px;border-radius:6px;transition:transform .15s;position:relative}
.thumb.big:hover{transform:scale(3);transform-origin:left center;z-index:20;box-shadow:0 6px 24px rgba(0,0,0,.6)}
th{position:relative}
.rzh{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:2}
.rzh:hover,.rzing .rzh:hover{background:var(--acc);opacity:.5}
table.rzfix{table-layout:fixed;max-width:none}
table.rzfix td,table.rzfix th{overflow:hidden;text-overflow:ellipsis}
.rzing,.rzing *{cursor:col-resize!important;user-select:none!important}
td>.cell{max-height:80px;overflow:hidden}
table.rzfix .ellip{max-width:100%}

.side .navh{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#5d6575;padding:14px 10px 4px}
.side a{display:block}
.advsw{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:8px 10px;cursor:pointer;border-top:1px solid var(--line);margin-top:6px}
body.simple .adv{display:none!important}
.todo{display:flex;flex-direction:column;gap:8px}
.todo .it{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--panel);border:1px solid var(--line)}
.todo .it .ic{font-size:20px;width:28px;text-align:center}
.todo .it .tx{flex:1}.todo .it .tx b{display:block;font-size:14px}.todo .it .tx span{color:var(--muted);font-size:12px}
.todo .it.bad{border-color:#ef444466;background:#ef44440d}.todo .it.warn{border-color:#f59e0b66;background:#f59e0b0d}.todo .it.good{border-color:#22c55e55}
.stat.small .n{font-size:22px}

.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:0 0 16px}
.tabs a{padding:9px 16px;color:var(--muted);border-radius:8px 8px 0 0;border:1px solid transparent;border-bottom:none;margin-bottom:-1px}
.tabs a:hover{color:var(--text);background:var(--panel)}
.tabs a.on{color:var(--text);background:var(--panel);border-color:var(--line);box-shadow:inset 0 2px 0 var(--acc)}
.navbadge{display:inline-block;min-width:18px;padding:0 6px;margin-left:4px;border-radius:9px;background:var(--acc);color:#fff;font-size:11px;text-align:center;line-height:18px}
.navbadge.hidden{display:none}

.mstat{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.mst{padding:7px 12px;border-radius:20px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:13px}
.mst.ok{border-color:#22c55e66}.mst.err{border-color:#ef444477;background:#ef44440f}
.mst:hover{border-color:var(--acc)}
.wcell{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:130px}
.wchip{border-color:var(--acc)!important;display:inline-flex;gap:6px;align-items:center}
.wchip a{color:var(--muted);font-weight:bold}.wchip a:hover{color:#ef4444}
.wcell select{min-width:44px;width:auto}
.wlp{border:1px solid var(--line);border-radius:8px;margin:4px 0;background:var(--panel)}
.wlp summary{display:flex;align-items:center;gap:10px;padding:6px 10px;cursor:pointer;list-style:none}
.wlp summary::-webkit-details-marker{display:none}
.wlp summary .thumb{width:34px;height:34px}
.wlp[open] summary{border-bottom:1px solid var(--line)}
.wlo{display:flex;flex-direction:column;gap:4px;padding:8px 10px 8px 44px}
.wlo label{display:flex;gap:8px;align-items:center;font-size:13px}
.wlam{padding:4px 0;border-bottom:1px dashed var(--line)}.wlam:last-child{border-bottom:none}
.wlwhole{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line)}
