:root{
 --primary:#0b6b4f;--primary-700:#07533d;--primary-900:#073b2d;--accent:#c99a2e;--accent-soft:#fff4d6;
 --page:#f3f6f4;--surface:#fff;--surface-2:#edf3f0;--surface-3:#f8faf9;--text:#17231f;--muted:#66756f;
 --border:#d8e2dd;--nav-text:#40544c;--active:#e2f2eb;--danger:#b42318;--warning:#b54708;--success:#067647;
 --shadow-sm:0 2px 8px rgba(7,59,45,.06);--shadow:0 10px 28px rgba(7,59,45,.09);--radius:14px;color-scheme:light
}
:root[data-theme="ocean"]{--primary:#1769aa;--primary-700:#125487;--primary-900:#113a5d;--accent:#d19a2a;--active:#e5f2fb;--surface-2:#eaf3f9;--shadow:0 10px 28px rgba(17,58,93,.09)}
:root[data-theme="royal"]{--primary:#6648a3;--primary-700:#513783;--primary-900:#342356;--accent:#d0a23d;--active:#eee8f8;--surface-2:#f0ebf7;--shadow:0 10px 28px rgba(52,35,86,.09)}
:root[data-theme="sunset"]{--primary:#b84b29;--primary-700:#933c21;--primary-900:#612819;--accent:#e5a62e;--active:#fbe9df;--surface-2:#f8eee8;--shadow:0 10px 28px rgba(97,40,25,.09)}
:root[data-mode="dark"]{--page:#101714;--surface:#19231f;--surface-2:#24322c;--surface-3:#1d2924;--text:#eef5f1;--muted:#a5b5ae;--border:#34463e;--nav-text:#cad8d2;--active:#284238;--shadow-sm:0 2px 8px rgba(0,0,0,.24);--shadow:0 10px 30px rgba(0,0,0,.3);color-scheme:dark}
*{box-sizing:border-box}html{min-width:320px;background:var(--page)}
body{margin:0;background:var(--page);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-underline-offset:3px}a:hover{color:var(--primary-700)}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 72%,white);outline-offset:2px}
.navbar{min-height:68px;background:linear-gradient(110deg,var(--primary-900),var(--primary));box-shadow:0 1px 0 rgba(255,255,255,.1);z-index:1040}
.brand-lockup{display:flex;align-items:center;gap:.65rem;color:#fff;text-decoration:none;min-width:0}.brand-lockup:hover{color:#fff}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border:1px solid rgba(255,255,255,.28);border-radius:10px;background:rgba(255,255,255,.1);color:var(--accent);font-weight:900}.brand-name{display:block;font-weight:800;letter-spacing:.01em;line-height:1.05}.brand-subtitle{display:block;color:rgba(255,255,255,.72);font-size:.7rem;font-weight:500}
.navbar-user{display:flex;align-items:center;gap:.55rem;color:#fff}.navbar-user-copy{line-height:1.05;text-align:right}.navbar-user-copy small{display:block;color:rgba(255,255,255,.7);margin-top:.25rem}.theme-picker{width:124px;background:#fff;color:#17231f;border:0}.navbar .btn{min-height:36px}
.sidebar{position:fixed;top:68px;bottom:0;width:260px;background:var(--surface);border-right:1px solid var(--border);overflow:hidden;z-index:1035}.sidebar .offcanvas-body{height:100%;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;overscroll-behavior:contain}.sidebar .offcanvas-body::-webkit-scrollbar{width:6px}.sidebar .offcanvas-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}
.nav-section{padding:.8rem 1rem .3rem;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.sidebar .nav-link{display:flex;align-items:center;gap:.45rem;color:var(--nav-text);border-radius:10px;padding:.64rem .75rem;margin:.08rem .65rem;font-weight:520;transition:background-color .12s,color .12s}.sidebar .nav-link i{display:grid;place-items:center;width:1.65rem;font-size:1rem}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:var(--active);color:var(--primary);font-weight:750}.sidebar .nav-link.active{box-shadow:inset 3px 0 0 var(--primary)}.sidebar-footer{padding:1rem 1.4rem;color:var(--muted);font-size:.72rem;border-top:1px solid var(--border)}
.main-content{padding-top:68px;margin-left:260px;min-height:100vh}.main-content>.container-fluid{max-width:1600px;padding:28px 30px 48px}h1,h2,h3,h4,h5,h6{color:var(--text);letter-spacing:-.02em}h3{font-size:1.7rem;font-weight:780}.page-kicker{color:var(--primary);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.card,.modal-content,.list-group-item{background:var(--surface);color:var(--text);border-color:var(--border)}.card{border:1px solid color-mix(in srgb,var(--border) 72%,transparent);box-shadow:var(--shadow-sm);border-radius:var(--radius);overflow:hidden}.card-header{min-height:50px;display:flex;align-items:center;padding:.85rem 1.1rem;border-color:var(--border)}.card-header.bg-white{background:var(--surface)!important}
.stat-card{position:relative;border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:1.1rem!important}.stat-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--primary)}.stat-card i{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--active)}.stat-card .fs-4{font-size:1.48rem!important;letter-spacing:-.035em}.metric-note{font-size:.75rem;color:var(--muted)}.quick-actions{display:flex;gap:.55rem;flex-wrap:wrap}.quick-actions .btn{display:inline-flex;align-items:center;gap:.35rem}
.btn{border-radius:9px;font-weight:650}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover,.btn-primary:focus{background:var(--primary-700);border-color:var(--primary-700)}.btn-outline-primary{color:var(--primary);border-color:var(--primary)}.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary)}.btn-lg{min-height:50px}.btn-icon{display:inline-grid;place-items:center;width:38px;height:38px;padding:0}
.badge{font-weight:700;letter-spacing:.01em}.status-badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.32rem .62rem;font-size:.74rem;font-weight:800}.status-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status-online,.status-accepted{color:var(--success);background:#e9f8f1}.status-pending,.status-synchronizing{color:var(--warning);background:#fff3e4}.status-conflict,.status-rejected,.status-offline{color:var(--danger);background:#feeceb}
.table-responsive{border-radius:inherit;scrollbar-width:thin}.table{margin:0;--bs-table-bg:var(--surface);--bs-table-color:var(--text);--bs-table-border-color:var(--border);font-size:.9rem}.table thead th{background:var(--surface-2);color:var(--text);white-space:nowrap;font-size:.75rem;letter-spacing:.035em;text-transform:uppercase;padding:.78rem .85rem;border-bottom-width:1px}.table tbody td{padding:.78rem .85rem;vertical-align:middle}.table tbody tr:hover>*{background:color-mix(in srgb,var(--active) 36%,var(--surface))}.table .money{font-weight:750}.empty-state{padding:3rem 1rem;text-align:center;color:var(--muted)}
.form-control,.form-select{min-height:42px;background-color:var(--surface);color:var(--text);border-color:var(--border);border-radius:9px}.form-control:focus,.form-select:focus{background-color:var(--surface);color:var(--text);border-color:var(--primary);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--primary) 16%,transparent)}.form-control::placeholder{color:var(--muted)}.form-label{font-size:.84rem;font-weight:700;color:var(--text)}.form-hint{font-size:.75rem;color:var(--muted)}
.modal-content{border:0;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.22)}.modal-header,.modal-footer{border-color:var(--border);padding:1rem 1.2rem}.modal-body{padding:1.2rem}.alert{border-radius:11px;border-width:1px}.money{font-variant-numeric:tabular-nums;white-space:nowrap}
.sync-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .85rem;margin-bottom:1rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm)}.sync-copy{display:flex;align-items:center;gap:.6rem;min-width:0}.sync-copy small{color:var(--muted)}.sync-actions{display:flex;align-items:center;gap:.55rem}.pending-pill{display:inline-flex;align-items:center;gap:.3rem;background:var(--surface-2);border-radius:999px;padding:.3rem .6rem;font-size:.78rem;font-weight:750}
.pos-search{min-height:58px;font-size:1.08rem;padding:.8rem 1rem;border-width:2px}.pos-catalogue,.pos-cart-panel{padding:1rem}.pos-cart-panel{position:sticky;top:86px}.product{height:100%;min-height:116px!important;padding:.85rem!important;border-color:var(--border)!important;border-radius:11px!important;background:var(--surface-3)!important;transition:border-color .12s,box-shadow .12s,transform .12s}.product:hover,.product:focus{border-color:var(--primary)!important;box-shadow:0 7px 18px rgba(7,83,61,.1);transform:translateY(-1px)}.product strong{color:var(--primary);font-size:1.03rem}.product .text-warning{color:var(--warning)!important}.cart-total{padding-top:.85rem;border-top:1px solid var(--border)}.cart-grand-total{font-size:1.45rem}.keyboard-hint{display:inline-flex;gap:.3rem;align-items:center;color:var(--muted);font-size:.72rem}.keyboard-hint kbd{background:var(--surface-2);color:var(--text);border:1px solid var(--border);box-shadow:none}
.login-page{min-height:100vh;background:radial-gradient(circle at 10% 10%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 32%),linear-gradient(145deg,var(--primary-900),var(--primary) 58%,#168666);padding:1rem}.login-shell{width:min(100%,1020px);min-height:620px;display:grid;grid-template-columns:1.05fr .95fr;background:var(--surface);border-radius:22px;overflow:hidden;box-shadow:0 28px 90px rgba(3,35,26,.3)}.login-brand{position:relative;padding:3.5rem;color:#fff;background:linear-gradient(145deg,rgba(5,44,33,.96),rgba(11,107,79,.93));overflow:hidden}.login-brand:after{content:"";position:absolute;right:-90px;bottom:-120px;width:320px;height:320px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.04),0 0 0 90px rgba(255,255,255,.025)}.login-brand-mark{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(255,255,255,.28);border-radius:15px;background:rgba(255,255,255,.1);color:var(--accent);font-size:1.35rem;font-weight:900}.login-brand h1{color:#fff;font-size:2.35rem;font-weight:850;margin-top:4.8rem}.login-brand p{max-width:390px;color:rgba(255,255,255,.78);font-size:1.05rem}.login-benefits{display:grid;gap:.75rem;margin-top:2rem}.login-benefits span{display:flex;gap:.6rem;align-items:center}.login-benefits i{color:var(--accent)}.login-form-panel{display:flex;align-items:center;padding:3.5rem}.login-form{width:100%;max-width:370px;margin:auto}.login-form h2{font-weight:820}.login-form .form-control{min-height:50px}.login-security{margin-top:1.2rem;color:var(--muted);font-size:.78rem;text-align:center}
.report-bars{display:flex;align-items:flex-end;gap:.55rem;height:145px;padding:1rem 0 .25rem}.report-bar{display:flex;flex:1;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:.35rem}.report-bar-fill{width:min(38px,80%);min-height:4px;border-radius:6px 6px 2px 2px;background:linear-gradient(var(--accent),var(--primary))}.report-bar small{font-size:.65rem;color:var(--muted)}
.offline-page{min-height:100vh;background:var(--page)}.offline-page .bi{display:none}.offline-shell{width:min(100%,1180px);margin:auto;padding:1.25rem}.offline-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.offline-brand{display:flex;align-items:center;gap:.65rem;font-weight:850}.offline-brand .brand-mark{background:var(--primary-900)}.offline-banner{display:flex;gap:.75rem;align-items:flex-start;padding:1rem;background:var(--accent-soft);color:#694b05;border:1px solid #f0d78e;border-radius:12px}.offline-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:1rem}.offline-catalogue,.offline-cart,.offline-pending{padding:1rem}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.product-card{min-height:104px;padding:.8rem;text-align:left;color:var(--text);background:var(--surface-3);border:1px solid var(--border);border-radius:11px}.product-card:hover{border-color:var(--primary)}.product-card strong,.product-card span,.product-card small{display:block}.product-card strong{font-size:.94rem}.product-card .price{margin-top:.35rem;color:var(--primary);font-size:1rem;font-weight:800}.offline-line{display:flex;gap:.65rem;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--border)}.offline-line input{width:72px}.totals{margin-left:auto;padding-top:.75rem}.totals div{display:flex;justify-content:space-between;gap:2rem;padding:.2rem 0}.totals .grand{margin-top:.35rem;padding-top:.6rem;border-top:1px solid var(--border);font-size:1.2rem}.pending-list{display:grid;gap:.55rem;padding:0;list-style:none;overflow-wrap:anywhere}.pending-list li{padding:.75rem;background:var(--surface-2);border-radius:9px;font-size:.82rem}
.receipt-page{margin:0;padding:24px;background:#e9eeeb;color:#111}.receipt-page .receipt{box-sizing:border-box;width:80mm;max-width:100%;margin:auto;padding:5mm 4mm;background:#fff;color:#111;font:600 12.5px/1.42 Arial,Helvetica,sans-serif;box-shadow:0 8px 30px rgba(0,0,0,.16)}.receipt-page.paper-58 .receipt{width:58mm;padding:4mm 3mm;font-size:10.5px}.receipt-page.paper-a4 .receipt{width:190mm;min-height:260mm;padding:16mm 18mm;font-size:14px}.receipt-header{text-align:center}.receipt-header h1{margin:0 0 2px;color:#111;font-size:18px;font-weight:850;text-transform:uppercase;letter-spacing:.3px}.receipt-tagline{margin-bottom:8px}.receipt-store{font-weight:800}.receipt-rule{margin:8px 0;border-top:2px dashed #000}.receipt-meta>div{display:flex;justify-content:space-between;gap:8px}.receipt-page .receipt table{width:100%;border-collapse:collapse;color:#111;font:inherit}.receipt th{padding:0 0 5px;border-bottom:2px solid #000;text-align:left;font-weight:800}.receipt td{padding:5px 0;vertical-align:top}.receipt-items small{display:block;color:#000;font-size:10px}.receipt-qty{width:12%;text-align:center!important}.receipt-money{width:30%;text-align:right!important;white-space:nowrap}.receipt-totals td:last-child{text-align:right;white-space:nowrap}.receipt-total td{padding-top:7px;font-size:17px;font-weight:850}.receipt-footer{text-align:center}.receipt-footer p{margin:2px 0}.receipt-powered{margin-top:9px;padding-top:7px;border-top:2px dashed #000;font-weight:800}.receipt-barcode-wrap{margin:12px auto 6px;padding:8px 3px 5px;background:#fff}.receipt-barcode{display:block;width:100%;height:18mm;shape-rendering:crispEdges}.receipt-barcode-text{margin-top:3px;color:#000;font:700 10px/1.2 "Courier New",monospace;letter-spacing:.4px;overflow-wrap:anywhere}.receipt-actions{position:sticky;bottom:12px;display:flex;justify-content:center;gap:8px;margin:16px auto 0;padding:.65rem;width:max-content;max-width:100%;background:rgba(255,255,255,.94);border:1px solid #ccd5d0;border-radius:12px;box-shadow:0 7px 20px rgba(0,0,0,.12)}.receipt-actions button,.receipt-actions a{padding:8px 11px;border:1px solid #333;border-radius:7px;background:#fff;color:#111;font:600 12px Arial,sans-serif;text-decoration:none;cursor:pointer}.paper-picker{display:flex;gap:.25rem}.paper-picker a[aria-current="page"]{background:#111;color:#fff}
@media(max-width:1199.98px){.main-content>.container-fluid{padding:24px 22px 44px}.pos-cart-panel{position:static}}
@media(max-width:991.98px){.main-content{margin-left:0}.sidebar{top:0;width:280px}.navbar-user-copy{display:none}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-form-panel{padding:2.5rem}.offline-grid{grid-template-columns:1fr}.theme-picker{width:110px}}
@media(max-width:767.98px){.main-content>.container-fluid{padding:20px 14px 40px}h3{font-size:1.42rem}.table-responsive>.table{min-width:720px}.table-responsive:after{content:"Swipe table →";position:sticky;left:12px;display:inline-block;margin:.45rem .7rem;color:var(--muted);font-size:.7rem}.card.table-responsive{overflow-x:auto}.pos-cart-panel .table-responsive>.table{min-width:100%}.pos-cart-panel .table-responsive:after{display:none}.stat-card{min-height:126px}.product-grid{grid-template-columns:1fr}.sync-panel{align-items:flex-start}.sync-copy{align-items:flex-start}.sync-actions{flex-direction:column;align-items:flex-end}.offline-topbar{align-items:flex-start}.receipt-page{padding:10px}.receipt-actions{position:static;flex-wrap:wrap;width:100%}}
@media(max-width:575.98px){.navbar{min-height:62px}.main-content{padding-top:62px}.navbar .container-fluid{gap:.35rem}.brand-mark{width:32px;height:32px}.brand-name{font-size:.78rem}.brand-subtitle,.theme-picker{display:none}.navbar-user{gap:.35rem}.navbar .btn{padding:.35rem .5rem}.login-page{padding:.5rem}.login-shell{min-height:calc(100vh - 1rem);border-radius:16px}.login-form-panel{padding:1.35rem}.sync-panel{padding:.65rem}.sync-copy small{display:none}.pending-pill{font-size:.7rem}.pos-catalogue,.pos-cart-panel{padding:.8rem}.pos-search{font-size:1rem}.offline-shell{padding:.75rem}.offline-banner{font-size:.84rem}.receipt-page.paper-a4 .receipt{width:100%;min-height:0;padding:8mm}}
@page{size:80mm auto;margin:0}
@media print{html,body.receipt-page{margin:0!important;padding:0!important;background:#fff!important}.no-print,.navbar,.sidebar{display:none!important}.main-content{margin:0;padding:0}.receipt-page .receipt{margin:0;box-shadow:none}.receipt-page.paper-80 .receipt{width:80mm;max-width:80mm;padding:4mm 3mm}.receipt-page.paper-58 .receipt{width:58mm;max-width:58mm;padding:3mm 2.5mm}.receipt-page.paper-a4 .receipt{width:190mm;max-width:190mm;min-height:260mm;padding:16mm 18mm}.receipt-page,.receipt-page .receipt,.receipt-page .receipt *{color:#000!important;text-shadow:none!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Milestone 3.3: fast multi-customer checkout */
.sale-tabs-shell{display:flex;gap:.65rem;align-items:stretch;padding:.65rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.sale-tabs{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:thin;flex:1;min-width:0;padding-bottom:.1rem}
.sale-tab{display:flex;align-items:center;gap:.65rem;min-width:150px;max-width:220px;padding:.55rem .7rem;border:1px solid var(--border);border-radius:.7rem;background:var(--surface-2);color:var(--text);text-align:left;transition:border-color .12s,background .12s}
.sale-tab span{min-width:0;display:block;flex:1}.sale-tab b,.sale-tab small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sale-tab small{color:var(--muted);font-size:.72rem;margin-top:.1rem}.sale-tab kbd{font-size:.65rem;background:var(--border);color:var(--muted)}
.sale-tab.active{background:var(--active);border-color:var(--primary);box-shadow:inset 0 -3px 0 var(--accent)}.sale-tab.active b{color:var(--primary)}
@media(max-width:575.98px){.sale-tabs-shell{margin-left:-.25rem;margin-right:-.25rem;padding:.5rem}.sale-tab{min-width:140px}.sale-tabs-shell>.btn{white-space:nowrap}}
.saas-plan-banner{font-size:.88rem;box-shadow:0 5px 18px rgba(18,59,42,.06)}
