:root{--ink:#14212a;--muted:#6d7b84;--line:#dfe6e9;--canvas:#f4f7f8;--panel:#fff;--nav:#103448;--brand:#126585;--brand-dark:#0b4c67;--aqua:#15b7a0;--aqua-soft:#e7f7f4;--blue-soft:#eaf5fa;--warning:#f1a851;--danger:#d95e68;--radius:14px;--shadow:0 8px 26px rgba(24,59,75,.08)}.mobile-manager-header,.mobile-owner-bottom,.mobile-owner-more,.mobile-home-periods,.mobile-home-shortcuts,.mobile-home-money{display:none}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:"Be Vietnam Pro",Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(320px,.88fr) minmax(500px,1.12fr);background:#fff}.login-hero{background:linear-gradient(145deg,#103448,#146884);color:#fff;padding:11vh 10%;position:relative;overflow:hidden}.login-hero:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;border:1px solid rgba(255,255,255,.14);right:-180px;top:-125px;box-shadow:0 0 0 56px rgba(255,255,255,.035),0 0 0 112px rgba(255,255,255,.025)}.hero-mark,.brand-mark{display:grid;place-items:center;background:#fff;color:var(--brand);font-weight:800}.hero-mark{width:54px;height:54px;border-radius:16px;font-size:28px;margin-bottom:80px}.login-hero p{letter-spacing:.16em;font-weight:700;font-size:11px;color:#9ddfd8;margin:0 0 14px}.login-hero h1{font-size:52px;letter-spacing:-.05em;margin:0 0 12px}.login-hero span{color:#c3d5dc;font-size:15px}.login-panel{width:min(500px,100%);align-self:center;justify-self:center;padding:44px}.login-heading span,.eyebrow{font-size:10px;font-weight:800;letter-spacing:.14em;color:#218296}.login-heading h2{font-size:28px;letter-spacing:-.04em;margin:9px 0}.login-heading p{color:var(--muted);line-height:1.6;margin:0 0 27px}.role-grid{display:grid;gap:10px}.role-card{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;display:grid;grid-template-columns:42px 1fr 20px;align-items:center;gap:13px;text-align:left;color:var(--ink)}.role-card:hover,.role-card.selected{border-color:#22a8b7;background:#f0fbfb;box-shadow:0 5px 16px rgba(18,101,133,.08)}.role-card.owner-card{margin-top:5px}.role-icon{font-style:normal;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--blue-soft);color:var(--brand);font-size:12px;font-weight:800}.owner-card .role-icon{background:#f3edf9;color:#7048a2}.role-card strong,.role-card small{display:block}.role-card strong{font-size:13px}.role-card small{margin-top:4px;font-size:11px;color:var(--muted)}.role-card b{font-size:22px;color:#8ba0aa;font-weight:400}.pin-form{display:grid;grid-template-columns:1fr 140px;gap:10px;margin-top:22px}.pin-form label,.form-stack label,.cash-received{display:grid;gap:7px;font-size:11px;color:#52636c;font-weight:700}.pin-form input,.form-stack input,.form-stack select,.cash-received input{height:43px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 12px;color:var(--ink);outline:0}.pin-form input:focus,.form-stack input:focus,.form-stack select:focus,.cash-received input:focus{border-color:#36a7b4;box-shadow:0 0 0 3px rgba(21,183,160,.1)}.demo-pins{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;color:var(--muted);font-size:10px}.demo-pins b{font-weight:700;color:#48616e}.primary-button,.secondary-button,.danger-button{border:0;border-radius:10px;padding:11px 14px;font-size:12px;font-weight:800}.primary-button{background:var(--brand);color:#fff}.primary-button:hover{background:var(--brand-dark)}.primary-button:disabled{background:#a9b8be;cursor:not-allowed}.secondary-button{background:#edf2f4;color:var(--brand-dark);border:1px solid #dce6e9}.danger-button{background:#fff1f2;color:#bd3f50;border:1px solid #f2d5d9}.app-shell{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#d9e9ef;display:flex;flex-direction:column;padding:18px 12px}.brand{display:flex;gap:10px;align-items:center;padding:5px 8px 23px}.brand-mark{width:33px;height:33px;border-radius:10px;font-size:18px}.brand strong,.brand span{display:block}.brand strong{font-size:15px;color:#fff}.brand span{font-size:10px;color:#91b9c8;margin-top:2px}.nav-list{display:grid;gap:3px}.nav-item{display:flex;gap:11px;align-items:center;width:100%;border:0;border-radius:9px;padding:11px 12px;background:transparent;color:#b6ced8;text-align:left;font-weight:600;font-size:12px}.nav-item i{font-style:normal;font-size:17px;width:18px;text-align:center}.nav-item:hover{color:#fff;background:rgba(255,255,255,.06)}.nav-item.active{color:#fff;background:var(--brand)}.role-hidden{display:none!important}.sidebar-footer{margin-top:auto;padding:14px 8px 4px;display:grid;grid-template-columns:8px 1fr 27px;gap:8px;align-items:center;font-size:10px}.sidebar-footer strong,.sidebar-footer small{display:block}.sidebar-footer strong{color:#e9f5f8;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer small{color:#85a9b7;margin-top:3px}.status-dot{width:7px;height:7px;border-radius:50%;background:#4bd3a3}.logout-button{border:0;border-radius:7px;background:rgba(255,255,255,.08);color:#d4e8ed;width:27px;height:27px}.main{min-width:0}.topbar{height:62px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px;position:sticky;top:0;z-index:20}.store-switcher{display:flex;gap:5px}.store-tab{border:1px solid transparent;border-radius:8px;padding:8px 10px;background:transparent;color:#61747e;font-size:11px;font-weight:700}.store-tab span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a9bac1;margin-right:7px}.store-tab.active{background:var(--blue-soft);color:var(--brand-dark)}.store-tab.active span{background:var(--aqua)}.topbar-right{display:flex;align-items:center;gap:11px}.clock{text-align:right}.clock strong,.clock span{display:block}.clock strong{font-size:12px}.clock span{font-size:10px;color:var(--muted);margin-top:2px}.shift-button{border:1px solid #bde6dc;background:#effaf7;color:#197c68;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:700}.shift-button.closed{border-color:#f0d0bf;background:#fff6f1;color:#a75c34}.mobile-logout{display:none}.view{display:none;padding:27px 30px}.view.active{display:block}.pos-workspace-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);background:#fff;padding:0 30px}.pos-workspace-tabs button{border:0;background:transparent;color:#6c7b83;padding:14px 2px 12px;font-weight:700;font-size:12px;border-bottom:2px solid transparent}.pos-workspace-tabs button.active{color:var(--brand);border-color:var(--aqua)}.workspace-heading,.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.workspace-heading h1,.page-heading h1{font-size:24px;line-height:1.2;letter-spacing:-.04em;margin:7px 0}.workspace-heading p,.page-heading p{margin:0;color:var(--muted);font-size:12px}.table-summary{display:flex;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.table-summary div{padding:10px 18px;min-width:86px}.table-summary div+div{border-left:1px solid var(--line)}.table-summary strong,.table-summary span{display:block}.table-summary strong{font-size:18px;color:var(--brand-dark)}.table-summary span{font-size:10px;color:var(--muted);margin-top:3px}.table-toolbar{border:1px solid var(--line);background:#fff;border-radius:11px;padding:8px 10px;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.table-filter{display:flex;gap:4px}.table-filter button{border:0;background:transparent;color:#6d7b84;border-radius:7px;padding:7px 10px;font-weight:700;font-size:11px}.table-filter button.active{background:#eaf5fa;color:var(--brand-dark)}.table-legend{display:flex;gap:13px;color:var(--muted);font-size:10px}.table-legend i{width:8px;height:8px;display:inline-block;border-radius:50%;margin-right:4px}.table-legend .empty{background:#dce5e9}.table-legend .busy{background:var(--aqua)}.floor-label{display:flex;align-items:center;gap:10px;margin:19px 0 10px}.floor-label span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:var(--brand-dark);color:#fff;font-size:10px;font-weight:800}.floor-label strong{font-size:13px}.floor-label small{font-size:10px;color:var(--muted)}.table-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.table-card{min-height:108px;border:1px solid #dbe4e7;border-radius:11px;background:#fff;padding:13px;text-align:left;display:flex;flex-direction:column;color:#465963;transition:.16s}.table-card:hover{border-color:#55bdc0;transform:translateY(-2px);box-shadow:var(--shadow)}.table-card.busy{background:linear-gradient(150deg,#156a86,#0d4d68);border-color:#0d4d68;color:#fff}.table-card-number{font-size:13px;font-weight:800}.table-card-status{font-size:10px;color:#81929a;margin-top:7px}.table-card.busy .table-card-status{color:#c0e1e8}.table-card-total{margin-top:auto;color:#247c85;font-size:11px;font-weight:700}.table-card.busy .table-card-total{color:#9ee7d7}.table-card.selected{outline:3px solid rgba(21,183,160,.23)}.sales-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;max-width:1450px;margin:0 auto}.order-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.back-to-tables{border:0;background:transparent;color:var(--brand);font-weight:800;font-size:11px;padding:0}.order-context{font-size:11px;font-weight:700;color:#657983}.compact-heading{margin-bottom:15px}.catalog-toolbar{margin-bottom:11px}.search-box{height:39px;border:1px solid var(--line);background:#fff;border-radius:9px;display:flex;align-items:center;gap:8px;padding:0 11px;width:min(320px,100%)}.search-box span{font-size:17px;color:#7f919a}.search-box input{border:0;background:transparent;outline:0;width:100%;font-size:12px}.search-box.small{width:250px}.category-list{display:flex;gap:7px;overflow:auto;padding:2px 0 13px;scrollbar-width:none}.category-chip{border:1px solid var(--line);border-radius:8px;background:#fff;color:#5e7079;padding:8px 11px;white-space:nowrap;font-size:11px;font-weight:700}.category-chip.active{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.product-card{border:1px solid #dce5e8;border-radius:11px;background:#fff;padding:12px;min-height:112px;text-align:left;display:flex;flex-direction:column;position:relative;overflow:hidden}.product-card:hover{border-color:#51bfc2;box-shadow:0 5px 15px rgba(13,79,103,.09)}.product-card:after{content:"+";position:absolute;right:10px;bottom:9px;width:21px;height:21px;display:grid;place-items:center;border-radius:6px;background:var(--aqua-soft);color:#0d8173;font-size:17px}.product-card.unavailable{opacity:.45;pointer-events:none}.product-code{font-size:9px;color:#7d959f}.product-card strong{font-size:12px;line-height:1.4;margin:8px 20px 8px 0}.product-card .price{margin-top:auto;font-size:12px;color:var(--brand-dark);font-weight:800}.empty-state{text-align:center;padding:45px;color:var(--muted)}.empty-state strong,.empty-state span{display:block}.empty-state strong{color:var(--ink);margin-bottom:5px}.cart-panel{background:#fff;border:1px solid var(--line);border-radius:13px;display:flex;flex-direction:column;min-height:calc(100vh - 135px);max-height:calc(100vh - 95px);position:sticky;top:78px;box-shadow:var(--shadow);overflow:hidden}.cart-header{padding:17px 17px 10px;display:flex;justify-content:space-between}.cart-header h2{font-size:17px;margin:6px 0 0}.order-type{display:grid;grid-template-columns:repeat(3,1fr);background:#eef3f5;border-radius:8px;padding:3px;margin:0 15px 10px}.order-type button{border:0;background:transparent;border-radius:6px;padding:7px 3px;color:#6b7d85;font-size:10px;font-weight:700}.order-type button.active{background:#fff;color:var(--brand-dark);box-shadow:0 1px 4px rgba(14,45,58,.11)}.cart-items{padding:0 16px;overflow:auto}.cart-item{border-bottom:1px solid #eaf0f1;padding:12px 0}.cart-item-top,.cart-item-bottom{display:flex;justify-content:space-between;gap:10px}.cart-item-name{font-size:12px;font-weight:700}.cart-item-price{font-size:12px;font-weight:800}.cart-item-bottom{align-items:center;margin-top:9px}.qty-control{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.qty-control button{border:0;background:#fff;width:26px;height:25px;color:var(--brand-dark);font-weight:800}.qty-control span{min-width:23px;text-align:center;line-height:25px;font-size:11px}.remove-item{border:0;background:transparent;color:#c66268;font-size:10px}.cart-empty{padding:35px 20px;margin:auto;text-align:center;color:var(--muted)}.cart-empty>div{width:37px;height:37px;border-radius:10px;display:grid;place-items:center;background:var(--blue-soft);color:var(--brand);font-size:20px;margin:auto}.cart-empty strong,.cart-empty span{display:block}.cart-empty strong{font-size:12px;color:#4c5f68;margin:10px 0 4px}.cart-empty span{font-size:10px;line-height:1.5}.cart-summary{padding:14px 16px 17px;border-top:1px solid var(--line);margin-top:auto}.cart-summary>div,.discount-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;color:#62737c;font-size:11px}.cart-summary strong{color:var(--ink)}.discount-line input{width:78px;border:1px solid var(--line);border-radius:6px;padding:5px;text-align:right;font-size:11px}.grand-total{padding-top:10px;border-top:1px dashed #ced9dd;margin-top:10px!important}.grand-total strong{font-size:20px!important;color:var(--brand-dark)!important}.checkout-button{width:100%;display:flex;justify-content:space-between;margin-top:6px}.mobile-cart-button,.mobile-only{display:none}.filter-row{display:flex;gap:7px;margin:-4px 0 15px}.filter-chip{border:1px solid var(--line);border-radius:8px;background:#fff;color:#687981;padding:8px 11px;font-size:11px;font-weight:700}.filter-chip.active{border-color:var(--brand);background:var(--brand);color:#fff}.orders-table-wrap,.report-card,.settings-card{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 4px 15px rgba(24,59,75,.04)}.orders-table-wrap{overflow:auto}.orders-table{width:100%;min-width:800px;border-collapse:collapse}.orders-table th{background:#f6f9fa;color:#78909a;font-size:10px;text-align:left;letter-spacing:.04em;text-transform:uppercase;padding:12px 14px}.orders-table td{border-top:1px solid #e7edef;padding:14px;font-size:11px;vertical-align:top}.orders-table tbody tr{cursor:pointer}.orders-table tbody tr:hover{background:#f7fbfc}.order-code{font-weight:800;color:var(--brand-dark)}.demo-label{display:block;font-size:9px;color:#b08360;margin-top:4px}.order-items-cell{color:#53646d;max-width:260px}.payment-tag{display:inline-block;border-radius:999px;background:#eaf5fa;color:#176782;padding:4px 8px;font-size:10px;font-weight:700}.payment-tag.cash{background:#fff5df;color:#94702e}.payment-tag.momo{background:#fff0f5;color:#a63d66}.payment-tag.bankqr{background:#e7f7f4;color:#12816e}.align-right{text-align:right!important}.segmented{display:flex;border:1px solid var(--line);border-radius:9px;background:#fff;padding:3px}.segmented button{border:0;background:transparent;color:#687a83;border-radius:6px;padding:8px 10px;font-size:11px;font-weight:700}.segmented button.active{background:var(--brand-dark);color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:11px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px}.stat-label,.stat-foot{display:block;color:var(--muted);font-size:10px}.stat-value{display:block;font-size:22px;letter-spacing:-.04em;margin:9px 0 5px}.report-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(265px,.8fr);gap:11px}.report-card{padding:17px}.card-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.card-heading h2{font-size:14px;margin:0 0 4px}.card-heading p{font-size:10px;color:var(--muted);margin:0}.legend{font-size:10px;color:var(--muted)}.legend i{width:7px;height:7px;border-radius:50%;background:var(--aqua);display:inline-block;margin-right:3px}.bar-chart{height:220px;display:flex;align-items:flex-end;gap:7px;border-bottom:1px solid var(--line);padding:13px 3px 0}.bar-column{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.bar{width:min(30px,72%);min-height:3px;background:linear-gradient(#21bda9,#126585);border-radius:5px 5px 1px 1px}.bar-value,.bar-label{font-size:9px;color:#758790}.bar-value{white-space:nowrap}.top-product-row{display:grid;grid-template-columns:25px 1fr auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f2}.top-product-row:last-child{border:0}.rank{width:24px;height:24px;border-radius:7px;background:var(--blue-soft);display:grid;place-items:center;color:var(--brand);font-size:10px;font-weight:800}.top-product-row strong,.top-product-row span{display:block}.top-product-row strong{font-size:11px}.top-product-row span{font-size:9px;color:var(--muted);margin-top:3px}.top-product-row>strong{color:var(--brand-dark)}.comparison-card{margin-top:11px}.compare-row{display:grid;grid-template-columns:170px 1fr 90px;gap:10px;align-items:center;margin:12px 0}.compare-row label,.compare-row strong{font-size:11px}.compare-row strong{text-align:right}.compare-track{height:10px;background:#e8eef0;border-radius:99px;overflow:hidden}.compare-fill{height:100%;border-radius:99px;background:var(--brand)}.compare-row:nth-child(2) .compare-fill{background:var(--aqua)}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.settings-card{padding:17px}.form-stack{display:grid;gap:11px}.form-stack .primary-button{justify-self:start}.data-actions{display:flex;gap:8px;flex-wrap:wrap}.menu-settings-card{margin-top:11px}.menu-settings-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 20px}.menu-setting-row{display:grid;grid-template-columns:minmax(100px,1fr) 100px 67px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #e9eef0}.menu-setting-row strong{font-size:11px}.menu-setting-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.price-input{width:100%;border:1px solid var(--line);border-radius:6px;padding:7px;text-align:right;font-size:11px}.toggle{display:flex;align-items:center;gap:5px;font-size:9px;color:var(--muted)}.toggle input{accent-color:var(--aqua)}.modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(8,33,45,.55);display:grid;place-items:center;padding:20px}.modal-card{background:#fff;width:min(440px,100%);max-height:90vh;overflow:auto;border-radius:16px;padding:20px;box-shadow:0 25px 65px rgba(0,0,0,.24)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:17px}.modal-header h2{font-size:20px;margin:6px 0 0}.icon-button{border:0;background:#edf3f5;color:#46616d;border-radius:7px;width:30px;height:30px;font-size:18px}.checkout-total{display:flex;justify-content:space-between;align-items:center;border-radius:11px;background:linear-gradient(135deg,#115c7a,#168491);padding:15px;color:#fff;margin-bottom:13px}.checkout-total span{font-size:11px;color:#c7e3e9}.checkout-total strong{font-size:22px}.payment-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:13px}.payment-methods button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px;color:#5a707b}.payment-methods button.active{border:2px solid var(--aqua);background:#effbf8;color:var(--brand-dark)}.payment-methods span,.payment-methods strong{display:block}.payment-methods span{font-weight:800;font-size:15px;margin-bottom:4px}.payment-methods strong{font-size:11px}.cash-received{margin-bottom:11px}.change-row{display:flex;justify-content:space-between;padding:11px;border-radius:8px;background:#eef6f7;margin-bottom:13px;font-size:11px}.change-row strong{color:var(--brand-dark)}.momo-qr-panel,.bank-qr-panel{display:grid;grid-template-columns:108px 1fr;gap:13px;align-items:center;border-radius:11px;padding:12px;margin-bottom:13px}.momo-qr-panel{background:#fff4f8;border:1px solid #f3d9e5}.bank-qr-panel{background:#effaf7;border:1px solid #c9e8df}.fake-qr{width:108px;aspect-ratio:1;display:grid;grid-template-columns:repeat(13,1fr);gap:1px;background:#fff;padding:6px;border-radius:6px}.qr-pixel{background:#fff}.qr-pixel.on{background:#3a1630}.momo-qr-panel span,.momo-qr-panel strong,.momo-qr-panel small,.bank-qr-panel span,.bank-qr-panel strong,.bank-qr-panel small{display:block}.momo-qr-panel span,.bank-qr-panel span{font-size:9px;font-weight:800;letter-spacing:.1em}.momo-qr-panel span{color:#a14269}.bank-qr-panel span{color:#16856f}.momo-qr-panel strong,.bank-qr-panel strong{font-size:17px;margin:5px 0;color:var(--brand-dark)}.momo-qr-panel small,.bank-qr-panel small{font-size:10px;color:#697b83;line-height:1.45;margin-top:3px}.bank-qr-image-wrap{width:108px;aspect-ratio:1;display:grid;place-items:center;background:#fff;border-radius:6px;overflow:hidden}.bank-qr-image-wrap img{width:100%;height:100%;object-fit:contain}.bank-qr-placeholder{font-size:18px;color:#79aa9d;font-weight:800}.bank-qr-note{font-size:10px;line-height:1.45;color:#526a61;margin:8px 0}.bank-qr-panel .secondary-button{padding:7px 9px;font-size:10px}.wide{width:100%}.receipt-card{width:min(410px,100%)}.receipt-paper{border:1px dashed #b8c7cc;border-radius:4px;padding:16px}.receipt-brand{text-align:center;border-bottom:1px dashed #c1cdd1;padding-bottom:12px;margin-bottom:11px}.receipt-brand h3{margin:0 0 4px}.receipt-brand p{font-size:10px;color:var(--muted);margin:2px}.receipt-meta{font-size:10px;line-height:1.8}.receipt-line{display:grid;grid-template-columns:1fr auto;gap:10px;padding:5px 0;font-size:10px}.receipt-line small{display:block;color:var(--muted)}.receipt-totals{border-top:1px dashed #c1cdd1;margin-top:8px;padding-top:8px}.receipt-total{font-weight:800;font-size:12px}.receipt-thanks{text-align:center;color:var(--muted);font-size:10px;margin:13px 0 0}.receipt-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.toast{position:fixed;z-index:100;left:50%;bottom:24px;transform:translate(-50%,20px);background:#123b4f;color:#fff;border-radius:8px;padding:10px 13px;font-size:11px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.mobile-overlay{display:none}
@media(max-width:1050px){.table-grid{grid-template-columns:repeat(4,1fr)}.product-grid{grid-template-columns:repeat(2,1fr)}.settings-grid{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.login-screen{display:block}.login-hero{padding:35px 24px}.hero-mark{margin-bottom:35px}.login-hero h1{font-size:38px}.login-panel{padding:30px 20px}.app-shell{display:block;padding-bottom:67px}.sidebar{position:fixed;z-index:50;left:0;right:0;bottom:0;height:67px;padding:6px 8px}.brand,.sidebar-footer{display:none}.nav-list{display:flex;justify-content:space-around}.nav-item{flex:1;flex-direction:column;gap:2px;align-items:center;padding:7px 3px;font-size:9px}.nav-item i{font-size:15px}.topbar{padding:0 13px;height:58px}.clock{display:none}.view{padding:19px 13px}.pos-workspace-tabs{padding:0 13px}.workspace-heading,.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:17px}.table-summary{width:100%}.table-summary div{flex:1}.table-toolbar{align-items:flex-start;flex-direction:column;gap:10px}.table-grid{grid-template-columns:repeat(2,1fr);gap:9px}.table-card{min-height:100px}.sales-layout{display:block}.product-grid{grid-template-columns:repeat(2,1fr)}.cart-panel{position:fixed;z-index:71;inset:9vh 0 0;transform:translateY(105%);transition:.25s;border-radius:16px 16px 0 0;max-height:none;min-height:0}.cart-panel.open{transform:translateY(0)}.mobile-overlay{display:block;position:fixed;inset:0;background:rgba(7,34,45,.5);z-index:70}.mobile-only,.mobile-cart-button{display:block}.mobile-cart-button{border:0;border-radius:8px;background:var(--brand);color:#fff;padding:9px;font-size:10px;font-weight:800}.mobile-cart-button b{background:#8ae4d3;color:#135164;border-radius:99px;padding:2px 5px;margin-left:4px}.search-box.small{width:100%}.filter-row{overflow:auto;padding-bottom:3px}.report-grid,.settings-grid{grid-template-columns:1fr}.menu-settings-list{grid-template-columns:1fr}.compare-row{grid-template-columns:90px 1fr 75px}.momo-qr-panel,.bank-qr-panel{grid-template-columns:90px 1fr}.fake-qr,.bank-qr-image-wrap{width:90px}.mobile-logout{display:block;border:0;background:#edf3f5;color:#46616d;border-radius:7px;padding:7px;font-size:10px}.shift-button{max-width:110px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pin-form{grid-template-columns:1fr 120px}}
@media print{body{background:#fff}.app-shell,.no-print,.toast,.modal-backdrop:not(#receiptModal){display:none!important}#receiptModal{position:static;background:#fff;padding:0;display:block!important}.receipt-card{box-shadow:none;padding:0;width:80mm;max-height:none}.receipt-paper{border:0}.receipt-actions{display:none!important}}
.save-table-button{width:100%;margin:3px 0 8px;color:#167464;background:#ecf8f4;border-color:#c5e8dd}
.table-card.pending{background:#fff7eb;border-color:#f0c887;color:#7f5d25}.table-card.pending .table-card-status{color:#a47a33}.table-card.pending .table-card-total{color:#a06f24}
.pos-device-bar{display:none}.service-source{display:flex;align-items:center;gap:7px;margin:-4px 0 12px;color:#6b7a82;font-size:11px;font-weight:700}.service-source>span{margin-right:4px}.service-source button{border:1px solid #dce5e8;background:#fff;color:#61737c;border-radius:6px;padding:7px 16px;font-size:11px;font-weight:700}.service-source button.active{background:#dceff7;border-color:#b8dae8;color:#116485}.table-filter>span{align-self:center;margin:0 4px;color:#657781;font-size:11px;font-weight:700}.table-seat-icon{font-size:22px;color:#b6cbd4;line-height:1}.table-card.busy .table-seat-icon{color:#d8f0f5}.save-table-modal{text-align:center;width:min(480px,100%);padding:27px}.save-table-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:#e8f8f4;color:#0e9b80;font-size:22px;font-weight:800}.save-table-copy h2{font-size:21px;margin:7px 0}.save-table-copy p{color:var(--muted);font-size:11px;line-height:1.6;margin:0 auto 18px;max-width:350px}.save-table-preview{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;background:#f7fafb;margin-bottom:17px}.save-table-preview div{padding:13px 8px}.save-table-preview div+div{border-left:1px solid var(--line)}.save-table-preview span,.save-table-preview strong{display:block}.save-table-preview span{font-size:9px;color:var(--muted);margin-bottom:5px}.save-table-preview strong{font-size:12px}.save-table-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.save-table-button{background:#f39a35;color:#fff;border-color:#e68a25}.save-table-button:hover{background:#df7e16;color:#fff}
body.pos-mode{background:#f8fafb}body.pos-mode .app-shell{display:block}body.pos-mode .sidebar,body.pos-mode .topbar{display:none}body.pos-mode .pos-device-bar{height:54px;position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;background:#eef7fb;border-top:5px solid #25a9df;border-bottom:1px solid #cbdce4;padding:0 18px;color:#4c6571}body.pos-mode .pos-device-brand{display:flex;align-items:center;gap:9px}body.pos-mode .pos-device-logo{width:29px;height:29px;border-radius:6px;display:grid;place-items:center;background:#159ed5;color:#fff;font-weight:800}body.pos-mode .pos-device-brand strong,body.pos-mode .pos-device-brand small{display:block}body.pos-mode .pos-device-brand strong{font-size:11px;color:#344e5a}body.pos-mode .pos-device-brand small{font-size:8px;color:#7f949e;margin-top:2px}body.pos-mode .pos-device-actions{display:flex;height:100%;align-items:stretch}body.pos-mode .pos-device-actions button{border:0;border-left:1px solid #d4e2e7;background:transparent;color:#55717d;padding:0 13px;font-size:10px;font-weight:700}body.pos-mode .pos-device-actions button.active{color:#128abd;background:#fff}body.pos-mode .view{padding:21px 26px}body.pos-mode .pos-workspace-tabs{padding:0 26px;gap:26px}body.pos-mode .workspace-heading{margin-bottom:15px}body.pos-mode .workspace-heading h1{font-size:20px;margin:5px 0}body.pos-mode .table-toolbar{border:0;border-radius:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;background:transparent}body.pos-mode .floor-label{margin-top:14px}body.pos-mode .table-grid{grid-template-columns:repeat(6,minmax(110px,1fr));gap:12px}body.pos-mode .table-card{min-height:112px;align-items:center;text-align:center;border:2px solid #d6e3e8;border-radius:15px;background:#fff;padding:12px}body.pos-mode .table-card-number{margin-top:5px;font-size:12px}body.pos-mode .table-card-status{margin-top:4px;font-size:9px}body.pos-mode .table-card-total{margin-top:8px;font-size:10px}body.pos-mode .table-card.busy{background:#25a7dc;border-color:#1598cf;color:#fff}body.pos-mode .table-card.busy .table-card-total{color:#fff}body.pos-mode .table-card.pending{background:#fff4dd;border-color:#f2ad52;color:#80581e}body.pos-mode .sales-layout{max-width:none;grid-template-columns:minmax(0,1fr) 330px;gap:12px}body.pos-mode .catalog-panel{display:grid;grid-template-columns:150px minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:13px}body.pos-mode .order-topline,body.pos-mode .compact-heading,body.pos-mode .catalog-toolbar{grid-column:1/-1}body.pos-mode .category-list{grid-column:1;grid-row:4;display:flex;flex-direction:column;gap:4px;overflow:auto;padding:0;border-right:1px solid var(--line);padding-right:10px;max-height:calc(100vh - 230px)}body.pos-mode .category-chip{text-align:left;border:0;border-radius:5px;padding:10px;background:transparent}body.pos-mode .category-chip.active{background:#dceff7;color:#157ba2}body.pos-mode .product-grid{grid-column:2;grid-row:4;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start}body.pos-mode .product-card{min-height:105px;background:#e9f2f6;border-color:#dbe7eb;align-items:center;text-align:center}body.pos-mode .product-card:after{display:none}body.pos-mode .product-card strong{margin:8px 0 6px}body.pos-mode .cart-panel{border-radius:5px;top:66px;min-height:calc(100vh - 88px);max-height:calc(100vh - 66px);box-shadow:none}body.pos-mode .checkout-button{background:#269ed1;border-radius:5px}body.pos-mode .save-table-button{border-radius:5px}
@media(max-width:1050px){body.pos-mode .table-grid{grid-template-columns:repeat(5,minmax(100px,1fr))}body.pos-mode .pos-device-actions button{padding:0 8px}body.pos-mode .sales-layout{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:800px){body.pos-mode .app-shell{padding-bottom:0}body.pos-mode .pos-device-bar{height:auto;min-height:58px;padding:7px 10px;align-items:flex-start;gap:8px}body.pos-mode .pos-device-brand{min-width:0}body.pos-mode .pos-device-brand div{min-width:0}body.pos-mode .pos-device-brand strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.pos-mode .pos-device-actions{gap:3px;flex-wrap:wrap;justify-content:flex-end}body.pos-mode .pos-device-actions button{border:0;border-radius:5px;background:#fff;padding:6px;font-size:8px}body.pos-mode .view{padding:14px 10px}body.pos-mode .pos-workspace-tabs{padding:0 10px}body.pos-mode .table-grid{grid-template-columns:repeat(2,1fr)}body.pos-mode .catalog-panel{display:block}body.pos-mode .category-list{display:flex;flex-direction:row;border:0;padding:2px 0 10px;max-height:none}body.pos-mode .product-grid{display:grid;grid-template-columns:repeat(2,1fr)}.save-table-preview{grid-template-columns:1fr}.save-table-preview div+div{border-left:0;border-top:1px solid var(--line)}.save-table-actions{grid-template-columns:1fr}}
.open-shift-modal{width:min(520px,100%)}.open-shift-modal .modal-header{margin-bottom:18px}.open-shift-modal .modal-header p{margin:6px 0 0;color:var(--muted);font-size:11px}.opening-cash-field{display:block;margin-bottom:13px}.opening-cash-field>span{display:block;color:#61727b;font-size:11px;font-weight:700;margin-bottom:7px}.opening-cash-field>div{display:flex;align-items:center;border:2px solid #a8d8e9;border-radius:10px;background:#f8fcfd;padding:0 13px}.opening-cash-field input{width:100%;height:54px;border:0;outline:0;background:transparent;text-align:right;font-size:24px;font-weight:800;color:#174e68}.opening-cash-field b{margin-left:8px;color:#527482}.opening-cash-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px}.opening-cash-quick button{border:1px solid #d8e4e8;border-radius:8px;background:#fff;color:#456571;padding:10px 5px;font-size:11px;font-weight:700}.opening-cash-quick button:hover{border-color:#55b5d8;background:#edf8fc}.open-shift-note{display:flex;gap:9px;background:#eef7fb;border-radius:9px;padding:11px;margin-bottom:15px;color:#487381}.open-shift-note p{font-size:10px;line-height:1.5;margin:0}.dedicated-app .role-grid{grid-template-columns:1fr}.dedicated-app .role-card.selected{margin-top:0}.dedicated-pos .login-screen{min-width:720px}
@media(orientation:portrait){body.dedicated-pos:after{content:"Vui lòng xoay ngang thiết bị để sử dụng POS";position:fixed;inset:0;z-index:9999;display:grid;place-items:center;text-align:center;padding:30px;background:#103448;color:#fff;font-size:18px;font-weight:800}body.dedicated-pos>*{visibility:hidden}body.dedicated-pos:after{visibility:visible}}
.shift-detail-card .modal-header p{margin:6px 0 0;color:var(--muted);font-size:11px}.shift-time-card{background:linear-gradient(135deg,#0d6687,#1696a5);color:#fff;border-radius:12px;padding:16px;margin-bottom:12px}.shift-time-card span,.shift-time-card strong,.shift-time-card small{display:block}.shift-time-card span{font-size:10px;color:#cbe5eb}.shift-time-card strong{font-size:18px;margin:5px 0}.shift-time-card small{font-size:10px;color:#d3edf0}.shift-metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;margin-bottom:14px}.shift-metrics div{padding:13px 9px}.shift-metrics div+div{border-left:1px solid var(--line)}.shift-metrics span,.shift-metrics strong{display:block}.shift-metrics span{font-size:9px;color:var(--muted);margin-bottom:5px}.shift-metrics strong{font-size:12px}.detail-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:11px}.detail-stats article{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px}.detail-stats span,.detail-stats strong{display:block}.detail-stats span{font-size:9px;color:var(--muted);min-height:25px}.detail-stats strong{font-size:17px;color:var(--brand-dark);margin-top:5px}.detail-panels{display:grid;grid-template-columns:1.25fr .75fr;gap:11px}.breakdown-row{display:grid;grid-template-columns:115px minmax(100px,1fr) 135px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f2}.breakdown-row:last-child{border-bottom:0}.breakdown-row strong,.breakdown-row span{display:block}.breakdown-row strong{font-size:11px}.breakdown-row span{font-size:9px;color:var(--muted);margin-top:3px}.breakdown-row b{font-size:10px;text-align:right}.breakdown-track{height:7px;background:#e7eef1;border-radius:99px;overflow:hidden}.breakdown-track i{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,var(--aqua),var(--brand));border-radius:99px}.source-row{display:grid;grid-template-columns:1fr 60px 90px;gap:8px;padding:10px 0;border-bottom:1px solid #edf1f2;font-size:10px}.source-row:last-child{border-bottom:0}.source-row b{text-align:right;color:var(--brand-dark)}.detail-table-card{margin-top:11px}.report-empty{text-align:center;color:var(--muted);padding:28px!important;font-size:11px}.open-tag{display:inline-block;border-radius:99px;background:#e7f7f4;color:#11806d;padding:4px 7px;font-size:9px;font-weight:800}
@media(max-width:1100px){.detail-stats{grid-template-columns:repeat(3,1fr)}.detail-panels{grid-template-columns:1fr}.breakdown-row{grid-template-columns:110px 1fr 125px}}
@media(max-width:800px){.shift-metrics{grid-template-columns:1fr}.shift-metrics div+div{border-left:0;border-top:1px solid var(--line)}.detail-stats{grid-template-columns:repeat(2,1fr)}.breakdown-row{grid-template-columns:95px 1fr}.breakdown-row b{grid-column:1/-1;text-align:left}.detail-panels{display:block}.detail-panels .report-card+.report-card{margin-top:11px}}
.live-refresh-label{display:flex;align-items:center;gap:8px;border:1px solid #bfe5d9;background:#effaf7;color:#16735f;border-radius:99px;padding:8px 12px;font-size:10px;font-weight:800}.live-refresh-label span,.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#9fb0b7}.live-refresh-label span,.live-dot.on{background:#16b88f;box-shadow:0 0 0 4px rgba(22,184,143,.12)}.live-control-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.live-control-row .filter-row{margin:0}.live-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.live-stats article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 15px}.live-stats span,.live-stats strong,.live-stats small{display:block}.live-stats span{font-size:10px;color:var(--muted);font-weight:700}.live-stats strong{font-size:20px;color:var(--brand-dark);margin:5px 0 3px}.live-stats small{font-size:9px;color:#84939a}.live-store-block{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}.live-store-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:13px;border-bottom:1px solid #edf1f2}.live-store-heading>div{display:flex;align-items:center;gap:11px}.live-store-heading h2{font-size:14px;margin:0 0 4px}.live-store-heading p{font-size:10px;color:var(--muted);margin:0}.shift-state{border-radius:99px;background:#fff5ee;color:#a8653d;padding:6px 9px;font-size:9px;font-weight:800}.shift-state.open{background:#e9f8f3;color:#117962}.live-table-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:13px}.live-table-card{border:1px solid #dbe5e8;border-radius:11px;background:#fafcfd;padding:12px;min-width:0}.live-table-card.occupied{border-top:3px solid #1a9fc6;background:#fff}.live-table-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.live-table-head span{font-size:8px;letter-spacing:.08em;color:#16836c;font-weight:800;text-transform:uppercase}.live-table-head h3{font-size:15px;margin:4px 0 0;color:var(--brand-dark)}.live-table-head time{font-size:9px;color:#697d86;white-space:nowrap;background:#eef5f7;border-radius:99px;padding:5px 7px}.live-table-card ul{list-style:none;padding:0;margin:11px 0 8px;border-top:1px solid #edf1f2}.live-table-card li{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px dashed #e1e8ea;font-size:9px}.live-table-card li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-table-card li b{color:#6e7e85}.live-table-card li strong{font-size:9px;white-space:nowrap}.live-table-total{display:flex;justify-content:space-between;align-items:center;padding-top:3px}.live-table-total span{font-size:9px;color:var(--muted)}.live-table-total strong{font-size:12px;color:var(--brand-dark)}.live-empty-table{display:grid;place-items:center;min-height:62px;color:#98a6ac;font-size:10px}.live-store-empty{grid-column:1/-1;padding:23px;text-align:center;color:var(--muted);font-size:11px;background:#f8fafb;border-radius:9px}.live-sync-note{border:1px solid #d4e5ea;background:#eef6f8;color:#58707a;border-radius:10px;padding:11px 13px;font-size:10px;line-height:1.5}.live-sync-note strong{color:#28596b}.segmented{display:flex;gap:4px;background:#e8eef0;border-radius:9px;padding:4px}.segmented button{border:0;background:transparent;color:#667981;border-radius:6px;padding:8px 10px;font-size:10px;font-weight:800}.segmented button.active{background:#fff;color:var(--brand-dark);box-shadow:0 2px 8px rgba(25,54,67,.08)}
@media(max-width:1100px){.live-table-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.live-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.live-page-heading{flex-direction:column}.live-control-row{align-items:flex-start;flex-direction:column}.live-table-grid{grid-template-columns:1fr}.live-stats{grid-template-columns:repeat(2,1fr)}.live-store-heading{align-items:flex-start;flex-direction:column}.live-control-row .segmented{width:100%;overflow:auto}.live-control-row .segmented button{white-space:nowrap}}
.live-sync-note.online{border-color:#bfe5d9;background:#effaf7;color:#3b7064}.live-sync-note.online strong{color:#14735e}.live-table-actions{display:flex;align-items:center;gap:8px}.live-table-actions .secondary-button{white-space:nowrap;padding:8px 11px;font-size:10px}
.saved-table-banner{margin:0 15px 10px;padding:10px 12px;border:1px solid #bfe5dc;border-radius:8px;background:#effaf7}.saved-table-banner span,.saved-table-banner strong,.saved-table-banner small{display:block}.saved-table-banner span{font-size:9px;font-weight:800;letter-spacing:.1em;color:#16856f}.saved-table-banner strong{font-size:14px;color:var(--brand-dark);margin:3px 0}.saved-table-banner small{font-size:9px;color:#637a73;line-height:1.4}
/* Tablet order workspace, based on the supplied counter demonstration. */
body.pos-mode .view{padding:12px 16px}body.pos-mode .sales-layout{gap:0;grid-template-columns:minmax(0,1fr) 32%}body.pos-mode .catalog-panel{grid-template-columns:125px minmax(0,1fr);column-gap:12px;padding-right:14px}body.pos-mode .compact-heading{display:none}body.pos-mode .category-list,body.pos-mode .product-grid{grid-row:4;max-height:calc(100dvh - 200px);overflow-y:auto;overscroll-behavior:contain}body.pos-mode .category-chip{font-size:14px;min-height:44px}body.pos-mode .product-card{border-radius:4px;min-height:110px;padding:12px 7px;background:#e0edf5}body.pos-mode .product-card strong{font-size:14px}body.pos-mode .product-card .price{color:#c45731;font-size:14px}body.pos-mode .product-code{font-size:12px}body.pos-mode .cart-panel{position:sticky;border:0;border-left:1px solid #d9e2e8;top:66px;min-height:0;height:calc(100dvh - 130px);border-radius:0}body.pos-mode .cart-header{background:#f3f8fb}body.pos-mode .cart-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px}body.pos-mode .cart-summary>div,body.pos-mode .cart-summary>label{grid-column:1/-1}body.pos-mode .cart-summary .save-table-button{background:#ed912c;color:white;border:0;margin:0;min-height:48px;font-size:14px}body.pos-mode .cart-summary .checkout-button{margin:0;min-height:48px;font-size:14px}body.pos-mode .cart-summary .save-table-button.hidden+.checkout-button{grid-column:1/-1}body.pos-mode .table-card{transition:none;min-height:100px}body.pos-mode .table-card:hover{transform:none}body.pos-mode .table-card-number{font-size:16px}body.pos-mode .table-card-status,body.pos-mode .table-card-total{font-size:13px}body.pos-mode .workspace-heading p{display:none}body.pos-mode .pos-device-actions button{font-size:13px}body.pos-mode .pos-device-brand strong{font-size:14px}
#checkoutModal .modal-card{width:min(1000px,96vw);max-width:1000px}.checkout-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);gap:24px}.checkout-order{border-left:1px solid #dce5eb;padding-left:24px;display:flex;flex-direction:column}.checkout-order h2{font-size:18px;margin:0 0 12px}.checkout-order h3{font-size:16px}.checkout-lines{max-height:40dvh;overflow-y:auto}.checkout-lines>div,.checkout-detail-total{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e5ebef;font-size:14px}.checkout-lines small{display:block;margin-top:6px;color:#6b7a87}.checkout-order #confirmPayment{margin-top:20px;min-height:48px;background:#169bd0}.checkout-payment .payment-methods{grid-template-columns:repeat(2,1fr)}.checkout-payment .bank-qr-panel{flex-wrap:wrap}.checkout-payment .bank-qr-image-wrap img{max-width:100%}
@media(max-width:700px){.checkout-layout{grid-template-columns:1fr}.checkout-order{border-left:0;border-top:1px solid #dce5eb;padding:16px 0 0}body.pos-mode .catalog-panel{grid-template-columns:105px minmax(0,1fr)}body.pos-mode .category-list{flex-direction:column}body.pos-mode .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Cashier QR must remain large enough for tablet scanning. */
#checkoutModal .bank-qr-panel{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
#checkoutModal .bank-qr-image-wrap{width:clamp(280px,32vw,400px);max-width:100%;aspect-ratio:auto;min-height:280px;border-radius:0;padding:8px;background:white}
#checkoutModal .bank-qr-image-wrap img{width:100%;height:auto;object-fit:contain}
#checkoutModal .bank-qr-panel strong{font-size:26px}#checkoutModal .bank-qr-panel small,#checkoutModal .bank-qr-note{font-size:14px}
#momoPaymentModal .modal-card{width:min(650px,96vw)}#momoOfficialFrame{width:100%;height:65dvh;min-height:430px;border:0;background:white}
#shiftRequiredGate{position:fixed;inset:0;z-index:81;background:rgba(238,244,249,.98);display:grid;place-items:center;text-align:center}#shiftRequiredGate.hidden{display:none}#shiftRequiredGate .report-card{max-width:480px;padding:32px}#shiftRequiredGate button{margin-top:16px;min-height:48px}
#approvalPinValue{font-size:42px;letter-spacing:.12em;font-weight:800;font-variant-numeric:tabular-nums}#invoiceEditRows{max-height:45vh;overflow:auto}#invoiceEditRows label{display:flex;gap:12px;align-items:center;padding:10px;border-bottom:1px solid #ddd}#invoiceEditRows input{width:85px;min-height:44px}.approval-card{background:#f7f8fa;border:1px solid #e3e6ea;border-radius:16px;padding:20px;margin:18px 0}.approval-card h3{text-align:center;margin:0 0 16px}.approval-pin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;border:1px solid #dfe3e8;border-radius:12px;background:#fff;overflow:hidden}.approval-pin-row #approvalPinValue{padding:14px 18px}.approval-pin-row button{border:0;border-left:1px solid #e3e6ea;border-radius:0;margin:0}.approval-card>p{text-align:center;min-height:24px}

body:not(.owner-mode) .owner-approval-button{display:none}.receipt-actions{grid-template-columns:repeat(2,1fr)}#managerPinDialog input,#managerPinDialog select,.cms-dialog form>label>input{display:block;min-height:44px;width:100%;margin:8px 0 14px;font-size:16px}.cms-dialog form>label{display:block;margin-top:12px}

#openShiftModal{z-index:90}#momoOfficialFrame{min-height:500px}#momoPaymentImage{width:340px!important}

/* iPOS-style landscape payment workspace for Android tablets. */
#checkoutModal{align-items:stretch;padding:2vh 2vw}#checkoutModal .ipos-checkout-card{width:96vw;max-width:none;height:96vh;max-height:900px;padding:18px;display:flex;flex-direction:column}#checkoutModal .checkout-layout{flex:1;min-height:0;display:grid;grid-template-columns:150px minmax(330px,.95fr) minmax(310px,.8fr);gap:0;border:1px solid #dce5ea}.ipos-checkout-card .payment-methods{display:flex;flex-direction:column;gap:0;background:#f3f7f9;border-right:1px solid #dce5ea}.ipos-checkout-card .payment-methods button{min-height:72px;border:0;border-bottom:1px solid #dce5ea;border-radius:0;background:#f3f7f9;color:#5c6f78;display:flex;align-items:center;gap:10px;padding:14px;text-align:left}.ipos-checkout-card .payment-methods button.active{background:#dceff8;color:#087fb3;box-shadow:inset 4px 0 #159fd5}.ipos-checkout-card .payment-methods button span{width:30px;height:30px;border-radius:6px;background:#fff;display:grid;place-items:center;font-size:16px;font-weight:800}.ipos-checkout-card .payment-methods button .momo-mark{background:#a50064;color:#fff}.ipos-checkout-card .checkout-payment{padding:18px;overflow:auto}.checkout-money-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #dce5ea;margin-bottom:14px}.checkout-money-grid div{padding:4px 12px 14px}.checkout-money-grid div+div{border-left:1px solid #dce5ea}.checkout-money-grid span,.checkout-money-grid strong{display:block}.checkout-money-grid span{font-size:11px;color:#73838b;margin-bottom:7px}.checkout-money-grid strong{font-size:19px;color:#1782ad}.cash-quick-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}.cash-quick-row button,.cash-keypad button{border:1px solid #d6e1e6;background:#fff;color:#40535d;font-weight:700}.cash-quick-row button{border-radius:5px;padding:10px 4px;font-size:11px}.cash-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.cash-keypad button{min-height:58px;border-radius:3px;font-size:22px}.ipos-checkout-card .cash-received{margin-top:8px}.ipos-checkout-card .cash-received input{height:50px;font-size:22px;text-align:right}.ipos-checkout-card .change-row{margin-top:10px}.ipos-checkout-card .checkout-order{padding:18px;border-left:1px solid #dce5ea;min-height:0}.ipos-checkout-card #checkoutOrderDetail{overflow:auto;flex:1}.ipos-checkout-card .checkout-lines{max-height:42vh}.ipos-checkout-card #confirmPayment{margin-top:auto;background:#f49a28;font-size:15px}.ipos-checkout-card .momo-qr-panel{min-height:390px;display:grid;place-items:center;align-content:center;text-align:center;background:#fff7fb;border:1px solid #f0d5e5;border-radius:8px}.ipos-checkout-card .momo-qr-panel strong{font-size:32px;color:#a50064;margin:10px}.momo-qr-only{width:min(470px,92vw);text-align:center}.momo-qr-only #momoPaymentImage{display:block;width:min(380px,76vw)!important;height:auto;margin:8px auto 14px;background:#fff}.momo-qr-only #momoPaymentAmount{font-size:30px;color:#a50064;margin:6px}.momo-qr-only #momoPaymentStatus{min-height:24px;color:#526771}.approval-entry-dialog{width:min(430px,92vw)}
@media(max-width:1050px) and (orientation:landscape){#checkoutModal .checkout-layout{grid-template-columns:125px minmax(290px,1fr) minmax(270px,.8fr)}#checkoutModal .ipos-checkout-card{padding:10px}.ipos-checkout-card .checkout-payment,.ipos-checkout-card .checkout-order{padding:12px}.cash-keypad button{min-height:48px}.checkout-money-grid strong{font-size:16px}body.pos-mode .sales-layout{grid-template-columns:minmax(0,1fr) 35%}body.pos-mode .catalog-panel{grid-template-columns:112px minmax(0,1fr)}body.pos-mode .product-card{min-height:94px}}
@media(orientation:landscape) and (min-width:800px){body.dedicated-pos{min-width:900px;overflow-x:hidden}body.dedicated-pos .pos-device-bar{height:50px}body.dedicated-pos .view{height:calc(100dvh - 94px);overflow:hidden}body.dedicated-pos .sales-layout{height:calc(100dvh - 112px)}body.dedicated-pos .catalog-panel,body.dedicated-pos .cart-panel{height:100%;max-height:none}body.dedicated-pos .category-list,body.dedicated-pos .product-grid{max-height:none;height:calc(100% - 92px)}body.dedicated-pos .cart-items{overscroll-behavior:contain}}
.fabi-tag{display:inline-block;margin-left:7px;border-radius:99px;background:#e8f4fb;color:#19709a;padding:3px 7px;font-size:8px;font-weight:800;text-transform:uppercase}.row-detail-link{display:block;color:var(--brand);font-size:9px;margin-top:4px}.shift-report-dialog{border:0;border-radius:15px;padding:0;width:min(1120px,calc(100vw - 36px));max-width:none;max-height:92vh;color:var(--ink);box-shadow:0 24px 80px rgba(5,29,41,.28);overflow:auto}.shift-report-dialog::backdrop{background:rgba(7,29,40,.58)}.shift-report-head{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:38px 1fr auto;gap:13px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}.shift-report-head h2{font-size:21px;margin:4px 0}.shift-report-head p{margin:0;color:var(--muted);font-size:11px}.shift-import-note{margin:14px 22px 0;background:#f0f8fc;border:1px solid #d9edf6;border-radius:9px;padding:10px 12px;color:#4e7182;font-size:10px}.shift-report-hero{display:grid;grid-template-columns:repeat(3,1fr);margin:14px 22px 0;background:linear-gradient(135deg,#176b98,#278dbc);border-radius:12px;color:#fff;overflow:hidden}.shift-report-hero div{padding:17px}.shift-report-hero div+div{border-left:1px solid rgba(255,255,255,.2)}.shift-report-hero span,.shift-report-hero strong{display:block}.shift-report-hero span{font-size:9px;color:#cbe9f6;text-transform:uppercase;letter-spacing:.05em}.shift-report-hero strong{font-size:15px;margin-top:6px}.shift-report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 22px}.shift-report-stats article{border:1px solid var(--line);border-radius:10px;padding:13px;background:#fff}.shift-report-stats span,.shift-report-stats strong{display:block}.shift-report-stats span{font-size:9px;color:var(--muted)}.shift-report-stats strong{font-size:17px;margin-top:6px;color:var(--brand-dark)}.shift-report-columns{display:grid;grid-template-columns:1fr 1.3fr;gap:10px;margin:0 22px}.shift-breakdown{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf1f2}.shift-breakdown span,.shift-breakdown small{display:block}.shift-breakdown span{font-size:11px;font-weight:700}.shift-breakdown small{font-size:9px;color:var(--muted);margin-top:3px}.shift-category{margin:10px 0}.shift-category>div{display:flex;justify-content:space-between;font-size:10px;margin-bottom:5px}.shift-category i{display:block;height:6px;background:#e7eef1;border-radius:99px;overflow:hidden}.shift-category em{display:block;height:100%;background:linear-gradient(90deg,#18b69e,#19729b);border-radius:99px}.shift-detail-table{margin:10px 22px 18px}.shift-detail-table .orders-table{min-width:650px}@media(max-width:700px){.shift-report-dialog{width:100vw;height:100dvh;max-height:none;border-radius:0}.shift-report-head{padding:13px}.shift-report-hero{grid-template-columns:1fr;margin:10px 13px}.shift-report-hero div+div{border-left:0;border-top:1px solid rgba(255,255,255,.2)}.shift-report-stats{grid-template-columns:repeat(2,1fr);margin:10px 13px}.shift-report-columns{grid-template-columns:1fr;margin:0 13px}.shift-detail-table{margin:10px 13px}}
.account-login-form{display:grid;gap:16px}.account-picker,.password-picker{display:grid;gap:8px;color:#52636c;font-size:11px;font-weight:700}.account-picker select,.password-picker>div{width:100%;height:52px;border:1px solid var(--line);border-radius:11px;background:#fff}.account-picker select{padding:0 14px;color:var(--ink);font-size:13px;font-weight:600;outline:0}.account-picker select:focus,.password-picker>div:focus-within{border-color:#36a7b4;box-shadow:0 0 0 3px rgba(21,183,160,.1)}.password-picker>div{display:flex;align-items:center;overflow:hidden}.password-picker input{min-width:0;flex:1;height:100%;border:0;outline:0;padding:0 14px;font-size:14px}.password-picker button{width:48px;height:100%;border:0;border-left:1px solid var(--line);background:#f7fafb;color:var(--brand);font-size:17px}.login-submit{min-height:50px;font-size:13px;margin-top:2px}@media(max-width:700px){.login-panel{padding:26px 22px}.account-picker select,.password-picker>div{height:54px}}
.line-more{border:0;background:transparent;color:#607985;font-size:24px;line-height:1;padding:0 5px;margin-left:4px}.cart-item-top .cart-item-name{flex:1}.cart-item-top .cart-item-price{margin-left:auto}.table-card{touch-action:manipulation;user-select:none;-webkit-user-select:none}.table-card-elapsed{display:block;margin-top:5px;font-size:10px;color:#bfece5;font-variant-numeric:tabular-nums}.momo-direct-code{margin:10px 0 14px;padding:10px;background:#f7f7f9;border-radius:8px;text-align:left}.momo-direct-code span,.momo-direct-code code{display:block}.momo-direct-code span{font-size:10px;color:#6f7c83;margin-bottom:5px}.momo-direct-code code{font-size:10px;line-height:1.4;max-height:58px;overflow:auto;overflow-wrap:anywhere;background:#fff;padding:8px;border-radius:5px}.momo-direct-code button{margin-top:8px;width:100%}.ipos-checkout-card .bank-qr-panel{min-height:390px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center}.ipos-checkout-card .bank-qr-image-wrap{width:min(300px,30vw);min-height:0}.ipos-checkout-card .bank-qr-image-wrap img{width:100%;height:auto}.ipos-checkout-card .payment-methods button{flex-shrink:0}
.momo-qr-only{width:min(520px,94vw)}.momo-qr-only #momoPaymentImage{width:min(400px,76vw)!important;margin:4px auto 10px}.momo-qr-only #momoPaymentAmount{margin:4px}.momo-aio-note{margin:6px auto 10px;color:#526771;font-size:13px;line-height:1.5}.momo-qr-only #momoPaymentStatus{font-weight:700}.momo-qr-only #momoCheckNow,.momo-qr-only #momoRetry{margin-top:7px}
.momo-scanner{width:min(590px,94vw)}.scanner-total{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;margin-bottom:12px;border-radius:10px;background:#fff1f7;color:#6b3653}.scanner-total span{font-size:12px}.scanner-total strong{font-size:26px;color:#a50064}.scanner-camera{position:relative;min-height:260px;border-radius:12px;overflow:hidden;background:#14212a;display:grid;place-items:center}.scanner-camera video{width:100%;height:300px;object-fit:cover}.scanner-camera p{position:absolute;left:16px;right:16px;bottom:8px;margin:0;padding:8px;border-radius:7px;background:rgba(8,25,34,.78);color:#fff;text-align:center;font-size:11px}.scanner-camera #momoScannerFrame{position:absolute;width:78%;height:42%;border:2px solid #fff;border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.scanner-camera #momoScannerFrame i{position:absolute;left:8%;right:8%;top:50%;height:2px;background:#eb2f96;box-shadow:0 0 10px #eb2f96}.scanner-manual{display:grid;grid-template-columns:1fr 120px;align-items:end;gap:9px;margin-top:13px}.scanner-manual label{display:grid;gap:6px;color:#60737d;font-size:11px;font-weight:700}.scanner-manual input{height:44px;border:1px solid #d7e1e5;border-radius:9px;padding:0 12px;font-size:16px;letter-spacing:.03em}.scanner-manual button{height:44px}.momo-scanner #momoScannerStatus{min-height:22px;color:#9b315f;font-weight:700;text-align:center;line-height:1.5}@media(max-width:700px){.scanner-camera video{height:240px}.scanner-manual{grid-template-columns:1fr}.scanner-manual button{width:100%}}

/* Mobile Order account — compact iPOS PDA-style workflow. */
@media(max-width:800px){
body.order-mode{background:#f2f4f6;color:#172b3a;overscroll-behavior:none}
body.order-mode .app-shell{min-height:100dvh;padding:0;background:#f2f4f6}
body.order-mode .pos-device-bar{position:sticky;top:0;z-index:60;min-height:56px;padding:7px 10px;background:#fff;border:0;border-bottom:1px solid #dfe6ea;box-shadow:0 2px 10px rgba(23,55,72,.08);align-items:center}
body.order-mode .pos-device-brand{gap:8px;max-width:55%}
body.order-mode .pos-device-logo{width:36px;height:36px;border-radius:10px;background:#168fc1;font-size:18px}
body.order-mode .pos-device-brand strong{font-size:13px;color:#193746}
body.order-mode .pos-device-brand small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.order-mode .pos-device-actions{gap:5px;flex-wrap:nowrap;align-items:center}
body.order-mode .pos-device-actions button{display:none;min-height:36px;padding:0 10px;border:1px solid #dbe5e9;border-radius:9px;background:#f7fafb;color:#45616e;font-size:0}
body.order-mode .pos-device-actions #posSyncButton,body.order-mode .pos-device-actions #posLogoutButton{display:block}
body.order-mode .pos-device-actions #posSyncButton:after{content:"↻";font-size:20px}
body.order-mode .pos-device-actions #posLogoutButton:after{content:"Thoát";font-size:10px;font-weight:800}
body.order-mode .pos-workspace-tabs{position:sticky;top:56px;z-index:50;display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;background:#fff;border-bottom:1px solid #dfe6ea}
body.order-mode .pos-workspace-tabs button{min-height:46px;padding:12px 4px 10px;font-size:13px}
body.order-mode .view{padding:10px 10px 92px}
body.order-mode .workspace-heading{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;margin:1px 0 10px}
body.order-mode .workspace-heading .eyebrow,body.order-mode .workspace-heading p{display:none}
body.order-mode .workspace-heading h1{font-size:18px;margin:0;letter-spacing:-.02em}
body.order-mode .table-summary{width:auto;border:0;border-radius:10px;background:#fff;box-shadow:0 1px 4px rgba(20,54,70,.06)}
body.order-mode .table-summary div{min-width:64px;padding:7px 10px;text-align:center}
body.order-mode .table-summary strong{font-size:15px}
body.order-mode .table-summary span{font-size:8px}
body.order-mode .service-source{margin:0 0 8px;padding:4px;border-radius:10px;background:#e5ebee}
body.order-mode .service-source span{display:none}
body.order-mode .service-source button{flex:1;min-height:38px;border:0;border-radius:8px;font-size:12px;font-weight:800}
body.order-mode .table-toolbar{margin:0 -10px 8px;padding:0 10px 8px;border:0;border-bottom:1px solid #dfe6ea;background:#f2f4f6;overflow:hidden}
body.order-mode .table-filter{width:100%;gap:6px;overflow-x:auto;scrollbar-width:none}
body.order-mode .table-filter span,body.order-mode .table-legend{display:none}
body.order-mode .table-filter button{flex:0 0 auto;min-height:36px;padding:7px 11px;border:1px solid #dbe4e8;border-radius:18px;background:#fff;font-size:10px}
body.order-mode .table-filter button.active{border-color:#168fc1;background:#e8f5fb;color:#0879a8}
body.order-mode .floor-label{margin:9px 0 8px;gap:7px}
body.order-mode .floor-label span{width:24px;height:24px;border-radius:7px}
body.order-mode .floor-label strong{font-size:12px}
body.order-mode .floor-label small{font-size:9px}
body.order-mode .table-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
body.order-mode .table-card{min-height:92px;padding:9px 6px;border-width:1px;border-radius:12px;text-align:center;align-items:center;box-shadow:0 2px 7px rgba(23,55,72,.05)}
body.order-mode .table-card-number{font-size:14px;margin-top:2px}
body.order-mode .table-card-status{font-size:9px;margin-top:5px}
body.order-mode .table-card-total{font-size:10px;margin-top:auto}
body.order-mode .table-card-elapsed{font-size:9px;margin-top:3px}
body.order-mode .sales-layout{display:block;margin:0}
body.order-mode .order-topline{position:sticky;top:102px;z-index:35;margin:-10px -10px 8px;padding:10px;background:#fff;border-bottom:1px solid #e1e7ea}
body.order-mode .back-to-tables{min-height:34px;padding:0 8px;border-radius:8px;background:#e9f5fa;font-size:11px}
body.order-mode .order-context{max-width:60%;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.order-mode .compact-heading{display:none}
body.order-mode .catalog-toolbar{position:sticky;top:151px;z-index:34;margin:0 -10px;padding:8px 10px;background:#f2f4f6}
body.order-mode .search-box{width:100%;height:44px;border-radius:12px;border-color:#d9e3e7;box-shadow:0 2px 7px rgba(23,55,72,.04)}
body.order-mode .search-box input{font-size:13px}
body.order-mode .category-list{position:sticky;top:211px;z-index:33;display:flex;flex-direction:row;gap:7px;margin:0 -10px 8px;padding:2px 10px 9px;border:0;border-bottom:1px solid #dfe6ea;background:#f2f4f6;overflow-x:auto;max-height:none;scrollbar-width:none}
body.order-mode .category-chip{flex:0 0 auto;min-height:38px;padding:8px 13px;border:1px solid #d9e3e7;border-radius:20px;background:#fff;font-size:11px;text-align:center}
body.order-mode .category-chip.active{border-color:#168fc1;background:#168fc1;color:#fff}
body.order-mode .product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-bottom:72px}
body.order-mode .product-card{min-height:112px;padding:11px 9px;border:1px solid #dce5e8;border-radius:12px;background:#fff;text-align:left;align-items:stretch;box-shadow:0 2px 8px rgba(23,55,72,.05)}
body.order-mode .product-card:after{display:grid;width:28px;height:28px;right:8px;bottom:8px;border-radius:8px;background:#e4f5fb;color:#1088b8;font-size:22px}
body.order-mode .product-code{font-size:9px;color:#78909c}
body.order-mode .product-card strong{font-size:13px;line-height:1.35;margin:7px 26px 8px 0}
body.order-mode .product-card .price{font-size:13px;color:#e27822}
body.order-mode .mobile-cart-button{display:flex;position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:69;min-height:58px;align-items:center;justify-content:flex-start;padding:0 16px;border:0;border-radius:14px;background:#168fc1;color:#fff;box-shadow:0 8px 24px rgba(4,86,123,.32);font-size:13px;text-align:left}
body.order-mode .mobile-cart-button b{display:grid;place-items:center;min-width:25px;height:25px;margin-left:8px;padding:0 6px;background:#fff;color:#137eaa}
body.order-mode .mobile-cart-button:after{content:attr(data-total) "  ›";margin-left:auto;font-size:14px;font-weight:800}
body.order-mode .cart-panel{position:fixed;inset:0;z-index:82;width:100%;height:100dvh;min-height:0;max-height:none;border:0;border-radius:0;transform:translateY(105%);transition:transform .22s ease;background:#f4f6f7;box-shadow:none}
body.order-mode .cart-panel.open{transform:translateY(0)}
body.order-mode .cart-header{position:sticky;top:0;z-index:2;align-items:center;padding:14px 13px;background:#fff;border-bottom:1px solid #dfe6ea}
body.order-mode .cart-header .eyebrow{display:none}
body.order-mode .cart-header h2{margin:0;font-size:18px}
body.order-mode .cart-header .icon-button{width:38px;height:38px;border-radius:10px;font-size:23px}
body.order-mode .order-type{margin:10px 10px 7px;padding:4px;border-radius:10px}
body.order-mode .order-type button{min-height:38px;font-size:11px}
body.order-mode .saved-table-banner{margin:0 10px 7px}
body.order-mode .cart-items{padding:0 10px;overscroll-behavior:contain}
body.order-mode .cart-item{margin-bottom:7px;padding:12px;border:1px solid #dfe6ea;border-radius:11px;background:#fff}
body.order-mode .cart-item-name,body.order-mode .cart-item-price{font-size:13px}
body.order-mode .qty-control button{width:38px;height:34px;font-size:18px}
body.order-mode .qty-control span{min-width:34px;line-height:34px;font-size:13px}
body.order-mode .remove-item{min-height:34px;padding:0 7px;font-size:11px}
body.order-mode .cart-summary{padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 14px rgba(23,55,72,.07)}
body.order-mode .cart-summary>div,body.order-mode .discount-line{font-size:12px}
body.order-mode .grand-total strong{font-size:22px!important;color:#e27822!important}
body.order-mode .save-table-button,body.order-mode .checkout-button{min-height:50px;border-radius:11px;font-size:13px}
body.order-mode .mobile-overlay{z-index:81}
body.order-mode #checkoutModal{z-index:90;padding:0;align-items:stretch}
body.order-mode #checkoutModal .ipos-checkout-card{width:100vw;height:100dvh;max-height:none;padding:0;border-radius:0}
body.order-mode #checkoutModal .modal-header{padding:13px;margin:0;border-bottom:1px solid #dfe6ea}
body.order-mode #checkoutModal .checkout-layout{display:flex;flex-direction:column;border:0;overflow:auto}
body.order-mode .ipos-checkout-card .payment-methods{display:grid;grid-template-columns:repeat(3,1fr);flex:0 0 auto;border:0;border-bottom:1px solid #dce5ea}
body.order-mode .ipos-checkout-card .payment-methods button{min-height:64px;padding:8px;border:0;border-right:1px solid #dce5ea;justify-content:center;text-align:center;flex-direction:column}
body.order-mode .ipos-checkout-card .payment-methods button.active{box-shadow:inset 0 -3px #159fd5}
body.order-mode .ipos-checkout-card .checkout-payment{padding:12px;overflow:visible}
body.order-mode .ipos-checkout-card .checkout-order{padding:12px;border:0;border-top:1px solid #dce5ea;overflow:visible}
body.order-mode .checkout-money-grid strong{font-size:15px}
body.order-mode .cash-keypad button{min-height:50px}
body.order-mode #checkoutModal .bank-qr-image-wrap{width:min(300px,82vw)}
body.order-mode #checkoutModal .bank-qr-panel{min-height:0}
body.order-mode .ipos-checkout-card #confirmPayment{min-height:52px;position:sticky;bottom:0}
}

/* iPOS PDA menu: vertical groups on the left, three products per row. */
@media(max-width:800px){
body.order-mode .catalog-panel{display:grid;grid-template-columns:94px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);column-gap:7px;align-items:start}
body.order-mode .order-topline{grid-column:1/-1;grid-row:1}
body.order-mode .catalog-toolbar{grid-column:1/-1;grid-row:2}
body.order-mode .category-list{grid-column:1;grid-row:3;position:sticky;top:211px;z-index:32;display:flex;flex-direction:column;gap:0;height:calc(100dvh - 222px);max-height:none;margin:0;padding:0 6px 82px 0;border:0;border-right:1px solid #d9e2e7;background:#f2f4f6;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
body.order-mode .category-chip{display:block;flex:0 0 auto;width:100%;min-height:48px;padding:8px 5px;border:0;border-bottom:1px solid #dce4e8;border-radius:0;background:transparent;color:#526b78;font-size:11px;line-height:1.25;text-align:center;white-space:normal}
body.order-mode .category-chip.active{border:0;border-bottom:1px solid #168fc1;border-radius:6px;background:#168fc1;color:#fff;box-shadow:0 3px 9px rgba(22,143,193,.2)}
body.order-mode .product-grid{grid-column:2;grid-row:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 0 82px;align-content:start;min-width:0}
body.order-mode .product-card{min-width:0;min-height:96px;padding:8px 6px;border-radius:7px;background:#fff;text-align:center;align-items:center;box-shadow:none}
body.order-mode .product-card:after{width:21px;height:21px;right:5px;bottom:5px;border-radius:5px;font-size:17px}
body.order-mode .product-code{width:100%;font-size:8px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.order-mode .product-card strong{width:100%;font-size:10.5px;line-height:1.25;margin:7px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.order-mode .product-card .price{align-self:flex-start;font-size:10.5px;padding-right:20px;white-space:nowrap}
body.order-mode #productEmpty{grid-column:2;grid-row:3;padding:34px 8px;font-size:11px}
}
@media(max-width:380px){
body.order-mode .catalog-panel{grid-template-columns:82px minmax(0,1fr);column-gap:5px}
body.order-mode .category-list{padding-right:4px}
body.order-mode .category-chip{font-size:10px;padding-left:3px;padding-right:3px}
body.order-mode .product-grid{gap:5px}
body.order-mode .product-card{min-height:92px;padding:7px 4px}
body.order-mode .product-card strong,body.order-mode .product-card .price{font-size:10px}
}

.mobile-order-tabs,.mobile-order-dock{display:none}
@media(max-width:800px){
body.order-mode .mobile-order-dock{position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:69;display:grid;grid-template-columns:50px minmax(0,1fr);gap:7px;height:54px}
body.order-mode .mobile-clear-order{display:grid;place-items:center;border:0;border-radius:8px;background:#147fac;color:#fff;font-size:22px;font-weight:800;box-shadow:0 7px 20px rgba(4,86,123,.25)}
body.order-mode .mobile-clear-order:disabled{background:#a8b9c1;box-shadow:none}
body.order-mode .mobile-cart-button{position:static;inset:auto;z-index:auto;min-height:54px;border-radius:8px;padding:0 13px;background:#147fac;box-shadow:0 7px 20px rgba(4,86,123,.25);font-size:13px}
body.order-mode .mobile-cart-button b{height:23px;min-width:23px;font-size:11px}
body.order-mode .mobile-cart-button:after{font-size:14px}
body.order-mode .mobile-order-tabs{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:1fr 1fr;background:#fff;border-bottom:1px solid #dfe6ea}
body.order-mode .mobile-order-tabs button{min-height:46px;border:0;border-bottom:3px solid transparent;background:#fff;color:#6b7e88;font-size:12px;font-weight:700}
body.order-mode .mobile-order-tabs button.active{border-bottom-color:#168fc1;color:#0879a8}
body.order-mode .cart-panel{background:#fff}
body.order-mode .cart-panel .order-type{display:none}
body.order-mode .cart-header{position:relative;min-height:54px}
body.order-mode .cart-header h2{font-size:15px}
body.order-mode .cart-items{padding:9px 10px 112px}
body.order-mode .cart-empty{padding-bottom:120px}
body.order-mode .cart-summary{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:7px;padding:9px 10px calc(9px + env(safe-area-inset-bottom));border-top:1px solid #cfdbe1}
body.order-mode .cart-summary>div,body.order-mode .cart-summary>label{grid-column:1/-1;margin-bottom:3px}
body.order-mode .cart-summary>div:not(.grand-total),body.order-mode .cart-summary>.discount-line{display:none}
body.order-mode .cart-summary .grand-total{display:flex;margin:0!important;padding:5px 1px 7px;border:0}
body.order-mode .cart-summary .grand-total span:before{content:"Tổng tiền";font-size:12px}
body.order-mode .cart-summary .grand-total span{font-size:0}
body.order-mode .cart-summary .grand-total strong{font-size:18px!important;color:#147fac!important}
body.order-mode .cart-summary .save-table-button{grid-column:1;min-height:45px;margin:0;border:0;border-radius:5px;background:#147fac;color:#fff}
body.order-mode .cart-summary .checkout-button{grid-column:1/-1;min-height:45px;margin:0;border-radius:5px;background:#147fac}
body.order-mode .cart-summary .checkout-button.mobile-pending-hidden{display:none}
body.order-mode .mobile-cancel-detail{grid-column:2;min-height:45px;margin:0;border-radius:5px;background:#df4c51;color:#fff}
body.order-mode .cart-panel[data-has-pending="false"] .mobile-cancel-detail{display:none!important}
body.order-mode .saved-table-banner{display:none}
}
/* Order confirmation, percentage discount and owner live-table editor. */
.discount-control{display:flex;align-items:center;gap:7px;color:var(--brand-dark);font-weight:800}.discount-control input{width:76px;height:36px;border:1px solid #cadce3;border-radius:8px;padding:0 9px;text-align:right;font-weight:800;color:var(--brand-dark);background:#fff}.discount-control input:focus{outline:0;border-color:#25a7dc;box-shadow:0 0 0 3px rgba(37,167,220,.12)}.discount-result strong{color:#bd5260}.item-confirmed{display:block;margin-top:5px;color:#71858f;font-size:9px;font-weight:500;line-height:1.4}.live-table-card[role=button]{cursor:pointer;transition:border-color .16s,box-shadow .16s,transform .16s}.live-table-card[role=button]:hover,.live-table-card[role=button]:focus-visible{outline:0;border-color:#49a8c8;box-shadow:0 8px 22px rgba(18,101,133,.13);transform:translateY(-1px)}.live-table-card li span small{display:block;margin-top:4px;color:#7a8d96;font-size:8px;line-height:1.35;white-space:normal}.live-table-detail-dialog{width:min(680px,94vw);padding:0}.live-table-detail-dialog form{padding:22px}.live-table-detail-dialog .modal-header p{margin:6px 0 0;color:var(--muted);font-size:10px}.owner-live-items{border:1px solid var(--line);border-radius:11px;overflow:hidden}.owner-live-items label{display:grid;grid-template-columns:minmax(0,1fr) 88px;align-items:center;gap:14px;padding:12px 14px;margin:0}.owner-live-items label+label{border-top:1px solid #e9eff1}.owner-live-items strong,.owner-live-items small{display:block}.owner-live-items strong{font-size:12px}.owner-live-items small{margin-top:5px;color:#72858e;font-size:9px;line-height:1.4}.owner-live-items input,.owner-live-discount input{width:100%;height:42px;border:1px solid #cddce2;border-radius:8px;padding:0 10px;text-align:right;font-weight:800;color:var(--brand-dark)}.owner-live-discount{display:flex!important;justify-content:space-between;align-items:center;margin:14px 0!important;padding:12px 14px;border-radius:10px;background:#f1f7f9;color:#536a75;font-size:11px;font-weight:800}.owner-live-discount>span:last-child{display:flex;align-items:center;gap:7px}.owner-live-discount input{width:86px;margin:0!important}.owner-live-totals{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden}.owner-live-totals span{padding:12px;color:var(--muted);font-size:9px}.owner-live-totals span+span{border-left:1px solid var(--line)}.owner-live-totals strong{display:block;margin-top:6px;color:var(--brand-dark);font-size:13px}.owner-live-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.owner-live-actions button{min-height:44px}.live-table-detail-dialog [data-owner-message]{min-height:18px;margin:10px 0 0;color:#b14452;font-size:10px}
@media(max-width:600px){.live-table-detail-dialog form{padding:15px}.owner-live-items label{grid-template-columns:minmax(0,1fr) 70px;padding:11px}.owner-live-totals{grid-template-columns:1fr}.owner-live-totals span+span{border-left:0;border-top:1px solid var(--line)}.owner-live-actions{grid-template-columns:1fr}.discount-control input{width:68px}}
/* Sii HRM / Staff entry points */
.system-entry-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}.system-entry-links>a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;min-width:0;padding:11px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;text-decoration:none;transition:.15s}.system-entry-links>a:hover{border-color:#34a9b3;background:#f1fbfb}.system-entry-links i{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--blue-soft);color:var(--brand);font-size:17px;font-style:normal}.system-entry-links span,.system-entry-links b,.system-entry-links small{display:block;min-width:0}.system-entry-links b{font-size:11px}.system-entry-links small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.35}.system-entry-links strong{color:#7f959e;font-size:20px}.hrm-nav{text-decoration:none}.pos-device-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border:1px solid #cbd8de;border-radius:6px;color:#1b566f;background:#fff;text-decoration:none;font-size:12px;font-weight:700}@media(max-width:560px){.system-entry-links{grid-template-columns:1fr}}

/* Tablet table operations and end-of-shift reconciliation. */
.table-order-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:0 15px 10px}.table-order-actions button{min-height:42px;border:1px solid #c9dce3;border-radius:8px;background:#f4fafc;color:var(--brand-dark);font-size:11px;font-weight:800}.table-order-actions button:active{background:#dff2f7}.cart-item-top{align-items:center}.cart-line-main{min-width:0}.cart-line-meta{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:7px}.cart-line-qty{min-width:34px;color:var(--brand-dark);font-size:11px;font-weight:800}.icon-remove{flex:0 0 40px;width:40px;height:40px;border:0;border-radius:9px;background:#fff0f1;color:#bd4250;font-size:20px;font-weight:500}.icon-remove:active{background:#fbdcde}.item-confirmed.pending{color:#a26d2a}.table-action-dialog{width:min(520px,94vw);padding:20px}.table-action-dialog .modal-header p{margin:6px 0 0;color:var(--muted);font-size:11px}.table-action-note{margin:0 0 14px;padding:10px 12px;border-radius:9px;background:#edf7fa;color:#496671;font-size:10px;line-height:1.5}.table-action-menu{display:grid;gap:9px}.table-action-menu button{min-height:58px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--brand-dark);font-size:13px;font-weight:800;text-align:left;padding:0 16px}.table-action-menu button:hover{border-color:#55b2c6;background:#f1fafc}.table-action-menu button.danger{color:#bd3f50;background:#fff5f5}.table-action-menu button:disabled{opacity:.42;cursor:not-allowed}.split-line-list{display:grid;gap:8px;max-height:42vh;overflow:auto;margin-bottom:14px}.split-line-list label{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:12px;padding:11px;border:1px solid var(--line);border-radius:10px}.split-line-list strong,.split-line-list small{display:block}.split-line-list strong{font-size:12px}.split-line-list small{margin-top:4px;color:var(--muted);font-size:9px}.split-line-list input{height:42px;width:100%;border:1px solid #cad8de;border-radius:8px;text-align:center;font-weight:800}.table-action-dialog select{width:100%;height:46px;border:1px solid #cad8de;border-radius:9px;padding:0 10px;background:#fff}.delete-table-warning{padding:14px;border:1px solid #f1cdd2;border-radius:10px;background:#fff4f5;color:#842f3a;line-height:1.55}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.dialog-actions button{min-height:46px}.close-cash-card{width:min(470px,94vw)}.close-cash-summary{display:grid;gap:5px;padding:15px;border-radius:11px;background:linear-gradient(135deg,#115c7a,#168491);color:#fff}.close-cash-summary span,.close-cash-summary small{color:#c8e4ea}.close-cash-summary strong{font-size:24px}.close-cash-field{display:grid;gap:7px;margin-top:14px;color:#52636c;font-size:11px;font-weight:700}.close-cash-field b{color:#bd3f50}.close-cash-field input,.close-cash-field textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px;color:var(--ink);outline:0}.close-cash-field input{height:50px;font-size:17px;font-weight:800}.close-cash-field textarea{resize:vertical}.close-cash-field input:focus,.close-cash-field textarea:focus{border-color:#36a7b4;box-shadow:0 0 0 3px rgba(21,183,160,.1)}.cash-difference{min-height:38px;margin-top:10px;padding:9px 11px;border-radius:8px;background:#f1f5f6;color:var(--muted);font-size:12px;font-weight:800}.cash-difference.balanced{background:#e8f7f2;color:#157b67}.cash-difference.positive{background:#edf6ff;color:#17699a}.cash-difference.negative{background:#fff0f1;color:#b53e4d}
.cart-header-actions{display:flex;align-items:center;gap:7px}.table-menu-button{display:grid;place-items:center;font-size:22px;line-height:1}.table-action-dialog:has(.target-table-grid){width:min(720px,94vw)}.target-table-section{margin:14px 0}.target-table-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.target-table-heading b{font-size:12px}.target-table-heading span{color:var(--muted);font-size:10px}.target-table-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-height:286px;overflow:auto;padding:2px}.target-table-card{min-height:72px;border:1px solid #d9e4e8;border-radius:10px;background:#fff;color:#415965;text-align:left;padding:10px;display:flex;flex-direction:column;justify-content:center;gap:6px}.target-table-card b{font-size:12px}.target-table-card span{font-size:9px;color:#71858e;line-height:1.35}.target-table-card.busy{background:#e8f6fa;border-color:#8dc8da;color:#0d5874}.target-table-card.selected{outline:3px solid rgba(21,183,160,.25);border-color:#13a58f;background:#e9f9f5}.target-table-card:disabled{opacity:.35;cursor:not-allowed;background:#eef1f2}.table-action-dialog [data-submit-table-action]{min-height:48px;margin-top:12px}.table-action-menu button span{display:block;margin-top:4px;color:#73858d;font-size:10px;font-weight:500}
@media(orientation:landscape) and (min-width:800px){body.dedicated-pos .table-action-dialog,body.dedicated-pos .close-cash-card{max-height:88dvh}.table-order-actions button{min-height:46px}.icon-remove{width:44px;height:44px;flex-basis:44px}}
@media(max-width:700px){.target-table-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:310px}.target-table-card{min-height:66px}}
