:root {
  --ink: #211a14;
  --muted: #6b5f57;
  --cream: #fff8ef;
  --paper: #ffffff;
  --saffron: #e8720c;
  --saffron-dark: #c25a02;
  --maroon: #a5223a;
  --maroon-dark: #7e1a2c;
  --maroon-light: #fbe9ec;
  --green: #1f7a3d;
  --green-light: #e6f4ea;
  --border: #eadfcf;
  --border-soft: #f0e6d6;
  --shadow-sm: 0 2px 10px rgba(33, 26, 20, 0.06);
  --shadow-md: 0 14px 32px rgba(33, 26, 20, 0.10);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --grad-primary: linear-gradient(90deg, var(--maroon) 0%, var(--saffron) 100%);
  --font-head: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --font-body: "Inter", "Segoe UI", system-ui, sans-serif;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
}

/* Defensive safety net: mobile WebViews can lock the layout viewport to the
   widest content ever rendered on the page (even a momentary flash before
   JS/CSS settles) and never shrink it back, which desyncs window.innerWidth
   from the visible screen. Wide content (tables, maps) already scrolls
   inside its own container, so clipping here costs nothing on purpose.
   Scoped to body only, NOT html — overflow on <html> disables
   position:sticky for every descendant (breaks the sticky header). */
body {
  margin: 0;
  overflow-x: hidden;
  max-width: 100%;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.6;
}

img { max-width: 100%; display: block; }

/* Dropdowns — consistent styling everywhere a <select> appears (order form,
   payments, staff role, report type, inventory category, etc). Component
   rules with higher specificity (e.g. .pricing-form-grid select) still win
   where they need a different fit, but the look/feel matches by default. */
select {
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--ink);
  background-color: #fff;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' fill='none' stroke='%236b5f57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 38px 10px 14px;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  transition: border-color 0.15s ease;
}
select:hover { border-color: var(--saffron); }
select:focus { outline: 2px solid var(--saffron); outline-offset: 1px; border-color: var(--saffron); }

/* App-only splash screen — see script.js for the native-platform +
   once-per-session gating. Bold solid saffron, logo pop + glow, ~1.7s. */
.app-splash {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  background: #e8720c;
  overflow: hidden;
}
.app-splash[hidden] { display: none; }
.app-splash-glow {
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0) 70%);
  opacity: 0;
  transform: scale(0.6);
}
.app-splash-glow.run { animation: appSplashGlowPulse 1700ms ease-out forwards; }

.app-splash-logo-wrap {
  position: relative;
  width: 118px;
  height: 118px;
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.5) rotate(-8deg);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.28);
}
.app-splash-logo-wrap.run { animation: appSplashLogoPop 620ms cubic-bezier(0.22, 1, 0.36, 1) forwards; }
.app-splash-logo { width: 100%; height: 100%; border-radius: 50%; }

.app-splash-name {
  font-family: var(--font-head);
  font-weight: 800;
  font-size: 23px;
  color: #fff8ef;
  opacity: 0;
  transform: translateY(10px);
}
.app-splash-name.run { animation: appSplashFadeUp 420ms ease-out 380ms forwards; }

.app-splash-tagline {
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 248, 239, 0.82);
  opacity: 0;
  transform: translateY(8px);
  margin-top: -10px;
}
.app-splash-tagline.run { animation: appSplashFadeUp 420ms ease-out 540ms forwards; }

.app-splash.exit { animation: appSplashExit 380ms ease-in forwards; }

@keyframes appSplashLogoPop {
  0% { opacity: 0; transform: scale(0.5) rotate(-8deg); }
  65% { opacity: 1; transform: scale(1.08) rotate(2deg); }
  100% { opacity: 1; transform: scale(1) rotate(0deg); }
}
@keyframes appSplashGlowPulse {
  0% { opacity: 0; transform: scale(0.6); }
  40% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(1.08); }
}
@keyframes appSplashFadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes appSplashExit {
  to { opacity: 0; transform: scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
  .app-splash-glow, .app-splash-logo-wrap, .app-splash-name, .app-splash-tagline, .app-splash.exit {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

.container {
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px;
}

h1, h2, h3, h4 { font-family: var(--font-head); margin: 0 0 0.5em; line-height: 1.2; letter-spacing: -0.01em; }

a { color: inherit; }

.section { padding: 80px 0; }
.section-alt { background: #fdf1e0; }

/* Each content section alternates between shades of cream only (no other
   hues) so neighbors stay visually separate without ever clashing. */
#why-us { background-color: #fffbf5; }
#plans { background-color: #fdf1e0; }
#favorites { background-color: #fffbf5; }
#timings { background-color: #fdf1e0; }
#order { background-color: #fffbf5; }
#feedback { background-color: #fdf1e0; }

#why-us {
  background-image:
    radial-gradient(circle at 90% 8%, rgba(232, 114, 12, 0.08), transparent 42%),
    radial-gradient(circle at 8% 90%, rgba(165, 34, 58, 0.08), transparent 42%);
}
#plans {
  background-image:
    radial-gradient(circle at 8% 10%, rgba(165, 34, 58, 0.08), transparent 42%),
    radial-gradient(circle at 92% 88%, rgba(232, 114, 12, 0.08), transparent 42%);
}
#favorites {
  background-image:
    radial-gradient(circle at 90% 10%, rgba(232, 114, 12, 0.08), transparent 42%),
    radial-gradient(circle at 10% 88%, rgba(165, 34, 58, 0.08), transparent 42%);
}
#timings {
  background-image:
    radial-gradient(circle at 10% 10%, rgba(232, 114, 12, 0.08), transparent 42%),
    radial-gradient(circle at 90% 85%, rgba(165, 34, 58, 0.08), transparent 42%);
}
#order {
  background-image:
    radial-gradient(circle at 90% 12%, rgba(165, 34, 58, 0.06), transparent 42%),
    radial-gradient(circle at 8% 88%, rgba(232, 114, 12, 0.08), transparent 42%);
}
#feedback {
  background-image:
    radial-gradient(circle at 10% 10%, rgba(232, 114, 12, 0.08), transparent 42%),
    radial-gradient(circle at 90% 88%, rgba(165, 34, 58, 0.08), transparent 42%);
}

.eyebrow {
  display: inline-block;
  font-family: var(--font-head);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--maroon-dark);
  background: #fff;
  border: 1px solid var(--border);
  padding: 7px 16px;
  border-radius: 999px;
  box-shadow: var(--shadow-sm);
  margin-bottom: 18px;
}
.eyebrow-center { display: block; width: fit-content; margin-left: auto; margin-right: auto; }

.grad-text {
  background: var(--grad-primary);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.section-title {
  font-size: clamp(1.6rem, 2.6vw, 2.15rem);
  text-align: center;
  color: var(--ink);
  font-weight: 800;
}
.section-title-left { text-align: left; }

.section-sub {
  text-align: center;
  color: var(--muted);
  max-width: 640px;
  margin: 0 auto 32px;
  font-size: 1.02rem;
}
.section-sub-left { text-align: left; margin-left: 0; margin-right: 0; }

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 248, 239, 0.9);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  max-width: 1360px;
  margin: 0 auto;
  padding: 12px 20px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--ink);
  flex-shrink: 0;
}

.brand-icon { height: 40px; width: auto; display: block; }

.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-name { font-family: var(--font-head); font-weight: 800; font-size: 0.98rem; color: var(--ink); white-space: nowrap; }
.brand-tagline { font-size: 0.68rem; color: var(--muted); white-space: nowrap; }

