@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Prompt:wght@300;400;500;600;700;800&display=swap");:root{--bg:#fbfaf6;--surface:#fff;--surface-muted:#f4f1ea;--surface-tint:#eef6ec;--ink:#17211a;--ink-muted:#637064;--ink-soft:#8a9489;--border:#ded8cc;--border-strong:#c8c0b2;--brand:#1f7a4d;--brand-strong:#135c39;--brand-soft:#dcedd8;--brand-ink:#0b3d25;--fresh:#24985a;--fresh-bg:#e5f6eb;--warning:#c77a14;--warning-bg:#fff1d8;--danger:#bf3a2b;--danger-bg:#fde7e3;--info:#2d6f9f;--info-bg:#e3f0f7;--promo:#8b5e1f;--promo-bg:#f6ead8;--map-route:#2563eb;--chat-customer:#1f7a4d;--chat-seller:#f4f1ea;--shadow-color:28 33 26;--shadow-xs:0 1px 2px rgb(var(--shadow-color)/0.06);--shadow-sm:0 4px 12px rgb(var(--shadow-color)/0.08);--shadow-md:0 12px 28px rgb(var(--shadow-color)/0.12);--shadow-focus:0 0 0 3px rgba(31,122,77,.18);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--bg);color:var(--ink);font-family:Plus Jakarta Sans,Prompt,Inter,Noto Sans Thai,ui-sans-serif,system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,h4,p{margin-top:0}.app-shell{width:100%;max-width:100%;margin:0;padding:16px 24px 48px}.topbar{grid-template-columns:auto minmax(0,1fr) auto;grid-gap:18px;gap:18px;min-height:64px;border-bottom:1px solid var(--border);background:hsla(48,38%,97%,.96)}.topbar,.topbar-modern{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:grid;align-items:center}.topbar-modern{grid-template-columns:auto minmax(0,1fr) auto;grid-gap:24px;gap:24px;min-height:92px;padding:10px 24px;border-bottom:2px solid var(--brand);background:linear-gradient(135deg,var(--brand) 0,#0b5d2a 100%);box-shadow:0 4px 12px rgba(31,122,77,.12)}.topbar-left{min-width:-moz-fit-content;min-width:fit-content;display:flex;align-items:center}.topbar-center{display:flex;justify-content:center;flex:1 1}.topbar-right{gap:16px;min-width:-moz-fit-content;min-width:fit-content}.brand-compact,.topbar-right{display:flex;align-items:center}.brand-compact{gap:14px;color:#fff;font-weight:700;font-size:24px;text-decoration:none;cursor:pointer;transition:opacity .2s}.topbar-logo-image{width:74px;height:74px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.brand-compact:hover{opacity:.9}.brand-mark-small{display:grid;width:36px;height:36px;place-items:center;border-radius:8px;background:hsla(0,0%,100%,.2);color:#fff;font-weight:700;font-size:18px}.search-box-wrapper{position:relative;width:100%;max-width:520px;display:flex;align-items:center;background:#fff;border-radius:999px;padding:12px 18px;transition:box-shadow .2s}.search-box-wrapper:focus-within{box-shadow:0 0 0 3px hsla(0,0%,100%,.3)}.search-icon{color:var(--ink-muted);flex-shrink:0;margin-right:10px}.search-box{flex:1 1;border:none;background:transparent;color:var(--ink);font-size:15px;outline:none;font-family:inherit}.search-box::placeholder{color:var(--ink-soft)}.icon-button-cart{position:relative;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:none;border-radius:8px;background:hsla(0,0%,100%,.2);color:#fff;cursor:pointer;transition:background .2s}.icon-button-cart:hover{background:hsla(0,0%,100%,.3)}.cart-badge{position:absolute;top:-8px;right:-8px;min-width:20px;height:20px;display:grid;place-items:center;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;padding:0 6px}.profile-button{display:flex;align-items:center;gap:10px;padding:10px 16px;border:none;border-radius:8px;background:hsla(0,0%,100%,.2);color:#fff;cursor:pointer;font-size:14px;font-weight:600;transition:background .2s;white-space:nowrap}.profile-button:hover{background:hsla(0,0%,100%,.3)}.profile-text{display:none!important}.logout-btn-mobile{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:none;border-radius:8px;background:hsla(0,0%,100%,.2);color:#fff;cursor:pointer;font-size:18px;transition:background .2s;font-weight:700}.logout-btn-mobile:hover{background:hsla(0,0%,100%,.3)}.profile-dropdown{position:relative;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:none;border-radius:8px;background:hsla(0,0%,100%,.2);color:#fff;cursor:pointer;transition:background .2s}.profile-dropdown:hover{background:hsla(0,0%,100%,.3)}.points-badge-small{position:absolute;top:-8px;right:-8px;font-size:10px;background:#fbbf24;color:#1f2937;padding:2px 4px;border-radius:999px;font-weight:700;white-space:nowrap}.brand{display:flex;align-items:center;gap:12px;min-width:220px}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:8px;background:var(--brand-strong);color:#fff;font-weight:700}.brand span,.brand strong,.rail-panel span,.rail-panel strong{display:block}.brand span{color:var(--ink-muted);font-size:12px;line-height:1.35}.role-switcher{min-width:0}.role-switcher>span{display:block;margin-bottom:4px;color:var(--ink-muted);font-size:12px;font-weight:650}.role-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:3px}.ghost-button,.icon-button,.primary-button,.role-tabs button{min-height:38px;border:1px solid transparent;border-radius:999px;padding:0 14px;color:var(--ink-muted);background:transparent;font-weight:650;white-space:nowrap;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.ghost-button:hover,.icon-button:hover,.primary-button:hover,.role-tabs button:hover{transform:translateY(-1px)}.primary-button,.role-tabs button.active{color:#fff;background:var(--brand)}.role-tabs button.active{border-color:var(--brand)}.ghost-button,.primary-button{min-height:42px}.ghost-button{border-color:var(--border);color:var(--brand-strong);background:var(--surface)}.icon-button{display:grid;width:38px;padding:0;place-items:center;border-color:var(--border);color:var(--brand-strong);background:var(--surface)}.top-actions{display:flex;gap:10px;align-items:center}.avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:999px;background:var(--surface-muted);color:var(--brand-ink);font-size:12px;font-weight:700}.role-title{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;padding:28px 0 18px}.role-title p{max-width:560px;margin-bottom:0;color:var(--ink-muted);line-height:1.6}.eyebrow{margin:0 0 8px;color:var(--brand);font-size:12px;font-weight:700}h1{margin-bottom:0;font-size:32px}h1,h2{line-height:1.25}h2{margin-bottom:12px;font-size:24px}h3{margin-bottom:0;font-size:20px;line-height:1.35}.workspace{display:grid;grid-gap:20px;gap:20px}.operational-layout{grid-template-columns:240px minmax(0,1fr) 260px;align-items:start}.workspace:not(.operational-layout){grid-template-columns:minmax(0,1fr) 260px}.workspace-main{min-width:0}.role-sidebar{position:-webkit-sticky;position:sticky;top:86px;display:grid;grid-gap:8px;gap:8px;border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--surface)}.role-sidebar button{min-height:38px;border:0;border-radius:6px;padding:0 12px;color:var(--ink-muted);background:transparent;text-align:left;font-weight:650}.role-sidebar button.active{color:var(--brand-ink);background:var(--brand-soft)}.insight-rail{position:-webkit-sticky;position:sticky;top:86px;display:grid;grid-gap:12px;gap:12px}.approval-row,.audit-row,.batch-row,.config-row,.data-row,.delivery-row,.health-row,.order-row,.panel,.product-card,.promo-row,.rail-panel,.setting-row,.stat-card{border:1px solid var(--border);border-radius:8px;background:var(--surface)}.rail-panel{padding:14px}.rail-panel span{margin-top:5px;color:var(--ink-muted);font-size:13px}.panel{padding:18px}.panel.wide{grid-column:1/-1}.panel-heading{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.approval-row p,.audit-row p,.batch-row p,.data-row p,.delivery-row p,.empty-state,.health-row p,.panel p,.product-card p,.promo-row p{color:var(--ink-muted);line-height:1.55}.landing-grid,.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.hero-panel{display:grid;align-content:center;min-height:360px;padding:28px}.hero-panel h2{max-width:760px;font-size:40px;line-height:1.15}.hero-actions,.scan-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.health-grid,.live-snapshot,.metric-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.stat-card{min-height:112px;padding:16px}.stat-card span{color:var(--ink-muted);font-size:13px}.stat-card strong{display:block;margin-top:10px;color:var(--brand-ink);font-size:28px;line-height:1.15}.stat-card.info strong{color:var(--info)}.stat-card.warning strong{color:var(--warning)}.flow-panel{display:grid;grid-gap:8px;gap:8px}.approval-row,.audit-row,.batch-row,.config-row,.data-row,.delivery-row,.finance-row,.flow-row,.health-row,.order-row,.promo-row,.summary-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px}.flow-row{border-top:1px solid var(--border);border-radius:0;padding-left:0;padding-right:0}.flow-row span{color:var(--brand);font-weight:700}.customer-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:16px;gap:16px}.customer-layout>.panel:not(.checkout-panel){min-width:0}.browse-panel{grid-row:span 2}.customer-header{display:flex;gap:16px;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.search-input{width:min(340px,100%);min-height:42px;border:1px solid var(--border);border-radius:6px;padding:0 12px;outline:none}.search-input:focus,button:focus-visible,input[type=range]:focus-visible{box-shadow:var(--shadow-focus);outline:none}.promo-banner{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid #ead8b7;border-radius:8px;margin-bottom:14px;padding:12px;color:var(--promo);background:var(--promo-bg)}.promo-banner span{font-size:13px;font-weight:650}.chip-row{display:flex;gap:8px;overflow-x:auto;margin-bottom:14px;padding-bottom:4px}.chip-row span{flex:0 0 auto;border-radius:999px;padding:8px 12px;color:var(--brand-ink);background:var(--surface-tint);font-size:13px;font-weight:650}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.product-card{overflow:hidden}.product-card button{display:grid;width:100%;min-height:330px;border:0;padding:0;color:inherit;background:transparent;text-align:left}.product-card.active{border-color:var(--brand);box-shadow:var(--shadow-sm)}.product-card.disabled{opacity:.62}.product-image{display:grid;min-height:122px;place-items:center;background:var(--surface-tint);color:var(--brand-strong);font-size:32px;font-weight:700}.product-copy{display:grid;grid-gap:10px;gap:10px;padding:12px}.product-copy small{color:var(--ink-muted)}.price-row,.product-detail-line,.product-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.price-row strong,.product-meta>span{color:var(--brand-ink);font-weight:700}.add-action{display:inline-flex;width:max-content;border-radius:999px;padding:7px 10px;color:#fff;background:var(--brand);font-size:12px;font-weight:700}.checkout-panel{position:-webkit-sticky;position:sticky;top:86px}.price-row{justify-content:flex-start;margin:14px 0}.price-row strong{font-size:28px}.field{display:grid;grid-gap:8px;gap:8px;color:var(--ink-muted);font-size:13px;font-weight:650}.batch-table,.fifo-list,.order-table,.promo-list,.summary-list,.table-panel{display:grid;grid-gap:8px;gap:8px;margin-top:14px}.summary-row{border-top:1px solid var(--border);border-radius:0;padding-left:0;padding-right:0}.summary-row.strong{color:var(--brand-ink);font-size:18px}.full{width:100%}.fifo-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:3px 10px;gap:3px 10px;border:1px solid var(--border);border-radius:6px;padding:10px;background:var(--surface-muted)}.fifo-row small{grid-column:1/-1;color:var(--ink-muted)}.ops-grid{align-items:start}.split-band{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-top:14px;border-top:1px solid var(--border);padding-top:14px}.status-pill{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:0 9px;color:var(--ink-muted);background:var(--surface-muted);font-size:12px;font-weight:700;white-space:nowrap}.status-pill.fresh,.status-pill.success{color:var(--fresh);background:var(--fresh-bg)}.status-pill.expiring_soon,.status-pill.warning{color:var(--warning);background:var(--warning-bg)}.status-pill.expired{color:var(--danger);background:var(--danger-bg)}.status-pill.neutral{color:var(--ink-muted);background:var(--surface-muted)}.scanner-surface{position:relative;min-height:260px;overflow:hidden;border-radius:12px;background:#17211a}.scanner-label{position:absolute;left:14px;bottom:14px;color:#d7e4d4;font-size:13px;font-weight:700}.scan-box{position:absolute;border:2px solid #7de08e;border-radius:6px;color:#fff;padding:6px;font-size:12px}.scan-box.large{inset:58px auto auto 42px;width:54%;height:42%}.scan-box.small{right:42px;bottom:56px;width:34%;height:26%;border-color:#f5c36f}.scan-box small,.scan-box span{display:block}.scan-result{margin-top:12px;border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--surface-tint)}.scan-result p{margin:5px 0 0}.map-panel{min-height:0}.mock-map{position:relative;min-height:320px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--info-bg)}.map-pin{position:absolute;z-index:2;display:grid;width:58px;height:58px;place-items:center;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm);color:var(--brand-ink);font-size:12px;font-weight:700}.pickup{left:12%;top:22%}.rider{left:48%;top:45%;color:#fff;background:var(--info)}.dropoff{right:10%;bottom:18%}.route-line{position:absolute;inset:30% 18% 30% 20%;border-bottom:5px dashed var(--map-route);border-right:5px dashed var(--map-route);border-radius:0 0 72px 0;opacity:.65;transform:rotate(4deg)}.map-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.map-meta span{border-radius:999px;padding:7px 10px;color:var(--info);background:var(--info-bg);font-size:12px;font-weight:700}.timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:6px;gap:6px;margin-top:12px}.timeline span{border-radius:999px;padding:8px;color:var(--ink-muted);background:var(--surface-muted);text-align:center;font-size:12px;font-weight:700}.timeline .done{color:var(--fresh);background:var(--fresh-bg)}.timeline .active{color:#fff;background:var(--brand)}.chat-window{display:grid;grid-gap:10px;gap:10px}.chat-bubble{max-width:84%;border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--chat-seller)}.chat-bubble span{color:var(--ink-muted);font-size:12px;font-weight:700}.chat-bubble p{margin:4px 0 0}.chat-bubble.customer{justify-self:end;color:#fff;background:var(--chat-customer)}.chat-bubble.customer p,.chat-bubble.customer span{color:#fff}.chat-bubble.ai{border-color:#bcd8e6;background:var(--info-bg)}.proof-box{display:grid;grid-gap:10px;gap:10px;border:1px dashed var(--border-strong);border-radius:8px;margin-top:14px;padding:14px;background:var(--surface-muted)}.empty-state{border:1px dashed var(--border);border-radius:8px;padding:14px;text-align:center}@media (max-width:1180px){.customer-layout,.landing-grid,.operational-layout,.ops-grid,.rider-layout,.split-band,.workspace:not(.operational-layout){grid-template-columns:1fr}.checkout-panel,.insight-rail,.role-sidebar{position:static}.role-sidebar{display:flex;overflow-x:auto}.role-sidebar button{flex:0 0 auto;text-align:center}}@media (min-width:1181px){.rider-layout{display:grid;grid-template-columns:360px minmax(0,1fr);grid-gap:16px;gap:16px}}@media (max-width:900px){.topbar{grid-template-columns:1fr auto}.role-switcher{grid-column:1/-1;order:3}.role-title{display:grid}.health-grid,.live-snapshot,.metric-row,.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-header,.panel-heading,.promo-banner{display:grid;justify-content:stretch}.search-input{width:100%}}@media (max-width:560px){.app-shell{width:100%;padding-top:8px;padding-left:12px;padding-right:12px}.topbar{min-height:56px;gap:10px}.brand{min-width:0}.brand span,.top-actions .avatar{display:none}.role-tabs button{min-height:36px;padding:0 12px}.hero-panel h2,h1{font-size:28px}.hero-panel,.panel{padding:14px}.health-grid,.live-snapshot,.metric-row,.product-grid,.timeline{grid-template-columns:1fr}.product-card button{min-height:0}.approval-row,.audit-row,.batch-row,.config-row,.data-row,.delivery-row,.health-row,.order-row,.promo-row{display:grid;justify-content:stretch}.ghost-button,.primary-button{width:100%}.mock-map,.scanner-surface{min-height:260px}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;position:relative;overflow:hidden;background:radial-gradient(circle at 10% 20%,rgba(31,122,77,.05) 0,transparent 40%),radial-gradient(circle at 90% 80%,rgba(19,92,57,.06) 0,transparent 50%),var(--bg)}.login-background-shape{position:absolute;width:400px;height:400px;border-radius:50%;filter:blur(100px);z-index:0;opacity:.15}.login-shape-1{background:var(--brand);top:-100px;left:-100px}.login-shape-2{background:var(--brand-strong);bottom:-150px;right:-100px}.login-card{position:relative;z-index:10;width:100%;max-width:480px;background:hsla(0,0%,100%,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid hsla(40,21%,84%,.6);border-radius:20px;padding:40px;box-shadow:0 20px 40px rgba(28,33,26,.06),0 1px 3px rgba(28,33,26,.02);transition:transform .3s ease,box-shadow .3s ease}.login-card:hover{box-shadow:0 30px 60px rgba(28,33,26,.09)}.login-header{text-align:center;margin-bottom:32px}.login-logo{display:inline-grid;width:60px;height:60px;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--brand-strong) 0,var(--brand) 100%);color:#fff;font-size:28px;font-weight:800;margin-bottom:16px;box-shadow:0 8px 16px rgba(31,122,77,.25);border:1px solid hsla(0,0%,100%,.2)}.login-header h2{font-size:26px;font-weight:700;color:var(--brand-ink);margin-bottom:8px}.login-header p{color:var(--ink-muted);font-size:14px}.login-form{display:grid;grid-gap:20px;gap:20px;margin-bottom:32px}.input-group{display:grid;grid-gap:8px;gap:8px}.input-label{font-size:13px;font-weight:600;color:var(--ink)}.input-field-wrapper{position:relative}.input-field{width:100%;min-height:48px;border:1px solid var(--border);border-radius:10px;padding:0 16px;background:var(--surface);transition:all .2s ease;font-size:14px}.input-field:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(31,122,77,.12);outline:none}.login-error{color:var(--danger);background:var(--danger-bg);border:1px solid rgba(191,58,43,.15);border-radius:8px;padding:12px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px}.demo-selector-section{border-top:1px solid var(--border);padding-top:24px}.demo-selector-title{font-size:13px;font-weight:600;color:var(--ink-muted);margin-bottom:12px;text-align:center}.demo-accounts-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}.demo-account-card{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface);text-align:left;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;width:100%}.demo-account-card:hover{border-color:var(--brand);background:var(--surface-tint);transform:translateY(-2px);box-shadow:0 6px 12px rgba(31,122,77,.05)}.demo-account-card.active{border-color:var(--brand);background:var(--brand-soft)}.demo-account-card .role-name{font-size:13px;font-weight:700;color:var(--brand-ink)}.demo-account-card .user-name{font-size:11px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.demo-account-card .phone-num{font-size:11px;color:var(--ink-soft);font-family:Plus Jakarta Sans,monospace;margin-top:2px}.profile-dropdown-wrapper{position:relative;display:flex;align-items:center;gap:12px}.user-profile-summary{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:999px;padding:4px 12px 4px 6px;background:var(--surface);transition:all .2s ease;cursor:pointer}.user-profile-summary:hover{background:var(--surface-muted);border-color:var(--border-strong)}.user-profile-details{display:flex;flex-direction:column;text-align:left}.user-profile-details .user-name{font-size:13px;font-weight:700;color:var(--ink);line-height:1.2}.user-profile-details .user-role{font-size:10px;color:var(--brand);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.logout-btn{min-height:34px;border-radius:999px;padding:0 12px;background:var(--danger-bg);color:var(--danger);border:1px solid rgba(191,58,43,.2);font-size:12px;font-weight:650;transition:all .2s ease}.logout-btn:hover{background:var(--danger);color:#fff;transform:translateY(-1px)}.panel{transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px rgba(28,33,26,.03)}.panel:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.product-card{transition:all .25s cubic-bezier(.4,0,.2,1)}.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);border-color:var(--brand-strong)}.topbar{box-shadow:0 4px 20px rgba(0,0,0,.02);border-bottom:1px solid hsla(40,21%,84%,.5);background:hsla(48,38%,97%,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand-mark{box-shadow:0 4px 10px rgba(31,122,77,.2)}