/* v2: design tokens consolidated into the single canonical :root at the end of this file (search "PRIMARY: guava pink"). Legacy per-section :root blocks removed. */
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,"Noto Sans Thai",sans-serif;background:radial-gradient(circle at top left,#ffe4f0 0,#fff7fb 34%,#fff 100%);color:var(--ink)}a{color:inherit;text-decoration:none}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:12px 18px;display:flex;justify-content:space-between;gap:14px;align-items:center}.brand{font-weight:900;color:var(--dark);display:flex;gap:10px;align-items:center}.brand small{display:block;color:var(--muted);font-size:.72rem}.logo{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,var(--green),#ff9ec7);color:white;box-shadow:0 10px 24px rgba(236,63,131,.25)}nav{display:flex;gap:8px;overflow:auto}nav a{padding:9px 12px;border-radius:999px;color:#8a3360;font-weight:800;white-space:nowrap}nav a:hover{background:#f1fbe6;color:var(--green)}main{max-width:1180px;margin:auto;padding:18px 18px 86px}.hero,.page-head{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:30px;padding:28px;margin-bottom:18px;background:linear-gradient(135deg,#a80f55,#ec3f83 55%,#ff9ec7);color:white}.pro-hero{display:grid;grid-template-columns:1.3fr .85fr;gap:20px;align-items:center;min-height:320px}.hero h1,.page-head h1{font-size:clamp(2.2rem,7vw,4.8rem);line-height:.95;margin:8px 0 12px;letter-spacing:-.05em}.hero p,.page-head p{font-size:1.08rem;opacity:.94;max-width:650px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:900;opacity:.82}.hero-actions,.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.phone-card{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);border-radius:28px;padding:22px;backdrop-filter:blur(10px)}.phone-card ol{padding-left:22px;line-height:1.8}.badge{display:inline-flex;align-items:center;border-radius:999px;}
.map-tools{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.map-tools .btn{white-space:nowrap}.muted a{color:var(--green);font-weight:900;text-decoration:underline}.mini-admin-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.mini-admin-row:last-child{border-bottom:0}.mini-admin-row form{margin:0}.mini-admin-row .btn{padding:8px 10px;font-size:.85rem}.notice{display:grid;gap:4px;padding:12px 14px;border-radius:18px;border:1px solid var(--line);background:#f8fafc;margin-bottom:14px}.notice.success{background:#f1fbe6;border-color:#cdea9f;color:#3a6b12}.notice span{color:var(--muted)}.stack-form{display:grid;gap:12px}.stack-form textarea{width:100%;border:1px solid var(--line);border-radius:16px;padding:12px;font:inherit;background:white;resize:vertical}.steps-list{padding-left:20px;display:grid;gap:12px}.steps-list li span{display:block;color:var(--muted);margin-top:2px}.report-panel{margin-bottom:18px}.compact-stats{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.compact-stats b{font-size:1.45rem}.report-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:start}.report-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:white}.report-table{width:100%;border-collapse:collapse;min-width:720px}.report-table th,.report-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:right;vertical-align:top}.report-table th:first-child,.report-table td:first-child{text-align:left}.report-table th{font-size:.82rem;color:var(--muted);background:#f8fafc}.report-table small{display:block}.status-report{display:grid;gap:8px}.status-report div{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:16px;padding:10px 12px;background:white}.report-date-form{min-width:260px}
@media(max-width:820px){.topbar{align-items:flex-start;flex-direction:column;padding:10px 12px}nav{width:100%;padding-bottom:2px}.pro-hero,.layout-2{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.inline-form{grid-template-columns:1fr}.hero,.page-head{border-radius:22px;padding:22px}main{padding:12px 12px 88px}.section-title,.order-top{align-items:flex-start;flex-direction:column}.sticky-panel{position:static}.floating-order{left:16px;text-align:center}.total-box{bottom:74px}.menu-card{grid-template-columns:68px 1fr}.food-img{height:68px}.menu-edit summary{flex-direction:column}.stats-row{grid-template-columns:repeat(3,1fr)}.stats-row b{font-size:1.45rem}.map-tools{grid-template-columns:1fr}.map-tools .btn{width:100%}}


/* Grab-like customer screen v3 */
body.grab-customer-page{background:#fff;color:#111827}body.grab-customer-page .topbar{display:none}body.grab-customer-page main{max-width:560px;padding:0 0 92px;background:#fff;min-height:100vh;box-shadow:0 0 0 1px rgba(0,0,0,.03),0 24px 80px rgba(0,0,0,.10)}body.grab-customer-page .floating-order{display:none}.grab-shell{background:#fff;overflow:hidden}.grab-hero{position:relative;background:linear-gradient(180deg,#f8ad05 0%,#f5a400 74%,#fff 75%);min-height:430px;padding:14px 24px 0;border-radius:0;color:#111;overflow:hidden}.grab-hero:after{content:"";position:absolute;left:-12%;right:-12%;bottom:70px;height:82px;background:#fff;border-radius:0 0 50% 50%/0 0 80% 80%;transform:rotate(-2deg);z-index:0}.grab-hero>*{position:relative;z-index:1}.grab-statusbar{height:34px;display:flex;align-items:center;justify-content:space-between;font-weight:900;font-size:18px}.grab-device-pill{background:#050505;color:white;border-radius:999px;padding:8px 34px;font-size:15px}.grab-topline{display:grid;grid-template-columns:42px 1fr 54px 54px;gap:8px;align-items:center;margin-top:12px}.grab-back{font-size:48px;line-height:1;font-weight:300}.grab-location small{display:block;font-size:14px;opacity:.72;line-height:1.05}.grab-location b{display:block;font-size:24px;letter-spacing:-.02em}.grab-round{width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.30);display:grid;place-items:center;font-size:30px;font-weight:900}.grab-search{display:grid;grid-template-columns:54px 1fr;align-items:center;background:#fff;border-radius:22px;margin:22px 0 34px;padding:0 18px;height:88px;box-shadow:0 6px 20px rgba(0,0,0,.08)}.grab-search span{font-size:43px;line-height:1;color:#171717;transform:rotate(-10deg)}.grab-search input{border:0;background:transparent;outline:0;font-size:28px;font-weight:600;color:#111;width:100%;font-family:inherit}.grab-search input::placeholder{color:#858585}.grab-promo{display:grid;grid-template-columns:1fr 42px 132px;align-items:center;gap:10px;}
/* Customer app real rebuild v1 */

/* Customer app real rebuild v1 */
body.grab-customer-page{background:#fff0f6;color:#152016}body.grab-customer-page .topbar{display:none}body.grab-customer-page main{max-width:560px;margin:0 auto;padding:0 0 124px;background:#fff7fb;min-height:100vh;box-shadow:0 0 0 1px rgba(0,0,0,.04),0 28px 90px rgba(0,0,0,.14)}body.grab-customer-page .floating-order{display:none}.customer-app{min-height:100vh}.customer-hero{background:linear-gradient(160deg,#5fae22 0%,#84cc16 58%,#fff7fb 58%);padding:14px 16px 22px;color:white}.customer-top{display:grid;grid-template-columns:44px 1fr 44px;gap:10px;align-items:center}.circle-btn{width:44px;height:44px;border:0;border-radius:16px;background:rgba(255,255,255,.2);display:grid;place-items:center;color:white;font-size:30px;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}.delivery-to span{display:block;font-size:12px;font-weight:800;opacity:.85}.delivery-to strong{display:block;font-size:16px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-search{height:56px;margin:18px 0 16px;background:white;border-radius:18px;display:grid;grid-template-columns:46px 1fr;align-items:center;padding:0 14px;box-shadow:0 12px 28px rgba(236,63,131,.16)}.customer-search span{color:#111}.customer-search input{border:0;outline:0;font:inherit;font-size:15px;font-weight:800;width:100%}.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.service-card{border:0;border-radius:20px;background:rgba(255,255,255,.92);color:#16351f;padding:12px 8px;text-align:left;box-shadow:0 12px 24px rgba(236,63,131,.12)}.service-card.active{outline:3px solid rgba(255,255,255,.6);background:#fff}.service-card b{display:block;font-size:26px}.service-card span{display:block;font-weight:950;font-size:14px}.service-card small{display:block;color:#647067;font-size:11px}.customer-alert{margin:12px 16px;padding:12px 14px;border-radius:16px;background:#fef2f2;color:#991b1b;font-weight:900}
.real-menu-card.in-cart{background:#f1fbe6;border-radius:18px;padding-left:8px;padding-right:8px;border-top-color:transparent}


/* YouTube-inspired clean food app adaptation v2 (original KH assets only) */
body.grab-customer-page main{background:linear-gradient(180deg,#f2f4f7 0%,#fbfdfb 360px)}
.customer-hero{background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.36) 0 18%,transparent 19%),linear-gradient(155deg,#111827 0%,#3a6b12 48%,#5fae22 100%);border-radius:0 0 34px 34px;padding-bottom:26px;position:relative;overflow:hidden}.customer-hero:after{content:'🍔';position:absolute;right:-8px;bottom:-28px;font-size:142px;filter:drop-shadow(0 22px 30px rgba(0,0,0,.28));opacity:.95;transform:rotate(-8deg)}.customer-hero>*{position:relative;z-index:1}.customer-search{max-width:370px}.service-cards{max-width:390px}.service-card{backdrop-filter:blur(10px);transition:transform .18s ease, box-shadow .18s ease}.service-card:active,.featured-food-card:active{transform:scale(.97)}.selected-shop-card{background:linear-gradient(145deg,#ffffff,#f8fafc);color:#111827;border:1px solid rgba(15,23,42,.08);box-shadow:0 24px 60px rgba(15,23,42,.12)}.selected-badge{background:#f1fbe6;color:#4e8f1c;border-color:#cdea9f}.selected-shop-logo{background:linear-gradient(135deg,#ec3f83,#ff9ec7);color:white;box-shadow:0 14px 32px rgba(236,63,131,.25)}.selected-shop-main p,.selected-shop-main small{color:#64748b}.selected-shop-meta span{background:#f1f5f9;color:#334155}.featured-food-section{margin:14px 14px 0}.featured-food-scroll{display:flex;gap:12px;overflow:auto;padding:4px 2px 12px}.featured-food-card{border:0;min-width:188px;text-align:left;background:#fff;border-radius:28px;padding:12px;box-shadow:0 18px 48px rgba(15,23,42,.10);display:grid;grid-template-columns:1fr 38px;grid-template-areas:'art art' 'info plus' 'price plus';gap:8px;position:relative}.featured-food-card:disabled{opacity:.5}.featured-food-art{grid-area:art;height:118px;border-radius:24px;display:grid;place-items:center;font-size:64px;background:radial-gradient(circle,#fff7ed 0 24%,#fed7aa 25% 45%,#fb923c 46% 100%);box-shadow:inset 0 -18px 30px rgba(0,0,0,.08)}.food-art-2{background:radial-gradient(circle,#eff6ff 0 24%,#bfdbfe 25% 45%,#60a5fa 46% 100%)}.food-art-3{}
/* Delivery app polish v4: tracking + operator UX */
.track-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-radius:30px;padding:28px;margin-bottom:18px;color:white;background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.26) 0 17%,transparent 18%),linear-gradient(135deg,#7a0f3f,#a80f55 52%,#ec3f83);box-shadow:var(--shadow)}
.track-hero h1{font-size:clamp(2rem,6vw,4rem);line-height:.96;margin:6px 0;letter-spacing:-.04em}.track-state{border-radius:999px;padding:12px 16px;background:white;color:#3a6b12;font-weight:1000;box-shadow:0 16px 36px rgba(0,0,0,.18);white-space:nowrap}.track-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.track-main-card{overflow:hidden}.delivery-progress{position:relative;display:grid;gap:0;padding:6px 0}.delivery-progress:before{content:"";position:absolute;left:26px;top:28px;bottom:28px;width:5px;border-radius:999px;background:#e5e7eb}.delivery-progress:after{content:"";position:absolute;left:26px;top:28px;height:var(--progress);max-height:calc(100% - 56px);width:5px;border-radius:999px;background:linear-gradient(#84cc16,#5fae22)}.progress-step{position:relative;z-index:1;display:grid;grid-template-columns:58px 1fr;gap:12px;padding:12px 0;align-items:center}.step-icon{width:56px;height:56px;border-radius:20px;background:#f1f5f9;display:grid;place-items:center;font-size:28px;border:4px solid white;box-shadow:0 8px 22px rgba(15,23,42,.08)}.progress-step.done .step-icon,.progress-step.current .step-icon{background:#eafad6;box-shadow:0 10px 28px rgba(236,63,131,.18)}.progress-step.current .step-icon{outline:4px solid rgba(132,204,22,.18);animation:pulse-green 1.8s ease-in-out infinite}.progress-step b{display:block;font-size:1.04rem}.progress-step small{display:block;color:var(--muted);margin-top:3px}.track-side{display:grid;gap:18px}.info-lines{display:grid;gap:10px}.info-lines p{margin:0;padding:12px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}.info-lines b{display:block;color:#64748b;font-size:.82rem}.info-lines span{font-weight:850}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.receipt-items{display:grid;gap:8px;border-bottom:1px dashed #cbd5e1;padding-bottom:12px;margin-bottom:12px}.receipt-items div,.receipt-total{display:flex;justify-content:space-between}
@media(max-width:900px){.track-layout{grid-template-columns:1fr}.track-hero{align-items:flex-start;flex-direction:column;border-radius:0 0 28px 28px;margin:-12px -12px 14px}.shop-workflow,.rider-workflow{grid-template-columns:1fr 1fr}.quick-actions{grid-template-columns:1fr}.track-side{gap:12px}}

/* KH Delivery logo theme v1: tokens consolidated into canonical :root (end of file) */
body{background:radial-gradient(circle at 18% 0%,#ffe6f2 0 23%,transparent 24%),radial-gradient(circle at 84% 10%,#eaffcf 0 16%,transparent 17%),linear-gradient(180deg,#fff7fb,#fff 48%,#fff5fa);color:var(--ink)}
.topbar{background:rgba(255,247,251,.92);border-bottom:1px solid #ffd1e4;box-shadow:0 8px 28px rgba(236,63,131,.08)}
.brand{color:var(--kh-deep)}.brand-logo{width:48px;height:48px;border-radius:17px;object-fit:cover;border:3px solid #fff;box-shadow:0 10px 24px rgba(236,63,131,.28)}.brand b{font-size:1.05rem;letter-spacing:.01em}.logo{background:linear-gradient(135deg,var(--kh-pink),var(--kh-pink-2))}
nav a{color:#7a214a}nav a:hover{background:#ffe6f1;color:var(--kh-pink)}
.hero,.page-head{background:radial-gradient(circle at 82% 13%,rgba(184,236,73,.85) 0 8%,transparent 9%),radial-gradient(circle at 90% 34%,rgba(255,255,255,.45) 0 14%,transparent 15%),linear-gradient(135deg,#ff6aaa 0%,#ec3f83 47%,#a80f55 100%);border-color:#ffc3dc;box-shadow:0 24px 70px rgba(236,63,131,.24)}
.hero-brand-mark{width:112px;height:112px;border-radius:31px;overflow:hidden;border:5px solid white;box-shadow:0 18px 45px rgba(138,15,69,.24);margin-bottom:14px;background:white}.hero-brand-mark img{width:100%;height:100%;object-fit:cover}.eyebrow{color:#fff8fb}.phone-card{background:rgba(255,255,255,.21);border-color:rgba(255,255,255,.38)}
.btn.primary{background:linear-gradient(135deg,var(--kh-pink),#c91665);box-shadow:0 12px 28px rgba(236,63,131,.25)}.btn.light,.btn.ghost{border-color:#ffc3dc;color:#8a0f45;background:#fff5fa}.badge{background:#ffe4f0;color:#b20f58}.live-dot:before{background:var(--kh-leaf)}
.card,.stats-row div,.panel,.order-card,.shop-picker,.selected-shop-card,.menu-section,.checkout-section,.cart-panel{border-color:#ffd1e4;box-shadow:0 18px 45px rgba(236,63,131,.10)}
.stats-row div b,.muted a{color:var(--kh-pink)}
.floating-order{background:linear-gradient(135deg,var(--kh-pink),#b80e5b);box-shadow:0 18px 40px rgba(236,63,131,.30)}
body.grab-customer-page{background:#fff5fa;color:#321426}body.grab-customer-page main{background:linear-gradient(180deg,#fff0f7 0%,#fffafc 420px);box-shadow:0 0 0 1px rgba(236,63,131,.06),0 28px 90px rgba(138,15,69,.14)}
.customer-hero.kh-customer-hero{background:radial-gradient(circle at 80% 19%,rgba(184,236,73,.86) 0 9%,transparent 10%),radial-gradient(circle at 14% 17%,rgba(255,255,255,.55) 0 11%,transparent 12%),linear-gradient(155deg,#ff78b1 0%,#ec3f83 52%,#9d0c4f 100%);border-radius:0 0 38px 38px;padding-bottom:24px;color:white}.customer-hero.kh-customer-hero:after{content:'💗';right:12px;bottom:-20px;font-size:116px;opacity:.26;filter:none;transform:rotate(-10deg)}
.brand-delivery-to{display:grid;grid-template-columns:48px 1fr;column-gap:10px;align-items:center}.brand-delivery-to span,.brand-delivery-to strong{grid-column:2}.customer-logo{grid-row:1 / span 2;width:48px;height:48px;border-radius:16px;object-fit:cover;border:3px solid #fff;box-shadow:0 10px 26px rgba(138,15,69,.25)}.brand-slogan{display:inline-flex;margin-top:14px;padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.34);font-weight:950;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.circle-btn{background:rgba(255,255,255,.24);color:white}.customer-search{box-shadow:0 16px 34px rgba(138,15,69,.20);border:1px solid #fff0f7}.service-card{color:#7a113f}.service-card.active{outline-color:rgba(255,255,255,.75);box-shadow:0 14px 30px rgba(138,15,69,.18)}.selected-badge{background:#ffe4f0;color:#b20f58;border-color:#ffc3dc}.selected-shop-logo,.shop-avatar{background:linear-gradient(135deg,#ec3f83,#ff85b7)!important;color:white}.selected-shop-meta span{background:#fff0f7;color:#8a0f45}.featured-food-card,.real-menu-card{border:1px solid #ffd1e4;box-shadow:0 18px 46px rgba(236,63,131,.12)}.featured-plus,.qty-plus{background:linear-gradient(135deg,#ec3f83,#b80e5b)!important;color:white}.qty-minus{color:#b80e5b}.menu-category{color:#8a0f45}.cart-panel{background:rgba(255,250,252,.96);border-top:1px solid #ffd1e4}.cart-totals strong{color:#8a0f45}.food-photo,.featured-food-photo{border-color:#ffd1e4}
.track-hero{background:radial-gradient(circle at 82% 14%,rgba(184,236,73,.75) 0 9%,transparent 10%),linear-gradient(135deg,#ff74ad,#ec3f83 54%,#8a0f45)}.track-state{color:#b20f58}.delivery-progress:after{background:linear-gradient(#ff74ad,#ec3f83)}.progress-step.done .step-icon,.progress-step.current .step-icon{background:#ffe4f0}.progress-step.current .step-icon{outline-color:rgba(236,63,131,.18)}
@media(max-width:820px){.brand-logo{width:44px;height:44px}.hero-brand-mark{width:92px;height:92px}.brand-delivery-to{grid-template-columns:42px 1fr}.customer-logo{width:42px;height:42px}.brand-slogan{font-size:.88rem}}

/* KH Delivery mobile readability patch v2 */
.kh-customer-hero .delivery-to span,.kh-customer-hero .delivery-to strong,.kh-customer-hero .brand-slogan{text-shadow:0 2px 10px rgba(82,6,42,.28)}
.kh-customer-hero .customer-top{grid-template-columns:44px minmax(0,1fr) 44px}.brand-delivery-to strong{font-size:15px;white-space:normal;line-height:1.2}.customer-search{max-width:100%}.service-cards{overflow-x:auto;grid-template-columns:repeat(3,minmax(118px,1fr));padding-bottom:3px}.service-card{min-height:76px}.customer-order-form{display:block}.cart-panel{position:sticky;bottom:0;z-index:12;border-radius:24px 24px 0 0;margin:18px 0 0;padding-bottom:max(14px,env(safe-area-inset-bottom));backdrop-filter:blur(14px)}
.checkout-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.checkout-section input,.checkout-section textarea,.checkout-section select{font-size:16px}
@media(max-width:520px){body.grab-customer-page main{max-width:none;width:100%;box-shadow:none}.customer-hero.kh-customer-hero{padding:12px 13px 20px;border-radius:0 0 30px 30px}.customer-logo{width:54px;height:54px;border-radius:18px}.brand-delivery-to{grid-template-columns:54px 1fr}.brand-slogan{margin-top:12px;font-size:.92rem}.service-cards{display:flex;gap:10px}.service-card{flex:0 0 124px}.shop-scroll,.featured-food-scroll{scroll-snap-type:x proximity}.shop-chip,.featured-food-card{scroll-snap-align:start}.checkout-grid{grid-template-columns:1fr}.real-menu-card{grid-template-columns:minmax(0,70px) 1fr;gap:10px}.real-menu-card .qty-stepper{grid-column:2;justify-self:start}.cart-panel{left:0;right:0;margin-left:0;margin-right:0}.cart-totals{display:grid;gap:4px}.cart-items{max-height:90px;overflow:auto}.btn.big{min-height:50px}.customer-section-title h2{font-size:1.25rem}}

/* KH Delivery role pages polish v3: merchant/rider/admin/tracking */
.page-head{position:relative;overflow:hidden;min-height:176px;align-items:flex-end}.page-head:before{content:"";position:absolute;right:22px;top:18px;width:112px;height:112px;border-radius:30px;background:url('/static/brand/kh-delivery-logo.jpg') center/cover no-repeat;box-shadow:0 18px 42px rgba(120,12,63,.22);border:4px solid rgba(255,255,255,.8);transform:rotate(4deg)}.page-head:after{content:"KH Delivery";position:absolute;right:28px;bottom:18px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.86);color:#b20f58;font-weight:1000;box-shadow:0 12px 28px rgba(120,12,63,.14)}.page-head>div{position:relative;z-index:1;max-width:760px}.page-head h1{color:#fff;text-shadow:0 4px 18px rgba(102,7,51,.22)}.page-head p{color:rgba(255,255,255,.92);text-shadow:0 2px 12px rgba(102,7,51,.18)}.page-head .eyebrow{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.86);color:#b20f58;font-weight:1000;text-shadow:none}.merchant-head:before{transform:rotate(-4deg)}.rider-head{background:radial-gradient(circle at 84% 13%,rgba(184,236,73,.85) 0 8%,transparent 9%),linear-gradient(135deg,#ff77ad 0%,#ec3f83 50%,#68b927 130%)}.admin-head{background:radial-gradient(circle at 84% 12%,rgba(184,236,73,.85) 0 8%,transparent 9%),linear-gradient(135deg,#2b1736 0%,#b20f58 48%,#ec3f83 100%)}
.shop-workflow,.rider-workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.workflow-chip{background:linear-gradient(180deg,#fff,#fff7fb);border:1px solid #ffd1e4;border-radius:22px;padding:14px;box-shadow:0 12px 32px rgba(236,63,131,.10)}.workflow-chip b{display:block;color:#b20f58}.workflow-chip span{display:block;margin-top:5px;color:#64748b;font-size:.92rem;line-height:1.35}.panel h2,.section-title h2{color:#8a0f45}.shop-switcher .pill-row,.panel .pill-row{gap:10px}.pill{border-color:#ffd1e4;background:#fff7fb;color:#8a0f45}.pill.active{background:linear-gradient(135deg,#ec3f83,#b20f58);color:#fff;border-color:#ec3f83;box-shadow:0 12px 28px rgba(236,63,131,.22)}.pill small{opacity:.78}.menu-edit{border:1px solid #ffd1e4;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(236,63,131,.08);overflow:hidden}.menu-edit+ .menu-edit{margin-top:10px}.menu-edit summary{cursor:pointer;display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:12px}.menu-edit summary::-webkit-details-marker{display:none}.menu-edit summary:after{content:'แก้ไข';font-weight:900;color:#ec3f83;background:#fff0f6;border-radius:999px;padding:6px 10px}.menu-thumb{width:56px;height:56px;border-radius:16px;object-fit:cover;background:#fff0f6;border:1px solid #ffd1e4}.menu-thumb.placeholder{display:grid;place-items:center;font-size:1.5rem}.menu-photo-form,.menu-edit form{padding:0 12px 12px}.inline-form.wide.menu-photo-form{grid-template-columns:1fr 110px 1fr 1.2fr 1.2fr;align-items:end}.premium-order,.order.hot{border-color:#ffb8d6;background:linear-gradient(180deg,#fff,#fff7fb)}.order.hot{box-shadow:0 16px 42px rgba(236,63,131,.14)}.items-mini span{background:#fff0f6;color:#8a0f45;border-color:#ffd1e4}.stats-row{gap:12px}.stats-row div{background:linear-gradient(180deg,#fff,#fff7fb);border:1px solid #ffd1e4;border-radius:22px}.stats-row div b{font-size:1.8rem}.report-table-wrap{overflow-x:auto;border-radius:18px;}
@media(max-width:900px){.shop-workflow,.rider-workflow{grid-template-columns:1fr 1fr}.page-head:before{width:86px;height:86px;right:16px;top:16px}.page-head:after{right:16px;bottom:14px}.inline-form.wide.menu-photo-form{grid-template-columns:1fr}.mini-admin-row{grid-template-columns:1fr}.report-date-form{width:100%}.report-date-form input,.report-date-form button{width:100%}.track-hero:before{width:78px;height:78px}}
@media(max-width:560px){.page-head{min-height:220px;padding-top:118px}.page-head:before{left:18px;right:auto}.page-head:after{left:18px;right:auto;top:96px;bottom:auto}.shop-workflow,.rider-workflow{grid-template-columns:1fr}.menu-edit summary{grid-template-columns:48px 1fr}.menu-edit summary:after{grid-column:2}.menu-thumb{width:48px;height:48px}.quick-actions{grid-template-columns:1fr}.stats-row.compact-stats{grid-template-columns:1fr 1fr}.topbar nav a{white-space:nowrap}.report-table{min-width:640px}}

/* KH Delivery role pages fix v4: merchant form alignment + safer mobile FAB */
.form-card label:has(input[type=checkbox]),
.inline-form label:has(input[type=checkbox]){
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:10px 12px;
  border:1px solid #ffd1e4;
  border-radius:16px;
  background:#fff7fb;
  color:#8a0f45;
  font-weight:900;
}
.form-card input[type=checkbox],
.inline-form input[type=checkbox]{
  width:22px;
  height:22px;
  accent-color:#ec3f83;
  flex:0 0 auto;
}
.form-card input[type=file]{
  width:100%;
  min-height:46px;
  padding:10px;
  border:2px dashed #ff9fc6;
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#fff7fb);
  color:#8a0f45;
  font-weight:800;
}
.form-card input[type=file]::file-selector-button{
  border:0;
  border-radius:999px;
  padding:9px 13px;
  margin-right:10px;
  background:linear-gradient(135deg,#ec3f83,#b20f58);
  color:#fff;
  font-weight:1000;
  box-shadow:0 8px 18px rgba(236,63,131,.18);
}
.form-card label small,
.inline-form label small{
  color:#6b3750;
  line-height:1.35;
}
.empty-state,
.panel:has(> p.muted:only-child){
  background:linear-gradient(180deg,#fff,#fff7fb);
}
.floating-cart{
  z-index:30;
  box-shadow:0 16px 34px rgba(236,63,131,.28);
}
@media(max-width:640px){
  body{padding-bottom:78px;}
  .floating-cart{
    right:14px;
    bottom:14px;
    left:auto;
    max-width:calc(100vw - 28px);
    padding:12px 16px;
    border-radius:999px;
  }
  .page-head{border-radius:0 0 28px 28px;margin-left:-14px;margin-right:-14px;}
  .content-grid,.checkout-grid,.customer-grid{gap:12px;}
  .form-card label:has(input[type=checkbox]){font-size:1rem;}
}

/* KH Delivery admin/rider UX fix v5 */
body[data-path$='/admin'] .floating-cart,
body[data-path='/admin'] .floating-cart,
body[data-path$='/rider'] .floating-cart,
body[data-path='/rider'] .floating-cart{
  display:none;
}
body[data-path$='/admin'] .mini-admin-row,
body[data-path='/admin'] .mini-admin-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
}
body[data-path$='/admin'] .mini-admin-row a,
body[data-path='/admin'] .mini-admin-row a{
  min-width:0;
  overflow-wrap:normal;
  word-break:keep-all;
}
body[data-path$='/admin'] .mini-admin-row a b,
body[data-path='/admin'] .mini-admin-row a b{
  display:block;
  white-space:normal;
  line-height:1.25;
}
body[data-path$='/admin'] .mini-admin-row small,
body[data-path='/admin'] .mini-admin-row small,
body[data-path$='/admin'] .event-line small,
body[data-path='/admin'] .event-line small,
body[data-path$='/admin'] .muted,
body[data-path='/admin'] .muted{
  color:#475569;
}
body[data-path$='/admin'] aside .panel:last-child,
body[data-path='/admin'] aside .panel:last-child{
  max-height:520px;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#ec3f83 #fff0f6;
}
body[data-path$='/admin'] .event-line,
body[data-path='/admin'] .event-line{
  margin-bottom:8px;
  background:#fff;
  border:1px solid #ffe1ee;
  border-left:4px solid #ec3f83;
}
body[data-path$='/admin'] input::placeholder,
body[data-path='/admin'] input::placeholder,
body[data-path$='/admin'] textarea::placeholder,
body[data-path='/admin'] textarea::placeholder{
  color:#64748b;
  opacity:1;
}
body[data-path$='/admin'] .inline-form,
body[data-path='/admin'] .inline-form{
  align-items:end;
}
body[data-path$='/admin'] .inline-form button,
body[data-path='/admin'] .inline-form button{
  white-space:nowrap;
}
@media(max-width:900px){
  body[data-path$='/admin'] .mini-admin-row,
  body[data-path='/admin'] .mini-admin-row{grid-template-columns:1fr;}
  body[data-path$='/admin'] aside .panel:last-child,
  body[data-path='/admin'] aside .panel:last-child{max-height:360px;}
}

/* KH Delivery floating order visibility fix v6 */
body[data-path$='/admin'] .floating-order,
body[data-path='/admin'] .floating-order,
body[data-path$='/rider'] .floating-order,
body[data-path='/rider'] .floating-order{
  display:none !important;
}
body[data-path$='/shop/manage'] .floating-order,
body[data-path='/shop/manage'] .floating-order{
  bottom:18px;
  right:18px;
}
@media(max-width:640px){
  body[data-path$='/shop/manage'] .floating-order,
  body[data-path='/shop/manage'] .floating-order{
    bottom:12px;
    right:12px;
    padding:11px 14px;
  }
}

/* KH Delivery shop manage polish v7: avoid floating CTA overlap + active shop contrast */
body[data-path$='/shop/manage'] .floating-order,
body[data-path='/shop/manage'] .floating-order{
  display:none !important;
}
body[data-path$='/shop/manage'] .pill.active,
body[data-path='/shop/manage'] .pill.active,
body[data-path$='/shop'] .pill.active,
body[data-path='/shop'] .pill.active{
  color:#fff !important;
  text-shadow:0 1px 1px rgba(107,33,68,.18);
}
body[data-path$='/shop/manage'] .pill.active small,
body[data-path='/shop/manage'] .pill.active small,
body[data-path$='/shop'] .pill.active small,
body[data-path='/shop'] .pill.active small{
  color:#fff7fb !important;
  opacity:1;
}


/* KH Delivery Play Store readiness v1 */
.legal-hero{background:linear-gradient(135deg,#ec3f83,#ff8fbd 55%,#b8ec49);color:#fff;}
.legal-page{max-width:900px;margin:18px auto 56px;line-height:1.75;}
.legal-page h2{color:#b4145d;margin-top:22px;}
.legal-page ul{padding-left:22px;}
.legal-page li{margin:8px 0;}
@media(max-width:720px){.topbar nav a[href$="/privacy"]{display:none}.legal-page{margin:12px;}}

/* KH Delivery customer-first home v8 */
.home-mobile-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:end;margin-bottom:16px;border:1px solid #ffc3dc;border-radius:34px;padding:26px;overflow:hidden;color:#fff;background:radial-gradient(circle at 83% 18%,rgba(184,236,73,.92) 0 8%,transparent 9%),radial-gradient(circle at 10% 12%,rgba(255,255,255,.34) 0 13%,transparent 14%),linear-gradient(135deg,#ff72ad 0%,#ec3f83 52%,#8a0f45 100%);box-shadow:0 24px 70px rgba(236,63,131,.22)}
.home-mobile-hero:after{content:'🛵';position:absolute;right:15px;top:18px;font-size:88px;opacity:.18;transform:rotate(-12deg)}
.home-mobile-hero>*{position:relative;z-index:1}.home-brand-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.35);font-weight:1000}.home-brand-pill img{width:38px;height:38px;border-radius:14px;object-fit:cover;border:2px solid #fff}.home-mobile-hero h1{font-size:clamp(2.4rem,7vw,5rem);line-height:.95;margin:12px 0;letter-spacing:-.055em;text-shadow:0 5px 22px rgba(82,6,42,.24)}.home-lead{max-width:620px;font-size:1.08rem;color:#fff8fb}.home-search-card{max-width:560px;margin:18px 0 6px;display:grid;grid-template-columns:44px 1fr;align-items:center;gap:8px;min-height:58px;border-radius:22px;background:#fff;color:#321426;padding:0 16px;box-shadow:0 18px 42px rgba(82,6,42,.20)}.home-search-card span{font-size:24px}.home-search-card a{font-weight:950;color:#846373}.home-main-actions{margin-top:14px}.home-status-card{display:grid;gap:8px;border-radius:28px;padding:20px;background:rgba(255,255,255,.20);border:1px solid rgba(255,255,255,.34);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.home-status-card b{display:inline-flex;width:max-content;border-radius:999px;padding:6px 10px;background:#b8ec49;color:#3f6413}.home-status-card span{font-weight:1000;font-size:1.12rem}.home-status-card small{color:#fff8fb}.quick-service-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 18px}.quick-service-row a{display:grid;gap:7px;justify-items:center;text-align:center;border:1px solid #ffd1e4;border-radius:24px;background:linear-gradient(180deg,#fff,#fff7fb);padding:15px 10px;box-shadow:0 14px 32px rgba(236,63,131,.10);font-weight:950;color:#8a0f45}.quick-service-row b{font-size:30px}.quick-service-row span{font-size:.94rem}.home-section,.how-it-works-card,.partner-links{margin:18px 0;padding:18px;border:1px solid #ffd1e4;border-radius:28px;background:rgba(255,255,255,.78);box-shadow:0 16px 42px rgba(236,63,131,.09)}
@media(max-width:820px){.home-mobile-hero{grid-template-columns:1fr;border-radius:0 0 32px 32px;margin:-12px -12px 14px;padding:18px 14px 20px}.home-status-card{grid-template-columns:1fr 1fr}.home-status-card b,.home-status-card small{grid-column:1/-1}.quick-service-row{grid-template-columns:repeat(4,minmax(92px,1fr));overflow:auto;padding-bottom:4px}.home-shop-grid{grid-template-columns:1fr}.flow-steps{grid-template-columns:1fr}.partner-links{display:grid}.partner-actions{justify-content:flex-start}.topbar nav a[href$='/admin']{display:none}.topbar nav a[href$='/privacy']{display:none}}
@media(max-width:520px){.home-mobile-hero h1{font-size:2.75rem}.home-search-card{grid-template-columns:36px 1fr;min-height:54px}.home-search-card a{font-size:.92rem}.home-status-card{grid-template-columns:1fr}.quick-service-row a{min-width:102px;padding:12px 8px}.home-section,.how-it-works-card,.partner-links{border-radius:22px;padding:14px}.home-menu-card{flex-basis:156px}.home-menu-card img,.home-menu-card>span{height:100px}.home-main-actions .btn{width:100%;justify-content:center}.topbar nav a[href$='/rider/signup']{display:none}}


/* KH Delivery mobile bottom tabbar v11 */
.mobile-tabbar{display:none}
@media(max-width:720px){
  body{padding-bottom:calc(78px + env(safe-area-inset-bottom));}
  .mobile-tabbar{position:fixed;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:90;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;border:1px solid rgba(236,63,131,.22);border-radius:26px;background:rgba(255,255,255,.94);box-shadow:0 18px 48px rgba(82,6,42,.18);backdrop-filter:blur(14px)}
  .mobile-tabbar a{display:grid;gap:2px;justify-items:center;align-items:center;min-width:0;border-radius:18px;padding:7px 4px;color:#8a0f45;font-weight:950;text-decoration:none;font-size:.78rem;line-height:1.05}
  .mobile-tabbar a b{font-size:1.18rem;line-height:1}
  .mobile-tabbar a.active{background:linear-gradient(135deg,#ec3f83,#b20f58);color:#fff;box-shadow:0 10px 24px rgba(236,63,131,.24)}
  .floating-order{bottom:calc(92px + env(safe-area-inset-bottom));right:14px}
}


/* KH Delivery admin auth lock v1 */
.admin-login-shell{min-height:calc(100vh - 96px);display:grid;place-items:center;padding:28px 16px;background:radial-gradient(circle at top left,rgba(236,63,131,.18),transparent 34%),radial-gradient(circle at bottom right,rgba(104,185,39,.16),transparent 32%)}
.admin-login-card{width:min(430px,100%);background:#fff;border:1px solid rgba(236,63,131,.16);border-radius:28px;box-shadow:0 24px 70px rgba(236,63,131,.18);padding:28px;text-align:center}
.admin-login-logo{width:92px;height:92px;border-radius:24px;object-fit:cover;box-shadow:0 12px 32px rgba(236,63,131,.28);margin-bottom:10px}
.stack-form{display:grid;gap:14px;margin:18px 0 12px;text-align:left}
.stack-form label{display:grid;gap:8px;font-weight:800;color:#26331f}
.stack-form input{font-size:18px;border:1px solid #ffd1e2;border-radius:16px;padding:14px 16px;background:#fff8fb}
.alert.danger{background:#fff0f3;color:#a41239;border:1px solid #ffc3d1;border-radius:16px;padding:12px 14px;margin:14px 0;font-weight:800}
.nav-logout{display:inline;margin:0}.nav-logout button{border:0;border-radius:999px;background:#fff0f6;color:#c51f64;font-weight:800;padding:9px 12px;cursor:pointer}

/* KH Delivery mobile tabbar overlap fix v12 */
@media(max-width:720px){
  body.grab-customer-page{
    padding-bottom:calc(138px + env(safe-area-inset-bottom));
  }
  body.grab-customer-page main{
    padding-bottom:calc(156px + env(safe-area-inset-bottom));
  }
  body.grab-customer-page .cart-panel{
    position:relative;
    bottom:auto;
    z-index:2;
    margin-bottom:calc(104px + env(safe-area-inset-bottom));
    border-radius:24px;
  }
  body.grab-customer-page .mobile-tabbar{
    left:14px;
    right:14px;
    bottom:calc(14px + env(safe-area-inset-bottom));
    z-index:80;
  }
  body.grab-customer-page .floating-order{
    display:none;
  }
}

/* KH Delivery cart center modal v13 */
.menu-title-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
body.grab-customer-page .cart-panel{display:none;position:fixed !important;left:50% !important;top:50% !important;bottom:auto !important;transform:translate(-50%,-50%) !important;width:min(430px,calc(100vw - 28px));max-height:min(78vh,620px);overflow:auto;margin:0 !important;border-radius:30px !important;z-index:160 !important;padding:18px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 28px 90px rgba(82,6,42,.32),0 0 0 1px rgba(236,63,131,.18);background:#fff}
body.grab-customer-page.cart-modal-open{overflow:hidden}
/* v38 fix: kh-fade-up (main>*) leaves a lingering transform on .customer-app which
   becomes the containing block for the fixed cart panel, throwing it off-screen and
   leaving only the blurred backdrop. Neutralize transform/animation while modal open. */
body.grab-customer-page.cart-modal-open .customer-app{animation:none!important;transform:none!important}
body.grab-customer-page.cart-modal-open:before{content:"";position:fixed;inset:0;background:rgba(50,20,38,.46);backdrop-filter:blur(5px);z-index:150}
body.grab-customer-page.cart-modal-open .cart-panel{display:block;animation:khCartPop .18s ease-out}
@keyframes khCartPop{from{opacity:0;transform:translate(-50%,-44%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.cart-head{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}
.cart-close{width:36px;height:36px;border:0;border-radius:999px;background:#fff0f7;color:#8a0f45;font-size:1.45rem;font-weight:950;line-height:1;box-shadow:inset 0 0 0 1px #ffd1e4}
body.grab-customer-page .cart-panel .btn.full{min-height:52px;font-size:1.02rem}
@media(max-width:520px){body.grab-customer-page .cart-panel{width:calc(100vw - 24px);max-height:72vh;border-radius:26px !important}.menu-title-actions{width:100%;justify-content:space-between}.menu-title-actions .link-btn{flex:1}}


/* KH Delivery role notification popup v15 */
.kh-notify-popup{position:fixed;left:50%;top:18px;z-index:240;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;width:min(560px,calc(100vw - 24px));padding:14px;border:1px solid rgba(236,63,131,.24);border-radius:24px;background:linear-gradient(135deg,#fff,#fff7fb);box-shadow:0 24px 70px rgba(82,6,42,.24);transform:translate(-50%,-130%);opacity:0;pointer-events:none;transition:transform .22s ease,opacity .22s ease}
.kh-notify-popup.show{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.kh-notify-icon{width:48px;height:48px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#ec3f83,#b20f58);color:#fff;font-size:1.35rem;box-shadow:0 12px 28px rgba(236,63,131,.28)}
.kh-notify-copy{min-width:0}.kh-notify-copy b{display:block;color:#8a0f45;font-size:1.05rem}.kh-notify-copy p{margin:3px 0 0;color:#5d4854;font-weight:700}
.kh-notify-actions{display:flex;gap:8px;align-items:center}.kh-notify-actions .btn{white-space:nowrap;min-height:44px;padding:12px 18px;font-size:1rem}.kh-notify-actions button{width:40px;height:40px;border:0;border-radius:999px;background:#fff0f7;color:#8a0f45;font-size:1.35rem;font-weight:950;cursor:pointer}
.kh-notify-popup .btn.primary{box-shadow:0 12px 30px rgba(236,63,131,.28)}
.order-focus-flash{outline:4px solid #f59e0b!important;animation:kh-order-focus 1s ease-in-out 5;box-shadow:0 0 0 8px rgba(245,158,11,.18),0 26px 70px rgba(236,63,131,.24)!important}
@keyframes kh-order-focus{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media(max-width:560px){.kh-notify-popup{top:10px;grid-template-columns:auto 1fr;padding:12px;border-radius:20px}.kh-notify-actions{grid-column:1/-1;justify-content:flex-end}.kh-notify-copy b{font-size:1rem}.kh-notify-copy p{font-size:.9rem}}

/* KH Delivery role login mobile fit v16 */
.auth-shell{
  min-height:calc(100vh - 118px);
  display:grid;
  place-items:center;
  padding:18px 0 28px;
}
.auth-card{
  width:min(430px,100%);
  margin:0 auto;
  text-align:left;
}
.auth-logo{
  display:grid;
  place-items:center;
  margin:-4px auto 14px;
}
.auth-logo img{
  width:clamp(92px,28vw,148px);
  height:clamp(92px,28vw,148px);
  object-fit:cover;
  border-radius:30px;
  border:4px solid #fff;
  box-shadow:0 18px 42px rgba(236,63,131,.24);
}
.auth-card h1{
  margin:6px 0 8px;
  font-size:clamp(1.55rem,6vw,2.15rem);
  line-height:1.05;
  color:#8a0f45;
}
.auth-card .eyebrow{
  color:#b20f58;
  text-align:center;
}
.auth-card .muted{
  color:#6b5260;
}
@media(max-width:560px){
  .topbar{
    position:relative;
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    padding:8px 10px;
  }
  .topbar .brand-logo{width:34px;height:34px;border-radius:12px;border-width:2px;}
  .topbar .brand{gap:8px;font-size:.88rem;}
  .topbar .brand small{font-size:.64rem;}
  .topbar nav{gap:4px;overflow-x:auto;padding-bottom:2px;}
  .topbar nav a{padding:7px 9px;font-size:.82rem;}
  main{max-width:100%;padding:10px 10px calc(96px + env(safe-area-inset-bottom));}
  .auth-shell{
    min-height:auto;
    place-items:start center;
    padding:8px 0 22px;
  }
  .auth-card{
    width:100%;
    border-radius:22px;
    padding:16px;
    box-shadow:0 14px 34px rgba(236,63,131,.11);
  }
  .auth-logo{margin:0 auto 10px;}
  .auth-logo img{
    width:86px;
    height:86px;
    border-radius:22px;
  }
  .auth-card .stack-form{gap:10px;margin:12px 0 10px;}
  .auth-card label{margin:6px 0;font-size:.92rem;}
  .auth-card input{min-height:46px;padding:11px 13px;font-size:16px;}
  .auth-card .btn.big{min-height:48px;padding:12px 16px;}
  .auth-card .action-row{gap:8px;margin-top:10px;}
  .auth-card .action-row .btn{flex:1;padding:10px 12px;font-size:.9rem;}
}

/* KH Delivery onboarding approval polish v18 */
.onboarding-panel{border:2px solid #ffc3dc;background:linear-gradient(180deg,#fff,#fff7fb)}
.onboarding-panel .section-title{gap:12px;align-items:flex-start}
.pending-card{border:1px solid #ffd1e4;border-radius:18px;padding:12px;background:#fff;box-shadow:0 10px 28px rgba(236,63,131,.08);margin-bottom:10px}
.pending-card b{display:block;color:#8a0f45;margin-bottom:3px}.pending-card small{display:block;color:#846373;line-height:1.35}.pending-card .btn{white-space:nowrap}.mini-list{display:grid;gap:8px}
@media(max-width:900px){.onboarding-panel .report-grid{grid-template-columns:1fr}.pending-card{grid-template-columns:1fr}.pending-card .inline-form,.pending-card .btn{width:100%}}

/* KH Delivery merchant menu manager v19 */
.menu-help{margin:-4px 0 12px;color:#846373;font-weight:800;font-size:.92rem;line-height:1.35}
.merchant-menu-list{display:grid;gap:12px}
.merchant-menu-card{border-width:2px;background:linear-gradient(180deg,#fff,#fffafd)}
.merchant-menu-card[open]{box-shadow:0 18px 46px rgba(236,63,131,.14)}
.merchant-menu-card summary{list-style:none;min-height:82px}
.merchant-menu-card summary:after{content:'แก้/รูป';justify-self:end;white-space:nowrap}
.menu-summary-copy{display:grid;gap:4px;min-width:0}
.menu-summary-copy b{font-size:1.02rem;color:#321426;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-summary-copy small{color:#846373;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-sale-state{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 10px;font-weight:1000;font-size:.82rem;white-space:nowrap;border:1px solid}
.menu-sale-state.on{background:#f1fbe6;color:#3a6b12;border-color:#cdea9f}
.menu-sale-state.off{background:#fff1f2;color:#be123c;border-color:#fecdd3}
.menu-quick-actions{padding:0 12px 10px;display:flex;justify-content:flex-end}
.menu-quick-actions form{padding:0;margin:0}.menu-quick-actions .btn{min-height:42px}
.merchant-menu-card .menu-photo-form{display:grid;gap:10px;padding:12px;border-top:1px solid #ffe0ec;background:#fff7fb}
.merchant-menu-card .menu-photo-form label{display:grid;gap:6px;font-weight:900;color:#8a0f45}
.merchant-menu-card .menu-photo-form input{width:100%}
.merchant-menu-card form:last-child{padding:0 12px 14px}.merchant-menu-card form:last-child .btn{width:100%}
.menu-create-card form{display:grid;gap:12px}.menu-create-card textarea{min-height:86px}
.danger-btn{background:#fff1f2!important;color:#be123c!important;border:1px solid #fecdd3!important;box-shadow:none!important}.danger-btn:hover{background:#ffe4e6!important}
@media(max-width:700px){.merchant-menu-card summary{grid-template-columns:58px minmax(0,1fr);gap:10px;padding:12px}.merchant-menu-card summary:after{grid-column:1 / -1;justify-self:stretch;text-align:center}.merchant-menu-card .menu-sale-state{grid-column:2;justify-self:start}.merchant-menu-card .menu-thumb{grid-row:1 / span 2}.menu-quick-actions{display:block}.menu-quick-actions .btn,.merchant-menu-card .menu-photo-form .btn{width:100%;min-height:48px}.merchant-menu-card .menu-photo-form{grid-template-columns:1fr}.menu-create-card .btn.full{min-height:52px}}
@media(max-width:420px){.merchant-menu-card summary{grid-template-columns:52px minmax(0,1fr)}.merchant-menu-card .menu-thumb{width:52px;height:52px}.menu-summary-copy b{font-size:.98rem}.menu-sale-state{font-size:.78rem;padding:6px 9px}}

/* KH Delivery admin management tools v20 */
.admin-manage-list{gap:10px}.admin-manage-card{border:1px solid #ffd1e4;border-radius:18px;background:linear-gradient(180deg,#fff,#fffafd);overflow:hidden;box-shadow:0 10px 28px rgba(236,63,131,.08)}
.admin-manage-card[open]{box-shadow:0 16px 40px rgba(236,63,131,.14)}.admin-manage-card summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px}.admin-manage-card summary::-webkit-details-marker{display:none}.admin-manage-card summary b{display:block;color:#8a0f45;line-height:1.25}.admin-manage-card summary small{display:block;color:#846373;line-height:1.35;font-weight:800}.admin-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;border-top:1px solid #ffe1ee;background:#fff7fb}.admin-edit-form label{display:grid;gap:5px;font-weight:900;color:#8a0f45}.admin-edit-form input{width:100%;min-width:0}.admin-edit-form .span-2{grid-column:1 / -1}.toggle-line{display:flex!important;align-items:center;gap:8px;color:#321426!important;background:#fff;border:1px solid #ffe1ee;border-radius:14px;padding:9px 10px}.toggle-line input{width:20px!important;height:20px;min-height:auto}.danger-text{color:#be123c!important}.admin-actions{grid-column:1 / -1;display:flex;gap:8px;justify-content:flex-end}.admin-actions .btn{min-height:42px}.admin-manage-card .badge{align-self:center}
@media(max-width:700px){.admin-edit-form{grid-template-columns:1fr}.admin-actions{display:grid;grid-template-columns:1fr}.admin-actions .btn{width:100%;text-align:center}.admin-manage-card summary{grid-template-columns:1fr}.admin-manage-card .badge{justify-self:start}}


/* KH Delivery shop media + QR payments v21 */
.shop-avatar-img,.selected-shop-img{object-fit:cover!important;background:#fff!important}.shop-avatar-img{width:46px;height:46px;border-radius:16px;border:2px solid #fff;box-shadow:0 8px 18px rgba(138,15,69,.16)}.selected-shop-img{width:68px;height:68px;border-radius:22px;border:3px solid #fff;box-shadow:0 12px 28px rgba(138,15,69,.16)}
.food-photo,.featured-food-photo,.menu-thumb{object-fit:cover;display:block;background:#fff0f7}.food-photo{width:82px!important;height:82px!important;min-width:82px;border-radius:18px}.featured-food-photo{width:100%;height:112px;border-radius:18px 18px 12px 12px}.menu-thumb{width:58px;height:58px;border-radius:16px}.menu-thumb.placeholder{display:grid;place-items:center;background:#fff0f7}
.shop-media-grid,.admin-media-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.shop-media-preview{width:104px;height:104px;border-radius:22px;object-fit:cover;border:1px solid #ffd1e4;background:#fff;box-shadow:0 10px 24px rgba(236,63,131,.12);margin:6px 0}.shop-media-preview.qr{object-fit:contain;padding:8px;background:white}.mini-check{display:flex;align-items:center;gap:6px;font-size:.86rem;color:#7a113f;font-weight:900}.mini-check input{width:18px!important;height:18px!important;min-height:auto!important}.payment-qr-card{margin:12px 0 0;padding:12px;border:1px solid #ffd1e4;background:linear-gradient(180deg,#fff,#fff7fb);border-radius:20px;display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:12px;align-items:center}.payment-qr-card b{display:block;color:#8a0f45}.payment-qr-card small{display:block;margin-top:5px;color:#64748b;font-weight:800;line-height:1.35}.payment-qr-card img{width:118px;height:118px;object-fit:contain;border-radius:16px;background:#fff;border:1px solid #ffe1ee;padding:6px}
@media(max-width:560px){.shop-media-grid,.admin-media-grid{grid-template-columns:1fr}.payment-qr-card{grid-template-columns:1fr}.payment-qr-card img{width:160px;height:160px}.food-photo{width:68px!important;height:68px!important;min-width:68px}.featured-food-photo{height:100px}.selected-shop-img{width:60px;height:60px}}

/* KH Delivery admin shop assist v22 */
.admin-assist-note{display:inline-flex;margin-top:10px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.42);font-weight:950}.admin-assist-banner{border-color:#fbbf24!important;background:#fffbeb!important;color:#92400e!important}

/* KH Delivery typography/readability refresh v20 */
/* v2: typography tokens merged into canonical :root (end of file) */
html{font-size:16px;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;}
body{
  font-family:var(--font-ui);
  font-size:16px;
  line-height:var(--readable-line);
  font-weight:500;
  letter-spacing:-.005em;
  color:var(--text-strong);
  font-feature-settings:"liga" 1,"kern" 1;
}
button,input,select,textarea{font-family:var(--font-ui);font-size:1rem;line-height:1.5;}
a,button,.btn,.pill,nav a{letter-spacing:0;}
.brand b,.hero h1,.page-head h1,.home-mobile-hero h1,.track-hero h1,h1,h2,h3{
  font-family:var(--font-display);
  letter-spacing:-.025em;
  text-wrap:balance;
}
.hero h1,.page-head h1,.home-mobile-hero h1,.track-hero h1{font-weight:900;line-height:1.05;}
h2{font-size:clamp(1.35rem,2.6vw,1.85rem);line-height:1.25;font-weight:900;margin-top:.25rem;margin-bottom:.65rem;}
h3{font-size:clamp(1.08rem,2vw,1.25rem);line-height:1.35;font-weight:850;}
p,li,.muted,small,.notice span,.workflow-chip span,.progress-step small,.info-lines b{
  line-height:1.65;
  letter-spacing:0;
}
.muted,small,.workflow-chip span,.progress-step small,.selected-shop-main p,.selected-shop-main small,.home-lead{color:#5f4a56;}
.card,.panel,.order-card,.home-section,.how-it-works-card,.partner-links,.shop-picker,.selected-shop-card,.menu-section,.checkout-section,.cart-panel,.form-card,.notice{
  line-height:1.62;
}
.card p,.panel p,.order-card p,.home-section p,.legal-page p{max-width:72ch;}
.btn,.pill,nav a,.mobile-tabbar a,.service-card span,.home-brand-pill,.badge,.track-state,.workflow-chip b{
  font-weight:850;
}
.btn{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  line-height:1.25;
}
input,select,textarea{
  min-height:46px;
  border-width:1.5px!important;
  color:#27111e;
}
input::placeholder,textarea::placeholder{color:#8a6f7d;opacity:1;font-weight:500;}
label{font-weight:800;color:#4b2538;line-height:1.45;}
label small{display:block;margin-top:2px;font-weight:600;}
.topbar{font-size:.98rem;}
.brand small{font-size:.78rem;line-height:1.25;font-weight:700;}
nav a{font-size:.96rem;line-height:1.25;}
.eyebrow{letter-spacing:.08em;font-size:.78rem;}
.stats-row div b,.compact-stats b{letter-spacing:-.02em;line-height:1.05;}
.report-table th,.report-table td{line-height:1.5;}
.event-line,.mini-admin-row{line-height:1.55;}
.customer-search input{font-size:1rem;font-weight:750;}
.delivery-to span{font-size:.78rem;line-height:1.25;font-weight:750;}
.delivery-to strong{font-weight:900;line-height:1.32;}
.service-card small{line-height:1.35;font-weight:650;}
.real-menu-info b,.featured-food-card b,.home-menu-info b{font-size:1.02rem;line-height:1.35;}
.real-menu-info small,.home-menu-info small{line-height:1.5;color:#6f5362;}
.cart-totals,.cart-items{line-height:1.5;}
.mobile-tabbar a{font-size:.74rem;line-height:1.15;}
.mobile-tabbar b{font-size:1.22rem;line-height:1;}
@media(max-width:720px){
  html{font-size:16px;}
  body{line-height:1.62;}
  main{padding-left:14px;padding-right:14px;}
  .hero h1,.page-head h1,.home-mobile-hero h1,.track-hero h1{letter-spacing:-.018em;line-height:1.08;}
  .home-mobile-hero h1{font-size:clamp(2.35rem,12vw,3.15rem);}
  .page-head h1,.track-hero h1{font-size:clamp(2rem,10vw,3rem);}
  .home-lead,.hero p,.page-head p{font-size:1rem;line-height:1.65;}
  nav a{font-size:.92rem;padding:9px 11px;}
  .btn{width:auto;min-height:46px;padding-top:11px;padding-bottom:11px;}
  input,select,textarea{font-size:16px;}
  .service-card span{font-size:.92rem;}
  .real-menu-info b,.featured-food-card b,.home-menu-info b{font-size:1rem;}
}
@media(max-width:420px){
  body{font-size:15.8px;}
  .brand b{font-size:1rem;}
  .topbar{font-size:.94rem;}
  .mobile-tabbar a span{font-size:.72rem;}
}

/* KH Delivery typography/readability refinements v21 */
.kh-customer-hero .delivery-to span,
.kh-customer-hero .delivery-to strong,
.kh-customer-hero .brand-slogan{
  text-shadow:0 2px 12px rgba(82,6,42,.38),0 1px 1px rgba(82,6,42,.22);
}
.customer-hero.kh-customer-hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(80,5,42,.10),rgba(80,5,42,.03) 52%,rgba(255,255,255,0));
  pointer-events:none;
}
.customer-hero.kh-customer-hero>*{position:relative;z-index:1;}
.service-cards{gap:12px;}
.service-card{
  display:grid;
  grid-template-rows:auto auto auto;
  gap:2px;
  min-width:0;
  padding:13px 10px;
  line-height:1.25;
}
.service-card b{font-size:24px;line-height:1;}
.service-card span{line-height:1.24;overflow-wrap:anywhere;}
.service-card small{color:#57424d;font-size:.78rem;line-height:1.25;}
   .real-menu-card{gap:12px!important;align-items:center;}
   .real-menu-card>*{min-width:0!important;overflow:hidden}
   .real-menu-card img,.real-menu-card .food-photo,.real-menu-card>span:first-child{flex-shrink:0;max-width:100%}
.real-menu-info,.home-menu-info{min-width:0;}
.real-menu-info p,.real-menu-info small,.home-menu-info small,.customer-section-title span{color:#57424d;}
.customer-section-title span{font-weight:700;}
.checkout-section input::placeholder,
.checkout-section textarea::placeholder,
.checkout-section select,
.customer-search input::placeholder{color:#715564;opacity:1;}
.map-tools .btn,.checkout-section .btn{border-color:#f9a8c9;background:#fff0f7;color:#9d0c4f;box-shadow:0 8px 20px rgba(236,63,131,.10);}
@media(max-width:520px){
  .service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:visible;}
  .service-card{min-height:82px;padding:11px 7px;}
  .service-card b{font-size:22px;}
  .service-card span{font-size:.86rem;}
  .service-card small{font-size:.72rem;}
  .real-menu-card{grid-template-columns:68px minmax(0,1fr)!important;gap:13px!important;}
}


/* KH Delivery merchant cockpit UX v23 */
.merchant-command-center{
  position:sticky;
  top:78px;
  z-index:12;
  display:grid;
  grid-template-columns:minmax(240px,1.4fr) repeat(4,minmax(120px,.55fr));
  gap:10px;
  align-items:stretch;
  margin:0 0 14px;
  padding:10px;
  border:1px solid rgba(236,63,131,.18);
  border-radius:26px;
  background:rgba(255,255,255,.88);
  box-shadow:0 18px 48px rgba(82,6,42,.13);
  backdrop-filter:blur(14px);
}
.merchant-status-card,.quick-jump{
  min-height:58px;
  display:flex;
  align-items:center;
  gap:10px;
  border-radius:20px;
  padding:11px 13px;
  font-weight:950;
  line-height:1.25;
}
.merchant-status-card{border:1px solid #ffd1e4;background:linear-gradient(135deg,#fff,#fff7fb);color:#321426;}
.merchant-status-card small{display:block;margin-top:2px;color:#6b5260;font-weight:750;line-height:1.3;}
.status-dot{width:14px;height:14px;border-radius:999px;box-shadow:0 0 0 6px rgba(132,204,22,.12);background:#84cc16;flex:0 0 auto;}
.merchant-status-card.is-closed .status-dot{background:#ef4444;box-shadow:0 0 0 6px rgba(239,68,68,.12);}
.quick-jump{justify-content:center;text-align:center;border:1px solid #ffe1ee;background:#fff;color:#8a0f45;box-shadow:0 8px 22px rgba(236,63,131,.08);}
.quick-jump.primary{background:linear-gradient(135deg,#ec3f83,#b20f58);color:#fff;border-color:#ec3f83;box-shadow:0 12px 30px rgba(236,63,131,.24);}
.merchant-layout{grid-template-columns:minmax(0,1fr) minmax(320px,390px);align-items:start;}
.merchant-layout>aside{position:sticky;top:164px;display:grid;gap:14px;}
.merchant-orders-panel,.merchant-menu-panel,.merchant-profile-card,.menu-create-card{scroll-margin-top:160px;}
.merchant-orders-panel .section-title,.merchant-menu-panel .section-title,.merchant-profile-card .section-title,.menu-create-card .section-title{align-items:flex-start;gap:10px;}
.merchant-order-card{position:relative;overflow:hidden;border:1px solid #ffd1e4!important;border-radius:24px!important;background:linear-gradient(180deg,#fff,#fffafd)!important;padding:16px!important;box-shadow:0 14px 34px rgba(236,63,131,.10)!important;}
.merchant-order-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#ec3f83;}
.merchant-order-card.status-card-new:before{background:#f59e0b}.merchant-order-card.status-card-preparing:before{background:#8b5cf6}.merchant-order-card.status-card-ready_for_pickup:before{background:#5fae22}
.merchant-order-card .order-top small{display:block;color:#6b5260;font-weight:800;margin-top:2px;}
.order-money-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0;}
.order-money-grid span{display:grid;gap:2px;padding:10px;border-radius:16px;background:#fff7fb;border:1px solid #ffe1ee;color:#6b5260;font-size:.88rem;font-weight:800;}
.order-money-grid b{color:#8a0f45;font-size:1.02rem;line-height:1;}
.address-line{padding:10px 12px;border-radius:16px;background:#f8fafc;border:1px solid #eef2f7;}
.address-line a{color:#ec3f83;font-weight:950;text-decoration:underline;}
.merchant-next-step{display:grid;gap:2px;margin:12px 0;padding:12px 14px;border-radius:18px;background:#f1fbe6;border:1px solid #cdea9f;color:#3a6b12;}
.merchant-next-step b{font-size:1.02rem}.merchant-next-step span{color:#3f6b4d;font-weight:750;line-height:1.35;}
.merchant-order-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch;}
.merchant-order-actions form,.merchant-order-actions .btn{width:100%;}.merchant-order-actions .btn{min-height:50px;}
.merchant-empty{display:grid;gap:4px;text-align:center;padding:28px 16px;border:2px dashed #ffc3dc;background:#fff7fb;border-radius:22px;color:#8a0f45;}
.merchant-empty span{color:#6b5260;font-weight:750;}
.merchant-help{padding:10px 12px;border-radius:16px;background:#fff7fb;border:1px solid #ffe1ee;color:#7a214a;}
.merchant-menu-card{border-radius:22px;overflow:hidden;}
.merchant-menu-card summary{grid-template-columns:58px minmax(0,1fr) auto auto;padding:12px;gap:12px;align-items:center;}
.merchant-menu-card summary:after{content:'แตะเพื่อแก้';padding:7px 10px;border-radius:999px;background:#fff0f7;color:#9d0c4f;border:1px solid #ffd1e4;font-size:.82rem;font-weight:950;}
.merchant-profile-card,.menu-create-card{border-width:2px!important;background:linear-gradient(180deg,#fff,#fffafd)!important;}
.merchant-profile-card form,.menu-create-card form{display:grid;gap:12px;}
.merchant-profile-card label,.menu-create-card label{display:grid;gap:7px;}
.merchant-profile-card .check{position:sticky;bottom:92px;z-index:5;display:flex!important;align-items:center;gap:10px;padding:13px 14px;border:2px solid #cdea9f;border-radius:18px;background:#f1fbe6;color:#3a6b12;font-weight:1000;box-shadow:0 12px 28px rgba(122,15,63,.12);}
.merchant-profile-card .check input{width:22px!important;height:22px!important;min-height:auto!important;}
.merchant-profile-card .btn.full,.menu-create-card .btn.full{min-height:54px;font-size:1.02rem;}
@media(max-width:980px){
  .merchant-command-center{position:static;grid-template-columns:1fr 1fr;}
  .merchant-status-card{grid-column:1 / -1;}
  .merchant-layout{grid-template-columns:1fr;}
  .merchant-layout>aside{position:static;}
}
@media(max-width:640px){
  .merchant-command-center{grid-template-columns:1fr 1fr;border-radius:22px;padding:8px;gap:8px;}
  .merchant-status-card{grid-column:1 / -1;align-items:flex-start;}
  .quick-jump{min-height:50px;padding:9px 8px;font-size:.9rem;}
  .merchant-orders-panel,.merchant-menu-panel,.merchant-profile-card,.menu-create-card{scroll-margin-top:18px;}
  .order-money-grid{grid-template-columns:1fr 1fr;}
  .merchant-order-actions{grid-template-columns:1fr;}
  .merchant-menu-card summary{grid-template-columns:54px minmax(0,1fr) auto;gap:9px;}
  .merchant-menu-card summary:after{grid-column:2 / -1;justify-self:start;}
  .merchant-profile-card .check{position:relative;bottom:auto;}
}
@media(max-width:420px){
  .merchant-command-center{grid-template-columns:1fr;}
  .quick-jump{justify-content:flex-start;}
  .order-money-grid{grid-template-columns:1fr;}
}

/* KH Delivery admin cockpit UX v24 */
body[data-path$='/admin'] main,body[data-path='/admin'] main{max-width:1320px;}
.admin-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;}
.admin-hero .hero-actions{position:relative;z-index:2;align-items:center;justify-content:flex-end;}
.admin-hero .hero-actions form{margin:0}.admin-hero .hero-actions .btn{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.7);color:#8a0f45;box-shadow:0 12px 28px rgba(80,5,42,.16);}
.admin-command-center{position:sticky;top:78px;z-index:13;display:grid;grid-template-columns:1.15fr repeat(4,minmax(130px,1fr));gap:10px;margin:0 0 16px;padding:10px;border:1px solid rgba(236,63,131,.18);border-radius:26px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);box-shadow:0 18px 48px rgba(82,6,42,.13);}
.admin-command-card{display:grid;gap:2px;min-height:76px;padding:13px 14px;border:1px solid #ffe1ee;border-radius:20px;background:linear-gradient(180deg,#fff,#fffafd);color:#321426;box-shadow:0 8px 22px rgba(236,63,131,.08);}
.admin-command-card span{font-weight:950;color:#8a0f45}.admin-command-card b{font-size:1.8rem;line-height:1;color:#ec3f83}.admin-command-card small{color:#6b5260;font-weight:800;line-height:1.25}.admin-command-card.urgent{border-color:#fecaca;background:#fff7f7}.admin-command-card.urgent b{color:#ef4444}.admin-command-card.money{border-color:#cdea9f;background:#f4fff7}.admin-command-card.money b{color:#5fae22}.admin-command-card.primary{background:linear-gradient(135deg,#ec3f83,#b20f58);border-color:#ec3f83;color:white}.admin-command-card.primary span,.admin-command-card.primary b,.admin-command-card.primary small{color:white;}
.admin-approval-panel,.admin-report-panel,.admin-dispatch-panel,.admin-manage-panel,.admin-add-rider,.admin-event-panel{scroll-margin-top:168px;}
.approval-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}.approval-column h3{margin:0 0 10px;color:#8a0f45}.approval-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid #ffe1ee;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(236,63,131,.08);}.approval-card b{display:block;font-size:1.04rem;color:#321426}.approval-card small{display:block;color:#6b5260;font-weight:750;line-height:1.35;margin-top:3px}.approval-card.shop{border-left:6px solid #ec3f83}.approval-card.rider{border-left:6px solid #5fae22}.approval-card form{margin:0}.approval-actions{display:flex;flex-direction:column;gap:8px}.approval-actions .btn{width:100%;white-space:nowrap}.admin-empty{display:grid;place-items:center;min-height:96px;text-align:center;padding:20px;border:2px dashed #ffc3dc;border-radius:22px;background:#fff7fb;color:#8a0f45;font-weight:950;}
.admin-money-stats div{min-height:86px;}.admin-status-report div{border-color:#ffe1ee;background:#fffafd;}.admin-layout{grid-template-columns:minmax(0,1fr) minmax(330px,420px);align-items:start;}.admin-side{position:sticky;top:164px;display:grid;gap:14px;max-height:calc(100vh - 176px);overflow:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:#ec3f83 #fff0f6;}
.admin-order-card{position:relative;overflow:hidden;margin:0 0 12px;padding:16px;border:1px solid #ffd1e4;border-radius:24px;background:linear-gradient(180deg,#fff,#fffafd);box-shadow:0 14px 34px rgba(236,63,131,.10);}.admin-order-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#94a3b8}.admin-order-card.status-card-new:before{background:#f59e0b}.admin-order-card.status-card-accepted:before,.admin-order-card.status-card-preparing:before{background:#8b5cf6}.admin-order-card.status-card-ready_for_pickup:before,.admin-order-card.status-card-rider_assigned:before,.admin-order-card.status-card-assigned_to_rider:before{background:#5fae22}.admin-order-card.status-card-cancelled:before{background:#ef4444}.admin-order-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-left:4px}.admin-order-head b{display:block;font-size:1.08rem}.admin-order-head small{display:block;color:#6b5260;font-weight:800;margin-top:2px}.admin-items-mini{margin:12px 0;}.admin-order-money{grid-template-columns:repeat(4,minmax(0,1fr));}.admin-alert{padding:11px 12px;border-radius:16px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-weight:950;}
.admin-action-stack{display:grid;gap:9px;margin-top:12px}.admin-inline-grid{display:grid;gap:8px;align-items:end;margin:0}.admin-inline-grid input,.admin-inline-grid select{width:100%;min-height:46px}.fee-grid{grid-template-columns:110px minmax(0,1fr) auto}.assign-grid,.status-grid{grid-template-columns:minmax(0,1fr) auto}.admin-inline-grid .btn{min-height:46px;white-space:nowrap;}
.admin-manage-panel .section-title{align-items:center}.admin-manage-card{border:1px solid #ffe1ee;border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(236,63,131,.07);overflow:hidden}.admin-manage-card+ .admin-manage-card{margin-top:10px}.admin-manage-card summary{cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px}.admin-manage-card summary::-webkit-details-marker{display:none}.admin-manage-card summary b{display:block;color:#321426}.admin-manage-card summary small{display:block;color:#6b5260;font-weight:750;line-height:1.35;margin-top:2px}.admin-edit-form{padding:0 14px 14px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-edit-form label{display:grid;gap:6px;color:#8a0f45;font-weight:900}.admin-edit-form .span-2{grid-column:1/-1}.admin-edit-form input{width:100%;}.admin-media-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shop-media-preview{width:100%;max-height:120px;object-fit:cover;border-radius:16px;border:1px solid #ffd1e4;background:#fff7fb}.shop-media-preview.qr{object-fit:contain;background:white}.toggle-line{display:flex!important;align-items:center;gap:10px;min-height:44px;padding:10px;border:1px solid #ffd1e4;border-radius:16px;background:#fff7fb}.toggle-line input{width:22px!important;height:22px!important;min-height:auto!important;accent-color:#ec3f83}.admin-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-add-rider form{display:grid;gap:10px}.admin-event-panel{max-height:520px;overflow:auto}.event-line{padding:10px 12px;border-radius:16px;}
@media(max-width:1050px){.admin-command-center{position:static;grid-template-columns:1fr 1fr}.admin-layout{grid-template-columns:1fr}.admin-side{position:static;max-height:none;overflow:visible}.admin-approval-panel,.admin-report-panel,.admin-dispatch-panel,.admin-manage-panel,.admin-add-rider,.admin-event-panel{scroll-margin-top:18px;}}
@media(max-width:720px){.admin-hero{align-items:flex-start;flex-direction:column}.admin-hero .hero-actions{justify-content:flex-start}.approval-grid{grid-template-columns:1fr}.approval-card{grid-template-columns:1fr}.admin-command-center{grid-template-columns:1fr 1fr;border-radius:22px;padding:8px;gap:8px}.admin-command-card{min-height:68px;padding:11px}.admin-command-card b{font-size:1.45rem}.fee-grid,.assign-grid,.status-grid{grid-template-columns:1fr}.admin-order-head{flex-direction:column}.admin-order-money{grid-template-columns:1fr 1fr}.admin-edit-form,.admin-media-grid,.admin-actions{grid-template-columns:1fr}.admin-actions{grid-column:1/-1}}
@media(max-width:430px){.admin-command-center{grid-template-columns:1fr}.admin-order-money{grid-template-columns:1fr}.compact-stats.admin-money-stats{grid-template-columns:1fr}.admin-hero .hero-actions .btn,.admin-hero .hero-actions form{width:100%;}.admin-hero .hero-actions button{width:100%;}}

/* KH Delivery admin cockpit UX v24.1 visual fixes */
.admin-hero{padding-right:190px;}

/* ===== Admin tabs v30 ===== */
.admin-tabs{position:sticky;top:60px;z-index:14;display:flex;gap:8px;overflow-x:auto;padding:10px;margin:0 0 16px;border:1px solid rgba(236,63,131,.18);border-radius:22px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);box-shadow:0 14px 36px rgba(82,6,42,.10);scrollbar-width:none;}
.admin-tabs::-webkit-scrollbar{display:none}
.admin-tab-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:11px 16px;border:1px solid #ffd9e8;border-radius:999px;background:#fff;color:#8a0f45;font-weight:900;font-size:.92rem;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s;}
.admin-tab-btn:hover{border-color:#ec3f83;background:#fff0f6}
.admin-tab-btn.active{background:linear-gradient(135deg,#ec3f83,#b20f58);border-color:#ec3f83;color:#fff;box-shadow:0 10px 24px rgba(236,63,131,.28)}
.admin-tab-btn .tab-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:.74rem;font-weight:950;line-height:1}
.admin-tab-btn .tab-count.soft{background:#ffe1ee;color:#b20f58}
.admin-tab-btn.active .tab-count.soft{background:rgba(255,255,255,.28);color:#fff}
.admin-tab-panel{display:none;animation:khTabFade .22s ease}
.admin-tab-panel.active{display:block}
@keyframes khTabFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.admin-overview-status .admin-status-report{margin-top:6px}
.admin-riders-layout{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:16px;align-items:start}
.btn.btn-sm{padding:7px 13px;font-size:.84rem;min-height:auto}

/* ===== Admin alerts (history hide/show) v30 ===== */
.admin-event-panel{max-height:none;}
.alerts-head{flex-wrap:wrap;gap:12px}
.alerts-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-event-list{display:grid;gap:8px;max-height:none;overflow:visible;transition:max-height .25s ease}
.admin-event-list.collapsed{max-height:0;overflow:hidden}
.admin-event-panel .event-line{display:flex!important;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:11px 13px;border:1px solid #ffe1ee;border-radius:16px;background:#fff;box-shadow:0 6px 16px rgba(236,63,131,.06)}
.admin-event-panel .event-line .event-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.admin-event-panel .event-line .event-msg{color:#321426;font-weight:750;line-height:1.45;word-break:break-word}
.admin-event-panel .event-line .event-msg b{color:#b20f58}
.admin-event-panel .event-line small{color:#8a7681;font-weight:700;font-size:.74rem}
.admin-event-panel .event-line.is-hidden-mark{opacity:.55;background:#fff7fb;border-style:dashed}
.admin-event-panel .event-line.alert-hidden{display:none!important}
.event-hide-btn{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border:1px solid #ffd1e4;border-radius:10px;background:#fff5fa;color:#b20f58;font-weight:900;cursor:pointer;transition:all .15s}
.event-hide-btn:hover{background:#ef4444;border-color:#ef4444;color:#fff}
.alerts-empty-msg{text-align:center;padding:18px;color:#8a0f45;font-weight:800}
@media(max-width:900px){.admin-riders-layout{grid-template-columns:1fr}}
@media(max-width:720px){.admin-tabs{top:54px;border-radius:18px;padding:8px}.admin-tab-btn{padding:9px 13px;font-size:.86rem}}
.admin-hero:before{opacity:.55;}
.admin-hero .hero-actions{max-width:460px;}
.admin-report-panel{padding-top:18px!important;}
.admin-money-stats{gap:8px!important;}
.admin-money-stats div{min-height:70px!important;padding:12px 14px!important;border-radius:18px!important;}
.admin-money-stats b{font-size:1.28rem!important;}
.admin-report-panel .report-grid{grid-template-columns:minmax(0,1.35fr) minmax(220px,.55fr);}
.admin-action-stack{padding:10px;border:1px solid #ffe1ee;border-radius:18px;background:#fff7fb;}
.admin-inline-grid{padding:0;}
.admin-inline-grid .btn.primary{background:linear-gradient(135deg,#8a0f45,#ec3f83);}
.admin-inline-grid .btn:not(.primary){background:#fff;border-color:#f9a8c9;color:#8a0f45;}
.admin-order-card .status.delivered{background:#eafad6;color:#3a6b12}.admin-order-card .status.cancelled{background:#fee2e2;color:#991b1b}.admin-order-card .status.new{background:#fef3c7;color:#92400e}
@media(max-width:1050px){.admin-hero{padding-right:28px;}.admin-report-panel .report-grid{grid-template-columns:1fr;}}
@media(max-width:720px){.admin-money-stats div{min-height:64px!important}.admin-hero{padding-right:22px;}}


/* Daily summary + saved addresses v1 */
.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}
.summary-card{border:1px solid #ffd1e4;border-radius:22px;background:linear-gradient(180deg,#fff,#fff7fb);padding:15px;box-shadow:0 12px 30px rgba(236,63,131,.10)}
.summary-card span{display:block;color:#846373;font-weight:900;font-size:.86rem}.summary-card b{display:block;color:#b20f58;font-size:2rem;line-height:1.05;margin-top:6px}.summary-card small{color:#846373;font-weight:800}.daily-strip{display:flex;gap:8px;overflow:auto;padding:12px 2px 0}.daily-strip span{flex:0 0 auto;border:1px solid #ffd1e4;background:#fff;border-radius:999px;padding:8px 12px;color:#7a214a;font-size:.9rem}.history-list{display:grid;gap:9px}.history-row{display:grid;gap:4px;border:1px solid #ffd1e4;border-radius:18px;background:#fff;padding:12px}.history-row b{color:#8a0f45}.history-row span{justify-self:start;border-radius:999px;background:#fff0f6;color:#b20f58;padding:4px 9px;font-weight:900;font-size:.82rem}.history-row small{color:#846373;line-height:1.35}.route-card{border:1px dashed #ffc3dc;background:#fff8fb;border-radius:18px;padding:12px;margin:10px 0}.route-card p{margin:4px 0;color:#5b3347}.saved-address-panel{border:1px solid #ffd1e4;background:#fff8fb;border-radius:20px;padding:12px;margin:10px 0}.section-title.compact{margin-bottom:8px}.saved-address-list{display:grid;gap:8px}.saved-address-chip{border:1px solid #ffc3dc;background:#fff;border-radius:16px;padding:10px 12px;text-align:left;font:inherit;box-shadow:0 8px 20px rgba(236,63,131,.08)}.saved-address-chip b{display:block;color:#b20f58}.saved-address-chip span{display:block;color:#321426;font-weight:800;margin-top:2px}.saved-address-chip small{display:block;color:#846373;margin-top:2px}.saved-address-chip:active{transform:scale(.99)}
@media(max-width:560px){.summary-grid{grid-template-columns:1fr 1fr}.summary-card b{font-size:1.55rem}.daily-strip{padding-bottom:2px}.route-card .action-row .btn{flex:1 1 100%}}

/* KH Delivery customer order UX v25: mobile-first tidy checkout */
body.grab-customer-page main{
  max-width:min(760px,100%);
}
body.grab-customer-page .customer-app{
  display:grid;
  gap:14px;
}
body.grab-customer-page .shop-picker,
body.grab-customer-page .selected-shop-card,
body.grab-customer-page .menu-section,
body.grab-customer-page .checkout-section{
  margin:0 14px;
  padding:16px;
  border-radius:28px;
  background:rgba(255,255,255,.94);
  border:1px solid #ffd1e4;
  box-shadow:0 14px 34px rgba(236,63,131,.10);
}
body.grab-customer-page .featured-food-section{
  margin:0 14px;
}
body.grab-customer-page .customer-section-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
body.grab-customer-page .customer-section-title h2,
body.grab-customer-page .customer-section-title h3{
  margin:2px 0 0;
  color:#8a0f45;
  line-height:1.12;
}
body.grab-customer-page .customer-section-title span{
  display:inline-flex;
  width:max-content;
  padding:4px 9px;
  border-radius:999px;
  background:#fff0f7;
  color:#b20f58;
  font-size:.8rem;
  font-weight:950;
}
body.grab-customer-page .customer-section-title small{
  color:#6b5260;
  font-weight:850;
  line-height:1.35;
}
body.grab-customer-page .shop-scroll{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
  overflow:visible;
  padding:0;
}
body.grab-customer-page .shop-chip{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  grid-template-areas:"avatar name" "avatar meta";
  gap:3px 10px;
  align-items:center;
  min-width:0;
  padding:10px;
  border-radius:20px;
  background:#fff;
  border:1px solid #ffe1ee;
  box-shadow:0 8px 20px rgba(236,63,131,.07);
}
body.grab-customer-page .shop-chip.active{
  border-color:#ec3f83;
  background:linear-gradient(180deg,#fff,#fff7fb);
}
body.grab-customer-page .shop-chip .shop-avatar,
body.grab-customer-page .shop-chip .shop-avatar-img{
  grid-area:avatar;
  width:54px;
  height:54px;
  border-radius:18px;
  object-fit:cover;
  display:grid;
  place-items:center;
  font-weight:1000;
}
body.grab-customer-page .shop-chip b{
  grid-area:name;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#321426;
  line-height:1.25;
}
body.grab-customer-page .shop-chip small{
  grid-area:meta;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#6b5260;
  font-weight:780;
}
body.grab-customer-page .selected-shop-main{
  display:grid;
  grid-template-columns:70px minmax(0,1fr);
  gap:12px;
  align-items:center;
}
body.grab-customer-page .selected-shop-main h1{
  margin:0;
  font-size:1.4rem;
  line-height:1.18;
  color:#321426;
}
body.grab-customer-page .selected-shop-main p,
body.grab-customer-page .selected-shop-main small{
  margin:3px 0 0;
  line-height:1.42;
}
body.grab-customer-page .selected-shop-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px;
}
body.grab-customer-page .featured-food-card{
  min-width:182px;
  border-radius:24px;
}
body.grab-customer-page .menu-list-real{
  display:grid;
  gap:10px;
}
body.grab-customer-page .menu-category{
  margin:8px 0 0;
  padding:0 2px;
  font-size:1rem;
  color:#8a0f45;
}
body.grab-customer-page .real-menu-card{
  display:grid!important;
  grid-template-columns:82px minmax(0,1fr);
  grid-template-areas:"photo info" "photo qty";
  gap:10px 12px!important;
  padding:12px!important;
  border:1px solid #ffe1ee!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 10px 26px rgba(236,63,131,.08)!important;
}
body.grab-customer-page .real-menu-card .food-photo,
body.grab-customer-page .real-menu-card .food-icon{
  grid-area:photo;
  width:82px!important;
  height:82px!important;
  border-radius:20px;
}
body.grab-customer-page .real-menu-card .menu-info{
  grid-area:info;
  min-width:0;
}
body.grab-customer-page .real-menu-card .menu-line{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}
body.grab-customer-page .real-menu-card .menu-line b{
  color:#321426;
  line-height:1.28;
}
body.grab-customer-page .real-menu-card .menu-line strong{
  color:#b20f58;
  white-space:nowrap;
}
body.grab-customer-page .real-menu-card p,
body.grab-customer-page .real-menu-card small{
  margin:4px 0 0;
  color:#6b5260;
  line-height:1.4;
}
body.grab-customer-page .real-menu-card .qty-stepper{
  grid-area:qty;
  justify-self:start;
  display:grid;
  grid-template-columns:42px 50px 42px;
  gap:6px;
  align-items:center;
}
body.grab-customer-page .qty-stepper button,
body.grab-customer-page .qty-stepper input{
  width:42px;
  height:42px;
  min-height:42px;
  border-radius:14px;
  text-align:center;
  font-weight:1000;
}
body.grab-customer-page .qty-stepper input{
  width:50px;
  border:1px solid #ffd1e4;
  background:#fff7fb;
}
body.grab-customer-page .checkout-section{
  display:grid;
  gap:13px;
}
body.grab-customer-page .checkout-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
body.grab-customer-page .checkout-section label{
  display:grid;
  gap:7px;
  margin:0;
  color:#8a0f45;
  font-weight:950;
}
body.grab-customer-page .checkout-section input,
body.grab-customer-page .checkout-section select,
body.grab-customer-page .checkout-section textarea{
  width:100%;
  min-height:52px;
  border:1.5px solid #ffd1e4!important;
  border-radius:18px;
  padding:12px 14px;
  background:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}
body.grab-customer-page .checkout-section textarea{
  min-height:96px;
  resize:vertical;
}
body.grab-customer-page .checkout-section input[type=file]{
  padding:10px;
  border-style:dashed!important;
  background:#fff8fb;
}
body.grab-customer-page .checkout-section input[type=file]::file-selector-button{
  border:0;
  border-radius:999px;
  padding:9px 12px;
  margin-right:10px;
  background:linear-gradient(135deg,#ec3f83,#b20f58);
  color:white;
  font-weight:1000;
}
body.grab-customer-page .map-tools.real-map-tools{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
body.grab-customer-page .map-tools.real-map-tools .btn{
  width:100%;
  min-height:50px;
}
body.grab-customer-page .payment-choice-card{
  display:grid;
  gap:10px;
  padding:13px;
  border:1px solid #ffd1e4;
  border-radius:22px;
  background:linear-gradient(180deg,#fff7fb,#fff);
}
body.grab-customer-page .payment-choice-card>b{
  display:flex;
  align-items:center;
  gap:7px;
  color:#8a0f45;
  font-size:1.05rem;
}
body.grab-customer-page .payment-choice-card>b:before{content:"💸";}
body.grab-customer-page .payment-choice-card .check{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:12px;
  border:1px solid #ffe1ee;
  border-radius:18px;
  background:white;
  color:#321426;
  line-height:1.45;
}
body.grab-customer-page .payment-choice-card input[type=radio]{
  width:22px;
  height:22px;
  min-height:22px;
  margin:1px 0 0;
  accent-color:#ec3f83;
}
body.grab-customer-page .payment-qr-card{
  display:block;
  padding:13px 14px;
  border-radius:20px;
  border:1px solid #cdea9f;
  background:#f1fbe6;
  color:#3a6b12;
}
body.grab-customer-page .payment-qr-card b,
body.grab-customer-page .payment-qr-card small{
  display:block;
  line-height:1.45;
}
body.grab-customer-page .payment-qr-card small{
  margin-top:3px;
  color:#376246;
  font-weight:750;
}
body.grab-customer-page .cart-panel .cart-head{
  position:sticky;
  top:0;
  background:white;
  padding-bottom:8px;
}
@media(min-width:720px){
  body.grab-customer-page .checkout-grid{
    grid-template-columns:1fr 1fr;
  }
  body.grab-customer-page .map-tools.real-map-tools{
    grid-template-columns:minmax(0,1fr) auto;
  }
  body.grab-customer-page .map-tools.real-map-tools .btn{
    width:auto;
    min-width:132px;
  }
}
@media(max-width:520px){
  body.grab-customer-page .customer-app{gap:12px;}
  body.grab-customer-page .shop-picker,
  body.grab-customer-page .selected-shop-card,
  body.grab-customer-page .menu-section,
  body.grab-customer-page .checkout-section{
    margin-left:10px;
    margin-right:10px;
    padding:14px;
    border-radius:24px;
  }
  body.grab-customer-page .featured-food-section{margin-left:10px;margin-right:10px;}
  body.grab-customer-page .customer-section-title{
    flex-direction:column;
    gap:6px;
  }
  body.grab-customer-page .selected-shop-main{
    grid-template-columns:58px minmax(0,1fr);
  }
  body.grab-customer-page .selected-shop-main h1{font-size:1.22rem;}
  body.grab-customer-page .real-menu-card{
    grid-template-columns:76px minmax(0,1fr)!important;
  }
  body.grab-customer-page .real-menu-card .food-photo,
  body.grab-customer-page .real-menu-card .food-icon{
    width:76px!important;
    height:76px!important;
  }
  body.grab-customer-page .real-menu-card .qty-stepper{
    grid-template-columns:40px 48px 40px;
  }
  body.grab-customer-page .qty-stepper button,
  body.grab-customer-page .qty-stepper input{
    width:40px;
    height:40px;
    min-height:40px;
  }
  body.grab-customer-page .qty-stepper input{width:48px;}
}

/* ===== KH Delivery V26 — Distance fee + slip upload ===== */
.delivery-fee-display {
  background: #e8f5e9;
  border-radius: 12px;
  padding: 12px 16px;
  text-align: center;
  margin-bottom: 4px;
}
.delivery-fee-display span {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--primary);
  display: block;
}
.delivery-fee-display small {
  font-size: .75rem;
  color: #6b7280;
  margin-top: 4px;
  display: block;
}
.slip-upload-box {
  background: #fef3c7;
  border: 2px dashed #f59e0b;
  border-radius: 12px;
  padding: 16px;
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.slip-upload-box b {
  font-size: .95rem;
  font-weight: 700;
  color: #92400e;
}
.slip-upload-box small {
  font-size: .78rem;
  color: #a16207;
}
.rider-qr-highlight {
  text-align: center;
  padding: 12px;
  background: #f1fbe6;
  border-radius: 12px;
  margin-top: 8px;
}
.rider-qr-highlight b {
  display: block;
  font-size: .9rem;
  color: #3a6b12;
  margin-bottom: 8px;
}
.big-qr {
  max-width: 220px !important;
  width: 220px !important;
  height: auto !important;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.slip-preview-box {
  text-align: center;
  margin-top: 12px;
  padding: 12px;
  background: white;
  border-radius: 12px;
}
.slip-preview-box b {
  display: block;
  margin-bottom: 8px;
  font-size: .9rem;
  color: #374151;
}

/* =============================================
   CUSTOMER PAGE v28
   ============================================= */

/* Customer Hero */
.customer-hero{border-radius:var(--radius-xl);padding:24px 20px 18px;margin-bottom:14px;background:linear-gradient(135deg,var(--dark),var(--primary) 55%,#ff74ad);color:#fff;box-shadow:0 20px 60px rgba(122,15,63,.2);overflow:hidden;position:relative}
.customer-hero::after{content:'🛵';position:absolute;right:-8px;top:-4px;font-size:90px;opacity:.12;transform:rotate(-14deg)}
.customer-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;position:relative;z-index:1}
.delivery-to{flex:1;display:flex;align-items:center;gap:8px;font-size:.82rem;opacity:.88;min-width:0}
.delivery-to strong{display:block;font-weight:800;font-size:.92rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.customer-logo{width:32px;height:32px;border-radius:8px;object-fit:cover;border:2px solid rgba(255,255,255,.5);flex-shrink:0}
.circle-btn{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;font-size:1.3rem;font-weight:800;cursor:pointer;flex-shrink:0;transition:all .15s}
.circle-btn:hover{background:rgba(255,255,255,.3)}
.brand-slogan{font-size:.82rem;font-weight:700;opacity:.76;text-align:center;margin:2px 0 10px;position:relative;z-index:1}
.customer-search{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:8px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:10px 16px;position:relative;z-index:1;transition:all .15s;margin-bottom:12px}
.customer-search:focus-within{background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.5);box-shadow:0 0 0 4px rgba(255,255,255,.08)}
.customer-search input{border:0;background:none;color:#fff;font-size:.92rem;font-family:inherit;outline:0;width:100%}
.customer-search input::placeholder{color:rgba(255,255,255,.6)}

/* Service Filter Cards */
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative;z-index:1}
.service-card{display:grid;gap:4px;justify-items:center;text-align:center;border:0;border-radius:var(--radius);padding:12px 8px;background:rgba(255,255,255,.14);color:rgba(255,255,255,.85);cursor:pointer;font-family:inherit;transition:all .2s}
.service-card:hover{background:rgba(255,255,255,.24)}
.service-card.active{background:#fff;color:var(--primary-dark);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.service-card b{font-size:1.5rem;line-height:1;display:block}
.service-card span{font-weight:700;font-size:.78rem}
.service-card small{font-size:.68rem;opacity:.7}

/* Shop Picker */
.shop-picker{margin-bottom:16px}
.customer-section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid var(--line-soft)}
.customer-section-title span{display:block;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);margin-bottom:2px}
.customer-section-title h2{font-size:1.15rem;font-weight:800;color:var(--dark);margin:0}
.customer-section-title small{color:var(--muted);flex-shrink:0}
.sticky-title{position:sticky;top:68px;z-index:8;background:var(--bg);padding-top:6px}
.shop-scroll{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:none;scroll-snap-type:x proximity}
.shop-scroll::-webkit-scrollbar{display:none}
.shop-chip{display:flex;align-items:center;gap:8px;padding:10px 16px;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);cursor:pointer;font-weight:700;font-size:.88rem;white-space:nowrap;transition:all .2s;scroll-snap-align:start;flex-shrink:0}
.shop-chip:hover{border-color:var(--primary-strong);box-shadow:var(--shadow)}
.shop-chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 8px 24px rgba(236,63,131,.3)}
.shop-chip.closed{opacity:.5;pointer-events:none}
.shop-chip .shop-avatar,.shop-chip img.shop-avatar-img{width:32px;height:32px;border-radius:8px;object-fit:cover;flex-shrink:0}
.shop-chip .shop-avatar{display:grid;place-items:center;background:var(--primary-light);color:var(--primary);font-weight:900;font-size:.9rem}
.shop-chip small{color:var(--muted);font-size:.72rem}
.shop-chip.active small{color:rgba(255,255,255,.8)}

/* Selected Shop Card */
.selected-shop-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;margin-bottom:14px;box-shadow:var(--shadow-sm);position:relative}
.selected-badge{position:absolute;top:-10px;left:16px;padding:5px 14px;border-radius:999px;background:var(--primary);color:#fff;font-weight:900;font-size:.72rem;letter-spacing:.04em;box-shadow:0 4px 12px rgba(236,63,131,.25)}
.selected-shop-main{display:flex;align-items:center;gap:14px;margin-bottom:12px;margin-top:4px}
.selected-shop-logo{width:52px;height:52px;border-radius:var(--radius);background:var(--primary-light);color:var(--primary);display:grid;place-items:center;font-weight:900;font-size:1.3rem;flex-shrink:0}
.selected-shop-logo.selected-shop-img{object-fit:cover}
.selected-shop-main h1{margin:0;font-size:1.15rem;font-weight:800;color:var(--dark);line-height:1.3}
.selected-shop-main p{font-size:.82rem;color:var(--muted);margin:2px 0}
.selected-shop-main small{font-size:.75rem;color:var(--muted)}
.selected-shop-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:.76rem;font-weight:700;color:var(--primary);padding-top:8px;border-top:1px solid var(--line-soft)}

/* Featured Food */
.featured-food-section{margin-bottom:16px}
.featured-food-scroll{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 0}
.featured-food-scroll::-webkit-scrollbar{display:none}
.featured-food-card{flex:0 0 160px;scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .2s;display:grid;position:relative;font-family:inherit}
.featured-food-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--primary-strong)}
.featured-food-card:disabled{opacity:.45;pointer-events:none}
.featured-food-photo{width:100%;height:110px;object-fit:cover;display:block}
.featured-food-art{width:100%;height:110px;display:grid;place-items:center;font-size:3rem;background:var(--primary-light)}
.featured-food-info{padding:10px 10px 4px;display:block}
.featured-food-info b{display:block;font-weight:800;font-size:.88rem;line-height:1.2;color:var(--dark)}
.featured-food-info small{font-size:.7rem;color:var(--muted)}
.featured-food-price{padding:0 10px;font-weight:900;font-size:1rem;color:var(--primary)}
.featured-plus{position:absolute;bottom:8px;right:8px;width:32px;height:32px;display:grid;place-items:center;background:var(--primary);color:#fff;border-radius:999px;font-weight:900;font-size:1.2rem;box-shadow:0 4px 12px rgba(236,63,131,.3);transition:all .15s}
.featured-food-card:hover .featured-plus{transform:scale(1.1)}

/* Menu Section */
.menu-section{margin-bottom:16px}
.menu-title-actions{display:flex;gap:8px}
.menu-category{font-size:.88rem;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:14px 0 8px;margin:0;border-bottom:1px solid var(--line-soft)}
.menu-category:first-child{padding-top:4px}
.menu-list-real{display:grid;gap:6px}

/* Real Menu Card */
.real-menu-card{display:grid;grid-template-columns:82px 1fr auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px;transition:all .2s;list-style:none}
.real-menu-card:hover{box-shadow:var(--shadow);border-color:var(--primary-strong)}
.real-menu-card.soldout{opacity:.45;pointer-events:none}
.food-photo{width:82px;height:82px;border-radius:var(--radius);object-fit:cover}
.food-icon{width:82px;height:82px;border-radius:var(--radius);display:grid;place-items:center;font-size:2.2rem;background:var(--primary-light)}
.menu-info{min-width:0}
.menu-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px}
.menu-line b{font-weight:800;font-size:.92rem;color:var(--dark);line-height:1.25}
.menu-line strong{font-weight:900;color:var(--primary);font-size:.95rem;white-space:nowrap}
.menu-info p{font-size:.78rem;color:var(--muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.menu-info small{font-size:.7rem;color:var(--muted);display:block;margin-top:3px}

/* Qty Stepper */
.qty-stepper{display:flex;align-items:center;gap:4px;flex-shrink:0}
.qty-minus,.qty-plus{width:32px;height:32px;display:grid;place-items:center;border:2px solid var(--line);border-radius:8px;background:var(--card);color:var(--dark);font-weight:900;font-size:1.1rem;cursor:pointer;transition:all .15s;font-family:inherit}
.qty-minus:hover,.qty-plus:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}
.qty-minus:disabled,.qty-plus:disabled{opacity:.3;cursor:not-allowed}
.qty{width:40px;height:32px;text-align:center;border:2px solid var(--line);border-radius:8px;font-weight:900;font-size:.88rem;font-family:inherit;-moz-appearance:textfield}
.qty::-webkit-inner-spin-button,.qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Cart Panel */
.customer-order-form{display:grid}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;margin-bottom:10px;border-bottom:2px solid var(--line-soft)}
.cart-head b{font-size:1rem;font-weight:900;color:var(--dark)}
.cart-head span{font-size:.82rem;color:var(--muted);font-weight:700}
.cart-close{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:8px;background:var(--line-soft);color:var(--muted);font-size:1.2rem;font-weight:900;cursor:pointer}
.cart-close:hover{background:var(--line);color:var(--dark)}
.cart-items{display:grid;gap:8px;max-height:280px;overflow-y:auto;margin-bottom:12px}
.cart-totals{display:grid;gap:4px;padding:10px 0;border-top:1px solid var(--line-soft);margin-bottom:10px}
.cart-totals span{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted)}
.cart-totals strong{display:flex;justify-content:space-between;font-size:1.05rem;font-weight:900;color:var(--dark);padding-top:6px;border-top:2px solid var(--dark)}
.cart-note{display:block;text-align:center;color:var(--muted);font-size:.72rem;margin-top:8px}

/* Customer Alert */
.customer-alert{text-align:center;padding:12px;margin-bottom:10px;border-radius:var(--radius);background:#FEF2F2;color:var(--red);font-weight:700;font-size:.88rem}

/* Small screen refinements for customer */
@media(max-width:640px){
  .real-menu-card{grid-template-columns:68px 1fr auto;gap:8px;padding:10px}
  .food-photo,.food-icon{width:68px!important;height:68px!important}
  .qty-minus,.qty-plus{width:28px;height:28px;font-size:.95rem}
  .qty{width:34px;height:28px;font-size:.82rem}
  .service-card{padding:10px 4px}
  .service-card b{font-size:1.2rem}
  .service-card span{font-size:.68rem}
  .selected-shop-logo{width:42px;height:42px}
  .featured-food-card{flex:0 0 140px}
  .customer-hero{border-radius:var(--radius-lg);padding:18px 14px 14px}
}

/* ===== IMAGE SIZE FIX — grid min-width:auto override ===== */
/* Grid items (especially images) default to min-width:auto,
   which lets natural image dimensions blow through track sizing */
img{max-width:100%;height:auto}
body.grab-customer-page .real-menu-card .food-photo,
body.grab-customer-page .real-menu-card .food-icon{min-width:0!important;max-width:82px!important}
body.grab-customer-page .selected-shop-main .selected-shop-logo,
body.grab-customer-page .selected-shop-main .selected-shop-img{min-width:0;max-width:70px}
body.grab-customer-page .shop-chip .shop-avatar,
body.grab-customer-page .shop-chip .shop-avatar-img{min-width:0;max-width:54px}
body.grab-customer-page .featured-food-photo{min-width:0}
body.grab-customer-page .customer-logo{min-width:0}

/* ═══════════════════════════════════════════════════════════════════
   KH DELIVERY — UNIFIED BRAND DESIGN SYSTEM v29
   Single source of truth. Pink guava mascot identity across all pages.
   Defined LAST so the cascade resolves every page to one brand.
   Palette derived from the official logo (pink guava + leaf green).
   ═══════════════════════════════════════════════════════════════════ */
:root{
  /* ---- PRIMARY: guava pink (from logo) ---- */
  --primary:#ec3f83;          /* brand pink */
  --primary-strong:#d72a6f;   /* hover/press */
  --primary-dark:#a80f55;     /* deep pink — headings on light */
  --primary-deep:#7a0f3f;     /* darkest accent */
  --primary-light:#ffe4f0;    /* tint surface */
  --primary-50:#fff5fa;       /* lightest wash */
  --primary-100:#ffe9f3;
  --primary-200:#ffd1e4;
  --kh-pink:#ec3f83;--kh-pink-2:#ff74ad;--kh-pink-3:#fff0f7;--kh-deep:#8a0f45;

  /* ---- SECONDARY: soft pink / white / light gray ---- */
  --bg:#fff7fb;               /* app background */
  --card:#ffffff;             /* surfaces */
  --line:#ffd6e6;             /* pink-tinted hairline */
  --line-soft:#ffe9f2;        /* lighter divider */
  --surface-2:#fdf1f6;        /* alt surface */

  /* ---- ACCENTS ---- */
  --leaf:#5fae22;             /* guava-leaf green — SUCCESS only */
  --leaf-light:#eafad6;
  --green:#5fae22;--green2:#84cc16;--kh-leaf:#5fae22;
  --promo:#fb5870;            /* soft red — promotions */
  --promo-light:#ffe6ea;
  --red:#ef4444;              /* errors/destructive */
  --amber:#f7b733;            /* soft yellow — notifications/warnings */
  --amber-light:#fff3d6;

  /* ---- TEXT ---- */
  --ink:#2b1320;              /* primary body text (warm near-black) */
  --dark:#7a0f3f;             /* brand-dark headings */
  --text-strong:#2b1320;
  --muted:#9a7184;            /* secondary text (warm gray-pink) */
  --readable-line:1.6;

  /* ---- TYPOGRAPHY SCALE (one system, all pages) ---- */
  --font-display:'Noto Sans Thai',Inter,system-ui,-apple-system,sans-serif;
  --font-ui:'Noto Sans Thai',Inter,system-ui,-apple-system,sans-serif;
  --fs-app-title:1.18rem;     /* topbar brand */
  --fs-page-title:clamp(1.9rem,5.5vw,3.2rem); /* hero H1 */
  --fs-section:1.18rem;       /* section headers */
  --fs-subtitle:1rem;
  --fs-body:0.95rem;
  --fs-caption:0.78rem;
  --fs-button:0.95rem;
  --lh-tight:1.15;--lh-body:1.6;

  /* ---- RADIUS ---- */
  --radius-sm:10px;
  --radius:16px;
  --radius-lg:22px;
  --radius-xl:30px;
  --radius-pill:999px;

  /* ---- SHADOW / ELEVATION ---- */
  --shadow-sm:0 4px 14px rgba(236,63,131,.08);
  --shadow:0 12px 32px rgba(236,63,131,.12);
  --shadow-lg:0 22px 60px rgba(236,63,131,.18);
  --shadow-pop:0 26px 70px rgba(122,15,63,.22);

  /* ---- SPACING (4px base grid) ---- */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;

  --progress:0%;
}

/* ---- GLOBAL BASE ---- */
body{font-family:var(--font-ui);color:var(--ink);line-height:var(--lh-body);
  background:radial-gradient(circle at 16% -2%,#ffe6f2 0 20%,transparent 21%),
             radial-gradient(circle at 88% 6%,#eafad6 0 13%,transparent 14%),
             linear-gradient(180deg,#fff7fb,#ffffff 46%,#fff7fb)}
h1,h2,h3,.brand b{font-family:var(--font-display)}
::selection{background:var(--primary-light);color:var(--primary-dark)}
:focus-visible{outline:3px solid rgba(236,63,131,.45);outline-offset:2px}

/* ---- TOPBAR / NAV ---- */
.topbar{background:rgba(255,247,251,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);box-shadow:0 6px 22px rgba(236,63,131,.06)}
.brand{color:var(--primary-dark)}
.brand b{font-size:var(--fs-app-title);letter-spacing:.01em}
.brand-logo{width:38px;height:38px;border-radius:13px;object-fit:cover;border:2.5px solid #fff;box-shadow:0 8px 20px rgba(236,63,131,.26)}
nav a{color:#8a3360;font-weight:700}
nav a:hover{background:var(--primary-100);color:var(--primary)}

/* ---- HERO / PAGE HEAD ---- */
.hero,.page-head{
  background:radial-gradient(circle at 84% 12%,rgba(132,204,22,.55) 0 8%,transparent 9%),
             radial-gradient(circle at 92% 32%,rgba(255,255,255,.4) 0 13%,transparent 14%),
             linear-gradient(135deg,#ff6aaa 0%,#ec3f83 48%,#a80f55 100%);
  border:1px solid var(--primary-200);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-lg);color:#fff}
.hero h1,.page-head h1{font-family:var(--font-display);font-size:var(--fs-page-title);line-height:.98;letter-spacing:-.03em}
.eyebrow{color:#fff8fb}

/* ═══ BUTTONS — one standard ═══ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-ui);font-size:var(--fs-button);font-weight:800;
  padding:12px 20px;border-radius:var(--radius-pill);border:1.5px solid transparent;
  cursor:pointer;transition:transform .12s ease,box-shadow .18s ease,background .18s ease;
  text-decoration:none;line-height:1;min-height:46px}
.btn:active{transform:scale(.96)}
.btn.primary,.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;box-shadow:0 12px 26px rgba(236,63,131,.28)}
.btn.primary:hover,.btn-primary:hover{box-shadow:0 16px 34px rgba(236,63,131,.36)}
.btn.secondary,.btn.light,.btn.ghost{background:var(--primary-50);color:var(--primary-dark);border-color:var(--primary-200)}
.btn.secondary:hover,.btn.light:hover,.btn.ghost:hover{background:var(--primary-100);border-color:var(--primary)}
.btn.success{background:linear-gradient(135deg,var(--leaf),#84cc16);color:#fff}
.btn.danger{background:var(--red);color:#fff}
.btn.big{min-height:52px;font-size:1.02rem;padding:15px 24px}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ═══ CARDS — one standard ═══ */
.card,.panel,.order-card,.shop-picker,.selected-shop-card,.menu-section,
.checkout-section,.cart-panel,.workflow-chip,.menu-edit,.featured-food-card,
.real-menu-card,.stats-row div{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm)}
.card:hover,.featured-food-card:hover,.real-menu-card:hover{box-shadow:var(--shadow)}

/* ═══ INPUTS — one standard ═══ */
input[type=text],input[type=tel],input[type=email],input[type=password],
input[type=number],input[type=search],textarea,select{
  font-family:var(--font-ui);font-size:16px;color:var(--ink);
  border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;
  padding:12px 14px;transition:border-color .15s,box-shadow .15s;width:100%}
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--primary);
  box-shadow:0 0 0 4px rgba(236,63,131,.12)}

/* ═══ BADGES / PILLS ═══ */
.badge{background:var(--primary-light);color:var(--primary-dark)}
.badge.success{background:var(--leaf-light);color:#3f7a12}
.badge.promo{background:var(--promo-light);color:#c01f3a}
.badge.warn{background:var(--amber-light);color:#9a6a00}
.pill{border:1.5px solid var(--line);background:var(--primary-50);color:var(--primary-dark);border-radius:var(--radius-pill)}
.pill.active{background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;border-color:var(--primary)}

/* ═══ BOTTOM NAV / TABBAR ═══ */
.mobile-tabbar{background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);box-shadow:0 -8px 28px rgba(236,63,131,.08)}
.mobile-tabbar a{color:var(--muted)}
.mobile-tabbar a.active{color:var(--primary)}
.mobile-tabbar a.active b{transform:translateY(-1px)}

/* ═══ FLOATING CTA ═══ */
.floating-order,.floating-cart{background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;box-shadow:0 18px 40px rgba(236,63,131,.34);border-radius:var(--radius-pill)}

/* ═══ STATUS COLORS — semantic, consistent everywhere ═══ */
.notice.success,.status-success{background:var(--leaf-light);border-color:#cdeaa6;color:#3f7a12}
.notice.warn{background:var(--amber-light);border-color:#ffe09c;color:#9a6a00}
.notice.error,.customer-alert{background:#fff0f1;border-color:#ffd0d6;color:#c01f3a}
.live-dot:before{background:var(--leaf)}

/* ═══ IMAGE SYSTEM — consistent ratios, never stretched ═══ */
img{max-width:100%;height:auto}
.food-photo,.food-icon{aspect-ratio:1/1;object-fit:cover}
.featured-food-photo,.featured-food-art{aspect-ratio:4/3;object-fit:cover}
.shop-avatar-img,.menu-thumb,.selected-shop-img{object-fit:cover}
.brand-logo,.customer-logo{object-fit:cover}

/* ═══ ANIMATIONS — light, GPU-friendly ═══ */
@keyframes kh-fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes kh-pulse{0%,100%{box-shadow:0 0 0 0 rgba(236,63,131,.35)}50%{box-shadow:0 0 0 8px rgba(236,63,131,0)}}
@keyframes kh-shimmer{0%{background-position:-380px 0}100%{background-position:380px 0}}
main>*{animation:kh-fade-up .28s ease both}
.btn,.service-card,.featured-food-card,.real-menu-card,.shop-chip{transition:transform .12s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.service-card:active,.featured-food-card:active,.real-menu-card:active,.shop-chip:active{transform:scale(.97)}
.progress-step.current .step-icon{animation:kh-pulse 1.8s ease-in-out infinite}
.skeleton{background:linear-gradient(90deg,#fbe4ee 25%,#fff0f6 37%,#fbe4ee 63%);background-size:760px 100%;animation:kh-shimmer 1.3s linear infinite;border-radius:var(--radius)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ═══ CUSTOMER PAGE — unify to PINK (replaces emerald override) ═══ */
body.grab-customer-page{background:var(--primary-50)!important;color:var(--ink)!important}
body.grab-customer-page main{background:linear-gradient(180deg,#fff0f7 0%,#fffafc 420px)!important;box-shadow:0 0 0 1px rgba(236,63,131,.06),0 28px 90px rgba(122,15,63,.14)!important}
.customer-hero,.customer-hero.kh-customer-hero{
  background:radial-gradient(circle at 80% 19%,rgba(132,204,22,.6) 0 9%,transparent 10%),
            radial-gradient(circle at 14% 17%,rgba(255,255,255,.45) 0 11%,transparent 12%),
            linear-gradient(155deg,#ff78b1 0%,#ec3f83 52%,#a80f55 100%)!important;color:#fff!important}
.customer-hero.kh-customer-hero:after{content:'🍈'!important}
.service-card{color:var(--primary-dark)!important}
.service-card.active{background:#fff!important;color:var(--primary)!important;box-shadow:0 12px 28px rgba(236,63,131,.2)!important}
.selected-badge{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}
.selected-shop-logo,.shop-avatar{background:linear-gradient(135deg,var(--primary),var(--kh-pink-2))!important;color:#fff!important}
.selected-shop-meta span,.selected-shop-meta{color:var(--primary)!important}
.featured-food-card,.real-menu-card,body.grab-customer-page .real-menu-card{border:1px solid var(--line)!important;box-shadow:var(--shadow-sm)!important}
.featured-plus,.qty-plus{background:linear-gradient(135deg,var(--primary),var(--primary-strong))!important;color:#fff!important}
.qty-minus{color:var(--primary)!important}
.menu-category,body.grab-customer-page .menu-category{color:var(--primary-dark)!important}
.featured-food-price,.menu-line strong,body.grab-customer-page .real-menu-card .menu-line strong{color:var(--primary)!important}
.cart-panel{border-top:1px solid var(--line)!important}
.cart-totals strong{color:var(--primary-dark)!important}
.food-photo,.featured-food-photo,.menu-thumb,.food-icon,.featured-food-art{background:var(--primary-light)!important;border-color:var(--line)!important}
body.grab-customer-page .real-menu-card b,.real-menu-card .menu-line b,body.grab-customer-page .selected-shop-main h1{color:var(--ink)!important}
body.grab-customer-page .real-menu-card p,body.grab-customer-page .real-menu-card small{color:var(--muted)!important}
body.grab-customer-page .shop-chip{background:#fff;border-color:var(--line)!important}
body.grab-customer-page .shop-chip.active{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}
body.grab-customer-page .shop-chip b{color:var(--ink)!important}
body.grab-customer-page .shop-chip small{color:var(--muted)!important}
.customer-section-title span{color:var(--primary)!important}

/* ═══ TRACKING — pink progress ═══ */
.track-hero{background:radial-gradient(circle at 82% 14%,rgba(132,204,22,.6) 0 9%,transparent 10%),linear-gradient(135deg,#ff74ad,#ec3f83 54%,#a80f55)!important}
.delivery-progress:after{background:linear-gradient(var(--primary),var(--primary-strong))!important}
.progress-step.done .step-icon,.progress-step.current .step-icon{background:var(--primary-light)!important}
.track-state{color:var(--primary-dark)!important}

/* ═══ EMPTY STATES ═══ */
.empty-state{text-align:center;padding:32px 20px;color:var(--muted)}
.empty-state .empty-logo{width:84px;height:84px;border-radius:24px;object-fit:cover;opacity:.9;margin-bottom:12px;box-shadow:var(--shadow-sm)}

/* ═══ TYPOGRAPHY NORMALIZATION across pages ═══ */
.section-title h2,.panel h2,.customer-section-title h2{font-family:var(--font-display);font-size:var(--fs-section);color:var(--primary-dark)}
.muted,small{color:var(--muted)}
.muted a{color:var(--primary);font-weight:800}

/* ═══════════════════════ v2 COMPONENTS (rating · chat · review) ═══════════════════════ */

/* Shop rating badges */
.shop-rating-badge{display:inline-flex;align-items:center;gap:3px;margin-top:4px;font-size:.76rem;font-weight:800;color:#b8860b;background:var(--amber-light);border-radius:var(--radius-pill);padding:2px 9px}
.shop-rating-badge i{color:var(--muted);font-style:normal;font-weight:700}
.selected-shop-rating{margin-top:6px;font-weight:900;color:#b8860b;font-size:.92rem}
.selected-shop-rating span{color:var(--muted);font-weight:700;font-size:.82rem}

/* In-app chat */
.chat-card .chat-thread{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto;padding:8px 2px;margin-bottom:10px}
.chat-empty{color:var(--muted);text-align:center;padding:18px 8px;font-weight:600}
.chat-msg{display:flex;flex-direction:column;max-width:82%}
.chat-meta{font-size:.7rem;color:var(--muted);margin-bottom:2px;font-weight:700}
.chat-bubble{display:inline-block;padding:9px 13px;border-radius:16px;font-weight:600;line-height:1.45;word-break:break-word}
.chat-msg.chat-customer{align-self:flex-end;align-items:flex-end}
.chat-msg.chat-customer .chat-bubble{background:linear-gradient(135deg,var(--primary),var(--primary-2,#ff74ad));color:#fff;border-bottom-right-radius:5px}
.chat-msg.chat-rider .chat-bubble{background:var(--leaf-light);color:#2f5212;border-bottom-left-radius:5px}
.chat-msg.chat-shop .chat-bubble{background:var(--surface-2);color:var(--ink);border-bottom-left-radius:5px}
.chat-msg.chat-admin .chat-bubble{background:var(--amber-light);color:#92600e;border-bottom-left-radius:5px}
.chat-msg.chat-rider,.chat-msg.chat-shop,.chat-msg.chat-admin{align-self:flex-start}
.chat-input-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.chat-input-row input{border:1.5px solid var(--line);border-radius:var(--radius-pill);padding:11px 16px;font:inherit;background:#fff;color:var(--ink)}
.chat-input-row input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(236,63,131,.16)}
.chat-input-row .btn{min-height:auto;padding:11px 20px}
/* Rider-side chat: scoped inside an order card; flip alignment so rider = "me" on the right */
.rider-chat{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.rider-chat .chat-title{margin:0 0 8px;font-size:.95rem}
.rider-chat .chat-thread{max-height:200px}
.rider-chat .chat-msg.chat-rider{align-self:flex-end;align-items:flex-end}
.rider-chat .chat-msg.chat-rider .chat-bubble{background:linear-gradient(135deg,var(--primary),var(--primary-2,#ff74ad));color:#fff;border-bottom-right-radius:5px;border-bottom-left-radius:16px}
.rider-chat .chat-msg.chat-customer,.rider-chat .chat-msg.chat-shop,.rider-chat .chat-msg.chat-admin{align-self:flex-start;align-items:flex-start}
.rider-chat .chat-msg.chat-customer .chat-bubble{background:var(--leaf-light);color:#2f5212;border-bottom-left-radius:5px;border-bottom-right-radius:16px}
.chat-empty{color:var(--muted);font-size:.85rem;text-align:center;padding:6px 0}

/* Review / star rating */
.review-form{display:grid;gap:14px}
.rating-field label{display:block;font-weight:800;color:var(--ink);margin-bottom:6px}
.star-pick{display:flex;gap:4px}
.star-pick .star{font-size:30px;line-height:1;background:none;border:none;cursor:pointer;color:#e2cdd6;padding:0 2px;transition:transform .1s,color .12s}
.star-pick .star.on{color:#f7b733}
.star-pick .star:hover{transform:scale(1.12)}
.review-form textarea{border:1.5px solid var(--line);border-radius:var(--radius);padding:11px 12px;font:inherit;background:#fff;color:var(--ink);resize:vertical}
.review-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(236,63,131,.16)}
.review-done p{margin:4px 0;font-weight:800;color:var(--primary-dark)}
.review-done .review-comment{font-weight:600;color:var(--muted);font-style:italic}

/* KH Delivery v39: shop/rider signup form layout fix (.form-grid was undefined) */
.form-card{display:grid;gap:16px;padding:22px;margin-top:18px}
.form-card>label,.form-grid>label{display:grid;gap:7px;font-weight:800;color:#4b2538;align-content:start}
.form-card>label>input,.form-card>label>select,.form-card>label>textarea,
.form-grid>label>input,.form-grid>label>select,.form-grid>label>textarea{width:100%}
.form-card textarea{min-height:84px;resize:vertical}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}
.form-card .btn.big,.form-card>button{width:100%;margin-top:4px}
.form-card>.muted{margin:0;line-height:1.5}
@media(max-width:640px){.form-card{padding:18px;gap:13px}.form-grid{grid-template-columns:1fr;gap:13px}}

/* KH Delivery v40: centered signup hero image (shop/rider signup) */
.signup-hero-img{display:flex;justify-content:center;margin:-46px auto 6px;position:relative;z-index:2}
.signup-hero-img img{width:148px;height:148px;border-radius:34px;object-fit:cover;background:#fff;padding:10px;border:5px solid #fff;box-shadow:0 22px 55px rgba(236,63,131,.30),0 6px 16px rgba(120,12,63,.18)}
.signup-hero-img img:hover{transform:translateY(-3px) rotate(-2deg);transition:transform .25s ease}
@media(max-width:560px){.signup-hero-img{margin-top:-38px}.signup-hero-img img{width:120px;height:120px;border-radius:28px}}

/* ═══ KH Delivery v41: customer order page sized to match other pages (desktop) ═══ */
@media(min-width:721px){
  body.grab-customer-page main{
    max-width:1180px!important;
    margin:0 auto!important;
    padding:0 18px 124px!important;
    box-shadow:none!important;
    background:transparent!important;
  }
  body.grab-customer-page .customer-app{
    gap:18px;
  }
  body.grab-customer-page .customer-hero,
  body.grab-customer-page .customer-hero.kh-customer-hero{
    border-radius:28px!important;
    margin:14px 0 0;
  }
  body.grab-customer-page .menu-list-real{
    grid-template-columns:repeat(auto-fill,minmax(330px,1fr))!important;
    gap:12px!important;
    align-items:start;
  }
  body.grab-customer-page .featured-food-scroll{
    flex-wrap:wrap;
  }
  body.grab-customer-page .menu-section .menu-list-real article,
  body.grab-customer-page .real-menu-card{
    margin:0!important;
  }
  body.grab-customer-page .checkout-section{
    max-width:760px;
  }
}
@media(min-width:1040px){
  body.grab-customer-page .menu-list-real{
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr))!important;
  }
}
/* Tap-to-pin map (v41) — works on HTTP without GPS */
.pin-map{
  width:100%;
  height:240px;
  margin-top:.5rem;
  border-radius:14px;
  border:1px solid var(--line);
  overflow:hidden;
  z-index:0;
}
.pin-map .leaflet-control-attribution{font-size:9px;}

/* ═══ KH Delivery: prominent shop open/close toggle button (top status card) ═══ */
.merchant-status-card{position:relative}
.merchant-status-card>div:not(.shop-toggle-form){flex:1;min-width:0}
.shop-toggle-form{margin:0;margin-left:auto;flex:0 0 auto}
.shop-toggle-btn{min-height:46px;padding:11px 18px;border-radius:14px;font-weight:950;font-size:.95rem;white-space:nowrap;box-shadow:0 10px 26px rgba(236,63,131,.20)}
.shop-toggle-btn.primary{background:linear-gradient(135deg,#5fae22,#84cc16)!important;color:#fff!important;border:0!important;box-shadow:0 10px 26px rgba(95,174,34,.30)!important}
.shop-toggle-btn.primary:hover{filter:brightness(1.05)}
.shop-toggle-btn.danger-btn{min-height:46px;font-size:.95rem}
@media(max-width:640px){
  .merchant-status-card{flex-wrap:wrap}
  .shop-toggle-form{margin-left:0;width:100%}
  .shop-toggle-btn{width:100%}
}

/* ═══════════════════════ v47 — NOTIFICATION SYSTEM CLEANUP ═══════════════════════ */
/* Tidies the bell, dropdown, push opt-in row, notification list and bottom toast.
   Previously these relied on scattered inline styles and had no real layout. */

/* Bell button + unread badge */
.notif-bell{position:relative;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:1.15rem;cursor:pointer;flex:0 0 auto;box-shadow:0 4px 14px rgba(236,63,131,.08);transition:transform .12s ease,box-shadow .18s ease,border-color .18s ease}
.notif-bell:hover{border-color:var(--primary-200);box-shadow:0 8px 22px rgba(236,63,131,.16)}
.notif-bell:active{transform:scale(.94)}
.notif-bell .badge-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:.68rem;font-weight:900;line-height:1;border-radius:999px;border:2px solid #fff;box-shadow:0 4px 10px rgba(236,63,131,.4)}

/* Dropdown panel */
.notif-dropdown{display:none;position:absolute;top:calc(100% + 10px);right:0;width:min(340px,calc(100vw - 28px));max-height:min(70vh,460px);overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px rgba(82,6,42,.22);z-index:60;animation:kh-fade-up .18s ease both}
.notif-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:.85rem 1rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2;border-radius:18px 18px 0 0}
.notif-hd b{font-size:.98rem;color:var(--primary-dark)}
.notif-readall{background:none;border:none;color:var(--primary);cursor:pointer;font-weight:800;font-size:.82rem;padding:.2rem .35rem;border-radius:8px;transition:background .15s ease}
.notif-readall:hover{background:var(--primary-50)}

/* Push opt-in row */
.push-optin{display:flex;gap:.5rem;align-items:center;padding:.6rem 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}
.push-optin button{cursor:pointer;border:none;border-radius:11px;padding:.55rem .8rem;font-weight:800;font-size:.82rem;transition:transform .12s ease,filter .15s ease}
.push-optin button:active{transform:scale(.96)}
.push-optin .push-main-btn{flex:1;min-width:150px;background:var(--primary);color:#fff}
.push-optin .push-main-btn:hover{filter:brightness(1.05)}
.push-optin .push-test-btn{background:var(--surface-2,#f1f5f9);color:var(--ink)}
.push-hint{margin:0;padding:.55rem 1rem;font-size:.72rem;line-height:1.45;color:var(--muted);border-bottom:1px solid var(--line);background:var(--primary-50)}

/* Notification list rows */
#notif-list{padding:.25rem 0}
.notif-item{padding:.7rem 1rem;border-bottom:1px solid var(--line);font-size:.86rem;line-height:1.5;transition:background .15s ease}
.notif-item:last-child{border-bottom:0}
.notif-item.unread{background:var(--primary-50)}
.notif-item .notif-time{display:block;color:var(--muted);font-size:.7rem;font-weight:700;margin-bottom:.2rem}
.notif-item .notif-link{display:inline-flex;align-items:center;justify-content:center;margin-top:.5rem;padding:.45rem .7rem;border-radius:999px;background:var(--primary);color:#fff;font-size:.82rem;font-weight:900;box-shadow:0 8px 20px rgba(236,63,131,.18)}
.notif-empty{text-align:center;padding:1.6rem 1rem;color:var(--muted);font-weight:600;font-size:.88rem}

/* Bottom toast */
.toast{display:none;position:fixed;left:50%;bottom:calc(78px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:300;max-width:min(420px,calc(100vw - 28px));padding:.8rem 1.15rem;background:#2a0f1c;color:#fff;font-weight:700;font-size:.9rem;line-height:1.4;border-radius:14px;box-shadow:0 18px 46px rgba(0,0,0,.32);animation:kh-toast-in .2s ease both}
@keyframes kh-toast-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:560px){.notif-dropdown{position:fixed;top:64px;right:12px;left:12px;width:auto}.toast{bottom:calc(88px + env(safe-area-inset-bottom))}}

/* ═══════════════════════ v48 — CHAT INBOX (Messenger / LINE OA) ═══════════════════════ */
.chat-inbox-panel{padding:0;overflow:hidden}
.chat-inbox{display:grid;grid-template-columns:minmax(240px,320px) 1fr;height:min(72vh,620px);min-height:420px}
.chat-inbox-list{display:flex;flex-direction:column;border-right:1px solid var(--line);background:#fff;min-width:0}
.chat-search-row{padding:.7rem .8rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}
.chat-search-row input{width:100%;border:1px solid var(--line);border-radius:12px;padding:.6rem .85rem;font-size:.9rem;background:var(--primary-50)}
.chat-search-row input:focus{outline:none;border-color:var(--primary-200)}
.chat-convo-list{flex:1;overflow-y:auto;min-height:0}
.chat-loading,.chat-empty{text-align:center;color:var(--muted);padding:1.4rem 1rem;font-size:.88rem;font-weight:600}
.convo-row{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:.7rem .8rem;cursor:pointer;transition:background .12s ease;position:relative}
.convo-row:hover{background:var(--primary-50)}
.convo-row.active{background:var(--primary-50);box-shadow:inset 3px 0 0 var(--primary)}
.convo-avatar{flex:0 0 auto;width:42px;height:42px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#ec3f83,#b20f58);color:#fff;font-weight:900;font-size:1.05rem}
.convo-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}
.convo-top{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}
.convo-top b{font-size:.92rem;color:var(--primary-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.convo-top small{color:var(--muted);font-size:.7rem;font-weight:700;flex:0 0 auto}
.convo-preview{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.convo-row.has-unread .convo-preview{color:#321426;font-weight:700}
.convo-unread{flex:0 0 auto;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:.68rem;font-weight:900;border-radius:999px;align-self:center}
/* right side: chat room */
.chat-inbox-main{display:flex;flex-direction:column;min-width:0;background:linear-gradient(180deg,#fff,#fffafd)}
.chat-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;color:var(--muted);text-align:center;padding:2rem}
.chat-empty-emoji{font-size:2.6rem}
.chat-room{flex:1;display:flex;flex-direction:column;min-height:0}
.chat-room-head{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-bottom:1px solid var(--line);background:#fff}
.chat-back-btn{display:none;border:0;background:none;font-size:1.5rem;line-height:1;color:var(--primary);cursor:pointer;padding:0 .2rem}
.chat-room-who{flex:1;min-width:0;display:flex;flex-direction:column}
.chat-room-who b{font-size:.98rem;color:var(--primary-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-room-who small{color:var(--muted);font-size:.74rem;font-weight:700}
.chat-order-filter{flex:0 0 auto;border:1px solid var(--line);border-radius:10px;padding:.4rem .6rem;font-size:.82rem;background:var(--primary-50);max-width:46%}
.chat-room-thread{flex:1;overflow-y:auto;min-height:0;padding:1rem .9rem;display:flex;flex-direction:column;gap:.5rem}
.cr-msg{display:flex;flex-direction:column;max-width:78%;gap:.15rem}
.cr-msg.mine{align-self:flex-end;align-items:flex-end}
.cr-msg.theirs{align-self:flex-start;align-items:flex-start}
.cr-meta{font-size:.68rem;color:var(--muted);font-weight:700;padding:0 .3rem}
.cr-bubble{padding:.55rem .8rem;border-radius:16px;font-size:.9rem;line-height:1.4;word-break:break-word}
.cr-msg.mine .cr-bubble{background:linear-gradient(135deg,#ec3f83,#b20f58);color:#fff;border-bottom-right-radius:5px}
.cr-msg.theirs .cr-bubble{background:#fff;border:1px solid var(--line);color:#321426;border-bottom-left-radius:5px}
.cr-msg[data-role=shop] .cr-bubble{background:#fff7e6;border-color:#ffe2b0}
.cr-msg[data-role=rider] .cr-bubble{background:#e9f7ff;border-color:#bfe6ff}
.chat-room-input{display:flex;gap:.5rem;padding:.7rem .9rem;border-top:1px solid var(--line);background:#fff}
.chat-room-input input{flex:1;border:1px solid var(--line);border-radius:999px;padding:.6rem 1rem;font-size:.92rem}
.chat-room-input input:focus{outline:none;border-color:var(--primary-200)}
.chat-room-input .btn{flex:0 0 auto;border-radius:999px;padding:.6rem 1.3rem}
@media(max-width:760px){
  .chat-inbox{grid-template-columns:1fr;height:min(78vh,640px)}
  .chat-inbox-main{display:none}
  .chat-inbox.room-open .chat-inbox-list{display:none}
  .chat-inbox.room-open .chat-inbox-main{display:flex}
  .chat-back-btn{display:block}
}

/* v48: collapsible chat panel (shop side) */
.chat-collapse-card{padding:0;overflow:hidden}
.chat-collapse-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:none;cursor:pointer;padding:1rem 1.1rem;font-weight:900;font-size:1rem;color:var(--primary-dark)}
.chat-collapse-toggle .tab-count{margin-left:.4rem}
.chat-collapse-caret{transition:transform .2s ease;color:var(--muted)}
.chat-collapse-toggle.open .chat-collapse-caret{transform:rotate(180deg)}
.chat-collapse-body[hidden]{display:none}
.chat-collapse-card .chat-inbox{height:min(60vh,520px);border-top:1px solid var(--line);grid-template-columns:minmax(160px,200px) 1fr}
@media(max-width:760px){ .chat-collapse-card .chat-inbox{grid-template-columns:1fr;height:min(70vh,560px)} }

/* v50: clear price summaries for customer checkout and rider orders */
.checkout-price-summary,.price-summary-box{display:grid;gap:9px;margin:14px 0;padding:14px;border:1px solid #cbd5e1;border-radius:20px;background:#fff;box-shadow:0 12px 34px rgba(15,23,42,.08)}
.checkout-price-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding-bottom:8px;border-bottom:1px dashed #cbd5e1}.checkout-price-title b,.price-summary-box h3{margin:0;color:#0f172a;font-size:1.05rem;font-weight:1000}.checkout-price-title small{color:#64748b;font-weight:800;text-align:right}
.checkout-price-row,.price-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;border-radius:15px;font-weight:900}.checkout-price-row span,.price-row span{color:#475569}.checkout-price-row b,.price-row b{font-size:1.18rem;color:#0f172a;text-align:right}.checkout-price-row.food,.price-row.food{background:#fff7ed}.checkout-price-row.food b,.price-row.food b{color:#f97316}.checkout-price-row.delivery,.price-row.delivery{background:#eff6ff}.checkout-price-row.delivery b,.price-row.delivery b{color:#2563eb}.checkout-price-row.service,.price-row.method{background:#f8fafc}.checkout-price-row.total,.price-row.total{background:#ecfdf5;border:2px solid #86efac}.checkout-price-row.total span,.price-row.total span{color:#166534}.checkout-price-row.total b,.price-row.total b{color:#16a34a;font-size:1.55rem}.rider-payment-callout{margin:12px 0;padding:14px 16px;border-radius:18px;font-size:1.25rem;font-weight:1000;text-align:center;line-height:1.35}.rider-payment-callout.cod{background:#fef2f2;border:2px solid #fecaca;color:#dc2626}.rider-payment-callout.paid{background:#ecfdf5;border:2px solid #bbf7d0;color:#16a34a}.price-summary-box h3{padding-bottom:4px}.price-summary-box .price-row{font-size:1rem}.price-summary-box .price-row.method b{font-size:1rem;color:#334155}.cart-totals span:first-child b{color:#f97316}.cart-totals span:has(#feeText) b{color:#2563eb}.cart-totals strong b{color:#16a34a!important}
@media(max-width:560px){.checkout-price-summary,.price-summary-box{border-radius:18px;padding:12px;margin:12px 0}.checkout-price-title{display:grid}.checkout-price-title small{text-align:left}.checkout-price-row,.price-row{padding:10px;align-items:flex-start}.checkout-price-row b,.price-row b{font-size:1.1rem}.checkout-price-row.total b,.price-row.total b{font-size:1.35rem}.rider-payment-callout{font-size:1.12rem;padding:13px}}
