:root{--bg:#f4f5f7;--card:#fff;--ink:#17191c;--muted:#6b7280;--line:#e5e7eb;--accent:#d99a24;--dark:#111315;--good:#15803d;--warn:#b45309;--bad:#b42318;--blue:#1d4ed8}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:#17191c}.login-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:30px;display:grid;gap:15px;box-shadow:0 30px 80px #0006}.logo-mark{width:54px;height:54px;border-radius:15px;background:var(--accent);display:grid;place-items:center;font-weight:1000;font-size:28px;color:#111}.logo-mark.small{width:38px;height:38px;border-radius:10px;font-size:20px}.eyebrow,small{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--muted)}h1,h2,h3,p{margin-top:0}.login-card h1{font-size:34px;margin:2px 0}.login-card label,.field{display:grid;gap:6px;font-size:12px;font-weight:800}.login-card input,.field input,.field select,.field textarea,.search{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;min-width:0}.pass{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.pass input{border:0;flex:1}.pass button{border:0;background:#fff}.primary,.ghost,.soft,.danger,.tab{border:0;border-radius:9px;padding:10px 13px;font-weight:850;cursor:pointer}.primary{background:var(--dark);color:#fff}.ghost{background:#25282c;color:#fff}.soft{background:#eef0f2;color:#17191c}.danger{background:#fee2e2;color:var(--bad)}.full{width:100%}.muted{color:var(--muted)}.app{min-height:100vh;display:grid;grid-template-columns:235px 1fr}aside{background:#17191c;color:#fff;padding:16px 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;padding:5px 7px 18px}.brand div:last-child{display:grid}.brand span{font-size:10px;color:#aeb4bd;letter-spacing:.12em}nav{display:grid;gap:3px;overflow:auto}nav button{border:0;background:transparent;color:#cbd0d6;text-align:left;padding:10px 11px;border-radius:8px;font-weight:750;cursor:pointer}nav button:hover,nav button.active{background:#292d31;color:#fff}.side-foot{margin-top:auto;border-top:1px solid #34383d;padding-top:12px;display:grid;gap:10px}.side-foot #who{font-size:12px;color:#cbd0d6;padding:0 7px}.main{min-width:0}.main>header{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 20px;gap:12px;position:sticky;top:0;z-index:8}.main>header h2{margin:1px 0;font-size:20px}.header-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.live,.chip,.badge{border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900;background:#eef0f2}.live{color:var(--good);background:#ecfdf3}.icon{display:none;border:0;background:#eef0f2;border-radius:8px;padding:8px 10px}#content{padding:18px}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.metric,.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.metric b{display:block;font-size:22px;margin-top:5px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.panel{margin-bottom:12px}.toolbar,.tabs,.filters{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.toolbar .spacer{margin-left:auto}.tab{background:#eef0f2}.tab.active{background:#17191c;color:#fff}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{font-size:11px;color:var(--muted);background:#fafafa}.pos{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(310px,.7fr);gap:12px}.catalog,.bill{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}.menu-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px}.item{border:1px solid var(--line);border-radius:11px;padding:11px;background:#fff;cursor:pointer;min-height:92px}.item:hover{border-color:#aeb4bd}.item b{display:block}.item span{color:var(--muted);font-size:12px}.cart-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);align-items:center}.qty{display:flex;gap:5px;align-items:center}.qty button{border:0;border-radius:7px;width:28px;height:28px}.totals{padding-top:12px}.total-line{display:flex;justify-content:space-between;padding:4px 0}.grand{font-size:20px;border-top:1px solid var(--line);margin-top:6px;padding-top:10px}.kboard{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.kcol{background:#e9ebee;border-radius:12px;padding:9px;min-height:55vh}.ticket{background:#fff;border:1px solid #d7d9dd;border-radius:11px;padding:11px;margin-bottom:8px}.ticket .wait{color:var(--bad);font-weight:900}.ticket ul{padding-left:18px}.status-new{color:var(--blue)}.status-ready{color:var(--good)}.charts{display:grid;grid-template-columns:1.5fr 1fr;gap:12px}.chartbox{height:320px}.modal{position:fixed;inset:0;background:#0008;display:grid;place-items:center;z-index:30;padding:15px}.modal-card{background:#fff;width:min(620px,100%);max-height:90vh;overflow:auto;border-radius:16px;padding:20px;position:relative}.modal-x{position:absolute;right:10px;top:10px;border:0;background:#eee;border-radius:50%;width:30px;height:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.overlay{position:fixed;inset:0;background:#0008;color:#fff;display:grid;place-items:center;z-index:50}.spinner{width:34px;height:34px;border:4px solid #ffffff44;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:fixed;right:18px;bottom:18px;background:#17191c;color:#fff;padding:11px 14px;border-radius:10px;z-index:80;opacity:0;transform:translateY(10px);transition:.2s}#toast.show{opacity:1;transform:none}#printArea{display:none}@media(max-width:1150px){.metrics{grid-template-columns:repeat(3,1fr)}.menu-grid{grid-template-columns:repeat(3,1fr)}.kboard{grid-template-columns:1fr 1fr}}@media(max-width:820px){.app{grid-template-columns:1fr}aside{position:fixed;left:-250px;z-index:20;width:235px;transition:.2s}.app.nav-open aside{left:0}.icon{display:block}.pos,.charts,.grid2,.grid3{grid-template-columns:1fr}.menu-grid{grid-template-columns:repeat(2,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}.kboard{grid-template-columns:1fr}.main>header{padding:0 12px}#content{padding:10px}}@media print{body>*:not(#printArea){display:none!important}#printArea{display:block!important}}
/* Billing POS fixes: fixed five-row cart viewport and persistent totals/actions */
.bill{color:var(--ink);display:flex;flex-direction:column;align-self:start;max-height:calc(100vh - 105px);position:sticky;top:82px}
.bill h3,.bill b,.bill span,.bill label,.cart-row,.cart-item-info,.cart-price{color:var(--ink)}
.cart-scroll{overflow-y:auto;overflow-x:hidden;max-height:285px;min-height:70px;scrollbar-gutter:stable;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cart-row{min-height:56px;background:#fff}.cart-item-info{min-width:0}.cart-item-info b{display:block;white-space:normal}.cart-item-info small{display:block;color:var(--muted);margin-top:2px}.cart-price{white-space:nowrap}.bill-footer{flex:0 0 auto;background:#fff}.bill #complete:disabled{opacity:.7;cursor:not-allowed}.btn-spinner{display:inline-block;width:13px;height:13px;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
@media(max-width:820px){.bill{position:static;max-height:none}.cart-scroll{max-height:285px}}

/* Billing Fix 02: keep split controls/actions inside the bill card */
.bill{max-height:none;overflow:visible}
#paymentArea{min-width:0}
#split{min-width:0}
.split-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.split-grid .field{min-width:0}
.split-grid input,.split-grid select{width:100%;max-width:100%}
@media(max-width:420px){.split-grid{grid-template-columns:1fr}}

/* Billing/Kitchen workflow update */
#split small.muted{display:none!important}
.existing-order{margin-top:8px}.existing-order small{font-weight:600;letter-spacing:0}
.bill{min-width:0}.bill-footer{position:relative;z-index:2}.cart-scroll{height:280px;max-height:280px;min-height:280px}
.split-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.split-grid .field{gap:3px}.split-grid input,.split-grid select{padding:8px;font-size:12px}
.kitchen-head{display:flex;justify-content:space-between;align-items:center}.parcel-tabs{margin-bottom:12px}.parcel-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:10px}.ticket-top{display:flex;justify-content:space-between;align-items:center}.ticket h2{font-size:24px;margin:8px 0}.ticket-edited{border:2px solid #b45309;box-shadow:0 0 0 3px #fef3c7}.edited-alert{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:8px;border-radius:8px;font-size:11px;font-weight:900;margin-bottom:8px;display:flex;gap:7px;align-items:center;justify-content:space-between}.edited-alert .soft{padding:6px 8px}.item-added{background:#fef3c7;border-radius:6px;padding:5px}.added-badge{font-size:9px;font-weight:900;background:#b45309;color:#fff;border-radius:999px;padding:3px 5px}.ticket li small{display:block;margin-top:2px;letter-spacing:0}
/* POS remains left menu + right cart on every screen. On narrow screens the workspace scrolls horizontally instead of stacking. */
@media(max-width:820px){#content{overflow-x:auto}.pos{grid-template-columns:minmax(520px,1.6fr) minmax(300px,.7fr);min-width:840px;gap:8px}.catalog,.bill{padding:9px}.bill{position:sticky;right:0;top:78px;max-height:calc(100vh - 92px)}.menu-grid{grid-template-columns:repeat(3,minmax(120px,1fr));gap:6px}.item{min-height:76px;padding:8px}.cart-scroll{height:280px;max-height:280px;min-height:280px}.parcel-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}.kboard{grid-template-columns:repeat(4,minmax(245px,1fr));min-width:1020px}}
@media(max-width:480px){.pos{grid-template-columns:minmax(430px,1.45fr) minmax(285px,.8fr);min-width:730px}.menu-grid{grid-template-columns:repeat(2,minmax(125px,1fr))}.tab{padding:8px 9px;font-size:11px}.cart-scroll{height:270px;max-height:270px;min-height:270px}.parcel-grid{grid-template-columns:1fr}.split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Billing Fix 04: fixed POS workspace + compact split + previous orders */
.pos{height:calc(100vh - 105px);min-height:560px;overflow:hidden;align-items:stretch}
.catalog,.bill{height:100%;min-height:0;box-sizing:border-box}
.catalog{display:flex;flex-direction:column;overflow:hidden}
.catalog .menu-grid{overflow-y:auto;min-height:0;padding-right:3px}
.bill{position:sticky;top:82px;display:grid;grid-template-rows:auto auto minmax(0,280px) auto;overflow:hidden;max-height:calc(100vh - 105px)}
.cart-scroll{height:auto;min-height:0;max-height:none;overflow-y:auto}
.bill-footer{min-height:0;overflow:visible;padding-top:4px}
.bill-footer .totals{padding-top:5px}.bill-footer .grand{font-size:18px;padding-top:6px;margin-top:3px}
#paymentArea .tabs{margin-bottom:5px;flex-wrap:nowrap}#paymentArea .tab{flex:1;padding:8px 5px}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:5px 0}
.split-part{display:grid;grid-template-columns:minmax(76px,.9fr) minmax(80px,1.1fr);gap:5px;align-items:center;background:#f7f8f9;border:1px solid var(--line);padding:5px;border-radius:9px}
.split-part select,.split-part input{width:100%;min-width:0;padding:7px;border:1px solid var(--line);border-radius:7px;background:#fff}
.billing-tools{display:flex;gap:6px;margin-bottom:8px}.billing-tools button{flex:1}
.order-history{max-height:60vh;overflow:auto}.order-card{border:1px solid var(--line);border-radius:11px;padding:10px;margin-bottom:8px}.order-card-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.order-card-head .spacer{margin-left:auto}.order-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
@media(max-width:820px){.pos{grid-template-columns:minmax(430px,1.45fr) minmax(285px,.8fr);min-width:730px;height:calc(100vh - 90px);min-height:520px}.bill{position:sticky;right:0;top:78px;height:100%;max-height:100%}.catalog{height:100%}.split-grid{grid-template-columns:1fr}.split-part{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.pos{grid-template-columns:minmax(390px,1.4fr) minmax(275px,.85fr);min-width:680px}.bill{padding:7px}.cart-row{min-height:50px;padding:6px 0}.split-part select,.split-part input{padding:6px;font-size:11px}}


/* Table / QR / Waiter update */
.table-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.table-admin-card h2,.waiter-table h2{margin:2px 0 4px;font-size:30px}.table-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.qr-preview{width:min(430px,100%);margin:auto;padding:28px;border-radius:18px;text-align:center;border:1px solid var(--line)}.qr-preview h1{margin:12px 0}.qr-preview #qrHost{display:flex;justify-content:center;margin:18px 0}.qr-preview canvas{max-width:100%;height:auto;background:#fff;padding:12px;border-radius:14px}.qr-preview.compact{margin:14px auto}.qr-placeholder{font-size:76px;line-height:1.1}.waiter-table{border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff}.session-pin{background:#f6f7f8;border-radius:10px;padding:10px;text-align:center;margin:12px 0}.session-pin b{display:block;font-size:30px;letter-spacing:.15em}@media(max-width:820px){.table-actions{grid-template-columns:1fr}.qr-preview{padding:18px}}


/* Billing UI final consolidation — compact toolbar, fixed bill actions, two-column on every device */
#content.billing-mode{padding:10px;overflow:hidden;height:calc(100dvh - 68px)}
.billing-mode .pos-shell{height:100%;min-height:0;display:flex;flex-direction:column;gap:8px}
.billing-mode .pos-toolbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:7px 9px}
.billing-mode .pos-toolbar .tabs,.billing-mode .billing-tools{margin:0;display:flex;gap:6px;flex-wrap:nowrap}
.billing-mode .billing-tools{margin-left:auto}.billing-mode .billing-tools button{flex:0 0 auto;padding:8px 11px}
.billing-mode .pos{flex:1;min-height:0;height:auto!important;min-width:0!important;overflow:hidden!important;display:grid!important;grid-template-columns:minmax(0,1.7fr) minmax(300px,.72fr)!important;gap:8px;align-items:stretch}
.billing-mode .catalog,.billing-mode .bill{height:100%!important;min-height:0!important;max-height:none!important;padding:10px;overflow:hidden!important;border-radius:12px}
.billing-mode .catalog{display:flex;flex-direction:column}.billing-mode .pos-search{width:100%;margin-bottom:8px;padding:10px}
.billing-mode #catTabs{flex:0 0 auto;margin-bottom:8px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}
.billing-mode .catalog .menu-grid{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:3px;grid-template-columns:repeat(4,minmax(105px,1fr));gap:7px}
.billing-mode .item{min-height:72px;padding:9px}
.billing-mode .bill{position:static!important;display:flex!important;flex-direction:column!important;color:var(--ink);background:#fff}
.billing-mode .bill-head{flex:0 0 auto}.billing-mode .bill h3{margin:0 0 5px;font-size:17px}
.billing-mode #context{font-size:12px}.billing-mode #context .field{gap:3px}.billing-mode #context input,.billing-mode #context select{padding:7px}
.billing-mode .cart-scroll{flex:1 1 auto!important;height:auto!important;min-height:76px!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);scrollbar-gutter:stable}
.billing-mode .cart-row{min-height:48px;padding:6px 0;gap:5px}.billing-mode .qty button{width:25px;height:25px}.billing-mode .cart-item-info small{font-size:10px}
.billing-mode .bill-footer{flex:0 0 auto!important;overflow:visible!important;background:#fff;padding-top:4px;position:relative;z-index:2}
.billing-mode .totals{padding-top:3px}.billing-mode .total-line{padding:2px 0}.billing-mode .grand{font-size:17px;padding-top:5px;margin-top:3px}
.billing-mode #paymentArea .tabs{margin:3px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.billing-mode #paymentArea .tab{padding:7px 3px;font-size:10px}
.billing-mode .split-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;margin:4px 0!important}
.billing-mode .split-part{display:grid!important;grid-template-columns:minmax(58px,.8fr) minmax(64px,1.2fr)!important;gap:4px!important;padding:4px!important;border-radius:8px!important}
.billing-mode .split-part select,.billing-mode .split-part input{padding:6px 4px!important;font-size:11px!important;height:31px}
.billing-mode #complete{padding:9px 8px;margin-top:3px;font-size:12px;min-height:38px}
@media(max-width:1100px){.billing-mode .catalog .menu-grid{grid-template-columns:repeat(3,minmax(90px,1fr))}.billing-mode .pos{grid-template-columns:minmax(0,1.55fr) minmax(285px,.8fr)!important}}
@media(max-width:820px){#content.billing-mode{padding:6px;height:calc(100dvh - 68px);overflow:hidden!important}.billing-mode .pos-shell{gap:5px}.billing-mode .pos-toolbar{padding:5px;gap:4px}.billing-mode .pos-toolbar .tab,.billing-mode .billing-tools button{padding:7px 6px;font-size:10px}.billing-mode .pos{min-width:0!important;height:auto!important;grid-template-columns:minmax(0,58%) minmax(0,42%)!important;gap:5px}.billing-mode .catalog,.billing-mode .bill{padding:6px}.billing-mode .catalog .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.billing-mode .item{min-height:62px;padding:6px;font-size:11px}.billing-mode .pos-search{padding:7px;margin-bottom:5px;font-size:11px}.billing-mode #catTabs{margin-bottom:5px}.billing-mode #catTabs .tab{padding:6px;font-size:9px}.billing-mode .bill h3{font-size:14px}.billing-mode #context{font-size:10px}.billing-mode #context input,.billing-mode #context select{padding:5px;font-size:10px}.billing-mode .cart-row{grid-template-columns:minmax(0,1fr) auto;min-height:42px;font-size:10px}.billing-mode .cart-price{grid-column:1/-1;text-align:right;font-size:10px}.billing-mode .qty button{width:22px;height:22px;font-size:10px}.billing-mode .grand{font-size:14px}.billing-mode #paymentArea .tab{font-size:8px;padding:6px 1px}.billing-mode .split-grid{grid-template-columns:1fr!important}.billing-mode .split-part{grid-template-columns:minmax(48px,.8fr) minmax(55px,1.2fr)!important}.billing-mode #complete{font-size:10px;padding:7px 3px;min-height:34px}}
@media(max-width:480px){.billing-mode .pos-toolbar{align-items:stretch}.billing-mode .pos-source-tabs{flex:1}.billing-mode .pos-source-tabs .tab{flex:1;padding:6px 2px;font-size:8px}.billing-mode .billing-tools{gap:3px}.billing-mode .billing-tools button{padding:6px 4px;font-size:8px}.billing-mode .pos{grid-template-columns:minmax(0,56%) minmax(0,44%)!important}.billing-mode .catalog .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-mode .item{min-height:55px;font-size:10px}.billing-mode .bill{padding:5px}.billing-mode .cart-row{padding:4px 0}.billing-mode .split-part select,.billing-mode .split-part input{font-size:9px!important;height:27px;padding:4px 2px!important}}


/* Tables + Waiter Operations refinement */
.table-admin-card.simple{padding:14px;display:grid;gap:10px;min-height:0}.table-admin-card.simple h2{margin:2px 0 0;font-size:26px}.table-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding-top:9px}.table-actions.simple{display:grid;grid-template-columns:1fr 1fr;gap:7px}.table-actions.simple button{width:100%;padding:9px}.request-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}.request-row:last-child{border-bottom:0}.request-row small{display:block;margin-top:3px}.request-row p{margin:7px 0 0;color:var(--muted)}.request-actions{display:flex;gap:6px;flex:0 0 auto}.request-actions button{padding:7px 9px;font-size:11px}.qr-preview{border-radius:14px;padding:20px;text-align:center}.qr-preview canvas,.qr-preview img{max-width:100%;height:auto!important;margin:auto}
@media(max-width:820px){.table-simple-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.table-meta{align-items:flex-start;flex-direction:column}.request-row{display:grid}.request-actions{width:100%}.request-actions button{flex:1}}
@media(max-width:480px){.table-simple-grid{grid-template-columns:1fr}}

/* Waiter live priority center */
.waiter-alert-center{margin:0 0 14px;padding:16px;border:1px solid var(--line);border-radius:22px;background:var(--card);box-shadow:var(--shadow)}
.waiter-alert-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.waiter-alert-head h2{margin:2px 0 0;font-size:22px}.waiter-alert-head small{font-weight:900;letter-spacing:1px}.live-dot{font-weight:950;font-size:12px;padding:7px 10px;border-radius:999px;background:#e9fff3;color:#08733d}
.waiter-alert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.waiter-alert{border:1px solid var(--line);border-radius:18px;padding:14px;text-align:left;background:#fff;display:grid;gap:3px;transition:.18s}.waiter-alert:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.waiter-alert span{font-size:12px;font-weight:950;letter-spacing:.4px}.waiter-alert b{font-size:30px;line-height:1}.waiter-alert small{color:var(--muted)}.waiter-alert.ready-alert:has(b:not(:empty)){border-left:5px solid #16844b}.waiter-alert.request-alert{border-left:5px solid #e7a400}.waiter-alert.bill-alert{border-left:5px solid #7c57d1}.waiter-priority-panel{scroll-margin-top:90px}
@media(max-width:700px){.waiter-alert-grid{grid-template-columns:1fr}.waiter-alert{grid-template-columns:1fr auto;align-items:center}.waiter-alert small{grid-column:1/-1}.waiter-alert b{font-size:26px}}

/* Waiter live-service popup update */
.waiter-popup-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.waiter-popup-head h2{margin:2px 0 0}.waiter-popup-head small{font-weight:900;letter-spacing:.8px;color:var(--muted)}
.waiter-popup-list{display:grid;gap:8px;max-height:min(62vh,520px);overflow:auto;padding-right:2px}.waiter-popup-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:14px;padding:10px 11px;background:var(--card)}.waiter-popup-row p{margin:3px 0 0;color:var(--muted)}.waiter-popup-row small{display:block;margin-top:3px;color:var(--muted)}.empty-compact{padding:18px;text-align:center;color:var(--muted)}
@media(max-width:700px){
  .waiter-alert-center{padding:10px;border-radius:16px;margin-bottom:10px}
  .waiter-alert-head{margin-bottom:8px}.waiter-alert-head h2{font-size:16px}.waiter-alert-head small{font-size:9px}.live-dot{font-size:9px;padding:4px 7px}
  .waiter-alert-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .waiter-alert{display:flex;min-width:0;min-height:72px;padding:8px 7px;border-radius:12px;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;border-left-width:3px!important}
  .waiter-alert span{font-size:9px;line-height:1.15;letter-spacing:0}.waiter-alert b{font-size:22px;line-height:1}.waiter-alert small{display:none}
  .waiter-popup-row{padding:9px;align-items:flex-start}.waiter-popup-row .request-actions{display:flex;gap:5px}.waiter-popup-row button{padding:8px 9px;font-size:11px}
}

/* V16 waiter mobile table density — three tables per row */
@media(max-width:620px){
  .panel .grid3:has(.waiter-table){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .waiter-table{min-width:0!important;padding:8px 6px!important;border-radius:11px!important}
  .waiter-table .table-card-top{display:block!important}.waiter-table .table-card-top h2{font-size:20px!important;margin:1px 0 3px!important}.waiter-table .table-card-top small{font-size:8px!important}.waiter-table .badge{display:inline-block!important;font-size:7px!important;padding:3px 5px!important;max-width:100%;overflow:hidden;text-overflow:ellipsis}
  .waiter-table>p.muted{font-size:8px!important;line-height:1.2!important;margin:5px 0!important}.waiter-table>p.muted b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .waiter-table .session-pin{padding:5px 3px!important;margin:5px 0!important;border-radius:7px!important}.waiter-table .session-pin small{font-size:7px!important}.waiter-table .session-pin b{font-size:15px!important;letter-spacing:.08em!important}
  .waiter-table>button.full{min-height:31px!important;padding:5px 3px!important;font-size:8px!important;border-radius:8px!important;white-space:normal!important;line-height:1.05!important}
}

/* V20 Owner Menu management */
.menu-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.menu-admin-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:grid;grid-template-columns:120px minmax(0,1fr);min-height:150px}.menu-admin-image{background:#f1f3f5;display:grid;place-items:center;min-height:150px;color:var(--muted);font-size:10px;font-weight:900}.menu-admin-image img{width:100%;height:100%;object-fit:cover}.menu-admin-body{padding:12px;min-width:0}.menu-admin-body h3{margin:0 0 2px}.menu-desc{min-height:18px;margin:8px 0}.menu-status-row,.row-actions{display:flex;gap:6px;flex-wrap:wrap}.menu-status-row button,.row-actions button{padding:7px 9px;font-size:10px}.wide{grid-column:1/-1}.menu-form-preview{width:120px;height:90px;border-radius:10px;object-fit:cover;border:1px solid var(--line);margin-bottom:6px}
@media(max-width:1100px){.menu-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.menu-admin-grid{grid-template-columns:1fr}.menu-admin-card{grid-template-columns:96px minmax(0,1fr)}.menu-admin-image{min-height:140px}.menu-status-row button{flex:1;padding:7px 4px;font-size:9px}}

/* V22 — cashier billing catalogue + true responsive POS + zoom protection */
html,body{max-width:100%;overflow-x:hidden;touch-action:manipulation;-webkit-text-size-adjust:100%}
button,.tab,.item,.qty button{touch-action:manipulation}
#content.billing-mode{width:100%;max-width:100%;overflow:hidden!important}
.billing-mode .pos-shell,.billing-mode .pos-toolbar,.billing-mode .pos,.billing-mode .catalog,.billing-mode .bill{max-width:100%;min-width:0!important}
.billing-mode .pos-toolbar{overflow:hidden}
.billing-mode .pos-source-tabs{min-width:0;flex:1 1 auto;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
.billing-mode .pos-source-tabs::-webkit-scrollbar{display:none}
.billing-mode .pos-source-tabs .tab{flex:0 0 auto;white-space:nowrap}
.billing-mode .billing-tools{flex:0 0 auto;min-width:0}
.billing-mode .catalog,.billing-mode .bill,.billing-mode .menu-grid,.billing-mode .item,.billing-mode .cart-row,.billing-mode .cart-item-info{min-width:0;max-width:100%}
.billing-mode .item b,.billing-mode .item span,.billing-mode .cart-item-info b{overflow-wrap:anywhere}
@media(max-width:820px){
  #content.billing-mode{padding:5px;height:calc(100dvh - 68px)}
  .billing-mode .pos-toolbar{gap:3px;padding:5px;border-radius:9px}
  .billing-mode .pos-source-tabs{gap:3px!important}
  .billing-mode .pos-source-tabs .tab{padding:7px 6px;font-size:9px}
  .billing-mode .billing-tools{gap:3px!important}
  .billing-mode .billing-tools button{padding:7px 6px;font-size:9px;white-space:nowrap}
  .billing-mode .pos{width:100%!important;min-width:0!important;grid-template-columns:minmax(0,56fr) minmax(0,44fr)!important;gap:4px!important;overflow:hidden!important}
  .billing-mode .catalog,.billing-mode .bill{width:100%!important;min-width:0!important;padding:5px!important;border-radius:9px}
  .billing-mode .catalog .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important}
  .billing-mode .item{width:100%;min-width:0!important;min-height:58px!important;padding:5px!important;font-size:10px!important}
  .billing-mode .bill{position:static!important;right:auto!important;top:auto!important;height:100%!important}
  .billing-mode .cart-scroll{width:100%;min-width:0!important;overflow-x:hidden!important}
  .billing-mode .cart-row{width:100%;grid-template-columns:minmax(0,1fr) auto!important;gap:3px!important;padding:4px 0!important}
  .billing-mode .cart-price{grid-column:1/-1!important;max-width:100%;text-align:right}
}
@media(max-width:480px){
  .billing-mode .pos-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}
  .billing-mode .pos-source-tabs .tab{padding:6px 5px!important;font-size:8px!important}
  .billing-mode .billing-tools button{padding:6px 4px!important;font-size:8px!important}
  .billing-mode .pos{grid-template-columns:minmax(0,55fr) minmax(0,45fr)!important}
  .billing-mode .pos-search{font-size:16px!important;height:34px;padding:5px!important}
  .billing-mode #catTabs .tab{padding:5px 4px!important;font-size:8px!important}
  .billing-mode .item{font-size:9px!important;min-height:52px!important}
  .billing-mode .bill h3{font-size:12px!important}
  .billing-mode #context,.billing-mode .cart-row{font-size:9px!important}
  .billing-mode .qty{gap:2px!important}.billing-mode .qty button{width:20px!important;height:20px!important;padding:0!important}
  .billing-mode #paymentArea .tab{font-size:7px!important}
  .billing-mode #complete{font-size:9px!important}
}
/* V23 reports, branding and settings */
.brand-restaurant{display:block;margin-top:3px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;letter-spacing:.08em;color:var(--muted);font-weight:700}
.analytics-filter{flex-wrap:wrap}.analytics-custom{display:flex;gap:7px;align-items:center}.analytics-custom input{width:auto}.report-filter{margin-bottom:12px}.upi-setting-preview{display:flex;flex-direction:column;align-items:center;gap:8px;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:14px}.upi-setting-preview img{width:150px;height:150px;object-fit:contain;background:#fff;border-radius:10px}
@media(max-width:650px){.analytics-filter .tab{flex:1 1 calc(50% - 6px)}.analytics-custom{width:100%;display:grid;grid-template-columns:1fr 1fr auto}.analytics-custom input{width:100%;min-width:0}.report-filter .form-grid{grid-template-columns:1fr 1fr}.brand-restaurant{max-width:120px}}


/* V24 — independent app-shell scrolling + unobtrusive navigation scrollbar */
@media (min-width:821px){
  html,body{height:100%;overflow:hidden}
  .app{height:100vh;min-height:0;display:block}
  #sidebar{position:fixed;left:0;top:0;bottom:0;width:235px;height:100vh;z-index:20;overflow:hidden}
  #sidebar nav{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}
  #sidebar nav::-webkit-scrollbar{width:0;height:0;display:none}
  .main{margin-left:235px;height:100vh;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin}
  .main>header{top:0}
  #content{min-width:0}
}
@media (max-width:820px){
  html,body{height:auto;overflow-x:hidden;overflow-y:auto}
  .app{display:block;min-height:100vh}
  #sidebar{height:100dvh;overflow:hidden}
  #sidebar nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}
  #sidebar nav::-webkit-scrollbar{width:0;height:0;display:none}
  .main{margin-left:0;min-height:100vh;overflow:visible}
}


/* V25 — billing card width consistency across desktop/tablet + clear bill */
@media (min-width:821px){
  .billing-mode .pos{grid-template-columns:minmax(0,62fr) minmax(340px,38fr)!important;width:100%!important}
  .billing-mode .bill{width:100%!important;max-width:none!important;left:auto!important;right:auto!important;bottom:auto!important}
}
@media (min-width:821px) and (max-width:1180px){
  .billing-mode .pos{grid-template-columns:minmax(0,58fr) minmax(330px,42fr)!important}
}
.bill-title-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.bill-title-row h3{margin:0}.bill-title-row .spacer{flex:1}.clear-bill-btn{padding:7px 9px!important;font-size:10px!important;white-space:nowrap}
@media(max-width:480px){.clear-bill-btn{padding:5px 5px!important;font-size:8px!important}.bill-title-row{gap:3px}}
.admin-search{min-width:220px;max-width:340px;flex:1;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--card)}
.issue-banner{padding:8px 10px;border-radius:10px;background:#fff0e8;color:#9b2c00;font-weight:900;font-size:12px;margin:7px 0;border:1px solid #ffc8ae}.order-issue-hold{outline:3px solid #ff8a50!important;box-shadow:0 0 0 5px rgba(255,138,80,.12)!important}
@media(max-width:700px){.admin-search{order:3;flex-basis:100%;max-width:none;min-width:0;width:100%}}

/* V36 mobile Billing POS — no cart overlay, no forced desktop-width workspace */
@media(max-width:620px){
  #content.billing-mode{height:auto!important;min-height:calc(100dvh - 68px);overflow:visible!important;padding:8px!important}
  .billing-mode .pos-shell{height:auto!important;overflow:visible!important}
  .billing-mode .pos-toolbar{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important}
  .billing-mode .pos-source-tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;overflow:visible!important}
  .billing-mode .pos-source-tabs .tab{width:100%;padding:8px 2px!important;font-size:9px!important}
  .billing-mode .billing-tools{width:100%;margin:0!important}.billing-mode .billing-tools button{flex:1!important}
  .billing-mode .pos{display:flex!important;flex-direction:column!important;min-width:0!important;width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important;gap:8px!important}
  .billing-mode .catalog,.billing-mode .bill{width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;position:static!important}
  .billing-mode .catalog .menu-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;overflow:visible!important;max-height:none!important}
  .billing-mode .item{min-height:64px!important;padding:8px!important;font-size:11px!important}
  .billing-mode #catTabs{display:flex!important;gap:5px!important;overflow-x:auto!important;margin-bottom:7px!important;scrollbar-width:none}.billing-mode #catTabs::-webkit-scrollbar{display:none}
  .billing-mode #catTabs .tab{flex:0 0 auto!important;padding:7px 9px!important;font-size:9px!important}
  .billing-mode .bill{order:2!important;padding:10px!important}
  .billing-mode .cart-scroll{min-height:70px!important;max-height:260px!important;overflow-y:auto!important}
  .billing-mode .bill-footer{position:static!important}
}
/* V37 offer builder */
.offer-category-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:none}.offer-category-tabs::-webkit-scrollbar{display:none}.offer-item-picker{max-height:280px;overflow:auto;margin-top:8px}.offer-selected{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--line,#ddd)}.offer-selected-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--line,#ddd);border-radius:999px}.offer-selected-chip button{border:0;background:transparent;font-size:18px;line-height:1;cursor:pointer}

/* V38 responsive offer builder + explicit browser audio control */
.sound-toggle{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:900;white-space:nowrap}
.offer-item-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px!important}
.offer-item-picker .offer-picker-row{display:grid!important;grid-template-columns:22px minmax(0,1fr) 68px!important;align-items:center!important;gap:9px!important;min-height:54px;padding:9px 10px!important;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}
.offer-check{width:18px!important;height:18px!important;margin:0!important;accent-color:#111}
.offer-picker-name{min-width:0;font-weight:800;line-height:1.25;overflow-wrap:anywhere}
.offer-picker-qty{display:grid;grid-template-columns:1fr;gap:2px;min-width:0}.offer-picker-qty small{font-size:8px;letter-spacing:.08em;color:var(--muted);text-align:center}.offer-picker-qty .mini-qty{width:100%!important;min-width:0!important;text-align:center;padding:6px!important}
@media(max-width:760px){.offer-item-picker{grid-template-columns:1fr}.offer-category-tabs .tab{flex:0 0 auto}.sound-toggle{padding:7px 9px;font-size:10px}.header-actions #shiftChip{display:none}}
@media(max-width:420px){.offer-item-picker .offer-picker-row{grid-template-columns:20px minmax(0,1fr) 60px!important;padding:8px!important}.offer-picker-name{font-size:13px}.sound-toggle{max-width:116px;overflow:hidden;text-overflow:ellipsis}}


/* V40 final mobile Billing containment: catalogue first, bill/cart second; never overlay menu. */
@media(max-width:620px){
 #content.billing-mode{overflow:visible!important;height:auto!important}
 .billing-mode .pos{display:flex!important;flex-direction:column!important;overflow:visible!important;height:auto!important}
 .billing-mode .catalog{order:1!important;position:relative!important;inset:auto!important;transform:none!important;z-index:auto!important;overflow:visible!important}
 .billing-mode .bill{order:2!important;position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;z-index:auto!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;margin:0!important}
 .billing-mode .cart-scroll{position:static!important;inset:auto!important;transform:none!important;z-index:auto!important;width:100%!important;max-height:260px!important;overflow-y:auto!important;overflow-x:hidden!important}
 .billing-mode .bill-footer{position:static!important;inset:auto!important;transform:none!important}
}

/* V51 UI fixes */
.pos,.catalog,.bill,.menu-grid,.cart-scroll,#catTabs{scrollbar-width:none;-ms-overflow-style:none}
.pos::-webkit-scrollbar,.catalog::-webkit-scrollbar,.bill::-webkit-scrollbar,.menu-grid::-webkit-scrollbar,.cart-scroll::-webkit-scrollbar,#catTabs::-webkit-scrollbar{display:none;width:0;height:0}
#complete{position:relative;z-index:5;pointer-events:auto!important;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.offer-pos-item small,.offer-cart-detail{display:block;white-space:normal;font-size:10px;color:var(--muted);margin-top:4px}

/* V52 login mode */
.login-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 14px}.login-mode button.active{border-color:currentColor;font-weight:800}

/* V56 consolidated UX fixes */
.login-view{padding:12px;overflow:auto}.login-card{width:min(390px,100%);padding:20px 22px;gap:10px;border-radius:18px;max-height:calc(100dvh - 24px);overflow:auto}.login-card .logo-mark{width:44px;height:44px;font-size:23px}.login-card h1{font-size:28px;margin:0}.login-card p{margin-bottom:2px}.login-card input{padding:10px}.login-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px}.brand-restaurant-code{display:block!important;color:#f6d28b!important;font-size:9px!important;letter-spacing:.06em!important;margin-top:2px}
#toast{top:78px!important;right:14px!important;bottom:auto!important;max-width:min(310px,calc(100vw - 28px));padding:7px 10px!important;font-size:11px!important;line-height:1.25;pointer-events:none!important;z-index:100;box-shadow:0 8px 24px #0002}
.billing-mode #catTabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none!important;-ms-overflow-style:none!important;touch-action:pan-x}.billing-mode #catTabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.billing-mode #catTabs .tab{flex:0 0 auto!important}
.billing-mode .bill-footer{position:relative!important;z-index:10!important;pointer-events:auto!important}.billing-mode #complete{display:block!important;position:relative!important;z-index:30!important;width:100%!important;min-height:42px!important;pointer-events:auto!important;cursor:pointer!important;user-select:none!important;-webkit-user-select:none!important;isolation:isolate}.billing-mode #complete *{pointer-events:none!important;user-select:none!important}.billing-mode #paymentArea{position:relative;z-index:11}
.password-field-v56{display:flex!important;align-items:stretch;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.password-field-v56>input{border:0!important;border-radius:0!important;flex:1;min-width:0}.password-eye-v56{border:0;background:#fff;min-width:42px;cursor:pointer;font-size:16px}.password-eye-v56:focus{outline:2px solid #999;outline-offset:-2px}
@media(max-height:700px){.login-card{padding:14px 18px;gap:7px}.login-card .logo-mark{width:38px;height:38px}.login-card h1{font-size:24px}.login-card input{padding:8px}.login-card .primary,.login-card .ghost,.login-card .soft{padding:8px 10px}}

/* V58 billing controls */
.billing-mode .print-toggle{white-space:nowrap;border-width:1px!important}.billing-mode .print-toggle.print-on{font-weight:900}.billing-mode .print-toggle.print-off{opacity:.72}.billing-mode #catTabs{cursor:grab!important;padding-bottom:6px!important;scrollbar-width:thin!important}.billing-mode #catTabs:active{cursor:grabbing!important}.billing-mode #catTabs::-webkit-scrollbar{display:block!important;height:4px!important}.billing-mode #catTabs::-webkit-scrollbar-track{background:transparent!important}.billing-mode #catTabs::-webkit-scrollbar-thumb{background:rgba(17,17,17,.24)!important;border-radius:999px!important}

.welcome-view{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#fff7e7,#f4efe8 55%,#e9e2d8)}.welcome-card{width:min(460px,100%);max-height:94vh;overflow:auto;background:#fff;border:1px solid #eadfce;border-radius:26px;padding:28px;box-shadow:0 24px 80px #3b2b181f;text-align:center}.welcome-card h1{font-size:34px;margin:8px 0}.welcome-card .full{margin-top:10px}.welcome-card small{display:block;margin-top:18px;color:#7a7167}.enquiry-card{text-align:left}.enquiry-card h2,.enquiry-card>p{text-align:left}.enquiry-card label{display:block;font-weight:700;margin:10px 0}.enquiry-card input,.enquiry-card textarea{width:100%;margin-top:5px}.welcome-view.hidden{display:none!important}

/* DineFlow POS visual refresh — presentation only */
#catTabs{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:3px}
#catTabs::-webkit-scrollbar{display:none}
.billing-mode .menu-grid{gap:12px}
.billing-mode .menu-grid .item{background:#fff;border:1px solid #eef0f3;border-radius:14px;box-shadow:0 5px 16px rgba(20,32,50,.10);transition:transform .12s ease,box-shadow .12s ease;min-height:88px}
.billing-mode .menu-grid .item:active{transform:translateY(1px);box-shadow:0 2px 8px rgba(20,32,50,.12)}
.billing-mode .bill{border:1px solid #edf0f2;border-radius:18px;box-shadow:0 12px 34px rgba(20,32,50,.13);overflow:hidden;background:#fff}
.billing-mode #complete{background:#55b97a!important;color:#fff!important;border-color:#55b97a!important;box-shadow:0 5px 14px rgba(62,157,98,.22)}
.billing-mode #complete:hover,.billing-mode #complete:active{background:#45a96a!important;border-color:#45a96a!important}
.billing-mode .soft{background:#f4f7fb;color:#273444;border-color:#dfe6ee}
.billing-mode .clear-bill-btn{background:#fff4f4;color:#b42318;border-color:#ffd8d5}
.mobile-cart-launcher{display:none}
@media(max-width:700px) and (orientation:portrait){
 .billing-mode .pos{display:block!important}.billing-mode .catalog{width:100%!important;min-width:0!important}.billing-mode .bill{display:none!important}
 .billing-mode .pos-toolbar{position:sticky;top:0;z-index:8;background:var(--bg,#f7f8fa);padding-bottom:8px}
 .billing-mode .pos-source-tabs{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}
 .billing-mode .pos-source-tabs .tab{min-width:0;padding-left:5px;padding-right:5px;font-size:11px}
 .billing-mode .billing-tools{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.billing-mode .billing-tools::-webkit-scrollbar{display:none}
 .billing-mode .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding-bottom:92px}
 .mobile-cart-launcher{display:flex;position:fixed;z-index:30;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;border:0;border-radius:17px;padding:15px 18px;background:#fff;color:#17202a;box-shadow:0 12px 36px rgba(20,32,50,.22);font-weight:800}
 .mobile-cart-launcher .mcart-total{background:#55b97a;color:#fff;border-radius:11px;padding:8px 11px}
 .mobile-pos-cart-sheet{position:fixed;inset:0;z-index:80;background:rgba(10,18,28,.38);display:flex;align-items:flex-end}
 .mobile-pos-cart-card{width:100%;max-height:88vh;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -14px 42px rgba(20,32,50,.2);padding:16px;display:flex;flex-direction:column}
 .mobile-pos-cart-card .mobile-cart-body{overflow:auto;min-height:0}.mobile-pos-cart-card .bill{display:flex!important;box-shadow:none;border:0;border-radius:0;max-height:none!important;width:100%!important}
 .mobile-pos-cart-card .mobile-cart-close{align-self:flex-end;border:0;background:#eef2f6;border-radius:50%;width:36px;height:36px;font-size:22px;margin-bottom:4px}
}
.top-selling-panel{box-shadow:0 8px 26px rgba(20,32,50,.08);border:1px solid #edf0f3}.top-selling-list{display:grid;gap:8px}.top-selling-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid #eef1f4;border-radius:12px;background:#fff}.top-selling-row span{display:flex;flex-direction:column}.top-selling-row small{color:#6b7280;margin-top:2px}.top-rank{width:34px;height:34px;border-radius:10px;background:#f1f5f9;display:grid;place-items:center}


/* RC8 targeted mobile/POS reliability overrides */
.billing-mode #catTabs{overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important;padding-bottom:3px!important;touch-action:pan-x!important;position:relative!important;z-index:2!important}
.billing-mode #catTabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.billing-mode .pos-toolbar{position:relative!important;z-index:4!important}
.billing-mode .catalog{position:relative!important;z-index:1!important;overflow:hidden!important}
.billing-mode .menu-grid{position:relative!important;z-index:1!important}
.billing-mode .item{box-shadow:0 5px 16px rgba(22,34,50,.09)!important;border-color:#edf0f3!important}
.billing-mode .bill{box-shadow:0 10px 30px rgba(22,34,50,.12)!important}
.billing-mode #complete{background:#55b97a!important;color:#fff!important}
.billing-mode #complete:disabled{opacity:.62!important}
.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.55);border-top-color:#fff;border-radius:50%;animation:spin .75s linear infinite;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:600px) and (orientation:portrait){
 .main>header{position:sticky!important;top:0!important;z-index:50!important}
 #content.billing-mode{height:calc(100dvh - 68px)!important;overflow-y:auto!important;overflow-x:hidden!important;padding:6px 6px 92px!important}
 .billing-mode .pos-shell{display:block!important}
 .billing-mode .pos-toolbar{position:sticky!important;top:0!important;z-index:20!important;background:#fff!important;margin-bottom:6px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important}
 .billing-mode .pos-source-tabs{order:0!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important}
 .billing-mode .billing-tools{order:1!important;display:flex!important;overflow-x:auto!important;scrollbar-width:none!important}
 .billing-mode .billing-tools::-webkit-scrollbar{display:none!important}
 .billing-mode .pos{display:block!important;min-width:0!important;height:auto!important}
 .billing-mode .catalog{width:100%!important;height:auto!important;overflow:visible!important;padding:7px!important}
 .billing-mode #catTabs{position:sticky!important;top:0!important;background:#fff!important;z-index:8!important;margin-left:-2px!important;margin-right:-2px!important}
 .billing-mode .catalog .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
 .billing-mode .item{min-height:84px!important;padding:10px!important;font-size:12px!important;border-radius:12px!important}
 .billing-mode .pos>.bill{display:none!important}
 .mobile-pos-cart-card{max-height:88dvh!important;overflow:hidden!important;padding:14px!important}
 .mobile-pos-cart-card .mobile-cart-body{flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}
 .mobile-pos-cart-card .bill{height:100%!important;max-height:calc(88dvh - 55px)!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;overflow:hidden!important}
 .mobile-pos-cart-card .bill-head{flex:0 0 auto!important}
 .mobile-pos-cart-card .cart-scroll{min-height:0!important;max-height:none!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important}
 .mobile-pos-cart-card .bill-footer{flex:0 0 auto!important;position:relative!important;background:#fff!important;z-index:3!important}
}

/* RC10 consolidated UX */
.nav-backdrop{display:none}.section-loading{min-height:240px;display:grid;place-items:center;align-content:center;gap:12px}.page-spinner{width:28px;height:28px;border:3px solid #e4e8ed;border-top-color:#273444;border-radius:50%;animation:spin .75s linear infinite}.dialog-actions{justify-content:flex-end;margin-top:18px}.app-dialog p{line-height:1.55}.top-selling-panel{display:block!important;min-height:120px}.top-selling-list{display:grid!important}.sa-login #saSignIn{margin-top:8px}.sa-login #saForgot{margin-top:13px!important;background:transparent!important;color:#445!important;border:1px solid #dfe4ea!important}
@media(max-width:700px){body.nav-open-lock{overflow:hidden!important}.app.nav-open .nav-backdrop{display:block;position:fixed;inset:0;background:rgba(10,15,22,.52);z-index:9998}.app aside#sidebar{z-index:9999!important}.main>header{z-index:90!important;min-height:58px!important;padding:7px 10px!important}.main>header h2{font-size:clamp(16px,4.6vw,20px)!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:48vw!important}.main>header small{font-size:9px!important}.header-actions{gap:5px!important}.header-actions button,.header-actions span{font-size:10px!important;padding:6px 7px!important}.billing-mode .pos-toolbar{z-index:60!important}.billing-mode #catTabs{z-index:50!important}.waiter-alert-head h2,#content h2{font-size:clamp(18px,5vw,23px)!important;line-height:1.15!important}.waiter-alert-head small{font-size:9px!important}.waiter-alert span,.waiter-alert small{font-size:10px!important}.waiter-alert b{font-size:24px!important}}


/* RC11: every mobile portal keeps its screen header visible while only content scrolls */
@media(max-width:700px){
  .app{height:100dvh!important;min-height:0!important;overflow:hidden!important}
  .main{height:100dvh!important;min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
  .main>header{position:relative!important;top:auto!important;flex:0 0 58px!important;height:58px!important;width:100%!important;z-index:90!important;background:#fff!important;box-shadow:0 2px 9px rgba(20,32,50,.07)!important}
  #content{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain!important}
  #content.billing-mode{height:auto!important;min-height:0!important;overflow-y:auto!important}
}

/* RC12: mobile shell owns viewport; only page content scrolls, so screen heading stays fixed */
@media(max-width:820px){
 html,body{height:100%;overflow:hidden!important}
 #appView.app:not(.hidden){height:100dvh!important;min-height:0!important;overflow:hidden!important;display:grid!important;grid-template-columns:1fr!important}
 #appView .main{height:100dvh!important;min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
 #appView .main>header{position:relative!important;top:auto!important;flex:0 0 62px!important;height:62px!important;min-height:62px!important;z-index:100!important;background:#fff!important}
 #appView #content{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain}
 #appView aside{z-index:10002!important}
 #appView .nav-backdrop{z-index:10001!important}
 #appView.nav-open #content{pointer-events:none!important}
}

/* RC13 DineFlow professional blue dashboard + stable mobile shell */
:root{--df-navy:#08285b;--df-blue:#087fe8;--df-cyan:#19c2f2;--df-soft:#eef8ff}
.dineflow-logo{display:block;object-fit:contain;background:#fff}.welcome-logo{width:150px;height:150px;margin:0 auto 8px;border-radius:50%;box-shadow:0 12px 34px rgba(8,76,150,.14)}.login-logo{width:104px;height:104px;border-radius:50%;margin:0 auto 2px}.sidebar-logo{width:58px;height:58px;border-radius:50%;flex:0 0 58px}.brand{padding-top:2px}.brand b{color:#fff}.brand span{color:#8fdcff!important}
.welcome-view{background:radial-gradient(circle at top,#f8fdff,#eaf7ff 55%,#dceeff)}.welcome-card{border-color:#d7ecfb}.primary{background:linear-gradient(135deg,var(--df-blue),#0754bf)}
.dashboard-welcome{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border:1px solid #d9ecfb;border-radius:18px;background:linear-gradient(105deg,#eff9ff,#fff 60%,#eaf8ff);box-shadow:0 8px 26px rgba(8,77,145,.07);margin-bottom:14px}.dashboard-welcome h2{margin:2px 0 5px;color:var(--df-navy);font-size:26px}.dashboard-welcome p{margin:0;color:#557087}.dashboard-welcome .dash-mark{font-size:42px;filter:saturate(.9)}
.dashboard-metrics{grid-template-columns:repeat(5,minmax(0,1fr))!important}.dashboard-metrics .metric{position:relative;overflow:hidden;border:1px solid transparent;box-shadow:0 8px 24px rgba(18,57,95,.08);min-height:108px}.dashboard-metrics .metric small{color:#345;letter-spacing:.04em}.dashboard-metrics .metric b{font-size:24px;color:#092b60}.dashboard-metrics .metric:nth-child(5n+1){background:linear-gradient(135deg,#e8fff4,#f8fffb);border-color:#c8f2dc}.dashboard-metrics .metric:nth-child(5n+2){background:linear-gradient(135deg,#eaf6ff,#f8fcff);border-color:#cfe9ff}.dashboard-metrics .metric:nth-child(5n+3){background:linear-gradient(135deg,#f1eaff,#fbf9ff);border-color:#dfd1ff}.dashboard-metrics .metric:nth-child(5n+4){background:linear-gradient(135deg,#fff5df,#fffaf0);border-color:#ffe6ad}.dashboard-metrics .metric:nth-child(5n+5){background:linear-gradient(135deg,#ffecef,#fff8f9);border-color:#ffd3dc}.dashboard-panels .panel{border-color:#e3edf5;box-shadow:0 8px 24px rgba(18,57,95,.06)}
/* The backdrop must never cover the drawer itself. */
#appView .nav-backdrop{z-index:9998!important}#appView aside#sidebar{z-index:9999!important}#appView.nav-open aside#sidebar{pointer-events:auto!important}#appView.nav-open nav,#appView.nav-open nav button{pointer-events:auto!important}
/* Hide Billing category scrollbar while preserving touch/mouse scrolling. */
.billing-mode #catTabs{scrollbar-width:none!important;-ms-overflow-style:none!important}.billing-mode #catTabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
@media(max-width:700px){
 body{overflow:hidden!important}.app:not(.hidden){height:100dvh!important;min-height:0!important;overflow:hidden!important}.app .main{height:100dvh!important;min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.main>header{position:relative!important;top:auto!important;flex:0 0 auto!important;width:100%!important;z-index:90!important}.main>header h2{font-size:17px!important}.main>header small{font-size:8px!important}#content{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important}.dashboard-welcome{padding:14px 15px}.dashboard-welcome h2{font-size:19px}.dashboard-welcome p{font-size:12px}.dashboard-welcome .dash-mark{font-size:30px}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-metrics .metric{min-height:92px;padding:12px}.dashboard-metrics .metric b{font-size:19px}.sidebar-logo{width:50px;height:50px;flex-basis:50px}
}
@media(min-width:701px) and (max-width:1200px){.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
.dashboard-secondary{grid-template-columns:repeat(6,minmax(0,1fr))}.dashboard-secondary .metric{background:#fff;border-color:#e4edf5;box-shadow:0 5px 16px rgba(18,57,95,.05);min-height:82px}.dashboard-secondary .metric b{font-size:18px;color:#12355e}
@media(max-width:700px){.dashboard-secondary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-secondary .metric{min-height:74px}}

/* RC14 — ElnoviQ global visual system */
:root{--bg:#f2f8fd;--card:#fff;--ink:#082456;--muted:#64748b;--line:#dbeaf7;--accent:#10bff2;--dark:#062b58;--blue:#087be7;--cyan:#18c7f4;--good:#16a36a;--warn:#f59e0b;--bad:#e5484d;--eln-gradient:linear-gradient(135deg,#062b58 0%,#087be7 55%,#18c7f4 100%)}
body{background:linear-gradient(180deg,#f8fcff,#eef7fd);color:var(--ink)}
aside{background:linear-gradient(180deg,#062b58 0%,#031b3c 100%)}nav button{color:#d6eaff}nav button:hover,nav button.active{background:linear-gradient(90deg,#087be7,#18bff0);color:#fff;box-shadow:0 7px 20px #087be733}.main>header{border-color:#dbeaf7;box-shadow:0 3px 16px #062b5809}.primary{background:var(--eln-gradient);box-shadow:0 6px 16px #087be726}.ghost{background:#0a3768}.soft,.tab{background:#edf7ff;color:#0b3a70}.tab.active{background:var(--eln-gradient);color:#fff}.metric,.panel,.catalog,.bill,.item,.waiter-table{border-color:#d9eaf7;box-shadow:0 6px 20px #07376a0b}.live{background:#e8fff5;color:#11865a}.badge,.chip{background:#eaf6ff;color:#0b5598}
.dineflow-logo{object-fit:contain}.sidebar-logo{width:58px;height:58px;border-radius:14px;background:#fff;padding:3px}.login-logo{width:126px;max-height:126px;margin:auto}.welcome-logo{width:145px;max-height:145px;margin:auto}

/* Today dashboard mirrors the approved operational layout. */
.dashboard-welcome.pro{display:flex;align-items:center;justify-content:space-between;min-height:142px;padding:22px 28px;border:1px solid #cfe8f9;border-radius:20px;background:linear-gradient(110deg,#effaff 0%,#fff 52%,#e7f7ff 100%);box-shadow:0 10px 30px #087be712;overflow:hidden;margin-bottom:14px}.dashboard-welcome.pro h2{font-size:28px;margin:5px 0;color:#082456}.dashboard-welcome.pro p{margin:0;color:#526b87}.dashboard-welcome.pro img{width:118px;height:118px;object-fit:contain;filter:drop-shadow(0 8px 14px #087be722)}
.dashboard-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.dash-kpi{position:relative;overflow:hidden;border:1px solid #d8eafa;border-radius:17px;padding:16px;min-height:132px;box-shadow:0 8px 24px #07376a10}.dash-kpi small{display:block;margin:10px 0 5px;color:#234d76}.dash-kpi b{display:block;font-size:26px}.dash-kpi-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:#fff;font-weight:900;background:var(--eln-gradient)}.dash-kpi.sales{background:linear-gradient(135deg,#effff8,#e9fbff)}.dash-kpi.orders{background:linear-gradient(135deg,#eef8ff,#f5fbff)}.dash-kpi.dine{background:linear-gradient(135deg,#f4efff,#eef7ff)}.dash-kpi.parcel{background:linear-gradient(135deg,#fff7e8,#fffdf6)}.dash-kpi.online{background:linear-gradient(135deg,#fff0f5,#f3f5ff)}
.dash-main-grid{display:grid;grid-template-columns:1.2fr .9fr;gap:14px}.dash-bottom-grid{display:grid;grid-template-columns:1.15fr .85fr .9fr;gap:14px}.dash-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dash-title h3{margin:0;font-size:17px}.dash-title span{font-size:11px;font-weight:850;color:#087be7;background:#edf8ff;border:1px solid #d4eafb;border-radius:8px;padding:6px 9px}.dash-canvas{height:270px}.dash-donut{height:220px}.top-items-list{display:grid;gap:8px}.top-item-row{display:grid;grid-template-columns:25px 42px minmax(90px,1fr) minmax(60px,1fr) auto auto;align-items:center;gap:8px;min-height:47px}.top-item-row .rank{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e9f5ff;color:#086fc9;font-weight:900}.top-thumb{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:#edf7ff;overflow:hidden}.top-thumb img{width:100%;height:100%;object-fit:cover}.top-bar{height:7px;background:#e5f3fd;border-radius:99px;overflow:hidden}.top-bar i{display:block;height:100%;background:linear-gradient(90deg,#087be7,#18c7f4);border-radius:99px}.top-item-row small{font-size:9px}.recent-list{display:grid}.recent-row{display:grid;grid-template-columns:1fr .8fr .8fr .8fr .9fr;gap:7px;align-items:center;padding:9px 0;border-bottom:1px solid #e5f0f8;font-size:11px}.recent-row em{font-style:normal;color:#087be7;background:#edf8ff;padding:4px 6px;border-radius:7px;text-align:center;font-weight:800}.glance-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.glance-grid>div{padding:15px;border-radius:13px;background:linear-gradient(135deg,#edf8ff,#fff);border:1px solid #dbeefa}.glance-grid b{display:block;font-size:24px;color:#087be7}.glance-grid small{display:block;margin-top:3px}.dash-empty{padding:22px;text-align:center;color:var(--muted)}

/* Native touch category strip: taps work in Android WebView; swipe scroll remains native. */
.billing-mode #catTabs,.offer-category-tabs{overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;touch-action:pan-x!important;-webkit-overflow-scrolling:touch;scrollbar-width:none!important}.billing-mode #catTabs::-webkit-scrollbar,.offer-category-tabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.billing-mode #catTabs .tab{flex:0 0 auto;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}

/* Kitchen workflow stays horizontal on phones/tablets; scrollbar is invisible. */
#kitchenBody{min-width:0}.kboard{display:grid!important;grid-template-columns:repeat(4,minmax(250px,1fr))!important;min-width:1040px}.parcel-grid{grid-template-columns:repeat(3,minmax(250px,1fr))!important;min-width:790px}#kitchenBody{overflow-x:auto!important;overflow-y:visible!important;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:none!important}#kitchenBody::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}

/* Global modal layering + keyboard-friendly forms. */
.modal{z-index:20000!important;position:fixed!important;inset:0!important;overflow:hidden!important}.modal-card{max-height:min(90dvh,900px)!important;overflow-y:auto!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-x{position:sticky!important;float:right;top:0;z-index:3}.field input,.field select,.field textarea,.login-card input{font-size:16px}

@media(max-width:900px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-kpis .dash-kpi:first-child{grid-column:1/-1}.dash-main-grid,.dash-bottom-grid{grid-template-columns:1fr}.dashboard-welcome.pro{min-height:112px;padding:16px}.dashboard-welcome.pro img{width:84px;height:84px}.dash-canvas{height:230px}.recent-row{grid-template-columns:1fr .8fr .8fr}.recent-row strong,.recent-row em{font-size:10px}.dash-bottom-grid{gap:8px}}
@media(max-width:520px){.dashboard-welcome.pro h2{font-size:20px}.dashboard-welcome.pro p{font-size:11px}.dashboard-welcome.pro img{width:68px;height:68px}.dashboard-kpis{gap:7px}.dash-kpi{min-height:105px;padding:11px}.dash-kpi b{font-size:20px}.dash-main-grid{gap:8px}.top-item-row{grid-template-columns:22px 36px minmax(75px,1fr) 50px auto}.top-item-row small{display:none}.top-thumb{width:34px;height:34px}.dash-canvas{height:205px}.dash-donut{height:190px}.glance-grid{gap:7px}.glance-grid>div{padding:11px}.glance-grid b{font-size:20px}}

/* RC15 frontend-only refinements */
.billing-mode #complete{
  background:linear-gradient(135deg,#082456 0%,#087be7 58%,#16bfe8 100%)!important;
  border-color:#087be7!important;color:#fff!important;
  box-shadow:0 7px 18px rgba(8,123,231,.24)!important;
}
.billing-mode #complete:hover,.billing-mode #complete:active{
  background:linear-gradient(135deg,#061d47 0%,#066fd2 58%,#10acd4 100%)!important;
  border-color:#066fd2!important;
}
.dashboard-welcome.pro{justify-content:flex-start!important}
.dashboard-welcome.pro>div{max-width:760px}
.dashboard-welcome.pro img{display:none!important}
.platform-context-row{display:grid;gap:8px;margin-top:7px}
.platform-context-row.is-platform{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.platform-context-row input{width:100%;min-width:0;height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px;font-weight:650;color:var(--ink)}
.platform-context-row input::placeholder{color:#8795a5;font-weight:600}
@media(max-width:560px){
 .platform-context-row.is-platform{grid-template-columns:1fr}
 .platform-context-row input{height:39px;font-size:11px;padding:8px 9px}
}

/* RC17 operational stability */
.dashboard-kpis,.dash-main-grid,.dash-bottom-grid,.metrics,.charts{min-width:0!important;max-width:100%!important}
.dashboard-kpis>* ,.dash-main-grid>* ,.dash-bottom-grid>* ,.metrics>* ,.charts>*{min-width:0!important;max-width:100%!important;overflow:hidden}
.dash-kpi b,.metric b{max-width:100%;font-size:clamp(16px,3.2vw,28px)!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-canvas,.dash-donut,.chartbox{min-width:0!important;max-width:100%!important;overflow:hidden}.dash-canvas canvas,.dash-donut canvas,.chartbox canvas{max-width:100%!important}
.recent-row,.top-item-row{min-width:0}.recent-row>* ,.top-item-row>*{min-width:0}.recent-row span,.top-item-row>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.analytics-top-item{display:grid!important;grid-template-columns:auto 44px minmax(100px,1.4fr) minmax(80px,1fr) auto;align-items:center;gap:10px;min-width:0}.analytics-top-thumb{width:44px;height:44px;border-radius:11px;overflow:hidden;background:#edf7ff;display:grid;place-items:center}.analytics-top-thumb img{width:100%;height:100%;object-fit:cover}.analytics-top-bar{height:8px;border-radius:999px;background:#e3eff9;overflow:hidden}.analytics-top-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#087be7,#18c7f4)}
.kboard{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:visible!important;gap:12px;scrollbar-width:none!important;-ms-overflow-style:none!important;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.kboard::-webkit-scrollbar,.parcel-tabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.kboard .kcol{flex:0 0 min(340px,86vw);min-width:min(340px,86vw)}.parcel-tabs{overflow-x:auto!important;flex-wrap:nowrap!important;scrollbar-width:none!important;-webkit-overflow-scrolling:touch}.parcel-tabs .tab{flex:0 0 auto;white-space:nowrap}
@media(max-width:650px){.analytics-filter{display:flex!important;flex-wrap:wrap!important;overflow:visible!important}.analytics-filter>[data-ar]{flex:1 1 calc(50% - 6px)!important}.analytics-custom:not(.hidden){display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;width:100%!important;gap:8px!important;overflow:visible!important}.analytics-custom input{display:block!important;width:100%!important;min-width:0!important}.analytics-custom #aApply{grid-column:1/-1;width:100%}.analytics-top-item{grid-template-columns:auto 40px minmax(0,1fr) auto}.analytics-top-bar{grid-column:3/5;width:100%}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dash-main-grid,.dash-bottom-grid,.charts{grid-template-columns:minmax(0,1fr)!important}.dash-kpi{padding:11px!important}.dash-kpi b{font-size:clamp(15px,5vw,22px)!important}.recent-row{font-size:11px!important;gap:5px!important}}

/* RC18 PIN slip waiter action */
.pin-slip-preview{margin:14px 0 18px;text-align:center}.pin-slip-preview b{font-size:clamp(38px,10vw,58px);letter-spacing:.16em;color:var(--navy,#082a5e)}
/* RC21 waiter table control */
.waiter-table-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.waiter-order-card{margin:10px 0}.waiter-cat-scroll{overflow-x:auto;white-space:nowrap;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.waiter-cat-scroll::-webkit-scrollbar{display:none}.waiter-upi-qr{display:flex;justify-content:center;margin:12px auto}.waiter-upi-qr:empty{display:none}.waiter-order-workspace{min-width:0}.waiter-order-workspace .panel{min-width:0}@media(max-width:640px){.waiter-table-actions>*{flex:1}.waiter-order-workspace .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.order-cancelled-notice{border:2px solid #dc2626!important;background:rgba(220,38,38,.06)}
.ticket-edited{outline:2px solid #f59e0b;outline-offset:2px}

/* RC23 mobile-first AC pricing */
.ac-pricing-list{display:grid;gap:10px;max-height:68vh;overflow:auto;margin:12px 0}.ac-cat{border:1px solid var(--line);border-radius:14px;overflow:hidden}.ac-cat-head{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px;border:0;background:var(--panel);text-align:left}.ac-cat-head small,.ac-item-row small{display:block;opacity:.7;margin-top:3px}.ac-money{white-space:nowrap}.ac-money input,.ac-item-row input{width:76px;max-width:22vw;padding:8px;border:1px solid var(--line);border-radius:9px}.ac-items{padding:8px 12px 12px;display:grid;gap:7px}.ac-item-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line)}@media(max-width:600px){.ac-cat-head{grid-template-columns:minmax(0,1fr) auto}.ac-cat-head>span:last-child{display:none}.ac-item-row{font-size:13px}.ac-price-head p{font-size:13px}}
/* Client handover mobile portability hardening */
html,body{max-width:100%;overflow-x:hidden}*{box-sizing:border-box}.pos-shell,.pos,.catalog,.bill,.panel,.modal-card,.order-card,.waiter-table,.dashboard-kpis,.dash-main-grid,.dash-bottom-grid{min-width:0;max-width:100%}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.discount-entry{gap:10px;align-items:center}.discount-entry input{width:112px;max-width:42vw;text-align:right;padding:8px 10px;border:1px solid var(--line,#dbe4ee);border-radius:10px;font:inherit}.dash-kpi b,.metric b,.grand b{overflow-wrap:anywhere}@media(max-width:700px){.form-grid{grid-template-columns:1fr!important}.row-actions{display:flex;flex-wrap:wrap}.row-actions>*{flex:1 1 140px}.billing-tools{display:flex;overflow-x:auto;max-width:100%;scrollbar-width:none}.billing-tools::-webkit-scrollbar{display:none}.pos-toolbar{align-items:flex-start}.modal-card{width:min(94vw,560px)!important;max-height:88dvh;overflow:auto}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dash-main-grid,.dash-bottom-grid{grid-template-columns:1fr!important}.top-item-row{grid-template-columns:auto auto minmax(0,1fr) minmax(50px,1fr) auto!important}.order-card-head{flex-wrap:wrap}.order-actions{display:flex;flex-wrap:wrap}.order-actions button{flex:1 1 150px}.split-grid{grid-template-columns:1fr!important}}


/* AC table selector: visible only when AC is selected */
.ac-table-note{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border:1px solid rgba(0,174,239,.35);border-radius:12px;background:rgba(0,174,239,.08)}
.ac-table-note b{font-size:13px}.ac-table-note span{font-size:12px;line-height:1.45;color:var(--muted)}
/* FINAL OFFERS */
.offer-alt-list .offer-picker-row{grid-template-columns:22px minmax(0,1fr)!important}.offer-alt-list{max-height:220px;overflow:auto}.offer-component-admin small{display:block;margin:8px 0;color:var(--muted)}

/* Final Offer + AC table UX */
.table-admin-card{position:relative}.table-type-icon{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#eef6ff;border:1px solid #d9e9fb;font-size:15px;z-index:2}.offer-component-panel{margin-top:8px}.alt-picker{margin-top:10px}.alt-picker.hidden{display:none}.selected-alts{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.alt-list{max-height:280px;overflow:auto}.alt-category-label{position:sticky;top:0;background:#f7f9fc;padding:7px 9px;font-size:11px;font-weight:900;letter-spacing:.08em;z-index:1}.alt-save{margin-top:8px}.compact-choice{border:1px solid #e4e7ec;border-radius:18px;padding:14px;margin:12px 0}.chef-pick{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-bottom:10px;border-bottom:1px solid #eceff3}.chef-pick span,.choice-current small,.combo-summary>small{font-size:10px;font-weight:900;letter-spacing:.12em;color:#9a7b1d}.choice-current{display:grid;gap:4px;padding:12px 0}.choice-current strong{font-size:18px}.choice-current span{font-size:12px;color:#68707c}.choice-select-label{display:grid;gap:7px;font-size:12px;color:#59616d}.choice-select-label select{width:100%;min-height:48px;border:1px solid #d9dee6;border-radius:12px;padding:0 12px;background:#fff;font:inherit}.combo-summary{display:grid;gap:5px;background:#f7f9fc;border-radius:14px;padding:12px;margin:14px 0}.combo-summary span{font-size:13px}
@media(max-width:600px){.alt-list{max-height:240px}.compact-choice{padding:12px}.table-type-icon{top:10px;right:10px}}

/* Compact offer customization accordion */
.offer-component-head{align-items:center;gap:8px}.offer-head-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.alt-arrow{min-width:40px;padding:8px 12px}.alt-picker{margin-top:10px}.alt-picker-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;position:sticky;top:0;background:var(--surface,#fff);z-index:3;padding:4px 0 8px}.alt-picker-top .search{min-width:0;margin:0}.alt-picker-top .alt-save{width:auto;min-width:72px;margin:0}.alt-list{max-height:310px;overflow:auto}.alt-category-label{font-weight:800;font-size:12px;padding:10px 8px 5px;position:sticky;top:52px;background:var(--surface,#fff);z-index:2}.offer-component-panel .alt-list .offer-picker-row{margin:0}@media(max-width:560px){.offer-component-head{align-items:flex-start}.offer-head-actions{justify-content:flex-end}.alt-list{max-height:280px}}
/* Offer customization: category-first compact navigator */
.alt-category-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 0 8px;white-space:nowrap}.alt-category-tabs::-webkit-scrollbar{display:none}.alt-category-tabs .tab{flex:0 0 auto}.alt-picker{min-width:0}.alt-picker-top{position:sticky;top:0;z-index:2;background:var(--card,#fff);display:flex;gap:8px;align-items:center}.alt-picker-top .search{min-width:0;flex:1}.alt-save{flex:0 0 auto}.alt-list{max-height:300px;overflow-y:auto;overflow-x:hidden}

/* 2026-09-17 Offers customize mobile containment: only category chips scroll horizontally */
html,body,#app,#content,.modal,.modal-card,.form-grid,.field,.offer-component-panel,.alt-picker,.offer-item-picker{max-width:100%!important;min-width:0!important}
html,body,#app,#content,.modal,.modal-card,.form-grid,.field,.offer-component-panel,.alt-picker{overflow-x:hidden!important}
.offer-component-panel{width:100%!important}
.alt-picker-top{width:100%!important;max-width:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;overflow:hidden!important}
.alt-picker-top .search{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important}
.alt-picker-top .alt-save{width:auto!important;min-width:68px!important;max-width:92px!important;margin:0!important;white-space:nowrap!important}
.alt-category-tabs{display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;white-space:nowrap!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;touch-action:pan-x!important;scrollbar-width:none!important;-ms-overflow-style:none!important}
.alt-category-tabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}
.alt-category-tabs .tab{flex:0 0 auto!important;white-space:nowrap!important}
.alt-list{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
.alt-list .offer-picker-row{width:100%!important;max-width:100%!important;min-width:0!important}
@media(max-width:560px){.alt-picker-top{grid-template-columns:minmax(0,1fr) 72px!important}.alt-picker-top .alt-save{min-width:72px!important;padding-left:8px!important;padding-right:8px!important}}


/* Offers category strips + 80/20 search/save containment */
.offer-category-tabs,.alt-category-tabs{display:flex!important;flex-wrap:nowrap!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;-ms-overflow-style:none!important;touch-action:pan-x!important}
.offer-category-tabs::-webkit-scrollbar,.alt-category-tabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.offer-category-tabs>.tab,.alt-category-tabs>.tab{flex:0 0 auto!important;white-space:nowrap!important}
.alt-picker-top{display:grid!important;grid-template-columns:minmax(0,4fr) minmax(76px,1fr)!important;gap:8px!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;align-items:stretch!important}
.alt-picker-top .search{width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}
.alt-picker-top .alt-save{width:100%!important;min-width:76px!important;max-width:100%!important;margin:0!important;padding-inline:10px!important;white-space:nowrap!important}
.offer-component-panel,.alt-picker,.offer-item-picker{min-width:0!important;max-width:100%!important;overflow-x:hidden!important}

/* Customer order detail: combo parent owns price, components nest underneath */
.order-detail-group{border:1px solid #ece7dd;border-radius:15px;margin:10px 0;overflow:hidden;background:#fff}.order-detail-group .order-detail-line{border:0!important;margin:0!important;border-radius:0!important}.order-detail-price{display:flex;align-items:flex-end;gap:10px;flex-direction:column}.order-detail-price b{font-size:13px;color:#555}.order-combo-components{border-top:1px dashed #e5ded2;padding:5px 14px 10px 28px;background:#fcfaf6}.order-combo-component{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:14px}.order-combo-component span{min-width:0;overflow-wrap:anywhere}.customer-order-total{display:flex;justify-content:space-between;align-items:center;border-top:2px solid #111;margin-top:14px;padding:15px 2px 2px;font-size:17px}.customer-order-total b{font-size:21px}


/* 2026-09-17 final owner offer customize containment */
.modal-card{overflow-x:hidden!important;max-width:100%!important}
#offerSelected,.offer-component-panel,.alt-picker{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
.alt-picker-top{display:grid!important;grid-template-columns:minmax(0,80fr) minmax(76px,20fr)!important;column-gap:8px!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important;align-items:stretch!important}
.alt-picker-top>.search{grid-column:1!important;width:100%!important;min-width:0!important;max-width:none!important;margin:0!important}
.alt-picker-top>.alt-save{grid-column:2!important;display:block!important;visibility:visible!important;opacity:1!important;width:100%!important;min-width:76px!important;max-width:none!important;margin:0!important;padding:10px 8px!important;white-space:nowrap!important;position:static!important}
#offerCatTabs,.offer-category-tabs.alt-category-tabs{display:flex!important;flex-wrap:nowrap!important;gap:8px!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;-ms-overflow-style:none!important;overscroll-behavior-x:contain!important;touch-action:pan-x!important;padding-bottom:8px!important}
#offerCatTabs::-webkit-scrollbar,.offer-category-tabs.alt-category-tabs::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
#offerCatTabs>.tab,.offer-category-tabs.alt-category-tabs>.tab{flex:0 0 auto!important;white-space:nowrap!important}
.offer-item-picker.alt-list{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
@media(max-width:520px){.alt-picker-top{grid-template-columns:minmax(0,4fr) minmax(72px,1fr)!important;gap:6px!important}.alt-picker-top>.alt-save{min-width:72px!important;font-size:12px!important;padding-inline:6px!important}}


/* Structured Water & Drinks waiter request */
.drink-request-card{align-items:flex-start!important;gap:14px}.drink-request-main{min-width:0;flex:1}.drink-request-main>p{margin:4px 0 8px}.drink-request-list{display:grid;gap:6px;margin-top:8px}.drink-request-line{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 11px;border:1px solid var(--line,#e5e7eb);border-radius:10px;background:rgba(255,255,255,.65)}.drink-request-line span{min-width:0;overflow-wrap:anywhere}.drink-request-line b{white-space:nowrap}.served-hint{display:block;margin-top:8px}.drink-request-card .request-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:600px){.drink-request-card{display:block!important}.drink-request-card .request-actions{margin-top:12px}.drink-request-card .request-actions button{flex:1;min-width:110px}}

/* AC Settings in Tables */
.ac-master-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0}.ac-master-setting>div{display:grid;gap:4px}.ac-master-setting small{display:block;color:var(--muted)}.ac-pricing-list.ac-disabled{opacity:.48}.ac-pricing-list.ac-disabled input{pointer-events:none}.table-card-badges{display:flex;align-items:center;gap:8px}.ac-table-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e9f7ff;color:#087bc1;font-size:15px}.ac-item-row input{max-width:110px}

/* AC charge method selector */
.ac-method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.ac-method-grid label{min-width:0;border:1px solid var(--border,#dbe4ee);border-radius:14px;padding:12px;display:flex;gap:9px;align-items:flex-start;cursor:pointer}.ac-method-grid label:has(input:checked){border-color:#159be8;background:#eef9ff}.ac-method-grid input{margin-top:3px}.ac-method-grid span{min-width:0;display:grid;gap:3px}.ac-method-grid small{line-height:1.3}.ac-charge-method>.field{margin-top:12px}.ac-pricing-list.ac-disabled{opacity:.45;pointer-events:none}@media(max-width:640px){.ac-method-grid{grid-template-columns:1fr}.ac-method-grid label{padding:10px}}

/* 2026-09-17 FULL NUMBER VISIBILITY — never replace financial/count values with ellipsis */
.dash-kpi b,.metric b,.grand b,.glance-grid b,.price,.amount,.total,.money,.report-value,
.receipt .line b,.receipt .line strong,.table-wrap td,.table-wrap th,
[data-fit-number="1"]{
  max-width:100%!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  line-height:1.08!important;
}
.dash-kpi b,.metric b,.glance-grid b,[data-fit-number="1"]{font-size:clamp(13px,2.15vw,28px)!important}
.dashboard-kpis .dash-kpi,.metrics .metric{min-width:0!important}
.table-wrap td,.table-wrap th{min-width:max-content}
@media(max-width:700px){
  .dash-kpi b,.metric b,.glance-grid b,[data-fit-number="1"]{font-size:clamp(12px,4.1vw,22px)!important}
}

/* 2026-09-17 COMPACT NUMBER TYPOGRAPHY — full values without oversized KPI text */
.dash-kpi b,.metric b,.glance-grid b,[data-fit-number="1"]{
  font-size:clamp(14px,1.55vw,22px)!important;
  line-height:1.15!important;
  letter-spacing:-.02em!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
}
/* Keep report/table content compact and readable instead of stretching rows/cards. */
.table-wrap td,.table-wrap th{
  font-size:clamp(11px,.95vw,14px)!important;
  line-height:1.3!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  min-width:0!important;
}
.report-value,.amount,.total,.money,.price{
  font-size:inherit!important;
  line-height:1.2!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
@media(max-width:700px){
  .dash-kpi b,.metric b,.glance-grid b,[data-fit-number="1"]{font-size:clamp(13px,4vw,18px)!important}
  .table-wrap td,.table-wrap th{font-size:11px!important}
}
/* 2026-09-17 WAITER MY TABLES + SINGLE MODAL CLOSE CONTROL */
.my-tables-head{display:flex;align-items:center;justify-content:space-between}.my-tables-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.my-table-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;cursor:pointer;min-width:0}.my-table-card.active-table{border-color:#b9c7d8}.my-table-card:hover{box-shadow:0 8px 24px #0000000d}.my-table-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:800;margin:10px 0}.complete-ordering-card{margin-top:10px}.my-table-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-right:34px}.my-table-orders{display:grid;gap:10px}.my-order-card{margin:0}.my-order-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.my-order-line span{min-width:0}.my-order-line small{display:block;margin-top:3px}.modal-card>#modalX{display:block!important;position:sticky!important;float:right!important;top:0!important;right:0!important;z-index:20!important}.modal-card .modal-x:not(#modalX){display:none!important}
@media(max-width:1100px){.my-tables-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.my-tables-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.my-table-card{padding:11px}.my-table-modal-head{display:grid;grid-template-columns:1fr}.my-table-modal-head .primary{width:100%}.my-edit-line{grid-template-columns:1fr}}
.cashier-completed-strip{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:14px}.cashier-completed-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.cashier-completed-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.cashier-completed-card{border:1px solid var(--line);border-radius:12px;padding:11px;display:flex;justify-content:space-between;gap:10px;align-items:center}.cashier-completed-card small,.cashier-completed-card strong{display:block;margin-top:4px}@media(max-width:900px){.cashier-completed-list{grid-template-columns:1fr 1fr}}@media(max-width:620px){.cashier-completed-head,.cashier-completed-card{align-items:stretch;flex-direction:column}.cashier-completed-list{grid-template-columns:1fr}}

/* 2026-09-17 SIMPLE WAITER MY TABLES + CASHIER COMPLETED ICON */
.my-tables-title{margin:0 0 12px}.my-tables-title h2{margin:2px 0 3px}.my-tables-title p{margin:0;color:var(--muted);font-size:13px}
.simple-waiter-grid{align-items:stretch}.simple-table-card{padding:13px!important;min-height:132px;display:flex;flex-direction:column;gap:8px;box-shadow:none!important}.simple-table-card:hover{border-color:#9eb8d4}.simple-table-top{display:flex;justify-content:space-between;align-items:flex-start}.simple-table-top h2{font-size:26px;margin:0}.simple-table-card p{margin:0;color:var(--muted);font-size:12px}.simple-status{display:inline-flex;align-self:flex-start;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;background:#eef3f8;color:#40546a}.simple-status.ready{background:#e8f7ee;color:#18763d}.simple-table-card .complete-ordering-card{margin-top:auto;min-height:38px;font-size:12px}
.completed-orders-icon{position:relative;display:inline-flex!important;align-items:center;gap:6px;white-space:nowrap}.completed-orders-icon b{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--primary);color:#fff;font-size:11px}.completed-popup-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-right:32px}.completed-popup-head h2{margin:2px 0}.completed-tabs{display:flex;gap:6px;margin:12px 0}.completed-popup-list{display:grid;gap:9px;max-height:min(62vh,600px);overflow:auto}.completed-popup-card{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.completed-popup-card h3,.completed-popup-card p{margin:3px 0}.completed-popup-card.waiting{border-left:4px solid var(--primary);background:#f8fbff}.completed-popup-card.paid-history{background:#f5f6f7;border-color:#d8dde3;color:#596675}.completed-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
/* old permanent cashier strip is intentionally suppressed; completed bills now live in the header popup */
.cashier-completed-strip{display:none!important}
@media(max-width:760px){.simple-table-card{min-height:120px;padding:10px!important}.simple-table-top h2{font-size:22px}.completed-orders-icon span{display:none}.completed-popup-card{align-items:stretch;flex-direction:column}.completed-actions{justify-content:stretch}.completed-actions button,.completed-popup-card>button{width:100%}}
/* 2026-09-17 WAITER TABLE-FIRST SERVICE + SIMPLE CART */
.waiter-cart-qty{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.waiter-cart-qty b{min-width:24px;text-align:center}.waiter-cart-qty button{min-width:38px;padding:7px 9px}.table-serve-now{margin-top:auto;background:#168a4a!important}.table-request-now{border-color:#f0b94c!important;background:#fff8e8!important;color:#795000!important}.table-bill-requested{padding:8px 9px;border-radius:9px;background:#fff1d7;color:#7c5000;font-size:10px;font-weight:900}.simple-table-card{height:auto!important}.simple-table-card button{white-space:normal;line-height:1.15}
@media(max-width:760px){.waiter-cart-qty{gap:5px}.waiter-cart-qty button{min-width:34px}.table-serve-now,.table-request-now,.complete-ordering-card{font-size:10px!important;min-height:36px!important}}

/* 2026-09-17 WAITER FAST TABLE WORKFLOW — compact, obvious, realtime-friendly */
.table-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:2px 0 4px}.table-card-actions button{min-height:36px;padding:7px 8px;font-size:10px;font-weight:900;white-space:nowrap}.table-card-actions .complete-ordering-card{grid-column:1/-1;margin:0!important;background:#18864b!important;color:#fff!important;border-color:#18864b!important}.table-card-actions .has-alert{border-color:#e7a629!important;background:#fff7df!important;color:#7a4b00!important}.table-card-summary{display:flex;align-items:center;justify-content:space-between;gap:8px}.table-card-summary small{font-size:10px;color:var(--muted)}
.simple-table-card{min-height:0!important;padding:11px!important;gap:7px!important}.simple-table-top h2{font-size:23px!important}.simple-status{font-size:9px!important;padding:4px 7px!important}.table-serve-now{min-height:34px!important;padding:7px!important;font-size:10px!important}.table-bill-requested{font-size:10px!important;padding:6px 8px!important}
.my-table-orders{gap:7px!important}.my-order-card{padding:10px!important;border-radius:12px!important}.my-order-card .toolbar{margin-bottom:4px}.my-order-card .row-actions{margin-top:7px!important}.my-order-card .row-actions button{min-height:34px;padding:7px 10px;font-size:10px;font-weight:900}.my-order-line{padding:5px 0!important;font-size:11px!important}.my-order-line small{font-size:9px!important}.my-order-line b{font-size:11px!important}
/* waiter menu: clean white compact cards; quantity lives in the cart */
#wmMenu.menu-grid{gap:7px!important;margin:8px 0!important}#wmMenu .menu-card{background:#fff!important;color:var(--text)!important;border:1px solid var(--line)!important;border-radius:11px!important;min-height:62px!important;padding:9px!important;box-shadow:none!important;text-align:left!important}#wmMenu .menu-card b{font-size:11px!important;line-height:1.2!important}#wmMenu .menu-card span{font-size:11px!important;font-weight:900!important;margin-top:4px!important}#wmMenu .menu-card small{font-size:8px!important;margin-top:3px!important}.waiter-cat-scroll{overflow-x:auto!important;scrollbar-width:none}.waiter-cat-scroll::-webkit-scrollbar{display:none}.waiter-menu-collapsed{grid-column:1/-1;padding:14px;border:1px dashed var(--line);border-radius:10px;text-align:center;color:var(--muted);font-size:10px;background:#fafbfd}
#wmPreview{max-height:28vh;overflow:auto}#wmPreview>.panel{padding:7px 8px!important;border-radius:9px!important;margin:4px 0!important;background:#fff!important}#wmPreview .toolbar{gap:6px!important}#wmPreview b{font-size:10px!important}#wmPreview small{font-size:8px!important;line-height:1.2!important}.waiter-cart-qty{gap:4px!important}.waiter-cart-qty button{min-width:28px!important;min-height:28px!important;padding:4px 6px!important;font-size:9px!important}.waiter-cart-qty .danger{min-width:auto!important}
@media(max-width:620px){.table-card-actions{grid-template-columns:1fr 1fr}.table-card-actions button{font-size:9px;padding:6px 5px}.simple-table-top h2{font-size:20px!important}#wmMenu .menu-card{min-height:56px!important;padding:7px!important}#wmPreview{max-height:24vh}}
/* 2026-09-17 WAITER POPUP-FIRST CORRECTION */
.simple-table-card .table-card-actions{display:none!important}
.table-complete-direct{width:100%;margin:4px 0 0!important;min-height:36px!important;background:#18864b!important;color:#fff!important;border-color:#18864b!important}
.my-table-popup-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 12px;position:sticky;top:0;background:#fff;z-index:4;padding:5px 0}
.my-table-popup-actions button{min-height:40px;font-size:11px;font-weight:900}
.my-table-popup-actions .has-alert{background:#fff6dc!important;border-color:#e7a629!important;color:#754900!important}
.my-table-popup-actions .my-complete{background:#18864b!important;border-color:#18864b!important}
.my-order-card:not(:has(.badge)){border-color:var(--line)}
.my-order-card .row-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important}
.my-order-card .row-actions button{display:block!important;width:100%!important;visibility:visible!important;opacity:1!important}
@media(max-width:620px){.my-table-popup-actions{grid-template-columns:1fr 1fr}.my-table-popup-actions .my-complete{grid-column:1/-1}}
/* 2026-09-17 WAITER CARD ACTIONS — direct, obvious, non-technical workflow */
.table-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.table-card-actions button{min-height:38px;font-size:11px;font-weight:900;border-radius:10px}.table-request-button{border:1px solid #e3c35c;background:#fff4b8;color:#684d00}.table-request-button.has-requests{background:#ffd84d;border-color:#d7a900;color:#3e3000;box-shadow:0 0 0 2px rgba(255,216,77,.18)}
.table-order-mini{border:1px solid var(--line);border-radius:11px;background:#fff;padding:8px;display:grid;gap:7px}.table-order-open{border:0;background:transparent;text-align:left;padding:0;display:flex;align-items:center;justify-content:space-between;gap:8px;color:inherit}.table-order-open b{font-size:12px}.table-order-open small{font-size:9px;font-weight:900;color:var(--muted)}.table-order-mini-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.table-order-mini-actions button{min-height:32px;padding:6px;font-size:10px;font-weight:900}.served-order-note{color:#23804a;font-weight:800;padding:2px 1px}.simple-table-card{gap:7px!important}.simple-table-top{cursor:pointer}.table-card-summary{cursor:pointer}
@media(max-width:560px){.table-card-actions{grid-template-columns:1fr 1fr}.table-card-actions button{font-size:10px;padding:7px 5px}.table-order-mini{padding:7px}.table-order-mini-actions button{font-size:9px}}

/* 2026-09-17 EXACT WAITER CARD FLOW — one primary action at a time */
.table-card-actions.table-card-main-action{display:block!important;margin:4px 0!important}
.table-card-main-action>button{width:100%!important;min-height:40px!important;font-size:11px!important;font-weight:900!important}
.table-card-main-action .table-add-always{background:var(--primary)!important;color:#fff!important}
.table-card-main-action .table-complete-direct{margin:0!important;background:#18864b!important;border-color:#18864b!important;color:#fff!important}
/* Order management belongs inside the table popup, not on the table card. */
.simple-table-card>.table-order-mini{display:none!important}
.my-table-orders .my-order-card{padding:11px!important;border-radius:12px!important}
.my-table-orders .row-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin-top:9px!important}
.my-table-orders .row-actions button{display:block!important;visibility:visible!important;opacity:1!important;min-height:36px!important;font-size:10px!important;font-weight:900!important}
.my-table-popup-actions{grid-template-columns:1fr 1fr!important}
.my-table-popup-actions .my-complete{grid-column:auto!important}

/* 2026-09-17 waiter action visibility + print/bill UX correction */
.table-add-always{background:#1677d2!important;border-color:#1677d2!important;color:#fff!important;font-weight:900!important;box-shadow:0 4px 12px rgba(22,119,210,.18)!important}
.table-add-always:hover,.table-add-always:active{background:#0f68bd!important;border-color:#0f68bd!important;color:#fff!important}
.waiter-order-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:10px!important}
.waiter-order-actions button{display:block!important;visibility:visible!important;opacity:1!important;min-height:38px!important;font-size:11px!important;font-weight:900!important}
.waiter-edit-order{background:#eef6ff!important;border-color:#8fc3f3!important;color:#0c5fa8!important}
.waiter-cancel-order{background:#fff1f1!important;border-color:#efaaaa!important;color:#b42323!important}
@media(max-width:620px){.waiter-order-actions{grid-template-columns:1fr 1fr!important}.waiter-order-actions button{font-size:10px!important;padding:8px 5px!important}}

/* FINAL WAITER / OPERATIONS MODE */
.table-card-main-action{display:flex!important;gap:8px!important;flex-wrap:wrap!important}
.table-card-main-action .table-add-always{background:#1267d6!important;color:#fff!important;border-color:#1267d6!important;flex:1 1 140px}
.table-card-main-action .table-complete-direct{flex:1 1 120px}
.no-kitchen-service{display:flex;justify-content:flex-end;margin-top:6px}.no-kitchen-service button{min-height:36px;padding:7px 13px;font-size:12px}
.operation-toggle select{font-weight:800}

/* 2026-09-17 critical waiter/billing stability fixes */
.billing-tools{display:flex!important;align-items:center;gap:7px;flex-wrap:wrap}.completed-orders-icon{order:-20;flex:0 0 auto!important;visibility:visible!important;opacity:1!important}.operation-quick-toggles{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.waiter-order-actions{display:flex!important;gap:8px!important;flex-wrap:wrap!important;margin-top:10px!important}.waiter-order-actions button{display:inline-flex!important;visibility:visible!important;opacity:1!important;min-height:38px!important}.my-order-card{overflow:visible!important}
@media(max-width:760px){.completed-orders-icon{width:44px!important;min-width:44px!important;padding:8px!important;justify-content:center!important;position:relative}.completed-orders-icon span{display:none!important}.completed-orders-icon b{position:absolute;right:-4px;top:-6px}.billing-tools{overflow:visible!important}.operation-quick-toggles{width:100%;margin-left:0}.operation-quick-toggles button{flex:1}}

/* FINAL waiter action visibility + cashier completed control */
.table-add-always{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important;font-weight:800!important}
.my-table-popup-actions{display:flex!important;gap:8px!important;flex-wrap:wrap!important;position:sticky;top:0;z-index:3;background:var(--surface,#fff);padding:8px 0!important}
.my-order-card .waiter-order-actions{display:flex!important;gap:8px!important;margin-top:10px!important}
.my-order-card .waiter-edit-order,.my-order-card .waiter-cancel-order{display:inline-flex!important;visibility:visible!important;opacity:1!important;min-height:40px!important}
.completed-orders-icon{z-index:5!important}
@media(max-width:760px){.completed-orders-icon:before{content:'🧾';font-size:18px}.completed-orders-icon{font-size:0!important}.completed-orders-icon>b{font-size:10px!important}.my-table-popup-actions>button{flex:1 1 44%!important}.waiter-order-actions button{flex:1 1 45%!important}}

/* 2026-09-17 FINAL: waiter complete visibility + independent cashier completed control */
.table-card-main-action{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important}
.table-card-main-action>button:only-child{grid-column:1/-1!important}
.table-add-always,.table-complete-direct{display:flex!important;align-items:center!important;justify-content:center!important;min-height:42px!important;width:100%!important;color:#fff!important;visibility:visible!important;opacity:1!important}
.table-add-always{background:#087ee6!important;border-color:#087ee6!important}.table-complete-direct{background:#159447!important;border:1px solid #159447!important}
/* Completed is a separate cashier tool, never a source tab and never allowed to overlap Zomato. */
.billing-mode .pos-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:7px!important;overflow:visible!important}
.billing-mode .pos-source-tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;min-width:0!important;gap:5px!important}
.billing-mode .pos-source-tabs .tab{min-width:0!important;width:100%!important}
.billing-mode .billing-tools{display:flex!important;width:100%!important;min-width:0!important;gap:6px!important;align-items:center!important;overflow-x:auto!important;overflow-y:visible!important;scrollbar-width:none!important;padding:1px 2px 3px!important}
.billing-mode .billing-tools::-webkit-scrollbar{display:none!important}
.billing-mode .completed-orders-icon{position:relative!important;inset:auto!important;order:-99!important;flex:0 0 auto!important;min-width:max-content!important;z-index:2!important;background:#eef6ff!important;color:#0b4f91!important;border:1px solid #b9d8f5!important}
@media(max-width:760px){
 .billing-mode .pos-toolbar{gap:5px!important;padding:5px!important}
 .billing-mode .pos-source-tabs{gap:3px!important}
 .billing-mode .pos-source-tabs .tab{font-size:9px!important;padding:7px 2px!important}
 .billing-mode .completed-orders-icon{display:inline-flex!important;width:auto!important;min-width:52px!important;height:38px!important;padding:7px 10px!important;font-size:0!important;overflow:visible!important}
 .billing-mode .completed-orders-icon:before{content:'🧾'!important;font-size:18px!important;line-height:1!important}
 .billing-mode .completed-orders-icon>b{display:grid!important;position:absolute!important;right:-3px!important;top:-5px!important;font-size:10px!important;min-width:19px!important;height:19px!important}
}
/* 2026-09-17 FINAL mobile Completed Bills touch target */
.completed-orders-icon{position:relative;z-index:4;pointer-events:auto!important;touch-action:manipulation;min-height:42px;flex:0 0 auto}
@media(max-width:700px){
 .billing-tools .completed-orders-icon{display:inline-flex!important;align-items:center;justify-content:center;gap:4px;min-width:52px!important;width:auto!important;min-height:44px!important;padding:8px 10px!important;overflow:visible!important;position:relative!important;z-index:8!important}
 .billing-tools .completed-orders-icon span{display:none!important}
 .billing-tools .completed-orders-icon b{display:inline-flex!important;min-width:18px;height:18px;align-items:center;justify-content:center;border-radius:999px;font-size:10px}
}
/* 2026-09-17 assigned waiter NEW customer order alert */
.waiter-table-new-order{border:2px solid currentColor!important;box-shadow:0 0 0 4px rgba(255,183,0,.16),0 10px 28px rgba(0,0,0,.08)!important;animation:waiterNewOrderPulse 1.15s ease-in-out infinite;cursor:pointer}
.waiter-table-new-order .table-card-top:after{content:'🔥 NEW ORDER';font-size:11px;font-weight:900;letter-spacing:.04em;padding:5px 8px;border-radius:999px;background:#fff3cd;color:#704d00}
.new-order-alert b{font-variant-numeric:tabular-nums}
@keyframes waiterNewOrderPulse{50%{transform:translateY(-1px);box-shadow:0 0 0 7px rgba(255,183,0,.22),0 12px 30px rgba(0,0,0,.1)}}
@media(max-width:700px){.waiter-table-new-order{animation:none}.waiter-table-new-order .table-card-top:after{font-size:9px;padding:4px 6px}}

/* 2026-09-17 waiter QR acceptance state */
.my-table-card.waiter-table-new-order{border:3px solid #f0a000!important;background:#fff8df!important;box-shadow:0 0 0 5px rgba(240,160,0,.18)!important}
.my-table-card.waiter-table-new-order .simple-status{background:#ffd84d!important;color:#3b2b00!important;font-weight:900!important}
.waiter-new-accept{grid-template-columns:1fr!important}.waiter-accept-order{background:#159447!important;border-color:#159447!important;color:#fff!important}.waiter-ready-order,.waiter-served-order{background:#087ee6!important;color:#fff!important}
/* 2026-09-17 waiter single-popup navigation + cashier receipt attention */
.my-table-nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:8px 0 14px}.my-table-nav button{min-height:40px}.my-table-nav .request-nav-active,.my-table-nav .has-alert{background:#facc15!important;color:#422006!important;border-color:#eab308!important;font-weight:900}.inline-table-requests{max-height:55vh;overflow:auto}.completed-orders-icon.completed-needs-print{background:#facc15!important;color:#422006!important;box-shadow:0 0 0 3px rgba(250,204,21,.25);animation:completedPrintPulse 1.1s ease-in-out infinite}@keyframes completedPrintPulse{50%{transform:scale(1.025);box-shadow:0 0 0 7px rgba(250,204,21,.12)}}
@media(max-width:700px){.my-table-nav{display:grid;grid-template-columns:1fr 1fr}.my-table-nav #mtRequests{grid-column:1/-1}.my-table-nav .my-complete{grid-column:1/-1}.completed-orders-icon.completed-needs-print{min-width:48px!important}}

/* 2026-09-17 final waiter service consolidation */
.waiter-service-title{align-items:center;margin-bottom:12px}.waiter-service-title h2{margin:2px 0}.waiter-service-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.waiter-card-attention{border:2px solid currentColor;box-shadow:0 0 0 3px rgba(0,0,0,.05);animation:waiterAttention 1.4s ease-in-out infinite}.waiter-card-badges,.waiter-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.waiter-card-actions button{flex:1 1 auto;min-width:92px}.badge.urgent{font-weight:900}.my-table-nav{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.my-table-nav button{flex:1 1 120px}.my-table-nav .has-alert{font-weight:900}@keyframes waiterAttention{50%{transform:translateY(-1px);box-shadow:0 0 0 5px rgba(0,0,0,.07)}}@media(max-width:700px){.waiter-service-card{padding:10px}.waiter-card-actions button{font-size:11px;padding:9px 7px}.my-table-nav button{font-size:11px;padding:9px 6px}}

/* 2026-09-17 Waiter Service unified table controls */
.waiter-direct-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
.waiter-direct-actions button{width:100%;min-width:0;white-space:normal;line-height:1.15}
.waiter-request-action{grid-column:1/-1}
.waiter-service-card.waiter-card-attention{animation:waiterAttentionPulse 1.05s ease-in-out infinite;box-shadow:0 0 0 3px rgba(245,158,11,.28)!important}
@keyframes waiterAttentionPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@media(max-width:520px){.waiter-direct-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.waiter-direct-actions button{font-size:11px;padding:9px 6px}}


/* 2026-09-17 WAITER UX CLEANUP + PAYMENT TALLY */
.waiter-service-title{margin-bottom:10px!important}.waiter-service-title h2{margin:0!important}
.waiter-service-card{background:#fff!important;border:1px solid #e6edf5!important;border-radius:16px!important;box-shadow:0 5px 18px rgba(15,23,42,.07)!important;padding:13px!important}
.waiter-card-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:7px 0 9px;padding:7px 9px;border-radius:10px;background:#f8fafc;font-size:12px;color:#52606d}
.waiter-card-badges{margin:7px 0!important}.waiter-card-badges .badge{font-size:10px;padding:4px 7px}
.waiter-direct-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}.waiter-direct-actions button{min-height:36px!important;padding:7px 5px!important;font-size:10px!important;border-radius:9px!important}.waiter-request-action{grid-column:1/-1!important}
.waiter-complete-ready{background:#159447!important;border:1px solid #159447!important;color:#fff!important;font-weight:900!important;box-shadow:0 5px 14px rgba(21,148,71,.2)!important}.waiter-complete-ready:disabled{opacity:1!important}
.waiter-menu-shell{max-width:100%;overflow:hidden}.waiter-menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.waiter-menu-head h2{margin:0}.waiter-menu-head small{color:var(--muted)}
.waiter-menu-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.75fr);gap:12px;align-items:start;margin-top:10px}.waiter-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;max-height:56vh;overflow:auto;padding:2px!important}
.waiter-menu-card{min-height:76px!important;background:#fff!important;border:1px solid #e6edf5!important;border-radius:13px!important;box-shadow:0 4px 13px rgba(15,23,42,.07)!important;padding:11px!important;text-align:left!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:8px!important;color:inherit!important}.waiter-menu-card:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,23,42,.1)!important}.waiter-menu-card b{font-size:13px}.waiter-menu-card strong{white-space:nowrap;font-size:13px}.waiter-menu-card small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.waiter-cart-panel{background:#fff;border:1px solid #e6edf5;border-radius:14px;box-shadow:0 4px 14px rgba(15,23,42,.06);overflow:hidden}.waiter-cart-title{display:flex;justify-content:space-between;padding:11px 12px;border-bottom:1px solid #edf2f7}.waiter-cart-title span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:#eef6ff;font-weight:900}.waiter-cart-items{max-height:40vh;overflow:auto;padding:5px 10px}.waiter-cart-empty{text-align:center;color:var(--muted);padding:24px 8px;font-size:12px}.waiter-cart-line{padding:9px 0;border-bottom:1px solid #edf2f7}.waiter-cart-name{display:flex;justify-content:space-between;gap:8px;align-items:start}.waiter-cart-name b{font-size:12px}.waiter-cart-name small{font-size:10px;color:var(--muted);text-align:right}.waiter-qty{display:grid;grid-template-columns:32px 30px 32px 1fr;gap:5px;align-items:center;margin-top:7px}.waiter-qty button{min-height:30px!important;padding:4px!important}.waiter-qty>b{text-align:center}.waiter-remove{border:0;background:transparent;color:#c62828;font-size:9px;font-weight:900;justify-self:end}.waiter-cart-foot{padding:10px 12px;background:#fbfdff;border-top:1px solid #edf2f7}.waiter-cart-foot>div{display:flex;justify-content:space-between;margin-bottom:8px}.waiter-cart-foot button{min-height:40px}.offer-pick-compact{max-width:520px;margin:auto}.offer-fixed-line{display:flex;justify-content:space-between;gap:8px;padding:9px 2px;border-bottom:1px solid #edf2f7}.offer-fixed-line small{color:var(--muted)}.offer-pick-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-top:12px}
.split-total-row,.split-tally,.payment-total{display:flex;align-items:center;justify-content:space-between;gap:10px}.split-total-row{padding:9px 2px;font-size:12px}.split-tally{margin-top:8px;padding:9px 10px;border-radius:10px;background:#f8fafc;font-size:11px}.payment-total{padding:12px;margin-bottom:10px;border-radius:12px;background:#f8fafc}.payment-total b{font-size:20px}.cashier-split-grid{margin-top:4px}
@media(max-width:700px){.waiter-direct-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}.waiter-menu-layout{grid-template-columns:1fr}.waiter-menu-grid{max-height:42vh}.waiter-cart-panel{position:sticky;bottom:0;z-index:3}.waiter-cart-items{max-height:24vh}.waiter-menu-card{min-height:68px!important;padding:9px!important}.waiter-menu-card b,.waiter-menu-card strong{font-size:12px}.waiter-card-meta{font-size:11px}}


/* 2026-09-17 WAITER MOBILE POLISH v2 */
.waiter-service-card{color:#172033!important}
.waiter-direct-actions{display:block!important;margin-top:10px!important}
.waiter-main-actions{display:grid;grid-template-columns:1.15fr 1fr;gap:7px}
.waiter-main-actions button{min-width:0!important;min-height:42px!important;font-size:10px!important;font-weight:900!important;letter-spacing:.01em}
.waiter-utility-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:7px}
.waiter-utility-actions button{flex:0 0 auto!important;width:auto!important;min-width:64px!important;min-height:32px!important;padding:5px 9px!important;font-size:9px!important}
.waiter-serve-action,.waiter-request-action{width:100%!important;margin-top:7px!important;min-height:38px!important}
.waiter-details-action{background:#f4f8fc!important;color:#183153!important;border:1px solid #dce7f2!important}
.waiter-card-meta,.waiter-card-meta span,.waiter-card-meta b{color:#52606d!important}

.waiter-menu-shell,.waiter-menu-shell *{box-sizing:border-box}
.waiter-menu-shell{color:#172033!important;background:#fff!important}
.waiter-menu-head,.waiter-menu-head h2,.waiter-menu-head b{color:#172033!important}
.waiter-menu-grid{background:#f7f9fc!important;border-radius:14px;padding:8px!important}
.waiter-menu-card{color:#172033!important;background:#fff!important;border-color:#e2e8f0!important;box-shadow:0 3px 10px rgba(15,23,42,.07)!important}
.waiter-menu-card b,.waiter-menu-card strong{color:#172033!important}
.waiter-menu-card small{color:#667085!important}
.waiter-cart-panel,.waiter-cart-title,.waiter-cart-items,.waiter-cart-line,.waiter-cart-name,.waiter-cart-foot{color:#172033!important}
.waiter-cart-title b,.waiter-cart-line b,.waiter-cart-name b,.waiter-qty>b,.waiter-cart-foot b{color:#172033!important}
.waiter-cart-name small{color:#667085!important}
.waiter-qty .soft{background:#f2f6fa!important;color:#172033!important;border:1px solid #dce5ee!important}
.waiter-remove{color:#b42318!important;background:#fff5f4!important;border:1px solid #fee4e2!important;border-radius:8px!important;padding:6px 9px!important}
.waiter-cart-empty{color:#667085!important}

@media(max-width:700px){
 .waiter-service-card{padding:11px!important;border-radius:14px!important}
 .waiter-card-badges{gap:4px!important}.waiter-card-badges .badge{font-size:9px!important;padding:3px 6px!important}
 .waiter-main-actions{grid-template-columns:1fr 1fr;gap:6px}
 .waiter-main-actions button{min-height:40px!important;padding:7px 5px!important;font-size:9.5px!important}
 .waiter-utility-actions{margin-top:6px}.waiter-utility-actions button{min-height:30px!important;min-width:58px!important;font-size:8.5px!important}
 .waiter-serve-action,.waiter-request-action{min-height:36px!important;font-size:9.5px!important}
 .waiter-menu-head small{display:none!important}
 .waiter-menu-layout{display:flex!important;flex-direction:column!important;gap:9px!important}
 .waiter-menu-grid{width:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;max-height:40vh!important;padding:6px!important}
 .waiter-menu-card{min-height:62px!important;padding:8px!important;border-radius:11px!important}
 .waiter-menu-card b,.waiter-menu-card strong{font-size:11px!important}
 .waiter-cart-panel{width:100%!important;position:sticky!important;bottom:0!important;border-radius:13px!important;box-shadow:0 -4px 18px rgba(15,23,42,.10)!important}
 .waiter-cart-title{padding:8px 10px!important}.waiter-cart-items{max-height:22vh!important;padding:3px 9px!important}
 .waiter-cart-line{padding:7px 0!important}.waiter-cart-name b{font-size:11px!important}.waiter-cart-name small{font-size:9px!important}
 .waiter-qty{grid-template-columns:30px 28px 30px 1fr!important;gap:4px!important;margin-top:5px!important}
 .waiter-qty button{min-height:29px!important}.waiter-remove{font-size:8px!important}
 .waiter-cart-foot{padding:8px 10px!important}.waiter-cart-foot button{min-height:38px!important}
}

/* 2026-09-17 waiter mobile containment + kitchen-owned service states */
.waiter-service-card{overflow:hidden!important}
.waiter-direct-actions,.waiter-main-actions,.waiter-utility-actions{min-width:0!important;max-width:100%!important}
.waiter-main-actions>*{min-width:0!important;max-width:100%!important}
.waiter-utility-actions{width:100%!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important}
.waiter-utility-actions button{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important}
@media(max-width:700px){
 .waiter-service-card{width:100%!important;max-width:100%!important;padding:10px!important}
 .waiter-card-actions{width:100%!important;max-width:100%!important;overflow:hidden!important}
 .waiter-main-actions{width:100%!important;grid-template-columns:1fr 1fr!important}
 .waiter-main-actions button{width:100%!important;max-width:100%!important;min-width:0!important;padding:8px 4px!important;font-size:9px!important;white-space:normal!important}
 .waiter-utility-actions{width:100%!important;grid-template-columns:1fr 1fr!important;margin-top:6px!important}
 .waiter-utility-actions button{min-height:31px!important;padding:5px 4px!important;font-size:8.5px!important;white-space:normal!important}
}

/* 2026-09-17 waiter service clean mobile + kitchen workflow */
.waiter-main-actions{grid-template-columns:1fr 1fr!important}
.waiter-more{position:relative;margin-top:7px;width:100%}
.waiter-more>summary{list-style:none;cursor:pointer;text-align:center;padding:7px 10px;border:1px solid #dce5ee;border-radius:9px;background:#f8fafc;color:#52606d;font-size:10px;font-weight:900}
.waiter-more>summary::-webkit-details-marker{display:none}
.waiter-more-menu{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;padding:7px;background:#f8fafc;border:1px solid #e5ebf2;border-radius:10px}
.waiter-more-menu button{width:100%!important;min-width:0!important;margin:0!important;white-space:normal!important}
.waiter-serve-action{background:#168447!important;border-color:#168447!important;color:#fff!important;font-weight:900!important}
.ticket.ticket-edited{border:2px solid #f59e0b!important;box-shadow:0 0 0 4px rgba(245,158,11,.16)!important;animation:kitchenEditedPulse 1.1s ease-in-out infinite}
@keyframes kitchenEditedPulse{50%{box-shadow:0 0 0 7px rgba(245,158,11,.08)!important}}
@media(max-width:700px){
 .waiter-service-title{margin-bottom:8px!important}.waiter-service-card{padding:10px!important;border-radius:14px!important}
 .waiter-main-actions{grid-template-columns:1fr 1fr!important;gap:6px!important}.waiter-main-actions button{min-height:42px!important;font-size:9.5px!important;padding:7px 5px!important}
 .waiter-more-menu{grid-template-columns:1fr 1fr!important}.waiter-more-menu button{min-height:34px!important;font-size:9px!important;padding:6px 4px!important}
 .waiter-card-meta{margin:6px 0!important}.waiter-card-badges{margin:5px 0!important}
}


/* 2026-09-17 waiter mobile hierarchy + profile subscription readability v21 */
.waiter-add-full{width:100%!important;display:block!important;min-height:42px!important;font-size:11px!important}
.waiter-secondary-row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,.72fr)!important;gap:7px!important;align-items:start!important;margin-top:7px!important;width:100%!important;min-width:0!important}
.waiter-secondary-row>.waiter-details-action{width:100%!important;min-width:0!important;min-height:36px!important;font-size:9.5px!important}
.waiter-secondary-row>.waiter-more{width:100%!important;min-width:0!important;margin:0!important}
.waiter-secondary-row>.waiter-more>summary{min-height:36px!important;display:grid!important;place-items:center!important;padding:7px 5px!important}
.waiter-secondary-row .waiter-more-menu{position:relative!important;grid-template-columns:1fr!important;z-index:4!important}
#subscriptionPanel{align-self:start!important;min-width:0!important}
#subscriptionPanel .subscription-metrics{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
#subscriptionPanel .subscription-metrics .metric{min-height:0!important;padding:12px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;overflow:hidden!important}
#subscriptionPanel .subscription-metrics .metric small{flex:0 1 auto!important;min-width:0!important}
#subscriptionPanel .subscription-metrics .metric b{margin:0!important;font-size:18px!important;line-height:1.15!important;white-space:nowrap!important;overflow:visible!important;overflow-wrap:normal!important;word-break:normal!important;text-align:right!important;flex:0 0 auto!important}
@media(max-width:700px){
 .waiter-service-card{padding:11px!important}
 .waiter-add-full{min-height:44px!important;font-size:11px!important;border-radius:10px!important}
 .waiter-secondary-row{grid-template-columns:minmax(0,1fr) minmax(86px,.55fr)!important;gap:6px!important}
 .waiter-secondary-row>.waiter-details-action,.waiter-secondary-row>.waiter-more>summary{min-height:35px!important;font-size:9px!important}
 #subscriptionPanel .subscription-metrics .metric{padding:11px 12px!important}
 #subscriptionPanel .subscription-metrics .metric b{font-size:16px!important}
}


/* 2026-09-17 waiter responsive actions + compact profile layout v22 */
.waiter-direct-actions{display:block!important;width:100%!important;min-width:0!important}
.waiter-primary-row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:7px!important;width:100%!important;min-width:0!important}
.waiter-primary-row button{width:100%!important;min-width:0!important;min-height:38px!important;margin:0!important;padding:8px 7px!important;font-size:10px!important;white-space:normal!important}
.waiter-direct-actions>.waiter-more{display:block!important;width:100%!important;margin:7px 0 0!important}
.waiter-direct-actions>.waiter-more>summary{width:100%!important;min-height:32px!important;display:grid!important;place-items:center!important;padding:6px 8px!important}
.waiter-direct-actions>.waiter-more .waiter-more-menu{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:6px!important;width:100%!important}
.waiter-direct-actions>.waiter-more .waiter-more-menu button{min-height:31px!important;padding:5px 6px!important;font-size:9px!important}
.profile-page-layout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:14px!important;align-items:start!important}
.profile-left-stack{display:flex!important;flex-direction:column!important;gap:14px!important;min-width:0!important}
.profile-left-stack>.panel,.profile-owner-card{margin:0!important;min-width:0!important}
.profile-password-card{align-self:stretch!important}
@media(max-width:700px){
 .waiter-primary-row{grid-template-columns:1fr!important;gap:6px!important}
 .waiter-primary-row button{min-height:38px!important;font-size:10px!important;padding:8px 7px!important}
 .waiter-direct-actions>.waiter-more{margin-top:6px!important}
 .waiter-direct-actions>.waiter-more>summary{min-height:34px!important;font-size:9px!important}
 .waiter-direct-actions>.waiter-more .waiter-more-menu{grid-template-columns:1fr 1fr!important;gap:6px!important}
 .waiter-direct-actions>.waiter-more .waiter-more-menu button{min-height:32px!important;font-size:8.5px!important;padding:5px 4px!important}
 .profile-page-layout{grid-template-columns:1fr!important;gap:10px!important}
 .profile-left-stack{gap:10px!important}
 .profile-owner-card{grid-row:auto!important}
}
/* 2026-09-17 OWNER ORDER DETAILS */
.owner-order-row{cursor:pointer}.owner-order-row:hover{background:rgba(14,116,144,.06)}
.owner-order-detail-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.owner-order-detail-head h2{margin:2px 0}.owner-order-detail-head .badge{margin-left:auto}
.owner-order-summary,.owner-payment-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:#fff}
.owner-order-summary div,.owner-payment-card div{min-width:0}.owner-order-summary small,.owner-payment-card small{display:block;color:#64748b;font-size:10px;font-weight:800;letter-spacing:.06em;margin-bottom:3px}.owner-order-summary b,.owner-payment-card b{display:block;overflow-wrap:anywhere;color:#0f172a}
.owner-order-section-title{margin:16px 0 8px}.owner-order-items{border:1px solid var(--line,#e5e7eb);border-radius:14px;overflow:hidden;background:#fff;max-height:38vh;overflow-y:auto}
.owner-order-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #eef2f7;color:#0f172a}.owner-order-item:last-child{border-bottom:0}.owner-order-item small{display:block;color:#64748b;margin-top:2px}.owner-order-item.combo-child{padding-left:28px;background:#f8fafc}.owner-order-item.combo-child b{font-weight:600}
.owner-order-totals{margin:10px 0 14px;padding:10px 12px;border-radius:14px;background:#f8fafc}.owner-order-totals>div{display:flex;justify-content:space-between;gap:12px;padding:5px 0}.owner-order-totals .grand{font-size:17px;border-top:1px solid #dbe3ec;margin-top:5px;padding-top:10px}
@media(max-width:600px){.owner-order-summary,.owner-payment-card{grid-template-columns:1fr}.owner-order-item{grid-template-columns:minmax(0,1fr) auto}.owner-order-item strong{grid-column:2}.owner-orders-table th:nth-child(2),.owner-orders-table td:nth-child(2){display:none}}

/* 2026-09-17 completed dining billing state */
.completed-popup-card.needs-first-print{border-left:5px solid var(--primary)!important;background:#f8fbff!important}
.completed-popup-card.awaiting-payment{border:2px solid #d89a18!important;border-left:6px solid #d89a18!important;background:#fff8e8!important;box-shadow:0 0 0 2px rgba(216,154,24,.08)!important}
.completed-popup-card.awaiting-payment small{font-weight:800!important;letter-spacing:.04em!important}

/* 2026-09-17 completed bill state: neutral before first print; highlighted only while awaiting payment */
.completed-popup-card.waiting.needs-first-print{border:1px solid var(--line)!important;border-left:1px solid var(--line)!important;background:#fff!important;box-shadow:none!important}
.completed-popup-card.waiting.awaiting-payment{border:2px solid #d89a18!important;border-left:6px solid #d89a18!important;background:#fff8e8!important;box-shadow:0 0 0 2px rgba(216,154,24,.08)!important}
/* Direct editable cart quantities: fast for large touch-screen orders */
.cart-qty-input{width:58px!important;min-width:58px!important;height:34px!important;padding:4px 5px!important;border:1px solid var(--line,#dbe3ee)!important;border-radius:8px!important;background:#fff!important;text-align:center!important;font:700 14px/1 system-ui,sans-serif!important;color:inherit!important;-moz-appearance:textfield!important}
.cart-qty-input::-webkit-outer-spin-button,.cart-qty-input::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important}
.qty .cart-qty-input{margin:0 4px!important}
.waiter-qty .cart-qty-input{margin:0 3px!important}
@media(max-width:700px),(pointer:coarse){.cart-qty-input{width:64px!important;min-width:64px!important;height:40px!important;font-size:16px!important}.qty button,.waiter-qty button{min-height:40px!important}}

/* 2026-09-20 touch keyboard-safe menu + owner order editor */
.owner-order-manage-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:14px 0 8px!important}.owner-order-manage-actions button{min-height:42px!important}.owner-edit-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:240px;overflow:auto;margin:8px 0 14px;padding-bottom:8px}.owner-edit-menu-item{min-height:68px}.owner-edit-cart{max-height:300px;overflow:auto}.owner-edit-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.owner-edit-line>div:first-child{min-width:0}.owner-edit-line small{display:block}.owner-edit-line .qty{display:flex;align-items:center;gap:4px;flex:0 0 auto}.owner-edit-actions{position:sticky;bottom:0;background:var(--panel,#fff);padding-top:10px;z-index:4}
.soft-keyboard-open .menu-grid,.soft-keyboard-open #menuGrid,.soft-keyboard-open #wMenu,.soft-keyboard-open #wmMenu,.soft-keyboard-open .owner-edit-menu{max-height:calc(100dvh - var(--soft-keyboard-height,0px) - 190px)!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding-bottom:24px!important}.soft-keyboard-open .pos-search,.soft-keyboard-open .search,.soft-keyboard-open .keyboard-aware-search{position:sticky!important;top:0!important;z-index:12!important;background:#fff!important}.soft-keyboard-open{max-height:calc(100dvh - var(--soft-keyboard-height,0px) - 12px)!important;overflow:hidden!important}
@media(max-width:700px),(pointer:coarse){.owner-edit-menu{grid-template-columns:repeat(2,minmax(0,1fr));max-height:210px}.owner-edit-line{align-items:flex-start;flex-direction:column}.owner-edit-line .qty{width:100%;justify-content:flex-end}.owner-order-manage-actions{grid-template-columns:1fr 1fr}.soft-keyboard-open .menu-grid,.soft-keyboard-open #menuGrid,.soft-keyboard-open #wMenu,.soft-keyboard-open #wmMenu,.soft-keyboard-open .owner-edit-menu{max-height:calc(100dvh - var(--soft-keyboard-height,0px) - 160px)!important}}
/* Owner POS order edit mode */
.pos-edit-banner{margin:8px 0;padding:10px 12px;border:1px solid rgba(14,165,233,.35);border-radius:12px;background:rgba(14,165,233,.08);display:grid;gap:4px}.pos-edit-banner b{font-size:13px}.pos-edit-banner span{font-size:11px;opacity:.78}.pos-edit-banner .soft{justify-self:start;padding:6px 10px;font-size:10px}.order-actions [data-pos-owner-edit],.order-actions [data-pos-owner-delete]{min-width:70px}

/* Fast touch controls v3 */
button,[role=button],.qty button,.waiter-qty button,.menu-card,.item{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.qty button,.waiter-qty button{user-select:none;-webkit-user-select:none}

/* 2026-09-20 compact edit state + always-visible generate action */
.billing-mode .bill.is-editing-order{border:2px solid #168fe8!important;box-shadow:0 0 0 3px rgba(22,143,232,.10),0 8px 24px rgba(8,75,135,.12)!important}
.billing-mode .bill-footer{position:sticky!important;bottom:0!important;z-index:12!important;background:#fff!important;padding-bottom:max(8px,env(safe-area-inset-bottom))!important}
.billing-mode #complete{display:flex!important;visibility:visible!important;opacity:1!important;position:relative!important;z-index:14!important;min-height:48px!important;flex:0 0 auto!important}
.mobile-pos-cart-card .bill-footer{position:sticky!important;bottom:0!important;z-index:20!important;background:#fff!important}
.mobile-pos-cart-card #complete{display:flex!important;position:sticky!important;bottom:0!important;width:100%!important}
@media(min-width:901px){.billing-mode .bill{max-height:calc(100dvh - 190px)!important;overflow:hidden!important}.billing-mode .cart-scroll{overflow-y:auto!important;min-height:0!important}.billing-mode .bill-footer{bottom:0!important}}

/* 2026-09-20 center Generate Bill button label on every viewport */
.billing-mode #complete,
.mobile-pos-cart-card #complete{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1.15!important;
}

/* Touch-scroll safety + clear quantity/other charge controls */
.cart-qty-input,.waiter-qty-input{min-width:64px!important;width:72px!important;text-align:center!important;font-weight:800!important;color:#0b2558!important;background:#fff!important;opacity:1!important;-webkit-text-fill-color:#0b2558!important}
.other-charge-entry{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(90px,.75fr);gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line,#dbe5f2)}
.other-charge-entry select,.other-charge-entry input{min-width:0;width:100%;height:42px}
.other-charge-entry #otherChargeLabel:not(.hidden){grid-column:1/-1}
@media(max-width:700px){.cart-qty-input,.waiter-qty-input{min-width:68px!important;width:76px!important;height:44px!important;font-size:18px!important}.other-charge-entry{grid-template-columns:minmax(0,1fr) 112px}.other-charge-entry select,.other-charge-entry input{height:44px;font-size:14px}}

/* 2026-09-21 compact collapsible Other Charges */
.other-charge-collapsible{padding:7px 0;border-top:1px solid var(--line,#dbe5f2)}
.other-charge-toggle{width:100%!important;min-height:38px!important;justify-content:center!important;font-size:11px!important;letter-spacing:.04em!important}
.other-charge-entry{margin-top:7px!important;padding:9px!important;border:1px solid var(--line,#dbe5f2)!important;border-radius:12px!important;background:#f8fbff!important;grid-template-columns:minmax(0,1fr) 120px!important}
.other-charge-entry #otherChargeLabelInput:not(.hidden){grid-column:1/-1}
.other-charge-editor-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.other-charge-editor-actions button{min-height:36px!important}
.other-charge-applied{padding:7px 0!important}
@media(max-width:700px){.other-charge-entry{grid-template-columns:1fr!important}.other-charge-entry>*{grid-column:1!important}.other-charge-editor-actions{display:grid!important;grid-template-columns:1fr 1fr!important}.other-charge-toggle{min-height:40px!important}}

/* 2026-09-21 POS layout: navigation belongs to menu column; bill uses full height */
.billing-mode .pos-shell{display:block!important;height:100%!important;min-height:0!important}
.billing-mode .pos{height:100%!important;min-height:0!important;align-items:stretch!important}
.billing-mode .catalog>.pos-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;width:100%!important;padding:0 0 7px!important;margin:0 0 7px!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;flex:0 0 auto!important}
.billing-mode .catalog>.pos-toolbar .pos-source-tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;gap:5px!important;margin:0!important;overflow:visible!important}
.billing-mode .catalog>.pos-toolbar .pos-source-tabs .tab{width:100%!important;min-width:0!important;justify-content:center!important;text-align:center!important}
.billing-mode .catalog>.pos-toolbar .billing-tools{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;width:100%!important;gap:5px!important;margin:0!important}
.billing-mode .catalog>.pos-toolbar .billing-tools button{width:100%!important;min-width:0!important;margin:0!important;padding:7px 4px!important;justify-content:center!important;text-align:center!important;white-space:nowrap!important}
.billing-mode .bill{height:100%!important;max-height:none!important;align-self:stretch!important}
.billing-mode .cart-scroll{flex:1 1 0!important;min-height:120px!important}
@media(max-width:1100px){.billing-mode .catalog>.pos-toolbar .billing-tools button{font-size:9px!important;padding:7px 2px!important}}
@media(max-width:700px){.billing-mode .catalog>.pos-toolbar{gap:4px!important;margin-bottom:5px!important;padding-bottom:5px!important}.billing-mode .catalog>.pos-toolbar .pos-source-tabs{gap:3px!important}.billing-mode .catalog>.pos-toolbar .billing-tools{gap:3px!important}.billing-mode .catalog>.pos-toolbar .billing-tools button{font-size:8px!important;padding:6px 1px!important}.billing-mode .bill{height:100%!important;max-height:none!important}}
/* Multiple other charges */
.other-charges-list{display:grid;gap:5px}.other-charge-row-actions{display:flex;align-items:center;gap:5px}.other-charge-edit,.other-charge-remove{padding:4px 7px!important;min-height:28px!important;font-size:10px!important}.other-charge-remove{min-width:28px!important}


/* 2026-09-21 cart clarity: fixed header + large item scroller + compact footer */
.billing-mode .bill{display:grid!important;grid-template-rows:auto minmax(150px,1fr) auto!important;min-height:0!important;overflow:hidden!important}
.billing-mode .bill-head{grid-row:1;min-height:0!important}
.billing-mode .cart-scroll{grid-row:2;min-height:150px!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;padding-bottom:8px!important}
.billing-mode .bill-footer{grid-row:3;max-height:46vh!important;overflow-y:auto!important;overscroll-behavior:contain!important;background:#fff!important}
.billing-mode .other-charge-toggle{background:#f3f8fd!important;border:1px solid #dce9f5!important;color:#123d6b!important}
.billing-mode .other-charges-list.hidden{display:none!important}
.billing-mode .other-charges-list{max-height:150px!important;overflow-y:auto!important;border:1px solid #e4edf5!important;border-radius:10px!important;padding:4px 8px!important;background:#fbfdff!important}
@media(min-width:901px){#content.billing-mode{height:calc(100dvh - 68px)!important;overflow:hidden!important}.billing-mode .pos-shell,.billing-mode .pos{height:100%!important}.billing-mode .catalog{height:100%!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}.billing-mode .catalog .menu-grid{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important}.billing-mode .bill-footer{max-height:42vh!important}}
@media(max-width:700px){.mobile-pos-cart-card .bill{grid-template-rows:auto minmax(130px,1fr) auto!important}.mobile-pos-cart-card .cart-scroll{min-height:130px!important}.mobile-pos-cart-card .bill-footer{max-height:48dvh!important;overflow-y:auto!important}.billing-mode .other-charges-list{max-height:120px!important}}


/* 2026-09-21 POS fixed bill + floating charges + collapsible sidebar */
#menuBtn{display:inline-grid!important;place-items:center!important;flex:0 0 auto!important}
@media(min-width:821px){
  #appView.sidebar-collapsed{grid-template-columns:0 1fr!important}
  #appView.sidebar-collapsed #sidebar{transform:translateX(-100%)!important;pointer-events:none!important}
  #appView #sidebar{transition:transform .2s ease!important}
  #appView.sidebar-collapsed .main{grid-column:2!important;width:100%!important}
}
.billing-mode{overflow:hidden!important}
.billing-mode .pos-shell,.billing-mode .pos{height:100%!important;min-height:0!important;overflow:hidden!important}
.billing-mode .bill{position:relative!important;height:100%!important;min-height:0!important;overflow:hidden!important;grid-template-rows:auto minmax(0,1fr) auto!important}
.billing-mode .bill-head{flex:0 0 auto!important}
.billing-mode .cart-scroll{min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important}
.billing-mode .cart-scroll::-webkit-scrollbar{display:none!important;width:0!important}
.billing-mode .bill-footer{position:relative!important;bottom:auto!important;max-height:none!important;overflow:visible!important;flex:0 0 auto!important;padding-bottom:max(8px,env(safe-area-inset-bottom))!important}
.billing-mode .other-charge-collapsible{position:relative!important}
.billing-mode #otherChargeEditor{position:absolute!important;left:0!important;right:0!important;bottom:calc(100% + 7px)!important;z-index:80!important;background:#fff!important;border:1px solid #cfe2f3!important;border-radius:12px!important;padding:10px!important;box-shadow:0 12px 30px rgba(5,45,85,.18)!important;max-height:min(300px,48vh)!important;overflow-y:auto!important}
.billing-mode #otherChargesList:not(.hidden){position:absolute!important;left:10px!important;right:10px!important;bottom:calc(100% + 68px)!important;z-index:79!important;max-height:min(210px,32vh)!important;background:#fff!important;box-shadow:0 10px 26px rgba(5,45,85,.15)!important}
.billing-mode .other-charge-toggle{width:100%!important;min-height:34px!important}
@media(max-width:820px){
  #menuBtn{display:inline-grid!important}
  .mobile-pos-cart-card .bill-footer{max-height:none!important;overflow:visible!important}
  .mobile-pos-cart-card #otherChargeEditor{position:fixed!important;left:12px!important;right:12px!important;bottom:max(88px,calc(env(safe-area-inset-bottom) + 72px))!important;z-index:10020!important;max-height:52dvh!important}
  .mobile-pos-cart-card #otherChargesList:not(.hidden){position:fixed!important;left:12px!important;right:12px!important;bottom:max(250px,calc(env(safe-area-inset-bottom) + 235px))!important;z-index:10019!important;max-height:26dvh!important}
}

/* 2026-09-21 FIX: desktop sidebar collapse must release its reserved width */
@media (min-width:821px){
  #appView.sidebar-collapsed .main{
    margin-left:0!important;
    width:100vw!important;
    max-width:100vw!important;
  }
  #appView.sidebar-collapsed #content{
    width:100%!important;
    max-width:none!important;
  }
  #appView.sidebar-collapsed .main>header{width:100%!important}
  #appView.sidebar-collapsed #content.billing-mode{padding-left:10px!important;padding-right:10px!important}
  #appView.sidebar-collapsed .billing-mode .pos,
  #appView.sidebar-collapsed #content.billing-mode .pos{
    width:100%!important;
    max-width:none!important;
    grid-template-columns:minmax(0,1.65fr) minmax(360px,.75fr)!important;
  }
  #appView.sidebar-collapsed #content.billing-mode .catalog,
  #appView.sidebar-collapsed #content.billing-mode .bill{width:100%!important;max-width:none!important}
}
@media (min-width:821px) and (max-width:1180px){
  #appView.sidebar-collapsed #content.billing-mode .pos{grid-template-columns:minmax(0,1.5fr) minmax(340px,.8fr)!important}
}
/* Billing POS pastel menu cards — light colors only */
.billing-mode .menu-grid .item{background:#f7fbff!important;border-color:#dceafb!important}
.billing-mode .menu-grid .item:nth-child(6n+1){background:#fff8f2!important;border-color:#f7e3d2!important}
.billing-mode .menu-grid .item:nth-child(6n+2){background:#f3fbf7!important;border-color:#d8eee2!important}
.billing-mode .menu-grid .item:nth-child(6n+3){background:#f5f7ff!important;border-color:#dde3fa!important}
.billing-mode .menu-grid .item:nth-child(6n+4){background:#fff7fb!important;border-color:#f2ddea!important}
.billing-mode .menu-grid .item:nth-child(6n+5){background:#fffdf1!important;border-color:#eee7c9!important}
.billing-mode .menu-grid .item:nth-child(6n+6){background:#f4fbfc!important;border-color:#d8ecef!important}
.billing-mode .menu-grid .item:hover{border-color:#bfd3ea!important;box-shadow:0 7px 18px rgba(20,32,50,.11)!important}
.billing-mode .menu-grid .item b{color:#17315c!important}
.billing-mode .menu-grid .item span{color:#65758b!important}

/* 2026-09-21 FINAL cart fit + clean charge panel */
#content.billing-mode{height:calc(100dvh - 68px)!important;min-height:0!important;overflow:hidden!important;padding:8px!important}
.billing-mode .pos-shell,.billing-mode .pos{height:100%!important;min-height:0!important;margin:0!important}
.billing-mode .pos{align-items:stretch!important}
.billing-mode .bill{align-self:stretch!important;position:relative!important;top:auto!important;right:auto!important;margin:0!important;height:100%!important;max-height:100%!important;min-height:0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;overflow:hidden!important;padding:10px!important}
.billing-mode .bill-head{grid-row:1!important;align-self:start!important;margin:0!important;padding:0!important}
.billing-mode .cart-scroll{grid-row:2!important;min-height:0!important;max-height:none!important;height:auto!important;overflow-y:auto!important;overflow-x:hidden!important;padding:4px 0!important}
.billing-mode .bill-footer{grid-row:3!important;align-self:end!important;position:relative!important;bottom:auto!important;margin:0!important;padding:5px 0 0!important;overflow:visible!important;background:#fff!important}
.billing-mode .other-charges-panel{position:absolute!important;left:10px!important;right:10px!important;bottom:112px!important;z-index:120!important;background:#fff!important;border:1px solid #d7e5f2!important;border-radius:14px!important;padding:10px!important;box-shadow:0 14px 38px rgba(10,45,80,.20)!important;max-height:min(360px,55vh)!important;overflow-y:auto!important}
.billing-mode .other-charges-panel-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;padding:0 0 8px!important;border-bottom:1px solid #e6edf5!important}
.billing-mode .other-charges-panel-head b{font-size:13px!important;color:#17345d!important}
.billing-mode .other-charges-panel-close{width:30px!important;height:30px!important;min-height:30px!important;padding:0!important;display:grid!important;place-items:center!important;border-radius:9px!important}
.billing-mode .other-charges-list{display:grid!important;gap:6px!important;max-height:150px!important;overflow-y:auto!important;border:0!important;border-radius:0!important;padding:7px 0!important;background:transparent!important}
.billing-mode .other-charge-applied{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;align-items:center!important;padding:7px 8px!important;border:1px solid #e3ebf4!important;border-radius:10px!important;background:#f8fbff!important}
.billing-mode .other-charge-applied>span:first-child{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:11px!important}
.billing-mode .other-charge-row-actions{display:grid!important;grid-template-columns:auto auto auto!important;gap:4px!important;min-width:0!important}
.billing-mode .other-charge-row-actions b{white-space:nowrap!important;font-size:11px!important}
.billing-mode .other-charge-edit,.billing-mode .other-charge-remove{min-width:0!important;min-height:28px!important;padding:4px 7px!important;font-size:9px!important}
.billing-mode .other-charge-entry{position:static!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(88px,.55fr)!important;gap:7px!important;margin:0!important;padding:8px!important;background:#f7faff!important;border:1px solid #e0eaf4!important;border-radius:10px!important;box-shadow:none!important;max-height:none!important;overflow:visible!important}
.billing-mode .other-charge-editor-actions{grid-column:1/-1!important}
@media(max-width:820px){
 .mobile-pos-cart-card{height:min(92dvh,760px)!important;max-height:92dvh!important;padding:12px!important}
 .mobile-pos-cart-card .mobile-cart-body{height:100%!important;min-height:0!important}
 .mobile-pos-cart-card .bill{height:100%!important;max-height:100%!important;padding:8px!important}
 .mobile-pos-cart-card .other-charges-panel{position:absolute!important;left:8px!important;right:8px!important;bottom:98px!important;max-height:48dvh!important;z-index:130!important}
 .mobile-pos-cart-card .other-charge-entry{grid-template-columns:1fr!important}
 .mobile-pos-cart-card .other-charge-entry>*{grid-column:1!important}
 .mobile-pos-cart-card .other-charge-applied{grid-template-columns:minmax(0,1fr) auto!important}
 .mobile-pos-cart-card .other-charge-row-actions{grid-template-columns:auto auto auto!important}
 .mobile-pos-cart-card .bill-footer{max-height:none!important;overflow:visible!important}
}

/* 2026-09-21 definitive Other Charges collapse repair */
.billing-mode .other-charge-collapsible{position:relative!important;display:block!important;width:100%!important;margin:5px 0!important;padding:0!important;border:0!important;overflow:visible!important}
.billing-mode #otherChargeToggle{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;min-height:38px!important;padding:8px 11px!important;border:1px solid #d9e7f4!important;border-radius:10px!important;background:#f3f8fd!important;color:#123d6b!important;font-size:10px!important;font-weight:900!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.billing-mode #otherChargesPanel.hidden{display:none!important}
.billing-mode #otherChargesPanel:not(.hidden){display:block!important}
.billing-mode #otherChargesPanel{left:6px!important;right:6px!important;bottom:calc(100% + 5px)!important;max-height:min(350px,52vh)!important;overflow:auto!important}
.billing-mode #otherChargesList{position:static!important;display:grid!important;gap:6px!important;max-height:145px!important;overflow:auto!important;box-shadow:none!important;background:transparent!important;padding:7px 0!important}
.billing-mode #otherChargesList:empty{display:none!important}
.billing-mode #otherChargeEditor{position:static!important;display:grid!important;box-shadow:none!important;max-height:none!important;overflow:visible!important;left:auto!important;right:auto!important;bottom:auto!important;z-index:auto!important}
@media(max-width:820px){
 .mobile-pos-cart-card #otherChargesPanel{position:absolute!important;left:6px!important;right:6px!important;bottom:calc(100% + 5px)!important;max-height:min(390px,52dvh)!important;overflow:auto!important}
 .mobile-pos-cart-card #otherChargeEditor,.mobile-pos-cart-card #otherChargesList{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;max-height:none!important}
 .mobile-pos-cart-card #otherChargesList{max-height:145px!important}
}
/* Existing applied charges stay visible while the charge editor is collapsed */
.other-charges-collapsed-summary{display:grid;gap:4px;margin:5px 0 2px;padding:0 4px}
.other-charges-collapsed-summary.hidden{display:none!important}
.other-charge-summary-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:5px 8px;border:1px solid rgba(29,78,216,.10);border-radius:8px;background:rgba(239,246,255,.62);font-size:12px;line-height:1.15}
.other-charge-summary-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#334155}
.other-charge-summary-row b{flex:0 0 auto;white-space:nowrap;color:#0f2d63;font-size:12px}
@media(max-width:700px){.other-charges-collapsed-summary{gap:3px;margin:4px 0 1px;padding:0 2px}.other-charge-summary-row{padding:4px 7px;font-size:11px}.other-charge-summary-row b{font-size:11px}}

/* 2026-09-21 applied Other Charges must render inside the opened collapse */
.billing-mode #otherChargesPanel:not(.hidden) #otherChargesList:not(:empty){display:grid!important;visibility:visible!important;opacity:1!important;min-height:34px!important}
.billing-mode #otherChargesPanel:not(.hidden) #otherChargesList .other-charge-applied{display:grid!important}
.billing-mode #otherChargesPanel:not(.hidden) #otherChargeEditor{margin-top:7px!important}

/* 2026-09-21 MOBILE-ONLY Other Charges layout repair.
   Desktop/tablet webview >=821px intentionally untouched. */
@media (max-width:820px){
  .mobile-pos-cart-card #otherChargesPanel{
    position:fixed!important;
    inset:auto 10px max(10px,env(safe-area-inset-bottom)) 10px!important;
    width:auto!important;
    max-width:520px!important;
    margin:0 auto!important;
    max-height:min(72dvh,590px)!important;
    padding:12px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:9px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:10060!important;
    background:#fff!important;
    border:1px solid #dce7f2!important;
    border-radius:18px!important;
    box-shadow:0 18px 55px rgba(15,38,68,.30)!important;
  }
  .mobile-pos-cart-card #otherChargesPanel.hidden{display:none!important}
  .mobile-pos-cart-card #otherChargesPanel .other-charges-panel-head{
    order:0!important;display:flex!important;align-items:center!important;gap:8px!important;
    position:sticky!important;top:-12px!important;z-index:5!important;
    margin:-12px -12px 0!important;padding:12px!important;background:#fff!important;
    border-bottom:1px solid #e7eef6!important;
  }
  .mobile-pos-cart-card #otherChargesPanel .other-charges-panel-head b{font-size:16px!important;color:#17345d!important}
  .mobile-pos-cart-card #otherChargesPanel .other-charges-panel-close{
    margin-left:auto!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:0!important;border-radius:10px!important;
  }
  .mobile-pos-cart-card #otherChargesList{
    order:1!important;position:static!important;inset:auto!important;
    display:grid!important;gap:8px!important;width:100%!important;max-width:100%!important;
    max-height:190px!important;margin:0!important;padding:0!important;
    overflow-y:auto!important;overflow-x:hidden!important;background:transparent!important;box-shadow:none!important;
  }
  .mobile-pos-cart-card #otherChargesList:empty{display:none!important}
  .mobile-pos-cart-card #otherChargesList .other-charge-applied{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;
    width:100%!important;min-width:0!important;margin:0!important;padding:9px 10px!important;
    border:1px solid #e0e9f3!important;border-radius:12px!important;background:#f7faff!important;
  }
  .mobile-pos-cart-card #otherChargesList .other-charge-applied>span:first-child{
    min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
    font-size:13px!important;font-weight:750!important;color:#17345d!important;
  }
  .mobile-pos-cart-card #otherChargesList .other-charge-row-actions{
    display:grid!important;grid-template-columns:auto auto auto!important;align-items:center!important;gap:6px!important;min-width:0!important;
  }
  .mobile-pos-cart-card #otherChargesList .other-charge-row-actions b{font-size:13px!important;white-space:nowrap!important;color:#0f2d63!important}
  .mobile-pos-cart-card #otherChargesList .other-charge-edit{min-width:48px!important;min-height:32px!important;padding:5px 7px!important;font-size:10px!important;border-radius:8px!important}
  .mobile-pos-cart-card #otherChargesList .other-charge-remove{width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;border-radius:8px!important;font-size:14px!important}
  .mobile-pos-cart-card #otherChargeEditor{
    order:2!important;position:static!important;inset:auto!important;
    display:grid!important;grid-template-columns:1fr!important;gap:8px!important;
    width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:10px!important;
    background:#fbfdff!important;border:1px solid #e0e9f3!important;border-radius:12px!important;box-shadow:none!important;
  }
  .mobile-pos-cart-card #otherChargeEditor>*{grid-column:1!important;width:100%!important;max-width:100%!important;min-width:0!important}
  .mobile-pos-cart-card #otherChargeType,.mobile-pos-cart-card #otherChargeLabelInput,.mobile-pos-cart-card #otherChargeAmount{height:44px!important;min-height:44px!important;font-size:14px!important;border-radius:10px!important}
  .mobile-pos-cart-card .other-charge-editor-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important}
  .mobile-pos-cart-card .other-charge-editor-actions button{width:100%!important;min-width:0!important;min-height:40px!important;padding:8px!important;border-radius:10px!important}
}


/* 2026-09-21 FINAL: reliable applied-charge list inside expanded Other Charges panel.
   The legacy list is retained for compatibility but the visible list below is isolated
   from older positioning rules that were hiding rows. */
.billing-mode #otherChargesList{display:none!important}
.billing-mode #otherChargesVisibleList{display:none!important}
.billing-mode #otherChargesPanel:not(.hidden) #otherChargesVisibleList:not(:empty){
  display:grid!important;grid-template-columns:1fr!important;gap:6px!important;
  width:100%!important;min-width:0!important;max-height:150px!important;overflow-y:auto!important;overflow-x:hidden!important;
  margin:6px 0!important;padding:0!important;position:static!important;visibility:visible!important;opacity:1!important;
}
.billing-mode #otherChargesVisibleList .other-charge-applied{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;
  width:100%!important;min-width:0!important;margin:0!important;padding:7px 8px!important;
  border:1px solid #e3ebf4!important;border-radius:10px!important;background:#f8fbff!important;
}
.billing-mode #otherChargesVisibleList .other-charge-applied>span:first-child{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:11px!important;font-weight:800!important;color:#17345d!important}
.billing-mode #otherChargesVisibleList .other-charge-row-actions{display:flex!important;align-items:center!important;gap:5px!important;min-width:0!important}
.billing-mode #otherChargesVisibleList .other-charge-row-actions b{white-space:nowrap!important;color:#0f2d63!important}
@media(max-width:820px){
  .mobile-pos-cart-card #otherChargesVisibleList:not(:empty){max-height:190px!important;gap:8px!important;margin:2px 0 4px!important}
  .mobile-pos-cart-card #otherChargesVisibleList .other-charge-applied{padding:9px 10px!important;border-radius:12px!important;background:#f7faff!important}
  .mobile-pos-cart-card #otherChargesVisibleList .other-charge-applied>span:first-child{font-size:13px!important}
  .mobile-pos-cart-card #otherChargesVisibleList .other-charge-row-actions{display:grid!important;grid-template-columns:auto auto auto!important;gap:6px!important}
  .mobile-pos-cart-card #otherChargesVisibleList .other-charge-row-actions b{font-size:13px!important}
  .mobile-pos-cart-card #otherChargesVisibleList .other-charge-edit{min-width:48px!important;min-height:32px!important;padding:5px 7px!important;font-size:10px!important;border-radius:8px!important}
  .mobile-pos-cart-card #otherChargesVisibleList .other-charge-remove{width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;border-radius:8px!important}
}

/* 2026-09-21 MOBILE-ONLY FIX: restore vertical scrolling for Billing POS menu items.
   Do not change desktop/cart/charges behaviour. */
@media (max-width:820px){
  #content.billing-mode .catalog{
    min-height:0!important;
    overflow:hidden!important;
    touch-action:pan-y!important;
  }
  #content.billing-mode .catalog .menu-grid{
    flex:1 1 auto!important;
    min-height:0!important;
    height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    scrollbar-width:none!important;
  }
  #content.billing-mode .catalog .menu-grid::-webkit-scrollbar{display:none!important;width:0!important}
  #content.billing-mode .catalog .menu-grid .item{
    touch-action:pan-y!important;
  }
}

/* 2026-09-21 MOBILE-ONLY FIX: normal-size POS menu cards + independent vertical menu scrolling.
   Intentionally leaves cart, charges, desktop/webview and billing logic untouched. */
@media (max-width:820px){
  #content.billing-mode .catalog .menu-grid{
    flex:none!important;
    height:auto!important;
    min-height:260px!important;
    max-height:calc(100dvh - 360px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    align-content:start!important;
  }
  #content.billing-mode .catalog .menu-grid .item{
    min-height:96px!important;
    height:auto!important;
    padding:11px 10px!important;
    font-size:12px!important;
    line-height:1.3!important;
    flex-shrink:0!important;
  }
  #content.billing-mode .catalog .menu-grid .item b{
    font-size:13px!important;
    line-height:1.25!important;
  }
  #content.billing-mode .catalog .menu-grid .item span{
    font-size:11px!important;
    margin-top:5px!important;
  }
}
@media (max-width:480px){
  #content.billing-mode .catalog .menu-grid{
    min-height:300px!important;
    max-height:calc(100dvh - 350px)!important;
    gap:8px!important;
  }
  #content.billing-mode .catalog .menu-grid .item{min-height:100px!important}
}

/* 2026-09-23 waiter responsive cart + comfortable quantity controls */
.waiter-menu-head-actions{display:flex;align-items:center;gap:10px}
.waiter-mobile-cart-toggle{display:none}
.waiter-qty{grid-template-columns:42px minmax(64px,78px) 42px minmax(58px,1fr)!important;gap:7px!important;align-items:center!important}
.waiter-qty .cart-qty-input{width:100%!important;min-width:64px!important;margin:0!important}
.waiter-qty button{min-width:42px!important;min-height:40px!important;padding:6px!important}
.table-actions.simple{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
@media(max-width:700px){
 .waiter-menu-head{position:sticky;top:0;z-index:8;background:#fff;padding-bottom:7px!important}
 .waiter-menu-head-actions{gap:7px}.waiter-menu-head-actions>#wCartTotal{display:none!important}
 .waiter-mobile-cart-toggle{display:inline-flex!important;align-items:center;justify-content:center;gap:5px;min-height:40px!important;padding:8px 12px!important;white-space:nowrap}
 .waiter-menu-layout{display:block!important}.waiter-menu-grid{width:100%!important;max-height:58vh!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;padding-bottom:78px!important}
 .waiter-cart-panel{display:none!important;position:fixed!important;left:10px!important;right:10px!important;bottom:10px!important;z-index:10020!important;max-height:min(72dvh,620px)!important;border-radius:18px!important;box-shadow:0 18px 55px rgba(15,23,42,.24)!important;background:#fff!important}
 .waiter-cart-panel.mobile-cart-open{display:flex!important;flex-direction:column!important}
 .waiter-cart-items{max-height:48dvh!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}
 .waiter-cart-foot{flex:0 0 auto!important}
 .waiter-qty{grid-template-columns:44px minmax(72px,88px) 44px minmax(62px,1fr)!important;gap:8px!important}
 .waiter-qty .cart-qty-input{height:44px!important;font-size:18px!important;min-width:72px!important}
 .waiter-qty button{min-width:44px!important;min-height:44px!important;font-size:17px!important}
 .waiter-remove{font-size:10px!important;min-width:62px!important;text-align:center!important}
}


/* 2026-09-23 waiter cart: Billing-POS style mobile placement, no desktop regression */
.waiter-menu-main{min-width:0;display:flex;flex-direction:column}.waiter-cart-below-menu{display:none}
@media(max-width:820px){
 .waiter-menu-layout{display:block!important;min-height:0!important}
 .waiter-menu-main{min-height:0;display:flex;flex-direction:column}
 .waiter-menu-grid{flex:1 1 auto;min-height:260px;max-height:calc(100dvh - 390px);overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
 .waiter-cart-below-menu{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%;margin:10px 0 2px;min-height:52px;flex:0 0 auto}
 .waiter-cart-panel{position:fixed!important;inset:72px 8px 8px!important;z-index:1200!important;background:#fff!important;border-radius:22px!important;padding:16px!important;box-shadow:0 18px 55px rgba(15,35,75,.24)!important;display:none!important;grid-template-rows:auto minmax(0,1fr) auto!important;overflow:hidden!important}
 .waiter-cart-panel.mobile-cart-open{display:grid!important}
 .waiter-cart-title{display:flex!important;align-items:center!important;gap:8px!important;min-width:0}.waiter-cart-title #wCartCount{flex:0 0 auto}.waiter-cart-title #wClearCart{white-space:nowrap}
 .waiter-cart-items{min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}
 .waiter-cart-foot{position:relative!important;bottom:auto!important;background:#fff!important;padding-top:10px!important}
 .waiter-qty{display:grid!important;grid-template-columns:48px minmax(64px,88px) 48px minmax(72px,auto)!important;gap:8px!important;align-items:center!important}.waiter-qty-input{width:100%!important;min-width:64px!important;text-align:center!important}
}
/* Previous Orders: one completed table bill, bill-level refund/reprint, order-level edit/delete */
.table-order-action-group{display:inline-flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid #dbe7f4;border-radius:10px;background:#f8fbff;flex-wrap:wrap}
.table-order-action-group small{font-weight:800;color:#52647a}

/* Cancel corrected-bill editing without changing the saved bill */
.cancel-edit-bill-btn{white-space:nowrap}
@media(max-width:700px){
 .billing-mode .bill.is-editing-order .bill-title-row{gap:6px!important;flex-wrap:wrap!important}
 .billing-mode .bill.is-editing-order .cancel-edit-bill-btn{order:3;flex:1 1 100%;min-height:40px!important}
}
/* Waiter cart close control */
.waiter-cart-close{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border-radius:10px!important;font-size:22px!important;line-height:1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
@media(max-width:700px){.waiter-cart-close{position:relative!important;flex:0 0 36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}.waiter-cart-title{padding-right:8px!important}}

/* Waiter edit: compact item / minus / quantity / plus / remove layout with prices */
.waiter-edit-list{display:grid;gap:10px;margin:12px 0}.waiter-edit-line{display:grid;grid-template-columns:minmax(150px,1fr) 44px 76px 44px auto;gap:8px;align-items:center;padding:10px;border:1px solid #dbe7f4;border-radius:14px;background:#fff}.waiter-edit-item{min-width:0}.waiter-edit-item b{display:block}.waiter-edit-item small{display:block;color:#64748b;margin-top:3px}.waiter-edit-qty{width:100%;height:42px;text-align:center;font-weight:800;font-size:17px}.waiter-edit-step{min-width:44px!important;height:42px!important;padding:0!important;font-size:18px!important}.waiter-edit-remove{min-height:42px!important}.waiter-edit-note{grid-column:1/-1;margin-top:0}.waiter-edit-line.removed{opacity:.55;background:#f8fafc}.waiter-edit-total{text-align:right}.waiter-edit-total small{display:block;color:#64748b}.waiter-edit-total b{font-size:20px}.waiter-order-priced-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid #edf2f7}.waiter-order-priced-line small{display:block}.waiter-order-total,.my-order-total{display:flex;justify-content:space-between;align-items:center;padding:10px 0 4px;margin-top:6px;border-top:1px solid #dbe7f4;font-weight:800}.my-order-line span>small{display:block;color:#64748b;font-size:11px;margin-top:2px}
@media(max-width:700px){.waiter-edit-line{grid-template-columns:minmax(0,1fr) 42px 68px 42px;gap:6px}.waiter-edit-item{grid-column:1/-1}.waiter-edit-remove{grid-column:1/-1}.waiter-edit-note{grid-column:1/-1}.waiter-order-priced-line{grid-template-columns:minmax(0,1fr) auto}.waiter-order-priced-line>b{grid-column:2}.waiter-order-priced-line>span:nth-child(2){font-size:11px;color:#64748b}}

/* 2026-09-23 Waiter Add Order stability + centered mobile menu
   Keep the search field mounted/focused while filtering. Do not reserve hidden cart width on phone. */
.waiter-menu-shell{width:100%!important;max-width:100%!important;margin-inline:auto!important}
.waiter-menu-main{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;min-width:0!important}
.waiter-menu-grid{margin-left:0!important;margin-right:0!important;box-sizing:border-box!important}
@media(max-width:820px){
 .waiter-menu-shell{padding-inline:0!important;overflow-x:hidden!important}
 .waiter-menu-shell>.search,.waiter-menu-shell>.waiter-cat-scroll,.waiter-menu-layout,.waiter-menu-main,.waiter-cart-below-menu{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important}
 .waiter-menu-layout{padding:0!important}
 .waiter-menu-main{padding:0!important}
 .waiter-menu-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;max-width:100%!important;padding:7px!important;gap:8px!important;margin:8px 0 0!important;overflow-x:hidden!important;scrollbar-width:none!important}
 .waiter-menu-grid::-webkit-scrollbar{display:none!important}
 .waiter-menu-card{width:100%!important;min-width:0!important;max-width:none!important;margin:0!important}
 .waiter-cart-below-menu{box-sizing:border-box!important}
 .soft-keyboard-open .waiter-menu-grid{max-height:calc(100dvh - 330px - var(--soft-keyboard-height,0px))!important;min-height:150px!important}
 #wSearch{scroll-margin-top:0!important;transform:none!important}
}

/* FINAL: inline quantity controls on menu cards — compact, centered, no overflow */
.menu-qty-card{position:relative;overflow:hidden!important;min-width:0!important;max-width:100%!important}
.menu-qty-card.in-cart{padding-bottom:44px!important}
.menu-inline-qty{position:absolute;left:8px;right:8px;bottom:7px;height:32px;display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:5px;min-width:0;max-width:calc(100% - 16px);z-index:2}
.menu-inline-qty button{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;padding:0!important;border:0;border-radius:9px;background:#e8f3ff;color:#0b4d8d;font-size:19px!important;font-weight:900;line-height:1;touch-action:manipulation}
.menu-inline-count{display:flex!important;align-items:center;justify-content:center;min-width:0!important;width:100%!important;height:32px;padding:0 3px;border-radius:9px;background:#fff;border:1px solid #cfe2f5;color:#123a67!important;font-size:14px!important;line-height:1!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-qty-card.sold-out{opacity:.62;pointer-events:none}
.waiter-menu-card.menu-qty-card.in-cart{padding-bottom:46px!important}
.waiter-inline-qty{left:7px;right:7px;max-width:calc(100% - 14px)}
@media(max-width:700px){
 #content.billing-mode .catalog .menu-grid .item.menu-qty-card.in-cart{min-height:118px!important;padding-bottom:43px!important}
 #content.billing-mode .catalog .menu-grid .menu-inline-qty{left:6px;right:6px;bottom:6px;max-width:calc(100% - 12px);grid-template-columns:30px minmax(0,1fr) 30px;gap:4px}
 #content.billing-mode .catalog .menu-grid .menu-inline-qty button{width:30px!important;height:30px!important;min-width:30px!important;max-width:30px!important;font-size:18px!important}
 #content.billing-mode .catalog .menu-grid .menu-inline-count{height:30px;font-size:13px!important}
 .waiter-menu-grid .waiter-menu-card.menu-qty-card.in-cart{min-height:112px!important;padding-bottom:43px!important}
 .waiter-menu-grid .menu-inline-qty{grid-template-columns:30px minmax(0,1fr) 30px;gap:4px}
 .waiter-menu-grid .menu-inline-qty button{width:30px!important;height:30px!important;min-width:30px!important;max-width:30px!important}
}
@media(max-width:380px){
 .menu-inline-qty{grid-template-columns:28px minmax(0,1fr) 28px;gap:3px}
 .menu-inline-qty button{width:28px!important;height:28px!important;min-width:28px!important;max-width:28px!important}
 .menu-inline-count{font-size:12px!important}
}