.main-nav { display: flex; align-items: center; gap: 16px; flex-wrap: nowrap; }
.main-nav a {
  text-decoration: none;
  font-weight: 600;
  font-size: 0.84rem;
  color: var(--ink);
  white-space: nowrap;
}
.main-nav a:hover { color: var(--maroon); }
.nav-logout-btn { display: none; }
.nav-logout-btn[hidden] { display: none; }

.notif-bell-wrap { position: relative; }
.notif-bell-wrap[hidden] { display: none; }
.notif-bell-btn {
  position: relative;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 999px;
  width: 38px;
  height: 38px;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.back-to-dashboard-link {
  flex: 0 0 auto;
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 999px;
  width: 38px;
  height: 38px;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.back-to-dashboard-link:hover { border-color: var(--saffron); color: var(--saffron-dark); }

.notif-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background: var(--maroon);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  min-width: 16px;
  height: 16px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
}
.notif-badge[hidden] { display: none; }
.notif-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 320px;
  max-width: 85vw;
  max-height: 380px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  z-index: 50;
  padding: 10px;
}
.notif-panel[hidden] { display: none; }
.notif-item {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.84rem;
  color: var(--ink);
  line-height: 1.45;
}
.notif-item + .notif-item { margin-top: 4px; }
.notif-item.is-unread { background: var(--maroon-light); }
.notif-item-time { display: block; font-size: 0.7rem; color: var(--muted); margin-top: 3px; }
.notif-empty { padding: 20px 12px; text-align: center; color: var(--muted); font-size: 0.84rem; }
@media (max-width: 720px) {
  .notif-panel { position: static; width: auto; max-width: none; box-shadow: none; margin-top: 8px; }
}

.nav-cta {
  background: var(--grad-primary);
  color: #fff !important;
  padding: 8px 16px;
  border-radius: 999px;
  box-shadow: var(--shadow-sm);
  font-size: 0.84rem;
  white-space: nowrap;
}
.nav-cta:hover { filter: brightness(1.06); }

.btn-account {
  padding: 8px 14px;
  font-size: 0.82rem;
  white-space: nowrap;
}

/* Auth modal */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(33, 26, 20, 0.55);
  backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.modal-overlay[hidden] { display: none; }

.modal {
  position: relative;
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  padding: 32px;
  width: 100%;
  max-width: 420px;
  max-height: 90vh;
  overflow-y: auto;
}

.modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--ink);
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
}
.modal-close:hover { background: var(--maroon-light); color: var(--maroon); }

.modal-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  background: var(--cream);
  border-radius: 999px;
  padding: 4px;
}
.modal-tab {
  flex: 1;
  padding: 9px 12px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.86rem;
  color: var(--muted);
  cursor: pointer;
}
.modal-tab.active { background: var(--grad-primary); color: #fff; }

.login-role-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  background: var(--cream);
  border-radius: 999px;
  padding: 4px;
}
.login-role-tab {
  flex: 1;
  min-width: 0;
  padding: 9px 12px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.82rem;
  color: var(--muted);
  cursor: pointer;
}
.login-role-tab.active { background: var(--grad-primary); color: #fff; }

.modal-form { display: flex; flex-direction: column; gap: 14px; }
.modal-form[hidden] { display: none; }
.modal-form h3 { margin: 0; }
.modal-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}
.modal-form input {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--ink);
}
.modal-form input:focus {
  outline: 2px solid var(--saffron);
  outline-offset: 1px;
}

.modal-disclaimer {
  margin: 18px 0 0;
  font-size: 0.74rem;
  color: var(--muted);
  text-align: center;
}

#authLoggedIn h3 { margin-bottom: 8px; }
.modal-sub { color: var(--muted); font-size: 0.9rem; margin: 0 0 20px; }

.modal-side-link { text-align: center; font-size: 0.82rem; margin: 4px 0 0; }
.modal-side-link a { color: var(--maroon); font-weight: 600; text-decoration: none; }
.modal-side-link a:hover { text-decoration: underline; }

.otp-demo-banner {
  background: var(--maroon-light);
  border: 1px dashed var(--maroon);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  font-size: 0.86rem;
  color: var(--maroon-dark);
  text-align: center;
  margin: 0 0 14px;
}
.otp-demo-banner strong { font-family: var(--font-head); font-size: 1.1rem; letter-spacing: 0.06em; }

.referral-code-box {
  background: var(--cream);
  border: 1px dashed var(--saffron);
  border-radius: var(--radius-md);
  padding: 20px;
  text-align: center;
  margin-bottom: 18px;
}
.referral-code-label {
  display: block;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--muted);
  margin-bottom: 8px;
}
.referral-code-value {
  font-family: var(--font-head);
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--saffron-dark);
  margin-bottom: 14px;
}
.referral-code-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.btn-sm { padding: 9px 16px; font-size: 0.84rem; }
.copy-note { margin: 10px 0 0; font-size: 0.8rem; color: var(--green); min-height: 1.1em; }

.referred-by-note {
  font-size: 0.84rem;
  color: var(--green);
  background: var(--green-light);
  border: 1px solid #cfe9d6;
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  margin: 0 0 16px;
  text-align: center;
}
.referred-by-note[hidden] { display: none; }

/* My Account section */
.account-guest {
  text-align: center;
  background: #fff;
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
  padding: 44px 24px;
  max-width: 480px;
  margin: 0 auto;
}
.account-guest p { color: var(--muted); margin-bottom: 18px; }

.account-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.account-card-wide { grid-column: 1 / -1; }
.account-card-delivery-today {
  background: var(--cream);
  border-color: var(--saffron);
}
.account-card-delivery-today h3 { margin-bottom: 4px; }
.account-card-delivery-today .account-card-sub { margin-bottom: 0; color: var(--ink); }
.today-delivery-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 0;
  font-size: 0.9rem;
}
.today-delivery-row[hidden] { display: none; }
.today-delivery-row + .today-delivery-row { border-top: 1px dashed var(--border); }
.today-delivery-shift {
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--saffron-dark);
  min-width: 68px;
}
.today-delivery-name { font-weight: 700; color: var(--ink); }
.today-delivery-phone {
  font-weight: 700;
  color: var(--maroon);
  text-decoration: none;
  white-space: nowrap;
}
.today-delivery-phone:hover { text-decoration: underline; }

.referral-reward-table { display: flex; flex-direction: column; gap: 6px; }
.referral-reward-row {
  display: grid;
  grid-template-columns: 1.1fr 0.8fr 1.3fr;
  gap: 12px;
  align-items: center;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: 0.88rem;
}
.referral-reward-head {
  background: transparent;
  border: 0;
  padding: 0 14px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.referral-reward-row .sunday-claim-select { width: 100%; }
@media (max-width: 560px) {
  .referral-reward-row { grid-template-columns: 1fr; gap: 4px; }
  .referral-reward-head { display: none; }
}

.account-logout-row {
  display: flex;
  justify-content: center;
  margin-top: 32px;
}

.account-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 26px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  height: 100%;
}
.account-card h3 { margin-bottom: 6px; }
.account-card-sub { color: var(--muted); font-size: 0.88rem; margin: 0 0 18px; }

.referrals-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 340px;
  overflow-y: auto;
}
.referral-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: 0.88rem;
}
.referral-item-name { font-weight: 700; }
.referral-item-date { color: var(--muted); font-size: 0.76rem; white-space: nowrap; }
.referrals-empty {
  color: var(--muted);
  font-size: 0.86rem;
  text-align: center;
  padding: 22px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-sm);
}

