:root{--bg:#0f1115;--surface:#171b24;--surface-2:#1f2431;--surface-3:#272d3d;--line:#2f3648;--text:#eef1f6;--muted:#99a3b8;--accent:#ffb020;--accent-ink:#1a1206;--ok:#3f9c6a;--danger:#d9534f;--radius:14px;--tap:56px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit;font-family:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:none}input,select{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;width:100%;min-height:44px;padding:10px 12px}input[type=checkbox]{width:auto;min-height:0;accent-color:var(--accent);width:22px;height:22px}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}.tabular{font-variant-numeric:tabular-nums}.app{grid-template-rows:auto 1fr;height:100dvh;display:grid;overflow:hidden}.app.single{grid-template-rows:1fr}.topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:56px;padding:8px 12px;display:flex}.topbar .grow{flex:1;min-width:0}.event-name{white-space:nowrap;text-overflow:ellipsis;font-weight:650;overflow:hidden}.event-sub{color:var(--muted);font-size:12px}.chip{background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:6px 10px;font-size:13px;display:inline-flex}.chip.hh{border-color:var(--accent);color:var(--accent);background:#ffb02026;font-weight:650}.chip.update{border-color:var(--ok);color:#9fe0bd;background:#3f9c6a2e;font-weight:650}.chip.warn{border-color:var(--danger);color:#ffb3b1}.dot{background:var(--muted);border-radius:50%;flex:none;width:9px;height:9px}.dot.ok{background:var(--ok)}.dot.busy{background:var(--accent)}.dot.err{background:var(--danger)}.icon-btn{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;place-items:center;min-width:44px;min-height:44px;padding:0 12px;font-size:18px;display:grid}.icon-btn:active{background:var(--surface-3)}.kasse{grid-template-columns:380px 1fr;min-height:0;display:grid;overflow:hidden}.pane-cart{background:var(--surface);border-right:1px solid var(--line);grid-template-rows:1fr auto;min-height:0;display:grid}.pane-buttons{-webkit-overflow-scrolling:touch;min-width:0;min-height:0;padding:12px;overflow-y:auto}.grid-buttons{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.artbtn{border-radius:var(--radius);text-align:left;color:#14181f;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:96px;padding:10px;font-weight:700;transition:transform 60ms;display:flex;box-shadow:inset 0 -3px #0000002e}.artbtn:active{transform:scale(.97)}.artbtn .name{font-size:17px;line-height:1.15}.artbtn .price{font-size:20px;font-weight:800}.artbtn .strike{opacity:.65;font-size:12px;font-weight:600;text-decoration:line-through}.artbtn .pricebox{flex-direction:column;align-items:flex-start;gap:1px;display:flex}.artbtn .priceline{align-items:baseline;gap:5px;display:flex}.artbtn .pfandhint{opacity:.7;white-space:nowrap;font-size:11px;font-weight:700}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:18px 2px 8px;font-size:12px}.retbtn{border-radius:var(--radius);background:var(--surface-2);border:2px dashed var(--line);min-height:78px;color:var(--text);text-align:left;flex-direction:column;justify-content:center;gap:4px;padding:10px;font-weight:650;display:flex}.retbtn .amount{color:#ff9f9c;font-size:19px;font-weight:800}.retbtn:active{background:var(--surface-3)}.cart-list{min-height:0;padding:10px;overflow-y:auto}.cart-empty{text-align:center;height:100%;color:var(--muted);place-items:center;padding:24px;display:grid}.cart-row{background:var(--surface-2);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:8px;padding:8px;display:grid}.cart-row.ret{background:#d9534f21}.qty{background:var(--surface-3);border-radius:10px;place-items:center;min-width:44px;height:44px;padding:0 6px;font-weight:800;display:grid}.cart-row .label{min-width:0}.cart-row .name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.cart-row .sub{color:var(--muted);font-size:12px}.cart-row .sub .hh{color:var(--accent);font-weight:650}.cart-row .money{white-space:nowrap;font-weight:700}.row-actions{gap:6px;display:flex}.mini{background:var(--surface-3);border-radius:10px;place-items:center;width:44px;height:44px;font-size:18px;font-weight:700;display:grid}.mini:active{background:var(--line)}.mini.danger{color:#ff9f9c}.totals{border-top:1px solid var(--line);background:var(--surface);padding:10px 12px 12px}.totline{color:var(--muted);justify-content:space-between;padding:3px 0;display:flex}.totline.sum{color:var(--text);border-top:1px solid var(--line);margin-top:6px;padding-top:8px;font-size:27px;font-weight:800}.totline .neg{color:#ff9f9c}.actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.btn{min-height:var(--tap);background:var(--surface-2);border:1px solid var(--line);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:650;display:inline-flex}.btn:active{background:var(--surface-3)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-size:19px;font-weight:800}.btn.danger{color:#ff9f9c;border-color:#d9534f80}.btn.ghost{background:0 0}.btn.wide{grid-column:1/-1}.overlay{z-index:50;background:#06080cb8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--line);border-radius:18px;grid-template-rows:auto 1fr auto;width:min(560px,100%);max-height:90dvh;display:grid;overflow:hidden}.dialog.wide{width:min(920px,100%)}.dialog-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex}.dialog-head h2{flex:1;margin:0;font-size:19px}.dialog-body{min-height:0;padding:16px;overflow-y:auto}.dialog-foot{border-top:1px solid var(--line);gap:8px;padding:12px 16px;display:flex}.dialog-foot .btn{flex:1}.pay-total{text-align:center;padding:6px 0 14px}.pay-total .amount{font-size:44px;font-weight:800;line-height:1.1}.pay-total .muted{color:var(--muted);font-size:13px}.given-display{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:baseline;margin-bottom:10px;padding:12px;display:flex}.given-display .val{font-size:28px;font-weight:800}.change{background:#3f9c6a29;border:1px solid #3f9c6a80;border-radius:12px;justify-content:space-between;align-items:baseline;margin-bottom:10px;padding:12px;display:flex}.change.short{background:#d9534f29;border-color:#d9534f80}.change .val{font-size:30px;font-weight:800}.quick-cash{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px;display:grid}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.keypad .btn{min-height:62px;font-size:22px;font-weight:700}.list{gap:8px;display:grid}.list-row{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.list-row .sub{color:var(--muted);font-size:12px}.list-row.void{opacity:.55}.list-row.void .name{text-decoration:line-through}.empty{color:var(--muted);text-align:center;padding:28px 10px}.bo{grid-template-rows:auto 1fr;min-height:0;display:grid;overflow:hidden}.bo-tabs{border-bottom:1px solid var(--line);background:var(--surface);gap:6px;padding:8px 12px;display:flex;overflow-x:auto}.bo-tab{background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:999px;min-height:44px;padding:0 16px;font-weight:600}.bo-tab.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.bo-body{min-height:0;padding:16px;overflow-y:auto}.panel{gap:14px;max-width:900px;margin:0 auto;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.card h3{margin:0 0 10px;font-size:16px}.field{gap:6px;margin-bottom:10px;display:grid}.field label{color:var(--muted);font-size:13px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.hint{color:var(--muted);font-size:12.5px;line-height:1.5}.hint.warn{color:#ffc9a3}.editor-row{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr;gap:10px;padding:12px;display:grid}.editor-grid{grid-template-columns:2fr 1fr 1.4fr;gap:8px;display:grid}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:2px solid #0000;border-radius:9px;width:34px;height:34px}.swatch.sel{border-color:var(--text)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.stat{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px}.stat .k{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.stat .v{margin-top:2px;font-size:25px;font-weight:800}.stat .v.neg{color:#ff9f9c}table.rep{border-collapse:collapse;width:100%}table.rep th,table.rep td{text-align:left;border-bottom:1px solid var(--line);padding:8px 6px}table.rep th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}table.rep td.num,table.rep th.num{text-align:right;font-variant-numeric:tabular-nums}.bars{gap:6px;display:grid}.bar-row{grid-template-columns:52px 1fr 92px;align-items:center;gap:8px;font-size:13px;display:grid}.bar-track{background:var(--surface-2);border-radius:6px;height:22px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:6px;min-width:2px;height:100%}.scroll-x{overflow-x:auto}.mobile-bar{display:none}@media (width<=900px){.kasse{grid-template-columns:1fr}.pane-cart{z-index:40;border-right:none;transition:transform .18s;position:fixed;inset:0;transform:translateY(100%)}.pane-cart.open{transform:translateY(0)}.pane-buttons{padding-bottom:92px}.grid-buttons{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.artbtn{min-height:88px}.mobile-bar{z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-bar .sum{font-size:24px;font-weight:800}.mobile-bar .sub{color:var(--muted);font-size:12px}.mobile-bar .btn.primary{min-width:150px}.editor-grid,.field-row{grid-template-columns:1fr}}.cart-close{align-items:center;gap:8px;margin-bottom:10px;display:flex}@media (width>=901px){.cart-close{display:none}}@media (width<=520px){.topbar{gap:6px;padding:8px}.chip-label{display:none}.chip{padding:6px 12px}}.station-bar{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.station-checks{flex-wrap:wrap;gap:8px;display:flex}.station-check{background:var(--surface-2);border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:8px 14px 8px 10px;display:inline-flex}.station-check.on{border-color:var(--accent);background:#ffb0201f}.gate{place-items:center;height:100%;padding:24px;display:grid}.gate form{text-align:center;gap:12px;width:min(360px,100%);display:grid}.gate-icon{font-size:48px;line-height:1}.gate h1{margin:0;font-size:26px}.gate-sub{color:var(--muted);margin:0 0 4px}.gate-error{color:#ff9f9c;font-size:14px}.gate-remember{color:var(--muted);cursor:pointer;justify-content:center;align-items:center;gap:10px;min-height:44px;font-size:14px;display:flex}.gate-hint{color:var(--muted);margin:4px 0 0;font-size:12.5px;line-height:1.5}.toast{z-index:60;background:var(--surface-3);border:1px solid var(--line);color:var(--text);pointer-events:none;border-radius:999px;padding:12px 18px;font-weight:650;animation:.16s toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000073}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (width<=900px){.toast{bottom:96px}}
