:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--line: #475569;--text: #f1f5f9;--muted: #94a3b8;--accent: #22c55e;--accent-2: #38bdf8;--danger: #ef4444;--warn: #f59e0b;--radius: 14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);overscroll-behavior:none}button{font:inherit;cursor:pointer}input{font:inherit}.app{display:flex;flex-direction:column;height:100dvh}.app-main{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.tabbar{display:flex;border-top:1px solid var(--line);background:var(--surface);padding-bottom:env(safe-area-inset-bottom)}.tabbar-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 0;text-decoration:none;color:var(--muted);font-size:11px}.tabbar-item.active{color:var(--accent)}.tabbar-icon{font-size:22px}.page{padding:16px 16px 24px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.page-header h1{font-size:22px;margin:0}h2{font-size:17px}.muted{color:var(--muted);font-size:13px}.section-title{display:flex;align-items:center;gap:8px;margin-top:20px}.badge{background:var(--warn);color:#1a1206;border-radius:999px;padding:1px 8px;font-size:13px}.primary,.pay-btn{background:var(--accent);color:#04210f;border:none;border-radius:var(--radius);padding:12px 16px;font-weight:700}.scan-toggle{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;font-weight:600}.scan-toggle.on{background:var(--danger);border-color:var(--danger);color:#fff}.scanner{margin-bottom:14px}.scanner-frame{position:relative;width:100%;aspect-ratio:4 / 3;background:#000;border-radius:var(--radius);overflow:hidden}.scanner-video{width:100%;height:100%;object-fit:cover}.scanner-reticle{position:absolute;top:18%;right:12%;bottom:18%;left:12%;border:3px solid rgba(34,197,94,.9);border-radius:12px;box-shadow:0 0 0 100vmax #00000040}.scanner-error{color:var(--warn);font-size:13px;margin:8px 2px}.scanner-manual{display:flex;gap:8px;margin-top:10px}.scanner-manual input{flex:1}.scanner-manual button{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:0 16px}input{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 12px;width:100%}input:focus{outline:2px solid var(--accent-2);border-color:transparent}label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);flex:1}.row{display:flex;gap:10px;align-items:flex-end}.register-search{position:relative;margin-bottom:12px}.search-results{list-style:none;margin:6px 0 0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.search-results button{width:100%;display:flex;justify-content:space-between;gap:10px;text-align:left;background:none;border:none;color:var(--text);padding:12px;border-bottom:1px solid var(--line)}.search-results li:last-child button{border-bottom:none}.cart{list-style:none;margin:0 0 14px;padding:0}.cart-empty{color:var(--muted);text-align:center;padding:28px 10px}.cart-line{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--surface-2)}.cart-line-main{display:flex;flex-direction:column;min-width:0}.cart-line-name{font-weight:600}.cart-line-total{font-variant-numeric:tabular-nums;min-width:64px;text-align:right}.cart-remove{background:none;border:none;color:var(--muted);font-size:16px}.qty{display:flex;align-items:center;gap:10px}.qty button,.product-stock button{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:18px;line-height:1}.qty span{min-width:22px;text-align:center;font-weight:600}.checkout{background:var(--surface);border-radius:var(--radius);padding:14px}.checkout-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.checkout-row label{flex-direction:row;align-items:center;gap:8px;flex:0 0 auto}.checkout-row label input{width:90px}.checkout-row.total{font-size:20px;font-weight:800;border-top:1px solid var(--line);padding-top:10px}.change{color:var(--accent);font-weight:700}.seg{display:flex;gap:8px;margin:6px 0 10px}.seg button{flex:1;background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px}.seg button.on{background:var(--accent-2);color:#04212e;border-color:transparent;font-weight:700}.pay-btn{width:100%;font-size:18px;padding:15px;margin-top:4px}.pay-btn:disabled{opacity:.5}.search-box{margin-bottom:12px}.product-list,.sales-list,.low-list{list-style:none;margin:0;padding:0}.product-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--surface-2)}.product-row.low{background:linear-gradient(90deg,rgba(245,158,11,.1),transparent)}.product-main{min-width:0;display:flex;flex-direction:column;gap:2px}.product-name{font-weight:600}.product-stock{display:flex;align-items:center;gap:8px}.product-stock span{min-width:26px;text-align:center;font-weight:700}.stock-low{color:var(--warn)}.product-actions{display:flex;gap:4px}.product-actions button{background:none;border:none;font-size:18px;padding:4px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:flex-end;z-index:50}.sheet{width:100%;max-height:92dvh;overflow-y:auto;background:var(--surface);border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.sheet h2{margin:0 0 4px}.sheet .row button{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:0 14px;height:44px;white-space:nowrap}.sheet-actions{display:flex;gap:10px;margin-top:6px}.sheet-actions button{flex:1;padding:13px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--text)}.sheet-actions .primary{border-color:transparent}.error-banner{background:#ef444426;color:#fecaca;border:1px solid var(--danger);border-radius:10px;padding:10px 12px;font-size:13px}.toast{position:fixed;left:50%;bottom:80px;transform:translate(-50%);background:var(--surface-2);color:var(--text);border:1px solid var(--line);padding:12px 18px;border-radius:999px;z-index:60;max-width:90%;box-shadow:0 8px 24px #0006;font-size:14px}.sale-row{border-bottom:1px solid var(--surface-2)}.sale-head{width:100%;display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;background:none;border:none;color:var(--text);padding:14px 0;text-align:left}.sale-method{color:var(--muted);font-size:12px;text-transform:uppercase}.sale-total{font-weight:700}.sale-items{list-style:none;margin:0 0 12px;padding:10px 12px;background:var(--surface);border-radius:12px}.sale-items li{display:flex;justify-content:space-between;padding:4px 0}.sale-items-sub{color:var(--muted);border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card{background:var(--surface);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:4px}.stat-value{font-size:24px;font-weight:800}.stat-label{color:var(--muted);font-size:13px}.low-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--surface-2)}.barcode-label{background:#fff;color:#000;padding:10px 14px;border-radius:8px;text-align:center;display:inline-block}.barcode-label-name{font-weight:700;margin-bottom:2px}.barcode-label-price{font-weight:700;margin-top:2px}.print-sheet{align-items:center}.print-area{display:flex;justify-content:center;padding:10px}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:340px;text-align:center}.login-logo{font-size:48px}.login h1{margin:8px 0 2px}.pin-dots{display:flex;gap:12px;justify-content:center;margin:20px 0}.pin-dots span{width:14px;height:14px;border-radius:50%;border:2px solid var(--line)}.pin-dots span.on{background:var(--accent);border-color:var(--accent)}.login-error{color:#fecaca;background:#ef444426;border:1px solid var(--danger);border-radius:10px;padding:8px;font-size:14px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.key{aspect-ratio:1 / 1;max-height:76px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:26px;font-weight:600}.key:active{background:var(--surface-2)}.key-ok{background:var(--accent);color:#04210f;border-color:transparent}.key-del{font-size:22px}.tabbar-logout{background:none;border:none}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.no-print{display:none}}