/* Sunday Special referral rewards */
.sunday-claim-item { flex-wrap: wrap; }
.sunday-claim-picker {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
}
.sunday-claim-select,
.sunday-select-row select {
  font-size: 0.86rem;
  padding: 7px 34px 7px 10px;
}
.sunday-select-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
  flex-wrap: wrap;
}
.admin-btn {
  font-size: 0.76rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  white-space: nowrap;
}
.admin-btn:hover { border-color: var(--saffron); color: var(--saffron-dark); }
.admin-btn-undo { border-color: var(--maroon); color: var(--maroon); }

/* Veg/Non-Veg preference — signup fieldset */
.pref-field { border: 0; padding: 0; margin: 0; }
.pref-field legend { font-size: 0.88rem; font-weight: 600; color: var(--muted); padding: 0 0 8px; }
.pref-toggle { display: flex; gap: 10px; }
.pref-option {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--cream);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
}
.pref-option input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.pref-option:has(input:checked) {
  border-color: var(--saffron);
  background: #fff;
  box-shadow: var(--shadow-sm);
}

/* Veg/Non-Veg preference — account card */
.pref-current-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  margin-bottom: 14px;
}
.pref-current-label { font-size: 0.8rem; font-weight: 600; color: var(--muted); }
.pref-current-value { font-family: var(--font-head); font-weight: 800; font-size: 1rem; }
.pref-current-value.pref-is-veg { color: var(--green); }
.pref-current-value.pref-is-nonveg { color: var(--maroon); }

.location-current-box {
  display: flex;
  flex-direction: column;
  gap: 3px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  margin-bottom: 14px;
}
.location-current-label { font-size: 0.8rem; font-weight: 600; color: var(--muted); }
.location-current-value { font-family: var(--font-head); font-weight: 700; font-size: 0.94rem; }
.location-current-value.is-set { color: var(--green); }

.delivery-mode-navigate {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--maroon);
  text-decoration: none;
  background: var(--maroon-light);
  border-radius: 999px;
  padding: 5px 12px;
  white-space: nowrap;
}
.delivery-mode-navigate:hover { text-decoration: underline; }
.delivery-mode-navigate.is-live { color: var(--green); background: var(--green-light); }
.delivery-mode-no-location { font-size: 0.8rem; color: var(--muted); font-style: italic; }
.delivery-mode-location {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.delivery-mode-address { font-size: 0.8rem; color: var(--muted); }

.pause-calendar {
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 16px;
  margin-bottom: 16px;
}
.calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.92rem;
}
.calendar-nav {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  width: 30px;
  height: 30px;
  cursor: pointer;
  font-size: 0.9rem;
  color: var(--ink);
}
.calendar-nav:hover { border-color: var(--saffron); color: var(--saffron-dark); }
.calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--muted);
  text-align: center;
  margin-bottom: 6px;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.calendar-day {
  aspect-ratio: 1;
  border: 1px solid transparent;
  background: #fff;
  border-radius: 8px;
  font-size: 0.8rem;
  font-family: var(--font-body);
  cursor: pointer;
  color: var(--ink);
}
.calendar-day:hover:not(.is-disabled):not(.is-empty) { border-color: var(--saffron); }
.calendar-day.is-empty { background: transparent; border: none; cursor: default; }
.calendar-day.is-disabled { color: var(--border); cursor: not-allowed; background: transparent; }
.calendar-day.is-today { border-color: var(--saffron-dark); font-weight: 800; }
.calendar-day.is-paused { background: var(--maroon); color: #fff; }
.calendar-day.is-paused:hover { border-color: var(--maroon-dark); }
.calendar-day.is-paused-morning { background: linear-gradient(180deg, var(--maroon) 0 50%, #fff 50% 100%); }
.calendar-day.is-paused-evening { background: linear-gradient(180deg, #fff 0 50%, var(--maroon) 50% 100%); }
.calendar-day.is-extra-lunch { box-shadow: inset 0 0 0 2px var(--green); }

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  font-size: 0.72rem;
  color: var(--muted);
  margin: 10px 0 0;
}
.legend-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  vertical-align: middle;
  margin-right: 2px;
}
.legend-full { background: var(--maroon); }
.legend-morning { background: linear-gradient(180deg, var(--maroon) 0 50%, #fff 50% 100%); border: 1px solid var(--border); }
.legend-evening { background: linear-gradient(180deg, #fff 0 50%, var(--maroon) 50% 100%); border: 1px solid var(--border); }

.pause-slot-picker {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--cream);
}
.pause-slot-picker-date { font-weight: 700; margin: 0 0 10px; font-size: 0.85rem; }
.pause-slot-picker-buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.paused-list-label { font-size: 0.8rem; font-weight: 700; color: var(--muted); margin: 0 0 8px; }
.paused-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.paused-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--maroon-light);
  color: var(--maroon);
  border-radius: 999px;
  padding: 5px 6px 5px 12px;
  font-size: 0.8rem;
  font-weight: 600;
}
.paused-chip-remove {
  background: none;
  border: none;
  color: var(--maroon);
  font-size: 1rem;
  cursor: pointer;
  line-height: 1;
  padding: 2px 6px;
}
.paused-empty { color: var(--muted); font-size: 0.85rem; text-align: center; margin: 0; }

/* Footer admin link */
.footer-admin-link { text-align: center; margin: 10px 0 0; }
.footer-admin-link a { color: #8a7c6d; font-size: 0.78rem; text-decoration: none; }
.footer-admin-link a:hover { color: var(--saffron); }

/* Admin dashboard */
.admin-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}
.admin-header .section-title { font-size: 1.5rem; margin: 2px 0 0; }
.admin-header-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

.admin-layout {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
.admin-sidebar {
  flex: 0 0 208px;
  position: sticky;
  top: 16px;
  align-self: flex-start;
}
.admin-content {
  flex: 1 1 auto;
  min-width: 0;
}

.admin-tabs {
  display: flex;
  flex-direction: column;
  gap: 3px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 8px;
  max-width: 100%;
}
.admin-tab {
  padding: 10px 14px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
  text-align: left;
  width: 100%;
}
.admin-tab:hover:not(.active) { background: var(--cream); }
.admin-tab.active { background: var(--grad-primary); border-color: transparent; color: #fff; }

.admin-tabs-select { display: none; }
@media (max-width: 900px) {
  /* align-items:flex-start (set for the desktop sidebar so it doesn't
     stretch full-height) also stops cross-axis stretch once flex-direction
     flips to column here — without overriding it back to stretch,
     .admin-content shrinks to fit its widest child instead of filling the
     screen, which is what forced the sideways drag-to-scroll. */
  .admin-layout { flex-direction: column; align-items: stretch; }
  .admin-sidebar {
    flex: none;
    width: 100%;
    position: static;
    max-width: 100%;
  }
  /* Every tab wraps into view instead of hiding behind a horizontal-scroll
     strip — the owner shouldn't have to scroll sideways to find a tab. */
  .admin-tabs {
    flex-direction: row;
    flex-wrap: wrap;
  }
  /* A stacked list of 11 tab buttons ate too much vertical space on
     mobile — a single dropdown picks the same sections in a fraction of
     the height. */
  .admin-tabs { display: none; }
  .admin-tabs-select { display: block; width: 100%; font-weight: 700; }
  .admin-content { width: 100%; min-width: 0; }
}

.admin-panel[hidden] { display: none; }
.admin-stats-compact { grid-template-columns: repeat(2, minmax(160px, 260px)); }
.admin-stats-compact .admin-stat { padding: 22px 24px; text-align: left; }
.admin-stats-compact .admin-stat-num { font-size: 2.1rem; }
.admin-stats-compact .admin-stat-label { font-size: 0.82rem; white-space: nowrap; }
/* Sunday panel stat labels ("Pending (All Time)") run longer than the
   compact grid's nowrap default allows at narrow widths — let them wrap. */
#adminStatsSunday.admin-stats-compact .admin-stat-label { white-space: normal; }

.admin-panel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.pricing-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}
.pricing-form-grid label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}
.pricing-form-grid input {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--ink);
}
.pricing-form-grid input:focus {
  outline: 2px solid var(--saffron);
  outline-offset: 1px;
}
#resetPricingBtn {
  margin-left: 10px;
}

.menu-items-admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}
.menu-items-admin-col h3 { margin-bottom: 12px; }
.menu-items-admin-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
}
.menu-items-admin-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--cream);
}
.menu-items-admin-row strong { display: block; font-size: 0.92rem; }
.menu-items-admin-price { display: block; font-size: 0.82rem; color: var(--saffron-dark); font-weight: 700; }
.menu-items-admin-row p { margin: 2px 0 0; font-size: 0.8rem; color: var(--muted); }
.menu-items-admin-actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.menu-items-admin-edit-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.menu-items-admin-edit-row input {
  width: 110px;
  font-size: 0.82rem;
  padding: 6px 8px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  font-family: var(--font-body);
}
.menu-items-admin-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.menu-items-admin-form input,
.menu-items-admin-form textarea {
  font-family: var(--font-body);
  font-size: 0.9rem;
  padding: 9px 11px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink);
}
.menu-items-admin-form textarea { resize: vertical; }

