:root {
  --ink: #10211c;
  --muted: #6b7772;
  --paper: #fbfaf6;
  --white: #ffffff;
  --mint: #c8f15a;
  --aqua: #79ddd1;
  --orange: #ff7a45;
  --line: #e6e8e3;
  --shadow: 0 18px 55px rgba(16, 33, 28, .12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "DM Sans", sans-serif; }
button, input { font: inherit; }
[hidden] { display: none !important; }
button { color: inherit; }
button:focus-visible, input:focus-visible { outline: 3px solid rgba(47, 159, 145, .32); outline-offset: 2px; }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.topbar { position: sticky; top: 0; z-index: 20; min-height: 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 12px 4vw; background: rgba(251, 250, 246, .9); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(230,232,227,.75); }
.brand { display: flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; font-family: Manrope, sans-serif; font-weight: 800; font-size: 20px; }
.brand-mark { display: block; width: 36px; height: 36px; }
.location-pill { display: flex; align-items: center; gap: 10px; background: #eef0eb; border: 0; border-radius: 14px; padding: 8px 13px; cursor: pointer; text-align: left; }
.location-pill span:nth-child(2) { display: grid; }
.location-pill small { color: var(--muted); font-size: 10px; line-height: 1.1; }
.location-pill strong { font-size: 13px; }
.location-icon { color: #2f9f91; font-size: 9px; }
.desktop-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.button, .icon-button, .cart-button, .text-button { border: 0; cursor: pointer; }
.button { padding: 12px 17px; border-radius: 13px; font-weight: 700; }
.button-ghost { background: transparent; }
.button-dark { background: var(--ink); color: white; }
.button-light { background: white; color: var(--ink); }
.install-button { background: #e8eee7; color: var(--ink); }
.icon-button { width: 42px; height: 42px; border-radius: 50%; background: transparent; font-size: 23px; }
.cart-button { display: flex; align-items: center; gap: 9px; background: var(--mint); padding: 11px 14px; border-radius: 13px; font-weight: 800; }
.cart-count { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 8px; background: var(--ink); color: white; font-size: 11px; }
.hero { min-height: 510px; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; overflow: hidden; border-radius: 32px; margin-top: 22px; padding: 55px 6%; background: #e8eee7; position: relative; }
.hero-copy { position: relative; z-index: 2; max-width: 580px; }
.eyebrow, .kicker { display: inline-block; color: #487167; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; font-size: 11px; }
.eyebrow { padding: 8px 11px; border-radius: 999px; background: rgba(200,241,90,.8); color: #324415; }
h1, h2, h3 { font-family: Manrope, sans-serif; margin: 0; letter-spacing: -.04em; }
h1 { margin-top: 20px; font-size: clamp(52px, 6vw, 82px); line-height: .94; }
h1 em { color: #2f9f91; font-style: normal; }
.hero-copy > p { max-width: 480px; color: var(--muted); font-size: 18px; line-height: 1.55; }
.hero-search { display: flex; align-items: center; gap: 11px; max-width: 500px; padding: 8px 10px 8px 18px; background: white; border-radius: 17px; box-shadow: 0 8px 25px rgba(16,33,28,.08); }
.hero-search > span { font-size: 23px; }
.hero-search input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 10px 0; background: transparent; }
kbd { color: #7c8783; background: #f0f1ed; padding: 7px 9px; border-radius: 8px; font: 11px "DM Sans"; }
.hero-art { position: relative; min-height: 430px; }
.hero-orbit { position: absolute; border-radius: 50%; border: 1px solid rgba(47,159,145,.25); }
.orbit-one { width: 420px; height: 420px; top: 0; left: 5%; }
.orbit-two { width: 280px; height: 280px; top: 70px; left: 21%; }
.food-card { position: absolute; display: grid; place-items: center; background: white; box-shadow: var(--shadow); }
.food-card span { filter: drop-shadow(0 10px 8px rgba(16,33,28,.12)); }
.food-card small { font-weight: 800; }
.card-main { width: 245px; height: 285px; border-radius: 120px 120px 28px 28px; transform: rotate(5deg); top: 42px; left: 25%; }
.card-main span { font-size: 112px; }
.card-main small { font-size: 15px; }
.card-side { width: 145px; height: 165px; border-radius: 28px; transform: rotate(-9deg); left: 0; bottom: 15px; }
.card-side span { font-size: 67px; }
.delivery-badge { position: absolute; right: -18px; top: 55px; display: flex; align-items: center; gap: 10px; padding: 13px; background: var(--ink); color: white; border-radius: 16px; box-shadow: var(--shadow); transform: rotate(3deg); }
.delivery-badge > span { display: grid; place-items: center; width: 36px; height: 36px; background: var(--mint); color: var(--ink); border-radius: 11px; }
.delivery-badge div { display: grid; }.delivery-badge small { color: #b5c1bc; }
.section { padding-top: 76px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 26px; }
.section-heading h2, .promo h2, .modal h2 { margin-top: 5px; font-size: clamp(29px, 3.2vw, 43px); }
.text-button { background: transparent; font-weight: 800; }
.text-button span { margin-left: 7px; }
.categories { display: grid; grid-template-columns: repeat(7, 1fr); gap: 13px; }
.category { display: grid; gap: 10px; place-items: center; padding: 18px 8px 15px; border: 1px solid var(--line); background: white; border-radius: 20px; cursor: pointer; transition: .2s ease; }
.category:hover { transform: translateY(-3px); box-shadow: 0 10px 25px rgba(16,33,28,.07); }
.category.active { background: var(--ink); color: white; border-color: var(--ink); }
.category span { font-size: 31px; }.category strong { font-size: 13px; }
.restaurant-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px 18px; }
.restaurant-card { min-width: 0; border: 0; padding: 0; background: transparent; cursor: pointer; text-align: left; }
.restaurant-image { position: relative; height: 228px; overflow: hidden; display: grid; place-items: center; border-radius: 22px; background: var(--card-color); transition: transform .25s ease; }
.restaurant-card:hover .restaurant-image { transform: translateY(-4px); }
.restaurant-image .dish { font-size: 95px; filter: drop-shadow(0 20px 15px rgba(16,33,28,.15)); transform: rotate(var(--tilt)); transition: transform .3s ease; }
.restaurant-card:hover .dish { transform: rotate(0) scale(1.06); }
.tag { position: absolute; left: 13px; top: 13px; padding: 7px 10px; border-radius: 999px; background: var(--ink); color: white; font-size: 11px; font-weight: 700; }
.heart { position: absolute; right: 13px; top: 13px; display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(255,255,255,.9); font-size: 18px; cursor: pointer; }
.heart.liked { color: #e55065; }
.restaurant-info { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; padding: 14px 4px 0; }
.restaurant-info h3 { font-size: 20px; }
.restaurant-info p { grid-column: 1; color: var(--muted); margin: 0; font-size: 13px; }
.rating { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 13px; font-weight: 800; }
.rating b { color: #208777; }
.empty-state { padding: 70px 20px; text-align: center; background: #f0f1ec; border-radius: 25px; }
.empty-state > span { font-size: 50px; }.empty-state h3 { font-size: 25px; }.empty-state p { color: var(--muted); }
.promo { margin-top: 85px; margin-bottom: 105px; min-height: 340px; display: grid; grid-template-columns: 1.3fr .7fr; align-items: center; border-radius: 30px; padding: 50px 7%; overflow: hidden; background: #155b51; color: white; }
.promo > div:first-child { max-width: 650px; }.promo h2 { font-size: clamp(35px, 4vw, 54px); line-height: 1.03; }.promo p { color: #c6ded8; font-size: 17px; line-height: 1.5; }.pale { color: var(--mint); }
.promo-visual { justify-self: center; position: relative; display: grid; place-items: center; width: 210px; height: 210px; border-radius: 60px; background: var(--mint); color: var(--ink); transform: rotate(9deg); box-shadow: 0 0 0 18px rgba(200,241,90,.13), 0 0 0 38px rgba(200,241,90,.06); }
.promo-visual strong { font: 800 75px Manrope; }.promo-visual span { position: absolute; right: 20px; top: 13px; font-size: 35px; }
.mobile-nav { display: none; }
.overlay { position: fixed; inset: 0; z-index: 39; background: rgba(10,20,17,.48); backdrop-filter: blur(3px); }
.cart-drawer { position: fixed; right: 0; top: 0; bottom: 0; z-index: 40; width: min(460px, 100%); display: flex; flex-direction: column; background: var(--paper); box-shadow: -20px 0 60px rgba(16,33,28,.18); transform: translateX(105%); transition: transform .3s ease; }
.cart-drawer.open { transform: translateX(0); }
.drawer-header { display: flex; align-items: flex-start; justify-content: space-between; padding: 28px; border-bottom: 1px solid var(--line); }
.drawer-header h2 { font-size: 28px; margin-top: 3px; }
.close-button { width: 42px; height: 42px; border: 0; border-radius: 50%; background: #eceee9; font-size: 26px; cursor: pointer; }
.cart-body { flex: 1; overflow: auto; padding: 20px 28px; }
.empty-cart { height: 100%; display: grid; align-content: center; justify-items: center; text-align: center; }.empty-cart span { font-size: 55px; }.empty-cart p { color: var(--muted); max-width: 280px; }
.cart-item { display: grid; grid-template-columns: 60px 1fr auto; gap: 13px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.cart-item-emoji { display: grid; place-items: center; height: 60px; background: #edf0e9; border-radius: 14px; font-size: 29px; }
.cart-item h4 { margin: 0 0 3px; }.cart-item small { color: var(--muted); }.quantity { display: flex; align-items: center; gap: 10px; }.quantity button { width: 29px; height: 29px; border: 0; border-radius: 9px; background: #e9ece6; cursor: pointer; font-weight: 800; }
.cart-footer { padding: 20px 28px 26px; background: white; border-top: 1px solid var(--line); }.totals { display: grid; grid-template-columns: 1fr auto; gap: 8px; color: var(--muted); font-size: 13px; }.totals strong { color: var(--ink); }.grand-total { display: flex; justify-content: space-between; padding: 17px 0; font-size: 20px; font-weight: 800; }
.checkout-button { width: 100%; display: flex; justify-content: space-between; border: 0; border-radius: 15px; padding: 16px 18px; background: var(--mint); font-weight: 800; cursor: pointer; }
.modal { display: none; position: fixed; z-index: 42; background: var(--paper); box-shadow: var(--shadow); }.modal.open { display: block; animation: modalIn .25s ease; }
@keyframes modalIn { from { opacity: 0; transform: translate(-50%, -47%) scale(.97); } }
.restaurant-modal { width: min(720px, calc(100% - 28px)); max-height: min(840px, calc(100vh - 34px)); overflow: auto; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 26px; }
.modal-close { position: absolute; right: 17px; top: 17px; z-index: 2; background: white; }
.modal-cover { height: 245px; display: flex; align-items: flex-end; padding: 20px; background: var(--modal-color); font-size: 100px; text-align: center; }.modal-cover > div { width: 100%; }.rating-badge { float: left; padding: 8px 11px; border-radius: 10px; background: var(--ink); color: white; font: 700 12px "DM Sans"; }
.modal-content { padding: 27px; }.modal-meta { color: var(--muted); margin-top: 7px; }.menu-heading { display: flex; align-items: baseline; justify-content: space-between; margin: 30px 0 10px; }.menu-heading span { color: var(--muted); font-size: 12px; }
.menu-item { display: grid; grid-template-columns: 1fr auto 70px; gap: 15px; align-items: center; padding: 16px 0; border-top: 1px solid var(--line); }.menu-item p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }.menu-item strong { white-space: nowrap; }.menu-item button { width: 38px; height: 38px; justify-self: end; border: 0; border-radius: 12px; background: var(--ink); color: white; cursor: pointer; font-size: 22px; }.menu-emoji { display: inline-block; font-size: 33px; margin-right: 8px; vertical-align: middle; }
.location-modal { width: min(500px, calc(100% - 28px)); left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 24px; padding-bottom: 25px; }.location-input { display: flex; gap: 10px; margin: 24px; padding: 14px; background: #edefe9; border-radius: 14px; }.location-input span { color: #2f9f91; }.location-input input { width: 100%; border: 0; outline: 0; background: transparent; }.saved-locations { display: grid; margin: 0 24px 24px; }.saved-locations button { display: flex; gap: 13px; align-items: center; padding: 14px 0; text-align: left; border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; }.saved-locations button > span { display: grid; place-items: center; width: 40px; height: 40px; background: #e8ece6; border-radius: 12px; }.saved-locations div { display: grid; }.saved-locations small { color: var(--muted); }.location-modal > .checkout-button { width: calc(100% - 48px); margin-inline: 24px; }
.auth-modal { width: min(470px, calc(100% - 28px)); max-height: calc(100dvh - 24px); overflow-y: auto; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 26px; padding: 34px; }
.auth-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 34px; font: 800 20px Manrope, sans-serif; }.auth-brand img { width: 42px; height: 42px; }.auth-close { position: absolute; right: 22px; top: 22px; }.auth-modal h2 { margin-top: 5px; font-size: 34px; }.auth-intro { color: var(--muted); line-height: 1.5; margin: 8px 0 24px; }.auth-field { display: grid; gap: 7px; margin: 14px 0; font-size: 13px; font-weight: 700; }.auth-field input { width: 100%; border: 1px solid var(--line); border-radius: 13px; padding: 14px; background: white; outline: 0; }.auth-field input:focus { border-color: #2f9f91; }.password-input { position: relative; display: block; }.password-input input { padding-right: 70px; }.password-toggle { position: absolute; right: 7px; top: 50%; transform: translateY(-50%); border: 0; border-radius: 9px; padding: 7px 9px; background: #eef0eb; color: #287f73; font-size: 12px; font-weight: 800; cursor: pointer; }.auth-options { display: flex; justify-content: space-between; align-items: center; margin: -2px 0 10px; }.auth-link { border: 0; padding: 5px 0; background: transparent; color: #287f73; font-size: 13px; font-weight: 800; cursor: pointer; }.auth-status { min-height: 20px; color: #a43a3a; font-size: 13px; line-height: 1.4; }.auth-status.success { color: #208777; }.auth-submit { margin-top: 4px; }.auth-submit:disabled { opacity: .58; cursor: wait; }.auth-switch { display: block; margin: 19px auto 0; border: 0; background: transparent; color: #287f73; font-weight: 700; cursor: pointer; }
.account-type-field { margin: 0 0 18px; padding: 0; border: 0; }.account-type-field legend { margin-bottom: 9px; font-size: 13px; font-weight: 800; }.account-types { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.account-type { position: relative; cursor: pointer; }.account-type input { position: absolute; opacity: 0; pointer-events: none; }.account-type > span { display: grid; min-height: 92px; align-content: center; gap: 4px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }.account-type small { color: var(--muted); line-height: 1.35; }.account-type input:checked + span { border-color: #2f9f91; background: #eef8f5; box-shadow: 0 0 0 2px rgba(47,159,145,.12); }.account-type input:focus-visible + span { outline: 3px solid rgba(47,159,145,.28); outline-offset: 2px; }
.toast { position: fixed; z-index: 60; left: 50%; bottom: 28px; padding: 13px 18px; border-radius: 12px; background: var(--ink); color: white; font-weight: 700; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translate(-50%, 15px); transition: .25s ease; }.toast.show { opacity: 1; transform: translate(-50%, 0); }
@media (max-width: 900px) {
  .topbar { grid-template-columns: 1fr auto; }.location-pill { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; justify-content: center; }.desktop-actions .install-button, .desktop-actions .icon-button { display: none; }
  .hero { grid-template-columns: 1fr; padding: 50px 7%; }.hero-art { display: none; }.categories { grid-template-columns: repeat(4, 1fr); }.restaurant-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  body { padding-bottom: 76px; }.shell { width: min(100% - 28px, 1180px); }.topbar { min-height: 64px; padding: 10px 14px; }.brand { font-size: 18px; }.brand-mark { width: 33px; height: 33px; }.desktop-actions { display: block; }.desktop-actions .button, .desktop-actions .icon-button { display: none; }.desktop-actions .cart-button { padding: 10px; }.desktop-actions .cart-button > span:first-child { display: none; }
  .location-pill { justify-content: flex-start; }.hero { min-height: 430px; border-radius: 22px; margin-top: 14px; padding: 37px 24px; }.hero-copy > p { font-size: 16px; }.hero-search kbd { display: none; }
  .section { padding-top: 55px; }.section-heading { margin-bottom: 20px; }.section-heading h2 { font-size: 27px; }.text-button { font-size: 13px; }.categories { display: flex; overflow-x: auto; padding-bottom: 8px; scrollbar-width: none; }.category { min-width: 92px; }
  .restaurant-grid { grid-template-columns: 1fr; }.restaurant-image { height: 215px; }.restaurant-card:nth-child(n+5) { display: none; }.restaurant-grid.expanded .restaurant-card { display: block; }
  .promo { grid-template-columns: 1fr; margin-top: 65px; margin-bottom: 20px; padding: 36px 28px; }.promo-visual { display: none; }.promo h2 { font-size: 35px; }
  .mobile-nav { position: fixed; z-index: 30; left: 0; right: 0; bottom: 0; height: 70px; display: grid; grid-template-columns: repeat(4, 1fr); background: rgba(255,255,255,.96); border-top: 1px solid var(--line); backdrop-filter: blur(16px); }.mobile-nav button { position: relative; display: grid; place-items: center; align-content: center; gap: 2px; border: 0; background: transparent; color: #87908d; font-size: 10px; }.mobile-nav button > span { font-size: 21px; }.mobile-nav .active { color: #208777; }.mobile-nav i { position: absolute; top: 8px; right: 24%; display: grid; place-items: center; min-width: 17px; height: 17px; border-radius: 8px; background: var(--orange); color: white; font-size: 9px; font-style: normal; }
  .restaurant-modal { max-height: 100vh; width: 100%; height: 100%; border-radius: 0; }.modal-cover { height: 220px; }.menu-item { grid-template-columns: 1fr auto 38px; gap: 8px; }.menu-emoji { display: none; }
  .location-modal { top: auto; bottom: 0; width: 100%; transform: translateX(-50%); border-radius: 24px 24px 0 0; }
  .auth-modal { top: auto; bottom: 0; width: 100%; max-height: calc(100dvh - 12px); transform: translateX(-50%); border-radius: 24px 24px 0 0; padding: 29px 24px; overscroll-behavior: contain; }
  .account-types { grid-template-columns: 1fr; }.account-type > span { min-height: 72px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* Merchant workspace */
.merchant-entry { background:#d8ff5f; color:#10221d; border-color:#d8ff5f; }
.merchant-app { min-height:100vh; background:#f4f5ef; color:#10221d; }
.merchant-app[hidden] { display:none; }
.merchant-topbar { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 32px; background:#fff; border-bottom:1px solid #dde1d8; position:sticky; top:0; z-index:20; }
.merchant-topbar .brand small { display:inline-flex; margin-left:8px; padding:4px 8px; border-radius:999px; background:#eaffaa; color:#36552d; font:700 10px/1 "DM Sans",sans-serif; text-transform:uppercase; letter-spacing:.08em; vertical-align:middle; }
.merchant-top-actions { display:flex; gap:10px; }
.merchant-layout { display:grid; grid-template-columns:248px minmax(0,1fr); min-height:calc(100vh - 76px); }
.merchant-sidebar { padding:26px 18px; background:#10221d; color:#fff; display:flex; flex-direction:column; gap:30px; }
.merchant-account-badge { display:flex; align-items:center; gap:11px; padding:13px; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:rgba(255,255,255,.05); }
.merchant-account-badge>span { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:#d8ff5f; color:#10221d; font-weight:800; }
.merchant-account-badge div { min-width:0; display:grid; }
.merchant-account-badge strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.merchant-account-badge small { color:#aebdb5; margin-top:2px; }
.merchant-sidebar nav { display:grid; gap:7px; }
.merchant-sidebar nav a { display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:12px; color:#bfcac4; text-decoration:none; font-weight:700; font-size:14px; }
.merchant-sidebar nav a:hover,.merchant-sidebar nav a.active { background:rgba(216,255,95,.14); color:#eaffaa; }
.merchant-sidebar nav span { width:20px; text-align:center; font-size:18px; }
.merchant-help { margin-top:auto; padding:17px; border-radius:16px; background:#1a352d; }
.merchant-help strong { color:#eaffaa; }
.merchant-help p { margin:7px 0 0; color:#aebdb5; font-size:12px; line-height:1.5; }
.merchant-main { width:min(1180px,100%); margin:0 auto; padding:38px 34px 70px; }
.merchant-welcome { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; margin-bottom:26px; }
.merchant-welcome h1 { margin:6px 0 7px; font:800 clamp(28px,4vw,42px)/1.08 "Manrope",sans-serif; letter-spacing:-.04em; }
.merchant-welcome p { margin:0; color:#66726d; }
.venue-status { display:flex; align-items:center; gap:10px; min-width:160px; padding:13px 16px; background:#fff; border:1px solid #dde1d8; border-radius:16px; box-shadow:0 8px 24px rgba(16,34,29,.05); }
.venue-status>span { width:10px; height:10px; border-radius:50%; background:#e6a43a; box-shadow:0 0 0 4px #fff1d8; }
.venue-status.live>span { background:#39a76a; box-shadow:0 0 0 4px #dcf5e6; }
.venue-status div { display:grid; }
.venue-status small { color:#7a8580; font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.venue-status strong { margin-top:2px; font-size:14px; }
.merchant-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:18px; }
.merchant-stats article { display:grid; padding:21px; min-height:132px; background:#fff; border:1px solid #e0e3da; border-radius:20px; box-shadow:0 9px 28px rgba(16,34,29,.045); }
.merchant-stats span { color:#69756f; font-size:13px; font-weight:700; }
.merchant-stats strong { margin:9px 0 5px; font:800 30px/1 "Manrope",sans-serif; }
.merchant-stats small { color:#89928e; align-self:end; }
.merchant-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr); gap:18px; align-items:start; }
.merchant-card { background:#fff; border:1px solid #e0e3da; border-radius:22px; padding:24px; box-shadow:0 10px 32px rgba(16,34,29,.05); }
.merchant-card-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.merchant-card h2 { margin:4px 0 0; font:800 24px/1.15 "Manrope",sans-serif; }
.merchant-card-intro { margin:10px 0 22px; color:#6f7b75; font-size:14px; }
.save-indicator,.orders-live { padding:6px 10px; border-radius:999px; color:#2e784d; background:#e6f7ec; font-size:11px; font-weight:800; }
.small-action { border:0; border-radius:10px; padding:9px 12px; background:#10221d; color:#fff; font-weight:800; cursor:pointer; }
.merchant-form { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.merchant-form label:not(.publish-control):not(.availability-control) { display:grid; gap:7px; }
.merchant-form label>span:first-child { color:#40504a; font-size:12px; font-weight:800; }
.merchant-form input,.merchant-form select,.merchant-form textarea { width:100%; border:1px solid #d9ded5; border-radius:12px; padding:12px 13px; background:#fafbf7; color:#10221d; font:500 14px "DM Sans",sans-serif; outline:none; }
.merchant-form textarea { resize:vertical; }
.merchant-form input:focus,.merchant-form select:focus,.merchant-form textarea:focus { border-color:#6f9d42; box-shadow:0 0 0 3px rgba(132,177,75,.14); background:#fff; }
.merchant-form .wide { grid-column:1/-1; }
.luqivo-map { width:100%; height:310px; border:1px solid #d9ded5; border-radius:18px; overflow:hidden; background:#e7ece9; z-index:1; }
.map-field { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:4px; }
.map-field>div { display:grid; gap:3px; }
.map-field strong { font-size:13px; }
.map-field small,.map-panel small { color:#738079; font-size:12px; }
.map-panel { margin-top:18px; }
.map-panel>.luqivo-map { margin-top:12px; }
.location-picker-map { margin:14px 0; height:280px; }
.admin-map { height:390px; }
.active-delivery .luqivo-map { grid-column:1/-1; height:320px; }
@media (max-width:640px) { .luqivo-map,.active-delivery .luqivo-map { height:260px; }.map-field { align-items:flex-start; }.admin-map { height:310px; } }
.publish-control { display:flex; gap:11px; align-items:flex-start; padding:13px; background:#f4f8e9; border:1px solid #dbe8bc; border-radius:14px; cursor:pointer; }
.publish-control input,.availability-control input { width:18px; height:18px; accent-color:#4c7b34; }
.publish-control span { display:grid; gap:3px; }
.publish-control small { color:#6f7b75; line-height:1.35; }
.merchant-form-status { min-height:18px; margin:0; color:#b44a4a; font-size:12px; }
.merchant-form-status.success { color:#2e784d; }
.compact-form { margin:18px 0; padding:18px; border:1px solid #e0e4da; border-radius:16px; background:#fafbf7; }
.availability-control { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; }
.form-actions { display:flex; justify-content:flex-end; gap:9px; }
.menu-empty { display:grid; justify-items:center; text-align:center; padding:48px 20px 35px; color:#707b76; }
.menu-empty>span { display:grid; place-items:center; width:48px; height:48px; border-radius:16px; background:#eaffaa; color:#36552d; font-size:22px; }
.menu-empty h3 { margin:15px 0 6px; color:#24352f; font:800 17px "Manrope",sans-serif; }
.menu-empty p { max-width:310px; margin:0; font-size:13px; line-height:1.5; }
.merchant-menu-list { display:grid; gap:10px; margin-top:18px; }
.merchant-menu-item { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; padding:14px; border:1px solid #e4e7df; border-radius:14px; }
.merchant-menu-item h3 { margin:0; font-size:15px; }
.merchant-menu-item p { margin:4px 0 0; color:#7d8782; font-size:12px; }
.merchant-menu-item aside { display:grid; justify-items:end; gap:7px; }
.merchant-menu-item aside strong { font-size:14px; }
.availability-toggle { border:0; border-radius:999px; padding:5px 9px; background:#e6f7ec; color:#2e784d; font-size:10px; font-weight:800; cursor:pointer; }
.availability-toggle.off { background:#f1f1ed; color:#7b827f; }
.orders-card { margin-top:18px; }
.orders-live { display:flex; align-items:center; gap:6px; }
.orders-live i { width:7px; height:7px; border-radius:50%; background:#39a76a; }
.orders-empty { display:flex; gap:14px; align-items:center; padding:26px 3px 4px; color:#6e7974; }
.orders-empty>span { display:grid; place-items:center; flex:0 0 auto; width:44px; height:44px; border-radius:14px; background:#f0f2ed; font-size:20px; }
.orders-empty strong { color:#24352f; }
.orders-empty p { margin:4px 0 0; font-size:13px; }
body.merchant-mode { padding-bottom:0; }
body.merchant-mode>.topbar,body.merchant-mode>#customerApp,body.merchant-mode>.mobile-nav { display:none!important; }
@media (max-width:900px) { .merchant-layout { grid-template-columns:1fr; }.merchant-sidebar { display:none; }.merchant-main { padding:28px 20px 60px; }.merchant-grid { grid-template-columns:1fr; } }
@media (max-width:640px) { .merchant-topbar { height:68px; padding:0 16px; }.merchant-topbar .brand small { display:none; }.merchant-top-actions .button { padding:9px 11px; font-size:12px; }.merchant-main { padding:24px 14px 52px; }.merchant-welcome { align-items:flex-start; flex-direction:column; }.merchant-welcome h1 { font-size:30px; }.venue-status { width:100%; }.merchant-stats { grid-template-columns:1fr 1fr; }.merchant-stats article:first-child { grid-column:1/-1; }.merchant-stats article { min-height:116px; padding:17px; }.merchant-card { padding:19px 16px; border-radius:18px; }.merchant-form { grid-template-columns:1fr; }.merchant-form label,.merchant-form .wide { grid-column:1; } }

/* Rider workspace */
.rider-entry { background:#ffd86b; color:#10221d; border-color:#ffd86b; }
.rider-app { min-height:100vh; background:#eef4f2; color:#10221d; }
.rider-app[hidden] { display:none; }
.rider-topbar { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 32px; background:#fff; border-bottom:1px solid #d8e2de; position:sticky; top:0; z-index:20; }
.rider-topbar .brand small { display:inline-flex; margin-left:8px; padding:4px 8px; border-radius:999px; background:#fff0bc; color:#735c0b; font:700 10px/1 "DM Sans",sans-serif; text-transform:uppercase; letter-spacing:.08em; vertical-align:middle; }
.rider-main { width:min(1040px,calc(100% - 40px)); margin:0 auto; padding:42px 0 70px; }
.rider-welcome { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; margin-bottom:24px; }
.rider-welcome h1 { margin:6px 0 7px; font:800 clamp(29px,4vw,44px)/1.08 "Manrope",sans-serif; letter-spacing:-.04em; }
.rider-welcome p { margin:0; color:#66746f; }
.rider-online-toggle { cursor:pointer; }
.rider-online-toggle input { position:absolute; opacity:0; pointer-events:none; }
.rider-online-toggle>span { display:flex; align-items:center; gap:10px; min-width:126px; padding:13px 17px; border:1px solid #d7dfdc; border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(16,34,29,.05); }
.rider-online-toggle i { width:12px; height:12px; border-radius:50%; background:#9ba5a1; box-shadow:0 0 0 4px #edf0ef; }
.rider-online-toggle input:checked+span { border-color:#acd3bc; background:#effaf3; }
.rider-online-toggle input:checked+span i { background:#34a866; box-shadow:0 0 0 4px #d9f3e3; }
.rider-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:18px; }
.rider-stats article { display:grid; min-height:124px; padding:20px; background:#fff; border:1px solid #dce4e0; border-radius:20px; box-shadow:0 9px 28px rgba(16,34,29,.045); }
.rider-stats span { color:#697770; font-size:13px; font-weight:700; }
.rider-stats strong { margin:9px 0 5px; font:800 27px/1 "Manrope",sans-serif; }
.rider-stats small { color:#89938f; align-self:end; }
.rider-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.rider-card { background:#fff; border:1px solid #dce4e0; border-radius:22px; padding:24px; box-shadow:0 10px 32px rgba(16,34,29,.05); }
.rider-card h2 { margin:4px 0 8px; font:800 23px/1.15 "Manrope",sans-serif; }
.rider-find-card { background:#102a23; color:#fff; overflow:hidden; position:relative; }
.rider-find-card::after { content:"➜"; position:absolute; right:-12px; bottom:-35px; color:rgba(255,216,107,.13); font-size:140px; transform:rotate(-18deg); }
.rider-find-card .kicker { color:#ffd86b; }
.rider-find-card p { position:relative; z-index:1; max-width:430px; color:#b9c9c2; line-height:1.5; }
.rider-primary { position:relative; z-index:2; width:100%; display:flex; align-items:center; justify-content:space-between; margin-top:24px; border:0; border-radius:14px; padding:15px 17px; background:#ffd86b; color:#10221d; font-weight:800; cursor:pointer; }
.rider-primary:disabled { opacity:.5; cursor:not-allowed; }
.rider-primary.delivered { background:#d8ff5f; }
.rider-status-message { min-height:18px; margin:10px 0 0!important; color:#ffd6d6!important; font-size:12px; }
.compact-rider-form { margin-top:17px; grid-template-columns:1fr 1fr; }
.active-delivery-section,.rider-history-card { margin-top:18px; }
.rider-empty { display:flex; align-items:center; gap:14px; padding:30px 3px 6px; color:#6c7973; }
.rider-empty>span { display:grid; place-items:center; width:46px; height:46px; flex:0 0 auto; border-radius:15px; background:#edf2ef; font-size:21px; }
.rider-empty strong { color:#263832; }
.rider-empty p { margin:4px 0 0; font-size:13px; }
.active-delivery { display:grid; grid-template-columns:1fr auto; gap:20px; margin-top:22px; padding:20px; border:1px solid #dbe4df; border-radius:18px; background:#f8faf8; }
.delivery-route { display:grid; grid-template-columns:auto 1fr; gap:5px 13px; align-items:center; }
.delivery-route span { color:#7b8781; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.delivery-route strong { font-size:14px; }
.delivery-route i { grid-column:1; justify-self:center; width:2px; height:24px; background:#cad7d1; }
.delivery-order-meta { display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:8px; color:#6e7974; font-size:12px; }
.delivery-order-meta strong { color:#10221d; }
.active-delivery .rider-primary { grid-column:1/-1; margin-top:0; }
body.rider-mode { padding-bottom:0; }
body.rider-mode>.topbar,body.rider-mode>#customerApp,body.rider-mode>.mobile-nav { display:none!important; }
@media (max-width:720px) { .rider-topbar { height:68px; padding:0 15px; }.rider-topbar .brand small { display:none; }.rider-main { width:min(100% - 28px,1040px); padding:26px 0 52px; }.rider-welcome { align-items:flex-start; flex-direction:column; }.rider-welcome h1 { font-size:31px; }.rider-online-toggle,.rider-online-toggle>span { width:100%; }.rider-stats { grid-template-columns:1fr 1fr; }.rider-stats article:first-child { grid-column:1/-1; }.rider-grid { grid-template-columns:1fr; }.rider-card { padding:19px 16px; border-radius:18px; }.compact-rider-form { grid-template-columns:1fr; }.active-delivery { grid-template-columns:1fr; }.delivery-order-meta { align-items:flex-start; }.active-delivery .rider-primary { grid-column:1; } }

/* Luqivo owner administration */
.admin-entry { background:#162a38; color:white; }
.admin-app { min-height:100vh; background:#f3f5f7; color:#13242d; position: relative; z-index: 40; }
body.admin-mode > .topbar, body.admin-mode > #customerApp, body.admin-mode > .mobile-nav { display:none !important; }
.admin-topbar { height:76px; padding:0 34px; display:flex; align-items:center; justify-content:space-between; gap:20px; background:#102530; border-bottom:1px solid rgba(255,255,255,.08); color:white; position:sticky; top:0; z-index:30; }
.admin-topbar .brand { color:white; }.admin-topbar .brand small { color:#91a8b4; font-size:12px; margin-left:4px; }
.admin-main { width:min(1180px,calc(100% - 40px)); margin:auto; padding:42px 0 70px; }
.admin-welcome { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:26px; }.admin-welcome h1 { margin:4px 0 8px; font-size:clamp(32px,4vw,50px); letter-spacing:-.045em; }.admin-welcome p { margin:0; color:#61737c; }
.admin-refresh { border:1px solid #cad5da; border-radius:12px; background:white; padding:11px 16px; color:#1b5962; font-weight:800; cursor:pointer; }
.admin-status-message { min-height:22px; margin:0 0 12px; color:#a44141; font-weight:700; }.admin-status-message.success { color:#19806f; }
.admin-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-bottom:24px; }.admin-stats article { min-height:132px; padding:20px; display:flex; flex-direction:column; justify-content:space-between; background:white; border:1px solid #dfe6e9; border-radius:18px; box-shadow:0 8px 24px rgba(20,44,55,.04); }.admin-stats article.attention { background:#fff8df; border-color:#f1db83; }.admin-stats span,.admin-stats small { color:#71828a; }.admin-stats strong { font-size:34px; letter-spacing:-.04em; }
.admin-panel { background:white; border:1px solid #dfe6e9; border-radius:22px; padding:24px; box-shadow:0 10px 28px rgba(20,44,55,.045); margin-bottom:22px; }.admin-panel-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:20px; }.admin-panel-heading h2 { margin:3px 0 0; font-size:24px; }
.admin-filters { display:flex; gap:7px; flex-wrap:wrap; }.admin-filters button { border:1px solid #d9e1e4; border-radius:999px; background:white; padding:7px 12px; color:#5f737c; font-weight:800; cursor:pointer; }.admin-filters button.active { background:#17333e; color:white; border-color:#17333e; }
.admin-table-wrap { overflow-x:auto; }.admin-table { width:100%; border-collapse:collapse; min-width:760px; }.admin-table th { padding:10px 12px; text-align:left; color:#71828a; font-size:12px; text-transform:uppercase; letter-spacing:.07em; border-bottom:1px solid #e6ebed; }.admin-table td { padding:15px 12px; border-bottom:1px solid #edf1f2; vertical-align:middle; }.admin-table tr:last-child td { border-bottom:0; }.admin-account strong,.admin-account small { display:block; }.admin-account small { margin-top:4px; color:#788991; }.admin-badge { display:inline-flex; border-radius:999px; padding:5px 9px; background:#edf3f4; color:#42616a; font-size:12px; font-weight:800; text-transform:capitalize; }.admin-badge.active { background:#e2f6ed; color:#13755d; }.admin-badge.pending { background:#fff1c4; color:#8b6711; }.admin-badge.suspended { background:#fee7e7; color:#a13f3f; }
.admin-actions { display:flex; gap:7px; flex-wrap:wrap; }.admin-action { border:0; border-radius:9px; padding:8px 10px; background:#17333e; color:white; font-size:12px; font-weight:800; cursor:pointer; }.admin-action.secondary { background:#edf2f4; color:#365862; }.admin-action.danger { background:#fee7e7; color:#9b3838; }.admin-action:disabled { opacity:.5; cursor:wait; }
.admin-columns { display:grid; grid-template-columns:1fr 1fr; gap:22px; }.admin-columns .admin-panel { margin:0; }.admin-list { display:grid; gap:10px; }.admin-list-item { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:15px; border:1px solid #e4eaec; border-radius:14px; }.admin-list-item strong,.admin-list-item small { display:block; }.admin-list-item small { margin-top:5px; color:#76878f; }.admin-empty { padding:28px; border:1px dashed #cfdadd; border-radius:14px; text-align:center; color:#75878f; }
@media (max-width:980px) { .admin-stats { grid-template-columns:repeat(3,1fr); }.admin-columns { grid-template-columns:1fr; } }
@media (max-width:680px) { .admin-topbar { height:auto; min-height:68px; padding:12px 15px; align-items:flex-start; }.admin-topbar .brand small { display:none; }.admin-topbar .merchant-top-actions { gap:6px; flex-wrap:wrap; justify-content:flex-end; }.admin-topbar .button { padding:8px 9px; font-size:11px; }.admin-main { width:min(100% - 24px,1180px); padding:25px 0 52px; }.admin-welcome { align-items:flex-start; flex-direction:column; }.admin-refresh { width:100%; }.admin-stats { grid-template-columns:1fr 1fr; }.admin-stats article { min-height:112px; padding:16px; }.admin-stats article:first-child { grid-column:1/-1; }.admin-panel { padding:18px 14px; border-radius:18px; }.admin-panel-heading { align-items:flex-start; flex-direction:column; }.admin-filters { width:100%; overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; }.admin-table-wrap { overflow:visible; }.admin-table { min-width:0; }.admin-table thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.admin-table,.admin-table tbody,.admin-table tr,.admin-table td { display:block; width:100%; }.admin-table tr { margin-bottom:14px; padding:14px; border:1px solid #e2e9eb; border-radius:15px; background:#fbfcfc; }.admin-table tr:last-child { margin-bottom:0; }.admin-table td { display:grid; grid-template-columns:82px minmax(0,1fr); align-items:center; gap:10px; padding:8px 0; border:0; }.admin-table td::before { content:attr(data-label); color:#71828a; font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.admin-table td:first-child { padding-top:0; }.admin-table td:last-child { padding-bottom:0; }.admin-table td[data-label="Control"] { margin-top:5px; padding-top:12px; border-top:1px solid #e7ecee; }.admin-table td[data-label="Control"] .admin-action { min-height:44px; font-size:14px; }.admin-list-item { align-items:flex-start; flex-direction:column; }.admin-actions { width:100%; }.admin-action { flex:1; } }

/* Signed-in account profile */
.profile-modal { width:min(560px,calc(100% - 28px)); max-height:calc(100dvh - 24px); overflow-y:auto; left:50%; top:50%; transform:translate(-50%,-50%); border-radius:26px; padding:32px; }
.profile-heading { display:flex; align-items:center; gap:15px; margin-bottom:24px; }.profile-heading h2 { margin:3px 0 0; font-size:30px; }.profile-avatar { width:58px; height:58px; flex:0 0 auto; display:grid; place-items:center; border-radius:18px; background:#d8ff5f; color:#10221d; font:800 24px Manrope,sans-serif; }
.profile-details { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.profile-details>div { display:grid; gap:5px; padding:14px; border:1px solid var(--line); border-radius:14px; background:#fafbf7; min-width:0; }.profile-details small { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }.profile-details strong { overflow:hidden; text-overflow:ellipsis; font-size:14px; }.profile-status { color:#208777; text-transform:capitalize; }
.profile-activity { margin-top:22px; }.profile-activity h3 { margin:3px 0 0; font-size:19px; }.profile-orders { display:grid; gap:8px; margin-top:13px; }.profile-order { display:flex; justify-content:space-between; gap:14px; padding:12px 13px; border:1px solid var(--line); border-radius:12px; }.profile-order div { display:grid; gap:3px; }.profile-order small,.profile-empty { color:var(--muted); font-size:12px; }.profile-order>strong { text-transform:capitalize; color:#287f73; font-size:12px; }.profile-empty { margin:15px 0 0; }
.profile-actions { display:flex; gap:10px; margin-top:24px; }.profile-actions .button { flex:1; }.profile-logout { color:#a13f3f; }
@media (max-width:640px) { .profile-modal { top:auto; bottom:0; width:100%; max-height:calc(100dvh - 12px); transform:translateX(-50%); border-radius:24px 24px 0 0; padding:27px 20px; }.profile-details { grid-template-columns:1fr; }.profile-actions { flex-direction:column; } }
