@font-face{font-family:Anek Latin Variable;font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 125%;src:url(/_next/static/media/anek-latin-vietnamese-standard-normal.0e2e1014.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Anek Latin Variable;font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 125%;src:url(/_next/static/media/anek-latin-latin-ext-standard-normal.ed65de37.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Anek Latin Variable;font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 125%;src:url(/_next/static/media/anek-latin-latin-standard-normal.b0769434.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--paper:#eef0eb;--surface:#ffffff;--sunk:#f5f6f3;--ink:#1e2420;--ink-2:#3d4540;--muted:#5b655f;--line:#d3d8d1;--line-soft:#e6e9e3;--fill:#eceee9;--frame:#5c1a24;--frame-2:#74242f;--frame-ink:#f7ecea;--frame-muted:#d9b9b6;--go:#0f6b42;--go-hover:#0b5534;--go-soft:#e3f1e9;--go-line:#9fcdb3;--mark:#efae1b;--mark-soft:#fff3d1;--mark-ink:#6b4a00;--danger:#b3261e;--danger-soft:#fbe9e7;--danger-line:#eab1ab;--warn:#8a5a00;--warn-soft:#fff6e0;--warn-line:#ecd08a;--accent:var(--go);--accent-soft:var(--go-soft);--accent-ink:#fff;--ok:var(--go);--ok-soft:var(--go-soft);--bg:var(--paper);--r-lg:12px;--radius:10px;--radius-sm:7px;--font:"Anek Latin Variable","Segoe UI",system-ui,-apple-system,Roboto,"Noto Sans",Arial,sans-serif;--mono:ui-monospace,"Cascadia Mono",Menlo,Consolas,monospace;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;font-weight:420;line-height:1.45;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}a{color:var(--go);text-underline-offset:2px}h1,h2,h3{margin:0;line-height:1.15;font-stretch:110%}h1{font-size:26px;font-weight:720;letter-spacing:-.01em}h2{font-size:16px;font-weight:680}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--go);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.amt{font-stretch:115%;font-weight:740;letter-spacing:-.01em;white-space:nowrap}.rs{font-weight:500;margin-right:.12em;opacity:.8}.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.rail{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;background:var(--frame);color:var(--frame-ink);padding:18px 12px 14px}.brand{display:flex;align-items:center;gap:10px;min-width:0;padding:0 6px}.brand-mark{width:38px;height:38px;border-radius:9px;background:var(--mark);color:var(--frame);display:grid;place-items:center;font-weight:800;font-size:19px;font-stretch:120%;flex:0 0 auto}.brand-name{font-weight:700;font-size:16px;line-height:1.15;font-stretch:105%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.brand-sub{font-size:12.5px;color:var(--frame-muted)}.nav{flex-direction:column;gap:2px}.nav,.nav a{display:flex}.nav a{position:relative;align-items:center;gap:11px;min-height:44px;padding:0 12px;border-radius:8px;color:var(--frame-ink);text-decoration:none;font-weight:560;font-size:15.5px}.nav a svg{flex:0 0 auto;opacity:.8}.nav a:hover{background:var(--frame-2)}.nav a.active{background:#fff;color:var(--frame);font-weight:700}.nav a.active svg{opacity:1}.nav a.active:before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:4px;border-radius:0 3px 3px 0;background:var(--mark)}.nav a:focus-visible{outline-color:var(--mark)}.rail-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 6px 0;border-top:1px solid var(--frame-2)}.rail-foot .who-name{font-weight:650;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-foot .who-role{font-size:12.5px;color:var(--frame-muted)}.rail-foot .avatar{background:var(--frame-2);color:var(--frame-ink)}.signout{margin-left:auto;min-height:36px;padding:0 10px;border:1px solid var(--frame-2);border-radius:7px;background:transparent;color:var(--frame-ink);font-weight:560;font-size:13.5px;cursor:pointer}.signout:hover{background:var(--frame-2)}.signout:focus-visible{outline-color:var(--mark)}.content{min-width:0}.page{max-width:1360px;margin:0 auto;padding:24px 28px 40px}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 16px;margin-bottom:18px}.page-head .sub{color:var(--muted);font-size:14px;margin-top:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card-pad{padding:18px}.card-head{min-height:54px;border-bottom:1px solid var(--line-soft)}.card-foot,.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 18px}.card-foot{border-top:1px solid var(--line-soft);color:var(--muted);font-size:13.5px;flex-wrap:wrap}.stack{gap:14px}.stack,.stack-sm{display:flex;flex-direction:column}.stack-sm{gap:6px}.row{flex-wrap:wrap}.between,.row{display:flex;align-items:center;gap:8px}.between{justify-content:space-between}.split{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.split>.main{flex:999 1 600px;min-width:0}.split>.side{flex:1 1 360px;min-width:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px}.grid-3,.grid-4{display:grid;gap:8px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:var(--mono);font-size:.92em}.code{font-stretch:85%;font-weight:560;color:var(--muted);letter-spacing:.01em}.right{text-align:right}.strong{font-weight:680}.nowrap{white-space:nowrap}.hidden{display:none!important}.show-sm,.show-sm-inline{display:none}.prod-table{min-width:820px}.bills-table{min-width:900px}.eyebrow{font-size:13.5px;font-weight:600;color:var(--muted)}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>label,.label{font-size:13.5px;font-weight:600;color:var(--ink-2)}.input,.select,.textarea{width:100%;min-width:0;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:15px}.textarea{height:auto;min-height:72px;padding:10px 12px;resize:vertical}.input:hover,.select:hover,.textarea:hover{border-color:#b9c0b7}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--go);box-shadow:0 0 0 3px var(--go-soft)}.input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.input.big{height:54px;font-size:22px;font-weight:700;font-stretch:112%}.input.readonly{background:var(--sunk)}.hint{font-size:13px;color:var(--muted)}.check{display:flex;align-items:center;gap:9px;min-height:40px;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--go)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-weight:600;font-size:15px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--sunk);border-color:#b9c0b7}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--go);border-color:var(--go);color:#fff}.btn-primary:hover{background:var(--go-hover);border-color:var(--go-hover)}.btn-dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn-dark:hover{background:#000;border-color:#000}.btn-outline{border-color:var(--ink-2)}.btn-danger{color:var(--danger);border-color:var(--danger-line)}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-link{border:0;background:transparent;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;padding:0 6px}.btn-link:hover{background:transparent;color:var(--ink)}.btn-sm{min-height:36px;padding:0 12px;font-size:14px}.btn-lg{min-height:56px;font-size:17px;font-weight:700;padding:0 22px}.btn-block{width:100%}.icon-btn{width:40px;min-height:40px;padding:0;border:0;background:transparent;color:var(--muted)}.icon-btn:hover{background:var(--danger-soft);color:var(--danger)}.seg{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--fill);flex-wrap:wrap}.seg button{min-height:38px;padding:0 14px;border:0;border-radius:7px;background:transparent;font-weight:600;cursor:pointer;color:var(--ink-2)}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(30,36,32,.18);font-weight:700}.seg button:hover:not([aria-pressed=true]){color:var(--ink)}.choice{min-height:50px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-weight:600;cursor:pointer}.choice:hover{border-color:#b9c0b7}.choice[aria-pressed=true]{border:2px solid var(--go);background:var(--go-soft);color:var(--go);font-weight:750}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:12.5px;font-weight:650;background:var(--fill);color:var(--ink-2);white-space:nowrap}.badge-ok{background:var(--go-soft);color:var(--go)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-accent{background:var(--mark-soft);color:var(--mark-ink)}.alert{padding:11px 14px;border-radius:9px;border:1px solid;font-size:14px}.alert-warn{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}.alert-danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger)}.alert-ok{background:var(--go-soft);border-color:var(--go-line);color:var(--go)}.alert-info{background:var(--sunk);border-color:var(--line);color:var(--ink-2)}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:10px 14px;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;border-bottom:1px solid var(--line);background:var(--sunk)}.table td{padding:10px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#fafbf9}.table tr.selected td{background:var(--go-soft)}.table tr.void td{color:var(--muted);text-decoration:line-through}.table tr.void td.keep{text-decoration:none}.table .num{text-align:right;white-space:nowrap}.empty{padding:36px 16px;text-align:center;color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));grid-gap:0;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.kpi{padding:16px 18px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin:0 -1px -1px 0}.kpi.card{border-radius:0;border-width:0 1px 1px 0;border-color:var(--line-soft)}.kpi .eyebrow{font-size:13.5px}.kpi .v{font-size:27px;font-weight:740;font-stretch:115%;margin-top:4px;letter-spacing:-.01em;white-space:nowrap}.kpi .s{font-size:13px;color:var(--muted);margin-top:2px}.kpi.lead{background:var(--frame);color:var(--frame-ink)}.kpi.lead .eyebrow,.kpi.lead .s{color:var(--frame-muted)}.kpi.lead .up{color:#9ee0b8}.kpi.lead .down{color:#ffb4ab}.up{color:var(--go)}.down{color:var(--danger)}.bars{display:flex;align-items:flex-end;gap:3px;height:220px;padding:0 2px;border-bottom:1px solid var(--ink-2)}.bar-col{flex:1 1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.bar{width:100%;max-width:44px;background:#b9c4bc;border-radius:4px 4px 0 0;min-height:0}.bar-col:hover .bar{background:var(--go)}.bar-col .tip{display:none;position:absolute;bottom:calc(100% - 4px);left:50%;transform:translateX(-50%);z-index:2;background:var(--ink);color:#fff;font-size:13px;padding:4px 9px;border-radius:6px;white-space:nowrap;pointer-events:none}.bar-col:hover .tip{display:block}.bar-labels{display:flex;gap:3px;padding:5px 2px 0}.bar-labels span{flex:1 1;min-width:0;text-align:center;font-size:12px;color:var(--muted);overflow:hidden;font-stretch:85%}.meter{height:8px;border-radius:4px;background:var(--fill);overflow:hidden}.meter>div{height:100%;border-radius:4px}.scan-box{display:flex;align-items:center;gap:12px;height:58px;padding:0 16px;border:2px solid var(--ink-2);border-radius:11px;background:var(--surface)}.scan-box:focus-within{border-color:var(--go);box-shadow:0 0 0 4px var(--go-soft)}.scan-box input{flex:1 1;min-width:0;border:0;outline:none;font-size:19px;font-weight:500;background:transparent}.scan-box input::placeholder{color:#8a948e;font-weight:420}.kbd{font-size:11.5px;color:var(--muted);border:solid var(--line);border-width:1px 1px 2px;border-radius:5px;padding:0 6px;font-family:var(--mono);line-height:1.6}.suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:15;max-height:340px;overflow-y:auto;box-shadow:0 12px 30px rgba(30,36,32,.16)}.suggest button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;padding:11px 16px;border:0;border-bottom:1px solid var(--line-soft);background:var(--surface);text-align:left;cursor:pointer}.suggest button:hover,.suggest button[aria-selected=true]{background:var(--go-soft)}.quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));grid-gap:8px;gap:8px}.quick button{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer;text-align:left;min-height:66px}.quick button .qn{font-weight:600;font-size:14px;line-height:1.2;font-stretch:92%}.quick button .qp{font-weight:700;font-stretch:110%;font-size:14px;color:var(--go)}.quick button:hover{border-color:var(--go);background:#fbfdfb}.quick button:active{transform:translateY(1px)}.qty{display:inline-flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.qty button{width:38px;height:38px;border:0;background:var(--sunk);font-size:19px;cursor:pointer;line-height:1;color:var(--ink-2)}.qty button:hover:not(:disabled){background:var(--fill);color:var(--ink)}.qty button:disabled{opacity:.35;cursor:not-allowed}.qty input{width:58px;height:38px;text-align:center;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);font-weight:700;font-size:15.5px}.qty input:focus{outline:none;background:var(--go-soft)}.qty-unit{font-size:13px;color:var(--muted);margin-left:6px}.sum-row{gap:8px}.sum-row,.total-row{display:flex;justify-content:space-between}.total-row{align-items:baseline;border-top:1px dashed #9aa39d;padding-top:12px}.total-row .v{font-size:30px;font-weight:760;font-stretch:118%}.pay-amount{font-size:48px;font-weight:780;font-stretch:120%;line-height:1.05;letter-spacing:-.01em}.qr-frame{width:264px;max-width:100%;aspect-ratio:1;padding:12px;background:#fff;border:2px solid var(--ink);border-radius:14px}.qr-frame img{width:100%;height:100%;display:block;image-rendering:pixelated}.flash{animation:flash .7s ease-out}@keyframes flash{0%{background:var(--mark-soft)}to{background:transparent}}.flash td{animation:flash .7s ease-out}.ticket{position:relative;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:var(--r-lg) var(--r-lg) 0 0}.ticket:after{content:"";position:absolute;left:-1px;right:-1px;bottom:-9px;height:10px;background:linear-gradient(135deg,var(--surface) 50%,transparent 50%) 0 0 /14px 10px repeat-x,linear-gradient(225deg,var(--surface) 50%,transparent 50%) 0 0 /14px 10px repeat-x;filter:drop-shadow(0 1px 0 var(--line))}.ticket-head{padding:16px 18px 12px;border-bottom:1px dashed var(--line)}.ticket-body{padding:14px 18px 4px}.ticket-total{padding:14px 18px 22px}.ticket-total .label{font-size:14px;color:var(--muted);font-weight:600}.grand{font-size:46px;line-height:1;font-weight:790;font-stretch:122%;letter-spacing:-.015em;margin-top:2px}.grand .rs{font-size:.62em;opacity:.7;font-weight:600;margin-right:.08em;vertical-align:.12em}.pay-btn{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:62px;padding:0 20px;margin-top:20px;font-size:18px}.pay-btn .kbd{color:#cfe8da;border-color:#4e9a73}.lines-table{min-width:600px}.scan-row{flex-wrap:nowrap}.scan-field{flex:1 1 auto;min-width:0}.cam-btn{min-height:58px;flex:0 0 auto}.sticky-side{position:-webkit-sticky;position:sticky;top:16px}.lines-empty{padding:44px 20px;text-align:center;color:var(--muted)}.lines-empty svg{color:#a3ada6;margin-bottom:8px}.item-name{font-weight:640;line-height:1.25}.item-meta{font-size:13px;color:var(--muted);margin-top:1px;font-stretch:92%}.done-wrap{max-width:1040px;margin:0 auto;padding:28px 28px 40px}.done-band{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 22px;background:var(--go);color:#fff;border-radius:var(--r-lg) var(--r-lg) 0 0}.done-band .tick{width:46px;height:46px;border-radius:23px;background:#fff;display:grid;place-items:center;flex:0 0 auto;animation:pop .35s ease-out}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.done-band h1{font-size:24px;color:#fff}.done-band .meta{color:#cfe8da;font-size:14.5px;margin-top:2px}.done-band .bill-no{margin-left:auto;text-align:right}.done-band .bill-no .n{font-size:22px;font-weight:720;font-stretch:110%}.done-band .bill-no .l{color:#cfe8da;font-size:13px}.done-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);background:var(--surface);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r-lg) var(--r-lg)}.done-main{gap:18px;border-right:1px solid var(--line-soft)}.done-main,.done-side{padding:22px;display:flex;flex-direction:column}.done-side{gap:12px;background:var(--sunk);border-radius:0 0 var(--r-lg) 0}.print-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:var(--surface)}.print-opt:hover{border-color:#b9c0b7}.print-opt.on{border:2px solid var(--go);background:var(--go-soft);padding:11px 13px}.print-opt input{margin-top:4px;width:18px;height:18px;accent-color:var(--go);flex:0 0 auto}.print-device{justify-content:space-between;gap:10px;padding:10px 12px;border-radius:9px;background:var(--sunk)}.bulk-bar,.print-device{display:flex;align-items:center}.bulk-bar{position:-webkit-sticky;position:sticky;top:0;z-index:5;flex-wrap:wrap;gap:8px 14px;padding:10px 18px;background:var(--mark-soft);border-bottom:1px solid var(--line)}.private-toggle{padding:10px 14px;border:1px dashed var(--line);border-radius:10px;background:var(--sunk);align-items:flex-start}.private-toggle input{margin-top:3px}.change-due{padding:16px 18px;border-radius:10px;background:var(--mark-soft);border:2px solid var(--mark);color:var(--mark-ink)}.change-due .v{font-size:52px;line-height:1.05;font-weight:790;font-stretch:122%;color:var(--ink)}.change-due .l{font-weight:700;font-size:15px}.paid-row{display:flex;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.paid-row>div{flex:1 1;padding:12px 14px;border-right:1px solid var(--line-soft);min-width:0}.paid-row>div:last-child{border-right:0}.paid-row .l{font-size:13px;color:var(--muted)}.paid-row .v{font-size:20px;font-weight:720;font-stretch:112%}.mini-receipt{font-size:14px}.mini-receipt .r{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dotted var(--line)}.mini-receipt .r:last-child{border-bottom:0}.new-bill{min-height:60px;font-size:18px}.new-bill .kbd{color:#cfe8da;border-color:#4e9a73}.exp-form{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:12px;gap:12px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:560;font-size:14px;cursor:pointer}.chip:hover{border-color:var(--ink-2)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.spent{color:var(--danger)}.modal-backdrop{position:fixed;inset:0;background:rgba(30,20,22,.5);z-index:50;display:grid;place-items:center;padding:16px}.modal{width:100%;max-width:540px;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--surface);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.28)}.modal.wide{max-width:780px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:12px 12px 12px 20px;border-bottom:1px solid var(--line-soft)}.modal-head .icon-btn:hover{background:var(--fill);color:var(--ink)}.modal-body{padding:20px}.toast-wrap{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;background:var(--ink);color:#fff;padding:11px 18px;border-radius:9px;font-size:15px;font-weight:560;box-shadow:0 8px 24px rgba(0,0,0,.25);max-width:90vw}.toast.error{background:var(--danger)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--frame)}.auth-card{width:100%;max-width:440px;padding:26px;display:flex;flex-direction:column;gap:18px;border:0;box-shadow:0 24px 60px rgba(0,0,0,.3)}.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));grid-gap:10px;gap:10px}.person{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border:1px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer;min-height:112px;justify-content:center}.person:hover{border-color:var(--go);background:var(--go-soft)}.avatar{width:42px;height:42px;border-radius:21px;background:var(--fill);display:grid;place-items:center;font-weight:750;font-size:17px;font-stretch:115%;flex:0 0 auto}.input.pin{text-align:center;letter-spacing:.5em;font-size:26px}.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.keypad button{min-height:58px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font-size:24px;font-weight:650;font-stretch:112%;cursor:pointer}.keypad button:hover{background:var(--sunk)}.keypad button.ok{background:var(--go);border-color:var(--go);color:#fff;font-size:18px}.keypad button.ok:disabled{opacity:.4;cursor:not-allowed}.who{white-space:nowrap}@media (max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.rail{position:-webkit-sticky;position:sticky;top:0;z-index:20;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 12px}.brand{flex:1 1 auto;padding:0}.brand-mark{width:32px;height:32px;font-size:16px}.brand-name{font-size:15px;-webkit-line-clamp:1}.brand-sub{display:none}.rail-foot{margin:0;padding:0;border:0}.rail-foot .avatar,.rail-foot .who-role{display:none}.nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-gap:0;gap:0;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--frame);border-top:1px solid var(--frame-2);box-shadow:0 -6px 18px rgba(40,10,16,.18)}.nav a{flex-direction:column;justify-content:center;gap:3px;min-height:56px;padding:4px 2px;border-radius:10px;font-size:11.5px;font-weight:600;font-stretch:88%;color:var(--frame-muted);white-space:nowrap;text-align:center}.nav a svg{width:23px;height:23px;opacity:1}.nav a:hover{background:transparent;color:var(--frame-ink)}.nav a.active{background:transparent;color:#fff;font-weight:700}.nav a.active svg{color:var(--mark)}.nav a.active:before{left:28%;right:28%;top:-4px;bottom:auto;width:auto;height:3px;border-radius:0 0 3px 3px}.content{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.toast-wrap{bottom:calc(84px + env(safe-area-inset-bottom))}}@media (max-width:720px){.page{padding:16px 14px 32px}h1{font-size:22px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.pay-amount{font-size:38px}.grand{font-size:40px}.done-wrap{padding:14px}.done-grid{grid-template-columns:minmax(0,1fr)}.done-main{border-right:0;border-bottom:1px solid var(--line-soft)}.done-side{border-radius:0 0 var(--r-lg) var(--r-lg)}.done-band .bill-no{margin-left:0;text-align:left}.change-due .v{font-size:42px}.exp-form{grid-template-columns:minmax(0,1fr)}.kpi .v{font-size:23px}.hide-sm,.kbd{display:none}.lines-table{min-width:0}.lines-table thead{display:none}.lines-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"item amt" "qty del";align-items:center;grid-gap:10px 12px;gap:10px 12px;padding:12px 18px;border-bottom:1px solid var(--line-soft)}.lines-table tbody tr:last-child{border-bottom:0}.table.lines-table td{padding:0;border:0;background:transparent!important}.lines-table .c-item{grid-area:item}.lines-table .c-amt{grid-area:amt;align-self:start;font-size:17px!important}.lines-table .c-qty{grid-area:qty}.lines-table .c-del{grid-area:del;justify-self:end}.lines-table .c-del .icon-btn{width:44px;min-height:44px}.lines-table .item-name{font-size:16px}.scan-box{height:54px}.cam-btn{min-height:54px;width:54px;padding:0}.cam-label{display:none}.sticky-side{position:static}.show-sm{display:block}.show-sm-inline{display:inline}.prod-table{min-width:0}.prod-table tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"chk item price" "chk item edit";align-items:center;grid-gap:4px 12px;gap:4px 12px;padding:12px 18px;border-bottom:1px solid var(--line-soft)}.prod-table tbody tr:last-child{border-bottom:0}.table.prod-table td{padding:0;border:0}.prod-table .p-chk{grid-area:chk}.prod-table .p-item{grid-area:item}.prod-table .p-price{grid-area:price;font-size:16px}.prod-table .p-edit{grid-area:edit}.prod-table thead tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;padding:8px 18px;background:var(--sunk);border-bottom:1px solid var(--line)}.table.prod-table thead th{padding:0;border:0;background:transparent}.prod-table thead th:last-child{display:none}.bills-table{min-width:0}.bills-table thead{display:none}.bills-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"no amt" "act act";grid-gap:8px 12px;gap:8px 12px;padding:12px 18px;border-bottom:1px solid var(--line-soft)}.bills-table tbody tr:last-child{border-bottom:0}.table.bills-table td{padding:0;border:0}.bills-table .b-no{grid-area:no}.bills-table .b-amt{grid-area:amt;align-self:start;font-size:17px}.bills-table .b-act{grid-area:act}.bills-table.selectable tbody tr{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"sel no amt" "sel act act"}.bills-table .b-sel{grid-area:sel;align-self:start;padding-top:2px}.bills-table tbody tr.selected{background:var(--go-soft)}.bills-table tbody tr.selected td{background:transparent}.bills-table .b-act .btn-sm{min-height:34px;padding:0 10px}.bills-table.selectable thead{display:block}.bills-table.selectable thead tr{display:flex;align-items:center;gap:10px;padding:8px 18px}.bills-table.selectable thead th:not(.b-sel){display:none}.bills-table.selectable thead th.b-sel{padding:0;border:0;background:transparent;width:auto!important}.bills-table.selectable thead th.b-sel:after{content:"Select all on page";margin-left:8px;font-size:13px;color:var(--muted)}.bulk-bar{top:56px}.bills-table .b-act .row{justify-content:flex-start!important;flex-wrap:wrap!important}.period-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.period-seg button{padding:0 4px;font-size:14px}.page-head>.row{width:100%}.page-head>.row>.btn{flex:1 1 auto;min-height:40px;font-size:14px;padding:0 10px}.bar-labels.dense span:nth-child(2n){visibility:hidden}.side,.sticky-side{scroll-margin-top:70px}.table td,.table th{padding-left:10px;padding-right:10px}}@media print{.no-print,.rail{display:none!important}.shell{display:block}body{background:#fff}}