.inventory-form-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.inventory-form-row label {
  flex: 1 1 200px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}
.inventory-field-name { flex: 2 1 260px; }
.inventory-qty-group { display: flex; gap: 8px; }
.inventory-qty-group input { flex: 1 1 auto; min-width: 0; }
.inventory-qty-group select { flex: 0 0 96px; padding-left: 10px; padding-right: 30px; }
.inventory-form input {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--ink);
}
.inventory-form input:focus { outline: 2px solid var(--saffron); outline-offset: 1px; }
.inventory-form select { background-color: var(--cream); font-size: 0.95rem; }
.stock-status-ok { color: var(--green); font-weight: 700; font-size: 0.82rem; }
.stock-status-low { color: var(--maroon); font-weight: 700; font-size: 0.82rem; }

.inventory-use-form {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--cream);
}
.inventory-use-form .inventory-form-row { margin-bottom: 10px; }
.inventory-use-form input {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink);
}
.tag-used { background: var(--border-soft); color: var(--muted); }
.tag-purchase { background: var(--green-light); color: var(--green); }

.report-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-bottom: 10px;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--muted);
}
#reportTypeSelect { min-width: 220px; }
#reportMonthSelect { min-width: 130px; }
#reportYearSelect { min-width: 100px; }
#reportScopeHint { margin-bottom: 18px; }

.pause-extension-requests {
  background: var(--cream);
  border: 1px solid var(--saffron);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  margin-bottom: 20px;
}
.pause-extension-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px dashed var(--border);
  font-size: 0.88rem;
}
.pause-extension-requests > div > .pause-extension-row:first-child { border-top: none; }

.report-charts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
.report-chart-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 18px;
}
.report-chart-card h3 { margin: 0 0 14px; font-size: 0.95rem; }
.report-chart-card-wide { grid-column: 1 / -1; }

/* Single-report view — one chart picked from the dropdown fills the row
   and gets a taller canvas so it reads as the "focused" view. */
.report-charts-grid.is-single { grid-template-columns: 1fr; }
.report-charts-grid.is-single .report-chart-card { display: none; }
.report-charts-grid.is-single .report-chart-card.is-visible {
  display: block;
  grid-column: 1 / -1;
}
.report-charts-grid.is-single .report-chart-card.is-visible canvas { max-height: 420px; }

.delivery-mode-view-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.delivery-mode-view-toggle .admin-tab { width: auto; border-radius: 999px; padding: 10px 18px; }

.admin-role-badge {
  margin: 4px 0 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--saffron-dark);
}

.history-date-picker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}
.history-date-picker input[type="date"] {
  font-family: var(--font-body);
  font-size: 0.92rem;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink);
}

.customer-name-link {
  color: var(--maroon);
  text-decoration: none;
  font-weight: 700;
}
.customer-name-link:hover { text-decoration: underline; }

/* Payments */
.payment-amount { font-weight: 700; font-family: var(--font-head); }
.payment-amount-zero { color: var(--muted); font-weight: 500; }

.admin-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 28px;
}
.admin-stat {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 20px;
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.admin-stat-num {
  display: block;
  font-family: var(--font-head);
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--saffron-dark);
}
.admin-stat-label { font-size: 0.76rem; color: var(--muted); }

.admin-table-wrap {
  overflow-x: auto;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}
.admin-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
.admin-table th,
.admin-table td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.admin-table th {
  font-family: var(--font-head);
  font-size: 0.74rem;
  letter-spacing: 0.04em;
  color: var(--muted);
  background: var(--cream);
}
.admin-table tr:last-child td { border-bottom: none; }
.admin-empty { text-align: center; color: var(--muted); padding: 24px; white-space: normal; }
.tag-yes { background: var(--green-light); color: var(--green); }
.admin-note { text-align: center; font-size: 0.78rem; color: var(--muted); margin-top: 18px; }

/* Customer profile page */
.profile-header-card {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 30px 32px;
  box-shadow: var(--shadow-sm);
  margin-bottom: 28px;
}
.profile-header-card .section-title { margin-bottom: 4px; }
.profile-phone {
  font-family: var(--font-head);
  font-weight: 700;
  color: var(--saffron-dark);
  margin: 0;
}
.profile-header-stats { display: flex; gap: 28px; flex-wrap: wrap; }
.profile-stat { text-align: center; }
.profile-stat-value {
  display: block;
  font-family: var(--font-head);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--ink);
}
.profile-stat-label {
  display: block;
  font-size: 0.74rem;
  color: var(--muted);
  margin-top: 4px;
}

.profile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.profile-card-wide { grid-column: 1 / -1; }

