:root,[data-theme=dark]{--bg: #0b1222;--bg-elevated: #111a2e;--panel: #151f36;--panel-2: #1b2742;--panel-hover: #1f2c4b;--line: #27324e;--line-strong: #3a4771;--muted: #8b93a7;--muted-strong: #a6adc0;--text: #e7ecf3;--text-strong: #ffffff;--accent: #6aa5ff;--accent-strong: #84b6ff;--accent-ink: #081026;--accent-soft: rgba(106, 165, 255, .14);--accent-2: #34d399;--accent-2-ink: #052e20;--accent-2-soft: rgba(52, 211, 153, .14);--danger: #f87171;--danger-ink: #ffffff;--danger-soft: rgba(248, 113, 113, .14);--warn: #fbbf24;--warn-ink: #3a2a00;--warn-soft: rgba(251, 191, 36, .14);--shadow-xs: 0 1px 0 rgba(0, 0, 0, .18);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow-md: 0 2px 8px rgba(0, 0, 0, .32), 0 1px 2px rgba(0, 0, 0, .22);--shadow-lg: 0 10px 24px rgba(0, 0, 0, .38), 0 4px 8px rgba(0, 0, 0, .22);--shadow: var(--shadow-sm);color-scheme:dark}[data-theme=light]{--bg: #f7f8fb;--bg-elevated: #ffffff;--panel: #ffffff;--panel-2: #f3f5f9;--panel-hover: #eef1f7;--line: #e2e6ee;--line-strong: #c5ccd8;--muted: #616a7d;--muted-strong: #4a5160;--text: #0f172a;--text-strong: #0b1220;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-ink: #ffffff;--accent-soft: rgba(37, 99, 235, .08);--accent-2: #059669;--accent-2-ink: #ffffff;--accent-2-soft: rgba(5, 150, 105, .08);--danger: #dc2626;--danger-ink: #ffffff;--danger-soft: rgba(220, 38, 38, .08);--warn: #b45309;--warn-ink: #ffffff;--warn-soft: rgba(180, 83, 9, .08);--shadow-xs: 0 1px 0 rgba(15, 23, 42, .04);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 2px 8px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 24px rgba(15, 23, 42, .1), 0 4px 8px rgba(15, 23, 42, .05);--shadow: var(--shadow-sm);color-scheme:light}:root{--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--font-sans: "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--duration-fast: 90ms;--duration: .12s;--ease: cubic-bezier(.2, .7, .3, 1)}html,body{background:var(--bg);color:var(--text);margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{box-sizing:border-box}.tabular{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html,body,#root{height:100%}button{background:var(--accent);color:var(--accent-ink);border:0;padding:12px 18px;border-radius:var(--radius);font-size:15px;font-weight:600;cursor:pointer}button:hover{filter:brightness(1.1)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}button.danger{background:var(--danger);color:var(--danger-ink)}button.success{background:var(--accent-2);color:var(--accent-2-ink)}input[type=text],input[type=number]{background:var(--panel-2);color:var(--text);border:1px solid var(--line);padding:12px 14px;border-radius:var(--radius);font-size:15px;width:100%}input:focus{outline:2px solid var(--accent);outline-offset:1px}.app{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:auto 1fr;height:100vh;gap:12px;padding:12px}.topbar{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--panel);border-radius:var(--radius);border:1px solid var(--line)}.topbar .title{font-size:18px;font-weight:700}.topbar .meta{color:var(--muted);font-size:13px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;overflow:hidden;display:flex;flex-direction:column}.panel h2{margin:0 0 12px;font-size:16px;color:var(--muted);letter-spacing:.02em;text-transform:uppercase}.scanrow{display:flex;gap:8px;margin-bottom:12px}.scanrow input{flex:1}.cart{flex:1;overflow-y:auto;margin-top:4px}.cart .empty{color:var(--muted);padding:20px 0;text-align:center}.line{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line)}.line .name{font-weight:600}.line .sku{color:var(--muted);font-size:12px}.line .qty{color:var(--muted);font-size:13px}.line .right{text-align:right;font-variant-numeric:tabular-nums}.line .remove{background:transparent;color:var(--danger);border:0;padding:0;font-size:12px;cursor:pointer}.totals{border-top:2px solid var(--line);padding-top:12px;margin-top:8px;font-variant-numeric:tabular-nums}.totals .row{display:flex;justify-content:space-between;padding:4px 0}.totals .row.total{font-size:22px;font-weight:700;margin-top:8px}.totals .row.balance{color:var(--warn)}.right-col{display:flex;flex-direction:column;gap:12px;min-height:0}.tender{display:grid;gap:8px}.tender .row{display:flex;gap:8px;align-items:center}.tender .quick{display:flex;gap:6px;flex-wrap:wrap}.tender .quick button{padding:8px 12px;font-size:13px}.payments{flex:1;overflow-y:auto;margin-top:8px}.payment{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.payment .type{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.05em}.complete-bar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.complete-bar button{padding:18px;font-size:17px}.banner{padding:10px 14px;border-radius:var(--radius);font-size:14px;margin-bottom:10px}.banner.error{background:#f8717124;color:var(--danger);border:1px solid rgba(248,113,113,.3)}.banner.info{background:#6aa5ff1f;color:var(--accent);border:1px solid rgba(106,165,255,.3)}.banner.success{background:#34d3991f;color:var(--accent-2);border:1px solid rgba(52,211,153,.3)}.receipt{max-width:480px;margin:40px auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:30px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.receipt h2{text-align:center;margin:0 0 4px}.receipt .sub{text-align:center;color:var(--muted);font-size:13px;margin-bottom:20px}.receipt .rline{display:flex;justify-content:space-between;padding:4px 0;font-size:14px}.receipt .hr{border-top:1px dashed var(--line);margin:12px 0}.kbd{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;padding:2px 6px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;color:var(--muted)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 900px){.app{grid-template-columns:1fr;grid-template-rows:auto auto auto;height:auto;min-height:100vh}.panel{overflow:visible}.cart{max-height:50vh;overflow-y:auto}.right-col{overflow-y:auto}.payments{max-height:30vh;overflow-y:auto}}@media (max-width: 600px){.app{gap:8px;padding:8px}.topbar{flex-wrap:wrap;gap:6px 12px;padding:8px 10px}.topbar .title{flex:1 1 100%}.topbar .meta{flex:1 1 100%;font-size:12px}.panel{padding:12px}button{min-height:44px;padding:12px 18px}.tender .quick button{min-height:44px;padding:10px 14px;font-size:14px}.line .remove{min-height:32px;padding:4px 6px}.complete-bar{grid-template-columns:1fr;gap:8px}.complete-bar button{padding:16px;font-size:16px}input[type=text],input[type=number],input[type=date],input[type=email],input[type=tel],select,textarea,.scanrow input{font-size:16px}.totals .row.total{font-size:20px}.receipt{margin:16px auto;padding:20px;padding-inline:16px;border-radius:8px}}@media (hover: none){button:hover,.line .remove:hover{filter:none}}@media print{html,body,#root{height:auto;background:#fff!important;color:#000!important}.topbar,.app>.panel:not(.receipt),.right-col,.complete-bar,.scanrow,.banner{display:none!important}.app{display:block;height:auto;padding:0}.receipt{max-width:100%;margin:0 auto;padding:12px 16px;background:#fff!important;color:#000!important;border:0;border-radius:0}.receipt .sub{color:#333!important}.receipt .hr{border-top-color:#888!important}.offline-watermark{color:#78787859!important}.offline-bar,.offline-panel,.offline-banner{display:none!important}}.offline-bar{grid-column:1 / -1;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;font-size:13px}.offline-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.offline-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.offline-status .dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 auto}.offline-status .dot-online{background:var(--accent-2, #2ea676)}.offline-status .dot-offline{background:var(--danger, #d94444)}.offline-pill{display:inline-block;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px}.offline-pill-warn{background:#dca02826;border-color:#dca02880}.offline-actions{display:flex;gap:8px}.offline-actions button{padding:6px 12px;font-size:13px}.offline-banner{margin-top:8px;font-size:12px;color:var(--muted)}.offline-panel{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.offline-panel-row{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:4px}.offline-empty{color:var(--muted);font-size:12px;padding:6px 0}.offline-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.offline-table th,.offline-table td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line)}.offline-table th{color:var(--muted);font-weight:600}.offline-table td.mono{font-family:ui-monospace,Menlo,monospace}.offline-state-syncing td{opacity:.8}.offline-state-synced td{color:var(--muted)}.offline-state-failed td{color:var(--danger, #d94444)}.offline-state-voided td{color:var(--muted);text-decoration:line-through}.receipt-offline{position:relative}.offline-watermark{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%) rotate(-22deg);font-size:36px;font-weight:800;letter-spacing:4px;color:#a0a0a059;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:1}
