:root{--font-body: "DM Sans", system-ui, -apple-system, sans-serif;--font-display: "DM Serif Display", Georgia, serif;--font-mono: "SF Mono", "Monaco", "Cascadia Code", "Courier New", monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 14px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 30px;--fs-4xl: 36px;--lh-tight: 1.2;--lh-base: 1.4;--lh-relaxed: 1.6;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--r-sm: 6px;--r: 8px;--r-md: 10px;--r-lg: 12px;--r-xl: 16px;--r-2xl: 20px;--r-full: 999px;--sh-xs: 0 1px 2px rgba(0,0,0,.04);--sh-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--sh: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--sh-md: 0 8px 20px rgba(0,0,0,.1), 0 3px 6px rgba(0,0,0,.05);--sh-lg: 0 12px 32px rgba(0,0,0,.12), 0 4px 10px rgba(0,0,0,.06);--sh-xl: 0 20px 50px rgba(0,0,0,.16), 0 8px 16px rgba(0,0,0,.08);--cream: #faf8f4;--white: #ffffff;--ink: #1a1f1c;--ink-mid: #3d4840;--ink-light: #6b7570;--ink-faint: #a8b3ae;--border: #e2ebe5;--border-mid: #cdd9d2;--green: #16a34a;--green-pale: #dcfce7;--green-dark: #15803d;--amber: #d97706;--amber-pale: #fef3c7;--amber-light: #fde68a;--red: #b91c1c;--red-pale: #fee2e2;--red-light: #fca5a5;--blue: #1d4ed8;--blue-pale: #dbeafe;--purple: #7c3aed;--purple-pale: #ede9fe;--rose: #c9184a;--t-fast: .1s ease;--t: .15s ease;--t-slow: .25s ease;--sidebar-w: 240px;--sidebar-w-collapsed: 64px;--topbar-h: 56px;--cart-w: 380px;--accent: #1c3a2a;--accent-mid: #2d5a3d;--accent-light: #3d7a52;--accent-bright: #52a472;--accent-pale: #eaf7ef;--accent-tint: #c8edda;--accent-rgb: 28, 58, 42}body.bundle-admin{--accent: #1e3a5f;--accent-mid: #2c4f7c;--accent-light: #3d6699;--accent-bright: #5a89be;--accent-pale: #e8f0fa;--accent-tint: #c3d7ed;--accent-rgb: 30, 58, 95}body.bundle-store{--accent: #1c3a2a;--accent-mid: #2d5a3d;--accent-light: #3d7a52;--accent-bright: #52a472;--accent-pale: #eaf7ef;--accent-tint: #c8edda;--accent-rgb: 28, 58, 42}body.bundle-shop{--accent: #9d3c4e;--accent-mid: #b8455c;--accent-light: #d35d76;--accent-bright: #e88a9f;--accent-pale: #fdf2f5;--accent-tint: #f8d7df;--accent-rgb: 157, 60, 78}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-body);background:var(--cream);color:var(--ink);font-size:var(--fs-base);line-height:var(--lh-base);-webkit-font-smoothing:antialiased}button{font-family:var(--font-body);cursor:pointer;-webkit-tap-highlight-color:transparent}input,textarea,select{font-family:var(--font-body)}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh;overflow:hidden}.sidebar{background:var(--accent);color:#ffffffd9;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.sidebar-brand{padding:20px 18px 18px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:8px}.sidebar-brand-mark{width:9px;height:9px;background:var(--accent-bright);border-radius:50%;flex-shrink:0}.sidebar-brand-text{font-family:var(--font-display);font-size:var(--fs-lg);color:#fff;line-height:1.1}.sidebar-brand-sub{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:#ffffff80;font-weight:600;margin-top:2px}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:2px}.nav-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#fff6;padding:14px 12px 6px}.nav-link{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--r);font-size:13px;font-weight:500;color:#ffffffbf;transition:all var(--t-fast);cursor:pointer;position:relative}.nav-link i{font-size:18px;flex-shrink:0}.nav-link:hover{background:#ffffff0f;color:#fff}.nav-link.active{background:#ffffff1f;color:#fff;font-weight:600}.nav-link.active:before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;background:var(--accent-bright);border-radius:0 3px 3px 0}.nav-link-badge{margin-left:auto;font-size:10px;background:var(--accent-bright);color:var(--accent);padding:2px 7px;border-radius:10px;font-weight:700}.sidebar-footer{padding:14px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}.sf-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-bright);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}.sf-name{font-size:12px;color:#fff;font-weight:600;line-height:1.2}.sf-role{font-size:10px;color:#ffffff8c}.sf-logout{margin-left:auto;width:28px;height:28px;border-radius:50%;background:#ffffff14;border:none;color:#fff9;display:flex;align-items:center;justify-content:center;transition:all var(--t)}.sf-logout:hover{background:#ffc8c826;color:#ffb4b4}.main-area{display:flex;flex-direction:column;overflow:hidden;background:var(--cream)}#main-content{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.topbar{height:var(--topbar-h);background:var(--white);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 var(--sp-6);gap:var(--sp-3);flex-shrink:0}.topbar-title{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:400}.topbar-sub{font-size:var(--fs-xs);color:var(--ink-light);margin-top:1px}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.topbar-icon-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--cream);color:var(--ink-mid);display:flex;align-items:center;justify-content:center;transition:all var(--t)}.topbar-icon-btn:hover{background:var(--accent-pale);color:var(--accent)}.topbar-icon-btn .ti{font-size:18px}.content{flex:1;overflow-y:auto;padding:var(--sp-6)}.content-narrow{max-width:1100px;margin:0 auto}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--r);font-size:13px;font-weight:600;border:1.5px solid var(--border);background:var(--white);color:var(--ink);transition:all var(--t);line-height:1;white-space:nowrap;cursor:pointer;font-family:var(--font-body)}.btn:hover{background:var(--cream);border-color:var(--border-mid)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{background:var(--white);border-color:var(--border)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-mid);border-color:var(--accent-mid)}.btn-accent{background:var(--accent-bright);color:#fff;border-color:var(--accent-bright)}.btn-accent:hover{background:var(--accent-light);border-color:var(--accent-light)}.btn-danger{background:var(--red);color:#fff;border-color:var(--red)}.btn-danger:hover{background:#991b1b;border-color:#991b1b}.btn-light{background:transparent;border-color:transparent;color:var(--ink-light)}.btn-light:hover{background:var(--cream);color:var(--ink)}.btn-sm{padding:6px 12px;font-size:12px}.btn-lg{padding:13px 22px;font-size:15px}.btn-icon{padding:8px;min-width:36px;justify-content:center}.btn-block{display:flex;width:100%;justify-content:center;padding:12px;font-size:14px}.btn .ti{font-size:16px}.badge{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;line-height:1.5}.badge-green{background:var(--green-pale);color:var(--green-dark)}.badge-amber{background:var(--amber-pale);color:#78350f}.badge-red{background:var(--red-pale);color:#7f1d1d}.badge-blue{background:var(--blue-pale);color:#1e3a5f}.badge-purple{background:var(--purple-pale);color:#5b21b6}.badge-gray{background:#f1f5f9;color:#475569}.badge-accent{background:var(--accent-pale);color:var(--accent)}.badge .ti{font-size:12px}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.card-pad{padding:var(--sp-5)}.card-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.card-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:400}.card-sub{font-size:var(--fs-xs);color:var(--ink-light);margin-top:1px}.card-body{padding:var(--sp-5)}.card-footer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--cream);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-5)}.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);position:relative;overflow:hidden}.stat-label{font-size:var(--fs-xs);color:var(--ink-light);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:var(--sp-2)}.stat-value{font-size:var(--fs-3xl);font-weight:800;color:var(--ink);letter-spacing:-1px;line-height:1}.stat-delta{font-size:var(--fs-xs);font-weight:600;margin-top:var(--sp-2);display:inline-flex;align-items:center;gap:3px}.stat-delta.up{color:var(--green-dark)}.stat-delta.down{color:var(--red)}.stat-delta.flat{color:var(--ink-light)}.fg{margin-bottom:var(--sp-4)}.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.fl{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--ink-mid);margin-bottom:5px}.fl-req:after{content:" *";color:var(--red)}.fh{font-size:var(--fs-xs);color:var(--ink-light);margin-top:4px}.inp,.sel,.ta{width:100%;padding:10px 13px;border:1.5px solid var(--border);border-radius:var(--r);font-size:var(--fs-base);outline:none;background:var(--white);transition:border var(--t-fast);font-family:var(--font-body);color:var(--ink)}.inp:focus,.sel:focus,.ta:focus{border-color:var(--accent-bright);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12)}.ta{min-height:80px;resize:vertical;line-height:var(--lh-base)}.sel{cursor:pointer}.inp-group{display:flex;align-items:stretch;border:1.5px solid var(--border);border-radius:var(--r);background:var(--white);transition:border var(--t-fast);overflow:hidden}.inp-group:focus-within{border-color:var(--accent-bright);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12)}.inp-group .inp{border:none;box-shadow:none}.inp-group .inp:focus{box-shadow:none}.inp-group-prefix,.inp-group-suffix{padding:10px 14px;background:var(--cream);color:var(--ink-light);font-size:var(--fs-sm);font-weight:600;display:flex;align-items:center}.checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--fs-sm);color:var(--ink-mid);user-select:none}.checkbox input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;cursor:pointer;inset:0;background:#cbd5d2;transition:var(--t);border-radius:20px}.switch-slider:before{position:absolute;content:"";height:14px;width:14px;left:3px;top:3px;background:#fff;transition:var(--t);border-radius:50%}.switch input:checked+.switch-slider{background:var(--accent-bright)}.switch input:checked+.switch-slider:before{transform:translate(16px)}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.tbl thead{background:var(--cream);border-bottom:1px solid var(--border)}.tbl th{text-align:left;padding:10px 14px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-light)}.tbl td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:#fbfaf6}.tbl-num{text-align:right;font-variant-numeric:tabular-nums}.tbl-actions{text-align:right;white-space:nowrap}.tbl-empty{text-align:center;padding:60px 20px;color:var(--ink-faint)}.tbl-empty .ti{font-size:48px;display:block;margin-bottom:12px;opacity:.6}.tbl-empty h3{font-family:var(--font-display);font-size:17px;color:var(--ink-mid);margin-bottom:4px;font-weight:400}.tbl-empty p{font-size:13px}.mo{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:modal-fade .15s ease}.md{background:var(--white);border-radius:var(--r-xl);width:100%;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--sh-xl);animation:modal-slide .2s ease}.md-sm{max-width:440px}.md-md{max-width:580px}.md-lg{max-width:760px}.md-xl{max-width:920px}.md-hd{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--cream)}.md-title{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:400}.md-sub{font-size:var(--fs-sm);color:var(--ink-light);margin-top:2px}.md-bd{padding:22px;overflow-y:auto;flex:1}.md-ft{padding:16px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;flex-shrink:0;background:var(--cream)}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-slide{0%{transform:translateY(14px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}#toasts{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none;align-items:center}.toast{padding:14px 20px;border-radius:var(--r-xl);font-size:var(--fs-base);font-weight:600;display:flex;align-items:center;gap:10px;box-shadow:var(--sh-lg);min-width:280px;animation:toast-in .22s ease;justify-content:center}.t-ok{background:var(--accent);color:#fff}.t-warn{background:var(--amber-pale);color:#78350f;border:1px solid var(--amber-light)}.t-err{background:var(--red-pale);color:var(--red);border:1px solid var(--red-light)}@keyframes toast-in{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.row{display:flex;align-items:center;gap:8px}.row-b{display:flex;align-items:center;justify-content:space-between;gap:12px}.col{display:flex;flex-direction:column;gap:8px}.flex-1{flex:1;min-width:0}.mla{margin-left:auto}.muted{color:var(--ink-light)}.faint{color:var(--ink-faint)}.accent{color:var(--accent)}.fxs{font-size:var(--fs-xs)}.fsm{font-size:var(--fs-sm)}.flg{font-size:var(--fs-md)}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.tac{text-align:center}.tar{text-align:right}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.mb-6{margin-bottom:24px}.mb-8{margin-bottom:32px}.hr{border:none;border-top:1px solid var(--border);margin:14px 0}.divider-y{width:1px;background:var(--border);align-self:stretch}.mono{font-family:var(--font-mono)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-5)}.page-title{font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:400;line-height:1.1}.page-sub{font-size:var(--fs-sm);color:var(--ink-light);margin-top:4px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{padding:0 var(--sp-4)}.content{padding:var(--sp-4)}}.search-wrap{flex:1;position:relative;min-width:200px}.quick-action{padding:18px;border-radius:var(--r-lg);background:var(--white);border:1px solid var(--border);display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .15s;text-decoration:none;color:inherit}.quick-action:hover{border-color:var(--accent);background:var(--accent-pale);transform:translateY(-1px)}.qa-icon{width:40px;height:40px;border-radius:10px;background:var(--accent-pale);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.qa-icon .ti{font-size:20px}.activity-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.activity-row:last-child{border:none}.bar-mini{height:140px;display:flex;align-items:flex-end;gap:8px;padding-top:16px}.bar-mini-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.bar-mini-fill{width:100%;background:linear-gradient(180deg,var(--accent-bright),var(--accent));border-radius:4px 4px 0 0;min-height:4px}.bar-mini-lbl{font-size:10px;color:var(--ink-light);font-weight:600}.status-tabs{display:flex;gap:4px;background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:4px;margin-bottom:16px;overflow-x:auto}.status-tab{padding:8px 14px;border-radius:var(--r);font-size:13px;font-weight:600;cursor:pointer;color:var(--ink-light);white-space:nowrap;transition:all .15s;border:none;background:transparent;font-family:var(--font-body)}.status-tab:hover{color:var(--ink)}.status-tab.active{background:var(--accent);color:#fff}.status-tab-count{margin-left:6px;padding:1px 7px;background:#00000014;border-radius:10px;font-size:11px}.status-tab.active .status-tab-count{background:#fff3;color:#fff}.order-items-table{border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.order-items-table table{width:100%;font-size:13px}.order-items-table td{padding:8px 10px;border-bottom:1px solid var(--border)}.order-items-table tr:last-child td{border-bottom:none}.totals-row{display:flex;justify-content:space-between;padding:6px 0;font-size:13px}.totals-row.grand{border-top:2px solid var(--border);margin-top:8px;padding-top:10px;font-size:16px;font-weight:700}.prod-emoji-cell{font-size:28px;line-height:1}.channel-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background:var(--accent-pale);color:var(--accent);margin-right:4px}.channel-pill.off{background:#f1f5f9;color:var(--ink-faint)}.filter-bar{display:flex;gap:10px;margin-bottom:16px;align-items:center;flex-wrap:wrap}.search-wrap{flex:1;position:relative;min-width:220px}.search-wrap i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-faint);pointer-events:none}.search-wrap input{padding-left:38px}.tier-row{display:flex;align-items:center;gap:16px;padding:14px;background:var(--cream);border-radius:var(--r-lg);margin-bottom:10px}.tier-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.perm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px}.perm-row{display:flex;align-items:center;gap:10px;padding:6px 0}.perm-row .perm-label{flex:1;font-size:13px}.bar-chart{display:flex;align-items:flex-end;gap:10px;height:240px;padding:24px 4px 8px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.bar-fill{width:100%;background:linear-gradient(180deg,var(--accent-bright),var(--accent));border-radius:6px 6px 0 0;min-height:4px;transition:opacity .15s;cursor:pointer}.bar-fill:hover{opacity:.85}.bar-lbl{font-size:10px;color:var(--ink-light);font-weight:600;white-space:nowrap}.donut-legend{flex:1;display:flex;flex-direction:column;gap:10px}.donut-row{display:flex;align-items:center;gap:10px;font-size:13px}.donut-swatch{width:14px;height:14px;border-radius:4px;flex-shrink:0}.donut-val{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}.setting-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border)}.setting-row:last-child{border:none}.setting-info{flex:1;min-width:0}.setting-name{font-size:14px;font-weight:600}.setting-desc{font-size:12px;color:var(--ink-light);margin-top:2px;line-height:1.5}.settings-tab-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--r);font-size:13px;font-weight:600;color:var(--ink-mid);cursor:pointer;transition:all .12s;user-select:none}.settings-tab-item:hover{background:var(--cream);color:var(--ink)}.settings-tab-item.active{background:var(--accent-pale);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.settings-tab-item .ti{font-size:18px;flex-shrink:0}body{overflow:hidden}.pos-shell{display:grid;grid-template-columns:1fr var(--cart-w);height:100vh;background:var(--cream)}.pos-login{position:fixed;inset:0;background:linear-gradient(135deg,#1c3a2a,#16302e);display:flex;align-items:center;justify-content:center;z-index:100;color:#fff}.pin-card{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:24px;padding:36px 32px;width:360px;backdrop-filter:blur(20px)}.pin-title{font-family:var(--font-display);font-size:28px;text-align:center;margin-bottom:6px}.pin-sub{text-align:center;font-size:13px;color:#fff9;margin-bottom:24px}.pin-dots{display:flex;justify-content:center;gap:14px;margin-bottom:28px}.pin-dot{width:14px;height:14px;border-radius:50%;background:#ffffff26;transition:all .2s}.pin-dot.filled{background:#7bc49a;transform:scale(1.15);box-shadow:0 0 16px #7bc49a80}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pin-key{padding:18px;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:14px;font-size:22px;font-weight:600;transition:all .1s;cursor:pointer}.pin-key:hover{background:#ffffff26}.pin-key:active{transform:scale(.95)}.pin-key.back{background:#ffc8c814;color:#ffb4b4}.pin-key.enter{background:#7bc49a;color:#1c3a2a;border-color:#7bc49a}.pin-hints{text-align:center;font-size:11px;color:#fff6;margin-top:18px;line-height:1.6}.pin-skip{display:block;margin:14px auto 0;background:transparent;border:1px solid rgba(255,255,255,.2);color:#ffffffb3;padding:8px 16px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.pin-skip:hover{background:#ffffff14;color:#fff}.products-area{display:flex;flex-direction:column;overflow:hidden;background:var(--cream)}.pos-topbar{background:var(--white);border-bottom:1px solid var(--border);padding:0 20px;height:64px;display:flex;align-items:center;gap:14px;flex-shrink:0}.pos-back{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--white);color:var(--ink-mid);display:flex;align-items:center;justify-content:center;transition:all .15s}.pos-back:hover{background:var(--cream)}.pos-brand{font-family:var(--font-display);font-size:17px;flex:1}.pos-staff{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:20px;background:var(--accent-pale);color:var(--accent);font-size:12px;font-weight:600}.pos-staff-avatar{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.cat-tabs{background:var(--white);border-bottom:1px solid var(--border);padding:10px 20px;display:flex;gap:6px;overflow-x:auto;flex-shrink:0}.cat-tab{padding:8px 14px;border-radius:var(--r);border:1px solid var(--border);background:var(--white);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;color:var(--ink-mid);transition:all .1s;font-family:var(--font-body)}.cat-tab:hover{background:var(--cream)}.cat-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.search-row{padding:14px 20px;background:var(--white);border-bottom:1px solid var(--border);display:flex;gap:10px;flex-shrink:0}.search-row .search-wrap{flex:1;position:relative}.search-row .search-wrap i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ink-faint)}.search-row .search-wrap input{padding-left:40px}.product-grid{padding:16px;overflow-y:auto;flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-content:start}.product-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 10px;text-align:center;cursor:pointer;transition:all .1s;position:relative}.product-card:hover{border-color:var(--accent);box-shadow:var(--sh-sm);transform:translateY(-2px)}.product-card:active{transform:translateY(0)}.product-card.out{opacity:.5;cursor:not-allowed}.product-card.out:hover{transform:none;border-color:var(--border);box-shadow:none}.product-emoji{font-size:36px;margin-bottom:6px;line-height:1}.product-name{font-size:12px;font-weight:600;line-height:1.3;min-height:30px;color:var(--ink)}.product-price{font-size:14px;font-weight:700;color:var(--accent);margin-top:4px}.product-stock{position:absolute;top:6px;right:6px;font-size:10px;padding:2px 7px;border-radius:10px;background:var(--cream);color:var(--ink-light);font-weight:600}.product-stock.low{background:var(--amber-pale);color:#78350f}.product-stock.out{background:var(--red-pale);color:var(--red)}.cart-panel{background:var(--white);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.cart-header{padding:16px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0}.cart-title{font-family:var(--font-display);font-size:18px;flex:1}.cart-count{background:var(--accent);color:#fff;padding:2px 9px;border-radius:10px;font-size:11px;font-weight:700}.cart-customer{padding:10px 18px;background:var(--accent-pale);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;cursor:pointer;flex-shrink:0;transition:background .1s;font-size:12px}.cart-customer:hover{background:var(--accent-tint)}.cart-customer.attached{background:var(--accent);color:#fff}.cart-customer-info{flex:1;min-width:0}.cart-customer-name{font-weight:700;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-customer-sub{font-size:10px;opacity:.8}.cart-items{flex:1;overflow-y:auto;padding:6px 0}.cart-empty{padding:60px 20px;text-align:center;color:var(--ink-faint)}.cart-empty .ti{font-size:56px;opacity:.4;margin-bottom:14px;display:block}.cart-empty h3{font-family:var(--font-display);font-size:17px;color:var(--ink-mid);margin-bottom:4px;font-weight:400}.cart-empty p{font-size:13px}.cart-item{padding:12px 18px;border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:center}.cart-item-emoji{font-size:22px;flex-shrink:0}.cart-item-info{flex:1;min-width:0}.cart-item-name{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-item-price{font-size:11px;color:var(--ink-light);margin-top:2px}.cart-item-discount{font-size:10px;color:var(--accent);margin-top:1px}.qty-ctrl{display:flex;align-items:center;gap:4px;background:var(--cream);border-radius:18px;padding:3px}.qty-btn{width:24px;height:24px;border:none;background:var(--white);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s;color:var(--ink-mid)}.qty-btn:hover{background:var(--accent-pale);color:var(--accent)}.qty-val{font-weight:700;min-width:18px;text-align:center;font-size:12px}.cart-item-total{font-weight:700;min-width:60px;text-align:right;font-size:13px}.cart-discounts{padding:10px 18px;background:var(--accent-pale);border-top:1px solid var(--border)}.discount-tag{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;padding:4px 10px;border-radius:14px;font-size:11px;font-weight:600;margin-right:6px;margin-bottom:4px}.discount-tag-x{cursor:pointer;opacity:.8}.discount-tag-x:hover{opacity:1}.cart-footer{padding:14px 18px;border-top:1px solid var(--border);background:var(--white);flex-shrink:0}.totals-row{display:flex;justify-content:space-between;font-size:12px;padding:4px 0}.totals-row.total{font-size:22px;font-weight:800;color:var(--accent);padding:10px 0 14px;font-family:var(--font-display);border-top:1px solid var(--border);margin-top:6px}.totals-row.total .label{font-family:var(--font-body);font-size:13px;color:var(--ink-mid);align-self:center;font-weight:600}.cart-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.cart-action-btn{padding:9px;border:1px solid var(--border);background:var(--white);border-radius:var(--r);font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;color:var(--ink-mid);transition:all .1s;font-family:var(--font-body)}.cart-action-btn:hover{background:var(--cream);border-color:var(--accent);color:var(--accent)}.charge-btn{width:100%;padding:16px;background:var(--accent);color:#fff;border:none;border-radius:var(--r-lg);font-size:17px;font-weight:700;cursor:pointer;transition:all .1s;font-family:var(--font-body)}.charge-btn:hover{background:var(--accent-mid)}.charge-btn:disabled{background:var(--ink-faint);cursor:not-allowed}.pay-methods{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:16px 0}.pay-method{padding:20px 16px;border:2px solid var(--border);border-radius:var(--r-lg);background:var(--white);cursor:pointer;text-align:center;transition:all .1s}.pay-method:hover{border-color:var(--accent);background:var(--accent-pale);transform:translateY(-2px)}.pay-method .ti{font-size:28px;color:var(--accent);margin-bottom:6px}.pay-method .name{font-weight:700;font-size:13px}.pay-method .sub{font-size:10px;color:var(--ink-light);margin-top:2px}.cash-display{padding:22px;background:var(--accent);color:#fff;border-radius:var(--r-lg);text-align:center;margin-bottom:16px}.cash-display .amt{font-family:var(--font-display);font-size:40px;margin-bottom:4px;line-height:1}.cash-display .lbl{font-size:11px;opacity:.8;text-transform:uppercase;letter-spacing:1px}.quick-cash{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}.quick-cash-btn{padding:10px;border:1px solid var(--border);background:var(--white);border-radius:var(--r);font-weight:700;cursor:pointer;font-size:13px;transition:all .1s}.quick-cash-btn:hover{background:var(--accent-pale);border-color:var(--accent);color:var(--accent)}.num-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.num-pad-btn{padding:16px;border:1px solid var(--border);background:var(--white);border-radius:var(--r);font-size:18px;font-weight:600;cursor:pointer;transition:all .1s}.num-pad-btn:hover{background:var(--cream)}.num-pad-btn:active{transform:scale(.95)}.card-screen{text-align:center;padding:24px}.card-icon{font-size:60px;color:var(--accent);margin-bottom:14px;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.card-amount{font-family:var(--font-display);font-size:32px;margin:10px 0;color:var(--accent)}.receipt{background:var(--white);padding:24px;font-family:var(--font-mono);font-size:11px;max-width:280px;margin:0 auto;line-height:1.6;color:var(--ink)}.receipt-header{text-align:center;border-bottom:1px dashed var(--border-mid);padding-bottom:10px;margin-bottom:10px}.receipt-store{font-family:var(--font-display);font-size:15px}.receipt-line{display:flex;justify-content:space-between;padding:2px 0}.receipt-divider{border-top:1px dashed var(--border-mid);margin:8px 0}.receipt-total{font-weight:700;font-size:13px}.receipt-footer{text-align:center;border-top:1px dashed var(--border-mid);padding-top:10px;margin-top:10px;font-size:10px}.drawer{position:fixed;top:0;right:0;bottom:0;width:320px;background:var(--white);box-shadow:var(--sh-xl);z-index:999;padding:20px;overflow-y:auto;transform:translate(100%);transition:transform .2s ease}.drawer.open{transform:translate(0)}.drawer-back{position:fixed;inset:0;background:#0006;z-index:998;opacity:0;pointer-events:none;transition:opacity .2s}.drawer-back.open{opacity:1;pointer-events:auto}.drawer-item{padding:12px;border-radius:var(--r);cursor:pointer;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;transition:background .1s}.drawer-item:hover{background:var(--cream)}.drawer-item .ti{font-size:18px;color:var(--accent)}body.pos-mode{overflow:hidden}body.pos-mode .app-shell{display:none}body.pos-mode .pos-container{display:block}.pos-container{display:none}.auth-screen{position:fixed;inset:0;background:linear-gradient(135deg,#1c3a2a,#16302e);display:flex;align-items:center;justify-content:center;padding:20px;color:#fff}.auth-card{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:24px;padding:40px 36px;width:400px;max-width:100%;backdrop-filter:blur(20px)}.auth-brand{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:8px}.auth-brand-mark{width:10px;height:10px;background:var(--accent-bright);border-radius:50%;box-shadow:0 0 16px #52a47299}.auth-brand-text{font-family:var(--font-display);font-size:30px;color:#fff}.auth-sub{text-align:center;font-size:13px;color:#fff9;margin-bottom:28px;line-height:1.5}.auth-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#ffffff8c;margin-bottom:7px}.auth-input{width:100%;padding:13px 15px;border:1.5px solid rgba(255,255,255,.18);border-radius:var(--r-md);background:#ffffff12;color:#fff;font-size:15px;font-family:var(--font-body);outline:none;transition:border var(--t-fast),background var(--t-fast)}.auth-input::placeholder{color:#ffffff59}.auth-input:focus{border-color:var(--accent-bright);background:#ffffff1a}.auth-input-code{text-align:center;font-family:var(--font-mono);font-size:24px;letter-spacing:12px;padding-left:24px}.auth-btn{width:100%;padding:14px;margin-top:18px;background:var(--accent-bright);color:#10241a;border:none;border-radius:var(--r-md);font-size:15px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all var(--t)}.auth-btn:hover{background:#66b884}.auth-btn:disabled{opacity:.45;cursor:not-allowed}.auth-alt{display:block;width:100%;margin-top:12px;background:transparent;border:none;color:#fff9;font-size:12.5px;font-weight:600;font-family:var(--font-body);cursor:pointer;text-align:center;padding:8px;transition:color var(--t-fast)}.auth-alt:hover:not(:disabled){color:#fff}.auth-alt:disabled{cursor:default;opacity:.5}.auth-error{margin-top:14px;padding:11px 14px;background:#ff787824;border:1px solid rgba(255,140,140,.35);border-radius:var(--r);color:#ffc4c4;font-size:12.5px;line-height:1.5;text-align:center}.auth-footnote{text-align:center;font-size:11px;color:#ffffff59;margin-top:22px;line-height:1.6}.splash-screen{position:fixed;inset:0;background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.splash-mark{width:12px;height:12px;background:var(--accent-bright);border-radius:50%;animation:splash-pulse 1.2s ease-in-out infinite}@keyframes splash-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}.splash-text{font-family:var(--font-display);font-size:22px;color:var(--accent)}.onboarding-screen{min-height:100vh;background:var(--cream);display:flex;align-items:center;justify-content:center;padding:32px 20px;overflow-y:auto}.onboarding-card{width:560px;max-width:100%}.onboarding-title{font-family:var(--font-display);font-size:var(--fs-3xl);line-height:1.15;margin-bottom:6px}@media print{body *{visibility:hidden}.receipt-print-root,.receipt-print-root *{visibility:visible}.receipt-print-root{position:absolute;left:0;top:0;width:100%;max-width:320px}}.placeholder-body{text-align:center;padding:80px 20px;color:var(--ink-faint)}.placeholder-body .ti{font-size:52px;display:block;margin-bottom:14px;opacity:.5}.placeholder-body h3{font-family:var(--font-display);font-size:19px;color:var(--ink-mid);margin-bottom:5px;font-weight:400}.placeholder-body p{font-size:13px}