/* Today's prep count */
.prep-summary-group { margin-bottom: 24px; }
.prep-group-label {
  display: block;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--ink);
  margin-bottom: 10px;
}
.prep-group-label small { font-weight: 500; color: var(--muted); font-size: 0.78rem; }
.prep-summary {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.prep-summary-single { grid-template-columns: 1fr; max-width: 320px; }
.prep-card {
  display: flex;
  align-items: center;
  gap: 16px;
  border-radius: var(--radius-md);
  padding: 22px 26px;
  box-shadow: var(--shadow-sm);
}
.prep-veg { background: var(--green-light); border: 1px solid #cfe9d6; }
.prep-nonveg { background: var(--maroon-light); border: 1px solid #f2c6cf; }
.prep-icon { font-size: 2rem; }
.prep-num { font-family: var(--font-head); font-size: 2.2rem; font-weight: 800; line-height: 1; }
.prep-veg .prep-num { color: var(--green); }
.prep-nonveg .prep-num { color: var(--maroon); }
.prep-label { display: block; font-size: 0.82rem; font-weight: 600; color: var(--ink); margin-top: 2px; }
.prep-card > div { display: flex; flex-direction: column; }

/* Delivery tracking (owner-only) */
.delivery-na { color: var(--muted); }
.delivery-slot {
  padding: 8px 0;
  border-bottom: 1px dashed var(--border);
}
.delivery-slot:last-child { border-bottom: 0; padding-bottom: 0; }
.delivery-slot-label {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.delivery-badge {
  display: inline-block;
  font-size: 0.76rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
  white-space: nowrap;
}
.delivery-delivered { background: var(--green-light); color: var(--green); }
.delivery-not-delivered { background: var(--maroon-light); color: var(--maroon); }
.delivery-pending { background: var(--cream); color: var(--muted); border: 1px solid var(--border); }
.delivery-reason {
  margin-top: 4px;
  font-size: 0.74rem;
  color: var(--muted);
  white-space: normal;
  max-width: 200px;
}
.delivery-actions { display: flex; gap: 6px; margin-top: 6px; }
.delivery-btn {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 5px 8px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
}
.delivery-btn-yes:hover { border-color: var(--green); color: var(--green); }
.delivery-btn-no:hover { border-color: var(--maroon); color: var(--maroon); }

/* Delivery Mode — minimal, large-button view for use mid-round */
.delivery-mode-list { display: flex; flex-direction: column; gap: 12px; }
.delivery-mode-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  box-shadow: var(--shadow-sm);
}
.delivery-mode-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.delivery-mode-card-head strong { font-family: var(--font-head); font-size: 1.05rem; }
.delivery-mode-call {
  font-weight: 700;
  font-size: 0.86rem;
  color: var(--maroon);
  text-decoration: none;
  white-space: nowrap;
}
.delivery-mode-call:hover { text-decoration: underline; }
.delivery-mode-tags {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--muted);
  margin-bottom: 12px;
}
.delivery-mode-freq { color: var(--muted); }
.delivery-team-today {
  background: var(--cream);
  border: 1px solid var(--saffron);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  margin-bottom: 16px;
}
.delivery-team-shifts {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.delivery-team-shifts label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--muted);
  flex: 1 1 160px;
}
.delivery-team-shifts select {
  padding: 9px 11px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: #fff;
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--ink);
}
.delivery-mode-assign-row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
}
.delivery-mode-assign-save { white-space: nowrap; }
.delivery-mode-assign {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}
.delivery-mode-staff-select {
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--cream);
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ink);
  cursor: pointer;
}
.delivery-mode-slot {
  padding: 12px 0;
  border-top: 1px dashed var(--border);
}
.delivery-mode-card > .delivery-mode-slot:first-of-type { border-top: 1px solid var(--border); }
.delivery-mode-slot-status {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.delivery-mode-slot-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.delivery-mode-actions { display: flex; gap: 10px; }
.delivery-mode-actions .delivery-btn {
  flex: 1;
  font-size: 0.92rem;
  font-weight: 700;
  padding: 14px 10px;
  border-radius: 10px;
}
.delivery-mode-actions .delivery-btn-yes:hover { border-color: var(--green); color: var(--green); background: var(--green-light); }
.delivery-mode-actions .delivery-btn-no:hover { border-color: var(--maroon); color: var(--maroon); background: var(--maroon-light); }

/* Preference change log */
.admin-log-wrap { margin-top: 28px; }
.admin-log-wrap h3 { margin-bottom: 12px; }
.pref-log-list {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  max-height: 280px;
  overflow-y: auto;
}
.pref-log-item {
  padding: 12px 18px;
  border-bottom: 1px solid var(--border);
  font-size: 0.86rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.pref-log-item:last-child { border-bottom: none; }
.pref-log-from, .pref-log-to { font-weight: 700; }
.pref-log-date { margin-left: auto; color: var(--muted); font-size: 0.76rem; white-space: nowrap; }

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
}
.nav-toggle span {
  width: 24px;
  height: 2px;
  background: var(--ink);
  display: block;
}

/* Hero */
.hero { position: relative; overflow: hidden; padding: 76px 0 0; }

.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(to bottom, rgba(255,248,239,0) 60%, var(--cream) 100%),
    repeating-linear-gradient(0deg, rgba(165, 34, 58, 0.05) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(90deg, rgba(165, 34, 58, 0.05) 0 1px, transparent 1px 64px),
    radial-gradient(circle at 85% 8%, rgba(232, 114, 12, 0.14), transparent 42%),
    radial-gradient(circle at 10% 30%, rgba(31, 122, 61, 0.10), transparent 40%),
    var(--cream);
}

.hero-grid {
  position: relative;
  z-index: 1;
  padding-bottom: 28px;
  text-align: center;
}

.hero-copy {
  max-width: 720px;
  margin: 0 auto;
}

.hero-copy h1 {
  font-size: clamp(2.1rem, 4vw, 3rem);
  font-weight: 800;
  color: var(--ink);
}

.hero-sub {
  color: var(--muted);
  font-size: 1.05rem;
  max-width: 560px;
  margin: 18px auto 28px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-bottom: 26px;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  font-size: 0.95rem;
  font-family: var(--font-head);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn:hover { transform: translateY(-2px); }

.btn-primary { background: var(--grad-primary); color: #fff; box-shadow: var(--shadow-md); }
.btn-primary:hover { filter: brightness(1.05); }

.btn-outline {
  background: #fff;
  border-color: var(--border);
  color: var(--ink);
}
.btn-outline:hover { border-color: var(--maroon); color: var(--maroon); }

.btn-block { width: 100%; justify-content: center; }

.trust-row {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 26px;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 500;
}


/* Kitchens (dual menu) */
.kitchen-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.kitchen-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 30px;
  box-shadow: var(--shadow-sm);
}
.kitchen-icon { font-size: 1.8rem; display: block; margin-bottom: 10px; }
.kitchen-card h3 { font-size: 1.25rem; }
.kitchen-card > p { color: var(--muted); margin-bottom: 16px; }

.check-list { list-style: none; padding: 0; margin: 0 0 18px; display: flex; flex-direction: column; gap: 10px; }
.check-list li {
  position: relative;
  padding-left: 26px;
  color: var(--ink);
  font-size: 0.92rem;
}
.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--green-light);
  color: var(--green);
  font-size: 0.7rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

.link-arrow {
  display: inline-block;
  font-weight: 700;
  color: var(--maroon);
  text-decoration: none;
  font-size: 0.92rem;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 0;
  font-family: inherit;
}
.link-arrow:hover { color: var(--saffron-dark); }

/* Order model cards */
.order-model-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.order-model-grid-3 { grid-template-columns: repeat(3, 1fr); }
.order-model-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 26px 20px;
  box-shadow: var(--shadow-sm);
}
.order-model-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--cream);
  font-size: 1.3rem;
  margin-bottom: 14px;
}
.order-model-card h3 { font-size: 1.02rem; margin-bottom: 6px; }
.order-model-card p { font-size: 0.88rem; color: var(--muted); margin: 0; }

/* How You Order — merged with the trust-stats strip so the ordering
   options and the numbers backing them (days open, kitchens, etc.) read as
   one dark section instead of two stacked back-to-back. */
