:root{--bg: #1a1d23;--panel: #252932;--panel-2: #2e323d;--panel-3: #383d4a;--border: #3a3f4b;--border-soft: #2f343f;--text: #f2f4f7;--muted: #8d94a3;--muted-2: #b4bac6;--ls-red: #d6001c;--ls-red-2: #ff1a3c;--ls-red-soft: rgba(214, 0, 28, .18);--ok: #29c46f;--warn: #f0b429;--error: #ff5d5d;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overflow:hidden}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:.55rem .85rem;cursor:pointer;transition:background .05s ease,transform .02s ease}button:disabled{opacity:.45;cursor:not-allowed}button:hover:not(:disabled){background:var(--panel-3)}button:active:not(:disabled){transform:translateY(1px)}input,select{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:.45rem .65rem}input:focus,select:focus{outline:2px solid var(--ls-red);outline-offset:-1px}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:.7rem 1.1rem;z-index:100;box-shadow:0 8px 24px #0000008c;font-weight:500}.toast.ok{border-color:var(--ok);box-shadow:0 8px 24px #29c46f40}.toast.error{border-color:var(--error);box-shadow:0 8px 24px #ff5d5d40}.till{display:grid;grid-template-columns:1fr 340px;height:100%;background:var(--bg)}.menu-panel{display:grid;grid-template-rows:1fr auto;min-width:0;min-height:0}.grid-scroller{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:10px;background:var(--bg)}.grid-scroller::-webkit-scrollbar{width:10px}.grid-scroller::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}.grid-scroller::-webkit-scrollbar-thumb:hover{background:var(--panel-3)}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));grid-auto-rows:88px;gap:6px}.product-button{display:flex;flex-direction:column;justify-content:space-between;padding:7px 9px;border-radius:6px;background:#464646;color:#fff;border:1px solid rgba(255,255,255,.05);cursor:pointer;text-align:left;font-size:.88rem;line-height:1.15;overflow:hidden;font-weight:600;box-shadow:0 1px 2px #00000059;transition:transform .05s ease,box-shadow .05s ease}.product-button:hover{box-shadow:0 3px 8px #00000080;filter:brightness(1.08)}.product-button:active{transform:translateY(1px)}.product-button.flash{outline:3px solid var(--ls-red-2);outline-offset:-1px}.product-button .name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 2px rgba(0,0,0,.4)}.product-button .price{font-weight:700;font-size:.95rem;align-self:flex-end;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.4)}.plugin-grid{grid-auto-rows:minmax(88px,auto)}.plugin-header{grid-column:1 / -1;margin:14px 0 2px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;display:flex;align-items:center;gap:8px}.plugin-header:after{content:"";flex:1;height:1px;background:var(--border)}.plugin-tile{position:relative}.plugin-tile .sublabel{font-size:.72rem;font-weight:500;opacity:.85;margin-top:2px;text-shadow:0 1px 2px rgba(0,0,0,.4)}.plugin-tile .tile-badge{position:absolute;left:7px;bottom:7px;background:#0000008c;color:#fff;font-size:.72rem;font-weight:800;font-variant-numeric:tabular-nums;padding:1px 6px;min-width:22px;text-align:center;border-radius:8px;box-shadow:0 1px 3px #00000059}.plugin-tile .tile-badge--ok{background:#1e8e4a;color:#fff}.plugin-tile .tile-badge--warn{background:#d68a1c;color:#fff}.plugin-tile .tile-badge--danger{background:#c4302b;color:#fff}.sep-line{grid-column:1 / -1;height:0;margin:2px 0;border-top:2px solid var(--ls-red);opacity:.5}.sep-spacing{background:transparent}.category-bar{background:var(--panel);border-top:2px solid var(--ls-red);display:flex;gap:4px;overflow-x:auto;padding:6px;scrollbar-width:thin}.category-bar::-webkit-scrollbar{height:6px}.category-bar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.cat-tab{flex:1 1 0;min-width:60px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 8px 6px;font-size:.78rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1}.cat-tab .cat-icon{font-size:1.6rem;line-height:1;filter:grayscale(.15)}.cat-tab .cat-name{font-size:.78rem;letter-spacing:.02em;max-width:100%;overflow:hidden;text-overflow:ellipsis}.cat-tab{-webkit-tap-highlight-color:transparent}@media (hover: hover){.cat-tab:hover{background:var(--panel-3)}}.cat-tab:focus{outline:none}.cat-tab.active,.cat-tab.active:hover,.cat-tab.active:focus,.cat-tab.active:active{background:var(--ls-red);color:#fff;border-color:var(--ls-red);font-weight:700;box-shadow:0 2px 10px #d6001c66}.cat-tab.active .cat-icon{filter:none}.right-col{display:grid;grid-template-rows:auto 1fr auto;background:var(--panel);border-left:1px solid var(--border);min-height:0}.brand-bar{padding:10px 14px;border-bottom:2px solid var(--ls-red);display:flex;justify-content:space-between;align-items:center;background:var(--panel-2)}.brand-name{position:relative;display:inline-block;isolation:isolate;font-weight:800;letter-spacing:.06em;color:var(--ls-red-2);font-size:1rem;text-shadow:-1px 0 0 rgba(255,26,60,.22),1px 0 0 rgba(255,26,60,.05);animation:warpjitter 5s ease-in-out infinite}.brand-name:before,.brand-name:after{content:"";position:absolute;top:-3px;right:-16px;bottom:-3px;left:-16px;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 22%,#000 78%,transparent 100%);mix-blend-mode:screen}.brand-name:before{background:radial-gradient(circle,rgba(255,255,255,.95) 0 .6px,transparent 1.2px) 0px 5% / 56px 3px no-repeat,radial-gradient(circle,rgba(255,255,255,.75) 0 .5px,transparent 1px) 14px 19% / 78px 3px no-repeat,radial-gradient(circle,rgba(255,210,210,.7) 0 .6px,transparent 1.2px) 37px 32% / 64px 3px no-repeat,radial-gradient(circle,rgba(255,255,255,.85) 0 .6px,transparent 1.2px) 9px 48% / 92px 3px no-repeat,radial-gradient(circle,rgba(255,235,235,.6) 0 .4px,transparent .9px) 28px 62% / 50px 3px no-repeat,radial-gradient(circle,rgba(255,255,255,.8) 0 .55px,transparent 1.1px) 22px 76% / 70px 3px no-repeat,radial-gradient(circle,rgba(255,200,200,.65) 0 .5px,transparent 1px) 41px 92% / 60px 3px no-repeat;background-repeat:repeat-x;animation:warpstars-fast 3.4s linear infinite}.brand-name:after{background:radial-gradient(circle,rgba(200,220,255,.5) 0 .45px,transparent .9px) 6px 12% / 110px 3px no-repeat,radial-gradient(circle,rgba(255,255,255,.45) 0 .4px,transparent .8px) 24px 38% / 96px 3px no-repeat,radial-gradient(circle,rgba(220,230,255,.4) 0 .4px,transparent .8px) 0px 57% / 124px 3px no-repeat,radial-gradient(circle,rgba(255,255,255,.5) 0 .45px,transparent .9px) 33px 73% / 100px 3px no-repeat,radial-gradient(circle,rgba(210,225,255,.4) 0 .4px,transparent .8px) 18px 88% / 132px 3px no-repeat;background-repeat:repeat-x;opacity:.85;animation:warpstars-slow 6s linear infinite}@keyframes warpstars-fast{0%{background-position-x:56px,78px,64px,92px,50px,70px,60px}to{background-position-x:0,0,0,0,0,0,0}}@keyframes warpstars-slow{0%{background-position-x:110px,96px,124px,100px,132px}to{background-position-x:0,0,0,0,0}}@keyframes warpjitter{0%,to{transform:translate(0)}47%{transform:translate(-.5px)}53%{transform:translate(.5px)}}@media (prefers-reduced-motion: reduce){.brand-name{text-shadow:none;animation:none}.brand-name:before,.brand-name:after{animation:none;opacity:0}}.brand-bar .brand-meta{display:flex;gap:8px;align-items:center;font-size:.78rem;color:var(--muted);letter-spacing:.04em}.brand-bar .till-label{user-select:none;-webkit-user-select:none;cursor:default;letter-spacing:.04em}.brand-bar .till-select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 22px 3px 8px;font-size:.78rem;letter-spacing:.04em;cursor:pointer}.version-popover{min-width:380px}.version-table{width:100%;border-collapse:collapse;font-size:.92rem}.version-table th{text-align:left;color:var(--muted);font-weight:600;padding:6px 12px 6px 0;white-space:nowrap;vertical-align:top}.version-table td{padding:6px 0;font-variant-numeric:tabular-nums}.version-table code{background:var(--panel-2);padding:2px 6px;border-radius:3px;font-size:.88rem}.version-stale{color:var(--warn);font-weight:600}.version-ok{color:var(--ok);font-weight:600}.version-muted{color:var(--muted);font-weight:500}.version-popover-actions{margin-top:16px;display:flex;gap:8px;justify-content:flex-end}.brand-bar .brand-name{cursor:pointer}.brand-bar .table-pill{background:var(--ls-red);color:#fff;font-weight:700;padding:3px 8px;border-radius:4px;font-size:.78rem;letter-spacing:.04em}.receipt{display:grid;grid-template-rows:auto 1fr auto;min-height:0}.receipt-header{padding:8px 14px 6px;display:flex;justify-content:space-between;align-items:baseline}.receipt-header .title{text-transform:uppercase;font-size:.75rem;letter-spacing:.1em;color:var(--muted);font-weight:700}.receipt-header .sid{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;color:var(--muted)}.receipt-lines{overflow-y:auto;padding:4px 0 8px;scrollbar-width:thin}.receipt-empty{padding:60px 16px;color:var(--muted);text-align:center;font-size:.95rem;line-height:1.5}.receipt-row{position:relative;border-bottom:1px solid var(--border-soft);overflow:hidden;touch-action:pan-y}.receipt-row-front{position:relative;z-index:1;display:grid;grid-template-columns:36px minmax(0,1fr) 46px 46px auto;align-items:center;gap:8px;padding:12px;background:var(--panel);transition:transform .18s ease;will-change:transform}.receipt-row.dragging .receipt-row-front{transition:none}.receipt-row-back{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:var(--error);color:#fff;font-weight:700;letter-spacing:.04em}.receipt-row-back .trash{width:100%;text-align:center;font-size:1rem}.receipt-row-front:hover{background:var(--panel-2)}.receipt-row .qty-badge{background:var(--ls-red-soft);color:var(--ls-red-2);border-radius:6px;padding:5px 0;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;font-size:1rem}.receipt-row .nm{font-size:1rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.receipt-row .step{min-width:0;height:44px;font-weight:800;font-size:1.4rem;line-height:1;padding:0}.receipt-row .total{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;font-size:1.05rem;white-space:nowrap;padding-left:6px}.receipt-row.discount .nm,.receipt-row.discount .total{color:var(--ls-red-2);font-style:italic}.receipt-row.discount .qty-badge{visibility:hidden}.receipt-summary{padding:10px 14px;border-top:1px solid var(--border);background:var(--panel-2)}.receipt-summary .vat{display:flex;justify-content:space-between;color:var(--muted-2);font-size:.8rem;font-variant-numeric:tabular-nums}.receipt-summary .grand{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px;padding-top:8px;border-top:1px solid var(--border)}.receipt-summary .grand .label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}.receipt-summary .grand .amount{font-size:1.85rem;font-weight:800;font-variant-numeric:tabular-nums}.actions{padding:10px;display:grid;gap:6px;border-top:1px solid var(--border)}.actions .secondary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.actions .secondary-row button{padding:.75rem .4rem;font-size:.85rem;font-weight:600}.actions .btn-void{background:transparent;border-color:var(--error);color:var(--error)}.actions .btn-discount{background:var(--panel-2);border-color:var(--ls-red);color:var(--ls-red-2)}.actions .btn-tafels,.actions .btn-preview{background:var(--panel-2)}.actions .btn-pay{background:var(--ls-red);border-color:var(--ls-red);color:#fff;font-weight:800;font-size:1.1rem;padding:1rem .6rem;letter-spacing:.04em}.actions .btn-pay:hover:not(:disabled){background:var(--ls-red-2);border-color:var(--ls-red-2)}.actions .btn-pay-large{width:100%;font-size:1.3rem;padding:1.2rem;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 4px 12px #d6001c59}.env-badge{display:inline-block;margin-left:8px;padding:1px 6px;border-radius:4px;font-size:.62rem;letter-spacing:.1em;font-weight:800;vertical-align:middle}.env-badge.env-test{background:var(--warn);color:#1a1a1a}.mollie-mode-card,.mollie-status-card{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-top:14px}.mollie-mode-card{display:flex;justify-content:space-between;align-items:center;gap:16px}.mode-switch{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.mode-btn{padding:8px 18px;background:var(--panel);color:var(--muted-2);border:none;border-radius:0;font-weight:800;letter-spacing:.08em;font-size:.85rem;cursor:pointer}.mode-btn.active{background:var(--warn);color:#1a1a1a}.mode-btn.live.active{background:var(--ls-red);color:#fff}.kv-table{width:100%;border-collapse:collapse;font-size:.9rem}.kv-table th{text-align:left;font-weight:600;color:var(--muted);padding:4px 12px 4px 0;width:220px}.kv-table td{padding:4px 0}.kv-table code{font-size:.85rem;background:var(--panel);padding:2px 6px;border-radius:3px}.card-checkout{min-width:420px;max-width:92vw;padding:0;overflow:hidden}.card-checkout-head{display:flex;justify-content:space-between;align-items:baseline;padding:14px 18px;background:var(--panel-2);border-bottom:1px solid var(--border)}.card-checkout-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700}.card-checkout-amount{font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums}.card-checkout-body{padding:36px 24px 32px;display:flex;flex-direction:column;align-items:center;gap:12px;min-height:200px;justify-content:center}.card-checkout-icon{font-size:4rem;line-height:1}.card-checkout-icon.ok{color:var(--ok)}.card-checkout-icon.err{color:var(--error)}.card-checkout-body.stage-waiting .card-checkout-icon{animation:card-pulse 1.4s ease-in-out infinite}@keyframes card-pulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.08);opacity:1}}.card-checkout-msg{font-size:1.15rem;font-weight:600;text-align:center}.card-checkout-hint{color:var(--muted);font-size:.9rem;text-align:center;max-width:360px}.card-checkout-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--border)}.payment-chooser{min-width:420px}.payment-chooser-head{display:flex;justify-content:space-between;align-items:baseline;padding:0 0 14px;border-bottom:1px solid var(--border);margin-bottom:14px}.payment-chooser-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:600}.payment-chooser-amount{font-size:2rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text)}.payment-chooser-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pay-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px 16px;border-radius:12px;cursor:pointer;border:2px solid var(--border);background:var(--panel-2);color:var(--text);font-size:1rem;transition:transform .05s,background .08s,border-color .08s}.pay-choice:hover{transform:translateY(-2px)}.pay-choice-icon{font-size:2.6rem;line-height:1}.pay-choice-label{font-weight:800;font-size:1.1rem;letter-spacing:.04em;text-transform:uppercase}.pay-choice-cash{background:#29c46f1f;border-color:var(--ok)}.pay-choice-cash:hover{background:#29c46f33}.pay-choice-elec{background:#3a9dff1a;border-color:#3a9dff}.pay-choice-elec:hover{background:#3a9dff2e}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:22px;min-width:360px;max-width:90vw;box-shadow:0 20px 60px #0009}.modal h3{margin:0 0 12px;color:var(--ls-red-2);letter-spacing:.04em;font-size:1.15rem}.modal .total-row{display:flex;justify-content:space-between;align-items:baseline;font-size:1.6rem;margin-bottom:12px}.modal .total-row strong{font-weight:800;font-variant-numeric:tabular-nums}.numpad{display:grid;grid-template-columns:repeat(3,70px);gap:6px;margin-top:10px;justify-content:center}.numpad button{padding:16px 0;font-size:1.3rem;font-weight:600;background:var(--panel-2)}.device-gate{display:grid;place-items:center;height:100vh;background:var(--bg);padding:24px}.device-gate-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:36px 32px;max-width:520px;text-align:center;box-shadow:0 8px 32px #0006}.device-gate-card h1{margin:0 0 12px;font-size:1.4rem;color:var(--ls-red-2);letter-spacing:.04em}.device-gate-card p{color:var(--muted-2);line-height:1.5;margin:0}.device-gate-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--ls-red);border-radius:50%;animation:spin .7s linear infinite;margin:24px auto 0}@keyframes spin{to{transform:rotate(360deg)}}.banner-error{background:#ff5d5d1f;color:var(--error);padding:10px 14px;text-align:center;border-bottom:1px solid var(--error);font-weight:500}.editor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));grid-auto-rows:88px;gap:6px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;min-height:200px}.editor-tile{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:8px 10px;border-radius:6px;background:#464646;color:#fff;font-size:.88rem;font-weight:600;line-height:1.15;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 1px 2px #00000059;overflow:hidden}.editor-tile:active{cursor:grabbing}.editor-tile .name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.editor-tile .price{font-weight:700;align-self:flex-end;font-variant-numeric:tabular-nums}.editor-tile .del,.editor-line .del,.editor-spacing .del{position:absolute;top:2px;right:4px;background:#0006;color:#fff;border:0;border-radius:50%;width:18px;height:18px;font-size:.95rem;line-height:1;padding:0;opacity:0;cursor:pointer;transition:opacity .1s}.editor-tile:hover .del,.editor-line:hover .del,.editor-spacing:hover .del{opacity:1}.editor-line{grid-column:1 / -1;position:relative;background:var(--ls-red-soft);border:1px dashed var(--ls-red);color:var(--ls-red-2);border-radius:4px;height:24px;display:flex;align-items:center;justify-content:center;font-size:.75rem;letter-spacing:.06em;cursor:grab;-webkit-user-select:none;user-select:none}.editor-spacing{position:relative;background:var(--panel-3);border:1px dashed var(--border);color:var(--muted);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.75rem;letter-spacing:.06em;cursor:grab;-webkit-user-select:none;user-select:none}.floor-bar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.floor-tabs{display:flex;gap:4px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:3px}.floor-tab{background:transparent;border:0;border-radius:6px;padding:.4rem .9rem;font-size:.88rem;color:var(--muted-2);cursor:pointer}.floor-tab:hover{background:#ffffff0a;color:var(--text)}.floor-tab.active{background:var(--ls-red);color:#fff;font-weight:700;box-shadow:0 2px 6px #d6001c59}.floor-tab-add{color:var(--muted);font-weight:700}.floor-grid{display:grid;grid-template-columns:1fr 220px;gap:12px;min-height:70vh}.floor-canvas-wrap{background:#1a1f28;border:1px solid var(--border);border-radius:10px;overflow:hidden;position:relative;display:flex;align-items:center}.floor-canvas-svg{display:block;width:100%;height:auto;touch-action:none;-webkit-user-select:none;user-select:none}.floor-side{align-self:start;display:flex;flex-direction:column;gap:12px}.table-picker-modal{width:min(92vw,1100px);max-width:none;padding:16px}.table-picker-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.table-picker-canvas{background:#1a1f28;border:1px solid var(--border);border-radius:10px;overflow:hidden}.table-picker-canvas .floor-canvas-svg{width:100%;height:auto}.floor-side-section{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px;min-width:0}.floor-side-section input,.floor-side-section select{width:100%;min-width:0;box-sizing:border-box}.floor-side-title{color:var(--muted);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:8px}.floor-side-empty{color:var(--muted);font-size:.85rem;text-align:center;padding:16px;border:1px dashed var(--border-soft);border-radius:8px}.floor-side-add-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.add-shape{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 6px 8px;font-size:.75rem;color:var(--muted-2);cursor:pointer}.add-shape:hover{background:var(--panel-3);color:var(--text)}.floor-side-danger{background:transparent;color:var(--error);border:1px solid var(--error);width:100%;margin-top:8px;padding:.5rem;border-radius:6px;cursor:pointer}.floor-side-danger:hover{background:#ff5d5d1a}.floor-delete-floor{background:transparent;color:var(--muted);border:1px solid var(--border);padding:.4rem;border-radius:6px;font-size:.8rem;cursor:pointer}.floor-delete-floor:hover{color:var(--error);border-color:var(--error)}.receipt-preview-modal{width:380px;max-width:92vw;max-height:88vh;padding:0;overflow:hidden;display:flex;flex-direction:column;background:#f8f6ef;color:#1a1a1a}.receipt-preview-modal .receipt-preview-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#e7e2d4;border-bottom:1px dashed rgba(0,0,0,.3)}.receipt-preview-modal .receipt-preview-head strong{color:#1a1a1a}.receipt-preview-modal .receipt-preview-head button{background:transparent;color:#1a1a1a;border:1px solid #999}.receipt-preview-paper{flex:1;overflow-y:auto;padding:14px 16px;background:#f8f6ef}.receipt-preview-paper pre{margin:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.35;white-space:pre;color:#1a1a1a}.receipt-preview{position:fixed;top:0;right:0;bottom:0;width:340px;background:#f8f6ef;color:#1a1a1a;border-left:1px solid var(--border);z-index:101;box-shadow:-8px 0 24px #00000080;display:flex;flex-direction:column}.receipt-preview-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#e7e2d4;border-bottom:1px dashed rgba(0,0,0,.3)}.receipt-preview-head strong{color:#1a1a1a}.receipt-preview-head button{background:transparent;color:#1a1a1a;border:1px solid #999}.receipt-preview-body{flex:1;margin:0;padding:12px 14px;overflow-y:auto;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.35;white-space:pre;color:#1a1a1a;background:#f8f6ef}.admin-sidebar{background:var(--panel);border-right:1px solid var(--border);padding:14px 10px 12px;display:flex;flex-direction:column;gap:2px}.admin-brand{display:flex;align-items:center;padding:6px 10px 18px}.admin-brand .brand-name{font-size:1.05rem}.nav{display:flex;flex-direction:column;gap:2px}.nav-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:0;border-radius:8px;padding:8px 10px;font-size:.92rem;color:var(--text);cursor:pointer;position:relative;transition:background .08s ease}.nav-row:hover{background:#ffffff0a}.nav-row .nav-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;color:var(--muted-2)}.nav-row.active{background:#d6001c1f;color:var(--text);font-weight:600}.nav-row.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:2px;background:var(--ls-red)}.nav-row.active .nav-icon{color:var(--ls-red-2)}.nav-group{position:relative;padding-bottom:2px}.nav-group-row .nav-caret{font-size:.7rem;color:var(--muted);transition:transform .12s ease;transform:rotate(0)}.nav-group-row .nav-caret.open{transform:rotate(90deg)}.nav-row.active-branch{color:var(--text);background:#ffffff0a}.nav-row.active-branch .nav-icon{color:var(--ls-red-2)}.nav-children{position:relative;margin-left:22px;padding-left:12px;display:flex;flex-direction:column;gap:2px;margin-top:2px;margin-bottom:4px}.nav-children:before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:1px;background:var(--border)}.nav-child{padding:6px 10px;font-size:.88rem;color:var(--muted-2);grid-template-columns:12px 1fr}.nav-child .nav-child-rail{position:absolute;left:-8px;top:50%;width:10px;height:1px;background:var(--border)}.nav-child.active{color:var(--text);background:#d6001c1f;font-weight:600}.nav-child.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:2px;background:var(--ls-red)}.nav-child.active .nav-child-rail{background:var(--ls-red);height:2px}.nav-footer{border-top:1px solid var(--border-soft);padding-top:10px;margin-top:6px;display:flex;flex-direction:column;gap:2px}.nav-back{color:var(--muted);text-align:center;font-size:.78rem;text-decoration:none;padding:6px;border-radius:6px}.nav-back:hover{color:var(--text);background:#ffffff0a}.cat-list{list-style:none;padding:0;margin:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.cat-row{display:grid;grid-template-columns:24px 56px 1fr 50px 100px;align-items:center;gap:12px;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--border-soft);cursor:grab;-webkit-user-select:none;user-select:none}.icon-picker{position:relative;display:inline-block}.icon-trigger{display:inline-flex;align-items:center;justify-content:center;width:48px;height:36px;padding:0;background:var(--panel);border:1px solid var(--border);border-radius:6px;font-size:1.4rem;line-height:1;cursor:pointer}.icon-trigger:hover{background:var(--panel-2)}.icon-popover{position:absolute;z-index:200;top:calc(100% + 4px);left:0;box-shadow:0 12px 32px #000000b3;border-radius:8px}.icon-loading{padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--muted);min-width:280px;text-align:center}.cat-row:last-child{border-bottom:0}.cat-row:hover{background:var(--panel-2)}.cat-row:active{cursor:grabbing}.cat-row .grip{color:var(--muted);font-size:1rem;letter-spacing:-.2em;cursor:grab}.cat-row .name{font-weight:500}.cat-row .ord{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;font-size:.85rem}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:grid;gap:4px}.kpi-label{font-size:.7rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.kpi-value{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}.sales-chart-svg-wrap{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:6px}.chart-tooltip{position:absolute;top:12px;z-index:20;background:#141820f2;border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-width:200px;pointer-events:none;box-shadow:0 8px 24px #00000080;font-size:.85rem}.chart-tooltip-hour{color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.chart-tooltip-row{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;padding:2px 0}.chart-tooltip-dot{width:10px;height:10px;border-radius:3px}.chart-tooltip-label{color:var(--muted-2)}.chart-tooltip-val{font-weight:700;font-variant-numeric:tabular-nums}.chart-tooltip-total{border-top:1px solid var(--border);margin-top:4px;padding-top:6px}.chart-tooltip-total .chart-tooltip-label,.chart-tooltip-total .chart-tooltip-val{color:var(--text)}.chart-tooltip-empty{color:var(--muted);font-style:italic}.sales-chart-svg{width:100%;height:220px;display:block}.chart-legend{display:flex;gap:16px;justify-content:center;margin-top:4px;margin-bottom:16px;color:var(--muted);font-size:.85rem}.legend-dot{display:inline-flex;align-items:center;gap:6px}.legend-dot .dot{width:10px;height:10px;border-radius:3px;display:inline-block}.chart-bar-stack{position:relative;width:100%;display:flex;flex-direction:column-reverse;border-radius:3px 3px 0 0;overflow:hidden;min-height:2px}.chart-bar-seg{display:block;min-height:1px}.chart-bar-stack:hover{filter:brightness(1.15)}.sales-chart{display:grid;grid-template-columns:1fr 60px;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 14px 8px;margin-bottom:16px;min-height:200px}.chart-bars{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;align-items:end;height:180px;border-bottom:1px solid var(--border);padding-bottom:4px}.chart-col{display:grid;grid-template-rows:1fr auto;height:100%;gap:2px}.chart-bar-wrap{display:flex;align-items:flex-end;height:100%}.chart-bar{position:relative;width:100%;background:linear-gradient(180deg,var(--ls-red-2) 0%,var(--ls-red) 100%);border-radius:3px 3px 0 0;min-height:2px;transition:filter .1s}.chart-bar:hover{filter:brightness(1.15)}.chart-bar .chart-amount{position:absolute;top:-16px;left:50%;transform:translate(-50%);font-size:.65rem;color:var(--muted-2);white-space:nowrap;opacity:0;font-variant-numeric:tabular-nums}.chart-col:hover .chart-amount{opacity:1}.chart-hour{text-align:center;color:var(--muted);font-size:.7rem;font-variant-numeric:tabular-nums}.chart-y-axis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;color:var(--muted);font-size:.72rem;height:180px;font-variant-numeric:tabular-nums}.tickets-table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.tickets-table th,.tickets-table td{padding:8px 12px;text-align:left}.tickets-table thead th{color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;background:var(--panel-2);border-bottom:1px solid var(--border)}.tickets-table tbody tr{border-top:1px solid var(--border-soft)}.tickets-table tbody tr:hover{background:var(--panel-2)}.tickets-table tbody tr.voided td{color:var(--muted);text-decoration:line-through}.pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.status-paid{background:#29c46f2e;color:var(--ok)}.status-open{background:#ffb13a2e;color:var(--warn)}.status-voided{background:#ff5d5d2e;color:var(--error)}.pm-pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:700;color:#0e1116;margin-right:4px}
