:root {
      --cream: #fffaf1;
      --cream-deep: #f2e7d1;
      --green: #087443;
      --green-dark: #123f2d;
      --green-ink: #153d2e;
      --orange: #ff5938;
      --orange-dark: #ed472a;
      --ink: #183229;
      --muted: #5b7068;
      --white: #ffffff;
      --shadow: 0 26px 70px rgba(28, 66, 51, .16);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      color: var(--ink);
      background: var(--cream);
      font-family: "Avenir Next", "Segoe UI", Arial, Helvetica, sans-serif;
      text-rendering: optimizeLegibility;
    }
    img { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }
    button, a { -webkit-tap-highlight-color: transparent; }
    ::selection { color: #fff; background: var(--orange); }
    .container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 50;
      border-bottom: 1px solid rgba(24, 50, 41, .1);
      background: rgba(255, 250, 241, .92);
      backdrop-filter: blur(16px);
    }
    .header-inner { min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
    .logo { width: 178px; height: auto; }
    .nav { display: flex; align-items: center; gap: 32px; margin-left: auto; margin-right: 12px; }
    .nav a { font-size: 14px; font-weight: 800; transition: color .2s ease; }
    .nav a:hover { color: var(--orange); }
    .header-actions { display: flex; align-items: center; gap: 10px; }

    .button {
      min-height: 50px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 0 26px;
      border: 0;
      border-radius: 999px;
      font-size: 15px;
      font-weight: 900;
      line-height: 1;
      cursor: pointer;
      transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
    }
    .button:hover { transform: translateY(-2px); }
    .button-orange { color: #fff; background: var(--orange); box-shadow: 0 12px 28px rgba(255, 89, 56, .24); }
    .button-orange:hover { background: var(--orange-dark); }
    .button-green { color: #fff; background: var(--green); box-shadow: 0 16px 35px rgba(8, 116, 67, .22); }
    .button-green:hover { background: #056238; }
    .button-outline { color: var(--ink); border: 1px solid rgba(24, 50, 41, .16); background: rgba(255,255,255,.7); }
    .button-dark { color: #fff; background: var(--green-dark); }
    .text-link { padding: 12px 15px; font-size: 14px; font-weight: 900; }

    .hero { position: relative; overflow: hidden; }
    .hero::before {
      content: "";
      position: absolute;
      width: 370px;
      height: 370px;
      left: -180px;
      top: 70px;
      border-radius: 50%;
      background: rgba(255, 89, 56, .1);
      filter: blur(70px);
    }
    .hero-grid {
      position: relative;
      display: grid;
      grid-template-columns: .9fr 1.1fr;
      align-items: center;
      gap: 62px;
      padding-block: 92px 110px;
    }
    .eyebrow {
      width: fit-content;
      display: inline-flex;
      align-items: center;
      gap: 9px;
      padding: 10px 15px;
      border: 1px solid rgba(8, 116, 67, .18);
      border-radius: 999px;
      background: rgba(255,255,255,.78);
      color: var(--green);
      box-shadow: 0 8px 25px rgba(24, 50, 41, .05);
      font-size: 11px;
      font-weight: 950;
      letter-spacing: .16em;
      text-transform: uppercase;
    }
    .spark { color: var(--orange); font-size: 16px; }
    h1 {
      max-width: 650px;
      margin: 28px 0 0;
      color: var(--green-ink);
      font-size: clamp(60px, 7vw, 108px);
      line-height: .86;
      letter-spacing: -.07em;
      font-weight: 950;
    }
    h1 .accent { position: relative; display: block; width: fit-content; margin-top: 13px; color: var(--orange); }
    h1 .accent::after {
      content: "";
      position: absolute;
      left: 5px;
      right: 5px;
      bottom: -17px;
      height: 8px;
      border-radius: 50%;
      background: var(--green);
      transform: rotate(-2deg);
    }
    .hero-copy { max-width: 560px; margin: 38px 0 0; color: #47645a; font-size: 19px; font-weight: 550; line-height: 1.7; }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
    .benefits { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 27px 0 0; padding: 0; list-style: none; color: #526b62; font-size: 13px; font-weight: 800; }
    .benefits li::before { content: "✓"; margin-right: 8px; color: var(--orange); font-weight: 950; }

    .hero-visual { position: relative; width: 100%; max-width: 690px; margin-left: auto; }
    .hero-visual::before, .hero-visual::after {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: 44px;
    }
    .hero-visual::before { left: -17px; top: -17px; background: var(--orange); transform: rotate(-3deg); }
    .hero-visual::after { right: -15px; bottom: -17px; background: var(--green); transform: rotate(2.3deg); }
    .photo-card {
      position: relative;
      z-index: 2;
      overflow: hidden;
      aspect-ratio: 1.12 / 1;
      border: 7px solid var(--cream);
      border-radius: 40px;
      background: #efe2c9;
      box-shadow: 0 30px 90px rgba(28,66,51,.25);
    }
    .hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: 68% center; }
    .today-card {
      position: absolute;
      z-index: 4;
      left: 24px;
      right: 24px;
      bottom: 24px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 18px;
      border-radius: 27px;
      background: rgba(255, 250, 241, .96);
      box-shadow: 0 18px 45px rgba(24, 50, 41, .18);
      backdrop-filter: blur(12px);
    }
    .today-info { display: flex; align-items: center; gap: 13px; }
    .today-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 16px; color: #fff; background: var(--orange); font-size: 22px; }
    .micro { margin: 0; color: var(--orange); font-size: 10px; font-weight: 950; letter-spacing: .16em; text-transform: uppercase; }
    .today-title { margin: 4px 0 0; font-size: 15px; font-weight: 950; }
    .delivery-time { padding: 10px 14px; border-radius: 999px; color: var(--green); background: #e8f3e9; font-size: 12px; font-weight: 950; white-space: nowrap; }
    .location-note {
      position: absolute;
      z-index: 5;
      right: -13px;
      top: 35px;
      padding: 12px 15px;
      border: 1px solid rgba(255,255,255,.8);
      border-radius: 16px;
      background: rgba(255,255,255,.96);
      box-shadow: 0 15px 40px rgba(24,50,41,.14);
      transform: rotate(3deg);
    }
    .location-note span { display: block; color: #698078; font-size: 9px; font-weight: 950; letter-spacing: .16em; text-transform: uppercase; }
    .location-note strong { display: block; margin-top: 5px; font-size: 13px; }

    .dark-section { padding-block: 86px; color: #fff; background: var(--green-dark); }
    .section-heading { display: grid; grid-template-columns: .8fr 1.2fr; align-items: end; gap: 40px; }
    .label { margin: 0; color: var(--orange); font-size: 11px; font-weight: 950; letter-spacing: .2em; text-transform: uppercase; }
    .dark-section .label { color: #ff9a83; }
    h2 { margin: 14px 0 0; color: var(--green-ink); font-size: clamp(40px, 5vw, 60px); line-height: 1.02; letter-spacing: -.055em; font-weight: 950; }
    .dark-section h2 { max-width: 520px; color: #fff; }
    .section-intro { max-width: 560px; margin: 0 0 4px auto; color: rgba(255,255,255,.67); font-size: 16px; font-weight: 600; line-height: 1.7; }
    .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 42px; }
    .step { padding: 28px; border: 1px solid rgba(255,255,255,.1); border-radius: 30px; background: rgba(255,255,255,.065); transition: transform .2s ease, background .2s ease; }
    .step:hover { transform: translateY(-4px); background: rgba(255,255,255,.095); }
    .step-top { display: flex; align-items: center; justify-content: space-between; }
    .step-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; color: #fff; background: var(--orange); font-weight: 950; }
    .step-number { color: rgba(255,255,255,.28); font-size: 13px; font-weight: 950; letter-spacing: .14em; }
    .step h3 { margin: 28px 0 0; font-size: 20px; }
    .step p { margin: 11px 0 0; color: rgba(255,255,255,.62); font-size: 14px; font-weight: 550; line-height: 1.65; }

    .menu-section { padding-block: 98px; }
    .menu-head { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
    .menu-head h2 { max-width: 680px; }
    .menu-head > p:last-child { max-width: 430px; margin: 0; color: var(--muted); font-weight: 600; line-height: 1.7; }
    .menu-list { margin-top: 40px; overflow: hidden; border: 1px solid rgba(24, 50, 41, .1); border-radius: 34px; background: #fff; box-shadow: 0 25px 70px rgba(29, 76, 58, .08); }
    .menu-row { display: grid; grid-template-columns: 120px 1fr auto; align-items: center; gap: 24px; padding: 25px 28px; }
    .menu-row + .menu-row { border-top: 1px solid rgba(24, 50, 41, .08); }
    .menu-row.current { background: #eef7ee; }
    .day-pill { width: fit-content; padding: 6px 10px; border-radius: 999px; color: #5d7069; background: rgba(24,50,41,.07); font-size: 9px; font-weight: 950; letter-spacing: .15em; }
    .current .day-pill { color: #fff; background: var(--orange); }
    .date { display: block; margin-top: 8px; font-size: 13px; font-weight: 950; }
    .meal-name { margin: 0; font-size: 18px; font-weight: 950; }
    .meal-side { margin: 5px 0 0; color: #65776f; font-size: 13px; font-weight: 600; }
    .chef-pill { padding: 10px 14px; border: 1px solid rgba(8, 116, 67, .16); border-radius: 999px; color: var(--green); background: var(--cream); font-size: 11px; font-weight: 950; }

    .plans-section { padding-block: 98px; background: var(--cream-deep); }
    .center { max-width: 690px; margin-inline: auto; text-align: center; }
    .center p:last-child { color: var(--muted); font-weight: 600; line-height: 1.7; }
    .plans { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; max-width: 980px; margin: 46px auto 0; }
    .plan { position: relative; padding: 36px; overflow: hidden; border: 1px solid rgba(24,50,41,.1); border-radius: 35px; background: var(--cream); }
    .plan.featured { color: #fff; border-color: var(--green); background: var(--green-dark); box-shadow: 0 28px 65px rgba(18,63,45,.22); }
    .plan-tag { color: var(--orange); font-size: 10px; font-weight: 950; letter-spacing: .18em; text-transform: uppercase; }
    .featured .plan-tag { color: #ff9a83; }
    .popular { position: absolute; right: 24px; top: 24px; padding: 7px 11px; border-radius: 999px; color: #fff; background: var(--orange); font-size: 9px; font-weight: 950; letter-spacing: .14em; text-transform: uppercase; }
    .plan h3 { margin: 15px 0 0; font-size: 29px; letter-spacing: -.04em; }
    .price { display: flex; align-items: end; gap: 8px; margin-top: 28px; }
    .price strong { font-size: 52px; line-height: 1; letter-spacing: -.06em; }
    .price span { padding-bottom: 5px; color: #65776f; font-size: 13px; font-weight: 700; }
    .featured .price span { color: rgba(255,255,255,.55); }
    .meal-count { margin: 7px 0 0; color: #526b62; font-size: 13px; font-weight: 800; }
    .featured .meal-count { color: rgba(255,255,255,.7); }
    .features { display: grid; gap: 12px; margin: 26px 0 0; padding: 0; list-style: none; }
    .features li { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 800; }
    .features li::before { content: "✓"; width: 24px; height: 24px; display: grid; place-items: center; flex: none; border-radius: 50%; color: var(--green); background: #dfeee1; }
    .featured .features li::before { color: #fff; background: var(--orange); }
    .plan .button { width: 100%; margin-top: 30px; }
    .renewal { margin: 16px 0 0; color: #73837d; text-align: center; font-size: 11px; font-weight: 800; }

    .final-cta { padding-block: 70px; color: #fff; background: var(--orange); }
    .final-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
    .final-cta .label { color: rgba(255,255,255,.66); }
    .final-cta h2 { max-width: 760px; color: #fff; }
    footer { padding-block: 34px; color: #fff; background: #0f2f22; }
    .footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 22px; }
    .footer-logo { width: 150px; filter: brightness(0) invert(1); }
    footer p { margin: 0; color: rgba(255,255,255,.52); font-size: 13px; font-weight: 700; }
    footer p:last-child { color: rgba(255,255,255,.35); font-size: 11px; }

    @media (max-width: 980px) {
      .nav { display: none; }
      .hero-grid { grid-template-columns: 1fr; padding-block: 65px 88px; }
      .hero-content { max-width: 740px; }
      .hero-visual { margin: 5px auto 0; }
      .section-heading { grid-template-columns: 1fr; }
      .section-intro { margin-left: 0; }
      .menu-head { display: block; }
      .menu-head > p:last-child { margin-top: 18px; }
      .final-inner { align-items: flex-start; flex-direction: column; }
    }

    @media (max-width: 720px) {
      .container { width: min(100% - 30px, 1180px); }
      .header-inner { min-height: 70px; }
      .logo { width: 146px; }
      .text-link { display: none; }
      .header-actions .button { min-height: 45px; padding: 0 18px; font-size: 13px; }
      .hero-grid { gap: 48px; padding-block: 48px 73px; }
      h1 { font-size: clamp(56px, 18vw, 84px); }
      .hero-copy { font-size: 17px; }
      .hero-actions { flex-direction: column; }
      .hero-actions .button { width: 100%; }
      .hero-visual::before { left: -8px; top: -9px; }
      .hero-visual::after { right: -8px; bottom: -9px; }
      .photo-card { border-width: 5px; border-radius: 31px; }
      .today-card { left: 12px; right: 12px; bottom: 12px; align-items: stretch; flex-direction: column; padding: 13px; border-radius: 22px; }
      .today-icon { width: 42px; height: 42px; }
      .delivery-time { width: fit-content; }
      .location-note { display: none; }
      .dark-section, .menu-section, .plans-section { padding-block: 72px; }
      .steps { grid-template-columns: 1fr; }
      .menu-row { grid-template-columns: 1fr; gap: 13px; padding: 21px; }
      .day-cell { display: flex; align-items: center; gap: 10px; }
      .date { margin: 0; }
      .chef-pill { width: fit-content; }
      .plans { grid-template-columns: 1fr; }
      .plan { padding: 27px; }
      .popular { position: static; display: inline-block; margin-top: 12px; }
      .final-cta { padding-block: 55px; }
      .final-inner .button { width: 100%; }
      .footer-inner { align-items: flex-start; flex-direction: column; }
    }

/* KavoEats V1 Foundation */
:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.skip-link { position:absolute; left:-9999px; top:10px; z-index:999; padding:12px 16px; border-radius:12px; color:#fff; background:var(--green-dark); }
.skip-link:focus { left:10px; }
.nav a[aria-current="page"] { color: var(--orange); }
.mobile-toggle { display:none; width:44px; height:44px; place-items:center; border:1px solid rgba(24,50,41,.14); border-radius:50%; background:#fff; color:var(--ink); font-size:20px; cursor:pointer; }
.mobile-panel { display:none; }
.page-hero { padding:72px 0 58px; border-bottom:1px solid rgba(24,50,41,.08); }
.page-hero-inner { max-width:820px; }
.page-hero h1 { margin-top:18px; font-size:clamp(48px,7vw,82px); line-height:.95; }
.page-hero p { max-width:700px; margin:28px 0 0; color:var(--muted); font-size:18px; line-height:1.75; font-weight:600; }
.content-section { padding:78px 0; }
.content-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.info-card { padding:28px; border:1px solid rgba(24,50,41,.1); border-radius:28px; background:#fff; box-shadow:0 20px 55px rgba(29,76,58,.07); }
.info-card h3 { margin:0; font-size:21px; }
.info-card p { margin:12px 0 0; color:var(--muted); line-height:1.7; font-weight:600; }
.faq-list { display:grid; gap:14px; max-width:900px; }
details { border:1px solid rgba(24,50,41,.1); border-radius:22px; background:#fff; padding:0 22px; }
summary { cursor:pointer; list-style:none; padding:21px 0; font-weight:900; }
summary::-webkit-details-marker { display:none; }
details p { margin:0 0 22px; color:var(--muted); line-height:1.7; font-weight:600; }
.form-card { max-width:760px; padding:30px; border:1px solid rgba(24,50,41,.1); border-radius:30px; background:#fff; box-shadow:var(--shadow); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:grid; gap:8px; }
.field.full { grid-column:1/-1; }
.field label { font-size:13px; font-weight:900; }
.field input, .field textarea { width:100%; padding:14px 15px; border:1px solid rgba(24,50,41,.18); border-radius:14px; background:#fff; color:var(--ink); font:inherit; }
.field textarea { min-height:130px; resize:vertical; }
.notice { padding:15px 17px; border-radius:16px; background:#eef7ee; color:var(--green-dark); font-size:13px; font-weight:750; line-height:1.55; }
.login-shell { max-width:520px; margin:auto; }
.login-card { padding:32px; border:1px solid rgba(24,50,41,.1); border-radius:32px; background:#fff; box-shadow:var(--shadow); }
.login-card h2 { margin-top:0; font-size:38px; }
.login-card .button { width:100%; margin-top:18px; }
.status-message { display:none; margin-top:16px; padding:13px 15px; border-radius:14px; background:#fff1ed; color:#7d2e1f; font-weight:750; font-size:13px; }
.status-message.show { display:block; }
.footer-links { display:flex; flex-wrap:wrap; gap:16px; }
.footer-links a { color:rgba(255,255,255,.72); font-size:12px; font-weight:800; }
.error-page { min-height:70vh; display:grid; place-items:center; text-align:center; padding:70px 20px; }
.error-page h1 { font-size:clamp(78px,16vw,160px); margin:0; color:var(--orange); }
.error-page h2 { margin:16px 0 0; font-size:34px; }
.error-page p { max-width:560px; color:var(--muted); line-height:1.7; }
@media (max-width:980px){
  .mobile-toggle{display:grid}.header-actions .text-link{display:none}
  .site-header .nav{display:none}.mobile-panel.open{display:block;border-top:1px solid rgba(24,50,41,.1);background:rgba(255,250,241,.98)}
  .mobile-panel-inner{display:grid;padding:12px 20px 18px}.mobile-panel a{padding:13px 4px;font-weight:900;border-bottom:1px solid rgba(24,50,41,.07)}
  .content-grid{grid-template-columns:1fr}.footer-inner{flex-wrap:wrap}.footer-links{width:100%}
}
@media (max-width:720px){.page-hero{padding:50px 0 40px}.content-section{padding:58px 0}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-card,.login-card{padding:22px}.header-actions .button{display:none}}

.spaced-field{margin-top:14px}

/* KavoEats V2 Subscription Plans */
.field select { width:100%; padding:14px 42px 14px 15px; border:1px solid rgba(24,50,41,.18); border-radius:14px; background:#fff; color:var(--ink); font:inherit; appearance:auto; }
.field-help { color:var(--muted); font-size:12px; line-height:1.5; font-weight:650; }
.form-title { margin:0 0 24px; font-size:32px; }
.subscription-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); gap:26px; align-items:start; }
.subscription-form { max-width:none; }
.subscription-form .button { width:100%; margin-top:22px; }
.review-card { position:sticky; top:105px; padding:30px; border-radius:30px; color:#fff; background:var(--green-dark); box-shadow:0 28px 70px rgba(18,63,45,.2); }
.review-card h2 { margin:12px 0 0; color:#fff; font-size:36px; }
.review-meals { margin:8px 0 24px; color:rgba(255,255,255,.65); font-weight:800; }
.review-block { display:grid; gap:7px; padding:18px 0; border-top:1px solid rgba(255,255,255,.12); }
.review-block span,.review-totals span { color:rgba(255,255,255,.58); font-size:12px; font-weight:800; }
.review-block strong { font-size:14px; line-height:1.55; }
.review-totals { display:grid; gap:13px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); }
.review-totals > div { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.review-total { margin-top:3px; padding-top:15px; border-top:1px solid rgba(255,255,255,.12); }
.review-total strong { color:#ff9a83; font-size:22px; }
.review-note { margin:21px 0 0; color:rgba(255,255,255,.5); font-size:11px; line-height:1.6; font-weight:700; }
@media(max-width:850px){.subscription-layout{grid-template-columns:1fr}.review-card{position:static}}

/* V3 customer authentication */
.auth-card{max-width:720px;width:100%}.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.auth-alert{padding:14px 16px;border-radius:14px;margin:0 0 16px;font-weight:700}.auth-alert.error{background:#fff1ee;border:1px solid #f2b4a8;color:#8b2e20}.auth-alert.success{background:#eff8ef;border:1px solid #afd3b1;color:#245f2b}.auth-row{display:flex;justify-content:flex-end;margin:-2px 0 16px}.auth-row a,.auth-switch a{font-weight:800;color:#1f6d3b}.auth-switch{margin:18px 0 0}.field small{display:block;margin-top:7px;color:#6b675f}.account-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;background:#fff;border:1px solid rgba(31,109,59,.14);border-radius:24px;padding:28px;margin-bottom:22px}.account-hero h1{margin:.15em 0}.account-badge{white-space:nowrap;background:#edf8ef;color:#1f6d3b;border:1px solid #afd3b1;border-radius:999px;padding:10px 14px;font-weight:800}.account-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.account-card{background:#fff;border:1px solid rgba(31,109,59,.14);border-radius:20px;padding:22px}.account-card h3{margin-top:0}.muted{color:#756f64}@media(max-width:760px){.auth-grid,.account-grid{grid-template-columns:1fr}.account-hero{align-items:flex-start;flex-direction:column}}

/* V3.1 mobile auth polish */
.password-help{display:block;margin-top:8px!important;margin-bottom:10px;font-size:13px;line-height:1.35;}
.confirm-field{margin-top:6px;}
@media(max-width:760px){
  .auth-card .field{margin-bottom:5px;}
  .auth-card .password-help{font-size:12px;line-height:1.3;margin-bottom:12px;}
  .auth-card .confirm-field{margin-top:6px;}
  .auth-card .button[type=submit]{margin-top:8px;margin-bottom:10px;}
}

/* V4 customer onboarding */
.compact-hero .page-hero-inner { padding-bottom: 48px; }
.onboarding-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:28px; align-items:start; }
.onboarding-form { max-width:none; }
.form-section { padding:24px 0; border-top:1px solid rgba(24,50,41,.10); }
.form-section:first-of-type { padding-top:10px; border-top:0; }
.form-section h3 { margin:0 0 18px; color:var(--green-ink); font-size:20px; }
.field textarea { width:100%; resize:vertical; min-height:100px; padding:15px 17px; border:1px solid rgba(24,50,41,.16); border-radius:18px; background:#fff; color:var(--ink); font:inherit; line-height:1.5; outline:none; }
.field textarea:focus { border-color:var(--green); box-shadow:0 0 0 4px rgba(8,116,67,.08); }
.optional { color:var(--muted); font-size:12px; font-weight:700; }
.allergy-notice { margin-bottom:18px; }
.save-profile { width:100%; margin-top:8px; }
.onboarding-summary { position:sticky; top:108px; }
@media (max-width: 860px) {
  .onboarding-layout { grid-template-columns:1fr; }
  .onboarding-summary { position:static; order:-1; }
}
@media (max-width: 620px) {
  .onboarding-layout { gap:18px; }
  .form-section { padding:20px 0; }
  .onboarding-form { padding:22px 18px; }
}

/* V4.2 central navigation + definitive mobile auth spacing fix */
.password-help{
  display:block;
  margin:4px 0 0 !important;
  font-size:11px !important;
  line-height:1.25 !important;
  font-weight:600;
  color:#6b675f;
}
.confirm-field{
  margin-top:14px !important;
}
@media(max-width:760px){
  .auth-card .password-help{
    margin:3px 0 0 !important;
    font-size:10px !important;
    line-height:1.2 !important;
  }
  .auth-card .confirm-field{
    margin-top:14px !important;
  }
}

/* V5 live weekly menu + admin */
.empty-menu{max-width:760px;margin:0 auto;padding:46px;border:1px solid rgba(24,50,41,.10);border-radius:30px;background:#fff;text-align:center;box-shadow:var(--shadow)}
.empty-menu h2{font-size:34px}.empty-menu p{color:var(--muted);font-weight:600}
.menu-row-live{grid-template-columns:120px 1fr auto}.meal-meta{margin:8px 0 0;color:#738078;font-size:12px;font-weight:650}.menu-thumb{width:112px;height:78px;object-fit:cover;border-radius:18px;border:1px solid rgba(24,50,41,.08)}
.admin-body{background:#f7f3e9;color:var(--ink)}.admin-topbar{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px clamp(18px,4vw,48px);border-bottom:1px solid rgba(24,50,41,.10);background:#fff;position:sticky;top:0;z-index:20}.admin-brand{display:flex;align-items:center;gap:12px;font-weight:950}.admin-brand img{width:132px;height:auto}.admin-brand span{padding:6px 9px;border-radius:9px;color:#fff;background:var(--green-dark);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.admin-nav{display:flex;align-items:center;gap:18px}.admin-nav a{font-size:13px;font-weight:850}.admin-nav a.active{color:var(--orange)}.admin-main{width:min(1180px,calc(100% - 34px));margin:0 auto;padding:44px 0 80px}.admin-page-head{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:26px}.admin-page-head h1{margin:8px 0 0;font-size:clamp(38px,6vw,62px);line-height:1}.admin-auth{min-height:calc(100vh - 150px);display:grid;place-items:center;padding:40px 0}.admin-card{padding:28px;border:1px solid rgba(24,50,41,.10);border-radius:26px;background:#fff;box-shadow:0 18px 48px rgba(24,50,41,.08)}.admin-auth .admin-card{width:min(520px,100%)}.admin-card h1{margin:8px 0 10px;font-size:42px}.admin-card h2{margin:0 0 10px;font-size:28px}.admin-card .field{margin-bottom:15px}.admin-card .button{margin-top:18px}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.admin-stat{padding:24px;border-radius:22px;background:var(--green-dark);color:#fff}.admin-stat span{color:#b9c9c1;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.admin-stat strong{display:block;margin-top:8px;font-size:44px}.admin-stat p{margin:4px 0 0;color:#cbd8d2}.admin-table-wrap{overflow:auto;border:1px solid rgba(24,50,41,.10);border-radius:24px;background:#fff;box-shadow:0 18px 48px rgba(24,50,41,.06)}.admin-table{width:100%;border-collapse:collapse;min-width:830px}.admin-table th,.admin-table td{padding:17px 18px;text-align:left;border-bottom:1px solid rgba(24,50,41,.08);vertical-align:middle}.admin-table th{color:#718077;background:#fbfaf5;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.admin-meal-cell{display:flex;align-items:center;gap:12px}.admin-meal-cell img{width:56px;height:48px;object-fit:cover;border-radius:12px}.admin-meal-cell small{display:block;margin-top:3px;max-width:340px;color:var(--muted)}.status-pill{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900}.status-pill.on{color:#166033;background:#e8f5eb}.status-pill.off{color:#7b5a10;background:#fff4d8}.admin-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.admin-actions a,.admin-actions button{padding:0;border:0;background:none;color:var(--green);font:inherit;font-size:12px;font-weight:900;cursor:pointer}.admin-actions button.danger{color:#a6372a}.admin-actions form{display:inline}.admin-form{max-width:900px}.admin-image-preview{display:block;width:180px;height:120px;object-fit:cover;border-radius:16px;margin:4px 0 10px}.admin-check{display:flex;align-items:center;gap:10px;margin-top:18px;font-weight:800}.admin-check input{width:18px;height:18px}
@media(max-width:760px){.admin-topbar{align-items:flex-start;flex-direction:column}.admin-nav{width:100%;overflow:auto;padding-bottom:4px}.admin-main{padding-top:28px}.admin-page-head{align-items:flex-start;flex-direction:column}.admin-stats{grid-template-columns:1fr}.menu-row-live{grid-template-columns:1fr}.menu-thumb{width:100%;height:180px}.empty-menu{padding:28px 20px}}

/* V6 customer dashboard */
.customer-dashboard{background:#f8f4e9;min-height:70vh}.dashboard-welcome{padding:54px 0 28px}.dashboard-welcome-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:34px;border:1px solid rgba(24,50,41,.10);border-radius:30px;background:#fff}.dashboard-welcome h1{margin:8px 0 0;font-size:clamp(46px,7vw,76px);line-height:.95}.dashboard-lead{max-width:640px;margin:18px 0 0;color:var(--muted);font-size:16px;font-weight:650;line-height:1.65}.dashboard-status{min-width:220px;padding:16px 18px;border-radius:20px;border:1px solid}.dashboard-status span{display:block;font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.dashboard-status strong{display:block;margin-top:5px;font-size:14px}.dashboard-status.ready{color:#165c35;background:#edf8ef;border-color:#b5d8bf}.dashboard-status.needs-action{color:#7b5611;background:#fff5da;border-color:#ead59b}.dashboard-section{padding:0 0 80px}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:22px;align-items:start}.dashboard-main,.dashboard-side{display:grid;gap:22px}.dashboard-card,.today-dashboard-card{border:1px solid rgba(24,50,41,.10);border-radius:26px;background:#fff;box-shadow:0 16px 44px rgba(24,50,41,.055)}.dashboard-card{padding:24px}.dashboard-card h2,.dashboard-card h3,.today-dashboard-card h2{margin:5px 0 0}.dashboard-card h2,.today-dashboard-card h2{font-size:30px}.dashboard-card h3{font-size:22px}.dashboard-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.dashboard-card-head .label{margin:0}.today-dashboard-card{display:grid;grid-template-columns:minmax(0,1fr) 220px;overflow:hidden}.today-dashboard-copy{padding:30px}.today-dashboard-image{width:100%;height:100%;min-height:260px;object-fit:cover}.dashboard-meal-desc{margin:18px 0 0;color:var(--muted);font-weight:650;line-height:1.65}.meal-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.meal-facts span{padding:10px 12px;border-radius:14px;background:#f3f7f1;color:#536b60;font-size:12px;font-weight:750}.meal-facts strong{color:var(--green-dark)}.dashboard-link{display:inline!important}.dashboard-meal-list{display:grid;margin-top:18px}.dashboard-meal-row{display:grid;grid-template-columns:58px minmax(0,1fr) 68px;align-items:center;gap:14px;padding:14px 0;border-top:1px solid rgba(24,50,41,.08)}.dashboard-meal-row.today{margin-inline:-10px;padding-inline:10px;border-radius:16px;background:#fff8ed}.dashboard-date{display:grid;place-items:center;border-radius:14px;background:#f3f5ef;padding:8px 4px}.dashboard-date span{font-size:9px;font-weight:950;letter-spacing:.08em}.dashboard-date strong{font-size:22px}.dashboard-meal-name{min-width:0}.dashboard-meal-name strong,.dashboard-meal-name span{display:block}.dashboard-meal-name span{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.dashboard-meal-row img{width:68px;height:54px;object-fit:cover;border-radius:12px}.dashboard-empty{margin-top:18px;padding:22px;border-radius:18px;background:#f7f7f2;color:var(--muted);font-weight:650}.dashboard-details{display:grid;gap:0;margin:18px 0 0}.dashboard-details>div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-top:1px solid rgba(24,50,41,.08)}.dashboard-details dt{color:var(--muted);font-size:12px;font-weight:750}.dashboard-details dd{margin:0;text-align:right;font-size:12px;font-weight:850}.dashboard-details.compact{margin-top:12px}.delivery-address{margin:18px 0 0;line-height:1.6}.dashboard-button{width:100%;margin-top:18px}.button-outline{border:1px solid rgba(24,50,41,.18);background:#fff;color:var(--green-dark)}.dashboard-email{margin:10px 0 0;overflow-wrap:anywhere}.dashboard-account-links{display:flex;gap:16px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(24,50,41,.08)}.dashboard-account-links a{color:var(--green);font-size:12px;font-weight:900}.compact-card{padding-bottom:20px}
@media(max-width:900px){.dashboard-layout{grid-template-columns:1fr}.dashboard-side{grid-template-columns:repeat(2,1fr)}.dashboard-side .compact-card{grid-column:1/-1}}
@media(max-width:680px){.dashboard-welcome{padding-top:30px}.dashboard-welcome-inner{align-items:flex-start;flex-direction:column;padding:24px}.dashboard-status{width:100%;min-width:0}.dashboard-layout{gap:16px}.dashboard-main,.dashboard-side{gap:16px}.dashboard-side{grid-template-columns:1fr}.dashboard-side .compact-card{grid-column:auto}.today-dashboard-card{grid-template-columns:1fr}.today-dashboard-image{order:-1;min-height:190px;max-height:230px}.today-dashboard-copy{padding:22px}.dashboard-card{padding:20px}.dashboard-meal-row{grid-template-columns:52px minmax(0,1fr) 58px}.dashboard-meal-row img{width:58px;height:48px}.dashboard-card-head{gap:10px}.dashboard-card h2,.today-dashboard-card h2{font-size:26px}}

/* V7 subscription management */
.subscription-manage-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:26px;align-items:start}.subscription-manage-main{display:grid;gap:18px}.subscription-current-card{padding:28px}.pending-change-card{border-color:#efd194;background:#fffaf0}.pending-change-card p{line-height:1.6}.subscription-action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.subscription-action-form .button{margin-top:16px}.subscription-rules{position:sticky;top:108px}.button-danger{background:#9b3229;color:#fff;border:1px solid #9b3229}.button[disabled],button[disabled]{opacity:.45;cursor:not-allowed}.dashboard-pending-note{margin:15px 0 0;padding:11px 12px;border-radius:12px;background:#fff6dd;color:#765615;font-size:12px;font-weight:800}.subscription-readonly{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;border:1px solid rgba(24,50,41,.1);border-radius:18px;background:#f8faf5}.subscription-readonly span,.subscription-readonly strong{display:block}.subscription-readonly span{color:var(--muted);font-size:11px;font-weight:800}.subscription-readonly strong{margin-top:4px;font-size:14px}.subscription-readonly a{grid-column:1/-1;color:var(--green);font-size:12px;font-weight:900}.admin-settings-card{max-width:760px}.admin-settings-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end;margin-top:22px}.admin-settings-form .button{margin:0}.settings-preview{margin-top:20px}
@media(max-width:900px){.subscription-manage-layout{grid-template-columns:1fr}.subscription-rules{position:static}.subscription-action-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.subscription-action-grid,.admin-settings-form{grid-template-columns:1fr}.subscription-readonly{grid-template-columns:1fr}.subscription-readonly a{grid-column:auto}}
@media(min-width:761px){.admin-stats{grid-template-columns:repeat(4,1fr)}}

/* V8 Stripe billing */
.billing-page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:24px;align-items:start}.billing-summary{display:grid;gap:10px;margin:20px 0}.billing-summary>div,.admin-detail-list>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(18,62,51,.12);padding:10px 0}.billing-summary span,.admin-detail-list dt{color:#63736d}.payment-history{display:grid}.payment-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid rgba(18,62,51,.12)}.payment-row>div{display:grid;gap:3px}.payment-row span{font-size:.9rem;color:#63736d}.dashboard-billing-form{margin-top:10px}.dashboard-text-link{display:inline-block;margin-top:12px;color:#0c6b47;font-weight:800}.admin-two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.admin-detail-list{margin:16px 0}.admin-detail-list div{display:flex;justify-content:space-between}.admin-detail-list dt{font-weight:700}.admin-detail-list dd{margin:0;font-weight:800}.admin-feature-list{padding-left:20px;line-height:1.8}.admin-check{display:flex;gap:10px;align-items:flex-start;margin:14px 0;font-weight:700}.admin-inline-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.admin-table-card{padding:0;overflow:hidden}.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table th,.admin-table td{text-align:left;padding:14px 16px;border-bottom:1px solid rgba(18,62,51,.12);vertical-align:top}.admin-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#63736d}.admin-table td>span{display:block;font-size:.82rem;color:#63736d;margin-top:3px}.admin-table code,.notice code{word-break:break-all}.billing-action-card{margin-bottom:20px}
@media(max-width:760px){.billing-page-grid,.admin-two-col{grid-template-columns:1fr}.payment-row{align-items:flex-start}.admin-inline-actions .button{width:100%}}

.billing-alert{padding:18px;border:1px solid #d7a45a;border-radius:14px;background:#fff8ec;margin:0 0 18px}.billing-alert strong{display:block;font-size:1.05rem;margin-bottom:6px}.billing-alert p{margin:6px 0 12px}

/* V10 full admin panel */
.admin-filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 18px}.admin-filter-bar input,.admin-filter-bar select{min-height:44px;border:1px solid #d7d2c8;border-radius:10px;padding:10px 12px;background:#fff;min-width:180px}.admin-filter-bar input[type=search]{flex:1;min-width:250px}
.admin-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-card-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.admin-list-row{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid #ece7dd;text-decoration:none;color:inherit}.admin-list-row div{display:flex;flex-direction:column}.admin-list-row span{font-size:.88rem;color:#6d706c}.admin-stats-wide{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-note{border-top:1px solid #ece7dd;padding:14px 0}.admin-note>span{display:block;font-size:.8rem;color:#777;margin:2px 0 7px}.admin-note p{margin:0;white-space:normal}.admin-card textarea,.admin-card select,.admin-card input{max-width:100%}.admin-sub-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px}.admin-sub-actions form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.admin-table a{color:#174b3d;text-decoration:none}.admin-table a:hover{text-decoration:underline}
@media(max-width:900px){.admin-detail-grid{grid-template-columns:1fr}.admin-stats-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-filter-bar>*{width:100%;min-width:0}.admin-nav{overflow-x:auto;white-space:nowrap}}
@media(max-width:560px){.admin-stats-wide{grid-template-columns:1fr}.admin-list-row{align-items:flex-start;flex-direction:column}}

/* V10.2 plan management */
.admin-plan-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.plan .price strong{font-variant-numeric:tabular-nums}
.admin-card .admin-check{margin:14px 0}

/* V10.3 global Back navigation */
.global-back-wrap{padding-top:14px;padding-bottom:0}
.global-back,.admin-global-back{appearance:none;border:1px solid #d9d7cf;background:#fff;color:#163d33;border-radius:999px;min-height:44px;padding:9px 16px;font:inherit;font-weight:800;display:inline-flex;align-items:center;gap:7px;cursor:pointer;box-shadow:0 4px 14px rgba(18,49,41,.06)}
.global-back:hover,.global-back:focus-visible{border-color:#0a7a48;outline:none;box-shadow:0 0 0 3px rgba(10,122,72,.12)}
.admin-back-wrap{max-width:1380px;margin:14px auto 0;padding:0 28px}
.admin-global-back{background:#fff}
@media(max-width:720px){
 .global-back-wrap{padding-top:10px}
 .global-back,.admin-global-back{min-height:42px;padding:8px 14px}
 .admin-back-wrap{margin-top:10px;padding:0 18px}
}

/* V10.3.1 compact in-page Back button */
.global-back-wrap,.admin-back-wrap{display:none!important}

.page-back-row{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:12px 24px 0;
  box-sizing:border-box;
  display:flex;
  justify-content:flex-start;
}

.admin-page-back-row{
  max-width:none;
  padding:0 0 14px 0;
  margin:0;
}

.page-back-button{
  appearance:none;
  border:0;
  background:transparent;
  color:#174b3d;
  min-height:32px;
  padding:2px 4px;
  font:inherit;
  font-size:.92rem;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  box-shadow:none;
  border-radius:6px;
}

.page-back-button:hover,
.page-back-button:focus-visible{
  background:rgba(23,75,61,.07);
  outline:none;
}

.page-back-button span[aria-hidden="true"]{
  font-size:1.1rem;
  line-height:1;
}

@media(max-width:720px){
  .page-back-row{
    padding:10px 18px 0;
  }
  .admin-page-back-row{
    padding:0 0 10px 0;
  }
  .page-back-button{
    min-height:30px;
    font-size:.88rem;
  }
}

/* V10.4 delivery windows */
.admin-table .status-pill{white-space:nowrap}

/* V11 Kitchen & Fulfillment */
.weekday-checks{display:flex;gap:9px;flex-wrap:wrap;padding:10px 0}.weekday-checks label{display:inline-flex;align-items:center;gap:5px;border:1px solid #ddd7cc;border-radius:9px;padding:8px 10px;background:#fff}
.kitchen-bulk-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 0 16px}.kitchen-bulk-bar select{min-width:180px}
.kitchen-alert-row{background:#fffaf0}.food-alert{display:flex;flex-direction:column;gap:3px;max-width:320px}.food-alert strong{color:#9a5419}.food-alert span{font-size:.84rem;line-height:1.3}
.production-summary-list{display:flex;flex-direction:column}.production-summary-list>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #ece7dd;padding:11px 0}.production-summary-list>div:first-child{border-top:0}
.kitchen-table select{min-width:145px;padding:7px;border:1px solid #d7d2c8;border-radius:8px;background:#fff}
@media(max-width:760px){.kitchen-bulk-bar>*{width:100%}.weekday-checks label{flex:1 0 28%;justify-content:center}}

/* V12 Driver & Dispatch */
.driver-delivery-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin-top:20px}.driver-card{display:flex;flex-direction:column;gap:14px}.driver-card.driver-done{opacity:.72}.driver-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.driver-card-head h2{margin:7px 0 0}.driver-detail{display:flex;flex-direction:column;gap:4px}.driver-detail span{font-size:.8rem;color:#716d65;text-transform:uppercase;letter-spacing:.04em}.driver-actions{display:flex;gap:8px;flex-wrap:wrap}.driver-note{border-left:3px solid #e9a23b;padding:8px 10px;background:#fff9ed;border-radius:4px}.driver-update{border-top:1px solid #ece7dd;padding-top:14px}.driver-update .field{margin-bottom:10px}
@media(max-width:620px){.driver-delivery-list{grid-template-columns:1fr}.driver-card-head{flex-direction:column}.driver-actions .button{flex:1;text-align:center}}

/* V13 Service Areas, Priority & Routing */
.emergency-row,.emergency-card{background:#fff4f1!important;border-color:#edb2a6!important}.emergency-badge{display:inline-flex;align-items:center;gap:4px;font-weight:800;color:#a52a1f;background:#ffe2dc;border-radius:999px;padding:5px 8px;font-size:.78rem}.priority-toggle{border:1px solid #d8d2c8;background:#fff;border-radius:999px;padding:6px 9px;cursor:pointer;font-weight:700}.priority-toggle.on{border-color:#d15542;background:#fff0ed;color:#9b281c}
.driver-route-group{margin-top:24px}.driver-route-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.driver-route-head h2{margin:2px 0}.route-stop-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:7px}.route-stop{display:inline-flex;font-weight:900;color:#174b3d;background:#edf6f1;border-radius:999px;padding:5px 8px;font-size:.78rem}.driver-completed{opacity:.82}
@media(max-width:700px){.driver-route-head{flex-direction:column}.driver-route-head .button{width:100%;text-align:center}}

.driver-route-buttons{display:flex;gap:8px;flex-wrap:wrap}.driver-route-buttons .button{white-space:nowrap}

/* South Florida service-area map setup */
.service-map-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:18px;align-items:start}
.service-map-sidebar{position:sticky;top:16px}.service-map-card{padding:0;overflow:hidden}
#service-map{height:650px;min-height:450px;width:100%}
@media(max-width:900px){.service-map-layout{grid-template-columns:1fr}.service-map-sidebar{position:static}#service-map{height:520px}}

/* Back button placement fix */
.global-back-wrap,.admin-back-wrap{display:none!important}
.page-back-row{
  width:100%;
  box-sizing:border-box;
  display:flex;
  justify-content:flex-start;
  padding:10px 0 8px;
  margin:0;
}
.page-back-button{
  appearance:none;
  border:0;
  background:transparent;
  color:#174b3d;
  padding:4px 8px;
  min-height:32px;
  border-radius:7px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font:inherit;
  font-size:.9rem;
  font-weight:800;
  cursor:pointer;
}
.page-back-button:hover,
.page-back-button:focus-visible{
  background:rgba(23,75,61,.08);
  outline:none;
}
@media(max-width:720px){
  .page-back-row{padding:8px 0 6px}
  .page-back-button{font-size:.86rem;min-height:30px}
}

/* V13.1 reliable Back + ZIP Map */
.page-back-button{
  text-decoration:none!important;
}
.page-back-button:visited{
  color:#174b3d;
}
.masked-key-field{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.02em;
  background:#f7f5ef!important;
}
.map-empty-state{
  min-height:420px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
}
.service-map-sidebar small{
  display:block;
  margin-top:6px;
  line-height:1.35;
}

/* V13.2 explicit ZIP selector */
.zip-load-button{width:100%;margin:4px 0 14px}
.zip-filter-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.zip-filter-actions .button{flex:1;text-align:center;justify-content:center}

/* V13.3 Google Maps renderer diagnostics */
.service-map-card{position:relative;min-height:560px}
#service-map{height:650px;min-height:560px;width:100%;background:#eef1ed}
.map-status{
  padding:12px 14px;
  display:flex;
  flex-direction:column;
  gap:3px;
  border-bottom:1px solid #e5dfd5;
}
.map-status.loading{background:#fff8e8;color:#725716}
.map-status.success{background:#edf8f0;color:#1e5a39}
.map-status.error{background:#fff0ee;color:#8f2f24}
.map-status span{font-size:.86rem}
.map-error-box{
  margin:12px;
  padding:12px 14px;
  border:1px solid #e1a49a;
  background:#fff2f0;
  color:#84291f;
  border-radius:12px;
  line-height:1.45;
}
.map-fallback{
  margin:12px;
  padding-top:8px;
}
.map-fallback iframe{
  width:100%;
  height:420px;
  border:0;
  border-radius:14px;
}
@media(max-width:900px){
  #service-map{height:500px;min-height:440px}
  .service-map-card{min-height:440px}
}

/* V13.4 explicit Google Maps loader */
#service-map{display:block!important;visibility:visible!important}
.map-status{position:relative;z-index:2}
.map-fallback:not([hidden]){display:block}
.map-error-box:not([hidden]){display:block}

/* V13.5 external map controller */
#service-map[hidden]{display:none!important}
#map-fallback{display:block}
#map-fallback[hidden]{display:none!important}
.map-fallback iframe{background:#eef1ed}

/* V14 per-ZIP controls */
.zip-toggle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.zip-toggle-card{border:1px solid #ded8ce;border-radius:14px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff}
.zip-toggle-card>div{display:flex;flex-direction:column;gap:3px}
.zip-toggle-card span{font-size:.8rem;font-weight:800}
.zip-toggle-card.active{border-color:#b9d8c6;background:#f2faf5}
.zip-toggle-card.active span{color:#17643e}
.zip-toggle-card.inactive{border-color:#e7c7c1;background:#fff5f3}
.zip-toggle-card.inactive span{color:#a33a2a}
.admin-page-head.compact{margin-bottom:12px}
@media(max-width:700px){.zip-toggle-grid{grid-template-columns:1fr}.zip-toggle-card .button{min-width:110px}}

.zip-add-form{display:flex;align-items:end;gap:10px;margin:14px 0 18px}
.zip-add-form .field{flex:1;margin:0}
.zip-card-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.zip-card-actions form{margin:0}
.zip-remove-button{font-size:.78rem}
@media(max-width:700px){.zip-add-form{flex-direction:column;align-items:stretch}.zip-add-form .button{width:100%}}

.google-test-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.google-test-actions form{margin:0}.google-test-result{margin-top:18px;padding:16px;border-radius:14px;border:1px solid}.google-test-result.success{background:#f1faf4;border-color:#b7d9c3;color:#174d32}.google-test-result.error{background:#fff2f0;border-color:#e4b2aa;color:#8a3024}.google-test-result>strong{display:block;font-size:1.05rem;margin-bottom:10px}.google-test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.google-test-grid>div{background:rgba(255,255,255,.65);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:3px}.google-test-grid span{font-size:.76rem;opacity:.72;font-weight:800;text-transform:uppercase;letter-spacing:.03em}@media(max-width:700px){.google-test-actions{flex-direction:column}.google-test-actions .button{width:100%}.google-test-grid{grid-template-columns:1fr}}

/* V14.3 address validation + route engine */
.address-validation-status{padding:12px 14px;border-radius:12px;margin:0 0 14px;display:flex;flex-direction:column;gap:3px;border:1px solid}
.address-validation-status.validated{background:#f1faf4;border-color:#b7d9c3;color:#174d32}
.address-validation-status.unvalidated{background:#fff6e9;border-color:#e7c899;color:#7b5518}
.address-validation-status span,.address-validation-status small{font-size:.84rem;line-height:1.35}
.inline-verified{color:#17643e;font-weight:800}.inline-warning{color:#9a5b11;font-weight:800}
.route-data-ok{display:block;color:#17643e!important;font-size:.72rem!important;font-weight:800;margin-top:3px}.route-data-missing{display:block;color:#9a5b11!important;font-size:.72rem!important;font-weight:800;margin-top:3px}
.route-engine-status{margin:14px 0;padding:13px 16px;border-radius:14px;display:flex;flex-direction:column;gap:3px;border:1px solid}.route-engine-status.optimized{background:#f1faf4;border-color:#b7d9c3;color:#174d32}.route-engine-status.fallback{background:#fff6e9;border-color:#e7c899;color:#7b5518}.route-engine-status span{font-size:.86rem}

/* V14.4 header/navigation reliability */
header a,
.site-header a,
.main-nav a,
.site-nav a{
  pointer-events:auto;
  position:relative;
  z-index:2;
}
.menu-toggle,
.nav-toggle,
.mobile-menu-toggle,
.hamburger,
[data-menu-toggle]{
  pointer-events:auto;
  cursor:pointer;
  position:relative;
  z-index:1002;
}
@media (max-width:900px){
  .site-nav.open,
  .site-nav.is-open,
  .main-nav.open,
  .mobile-nav.open,
  [data-mobile-nav].open,
  [data-mobile-nav].is-open{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  .has-dropdown.open > ul,
  .nav-item-has-children.open > ul,
  .has-dropdown.open > .dropdown,
  .nav-item-has-children.open > .submenu{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  html.nav-open,
  body.nav-open{
    overflow:hidden;
  }
}

/* V14.5 Compact Driver Portal */
.driver-mobile-shell{max-width:760px;margin:0 auto;padding:10px 12px 28px}
.driver-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.driver-topbar h1{margin:0;font-size:1.35rem}
.driver-topbar .label{margin-bottom:2px}
.driver-count-pill{background:#173f34;color:#fff;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:900}
.driver-route-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:9px}
.driver-route-summary>div{background:#fff;border:1px solid #e3ddd3;border-radius:11px;padding:8px 6px;text-align:center}
.driver-route-summary strong{display:block;font-size:1rem;line-height:1.05}
.driver-route-summary span{display:block;font-size:.67rem;color:#716c63;margin-top:3px}
.driver-route-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:11px}
.driver-start-route{flex:1;text-align:center;padding:10px 12px}
.driver-date-compact{display:flex;gap:6px;align-items:center}
.driver-date-compact input{max-width:145px;padding:8px;border:1px solid #d9d3c9;border-radius:9px;background:#fff}
.driver-date-compact .button{padding:8px 10px}
.driver-stop-list{display:flex;flex-direction:column;gap:8px}
.driver-stop-card{background:#fff;border:1px solid #ded8cf;border-radius:13px;padding:9px 10px;box-shadow:0 2px 8px rgba(0,0,0,.035)}
.driver-stop-card.is-emergency{border-color:#d97a69;background:#fff7f5}
.driver-stop-main{display:flex;gap:9px;align-items:flex-start}
.driver-stop-index{flex:0 0 28px;height:28px;border-radius:8px;background:#173f34;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:900}
.driver-stop-info{min-width:0;flex:1}
.driver-stop-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.1}
.driver-stop-title strong{font-size:.95rem}
.driver-emergency{background:#fde2dc;color:#9a2f20;border-radius:999px;padding:3px 6px;font-size:.62rem;font-weight:900;text-transform:uppercase}
.driver-stop-address{font-size:.78rem;color:#514e48;margin-top:4px;line-height:1.25}
.driver-stop-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px}
.driver-stop-meta span{font-size:.66rem;background:#f2efe9;border-radius:999px;padding:3px 6px;color:#5d5850}
.driver-stop-notes{margin-top:7px;border-top:1px solid #eee8df;padding-top:6px;font-size:.74rem;color:#5f594f}
.driver-stop-notes summary{cursor:pointer;font-weight:800;color:#775b25}
.driver-stop-notes div{margin-top:5px;line-height:1.3}
.driver-stop-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}
.driver-action{appearance:none;border:1px solid #d8d2c8;background:#fff;color:#173f34;text-decoration:none;border-radius:8px;padding:7px 4px;text-align:center;font:inherit;font-size:.7rem;font-weight:900;cursor:pointer}
.driver-action.nav{background:#173f34;color:#fff;border-color:#173f34}
.driver-action.delivered{background:#eff8f2;border-color:#b8d9c3;color:#17603c}
.driver-action.issue{background:#fff3f1;border-color:#e5b8af;color:#983728}
.driver-inline-form{margin-top:8px;padding-top:8px;border-top:1px solid #eee7dd}
.driver-inline-form[hidden]{display:none!important}
.driver-form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.driver-inline-form .field{margin:0}
.driver-inline-form label{font-size:.7rem}
.driver-inline-form input{padding:8px;font-size:.8rem}
.driver-form-buttons{display:flex;gap:6px;margin-top:8px}
.driver-form-buttons .button{padding:8px 10px;font-size:.76rem}
.driver-completed-section{margin-top:14px;background:#fff;border:1px solid #ddd7cd;border-radius:12px;padding:9px 10px}
.driver-completed-section summary{cursor:pointer;font-weight:900;font-size:.82rem}
.driver-done-list{margin-top:7px}
.driver-done-row{display:grid;grid-template-columns:22px 1fr auto;gap:7px;align-items:center;padding:6px 0;border-top:1px solid #eee8df;font-size:.76rem}
.driver-done-row:first-child{border-top:0}
.driver-done-row span{color:#197044;font-weight:900}
.driver-done-row small{color:#79736a}
.driver-empty{text-align:center}
@media(max-width:560px){
  .driver-mobile-shell{padding:8px 8px 24px}
  .driver-route-summary{gap:5px}
  .driver-route-summary>div{padding:7px 3px}
  .driver-route-summary strong{font-size:.9rem}
  .driver-route-summary span{font-size:.6rem}
  .driver-route-toolbar{flex-direction:column;align-items:stretch}
  .driver-date-compact{display:grid;grid-template-columns:1fr auto}
  .driver-date-compact input{max-width:none;width:100%}
  .driver-stop-actions{grid-template-columns:repeat(4,1fr)}
  .driver-action{font-size:.64rem;padding:7px 2px}
  .driver-form-row{grid-template-columns:1fr}
}

/* V14.8 Google Login + permanent customer delete */
.oauth-divider{display:flex;align-items:center;gap:10px;margin:16px 0;color:#827c72;font-size:.78rem;font-weight:800;text-transform:uppercase}
.oauth-divider:before,.oauth-divider:after{content:"";height:1px;background:#e1dbd1;flex:1}
.google-login-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:1px solid #d8d2c8;border-radius:999px;padding:12px 16px;text-decoration:none;background:#fff;color:#252525;font-weight:800}
.google-login-button:hover{background:#f8f6f2}
.google-g{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-weight:900;color:#4285f4;font-size:1rem}
.danger-zone{margin-top:20px;border:1px solid #e3b3aa;background:#fff7f5}
.danger-zone h2{color:#8f3024}
.button-danger{background:#a63b2d;color:#fff;border:1px solid #a63b2d}
.button-danger:hover{background:#8f3024}
.button-small{padding:6px 9px;font-size:.72rem}

/* V14.9 — legal pages + header navigation alignment */
.legal-shell{max-width:900px}
.legal-shell>h1{margin-bottom:6px}
.legal-updated{color:#777168;margin-bottom:22px}
.legal-card{background:#fff;border:1px solid #e3ddd3;border-radius:18px;padding:28px;line-height:1.65}
.legal-card h2{font-size:1.15rem;margin:26px 0 8px;color:#173f34}
.legal-card p{margin:0 0 14px}
.legal-footer-links{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:14px;font-size:.82rem}
.legal-footer-links a{color:inherit}

/* Move desktop menu closer to the logo / left side instead of hugging the far right */
@media(min-width:901px){
  .site-header .container,
  header .container,
  .header-inner{
    justify-content:flex-start!important;
  }
  .site-nav,
  .main-nav,
  header nav{
    margin-left:42px!important;
    margin-right:0!important;
    flex:0 1 auto!important;
  }
  .site-nav .button,
  .main-nav .button,
  header nav .button{
    margin-left:10px;
  }
}

/* keep account/sign-out area readable but not pushed to extreme right */
@media(min-width:1100px){
  .site-nav,
  .main-nav,
  header nav{
    gap:28px;
  }
}
@media(max-width:900px){
  .legal-card{padding:20px}
}

/* V14.9b precise desktop header alignment */
@media(min-width:901px){
  .site-header .header-inner{
    justify-content:flex-start!important;
  }
  .site-header .nav{
    margin-left:34px!important;
    margin-right:24px!important;
    flex:0 1 auto!important;
  }
  .site-header .header-actions{
    margin-left:0!important;
  }
}

/* v14.10 - Google Places (New) address widget */
gmp-place-autocomplete.kavo-place-autocomplete{
  display:block;
  width:100%;
  min-height:50px;
  border:1px solid rgba(24,50,41,.18);
  border-radius:14px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  box-sizing:border-box;
  overflow:visible;
}
gmp-place-autocomplete.kavo-place-autocomplete:focus-within{
  border-color:var(--green);
  box-shadow:0 0 0 4px rgba(8,116,67,.08);
}
/* V14.11 Places API (New) custom compact autocomplete */
.kavo-address-suggestions{position:absolute;z-index:10050;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid #d8d2c8;border-radius:12px;box-shadow:0 10px 28px rgba(24,35,31,.16);overflow:hidden;max-height:280px;overflow-y:auto}
.kavo-address-suggestions[hidden]{display:none!important}
.kavo-address-suggestion{display:block;width:100%;border:0;border-bottom:1px solid #eee9e1;background:#fff;text-align:left;padding:10px 12px;font:inherit;font-size:.83rem;line-height:1.3;color:#173f34;cursor:pointer}
.kavo-address-suggestion:last-child{border-bottom:0}.kavo-address-suggestion:hover,.kavo-address-suggestion:focus{background:#f5f8f5;outline:0}

/* V14.13 server-side Places autocomplete */
.kavo-address-suggestion-error{padding:10px 12px;font-size:.8rem;line-height:1.35;color:#8f3024;background:#fff7f5}

/* V14.14 — Admin desktop alignment + mobile hamburger + public mobile menu stability */

/* Admin desktop: keep nav close to brand and stop pushing everything to far right */
.admin-topbar{position:relative;z-index:500}
.admin-topbar-inner{
  display:flex;
  align-items:center;
  justify-content:flex-start!important;
  gap:24px;
  width:min(1500px,calc(100% - 32px));
  margin:0 auto;
}
.admin-brand-wrap{flex:0 0 auto}
.admin-brand{display:flex;align-items:center;gap:8px;text-decoration:none}
.admin-brand img{height:36px;width:auto}
.admin-nav-desktop{
  display:flex;
  align-items:center;
  justify-content:flex-start!important;
  gap:18px!important;
  margin-left:18px!important;
  margin-right:0!important;
  flex:0 1 auto!important;
  white-space:nowrap;
}
.admin-nav-desktop a{flex:0 0 auto}
.admin-mobile-toggle{display:none}

/* Admin mobile hamburger */
@media(max-width:900px){
  .admin-topbar{
    position:sticky;
    top:0;
    background:#fff;
    border-bottom:1px solid #e4ddd2;
  }
  .admin-topbar-inner{
    width:100%;
    padding:10px 14px;
    justify-content:space-between!important;
    gap:12px;
  }
  .admin-nav-desktop{display:none!important}
  .admin-mobile-toggle{
    display:flex;
    width:42px;
    height:42px;
    border:1px solid #d9d2c8;
    border-radius:11px;
    background:#fff;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:0;
    cursor:pointer;
  }
  .admin-mobile-toggle span{width:20px;height:2px;background:#173f34;border-radius:999px;display:block}
  .admin-mobile-panel{
    position:fixed;
    left:0;
    right:0;
    top:63px;
    z-index:9999;
    background:#fffaf1;
    border-top:1px solid #e5ddd3;
    border-bottom:1px solid #d9d0c5;
    box-shadow:0 14px 30px rgba(20,34,28,.16);
    max-height:calc(100dvh - 63px);
    overflow:auto;
    padding:10px 14px 16px;
  }
  .admin-mobile-panel[hidden]{display:none!important}
  .admin-mobile-panel nav{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .admin-mobile-panel a{
    display:block;
    padding:11px 12px;
    border:1px solid #e4ddd3;
    border-radius:10px;
    background:#fff;
    color:#173f34;
    text-decoration:none;
    font-weight:800;
    font-size:.85rem;
  }
  .admin-mobile-panel a.active{background:#173f34;color:#fff;border-color:#173f34}
  body.admin-menu-open{overflow:hidden}
}

/* Public mobile menu: always render as viewport-fixed overlay under header.
   This prevents it disappearing when hamburger is tapped after scrolling down. */
@media(max-width:900px){
  .site-header{position:sticky!important;top:0!important;z-index:6000!important;background:#fffaf1}
  .mobile-panel{
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:var(--public-mobile-header-height,72px)!important;
    z-index:5999!important;
    max-height:calc(100dvh - var(--public-mobile-header-height,72px))!important;
    overflow-y:auto!important;
    background:#fffaf1!important;
    border-top:1px solid #e3dbd0!important;
    border-bottom:1px solid #d9d0c5!important;
    box-shadow:0 16px 32px rgba(23,63,52,.18)!important;
    transform:none!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .mobile-panel[hidden]{display:none!important}
  .mobile-panel.is-open{display:block!important}
  .mobile-panel-inner{
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    padding:12px 16px 18px!important;
  }
  .mobile-panel-inner a{
    display:block!important;
    padding:12px 14px!important;
    border-radius:10px!important;
    text-decoration:none!important;
  }
  html.public-menu-open,body.public-menu-open{overflow:hidden!important}
}

/* V14.15 admin render safety */
.admin-main{display:block!important;visibility:visible!important;opacity:1!important}
@media(max-width:900px){
  .admin-topbar-inner{min-height:64px}
  .admin-mobile-toggle{margin-left:auto}
}

/* V15 — Driver / Kitchen / Customer order flow */
.driver-start-form{margin:0}
.driver-stop-card{
  border:1px solid rgba(24,50,41,.14);
  border-radius:14px;
  padding:12px 13px;
  background:#fff;
  box-shadow:0 8px 22px rgba(24,50,41,.06);
}
.driver-stop-list{display:grid;gap:10px}
.driver-stop-main{display:flex;gap:11px;align-items:flex-start}
.driver-stop-index{
  width:32px;height:32px;min-width:32px;border-radius:9px;
  display:grid;place-items:center;background:var(--green-dark);color:#fff;font-weight:950
}
.driver-stop-address{font-size:.88rem;line-height:1.35;margin-top:3px}
.driver-stop-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:.72rem;color:var(--muted);margin-top:5px}
.driver-stop-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.driver-action{
  border:1px solid rgba(24,50,41,.14);background:#fff;border-radius:9px;
  padding:8px 10px;font-weight:900;font-size:.76rem;cursor:pointer
}
.driver-action.nav{background:var(--green-dark);color:#fff}
.driver-action.delivered{background:#eaf8f0;color:#056238}
.driver-action.issue{background:#fff3ef;color:#9b3325}
.kitchen-ready-btn{
  display:block;margin-top:7px;border:0;border-radius:8px;padding:7px 9px;
  background:#eaf8f0;color:#056238;font-weight:900;font-size:.72rem;cursor:pointer
}
.driver-assigned-chip{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef5f1;font-weight:850;font-size:.76rem}

.delivery-progress-card{overflow:hidden}
.delivery-progress-track{
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:16px
}
.delivery-progress-step{position:relative;text-align:center;color:#8b8a84;font-size:.72rem}
.delivery-progress-step:before{
  content:"";position:absolute;top:11px;left:-50%;width:100%;height:2px;background:#dedbd4;z-index:0
}
.delivery-progress-step:first-child:before{display:none}
.delivery-progress-dot{
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  margin:0 auto 7px;background:#ece9e2;color:#777;position:relative;z-index:1;font-size:.72rem
}
.delivery-progress-step.done,.delivery-progress-step.current{color:var(--green-dark)}
.delivery-progress-step.done .delivery-progress-dot,.delivery-progress-step.current .delivery-progress-dot{background:var(--green);color:#fff}
.delivery-progress-step.done:before,.delivery-progress-step.current:before{background:var(--green)}
.delivery-progress-step strong{display:block;line-height:1.2}
.delivery-progress-note{margin:16px 0 0;padding:10px 12px;border-radius:10px;background:#f4f8f5;font-size:.86rem}
.delivery-progress-note.issue{background:#fff3ef;color:#8f3024}

@media(max-width:700px){
  .driver-route-toolbar{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
  .driver-route-toolbar .driver-date-compact{grid-column:1/-1}
  .driver-route-toolbar .button{width:100%;min-height:42px;padding:0 12px;font-size:.78rem}
  .driver-stop-card{padding:10px}
  .driver-stop-title{font-size:.95rem}
  .delivery-progress-track{gap:2px}
  .delivery-progress-step{font-size:.62rem}
  .delivery-progress-dot{width:21px;height:21px}
}

/* V16 Dispatch */
.dispatch-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.dispatch-stat{background:#fff;border:1px solid #e3ddd3;border-radius:13px;padding:13px;text-align:center}
.dispatch-stat strong{display:block;font-size:1.25rem}
.dispatch-stat span{font-size:.72rem;color:var(--muted)}
.dispatch-assign-bar{display:flex;gap:9px;margin-bottom:12px}
.dispatch-assign-bar select{min-width:220px}
.dispatch-order-list{display:grid;gap:8px}
.dispatch-order-card{display:flex;gap:10px;align-items:flex-start;border:1px solid #e2dbd2;border-radius:12px;background:#fff;padding:10px;cursor:pointer}
.dispatch-order-card>input{margin-top:4px}
.dispatch-order-main{flex:1;min-width:0}
.dispatch-order-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.dispatch-address{font-size:.82rem;margin-top:4px}
.dispatch-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:.7rem}
.dispatch-driver-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dispatch-driver-card{min-width:0}
.dispatch-driver-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.dispatch-driver-head h2{margin:0}
.dispatch-driver-summary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.dispatch-driver-summary span{padding:6px 8px;border-radius:999px;background:#f2f6f3;font-size:.72rem}
.dispatch-route-list{display:grid;gap:7px}
.dispatch-route-row{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;border:1px solid #e4ddd3;border-radius:10px;padding:8px;background:#fff}
.dispatch-route-row.is-done{opacity:.55}
.dispatch-seq{width:28px;height:28px;border-radius:8px;background:var(--green-dark);color:#fff;display:grid;place-items:center;font-weight:900;font-size:.72rem}
.dispatch-route-info{min-width:0}
.dispatch-route-info strong,.dispatch-route-info span,.dispatch-route-info small{display:block}
.dispatch-route-info span{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dispatch-route-info small{font-size:.66rem;color:var(--muted);margin-top:2px}
.dispatch-route-actions{display:flex;gap:5px;align-items:center}
.dispatch-route-actions form{margin:0}
.dispatch-route-actions select{max-width:120px;padding:6px;font-size:.7rem}
.dispatch-unassign{width:28px;height:28px;border:0;border-radius:8px;background:#fff0ed;color:#a13b2d;font-size:1.05rem;cursor:pointer}
@media(max-width:900px){
  .dispatch-summary-grid{grid-template-columns:repeat(2,1fr)}
  .dispatch-driver-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .dispatch-assign-bar{flex-direction:column}
  .dispatch-assign-bar select,.dispatch-assign-bar .button{width:100%}
  .dispatch-route-row{grid-template-columns:28px 1fr}
  .dispatch-route-actions{grid-column:2;justify-content:flex-start}
}

/* V17 Operations Manager */
.ops-stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:14px}
.ops-stat{display:block;background:#fff;border:1px solid #e3ddd3;border-radius:13px;padding:12px;text-align:center;text-decoration:none}
.ops-stat strong{display:block;font-size:1.25rem;color:var(--green-dark)}
.ops-stat span{font-size:.7rem;color:var(--muted)}
.ops-action-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.ops-list{display:grid;gap:7px}
.ops-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #e7e0d6;border-radius:10px;background:#fff;text-decoration:none}
.ops-row>div{min-width:0}
.ops-row strong,.ops-row span{display:block}
.ops-row>div>span{font-size:.72rem;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-row.issue{background:#fff7f5;border-color:#edc5bd}
.ops-issues-card{margin-top:16px}
@media(max-width:950px){.ops-stat-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){
  .ops-stat-grid{grid-template-columns:repeat(2,1fr)}
  .ops-action-row{display:grid;grid-template-columns:1fr 1fr}
  .ops-action-row .button{width:100%;padding:0 10px;font-size:.78rem}
}

/* V18 notifications and operations alerts */
.checkbox-row{display:flex;gap:.65rem;align-items:flex-start;margin:.65rem 0;font-weight:600}.checkbox-row input{margin-top:.2rem}.dashboard-notification-list{display:grid;gap:.7rem;margin-top:1rem}.dashboard-notification{padding:.8rem;border:1px solid rgba(0,0,0,.09);border-radius:12px;display:grid;gap:.2rem}.dashboard-notification span,.dashboard-notification small{color:#6a6a6a;font-size:.9rem}.ops-row.critical{border-left:4px solid #b42318}.ops-row.warning{border-left:4px solid #d97706}.ops-row.info{border-left:4px solid #2563eb}

/* V18.1 — definitive public mobile-menu first-tap fix */
@media(max-width:900px){
  .mobile-panel{
    top:var(--public-mobile-menu-top,0px)!important;
    bottom:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    z-index:10000!important;
  }
  .mobile-panel.is-open{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  /* Do not freeze the document when the public menu opens. On mobile Chrome
     that old scroll-lock could activate while the panel itself was outside
     the visual viewport, making the page appear locked until a second tap. */
  html.public-menu-open,body.public-menu-open{overflow:auto!important;position:static!important}
}


/* V18.2 — mobile menu close + account actions in header */
.header-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.header-auth-button{
  display:inline-flex;align-items:center;justify-content:center;min-height:40px;
  padding:9px 15px;border-radius:999px;border:1px solid rgba(24,50,41,.16);
  font-size:13px;line-height:1;font-weight:900;white-space:nowrap;
  transition:transform .15s ease,box-shadow .15s ease
}
.header-auth-button:hover{transform:translateY(-1px)}
.header-signin-button,.header-account-button{
  background:#fff;color:var(--green-dark);box-shadow:0 6px 18px rgba(24,50,41,.08)
}
.header-start-button{
  background:var(--orange);color:#fff;border-color:var(--orange);
  box-shadow:0 8px 20px rgba(244,95,61,.18)
}
.header-signout-button{
  background:var(--green-dark);color:#fff;border-color:var(--green-dark);
  box-shadow:0 8px 20px rgba(24,63,52,.16)
}
@media(max-width:900px){
  .site-header .header-inner{gap:8px}
  .site-header .logo{width:min(132px,31vw);height:auto}
  .header-actions{margin-left:auto;gap:6px}
  .header-actions .header-auth-button{display:inline-flex!important}
  .header-auth-button{min-height:36px;padding:8px 11px;font-size:11px}
  .mobile-toggle{width:38px;height:38px;flex:0 0 38px;font-size:18px}
}
@media(max-width:520px){
  .site-header .header-inner{padding-left:12px;padding-right:12px}
  .site-header .logo{width:min(112px,29vw)}
  .header-auth-button{padding:7px 9px;min-height:34px;font-size:10.5px}
  .header-start-button{display:none!important}
  .mobile-toggle{width:36px;height:36px;flex-basis:36px}
}


/* V18.3 — Android mobile menu viewport fix
   The mobile panel is re-parented to body by navigation.js. */
@media(max-width:900px){
  body > .mobile-panel{
    position:fixed!important;
    left:0!important;
    right:0!important;
    width:100vw!important;
    top:var(--public-mobile-menu-top,70px)!important;
    bottom:0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    display:none!important;
    overflow-y:auto!important;
    background:#fffaf1!important;
    z-index:99999!important;
    border-top:1px solid rgba(24,50,41,.10)!important;
    box-shadow:0 20px 44px rgba(24,50,41,.18)!important;
  }
  body > .mobile-panel.is-open{
    display:block!important;
  }
  body > .mobile-panel[hidden]{
    display:none!important;
  }
  body > .mobile-panel .mobile-panel-inner{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    padding:10px 18px 24px!important;
    gap:0!important;
  }
  body > .mobile-panel .mobile-panel-inner a{
    display:block!important;
    width:100%!important;
    min-height:52px!important;
    padding:15px 8px!important;
    border-bottom:1px solid rgba(24,50,41,.08)!important;
    color:var(--green-dark)!important;
    font-size:15px!important;
    font-weight:900!important;
    line-height:1.35!important;
  }
}


/* V18.4 — compact dropdown directly below the hamburger button */
@media(max-width:900px){
  body > .mobile-panel{
    position:fixed!important;
    top:var(--mobile-menu-top,72px)!important;
    left:var(--mobile-menu-left,12px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--mobile-menu-width,260px)!important;
    height:auto!important;
    min-height:0!important;
    max-height:min(70vh,520px)!important;
    margin:0!important;
    padding:6px!important;
    display:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    background:#fffaf1!important;
    border:1px solid rgba(24,50,41,.12)!important;
    border-radius:18px!important;
    box-shadow:0 16px 38px rgba(24,50,41,.20)!important;
    z-index:99999!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  body > .mobile-panel.is-open{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }

  body > .mobile-panel[hidden]{
    display:none!important;
  }

  body > .mobile-panel .mobile-panel-inner{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    padding:2px!important;
    margin:0!important;
    gap:2px!important;
  }

  body > .mobile-panel .mobile-panel-inner a{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-height:44px!important;
    padding:11px 13px!important;
    margin:0!important;
    border:0!important;
    border-radius:12px!important;
    color:var(--green-dark)!important;
    background:transparent!important;
    font-size:14px!important;
    font-weight:850!important;
    line-height:1.25!important;
    text-decoration:none!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }

  body > .mobile-panel .mobile-panel-inner a:hover,
  body > .mobile-panel .mobile-panel-inner a:focus-visible{
    background:rgba(17,126,75,.08)!important;
  }
}

/* V18.5 — guest header intentionally keeps only Sign In; primary CTA lives in page content. */


/* V18.7 — homepage weekly menu preview */
.home-weekly-preview{
  margin-top:22px;
  width:min(100%,680px);
}
.home-weekly-preview-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}
.home-weekly-label{
  color:var(--green-dark);
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
}
.home-weekly-viewall{
  color:var(--green-dark);
  font-size:12px;
  font-weight:850;
  text-decoration:none;
}
.home-weekly-viewall:hover{text-decoration:underline}

.home-meal-marquee{
  position:relative;
  width:100%;
  overflow:hidden;
  padding:6px 0 76px;
  margin-bottom:-66px;
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
}
.home-meal-track{
  display:flex;
  width:max-content;
  gap:10px;
  animation:kavoeats-meal-marquee 34s linear infinite;
}
.home-meal-marquee:hover .home-meal-track,
.home-meal-marquee:focus-within .home-meal-track{
  animation-play-state:paused;
}
@keyframes kavoeats-meal-marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.home-meal-chip{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  width:246px;
  min-height:80px;
  padding:8px 12px 8px 8px;
  border:1px solid rgba(24,50,41,.11);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 18px rgba(24,50,41,.08);
  outline:none;
  cursor:default;
}
.home-meal-chip img,
.home-meal-placeholder{
  width:64px;
  height:64px;
  flex:0 0 64px;
  border-radius:12px;
  object-fit:cover;
}
.home-meal-placeholder{
  display:grid;
  place-items:center;
  background:#fff0e8;
  color:var(--orange);
  font-size:23px;
}
.home-meal-chip-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.home-meal-chip-copy strong{
  color:var(--green-dark);
  font-size:14px;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.home-meal-day{
  color:var(--orange);
  font-size:10px;
  font-weight:900;
  letter-spacing:.09em;
}
.home-meal-popover{
  position:absolute;
  left:8px;
  right:8px;
  top:calc(100% + 8px);
  z-index:30;
  padding:12px;
  border-radius:14px;
  background:var(--green-dark);
  color:#fff;
  box-shadow:0 14px 30px rgba(24,50,41,.24);
  opacity:0;
  visibility:hidden;
  transform:translateY(-5px);
  transition:opacity .15s ease,transform .15s ease,visibility .15s ease;
  pointer-events:none;
}
.home-meal-popover strong{font-size:13px}
.home-meal-popover p{
  margin:5px 0 8px;
  font-size:11px;
  line-height:1.35;
  color:rgba(255,255,255,.84);
}
.home-meal-nutrition{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.home-meal-nutrition span{
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  font-size:10px;
  font-weight:800;
}
.home-meal-chip:hover .home-meal-popover,
.home-meal-chip:focus .home-meal-popover,
.home-meal-chip:focus-within .home-meal-popover{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.home-menu-empty{
  display:block;
  padding:13px 15px;
  border:1px solid rgba(24,50,41,.12);
  border-radius:14px;
  background:#fff;
  color:var(--green-dark);
  font-weight:800;
  text-decoration:none;
}
.hero-actions-single{
  margin-top:14px;
}
.hero-actions-single .button-green{
  background:var(--green)!important;
  color:#fff!important;
  border-color:var(--green)!important;
}
@media(prefers-reduced-motion:reduce){
  .home-meal-track{animation:none}
  .home-meal-marquee{overflow-x:auto}
}
@media(max-width:700px){
  .home-weekly-preview{
    margin-top:18px;
    width:100%;
  }
  .home-weekly-preview-head{
    align-items:baseline;
  }
  .home-weekly-label{font-size:13px}
  .home-weekly-viewall{font-size:11px}
  .home-meal-chip{
    width:228px;
    min-height:76px;
  }
  .home-meal-chip img,
  .home-meal-placeholder{
    width:60px;
    height:60px;
    flex-basis:60px;
  }
  .home-meal-chip-copy strong{font-size:14px}
  .home-meal-day{font-size:11px}
  .home-meal-marquee{
    padding-bottom:72px;
    margin-bottom:-62px;
  }
}


/* V19 — capacity, inventory and production */
.capacity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.capacity-card.capacity-sold{border:2px solid rgba(190,50,50,.35)}
.capacity-card.capacity-near{border:2px solid rgba(225,145,40,.35)}
.capacity-meter{height:9px;border-radius:999px;background:rgba(24,50,41,.08);overflow:hidden;margin:12px 0 8px}
.capacity-meter span{display:block;height:100%;background:var(--green);border-radius:inherit}
.capacity-sold .capacity-meter span{background:#b33}
.capacity-near .capacity-meter span{background:#d68b22}
.capacity-form{display:grid;gap:10px;margin-top:14px}
.capacity-form label,.admin-stack-form label{display:grid;gap:5px;font-weight:800}
.check-row{display:flex!important;align-items:center;gap:8px!important}
.admin-stack-form{display:grid;gap:12px}
.inventory-adjust-form{display:grid;grid-template-columns:90px 115px minmax(120px,1fr) auto;gap:6px;align-items:center}
.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.recipe-grid label{display:grid;gap:5px;font-weight:800}
.forecast-day{margin-top:16px}
.forecast-ingredients{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.forecast-ingredient{display:grid;gap:3px;padding:12px;border-radius:14px;background:rgba(24,50,41,.04)}
.forecast-ingredient.shortage{background:rgba(190,50,50,.08);border:1px solid rgba(190,50,50,.22)}
.forecast-ingredient b{color:#a22}
.sold-out-badge,.spots-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;vertical-align:middle;margin-left:6px}
.sold-out-badge{background:#f5dddd;color:#922}
.spots-badge{background:#fff0d5;color:#8b5b00}
@media(max-width:800px){
 .capacity-grid{grid-template-columns:1fr}
 .inventory-adjust-form{grid-template-columns:1fr}
 .recipe-grid,.forecast-ingredients{grid-template-columns:1fr}
}


/* V20 — growth, checkout adjustments and refunds */
.checkout-options-form{display:grid;gap:14px;margin-top:14px}
.tip-options{display:flex;flex-wrap:wrap;gap:8px}
.tip-options label,.credit-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid rgba(24,50,41,.13);border-radius:999px;font-weight:800}
.custom-tip-input{max-width:180px;margin-top:8px}
.referral-code-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;margin:12px 0}
.referral-code-row code{padding:10px 12px;border-radius:10px;background:rgba(24,50,41,.06);font-weight:900}
.refund-inline-form{display:grid;grid-template-columns:90px 130px minmax(120px,1fr) auto;gap:5px;min-width:450px}
.refund-inline-form input,.refund-inline-form select{min-width:0}
@media(max-width:800px){.referral-code-row{grid-template-columns:1fr}.refund-inline-form{grid-template-columns:1fr;min-width:220px}}


/* V21 — customer experience, support, reviews and final reports */
.support-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:22px;align-items:start}
.review-rating-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.customer-review-row{display:grid;gap:7px;padding:14px 0;border-bottom:1px solid rgba(24,50,41,.09)}
.customer-review-row:last-child{border-bottom:0}
.customer-review-row small{display:block;color:var(--muted)}
.review-stars{letter-spacing:.08em;color:#d88a20;font-weight:900}
.review-response{padding:10px 12px;border-radius:12px;background:rgba(24,50,41,.05)}
.ticket-list{display:grid;gap:8px}
.ticket-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid rgba(24,50,41,.1);border-radius:14px;text-decoration:none;color:inherit}
.ticket-row small{display:block;margin-top:3px;color:var(--muted)}
.ticket-thread-shell{max-width:920px}
.ticket-thread{display:grid;gap:12px;margin:18px 0}
.ticket-message{max-width:82%;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid rgba(24,50,41,.1);box-shadow:0 5px 16px rgba(24,50,41,.05)}
.ticket-message.from-team{margin-right:auto;background:rgba(32,89,69,.07)}
.ticket-message.from-customer{margin-left:auto}
.ticket-message.internal-note{max-width:100%;background:#fff4d8;border-style:dashed}
.ticket-message-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:6px}
.ticket-message-meta span{color:var(--muted)}
.ticket-message p{margin:0;white-space:normal;line-height:1.5}
.admin-ticket-thread{max-height:65vh;overflow:auto;padding-right:5px}
.priority-pill{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900;background:rgba(24,50,41,.07)}
.priority-pill.urgent{background:#f6d5d5;color:#8d2020}.priority-pill.high{background:#ffe7c2;color:#8a5700}
.review-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.review-admin-card blockquote{margin:12px 0;padding:12px 14px;border-left:3px solid var(--green);background:rgba(24,50,41,.04);border-radius:0 12px 12px 0}
.review-score-row{display:flex;gap:18px;flex-wrap:wrap}
.home-reviews-section{padding:72px 0;background:#fff}
.home-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.home-review-card{padding:20px;border:1px solid rgba(24,50,41,.1);border-radius:20px;background:#fffaf1;box-shadow:0 8px 24px rgba(24,50,41,.06)}
.home-review-card p{font-size:16px;line-height:1.55}
.home-review-card footer{display:grid;gap:2px}.home-review-card footer span{font-size:12px;color:var(--muted)}
.report-list-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(24,50,41,.08)}
.report-list-row:last-child{border-bottom:0}
.account-care-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
@media(max-width:850px){.support-layout,.review-admin-grid{grid-template-columns:1fr}.home-review-grid{grid-template-columns:1fr}.ticket-message{max-width:94%}}
@media(max-width:560px){.review-rating-grid{grid-template-columns:1fr}.ticket-message{max-width:100%}.ticket-message-meta{display:grid;gap:2px}}


/* V21.1 — homepage mobile layout correction
   Prevent the dynamic menu marquee from widening the hero grid,
   keep the CTA inside the viewport, and size the sample meal card for phones. */
.hero-grid,
.hero-content,
.home-weekly-preview,
.home-meal-marquee{
  min-width:0;
}
.hero-content{width:100%}
.home-weekly-preview{max-width:100%}
.home-meal-marquee{max-width:100%;contain:layout paint}

@media(max-width:700px){
  .hero{
    overflow:hidden;
  }
  .hero-grid{
    width:100%;
    min-width:0;
    gap:34px;
    padding-block:34px 54px;
  }
  .hero-content{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow:visible;
  }
  .home-weekly-preview{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow:hidden;
  }
  .home-meal-marquee{
    width:100%;
    max-width:100%;
    min-width:0;
    padding:6px 0 8px;
    margin-bottom:0;
    overflow:hidden;
    mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  }

  /* On touch screens the meal description tooltip must not cover the CTA. */
  .home-meal-popover{
    display:none!important;
  }

  .hero-actions-single{
    margin-top:18px;
    width:100%;
  }
  .hero-actions-single .button{
    width:auto!important;
    max-width:100%;
    min-height:48px;
    padding:0 22px;
    align-self:flex-start;
  }

  .benefits{
    width:100%;
    max-width:100%;
    gap:8px 16px;
    overflow:hidden;
  }

  /* Keep the sample meal visual completely inside a phone viewport. */
  .hero-visual{
    width:min(100%,360px);
    max-width:360px;
    min-width:0;
    margin:8px auto 0;
  }
  .photo-card{
    width:100%;
    aspect-ratio:1.12 / 1;
    max-height:330px;
  }
  .hero-photo{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:68% center;
  }
  .today-card{
    left:10px;
    right:10px;
    bottom:10px;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:10px 11px;
    border-radius:18px;
  }
  .today-info{gap:9px;min-width:0}
  .today-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:12px;
    font-size:18px;
  }
  .today-title{
    font-size:13px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .micro{font-size:8px}
  .delivery-time{
    flex:none;
    padding:7px 9px;
    font-size:9px;
  }
}

@media(max-width:390px){
  .hero-visual{width:calc(100% - 8px);max-width:340px}
  .delivery-time{font-size:8px;padding:6px 7px}
}


/* V21.2 — mobile hero side spacing
   Give the top/home hero the same comfortable inset seen in lower sections. */
@media(max-width:700px){
  .hero > .container.hero-grid{
    width:auto;
    max-width:none;
    margin-left:20px;
    margin-right:20px;
  }

  .hero-content,
  .home-weekly-preview,
  .hero-actions-single,
  .benefits{
    max-width:100%;
  }

  .hero h1,
  .hero-copy{
    max-width:100%;
    overflow-wrap:break-word;
  }
}

@media(max-width:390px){
  .hero > .container.hero-grid{
    margin-left:18px;
    margin-right:18px;
  }
}


/* V21.3 — mobile meal strip touch details and automatic restart */
.home-meal-marquee.is-touch-paused .home-meal-track{
  animation-play-state:paused!important;
}

.home-meal-ingredients{
  padding-top:7px;
  border-top:1px solid rgba(255,255,255,.14);
}

@media(max-width:700px){
  /* V21.1 hid touch popovers; V21.3 restores them as a phone-friendly detail sheet. */
  .home-meal-popover{
    display:block!important;
    position:fixed;
    left:16px;
    right:16px;
    top:auto;
    bottom:18px;
    z-index:1500;
    max-height:min(52vh,420px);
    overflow:auto;
    padding:16px;
    border-radius:18px;
    opacity:0;
    visibility:hidden;
    transform:translateY(12px);
    pointer-events:none;
    box-shadow:0 20px 55px rgba(10,40,29,.34);
  }

  .home-meal-chip.is-open .home-meal-popover{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }

  .home-meal-popover strong{font-size:15px}
  .home-meal-popover p{
    margin:7px 0 10px;
    font-size:13px;
    line-height:1.5;
  }
  .home-meal-nutrition span{
    padding:6px 9px;
    font-size:11px;
  }

  /* Focus from a touch must not freeze the marquee forever.
     Only the explicit timed pause class controls touch pausing. */
  .home-meal-marquee:focus-within .home-meal-track{
    animation-play-state:running;
  }
  .home-meal-marquee.is-touch-paused .home-meal-track{
    animation-play-state:paused!important;
  }
}


/* V21.4 — compact mobile meal detail card outside the animated strip */
.home-meal-touch-detail{display:none}

@media(max-width:700px){
  /* Never render the per-chip popover inside the moving/transformed marquee on phones. */
  .home-meal-chip .home-meal-popover,
  .home-meal-chip.is-open .home-meal-popover,
  .home-meal-chip:focus .home-meal-popover,
  .home-meal-chip:focus-within .home-meal-popover{
    display:none!important;
    opacity:0!important;
    visibility:hidden!important;
  }

  /* The explicit pause class is the ONLY thing that may pause the strip on touch. */
  .home-meal-marquee .home-meal-track{
    animation-play-state:running!important;
  }
  .home-meal-marquee.is-touch-paused .home-meal-track{
    animation-play-state:paused!important;
  }

  .home-meal-touch-detail{
    position:relative;
    display:block;
    width:min(100%,360px);
    max-width:360px;
    max-height:190px;
    margin:10px 0 2px;
    padding:13px 40px 13px 14px;
    overflow:hidden;
    border-radius:16px;
    background:var(--green-dark);
    color:#fff;
    box-shadow:0 12px 28px rgba(24,50,41,.22);
    opacity:0;
    transform:translateY(-4px);
    transition:opacity .15s ease,transform .15s ease;
  }
  .home-meal-touch-detail[hidden]{
    display:none!important;
  }
  .home-meal-touch-detail.is-visible{
    opacity:1;
    transform:translateY(0);
  }
  .home-meal-touch-scroll{
    max-height:160px;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding-right:2px;
  }
  .home-meal-touch-scroll > strong{
    display:block;
    margin-bottom:6px;
    font-size:14px;
  }
  .home-meal-touch-scroll p{
    margin:6px 0 8px;
    color:rgba(255,255,255,.86);
    font-size:12px;
    line-height:1.45;
  }
  .home-meal-touch-scroll .home-meal-ingredients{
    padding-top:6px;
    border-top:1px solid rgba(255,255,255,.14);
  }
  .home-meal-touch-scroll .home-meal-nutrition{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  .home-meal-touch-scroll .home-meal-nutrition span{
    display:inline-flex;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:10px;
    font-weight:800;
  }
  .home-meal-touch-close{
    position:absolute;
    top:7px;
    right:8px;
    z-index:2;
    width:28px;
    height:28px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    color:#fff;
    font-size:20px;
    line-height:1;
    cursor:pointer;
  }
}


/* V21.8 plan service-day clarity */
.plan-service-days{margin:.35rem 0 .8rem;font-size:.98rem;line-height:1.5}
.plan-day-summary{margin-top:10px}
.subscription-service-preview{margin-top:10px;line-height:1.55}
.weekday-checks{display:flex;flex-wrap:wrap;gap:10px}
.weekday-checks label{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid rgba(23,63,52,.16);border-radius:12px;background:#fff;font-weight:700;cursor:pointer}
.weekday-checks input{width:18px;height:18px}

/* V22 white-label theme hooks. Defaults match the existing KavoEats theme. */
body{background-color:var(--brand-background,#fffaf1)}
.button-green,.btn-primary{background-color:var(--brand-accent,#72bf44)}
.admin-brand span,.accent{color:var(--brand-primary,#173f34)}

/* V22.1 fixed KavoComp site credit */
.site-credit{margin-top:6px;font-size:12px;line-height:1.4;opacity:.72}
.site-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.site-credit a:hover{opacity:.85}

/* V23 primary in-app notification bell */
.admin-notification-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #e1dbd1;border-radius:12px;background:#fff;text-decoration:none;font-size:19px;flex:0 0 auto}
.admin-notification-bell span{position:absolute;top:-6px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#b83b2e;color:#fff;font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center;border:2px solid #fff}
@media(max-width:900px){.admin-notification-bell{margin-left:auto}.admin-mobile-toggle{margin-left:0}}

/* V24 multi-menu ZIP assignment */
.menu-zip-groups{display:grid;gap:18px;margin-top:18px}
.menu-zip-group{border:1px solid rgba(18,62,51,.12);border-radius:16px;padding:14px;background:#fff}
.menu-zip-group h3{margin:0 0 12px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.menu-zip-group h3 span{font-size:.78rem;color:#63736d;font-weight:700}
.menu-zip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:9px}
.menu-zip-option{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;border:1px solid rgba(18,62,51,.11);border-radius:12px;padding:10px;background:#fff;cursor:pointer}
.menu-zip-option:has(input:checked){border-color:var(--brand-accent,#72bf44);box-shadow:0 0 0 1px var(--brand-accent,#72bf44)}
.menu-zip-option input{width:18px;height:18px}.menu-zip-option span{min-width:0}.menu-zip-option strong,.menu-zip-option small{display:block}.menu-zip-option small{margin-top:2px;color:#63736d;line-height:1.25}.menu-zip-option a{font-size:.78rem;font-weight:800}
@media(max-width:620px){.menu-zip-grid{grid-template-columns:1fr}.menu-zip-option{grid-template-columns:auto 1fr auto}}
.menu-zip-group-select{border:0;background:transparent;color:#0c6b47;font:inherit;font-size:.78rem;font-weight:800;text-decoration:underline;cursor:pointer;padding:0}

/* V25.3 subscribe mobile continuation repair */
.subscription-primary-continue{display:block!important;width:100%!important;margin:18px 0 14px!important;visibility:visible!important;opacity:1!important}
.subscription-start-help{display:block!important}
@media(max-width:720px){.subscription-primary-continue{min-height:54px;font-size:16px}}


/* V25.4 ZIP-first subscription flow */
.zip-first-field{margin-bottom:.85rem}
.zip-supported-notice{display:flex;flex-direction:column;gap:.2rem;margin:.5rem 0 .75rem}
.zip-recheck-button{margin-bottom:1.35rem}
.subscription-plan-title{margin-top:1.35rem}
.zip-needs-recheck .zip-supported-notice{opacity:.55}
.zip-needs-recheck::after{
  content:"ZIP changed — re-check availability before continuing.";
  display:block;margin:.8rem 0 0;padding:.85rem 1rem;border-radius:14px;
  background:#fff6dc;color:#725b12;font-weight:700;
}
@media(max-width:720px){
  .zip-supported-notice{font-size:.96rem}
  .zip-recheck-button,.subscription-primary-continue{width:100%}
}


/* V25.5 Plans page mobile compaction
   Keep the first plan visible much earlier without changing desktop layout. */
@media(max-width:720px){
  .plans-page-hero{
    padding:24px 0 24px;
  }
  .plans-page-hero .page-hero-inner{
    max-width:none;
  }
  .plans-page-hero .label{
    margin-bottom:8px;
    font-size:11px;
    letter-spacing:.16em;
  }
  .plans-page-hero h1{
    margin-top:8px;
    max-width:560px;
    font-size:clamp(38px,11vw,48px);
    line-height:1;
    letter-spacing:-.045em;
  }
  .plans-page-hero p{
    margin-top:14px;
    max-width:560px;
    font-size:15px;
    line-height:1.48;
  }
  .plans-section{
    padding-block:28px 44px;
  }
  .plans{
    margin-top:0;
    gap:16px;
  }
  .plan{
    padding:24px;
    border-radius:28px;
  }
  .plan h3{
    margin-top:10px;
    font-size:27px;
  }
  .price{
    margin-top:18px;
  }
  .price strong{
    font-size:46px;
  }
  .features{
    margin-top:20px;
  }
  .plan .button{
    margin-top:22px;
  }
}
@media(max-width:390px){
  .plans-page-hero{padding:20px 0 21px}
  .plans-page-hero h1{font-size:36px}
  .plans-page-hero p{font-size:14px;line-height:1.42}
  .plans-section{padding-top:24px}
}


/* V25.6 Home ZIP menu finder */
.home-menu-finder-section{
  padding:72px 0;
  background:var(--cream-deep);
}
.home-menu-finder{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);
  gap:54px;
  align-items:center;
  padding:42px 46px;
  border:1px solid rgba(24,50,41,.10);
  border-radius:34px;
  background:#fffaf1;
  box-shadow:0 24px 60px rgba(29,76,58,.08);
}
.home-menu-finder-copy h2{
  max-width:650px;
  margin:10px 0 0;
  font-size:clamp(38px,5vw,62px);
  line-height:.98;
  letter-spacing:-.055em;
}
.home-menu-finder-copy>p:last-child{
  max-width:650px;
  margin:18px 0 0;
  color:var(--muted);
  font-weight:650;
  line-height:1.65;
}
.home-menu-finder-form{
  padding:24px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(24,50,41,.11);
  box-shadow:0 14px 36px rgba(29,76,58,.07);
}
.home-menu-finder-form label,
.menu-inline-zip label{
  display:block;
  margin-bottom:9px;
  font-size:13px;
  font-weight:900;
}
.home-menu-finder-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
}
.home-menu-finder-controls input,
.menu-inline-zip input{
  min-width:0;
  width:100%;
  padding:14px 15px;
  border:1px solid rgba(24,50,41,.18);
  border-radius:14px;
  background:#fff;
  color:var(--ink);
  font:inherit;
}
.home-menu-finder-controls .button{
  white-space:nowrap;
}
.home-menu-finder-form small{
  display:block;
  margin-top:10px;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
  font-weight:650;
}
.menu-lookup-error{max-width:700px;margin:0 auto}
.menu-inline-zip{margin-top:18px;padding:20px;border-radius:20px;background:#fff}
.menu-inline-zip>div{display:grid;grid-template-columns:1fr auto;gap:10px}

@media(max-width:820px){
  .home-menu-finder-section{padding:34px 0 42px}
  .home-menu-finder{
    grid-template-columns:1fr;
    gap:24px;
    padding:28px 24px;
    border-radius:28px;
  }
  .home-menu-finder-copy h2{
    font-size:clamp(36px,10.5vw,48px);
  }
  .home-menu-finder-copy>p:last-child{
    margin-top:13px;
    font-size:15px;
    line-height:1.5;
  }
}
@media(max-width:520px){
  .home-menu-finder{padding:24px 18px}
  .home-menu-finder-form{padding:18px}
  .home-menu-finder-controls,
  .menu-inline-zip>div{grid-template-columns:1fr}
  .home-menu-finder-controls .button,
  .menu-inline-zip .button{width:100%}
}


/* V25.7 guaranteed Subscribe Continue placement */
.subscription-continue-direct{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:54px!important;
  margin:14px 0 8px!important;
  position:relative!important;
  z-index:2!important;
  visibility:visible!important;
  opacity:1!important;
}
@media(max-width:720px){
  .subscription-continue-direct{
    min-height:56px!important;
    font-size:17px!important;
    border-radius:16px!important;
  }
  .subscription-start-help{
    margin-top:4px!important;
  }
}


/* V25.8 Notification Center mobile containment + layout */
.notification-center-card{
  min-width:0;
  overflow:hidden;
}
.notification-center-list,
.notification-center-row,
.notification-center-row>div{
  min-width:0;
  max-width:100%;
}
.notification-center-row{
  align-items:flex-start;
}
.notification-center-row>div:first-child{
  flex:1 1 auto;
  overflow:hidden;
}
.notification-center-row strong{
  overflow-wrap:anywhere;
  word-break:normal;
}
.notification-center-row>div:first-child>span{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
  line-height:1.4;
}
.notification-row-actions{
  flex:0 0 auto;
  margin-top:0;
  align-items:flex-start;
}
.notification-row-actions form{
  margin:0;
}
.notification-row-actions .button{
  margin-top:0;
  white-space:nowrap;
}

@media(max-width:760px){
  .admin-page-head{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .admin-page-head>div,
  .admin-page-head form{
    min-width:0;
    max-width:100%;
  }
  .admin-page-head h1,
  .admin-page-head .muted{
    overflow-wrap:anywhere;
  }
  .notification-center-card{
    padding:16px;
    border-radius:20px;
  }
  .notification-center-row{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    width:100%;
    padding:14px;
    box-sizing:border-box;
  }
  .notification-center-row strong{
    font-size:1rem;
    line-height:1.25;
  }
  .notification-center-row>div:first-child>span{
    font-size:.82rem;
    margin-top:5px;
  }
  .notification-row-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
  }
  .notification-row-actions>a:only-child,
  .notification-row-actions>form:only-child{
    grid-column:1/-1;
  }
  .notification-row-actions form{
    width:100%;
  }
  .notification-row-actions .button{
    width:100%!important;
    min-width:0;
    min-height:44px;
    padding:0 12px;
  }
}
@media(max-width:390px){
  .notification-center-card{padding:12px}
  .notification-center-row{padding:12px}
}


/* V26.0 direct-registration ZIP-first gate */
.registration-zip-change-form{margin:10px 0 0}
.registration-zip-change-form .button{width:100%;margin-top:0}

/* V26.1 human verification */
.human-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.human-verification-block{display:grid;gap:7px;margin:14px 0}
.human-verification-block small{color:var(--muted);font-size:11px;font-weight:650;line-height:1.4}
.human-verification-block .cf-turnstile{max-width:100%;overflow:hidden}

/* V26.2 visible reCAPTCHA v2 checkbox */
.human-verification-warning{display:grid;gap:4px;padding:14px 16px;margin:14px 0;border:1px solid #d8b7ad;border-radius:14px;background:#fff4f0}.human-verification-warning span{font-size:12px}@media(max-width:360px){.human-verification-block .g-recaptcha{transform:scale(.90);transform-origin:left top;margin-bottom:-8px}}


/* V26.3 — compact public mobile pages
   Goal: remove oversized vertical gaps/headlines so the first actionable card/content
   appears in the initial mobile viewport. Admin panel is intentionally excluded. */
@media(max-width:720px){

  body:not(.admin-body) .page-hero{
    padding:24px 0 22px!important;
  }
  body:not(.admin-body) .page-hero-inner{
    max-width:none;
  }
  body:not(.admin-body) .page-hero .label{
    margin-bottom:6px;
    font-size:11px;
    line-height:1.2;
    letter-spacing:.16em;
  }
  body:not(.admin-body) .page-hero h1{
    margin-top:8px!important;
    max-width:620px;
    font-size:clamp(36px,10.2vw,46px)!important;
    line-height:1!important;
    letter-spacing:-.045em;
  }
  body:not(.admin-body) .page-hero p{
    margin-top:14px!important;
    max-width:620px;
    font-size:15px!important;
    line-height:1.48!important;
  }

  body:not(.admin-body) .content-section{
    padding:28px 0 42px!important;
  }

  body:not(.admin-body) .form-card{
    padding:22px 18px!important;
    border-radius:26px;
  }
  body:not(.admin-body) .form-title{
    margin-bottom:16px;
    font-size:30px;
    line-height:1.05;
  }
  body:not(.admin-body) .field{
    gap:6px;
  }
  body:not(.admin-body) .field input,
  body:not(.admin-body) .field textarea,
  body:not(.admin-body) .field select{
    min-height:50px;
    padding-top:12px;
    padding-bottom:12px;
  }
  body:not(.admin-body) .field-help,
  body:not(.admin-body) .field small{
    margin-top:4px;
    line-height:1.4;
  }

  /* Subscribe / ZIP-first page */
  body:not(.admin-body) .subscription-layout{
    gap:18px;
  }
  body:not(.admin-body) .subscription-form{
    margin-top:0;
  }
  body:not(.admin-body) .zip-first-field{
    margin-bottom:.55rem;
  }
  body:not(.admin-body) .zip-supported-notice{
    margin:.4rem 0 .6rem;
    padding:13px 14px;
  }
  body:not(.admin-body) .zip-recheck-button{
    margin-bottom:1rem;
  }
  body:not(.admin-body) .subscription-plan-title{
    margin-top:1rem;
  }
  body:not(.admin-body) .subscription-continue-direct{
    margin:10px 0 6px!important;
  }
  body:not(.admin-body) .subscription-service-preview{
    margin-top:8px;
  }

  /* Stand-alone weekly menu page */
  body:not(.admin-body) .menu-section{
    padding:30px 0 44px!important;
  }
  body:not(.admin-body) .menu-list{
    margin-top:20px;
    border-radius:24px;
  }
  body:not(.admin-body) .menu-row{
    grid-template-columns:76px minmax(0,1fr) auto;
    gap:12px;
    padding:17px 16px;
  }
  body:not(.admin-body) .meal-name{
    font-size:16px;
    line-height:1.25;
  }
  body:not(.admin-body) .meal-side{
    font-size:12px;
    line-height:1.4;
  }
  body:not(.admin-body) .menu-thumb{
    width:54px;
    height:54px;
    border-radius:12px;
    object-fit:cover;
  }
  body:not(.admin-body) .chef-pill{
    padding:8px 10px;
    font-size:10px;
  }

  /* Home ZIP menu finder */
  body:not(.admin-body) .home-menu-finder-section{
    padding:24px 0 34px!important;
  }
  body:not(.admin-body) .home-menu-finder{
    gap:18px!important;
    padding:22px 18px!important;
    border-radius:24px!important;
  }
  body:not(.admin-body) .home-menu-finder-copy h2{
    margin-top:7px;
    font-size:clamp(34px,9.7vw,44px)!important;
    line-height:1!important;
  }
  body:not(.admin-body) .home-menu-finder-copy>p:last-child{
    margin-top:10px!important;
    font-size:14px!important;
    line-height:1.45!important;
  }
  body:not(.admin-body) .home-menu-finder-form{
    padding:16px!important;
    border-radius:20px!important;
  }

  /* Login / create-account / ZIP-check cards */
  body:not(.admin-body) .login-shell{
    margin-top:0;
  }
  body:not(.admin-body) .login-card{
    padding:22px 18px!important;
    border-radius:26px!important;
  }
  body:not(.admin-body) .login-card h2{
    font-size:32px!important;
    line-height:1.05;
    margin-bottom:10px;
  }
  body:not(.admin-body) .login-card .muted{
    line-height:1.5;
  }
}

@media(max-width:390px){
  body:not(.admin-body) .page-hero{
    padding:20px 0 19px!important;
  }
  body:not(.admin-body) .page-hero h1{
    font-size:34px!important;
  }
  body:not(.admin-body) .page-hero p{
    font-size:14px!important;
    line-height:1.43!important;
  }
  body:not(.admin-body) .content-section{
    padding-top:22px!important;
  }
  body:not(.admin-body) .menu-row{
    grid-template-columns:68px minmax(0,1fr);
  }
  body:not(.admin-body) .menu-row .menu-thumb,
  body:not(.admin-body) .menu-row .chef-pill{
    grid-column:2;
    justify-self:start;
  }
}


/* V26.4 — homepage wording + compact How It Works mobile cards */
@media(max-width:720px){
  #how-it-works.dark-section{
    padding:34px 0 38px!important;
  }
  #how-it-works .section-heading{
    gap:14px;
    margin-bottom:0;
  }
  #how-it-works .section-heading h2{
    font-size:clamp(34px,9.5vw,44px)!important;
    line-height:1!important;
    margin-top:8px;
  }
  #how-it-works .section-intro{
    font-size:14px!important;
    line-height:1.45!important;
    margin-top:10px!important;
  }
  #how-it-works .steps{
    grid-template-columns:1fr!important;
    gap:12px!important;
    margin-top:24px!important;
  }
  #how-it-works .step{
    padding:16px 17px!important;
    border-radius:20px!important;
  }
  #how-it-works .step-top{
    justify-content:flex-start!important;
    gap:10px!important;
  }
  #how-it-works .step-icon{
    width:36px!important;
    height:36px!important;
    border-radius:11px!important;
    font-size:14px!important;
    flex:0 0 36px;
  }
  #how-it-works .step-number{
    display:none!important;
  }
  #how-it-works .step h3{
    display:inline-block;
    margin:0!important;
    font-size:18px!important;
    line-height:1.2!important;
  }
  #how-it-works .step-top + h3{
    margin-top:-31px!important;
    margin-left:48px!important;
    min-height:36px;
    display:flex;
    align-items:center;
  }
  #how-it-works .step p{
    margin:8px 0 0 48px!important;
    font-size:13px!important;
    line-height:1.45!important;
  }

  .home-menu-finder-copy h2{
    font-size:clamp(32px,9vw,40px)!important;
    line-height:1.02!important;
  }
}
@media(max-width:390px){
  #how-it-works.dark-section{padding-top:30px!important}
  #how-it-works .step{padding:14px 15px!important}
  #how-it-works .step-icon{width:34px!important;height:34px!important;flex-basis:34px}
  #how-it-works .step-top + h3{margin-left:44px!important;margin-top:-29px!important;min-height:34px}
  #how-it-works .step p{margin-left:44px!important}
}


/* V26.5 — Admin desktop header compact button grid
   Desktop only. Mobile hamburger behavior stays unchanged. */
@media(min-width:901px){
  .admin-topbar{
    min-height:0!important;
    padding:10px 18px!important;
    align-items:flex-start!important;
    background:#fff!important;
  }

  .admin-topbar-inner{
    width:min(1540px,calc(100% - 8px))!important;
    margin:0 auto!important;
    display:grid!important;
    grid-template-columns:auto auto minmax(0,1fr)!important;
    align-items:start!important;
    gap:10px 12px!important;
  }

  .admin-brand{
    align-self:start!important;
    padding-top:4px;
    gap:7px!important;
  }
  .admin-brand img{
    width:auto!important;
    height:34px!important;
    max-width:126px!important;
    object-fit:contain;
  }
  .admin-brand span{
    padding:5px 8px!important;
    border-radius:8px!important;
    font-size:9px!important;
    letter-spacing:.06em!important;
  }

  .admin-notification-bell{
    position:relative!important;
    inset:auto!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    display:grid!important;
    place-items:center!important;
    margin:0!important;
    border:1px solid rgba(24,50,41,.13)!important;
    border-radius:10px!important;
    background:#fff!important;
    text-decoration:none!important;
    font-size:20px!important;
    line-height:1!important;
  }
  .admin-notification-bell span{
    position:absolute!important;
    right:-5px!important;
    top:-6px!important;
    min-width:18px!important;
    height:18px!important;
    padding:0 5px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:999px!important;
    background:#b93a2e!important;
    color:#fff!important;
    font-size:10px!important;
    font-weight:900!important;
  }

  .admin-nav-desktop{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(94px,1fr))!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    white-space:normal!important;
    align-items:stretch!important;
  }

  .admin-nav-desktop a{
    min-width:0!important;
    min-height:34px!important;
    padding:7px 9px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(24,50,41,.12)!important;
    border-radius:9px!important;
    background:#fffaf5!important;
    color:var(--green-dark)!important;
    text-align:center!important;
    text-decoration:none!important;
    font-size:10px!important;
    font-weight:900!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }

  .admin-nav-desktop a:hover{
    background:#f2f7f1!important;
    border-color:rgba(24,50,41,.22)!important;
  }

  .admin-nav-desktop a.active{
    background:var(--green-dark)!important;
    border-color:var(--green-dark)!important;
    color:#fff!important;
    box-shadow:0 5px 14px rgba(18,63,45,.13)!important;
  }

  .admin-main{
    padding-top:28px!important;
  }
}

/* Slightly tighter grid on common laptop widths. */
@media(min-width:901px) and (max-width:1350px){
  .admin-topbar-inner{
    grid-template-columns:auto auto minmax(0,1fr)!important;
  }
  .admin-nav-desktop{
    grid-template-columns:repeat(auto-fit,minmax(86px,1fr))!important;
    gap:5px!important;
  }
  .admin-nav-desktop a{
    min-height:32px!important;
    padding:6px 7px!important;
    font-size:9.5px!important;
  }
  .admin-brand img{
    height:31px!important;
    max-width:112px!important;
  }
}


/* V26.6 — desktop homepage meal preview interaction fix.
   Mobile behavior is intentionally untouched. */
@media(min-width:981px){
  .home-meal-marquee{
    padding:6px 0 92px!important;
    margin-bottom:0!important;
    overflow:hidden!important;
  }
  .home-meal-popover{
    top:calc(100% + 7px)!important;
    bottom:auto!important;
    z-index:80!important;
  }
  .hero-actions-single{
    position:relative!important;
    z-index:100!important;
    margin-top:10px!important;
  }
  .hero-actions-single .button{
    position:relative!important;
    z-index:101!important;
    pointer-events:auto!important;
  }
  .home-weekly-preview{
    position:relative!important;
    z-index:3!important;
  }
}


/* V26.7 desktop public pages — compact only; mobile untouched */
@media(min-width:981px){
  body:not(.admin-body) .page-hero{padding:34px 0 30px!important}
  body:not(.admin-body) .page-hero-inner{max-width:760px!important}
  body:not(.admin-body) .page-hero .label{margin-bottom:6px!important;font-size:10px!important}
  body:not(.admin-body) .page-hero h1{margin-top:7px!important;font-size:clamp(40px,4vw,54px)!important;line-height:.98!important;letter-spacing:-.045em!important}
  body:not(.admin-body) .page-hero p{margin-top:12px!important;font-size:15px!important;line-height:1.48!important}
  body:not(.admin-body) .content-section{padding:32px 0 48px!important}
  body:not(.admin-body) .menu-section{padding:32px 0 50px!important}
  body:not(.admin-body) .plans-section{padding:38px 0 54px!important}
  body:not(.admin-body) .plans{margin-top:24px!important}
  body:not(.admin-body) .page-back-row{margin-top:12px!important;margin-bottom:2px!important}
  .home-meal-chip .home-meal-popover{opacity:0!important;visibility:hidden!important}
  .home-meal-marquee{padding:6px 0 8px!important;margin-bottom:0!important}
  .hero-actions-single{margin-top:15px!important;position:relative!important;z-index:30!important}
  .hero-actions-single .button{pointer-events:auto!important;position:relative!important;z-index:31!important}
}
.home-meal-desktop-floating{position:fixed;z-index:99999;padding:13px 14px;border-radius:14px;background:var(--green-dark);color:#fff;box-shadow:0 16px 38px rgba(24,50,41,.28);pointer-events:none}
.home-meal-desktop-floating[hidden]{display:none!important}
.home-meal-desktop-floating strong{font-size:13px}
.home-meal-desktop-floating p{margin:6px 0 8px;color:rgba(255,255,255,.88);font-size:11px;line-height:1.45}
.home-meal-desktop-floating .home-meal-nutrition{display:flex;gap:6px;flex-wrap:wrap}
.home-meal-desktop-floating .home-meal-nutrition span{padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.12);font-size:10px;font-weight:800}
.menu-row.past{opacity:.58;background:#faf9f5}
.menu-row.past .day-pill{color:#7f8783;background:#eceeea}
.menu-row.current{background:#fff0eb!important}
.menu-row.current .day-pill{background:#ef5a3c!important;color:#fff!important}


/* V26.8 — visible Google Cloud reCAPTCHA checkbox loading state */
.kavoeats-recaptcha-wrap{
  display:grid;
  gap:7px;
  min-height:78px;
  align-items:start;
}
.recaptcha-load-status{
  width:fit-content;
  padding:7px 10px;
  border-radius:10px;
  background:#f3f5f1;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
.recaptcha-load-status.error{
  background:#fff1ed;
  color:#9f3727;
}
.kavoeats-recaptcha-wrap iframe{
  max-width:100%;
}
@media(max-width:360px){
  .kavoeats-recaptcha{
    transform:scale(.90);
    transform-origin:left top;
    margin-bottom:-8px;
  }
}


/* V26.9 — reliable visible checkbox shell */
.kavoeats-recaptcha-shell{
  display:grid;
  gap:8px;
  min-height:82px;
  align-items:start;
}
.kavoeats-recaptcha-shell .g-recaptcha{
  min-height:78px;
}
.kavoeats-recaptcha-shell iframe{
  display:block;
  max-width:100%;
}
.recaptcha-load-status[hidden]{
  display:none!important;
}


/* V27.0 — checkbox must occupy visible space when rendered */
.kavoeats-recaptcha-shell{
  min-height:86px!important;
  display:block!important;
}
.kavoeats-recaptcha-shell .g-recaptcha{
  min-height:78px!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.kavoeats-recaptcha-shell .g-recaptcha > div,
.kavoeats-recaptcha-shell iframe{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.kavoeats-recaptcha-shell .recaptcha-load-status{
  margin-top:8px;
}


/* V27.4 — keep the public mobile hamburger/panel above signup forms */
@media(max-width:900px){
  .site-header{
    position:sticky!important;
    top:0!important;
    z-index:10000!important;
  }
  .mobile-toggle{
    position:relative!important;
    z-index:10002!important;
    pointer-events:auto!important;
  }
  .mobile-panel{
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:var(--mobile-header-height, 92px)!important;
    z-index:10001!important;
    pointer-events:auto!important;
  }
  .mobile-panel[hidden]{
    display:none!important;
  }
  body:not(.admin-body) .page-hero,
  body:not(.admin-body) .content-section,
  .subscription-layout,
  .subscription-form{
    position:relative;
    z-index:auto;
  }
}


/* V27.6 — customer delivery address is support-only after signup */
.locked-address-card{
  border:1px solid rgba(24,50,41,.13);
  border-radius:20px;
  background:#f7f8f3;
  padding:18px;
  display:grid;
  gap:14px;
}
.locked-address-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.locked-address-card-head > div{
  display:grid;
  gap:3px;
}
.locked-kicker{
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.locked-address-lines{
  display:grid;
  gap:5px;
  font-size:15px;
  line-height:1.4;
}
.locked-address-card p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
}
.locked-address-support{
  width:100%;
  justify-content:center;
}


/* V28.0 — Meal Library, weekly patterns and reliable menu/ZIP actions */
.admin-form button,.admin-inline-actions a,.menu-zip-group-select{pointer-events:auto!important;touch-action:manipulation;position:relative;z-index:2}
.meal-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.meal-library-card{border:1px solid rgba(24,50,41,.12);border-radius:20px;background:#fff;overflow:hidden;display:grid;grid-template-columns:110px 1fr;min-height:150px}
.meal-library-card>img{width:110px;height:100%;min-height:150px;object-fit:cover}.meal-library-card.is-parked{opacity:.68}.meal-library-body{padding:16px;display:grid;gap:10px}.meal-library-body h3,.meal-library-body p{margin:0}.meal-library-body p{color:var(--muted);font-size:13px;line-height:1.45}
.weekly-pattern-grid{display:grid;gap:10px;margin:16px 0 20px}.weekly-pattern-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center;border:1px solid rgba(24,50,41,.1);border-radius:15px;padding:11px 13px;background:#fafbf7}.weekly-pattern-row .field{margin:0}.weekly-day{display:grid;gap:2px}.weekly-day small{color:var(--muted)}
.current-week-preview{display:grid;gap:8px}.current-week-row{display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(24,50,41,.09)}.current-week-row>div{display:grid;gap:3px}.current-week-row small{color:var(--muted)}.current-week-row.past{opacity:.55}
@media(max-width:700px){.meal-library-card{grid-template-columns:82px 1fr}.meal-library-card>img{width:82px;min-height:135px}.weekly-pattern-row{grid-template-columns:1fr;gap:7px}.current-week-row{grid-template-columns:105px 1fr;gap:10px}.menu-zip-group-select{padding:5px 0!important}.admin-card-title-row .admin-inline-actions{position:relative;z-index:3}}


/* V28.1 — explicit active weekday controls */
.weekday-toggle-strip{
  display:grid;
  grid-template-columns:repeat(7,minmax(72px,1fr));
  gap:8px;
  margin:18px 0 20px;
}
.weekday-toggle{
  position:relative;
  display:grid;
  place-items:center;
  gap:3px;
  min-height:72px;
  padding:10px 8px;
  border:1px solid rgba(24,50,41,.14);
  border-radius:14px;
  background:#fff;
  cursor:pointer;
  text-align:center;
}
.weekday-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.weekday-toggle span{
  font-size:15px;
  font-weight:900;
  color:var(--green-dark);
}
.weekday-toggle small{
  font-size:11px;
  font-weight:800;
  color:var(--muted);
}
.weekday-toggle.active{
  border-color:var(--green-dark);
  background:#edf6ef;
  box-shadow:inset 0 0 0 1px var(--green-dark);
}
.weekday-toggle.active small{color:var(--green-dark)}
.weekly-pattern-row.inactive-day{
  opacity:.58;
  background:#f5f5f2;
}
.current-week-row.inactive-day-preview{
  opacity:.56;
}
@media(max-width:900px){
  .weekday-toggle-strip{
    grid-template-columns:repeat(4,1fr);
    gap:7px;
  }
  .weekday-toggle{
    min-height:64px;
  }
}
@media(max-width:430px){
  .weekday-toggle-strip{
    grid-template-columns:repeat(3,1fr);
  }
}


/* V28.2 — reliable weekday toggle buttons */
.weekday-toggle-wrap{
  position:relative;
}
.weekday-toggle-input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.weekday-toggle-button{
  width:100%;
  min-height:72px;
  display:grid;
  place-items:center;
  gap:3px;
  padding:10px 8px;
  border:1px solid rgba(24,50,41,.14);
  border-radius:14px;
  background:#fff;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  text-align:center;
}
.weekday-toggle-button span{
  font-size:15px;
  font-weight:900;
  color:var(--green-dark);
}
.weekday-toggle-button small{
  font-size:11px;
  font-weight:800;
  color:var(--muted);
}
.weekday-toggle-button.active{
  border-color:var(--green-dark);
  background:#edf6ef;
  box-shadow:inset 0 0 0 1px var(--green-dark);
}
.weekday-toggle-button.active small{
  color:var(--green-dark);
}
.weekday-toggle-button:active{
  transform:scale(.985);
}


/* V28.4 — Meal Library menu pools + imported nutrition */
.meal-macros{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:9px 0;
}
.meal-macros span,.meal-extra-nutrition span{
  display:inline-flex;
  gap:4px;
  align-items:center;
  padding:6px 9px;
  border-radius:999px;
  background:#f1f5ef;
  font-size:12px;
}
.meal-library-details{
  margin:10px 0;
  border-top:1px solid rgba(24,50,41,.10);
  padding-top:9px;
}
.meal-library-details summary{
  cursor:pointer;
  font-weight:800;
  color:var(--green-dark);
}
.meal-library-details p{
  font-size:13px;
  line-height:1.5;
  overflow-wrap:anywhere;
}
.meal-extra-nutrition{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.assignment-meal-head{
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
}
.assignment-meal-head img{
  width:92px;height:92px;object-fit:cover;border-radius:18px;
}
.assignment-check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:14px 0 20px;
}
.assignment-check{
  display:flex;
  gap:10px;
  align-items:center;
  border:1px solid rgba(24,50,41,.13);
  border-radius:16px;
  padding:13px;
  background:#fff;
}
.assignment-check span{
  display:grid;gap:2px;
}
.assignment-check small{color:var(--muted)}
.assignment-meal-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:14px 0 20px;
}
.assignment-meal-card{
  display:grid;
  grid-template-columns:auto 58px 1fr;
  align-items:center;
  gap:10px;
  padding:10px;
  border:1px solid rgba(24,50,41,.13);
  border-radius:16px;
  background:#fff;
}
.assignment-meal-card:has(input:checked){
  border-color:var(--green-dark);
  box-shadow:inset 0 0 0 1px var(--green-dark);
  background:#f0f7f1;
}
.assignment-meal-card.is-parked{opacity:.58}
.assignment-meal-card img{
  width:58px;height:58px;object-fit:cover;border-radius:12px;
}
.assignment-meal-card span{display:grid;gap:3px}
.assignment-meal-card small{color:var(--muted)}
.import-stat-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.import-stat-grid>div{
  padding:14px;
  border:1px solid rgba(24,50,41,.11);
  border-radius:16px;
  background:#f8f9f5;
  display:grid;
  gap:3px;
}
.import-stat-grid strong{font-size:26px;color:var(--green-dark)}
.import-stat-grid span{font-size:12px;color:var(--muted)}
@media(max-width:900px){
  .assignment-check-grid{grid-template-columns:1fr}
  .assignment-meal-grid{grid-template-columns:1fr}
  .import-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* V28.4R5 — Meal Library image sizing.
   Never stretch a photo to the full text-card height. Keep a compact thumbnail. */
.meal-library-card{grid-template-columns:126px minmax(0,1fr);align-items:start;min-height:0}
.meal-library-card>img,.meal-library-photo-placeholder{width:104px;height:108px;min-height:0;object-fit:cover;align-self:start;margin:16px 0 0 16px;border-radius:14px;background:rgba(24,50,41,.055)}
.meal-library-photo-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;font-size:11px;line-height:1.2;font-weight:850;color:var(--muted)}
@media(max-width:700px){
 .meal-library-card{grid-template-columns:104px minmax(0,1fr)}
 .meal-library-card>img,.meal-library-photo-placeholder{width:80px;height:84px;margin:14px 0 0 14px;border-radius:12px}
 .meal-library-body{padding:14px 14px 16px 10px}
}

/* V28.4R6 — hard compact Meal Library thumbnails + cache-busted admin CSS.
   The old 100%-height rule must never stretch a meal photo to card height. */
.meal-library-card{
  grid-template-columns:116px minmax(0,1fr)!important;
  align-items:start!important;
  min-height:0!important;
}
.meal-library-card>img,
.meal-library-photo-placeholder{
  display:block!important;
  width:92px!important;
  height:92px!important;
  min-width:92px!important;
  min-height:92px!important;
  max-width:92px!important;
  max-height:92px!important;
  object-fit:cover!important;
  align-self:start!important;
  margin:14px 0 0 14px!important;
  border-radius:14px!important;
  overflow:hidden!important;
}
.meal-library-photo-placeholder{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:7px!important;
  font-size:10px!important;
  line-height:1.15!important;
}
@media(max-width:700px){
  .meal-library-card{grid-template-columns:92px minmax(0,1fr)!important}
  .meal-library-card>img,.meal-library-photo-placeholder{
    width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;max-width:68px!important;max-height:68px!important;margin:12px 0 0 12px!important;border-radius:11px!important
  }
  .meal-library-body{padding:12px 12px 15px 6px!important}
}


/* R10.9 — weekly-menu mobile date containment. Keep TODAY/date inside its own column. */
@media(max-width:760px){
  body:not(.admin-body) .menu-row-live{grid-template-columns:82px minmax(0,1fr)!important;column-gap:12px!important;align-items:start!important}
  body:not(.admin-body) .menu-row-live .day-cell{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important;min-width:0!important}
  body:not(.admin-body) .menu-row-live .day-cell .date{display:block!important;margin:0!important;font-size:12px!important;line-height:1.1!important;white-space:nowrap!important}
  body:not(.admin-body) .menu-row-live .day-pill{max-width:100%;box-sizing:border-box}
  body:not(.admin-body) .menu-row-live .meal-copy{min-width:0!important}
  body:not(.admin-body) .menu-row-live .menu-thumb,
  body:not(.admin-body) .menu-row-live .chef-pill{grid-column:2!important;justify-self:start!important}
}