.how-you-order-section {
  position: relative;
  overflow: hidden;
  background: var(--ink);
}
.eyebrow-light { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.18); color: #ffcf9e; }
.section-title-light { color: #fff; }
.section-sub-light { color: #cfc4b7; }
.order-model-card-dark {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: none;
}
.order-model-card-dark .order-model-icon { background: rgba(255, 255, 255, 0.12); }
.order-model-card-dark h3 { color: #fff; }
.order-model-card-dark p { color: #cfc4b7; }

/* Quick Nav — app-style bottom tab bar, mobile only */
.quick-nav {
  display: none;
}
@media (max-width: 768px) {
  .quick-nav {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    background: rgba(255, 248, 239, 0.96);
    backdrop-filter: blur(8px);
    border-top: 1px solid var(--border);
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -4px 16px rgba(33, 26, 20, 0.08);
  }
  .quick-nav-item {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 6px 1px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--muted);
    font-size: 0.6rem;
    white-space: nowrap;
    font-weight: 700;
  }
  .quick-nav-item:active,
  .quick-nav-item:hover { background: var(--cream); color: var(--saffron-dark); }
  .quick-nav-icon { font-size: 1.1rem; line-height: 1; }
  .quick-nav-item.active { color: var(--saffron-dark); }
  /* Keep the quick-nav from ever covering the last bit of page content —
     scoped to pages that actually have the bar, so other pages don't gain
     unwanted bottom whitespace. */
  body:has(.quick-nav) { padding-bottom: 64px; }
}

.stats-bar-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 12% 20%, rgba(232, 114, 12, 0.16), transparent 45%),
    radial-gradient(circle at 88% 80%, rgba(165, 34, 58, 0.18), transparent 45%);
  pointer-events: none;
}

/* Why us */
.why-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 48px;
  align-items: start;
}
.why-copy { position: sticky; top: 100px; }

.why-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 26px; }
.why-list li { display: flex; gap: 18px; align-items: flex-start; }
.why-num {
  font-family: var(--font-head);
  font-weight: 800;
  font-size: 0.85rem;
  color: var(--maroon);
  background: var(--maroon-light);
  min-width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.why-list h3 { font-size: 1.02rem; margin-bottom: 4px; }
.why-list p { color: var(--muted); font-size: 0.92rem; margin: 0; }

/* Reason 03 ("Hygienic, Separate Kitchens") in the numbered list above
   leads straight into these two kitchen cards as its proof, instead of the
   kitchens sitting in an unrelated section elsewhere on the page. */
.kitchen-grid-wrap { padding-top: 40px; border-top: 1px solid var(--border); }

.kitchen-menu-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin: 4px 0 16px;
  padding-top: 16px;
  border-top: 1px dashed var(--border);
}
.kitchen-menu-list[hidden] { display: none; }
.kitchen-menu-list .menu-item-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.kitchen-menu-list .menu-item-head h3 { font-size: 0.95rem; margin: 0; }
.kitchen-menu-list .menu-item p { color: var(--muted); font-size: 0.85rem; margin: 2px 0 0; }

/* Menu tabs */
.menu-tabs {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}

.menu-tab {
  background: #fff;
  border: 1px solid var(--border);
  padding: 10px 20px;
  border-radius: 999px;
  font-weight: 700;
  font-family: var(--font-head);
  cursor: pointer;
  font-size: 0.9rem;
  color: var(--muted);
}
.menu-tab.active {
  background: var(--grad-primary);
  border-color: transparent;
  color: #fff;
}

.menu-panel { display: none; }
.menu-panel.active { display: block; }

.sunday-note {
  background: var(--maroon-light);
  border: 1px solid #f2c6cf;
  color: var(--maroon);
  padding: 14px 18px;
  border-radius: var(--radius-md);
  font-size: 0.92rem;
  max-width: 760px;
  margin: 0 auto 28px;
  text-align: center;
}

.menu-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
}

.menu-item {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  box-shadow: var(--shadow-sm);
}

.menu-item-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
}

.menu-item h3 { font-size: 1rem; margin: 0; font-family: var(--font-head); }
.menu-item p { margin: 0; color: var(--muted); font-size: 0.9rem; }

.price {
  font-weight: 800;
  color: var(--saffron-dark);
  white-space: nowrap;
  font-family: var(--font-head);
}
.price small { font-weight: 500; color: var(--muted); font-family: var(--font-body); }

/* Current price on the left, struck-through original on the right. */
.price-pair { display: inline-flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.price-strike {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 0.82em;
  color: var(--muted);
  text-decoration: line-through;
}

.tag {
  display: inline-block;
  font-size: 0.66rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--green-light);
  color: var(--green);
  margin-left: 6px;
  vertical-align: middle;
}
.tag-sunday { background: #fdeccb; color: var(--saffron-dark); }
.tag-low { background: var(--maroon-light); color: var(--maroon); }
.inventory-row-low td:first-child { color: var(--maroon); font-weight: 700; }

/* Trial offer */
.trial-offer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: var(--green-light);
  border: 1px solid #cfe9d6;
  border-radius: var(--radius-md);
  padding: 22px 28px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.trial-offer-badge {
  display: inline-block;
  font-family: var(--font-head);
  font-weight: 800;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: var(--green);
  margin-bottom: 4px;
}
.trial-offer-copy h3 { margin: 0 0 6px; }
.trial-offer-copy p { margin: 0; color: var(--muted); font-size: 0.88rem; max-width: 46ch; }
.trial-offer-buttons { display: flex; gap: 10px; flex-wrap: wrap; }
.trial-offer-buttons .btn { background: #fff; white-space: nowrap; }
.trial-offer-section { padding: 36px 0; }
.trial-offer-section .trial-offer { margin-bottom: 0; }

.addon-offers-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 32px;
}
.addon-offer-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 24px 26px;
  box-shadow: var(--shadow-sm);
}
.addon-offer-icon { font-size: 1.8rem; display: block; margin-bottom: 10px; }
.addon-offer-card h4 { margin: 0 0 8px; }
.addon-offer-card p { margin: 0 0 10px; color: var(--muted); font-size: 0.88rem; }
.addon-offer-price { font-family: var(--font-head); font-weight: 800; color: var(--saffron-dark); margin: 0 0 12px; }
.addon-offer-status {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--green);
  margin: 0 0 10px;
}
.addon-offer-choice:not([hidden]) { display: flex; gap: 8px; }
.addon-offer-choice .btn { flex: 1; }
.addon-offer-note { margin: 8px 0 0; font-size: 0.8rem; min-height: 1.1em; }

.location-picker-map {
  width: 100%;
  height: 240px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  margin-top: 12px;
}
.map-card .location-picker-map { border: none; border-radius: 0; margin-top: 0; }

.pause-calendar-wrap { margin-top: 6px; }

/* My Account page — denser spacing throughout so the page doesn't stretch
   so far vertically, without dropping any card, field, or feature. */
.account-page-section { padding: 40px 0 56px; }
.account-page-section .section-sub { margin-bottom: 22px; }
.account-page-section .account-panel-grid { gap: 16px; }
.account-page-section .account-card { padding: 18px; }
.account-page-section .account-card h3 { font-size: 1.05rem; margin-bottom: 4px; }
.account-page-section .account-card-sub { margin-bottom: 12px; font-size: 0.83rem; }
.account-page-section .location-picker-map { height: 190px; margin-top: 8px; }
.account-page-section .map-card { margin-top: 14px; }
.account-page-section .map-card .location-picker-map { margin-top: 0; }
.account-page-section .pause-calendar { padding: 12px; }
.account-page-section .referrals-list { max-height: 220px; }
.account-page-section .pref-current-box,
.account-page-section .location-current-box { padding: 10px 14px; }
.account-page-section .account-logout-row { margin-top: 22px; }

/* On mobile (the app is always this width) a single dropdown replaces the
   current-value box + full-width switch button — same underlying change
   handler either way, just a shorter card. Desktop keeps the box+button. */
