@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-wght-normal-E0tuGl4L.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f5f3ee;--ink:#1f2328;--muted:#5f6368;--line:#e2ded5;--card:#fff;--accent:#ffc20e;--accent-press:#e6ad00;--ok:#1e7f4f;--ok-bg:#e5f3ec;--warn:#8a5a00;--warn-bg:#fff4d1;--err:#c62828;--err-bg:#fbe9e9;--radius:12px;--bar-h:76px;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:Archivo Variable,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{min-height:100%;margin:0}body{line-height:1.4}h1,h2,h3{letter-spacing:-.01em;margin:0 0 8px;line-height:1.15}h1{font-size:26px;font-weight:800}h2{font-size:20px;font-weight:750}p{margin:0 0 8px}button{font:inherit;color:inherit}a{color:inherit}.muted{color:var(--muted)}.center{text-align:center;padding:24px}.brand{letter-spacing:.02em;text-transform:uppercase;font-size:20px;font-weight:900}.brand-dot{background:var(--accent);border-radius:2px;width:10px;height:10px;margin-right:8px;display:inline-block}.num{font-variant-numeric:tabular-nums}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.btn{border-radius:var(--radius);border:1px solid var(--line);background:var(--card);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:16px;font-weight:650;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}.btn-primary:active{background:var(--accent-press)}.btn-dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn-danger{background:var(--err);border-color:var(--err);color:#fff}.btn-ghost{background:0 0;border-color:#0000}.btn-block{width:100%}.btn-lg{min-height:60px;font-size:18px;font-weight:800}.btn-icon{width:48px;padding:0}.input,select.input,textarea.input{border:1px solid var(--line);border-radius:var(--radius);width:100%;min-height:48px;font:inherit;color:var(--ink);background:#fff;padding:10px 14px;font-size:16px}.input:focus,.btn:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.field{gap:6px;margin-bottom:14px;font-size:14px;font-weight:600;display:grid}.form-error{color:var(--err);margin-top:10px;font-weight:600}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.stack{align-content:start;gap:12px;display:grid}.pill{border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.pill-ok{background:var(--ok-bg);color:var(--ok)}.pill-warn{background:var(--warn-bg);color:var(--warn)}.pill-err{background:var(--err-bg);color:var(--err)}.notice{border-radius:var(--radius);align-items:flex-start;gap:10px;padding:12px 14px;font-weight:600;display:flex}.notice-warn{background:var(--warn-bg);color:var(--warn)}.notice-err{background:var(--err-bg);color:var(--err)}.notice-ok{background:var(--ok-bg);color:var(--ok)}.toaster{left:0;right:0;top:calc(12px + env(safe-area-inset-top));pointer-events:none;z-index:50;justify-items:center;gap:8px;display:grid;position:fixed}.toast{background:var(--ink);color:#fff;border-radius:var(--radius);padding:12px 18px;font-weight:650}.toast-err{background:var(--err)}.login{place-items:center;min-height:100dvh;padding:20px;display:grid}.login-card{gap:4px;width:min(400px,100%);padding:24px;display:grid}.login-card h1{margin:12px 0 16px}.client{max-width:560px;min-height:100dvh;padding-bottom:calc(var(--bar-h) + 16px);margin:0 auto}.client-head{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);padding:14px 16px 10px;position:sticky;top:0}.client-head .row{justify-content:space-between}.search{margin-top:10px;position:relative}.search .input{padding-left:44px}.search svg{color:var(--muted);position:absolute;top:13px;left:14px}.chips{scrollbar-width:none;gap:8px;padding:10px 0 2px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;flex:none;min-height:40px;padding:0 14px;font-size:14px;font-weight:650}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.plist{gap:10px;margin:0;padding:8px 16px;list-style:none;display:grid}.pitem{border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;text-align:left;background:#fff;grid-template-columns:1fr auto;gap:4px 12px;width:100%;padding:14px;display:grid}.pitem-name{font-size:15px;font-weight:700}.pitem-price{white-space:nowrap;font-size:17px;font-weight:800}.pitem-meta{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;font-size:13px;display:flex}.loc{align-items:center;gap:4px;display:inline-flex}.bottom-bar{z-index:20;background:var(--bg);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0}.bottom-bar-inner{gap:10px;max-width:560px;margin:0 auto;display:flex}.cart-pill{flex-direction:column;gap:0;min-width:120px;line-height:1.1}.cart-pill small{color:var(--muted);font-size:12px;font-weight:600}.scan-screen{color:#fff;z-index:30;background:#111;grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.scan-top{justify-content:space-between;align-items:center;padding:12px 12px 8px;display:flex}.scan-top .btn{color:#fff;background:#ffffff1f;border-color:#0000}.scanner{position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%;display:block}.scanner-frame{border:3px solid var(--accent);border-radius:16px;position:absolute;inset:25% 8%;box-shadow:0 0 0 100vmax #00000059}.scanner-error{color:#fff;padding:24px;font-weight:600}.scan-bottom{padding:12px 16px calc(16px + env(safe-area-inset-bottom));background:#111;gap:10px;display:grid}.scan-bottom .input{color:#fff;background:#222;border-color:#333}.scan-msg{min-height:24px;font-weight:650}.scan-msg-err{color:#ff8a80}.sheet-backdrop{z-index:40;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;padding:20px 16px calc(20px + env(safe-area-inset-bottom));max-height:92dvh;color:var(--ink);border-radius:18px 18px 0 0;gap:14px;display:grid;overflow:auto}.sheet-price{font-size:32px;font-weight:850}.sheet-price small{color:var(--muted);font-size:16px;font-weight:600}.qty{align-items:center;gap:8px;display:flex}.qty .input{text-align:center;width:96px;min-width:0;font-size:18px;font-weight:750}.qty .unit{color:var(--muted);min-width:32px;font-weight:650}.cart-lines{gap:10px;margin:0;padding:0;list-style:none;display:grid}.cart-line{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:10px;padding:14px;display:grid}.cart-line-err{border-color:var(--err)}.total-row{justify-content:space-between;align-items:baseline;padding:8px 2px;font-size:22px;font-weight:850;display:flex}.handoff{text-align:center;justify-items:center;gap:14px;padding:20px 16px;display:grid}.handoff-code{letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:900}.handoff .card{justify-items:center;gap:12px;width:100%;display:grid}.handoff svg{max-width:100%}.staff-top{background:var(--ink);color:#fff;align-items:center;gap:12px;padding:10px 20px;display:flex}.staff-top a,.staff-top button{color:#fff}.staff-top nav{flex-wrap:wrap;gap:4px;display:flex}.staff-top nav a{border-radius:8px;padding:8px 12px;font-size:15px;font-weight:650;text-decoration:none}.staff-top nav a[aria-current=page]{background:#ffffff24}.staff-top .btn{background:0 0;border-color:#ffffff4d;min-height:40px}.casa{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:16px;padding:16px 20px;display:grid}.casa-scan .input{min-height:56px;font-size:20px;font-weight:650}.casa-panel{gap:14px;display:grid;position:sticky;top:16px}.casa-total{text-align:right;font-size:40px;font-weight:900}.seg{border:1px solid var(--line);border-radius:var(--radius);background:#fff;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;overflow:hidden}.seg button{cursor:pointer;background:0 0;border:0;min-height:48px;font-weight:700}.seg button[aria-pressed=true]{background:var(--ink);color:#fff}.table{border-collapse:collapse;border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:100%;overflow:hidden}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px 12px;font-size:15px}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#faf9f6;font-size:13px}.table td.r,.table th.r{text-align:right}.table tr.click{cursor:pointer}.table tr.click:hover td{background:#fbfaf7}.line-warn td{background:var(--warn-bg)}.line-note{color:var(--warn);font-size:13px;font-weight:650}.page{gap:16px;max-width:1200px;margin:0 auto;padding:16px 20px;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.receipt{background:#fff;border:1px dashed #bbb;width:80mm;max-width:100%;margin:0 auto;padding:14px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.35}.receipt .c{text-align:center}.receipt .rr{justify-content:space-between;gap:8px;display:flex}.receipt hr{border:0;border-top:1px dashed #999;margin:8px 0}.invoice{border:1px solid var(--line);background:#fff;max-width:210mm;margin:0 auto;padding:28px}.labels{background:#fff;grid-template-columns:repeat(3,1fr);gap:0;width:210mm;display:grid}.label{border:1px dashed #ccc;grid-template-rows:auto auto 1fr;height:37mm;padding:3mm 4mm;display:grid;overflow:hidden}.label-name{max-height:2.4em;font-size:11px;font-weight:700;line-height:1.2;overflow:hidden}.label-price{font-size:20px;font-weight:900}.label svg{width:100%;height:16mm}@media (width<=1023px){.casa{grid-template-columns:1fr}.casa-panel{position:static}.grid-2{grid-template-columns:1fr}}@media print{body{background:#fff}.no-print,.staff-top,.toaster{display:none!important}.print-only-area{padding:0!important}.receipt{border:0}.label{border-color:#0000}@page{margin:8mm}}.table td.num,.table td .num{white-space:nowrap}.client-top{background:var(--ink);color:#fff;z-index:10;padding-top:env(safe-area-inset-top);position:sticky;top:0}.client-top-inner{justify-content:space-between;align-items:center;max-width:560px;margin:0 auto;padding:14px 16px;display:flex}.client-top-tag{color:var(--ink);background:var(--accent);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:650}.empty{text-align:center;justify-items:center;gap:14px;padding:28px 20px;display:grid}.empty h1{margin:6px 0 0;font-size:28px}.empty>p{max-width:320px;margin:0}.empty-icon,.done-icon{background:var(--accent);width:84px;height:84px;color:var(--ink);border-radius:50%;place-items:center;display:grid}.done-icon{background:var(--ok);color:#fff}.steps{text-align:left;gap:10px;width:100%;margin:8px 0;padding:0;list-style:none;display:grid}.steps li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;padding:12px 14px;font-weight:600;display:flex}.step-n{background:var(--ink);color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:15px;font-weight:800;display:grid}.section-head{justify-content:space-between;align-items:baseline;display:flex}.section-head h1{margin:0}.cart-line-top{align-items:flex-start;gap:8px;display:flex}.cart-line-top .btn-icon{margin:-8px -8px 0 0}.cart-line-name{margin-bottom:2px;font-size:16px;line-height:1.3;display:block}.cart-line-bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}.cart-line-bottom .qty .input{width:64px}.cart-line-total{white-space:nowrap;font-size:18px}.btn-dashed{background:0 0;border-style:dashed;border-width:2px}.bar-total{align-content:center;min-width:110px;display:grid}.bar-total small{color:var(--muted);font-size:13px;font-weight:600}.bar-total strong{font-size:22px;font-weight:850}.pay-row{justify-content:space-between;align-items:baseline;font-size:18px;font-weight:700;display:flex!important}.pay-row strong{font-size:24px;font-weight:850}.pages{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.page-thumb{aspect-ratio:3/4;border-radius:var(--radius);border:1px solid var(--line);background:#fff;position:relative;overflow:hidden}.page-thumb img{object-fit:cover;width:100%;height:100%;display:block}.page-thumb .btn{background:#ffffffeb;width:36px;min-height:36px;position:absolute;top:6px;right:6px}label.btn input[hidden]{display:none}.rline .field span,.field>span{color:var(--muted);margin-bottom:4px;font-size:13px;font-weight:650;display:block}.rline-skip{opacity:.55}.match{border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.match small{font-size:13px;font-weight:750}.match-name{font-weight:650;line-height:1.3}.match .btn{min-height:40px;padding:0 12px}.match-ok{background:var(--ok-bg);color:var(--ok)}.match-ok .match-name{color:var(--ink)}.match-check{background:var(--warn-bg);color:var(--warn)}.match-check .match-name{color:var(--ink)}.match-new{color:var(--ink);background:#eceae4}@keyframes soft-pulse{50%{transform:scale(.94)}}.spin-soft{animation:1.4s ease-in-out infinite soft-pulse}.rline select.input{min-height:48px}
