:root{--bg:#f6f6f6;--panel:#fff;--panel-2:#eef0f2;--border:#e4e7eb;--text:#1a1a1a;--muted:grey;--primary:#e07e3c;--primary-600:#c6723a;--accent:#f6a649;--secondary:#c38c65;--gradient-primary:linear-gradient(310deg,#e07e3c,#c6723a);--gradient-accent:linear-gradient(90deg,#e07e3c,#f3a953);--ok:#82d616;--bad:#ea0606;--shadow-card:0 20px 27px 0 rgba(0,0,0,.05);--shadow-soft:0 4px 12px rgba(0,0,0,.06);--shadow-btn:0 4px 7px -1px rgba(224,126,60,.35);--radius:14px}*{box-sizing:border-box}[role=button],a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Open Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;height:100%}.pos-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.offline-banner{display:flex;align-items:center;gap:.5rem;padding:.35rem 1rem;background:var(--bad);color:#fff;font-size:.8rem;font-weight:600;flex:0 0 auto}.offline-banner .dot{background:#fff}.offline-banner-count{background:hsla(0,0%,100%,.2);border-radius:999px;padding:.1rem .5rem;font-weight:600}.offline-banner-reload{margin-left:auto;background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.4);color:#fff;border-radius:6px;padding:.15rem .6rem;font-size:.8rem;font-weight:600;cursor:pointer}.offline-banner-reload:hover{background:hsla(0,0%,100%,.25)}.offline-reload-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.offline-reload-dialog{background:var(--surface,#fff);color:var(--text,#111);border-radius:10px;padding:1.25rem;max-width:360px;box-shadow:0 8px 30px rgba(0,0,0,.3)}.offline-reload-dialog h3{margin:0 0 .5rem;font-size:1rem}.offline-reload-dialog p{margin:0 0 1rem;font-size:.9rem;line-height:1.4}.offline-reload-actions{display:flex;justify-content:flex-end;gap:.5rem}.offline-reload-actions .secondary{background:transparent;border:1px solid var(--border,#ccc);border-radius:6px;padding:.4rem .9rem;cursor:pointer}.offline-reload-actions .danger{background:var(--bad);color:#fff;border:none;border-radius:6px;padding:.4rem .9rem;cursor:pointer;font-weight:600}.pos-header{display:flex;align-items:center;justify-content:space-between;padding:.3rem .85rem;background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-soft);flex:0 0 auto;gap:.6rem}.pos-brand{font-weight:700;letter-spacing:.3px;color:#fff;font-size:.85rem}.pos-brand small{display:none}.pos-main{flex:1 1;min-height:0;display:flex;flex-direction:column;padding:.4rem 1rem .6rem;width:100%;margin:0 auto;overflow-y:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;max-width:640px;box-shadow:var(--shadow-card)}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:999px;background:hsla(0,0%,100%,.2);color:#fff;font-size:.68rem;line-height:1.15}.pill-text{text-align:left;max-width:3rem}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.ok{background:var(--ok)}.dot.bad{background:var(--bad)}.dot.warn{background:var(--primary)}.muted{color:var(--muted)}.pos-header-right{display:flex;align-items:center;gap:.75rem}.pos-header-right .muted{color:hsla(0,0%,100%,.85)}.branch-select{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;color:#fff}.branch-select select{background:hsla(0,0%,100%,.15);color:#fff;border:1px solid hsla(0,0%,100%,.35);border-radius:8px;padding:.2rem .4rem;font-size:.75rem}.branch-select select option{color:#1a1a1a}.nav-link{background:none;border:none;border-bottom:2px solid transparent;color:hsla(0,0%,100%,.85);text-decoration:none;font-size:.78rem;font-weight:600;font-family:inherit;padding:.3rem .1rem;cursor:pointer}.nav-link:disabled{opacity:.5;cursor:default}.nav-link:hover{color:#fff}.nav-link.active{color:#fff;border-bottom-color:#fff}.login-card{max-width:380px;margin:3rem auto 0}.login-form{gap:1rem;margin-top:1rem}.login-form,.login-form label{display:flex;flex-direction:column}.login-form label{gap:.35rem;font-size:.85rem;color:var(--muted)}.login-form input,.search-input{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;font-size:.95rem}.login-form input:focus,.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(224,126,60,.15)}.order-note-input{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;font-size:.9rem;font-family:inherit;resize:vertical}.order-note-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(224,126,60,.15)}.form-error{color:var(--bad);font-size:.85rem;background:rgba(234,6,6,.08);border:1px solid rgba(234,6,6,.25);border-radius:8px;padding:.5rem .7rem}.btn-primary{background:var(--gradient-primary);color:#fff;border:none;border-radius:10px;padding:.65rem 1rem;font-weight:600;font-size:.95rem;cursor:pointer;box-shadow:var(--shadow-btn);transition:transform .05s,filter .15s}.btn-primary:hover{filter:brightness(1.05)}.btn-primary:active{transform:scale(.99)}.btn-primary:disabled{opacity:.55;cursor:default;box-shadow:none}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.4rem .75rem;font-size:.85rem;cursor:pointer}.btn-ghost:hover{background:var(--panel-2)}.pos-header-right .btn-ghost{color:#fff;border-color:hsla(0,0%,100%,.4);padding:.3rem .6rem;font-size:.75rem}.pos-header-right .btn-ghost:hover{background:hsla(0,0%,100%,.15)}.modal .btn-ghost,.shift-popover .btn-ghost{color:var(--text);border-color:var(--border)}.modal .btn-ghost:hover,.shift-popover .btn-ghost:hover{background:var(--panel-2)}.grid-wrap{display:flex;flex-direction:column;gap:.2rem;min-height:0;height:100%}.grid-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:1rem;flex:0 0 auto;min-height:1rem}.grid-count{font-size:.72rem;white-space:nowrap}.search-input{flex:1 1;max-width:360px}.category-bar{flex-wrap:nowrap;gap:.5rem;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:thin}.cat-card,.category-bar{display:flex;flex:0 0 auto}.cat-card{width:84px;aspect-ratio:1/1;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;border:1px solid var(--border);border-radius:14px;padding:.4rem;cursor:pointer;color:var(--text);background:var(--panel);box-shadow:var(--shadow-soft);transition:border-color .15s,transform .05s,box-shadow .15s}.cat-card:hover{border-color:var(--primary);box-shadow:var(--shadow-card)}.cat-card:active{transform:scale(.96)}.cat-card.active{background:var(--gradient-primary);border-color:transparent;color:#fff;box-shadow:var(--shadow-btn)}.cat-card-icon{width:28px;height:28px;object-fit:contain}.cat-card.active .cat-card-icon{filter:brightness(0) invert(1)}.cat-card-name{font-size:.74rem;font-weight:600;line-height:1.15;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cat-card-count{font-size:.64rem;background:var(--panel-2);color:var(--muted);border-radius:999px;padding:.02rem .4rem}.cat-card.active .cat-card-count{background:hsla(0,0%,100%,.25);color:#fff}.best-sellers{flex:0 0 auto;display:flex;flex-direction:column;gap:.2rem}.best-sellers-head{font-size:.74rem;font-weight:700;color:var(--secondary)}.best-sellers-row{display:flex;gap:.35rem;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:thin}.product-card.compact{flex:0 0 auto;flex-direction:row;align-items:center;gap:.45rem;padding:.3rem .6rem .3rem .3rem;max-width:190px}.product-thumb-sm{position:relative;flex:0 0 auto;width:36px;height:36px;border-radius:7px;overflow:hidden;background:var(--panel-2);display:flex;align-items:center;justify-content:center}.product-thumb-sm .thumb-fallback{font-size:1rem}.compact-info{display:flex;flex-direction:column;min-width:0;gap:.05rem}.compact-info .product-name{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset;display:block}.compact-info .product-price{font-size:.75rem}.product-scroll{flex:1 1;min-height:0;overflow-y:auto}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));grid-gap:.35rem;gap:.35rem}.load-more-row{display:flex;justify-content:center;padding:.9rem 0 .3rem}.load-more-row button{border:1px solid var(--primary);border-radius:8px;background:var(--panel);color:var(--primary-600);padding:.55rem 1rem;cursor:pointer}.load-more-row button:disabled{cursor:wait;opacity:.6}.product-card{display:flex;flex-direction:column;gap:.2rem;text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.3rem;cursor:pointer;color:var(--text);box-shadow:var(--shadow-soft);transition:border-color .15s,transform .05s,box-shadow .15s}.product-card:hover{border-color:var(--primary);box-shadow:var(--shadow-card)}.product-card:active{transform:scale(.97)}.product-thumb{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:var(--panel-2);display:flex;align-items:center;justify-content:center}.thumb-fallback{font-size:1.6rem;font-weight:700;color:var(--secondary)}.product-name{font-weight:600;font-size:.76rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-price-row{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.product-price{font-weight:700;color:var(--primary);font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.opts-badge{font-size:.7rem;font-weight:700;color:var(--secondary);border:1px solid var(--border);border-radius:6px;padding:0 .3rem;line-height:1.2}.product-card.unavailable{cursor:not-allowed;opacity:.55}.product-card.unavailable:hover{border-color:var(--border);box-shadow:var(--shadow-soft)}.product-card.unavailable:active{transform:none}.unavailable-badge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:.3rem;background:rgba(0,0,0,.55);color:#fff;font-size:.72rem;font-weight:700;border-radius:8px}.pos-terminal{flex:1 1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:.75rem;gap:.75rem;align-items:stretch}@media (max-width:900px){.pos-terminal{grid-template-columns:minmax(0,1fr)}}.cart-panel{height:100%;min-height:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;gap:.6rem;box-shadow:var(--shadow-card)}.cart-head{display:flex;align-items:center;justify-content:space-between}.cart-head h2{margin:0;font-size:1rem}.cart-empty{flex:1 1;display:flex;align-items:center;justify-content:center;font-size:.85rem}.cart-lines{display:flex;flex-direction:column;gap:.35rem;flex:1 1;min-height:0;overflow-y:auto}.cart-line{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;grid-gap:.5rem;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--panel-2)}.cart-line-main{display:flex;flex-direction:column;min-width:0}.cart-line-name{font-weight:600;font-size:.85rem}.cart-line-opts{font-size:.7rem}.qty-controls{display:inline-flex;align-items:center;gap:.35rem}.qty-controls button{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;font-size:1.05rem;line-height:1}.qty-controls button:hover{border-color:var(--primary);color:var(--primary)}.cart-line-total{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.changed-tag{color:var(--primary);font-weight:600;font-size:.7rem}.settlement-box{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--panel-2);border-radius:10px;padding:.6rem .8rem}.line-remove{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:.8rem}.line-remove:hover{color:var(--bad)}.totals{display:flex;flex-direction:column;gap:.25rem;padding-top:.4rem;flex:0 0 auto}.totals-line{font-size:.78rem;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.total-row,.totals-line{display:flex;justify-content:space-between}.total-row{font-size:.9rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.total-row.strong{font-weight:700;font-size:1.05rem;color:var(--primary);border-top:1px solid var(--panel-2);padding-top:.4rem;margin-top:.2rem}.total-row.earn-row{color:#5a9e0f;font-size:.85rem}.total-row.discount-row{color:var(--good,#2e9e5b);font-size:.85rem}.promo-box{display:flex;flex-direction:column;gap:.4rem;flex:0 0 auto}.promo-toggle{align-self:flex-start;background:transparent;border:none;padding:.1rem 0;color:var(--muted);font-size:.78rem;cursor:pointer}.promo-toggle:hover{color:var(--primary)}.promo-hint{font-size:.75rem;padding-top:.4rem}.promo-input-row{display:flex;gap:.4rem}.promo-input{flex:1 1;padding:.5rem .6rem;border:1px solid var(--panel-2);border-radius:8px;background:var(--panel);color:inherit;font-size:.85rem;text-transform:uppercase}.promo-input:focus{outline:none;border-color:var(--primary)}.promo-applied{display:flex;align-items:center;gap:.5rem;font-size:.85rem;background:var(--panel-2);border-radius:8px;padding:.4rem .6rem}.promo-tag{font-weight:700;color:var(--primary);flex:1 1}.totals-status{font-size:.7rem;text-align:right}.total-row.diff{font-weight:600}.total-row.diff,.total-row.strong.diff span{color:var(--bad)}.print-toggle-row{display:flex;gap:1rem;font-size:.8rem;color:var(--muted,#666);margin-bottom:.4rem}.print-toggle-row label{display:flex;align-items:center;gap:.35rem;cursor:pointer}.hold-kot-toggle{margin-bottom:.5rem;cursor:pointer}.cart-action-row{display:flex;gap:.5rem}.hold-btn{flex:0 0 auto;padding:.9rem 1rem}.charge-btn{flex:1 1;width:100%;padding:.9rem;font-size:1.1rem}.held-tag{font-size:.75rem;padding:.2rem 0}.hold-message{font-size:.8rem;padding:.2rem 0}.held-groups{display:flex;flex-direction:column;gap:.8rem;max-height:60vh;overflow-y:auto}.held-group{border:1px solid var(--panel-2);border-radius:10px;padding:.6rem .8rem}.held-group-head{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;margin-bottom:.4rem}.held-customer{font-weight:700}.held-order-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .6rem;padding:.35rem 0;border-top:1px solid var(--panel-2);font-size:.85rem}.held-order-row:first-of-type{border-top:none}.held-order-code{font-weight:600;flex:0 0 auto}.held-order-info{display:flex;flex-wrap:wrap;gap:.4rem .6rem;flex:1 1 auto;min-width:0}.held-order-actions{display:flex;gap:.4rem;flex:0 0 auto;margin-left:auto}.lookup-hint{font-size:.75rem}.lookup-hint.matched{color:#5a9e0f;font-weight:600}.lookup-hint.invalid-hint{color:var(--bad)}.phone-input{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#fff}.phone-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(224,126,60,.15)}.phone-input.invalid{border-color:var(--bad)}.phone-input.invalid:focus-within{box-shadow:0 0 0 3px rgba(234,6,6,.15)}.phone-prefix{display:flex;align-items:center;gap:.25rem;padding:0 .6rem;background:var(--panel-2);font-weight:600;border-right:1px solid var(--border);white-space:nowrap}.phone-field,.phone-prefix{color:var(--text);font-size:.9rem}.phone-field{flex:1 1;border:none;outline:none;padding:.5rem .6rem;letter-spacing:.06em;background:transparent;min-width:0}.modal-backdrop{position:fixed;inset:0;background:rgba(26,26,26,.45);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50;color:var(--text)}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:min(560px,100%);max-height:85vh;display:flex;flex-direction:column;padding:1.1rem 1.25rem;box-shadow:0 24px 48px rgba(0,0,0,.18)}.modal-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto}.modal-head h2{margin:0;font-size:1.2rem}.modal-body{overflow-y:auto;display:flex;flex-direction:column;gap:1rem;margin:.75rem 0}.modal .login-form{flex:1 1 auto;min-height:0;overflow-y:auto}.order-type-avail{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.8rem}.order-type-chip{display:inline-flex;align-items:center;background:var(--panel-2);color:var(--text);border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:600}.attr-group{display:flex;flex-direction:column;gap:.4rem}.attr-head{display:flex;align-items:baseline;justify-content:space-between}.attr-name{font-weight:600}.attr-name .req{color:var(--bad)}.attr-name .base-tag{font-size:.65rem;color:var(--secondary);text-transform:uppercase}.attr-type{font-size:.72rem}.option-row{display:flex;flex-wrap:wrap;gap:.5rem}.option-chip{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--border);border-radius:999px;padding:.4rem .8rem;color:var(--text);cursor:pointer;font-size:.85rem}.option-chip.sel{border-color:var(--primary);background:rgba(224,126,60,.12);color:var(--primary-600);font-weight:600}.option-chip.inactive{opacity:.5}.opt-price{color:var(--muted);font-size:.75rem}.modal-foot{display:flex;align-items:center;justify-content:space-between;padding-top:.5rem;border-top:1px solid var(--panel-2);flex:0 0 auto}.unit-price{font-weight:700;color:var(--primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.customer-select{position:relative;flex:0 0 auto;display:flex;flex-direction:column;gap:.35rem}.customer-row{display:flex;gap:.35rem;align-items:stretch}.customer-row .phone-input{flex:1 1}.name-search-toggle{flex:0 0 auto;background:#fff;border:1px solid var(--border);border-radius:10px;padding:0 .6rem;cursor:pointer;color:var(--muted);font-size:.85rem}.name-search-toggle.open,.name-search-toggle:hover{border-color:var(--primary);color:var(--primary-600)}.customer-input{width:100%;max-width:none}.customer-dropdown{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;background:var(--panel);border:1px solid var(--border);border-radius:10px;max-height:240px;overflow-y:auto;box-shadow:var(--shadow-card)}.customer-option{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--panel-2);padding:.5rem .7rem;color:var(--text);cursor:pointer}.customer-option:hover{background:var(--panel-2)}.customer-option.add-new{color:var(--primary);font-weight:600}.cust-meta{font-size:.72rem}.customer-chip{display:flex;align-items:center;gap:.5rem;background:rgba(224,126,60,.1);border:1px solid rgba(224,126,60,.25);border-radius:10px;padding:.4rem .6rem}.customer-chip .cust-name{font-weight:600;flex:1 1}.customer-create{display:flex;flex-direction:column;gap:.5rem}.customer-create .search-input{width:100%;max-width:none}.customer-create-actions{display:flex;justify-content:flex-end;gap:.5rem}.customer-phone-row{margin-top:.5rem}.matched-option{width:100%;text-align:left;background:transparent;border:none;padding:.3rem 0;cursor:pointer}.shift-menu{position:relative}.shift-trigger{display:inline-flex;align-items:center;gap:.3rem;background:hsla(0,0%,100%,.15);color:#fff;border:1px solid hsla(0,0%,100%,.35);border-radius:999px;padding:.2rem .55rem;font-size:.7rem;font-weight:600;cursor:pointer;white-space:nowrap}.shift-trigger:hover{background:hsla(0,0%,100%,.25)}.shift-popover-backdrop{position:fixed;inset:0;z-index:40}.shift-popover{position:absolute;top:calc(100% + .4rem);right:0;z-index:41;display:flex;flex-direction:column;gap:.3rem;min-width:200px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.6rem;box-shadow:var(--shadow-card)}.shift-popover-label{font-size:.8rem;font-weight:600;padding-bottom:.3rem;border-bottom:1px solid var(--border);margin-bottom:.15rem}.shift-popover .btn-ghost{justify-content:flex-start;text-align:left;padding:.4rem .6rem;font-size:.82rem;border-color:var(--border);color:var(--text)}.shift-popover .btn-ghost:hover{background:var(--panel-2)}.close-result{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}.close-result .btn-ghost,.close-result .btn-primary{width:100%}.shift-closed-check{width:48px;height:48px;border-radius:50%;background:rgba(34,160,90,.12);color:var(--good,#22a05a);display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin:.25rem auto}.header-search{flex:0 1 320px;min-width:0;padding:.3rem .6rem;font-size:.85rem}.order-type-row{display:flex;gap:.35rem;flex:0 0 auto}.order-type-row .option-chip{flex:1 1;justify-content:center;border-radius:8px;padding:.45rem .25rem;font-size:.8rem}.cart-order-detail{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--muted);margin:0}.cart-order-detail span{flex:0 0 auto}.cart-order-detail input{flex:1 1;min-width:0;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font-size:.9rem}.cart-order-detail input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(224,126,60,.15)}.cart-note-field{display:flex;flex-direction:column;gap:.3rem;font-size:.78rem;color:var(--muted);margin:0}.cart-note-field .order-note-input{width:100%;box-sizing:border-box;resize:none}.method-tabs{flex-wrap:wrap}.terminal-hint{justify-content:flex-start;padding:.5rem 0;font-size:.85rem}.receipt{background:#fff;color:#111;border:1px solid var(--border);border-radius:10px;padding:1rem;font-family:Courier New,monospace;font-size:.85rem;margin:.5rem 0}.receipt .muted{color:#555}.receipt-head{text-align:center;margin-bottom:.5rem}.receipt-lines{border-top:1px dashed #999;border-bottom:1px dashed #999;padding:.5rem 0}.receipt-line{display:flex;justify-content:space-between;gap:1rem}.receipt-line.strong{font-weight:700}.receipt-totals{padding-top:.5rem}@media print{body *{visibility:hidden}#receipt,#receipt *{visibility:visible}#receipt{position:absolute;left:0;top:0;width:100%}}.reports-page{display:flex;flex-direction:column;gap:1.25rem}.reports-head{display:flex;align-items:center;gap:1rem;justify-content:space-between}.reports-head h1{margin:0;font-size:1.4rem;flex:0 0 auto}.report-tabs{display:flex;gap:.4rem;margin-right:auto}.reports-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:var(--shadow-card)}.reports-filters label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--muted)}.reports-filters input[type=date],.reports-filters select{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font-size:.9rem}.quick-range-row{display:flex;flex-wrap:wrap;gap:.4rem}.quick-range-row .option-chip{text-transform:capitalize;padding:.35rem .7rem;font-size:.8rem}.stat-grid{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.stat-tile{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:.8rem 1rem;display:flex;flex-direction:column;gap:.3rem;box-shadow:var(--shadow-card)}.stat-tile.warn{border-color:var(--bad)}.stat-tile .stat-label{font-size:.75rem;color:var(--muted)}.stat-tile .stat-value{font-size:1.3rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-tile.warn .stat-value{color:var(--bad)}.reports-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.report-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:var(--shadow-card);min-width:0}.report-card h3{margin:0 0 .75rem;font-size:1rem}.report-table{width:100%;border-collapse:collapse;font-size:.85rem}.report-table th{text-align:left;font-weight:600;color:var(--muted)}.report-table td,.report-table th{border-bottom:1px solid var(--panel-2);padding:.4rem .5rem}.report-table td{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-table tbody tr:last-child td{border-bottom:none}.report-table td.warn-cell{color:var(--bad);font-weight:600}.table-scroll{overflow-x:auto}.recent-orders-card{grid-column:1/-1}.recent-orders-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.6rem}.recent-orders-header h3{margin:0}.recent-orders-search{min-width:220px;max-width:320px;flex:1 1 220px;padding:.4rem .6rem;border:1px solid var(--panel-2);border-radius:6px;font-size:.85rem}.report-table tfoot td{font-weight:700;border-top:2px solid var(--panel-2);border-bottom:none}.report-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding-top:.75rem}.settings-page{display:flex;flex-direction:column;gap:.9rem}.settings-actions{display:flex;align-items:center;gap:.75rem}.settings-hint{font-size:.8rem;margin:0}.save-ok{color:#5a9e0f;font-size:.85rem}.printer-settings{gap:.6rem}.printer-settings .reports-head h1{font-size:1.15rem}.printer-hint{font-size:.75rem;line-height:1.4;margin:0}.printer-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;box-shadow:var(--shadow-card)}.printer-card-title{margin:0 0 .5rem;font-size:.9rem;font-weight:700}.printer-field-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem}.printer-field{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--muted)}.printer-field input{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .55rem;font-size:.85rem;min-width:0}.printer-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(224,126,60,.15)}.printer-field-ip{flex:2 1 200px}.printer-field-port{flex:1 1 90px}.printer-field-actions{display:flex;gap:.4rem;margin-left:auto}.printer-result{display:block;margin-top:.5rem;font-size:.78rem}.printer-same-device{font-size:.82rem;padding:.1rem}.floor-tabs,.printer-same-device{display:flex;align-items:center;gap:.4rem}.floor-tabs{flex-wrap:wrap}.floor-canvas{position:relative;width:100%;flex:0 0 auto;aspect-ratio:28/30;background:linear-gradient(to right,var(--panel-2) 1px,transparent 1px),linear-gradient(to bottom,var(--panel-2) 1px,transparent 1px),var(--panel);background-size:calc(100% / 28) calc(100% / 30),calc(100% / 28) calc(100% / 30),auto;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;touch-action:none}.floor-empty{inset:0;margin:0}.floor-empty,.table-node{position:absolute;display:flex;align-items:center;justify-content:center}.table-node{flex-direction:column;gap:.05rem;background:rgba(224,126,60,.12);border:2px solid var(--primary);border-radius:10px;color:var(--primary-600);cursor:pointer;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;transition:box-shadow .1s}.table-node.round{border-radius:50%}.table-node:hover{box-shadow:var(--shadow-btn)}.table-node .table-node-name{font-weight:700;font-size:.85rem;line-height:1.1}.table-node .table-node-seats{font-size:.65rem;opacity:.75}.table-node .table-node-seats:after{content:" seats"}.table-node.occupied{background:rgba(234,6,6,.12);border-color:var(--bad);color:var(--bad)}.table-node.selected{background:var(--gradient-primary);color:#fff;border-color:transparent;box-shadow:var(--shadow-btn)}.marker-node{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:.68rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}.marker-node.editable{pointer-events:auto;cursor:pointer}.marker-node .marker-label{padding:0 .2rem}.marker-entrance{background:rgba(130,214,22,.15);border:2px dashed #5a9e0f;color:#5a9e0f}.marker-exit{background:rgba(234,6,6,.08);border:2px dashed var(--bad);color:var(--bad)}.marker-counter{background:var(--panel-2);border:2px solid var(--secondary);color:var(--secondary);border-radius:8px}.table-select-row{display:flex;align-items:center;gap:.4rem}.table-select-row .btn-ghost{flex:1 1;text-align:left}.reprint-actions{display:flex;gap:.25rem}.btn-sm{padding:.15rem .45rem;font-size:.9rem;line-height:1}.reprint-msg{font-size:.7rem;max-width:140px;white-space:normal;margin-top:.15rem}.table-chip{display:inline-flex;align-items:center;gap:.4rem;background:rgba(224,126,60,.12);border:1px solid rgba(224,126,60,.3);border-radius:8px;padding:.35rem .6rem;font-size:.85rem;font-weight:600;color:var(--primary-600)}.picker-manual-row{display:flex;gap:.4rem;align-items:center;padding-top:.5rem}.picker-manual-row input{flex:1 1;border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font-size:.9rem}.picker-legend{display:flex;gap:1rem;font-size:.72rem;padding-top:.4rem}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.3rem;vertical-align:middle}.legend-dot.free{background:rgba(224,126,60,.25);border:1px solid var(--primary)}.legend-dot.busy{background:rgba(234,6,6,.2);border:1px solid var(--bad)}