.pref-mobile-select {
  display: block;
  width: 100%;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--ink);
  background: #fff;
  cursor: pointer;
}
.account-page-section .pref-current-box:has(#prefCurrentValue),
.account-page-section .pref-current-box:has(#freqCurrentValue),
.account-page-section #prefSwitchBtn,
.account-page-section #freqSwitchBtn {
  display: none;
}
@media (min-width: 900px) {
  .account-page-section .account-panel-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .account-page-section .account-card-wide { grid-column: 1 / -1; }

  .account-page-section .pref-current-box:has(#prefCurrentValue),
  .account-page-section .pref-current-box:has(#freqCurrentValue) { display: flex; }
  .account-page-section #prefSwitchBtn,
  .account-page-section #freqSwitchBtn { display: block; }
  .pref-mobile-select { display: none; }
}

/* When only 2 cards share a row, center them as a pair instead of leaving a
   lopsided empty slot on the right where a 3rd card would have gone. */
.account-subgrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 1fr));
  gap: 16px;
  max-width: 720px;
  margin: 0 auto;
}
@media (max-width: 640px) {
  .account-subgrid { grid-template-columns: 1fr; max-width: none; }
}

/* Plans */
.plans-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
}

.plan-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 28px 24px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  height: 100%;
}

.plan-card.featured {
  border-color: var(--saffron);
  transform: translateY(-6px);
  box-shadow: var(--shadow-md);
}

.plan-flag {
  position: absolute;
  top: -12px;
  right: 20px;
  background: var(--grad-primary);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
}

.plan-price {
  font-family: var(--font-head);
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--saffron-dark);
  margin: 6px 0 14px;
}
.plan-price small { font-size: 0.8rem; font-weight: 500; color: var(--muted); font-family: var(--font-body); }

.plan-card ul {
  margin: 0 0 22px;
  padding-left: 18px;
  color: var(--muted);
  font-size: 0.9rem;
}
.plan-card li { margin-bottom: 6px; }

.plan-pay-btn { margin-top: auto; }

/* Timings */
.timings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

.timing-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 24px;
  box-shadow: var(--shadow-sm);
}

.timing-sunday { border-color: var(--saffron); background: #fffaf2; }

.timing-list { list-style: none; padding: 0; margin: 10px 0; }
.timing-list li {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px dashed var(--border);
  font-weight: 600;
}
.timing-list li:last-child { border-bottom: none; }

.timing-note { color: var(--muted); font-size: 0.88rem; margin: 0; }

/* Favorites */
.favorites-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
}
.favorite-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 26px 22px;
  box-shadow: var(--shadow-sm);
}
.favorite-badge {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: var(--maroon);
  background: var(--maroon-light);
  padding: 4px 10px;
  border-radius: 999px;
  margin-bottom: 12px;
}
.favorite-card h3 { font-size: 1.05rem; margin-bottom: 6px; }
.favorite-card p { color: var(--muted); font-size: 0.9rem; margin-bottom: 12px; }

/* Feedback & ratings */
.feedback-summary {
  display: flex;
  align-items: center;
  gap: 20px;
  max-width: 460px;
  margin: 0 auto 40px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 20px 26px;
  box-shadow: var(--shadow-sm);
}
.feedback-avg { font-family: var(--font-head); font-size: 2.3rem; font-weight: 800; color: var(--saffron-dark); }
.feedback-stars { color: var(--saffron); font-size: 1.15rem; letter-spacing: 2px; }
#feedbackCount { margin: 4px 0 0; font-size: 0.84rem; color: var(--muted); }

.feedback-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 26px;
  align-items: start;
}

.feedback-form {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 26px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.feedback-form h3 { margin-top: 0; }
.feedback-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}
.feedback-form input,
.feedback-form textarea {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--ink);
  resize: vertical;
}
.feedback-form input:focus,
.feedback-form textarea:focus {
  outline: 2px solid var(--saffron);
  outline-offset: 1px;
}

.star-field { border: 0; padding: 0; margin: 0 0 4px; }
.star-field legend { font-size: 0.88rem; font-weight: 600; color: var(--muted); padding: 0 0 8px; }
.star-rating { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.star-rating input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.star-rating label {
  font-size: 1.9rem;
  line-height: 1;
  color: var(--border);
  cursor: pointer;
  transition: color 0.15s ease;
}
.star-rating input:checked ~ label,
.star-rating label:hover,
.star-rating label:hover ~ label { color: var(--saffron); }
.star-rating input:focus-visible + label {
  outline: 2px solid var(--saffron);
  outline-offset: 2px;
  border-radius: 4px;
}

.feedback-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-height: 460px;
  overflow-y: auto;
  padding-right: 4px;
}
.feedback-empty {
  color: var(--muted);
  background: #fff;
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
  padding: 28px 20px;
  text-align: center;
  font-size: 0.92rem;
}
.feedback-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 18px 20px;
  box-shadow: var(--shadow-sm);
}
.feedback-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}
.feedback-card-stars { color: var(--saffron); letter-spacing: 1px; }
.feedback-card p { margin: 0 0 8px; color: var(--ink); font-size: 0.92rem; }
.feedback-date { font-size: 0.76rem; color: var(--muted); }

.help-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 26px;
  align-items: start;
  margin-bottom: 24px;
}
.help-side { display: flex; flex-direction: column; gap: 20px; }
@media (max-width: 720px) {
  .help-grid { grid-template-columns: 1fr; }
}

.feedback-disclaimer {
  text-align: center;
  font-size: 0.78rem;
  color: var(--muted);
  margin-top: 28px;
}

/* Review photo/video uploads */
.media-upload-field { display: flex; flex-direction: column; gap: 8px; }
.media-upload-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px dashed var(--border);
  border-radius: 8px;
  background: var(--cream);
  color: var(--maroon);
  font-weight: 600;
  font-size: 0.88rem;
  cursor: pointer;
  text-align: center;
}
.media-upload-btn:hover { border-color: var(--saffron); color: var(--saffron-dark); }

.media-preview-strip { display: flex; flex-wrap: wrap; gap: 8px; }
.media-thumb {
  position: relative;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--ink);
}
.media-thumb img, .media-thumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.media-thumb-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  border: 0;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.media-thumb-video-badge {
  position: absolute;
  bottom: 2px;
  left: 2px;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 4px;
}
.media-upload-note {
  font-size: 0.76rem;
  color: var(--muted);
}
.media-upload-note.is-error { color: var(--maroon); }

.feedback-media-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--green);
  background: var(--green-light);
  padding: 2px 9px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.feedback-media-grid { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }
.feedback-media-grid button {
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: var(--ink);
  width: 84px;
  height: 84px;
}
.feedback-media-grid img, .feedback-media-grid video { width: 84px; height: 84px; object-fit: cover; display: block; }

.media-lightbox-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(15, 11, 8, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.media-lightbox-overlay[hidden] { display: none; }
.media-lightbox-content img,
.media-lightbox-content video {
  max-width: 100%;
  max-height: 88vh;
  border-radius: 10px;
  display: block;
}
.media-lightbox-close {
  position: absolute;
  top: 20px;
  right: 24px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  font-size: 20px;
  cursor: pointer;
}
.media-lightbox-close:hover { background: rgba(255, 255, 255, 0.28); }

/* Pay via UPI */
.pay-plan-banner {
  max-width: 860px;
  margin: 0 auto 24px;
  text-align: center;
  font-weight: 700;
  color: var(--green);
  background: var(--green-light);
  border: 1px solid #cfe9d6;
  border-radius: var(--radius-md);
  padding: 12px 18px;
}
.pay-plan-banner[hidden] { display: none; }

.pay-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 26px;
  align-items: start;
  max-width: 860px;
  margin: 0 auto;
}

.pay-form {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 26px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pay-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}
.pay-form input {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--ink);
}
.pay-form select { background-color: var(--cream); font-size: 0.95rem; }
.pay-form input:focus,
.pay-form select:focus {
  outline: 2px solid var(--saffron);
  outline-offset: 1px;
}

