:root{--bg: #091016;--bg-alt: #0f1a24;--bg-elevated: #192a38;--border: #2e4456;--text: #ecf1f4;--text-muted: #8d9fb0;--primary: #02b19c;--primary-hover: #12e2ca;--primary-soft: rgba(2, 177, 156, .18);--danger: #ff5c7c;--success: #34c98a;--warning: #f5b342;--badge: #0b0f14;color-scheme:dark}:root[data-theme=light]{--bg: #f5f8fa;--bg-alt: #ffffff;--bg-elevated: #ebf0f4;--border: #d9e1e8;--text: #13222f;--text-muted: #5e7487;--primary: #02b19c;--primary-hover: #038173;--primary-soft: rgba(2, 177, 156, .12);--danger: #d92d4e;--success: #1f9d6b;--warning: #b7791f;--badge: #13222f;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.4 -apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app{min-height:100%;display:flex;flex-direction:column;padding-bottom:calc(84px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:5;background:var(--bg-alt);border-bottom:1px solid var(--border);padding:calc(8px + env(safe-area-inset-top)) 14px 8px;display:flex;align-items:center;gap:10px}.topbar h1{font-size:17px;margin:0;flex:1;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .sub{color:var(--text-muted);font-size:12px;font-weight:400;display:block}.icon-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--bg-elevated);border-radius:0;padding:0}.icon-btn svg{width:20px;height:20px}.search{display:flex;align-items:center;gap:8px;background:var(--bg-alt);border:1px solid var(--border);padding:0 12px;height:44px;margin:10px 14px 0}.search input{flex:1;border:0;background:none;outline:none;height:100%}.search svg{width:18px;height:18px;color:var(--text-muted)}.filters{display:flex;gap:10px;padding:10px 14px 4px}.filters select{flex:1;height:42px;border:1px solid var(--border);background:var(--bg-alt);padding:0 10px;border-radius:0}.list{display:flex;flex-direction:column;gap:10px;padding:10px 14px}.card{background:var(--bg-alt);border:1px solid var(--border);border-radius:0;padding:12px}.product{display:flex;flex-direction:column;gap:8px}.product-top{display:flex;gap:12px;align-items:flex-start}.product-pic{width:58px;height:58px;border:1px solid var(--border);background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.product-pic img{width:100%;height:100%;object-fit:cover}.product-pic span{color:var(--text-muted);font-size:20px}.product-name{font-weight:700;margin:0}.product-sub{color:var(--text-muted);font-size:13px}.product-price{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}.product-price s{color:var(--text-muted)}.badge{background:var(--badge);color:#fff;font-size:12px;font-weight:700;padding:3px 9px;border:0;border-radius:0}:root[data-theme=light] .badge{color:#fff}.badge.scheme{background:var(--primary)}.product-row{display:flex;gap:10px;align-items:end}.product-row label{flex:1;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.stepper{display:flex;align-items:center;border:1px solid var(--border);background:var(--bg-elevated);height:42px}.stepper button{width:42px;height:100%;border:0;background:none;color:var(--primary);font-size:20px}.stepper input{flex:1;width:3ch;min-width:0;text-align:center;border:0;background:none;height:100%;outline:none}.select{height:42px;border:1px solid var(--border);background:var(--bg-elevated);padding:0 10px;width:100%;border-radius:0}.heart{margin-left:auto;background:none;border:0;color:var(--text-muted);padding:4px}.heart.on{color:var(--danger)}.heart svg{width:22px;height:22px}.stock{font-size:12px;color:var(--text-muted)}.stock.short{color:var(--danger)}.tabbar{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:5;display:grid;grid-template-columns:repeat(5,1fr);padding:6px;border-radius:28px;background:#192a388c;-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px #ffffff2e,inset 0 -1px #00000040,0 10px 30px #00000059}:root[data-theme=light] .tabbar{background:#ffffff8c;border-color:#ffffffb3;box-shadow:inset 0 1px #ffffffe6,inset 0 -1px #0000000f,0 10px 30px #13222f2e}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:52px;border-radius:22px;color:var(--text-muted);font-size:10.5px;font-weight:600;letter-spacing:.01em;-webkit-tap-highlight-color:transparent;transition:background .2s,color .2s,transform .2s}.tabbar a.active{color:var(--primary);background:#ffffff1f;box-shadow:inset 0 1px #ffffff40,0 2px 8px #00000026}:root[data-theme=light] .tabbar a.active{background:#ffffffd9;box-shadow:inset 0 1px #fff,0 2px 8px #13222f1a}.tabbar a:active{transform:scale(.94)}.tabbar .tab-icon{display:inline-flex}.tabbar svg{width:22px;height:22px}.cartbar{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:6;height:52px;display:flex;align-items:center;gap:12px;padding:0 12px 0 14px;border:0;border-radius:26px;background:var(--primary);color:#fff;font-weight:700;box-shadow:0 10px 30px #02b19c59}.cartbar .grow{flex:1;text-align:left}.cartbar-icon{position:relative;display:inline-flex}.cartbar-icon svg{width:22px;height:22px}.cartbar-icon .count{position:absolute;top:-8px;right:-10px;background:#fff;color:var(--primary);font-size:10px;font-weight:800;min-width:16px;height:16px;padding:0 4px;border-radius:8px;display:flex;align-items:center;justify-content:center}.cartbar-go{font-size:13px;opacity:.9}.fav-filter{width:42px;height:42px;flex:0 0 auto;border:1px solid var(--border);background:var(--bg-alt);color:var(--text-muted);border-radius:0;display:inline-flex;align-items:center;justify-content:center;padding:0}.fav-filter.on{color:var(--danger);border-color:var(--danger)}.fav-filter svg{width:20px;height:20px}.dash-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-tile strong{display:block;font-size:22px;margin-top:2px}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:6px 0 -4px}.dash-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted);flex:0 0 auto}.dash-dot.on{background:var(--success);box-shadow:0 0 0 4px #34c98a33}.route-icon{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary);flex:0 0 auto}.route-icon svg{width:20px;height:20px}.route-card{padding:10px 12px;color:var(--text)}.route-card>svg{color:var(--text-muted);width:18px;height:18px}.stop{display:flex;flex-direction:column;gap:10px}.stop-name{text-align:left;background:none;border:0;padding:0;min-width:0}.stop-actions{display:flex;gap:6px;align-items:center}.stop-actions .icon-btn{width:36px;height:36px;flex:0 0 auto;margin-left:auto}.profile-card{display:flex;align-items:center;gap:14px}.avatar{width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800;font-size:20px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}a.card.row{color:var(--text)}.btn{height:46px;padding:0 18px;border:0;background:var(--primary);color:#fff;font-weight:700;border-radius:0;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:disabled{opacity:.5}.btn.secondary{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger)}.btn.block{width:100%}.btn.sm{height:36px;padding:0 12px;font-size:13px;white-space:nowrap}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.field label{font-size:12px;color:var(--text-muted);font-weight:600}.field input,.field select,.field textarea{height:44px;border:1px solid var(--border);background:var(--bg-alt);padding:0 12px;border-radius:0;width:100%}.field textarea{height:auto;padding:10px 12px}.field-row{display:flex;gap:10px;align-items:flex-end}.field-row>.field{flex:1;min-width:0}.field-row>input{flex:1;min-width:0}.field-row>.btn{flex:0 0 auto;height:44px;width:48px;padding:0;display:inline-flex;align-items:center;justify-content:center}.field input[readonly]{color:var(--text-muted)}.hint{color:var(--text-muted);font-size:13px}.error{color:var(--danger);font-size:14px}.totals{display:flex;flex-direction:column;gap:6px}.totals div{display:flex;justify-content:space-between}.totals .grand{font-weight:700;font-size:17px;border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.sheet-backdrop{position:fixed;inset:0;background:#00000080;z-index:20;display:flex;align-items:flex-end}.sheet{background:var(--bg-alt);border-top:1px solid var(--border);width:100%;max-height:85vh;overflow:auto;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}.sheet h2{font-size:16px;margin:0 0 10px;display:flex;justify-content:space-between;align-items:center}.rows{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:0}.row .grow{flex:1;min-width:0}.row .title{font-weight:600}.row .meta{color:var(--text-muted);font-size:12px}.pill{font-size:11px;font-weight:700;padding:3px 8px;border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em}.pill.ok{color:var(--success);border-color:var(--success)}.pill.warn{color:var(--warning);border-color:var(--warning)}.pill.muted{color:var(--text-muted)}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:40px 24px;flex:1}.center h1{margin:0;font-size:26px}.brand{font-size:28px;font-weight:800;letter-spacing:-.02em}.brand span{color:var(--primary)}.swipe{position:relative;height:62px;border:1px solid var(--border);background:var(--bg-elevated);user-select:none;touch-action:pan-y;overflow:hidden}.swipe .label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--text-muted);pointer-events:none}.swipe .knob{position:absolute;top:4px;left:4px;width:54px;height:54px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center}.swipe.out .knob{background:var(--danger)}.swipe .knob svg{width:24px;height:24px}.swipe.done .label{color:var(--success)}.stat{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.stat:last-child{border-bottom:0}.seg{display:flex;border:1px solid var(--border)}.seg button{flex:1;height:40px;border:0;background:none;color:var(--text-muted)}.seg button.on{background:var(--primary-soft);color:var(--primary);font-weight:700}.toast{position:fixed;left:14px;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:30;background:var(--bg-elevated);border:1px solid var(--border);padding:12px 14px}.toast.error{border-color:var(--danger)}.thumb{display:inline-block;object-fit:cover;border:1px solid var(--border);background:var(--bg-elevated);flex:0 0 auto}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.photo-slot{display:flex;flex-direction:column;gap:6px}.photo-slot img,.photo-slot .thumb{width:100%;height:120px;object-fit:cover;border:1px solid var(--border)}.photo-empty{height:120px;border:1px dashed var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px}.photo-actions{display:flex;gap:6px}.photo-actions .btn{flex:1}