.pay-app-buttons { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.pay-app-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 0.92rem;
  text-decoration: none;
  color: #fff;
  transition: filter 0.15s ease;
}
.pay-app-btn:hover { filter: brightness(1.08); }
.pay-app-phonepe { background: #5f259f; }
.pay-app-gpay { background: #1a73e8; }
.pay-app-generic { background: #078252; }
.pay-app-hint { font-size: 0.78rem; color: var(--muted); text-align: center; margin: 0; }

.pay-qr-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 24px;
  box-shadow: var(--shadow-sm);
  text-align: center;
}
.pay-upi-id { margin-bottom: 18px; }
.pay-upi-label {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--muted);
  margin-bottom: 8px;
}
.pay-upi-value {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.pay-upi-value code {
  font-family: var(--font-head);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 6px 10px;
}
.pay-qr-image {
  display: block;
  margin: 0 auto;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  width: 200px;
  height: 200px;
  background: var(--cream);
}
.pay-qr-caption { font-size: 0.78rem; color: var(--muted); margin: 10px 0 0; }

.pay-disclaimer {
  max-width: 760px;
  margin: 28px auto 0;
  text-align: center;
  font-size: 0.8rem;
  color: var(--muted);
  background: var(--maroon-light);
  border: 1px solid #f2c6cf;
  border-radius: var(--radius-md);
  padding: 14px 18px;
}

/* Order */
.order-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 40px;
  align-items: start;
}
.order-grid.is-single-col { grid-template-columns: 1fr; max-width: 640px; margin: 0 auto; }
@media (min-width: 961px) {
  #quickEnquiryWrap {
    border-left: 1px solid var(--border);
    padding-left: 32px;
  }
}

.contact-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 24px 0;
}
.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 14px 16px;
  box-shadow: var(--shadow-sm);
}
.contact-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  background: var(--cream);
  border-radius: 50%;
}
.contact-item p {
  margin: 0;
  padding-top: 7px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.5;
}
.contact-item a { color: var(--maroon); font-weight: 700; text-decoration: none; }
.contact-item em { font-size: 0.8rem; opacity: 0.75; }
.contact-item strong { color: var(--ink); }

.map-card {
  margin-top: 24px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  /* Leaflet's own panes/controls use z-index up to ~1000 internally. Without
     this, that stacks in the SAME context as the sticky header (z-index:50)
     and wins once the map scrolls near it — the map visibly renders over
     the header instead of under it. isolation:isolate contains all of
     Leaflet's internal z-index inside this card, so it can never escape. */
  isolation: isolate;
}
.map-embed {
  width: 100%;
  height: 260px;
  border: 0;
  display: block;
}
.map-card-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 18px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
  border-top: 1px solid var(--border);
}

.order-form {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 26px;
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.offer-card {
  margin-top: 24px;
  background: #fff;
  border: 1px dashed var(--saffron);
  border-radius: var(--radius-md);
  padding: 22px 24px;
  text-align: center;
}
.offer-card-badge {
  display: inline-block;
  font-family: var(--font-head);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #fff;
  background: var(--grad-primary);
  padding: 4px 12px;
  border-radius: 999px;
  margin-bottom: 12px;
}
.offer-card h3 { margin: 0 0 6px; font-size: 1.05rem; }
.offer-card p { margin: 0; color: var(--muted); font-size: 0.88rem; }

.order-form h3 { margin-top: 0; }

/* Short paired fields (Name+Phone, Preference+Order Type) sit side by side
   to save vertical space — but only where two fields actually fit
   comfortably; the narrowest phones fall back to stacking. */
.order-form-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
}
@media (max-width: 320px) {
  .order-form-row { grid-template-columns: minmax(0, 1fr); }
}

.order-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}

.order-form input,
.order-form textarea {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--cream);
  color: var(--ink);
  resize: vertical;
}
.order-form select { background-color: var(--cream); font-size: 0.95rem; }

.order-form input:focus,
.order-form select:focus,
.order-form textarea:focus {
  outline: 2px solid var(--saffron);
  outline-offset: 1px;
}

.field-optional {
  font-weight: 500;
  font-size: 0.78rem;
  color: var(--saffron-dark);
  text-transform: none;
}

.field-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 6px;
}
.address-input-group {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0 12px;
  transition: border-color 0.15s ease;
}
.address-input-group:focus-within { border-color: var(--saffron); outline: 2px solid var(--saffron); outline-offset: 1px; }
.address-input-icon { font-size: 1rem; }
.address-input-group input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  background: transparent;
  font-family: var(--font-body);
  font-size: 0.92rem;
  color: var(--ink);
  padding: 10px 0;
}
.address-input-group input:focus { outline: none; }

.pause-claim-month-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--muted);
}
.pause-claim-month-field select {
  padding: 9px 11px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--cream);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--ink);
}
.field-hint {
  margin: -6px 0 0;
  font-size: 0.8rem;
  color: var(--muted);
  background: var(--maroon-light);
  border: 1px solid #f2c6cf;
  border-radius: var(--radius-sm);
  padding: 8px 12px;
}

#referralFieldWrap { display: flex; flex-direction: column; gap: 14px; }
#referralFieldWrap[hidden] { display: none; }

.form-note {
  margin: 0;
  font-size: 0.85rem;
  color: var(--green);
  min-height: 1.2em;
}

/* Footer */
.site-footer { background: var(--ink); color: #f1e9df; padding: 48px 0 0; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 32px;
  padding-bottom: 36px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-brand { display: flex; gap: 12px; align-items: flex-start; }
.footer-brand .brand-icon { height: 44px; width: auto; display: block; }
.footer-brand strong { font-family: var(--font-head); font-size: 1.02rem; }
.footer-brand p { margin: 4px 0 0; font-size: 0.85rem; color: #b9ac9d; }

.footer-col { display: flex; flex-direction: column; gap: 10px; }
.footer-col h4 { font-family: var(--font-head); font-size: 0.8rem; letter-spacing: 0.05em; color: #cfc4b7; margin-bottom: 4px; }
.footer-col a, .footer-col span { color: #f1e9df; text-decoration: none; font-size: 0.9rem; }
.footer-col a:hover { color: var(--saffron); }

.footer-bottom { padding: 20px 0; font-size: 0.82rem; color: #b9ac9d; }

/* Responsive */
@media (max-width: 960px) {
  .why-grid { grid-template-columns: 1fr; }
  .why-copy { position: static; }
  .order-grid { grid-template-columns: minmax(0, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .account-panel-grid { grid-template-columns: 1fr; }
  .profile-grid { grid-template-columns: 1fr; }
  .profile-header-card { flex-direction: column; align-items: flex-start; }
  .pay-grid { grid-template-columns: 1fr; }
  .admin-stats { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  .nav-toggle { display: flex; }
  .main-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--cream);
    border-bottom: 1px solid var(--border);
    flex-direction: column;
    align-items: flex-start;
    padding: 16px 20px 22px;
    gap: 14px;
    display: none;
  }
  .main-nav.open { display: flex; }
  .nav-cta { align-self: flex-start; }
  .btn-account { align-self: flex-start; }
  .nav-logout-btn:not([hidden]) { display: inline-flex; align-self: flex-start; }
  .kitchen-grid { grid-template-columns: 1fr; }
  .order-model-grid { grid-template-columns: 1fr 1fr; }
  .feedback-grid { grid-template-columns: 1fr; }
  .feedback-summary { flex-direction: column; text-align: center; }
  .footer-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  .trust-row { flex-direction: column; gap: 8px; }
  .order-model-grid { grid-template-columns: 1fr; }
  .prep-summary { grid-template-columns: 1fr; }
  .prep-summary-single { max-width: none; }
  .pref-toggle { flex-direction: column; }
}
