:root {
  --ink: #171713;
  --cream: #f8f5ec;
  --saffron: #ffb000;
  --olive: #b97800;
}

/* Meal Companion answer controls */
.companion-question-card {
  border: 1px solid rgba(23, 23, 19, .11);
  background: #fff;
  padding: clamp(1.25rem, 3vw, 1.75rem);
}
.companion-question-card > h2 {
  font-family: "Manrope", sans-serif;
  font-size: 1rem;
  line-height: 1.35;
}
.companion-question-card > p {
  margin-top: .4rem;
  color: rgba(23, 23, 19, .52);
  font-size: .72rem;
}
.companion-answer-form { margin-top: 1.25rem; }
.companion-answer-form .checkin-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  margin: 0 0 1rem;
  padding: 0;
  border: 0;
}
.companion-answer-form .checkin-options legend {
  grid-column: 1 / -1;
  margin-bottom: .15rem;
  color: rgba(23, 23, 19, .48);
  font-size: .66rem;
  font-weight: 700;
}
.companion-answer-form .checkin-options label { min-width: 0; }
.companion-answer-form .checkin-options span {
  height: 100%;
  padding: .8rem .9rem .8rem 2.25rem;
}
.companion-answer-form .checkin-options span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: .85rem;
  width: .8rem;
  height: .8rem;
  transform: translateY(-50%);
  border: 1px solid rgba(23, 23, 19, .3);
  border-radius: 50%;
  background: transparent;
}
.companion-answer-form .checkin-options.allows-multiple span::before { border-radius: 1px; }
.companion-answer-form .checkin-options input:checked + span::before {
  border-color: var(--saffron);
  background: var(--saffron);
  box-shadow: inset 0 0 0 3px #fff;
}
.companion-written-answer > span {
  display: block;
  margin-bottom: .45rem;
  font-size: .68rem;
  font-weight: 750;
}
.companion-written-answer textarea {
  display: block;
  width: 100%;
  min-height: 7rem;
  resize: vertical;
  border: 1px solid rgba(23, 23, 19, .16);
  background: transparent;
  padding: .9rem;
  color: inherit;
  font: inherit;
  font-size: .76rem;
}
.companion-answer-form > .app-primary-action { margin-top: .15rem; }
.dark .companion-question-card { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .companion-question-card > p,
.dark .companion-answer-form .checkin-options legend { color: rgba(245,242,233,.5); }
.dark .companion-written-answer textarea,
.dark .companion-answer-form .checkin-options span { border-color: rgba(255,255,255,.14); }
.dark .companion-answer-form .checkin-options span::before { border-color: rgba(245,242,233,.45); }
.dark .companion-answer-form .checkin-options input:checked + span::before { box-shadow: inset 0 0 0 3px #191916; }
@media (max-width: 640px) {
  .companion-answer-form .checkin-options { grid-template-columns: 1fr; }
}

/* Billing theme corrections */
.billing-logo {
  display: block;
  width: 9rem;
  height: 3rem;
}
.billing-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}
.billing-logo-dark { display: none; }
.dark .billing-logo-light { display: none; }
.dark .billing-logo-dark { display: block; }
.dark .billing-duplicate {
  border-color: #6f581f;
  background: #272319;
  color: #f5f2e9;
}
.dark .billing-duplicate p { color: rgba(245, 242, 233, .68); }
.dark .billing-duplicate .material-symbols-rounded { color: #ffb000; }
.dark .billing-duplicate button {
  border-color: #f5f2e9;
  background: #f5f2e9;
  color: #171713;
}

* { box-sizing: border-box; }
html { scroll-padding-top: 6.5rem; scrollbar-gutter: stable; }
body { margin: 0; overflow-x: hidden; }
a { text-decoration: none; }
.material-symbols-rounded { font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24; vertical-align: middle; }
.theme-icon { transition: transform .45s cubic-bezier(.22,.8,.25,1), opacity .25s ease; }
.theme-changing .theme-icon { transform: rotate(180deg) scale(.82); }
.theme-transition *,
.theme-transition *::before,
.theme-transition *::after {
  transition-property: background-color, border-color, color, fill, box-shadow, transform, opacity !important;
  transition-duration: .42s !important;
  transition-timing-function: cubic-bezier(.22,.8,.25,1) !important;
}

.site-header { background: var(--cream); -webkit-backdrop-filter: none; backdrop-filter: none; color: var(--ink); transition: background-color .35s ease, box-shadow .35s ease; }
.site-header:has(.nav-shell.is-scrolled) { background: rgba(248,245,236,.68); box-shadow: inset 0 -1px rgba(23,23,19,.055); -webkit-backdrop-filter: saturate(165%) blur(20px); backdrop-filter: saturate(165%) blur(20px); }
.nav-shell { min-height: 5.4rem; transition: min-height .35s cubic-bezier(.22,.8,.25,1), background-color .25s ease; }
.nav-shell.is-scrolled { min-height: 4.15rem; }
.brand-mark img { transform: none; }
.brand-mark img { transition: max-height .35s cubic-bezier(.22,.8,.25,1); }
.nav-shell.is-scrolled .brand-mark img { max-height: 2.15rem; }
.brand-logo-dark { display: none; }
.site-nav-primary { gap: 1.7rem; }
.site-account-actions { gap: .75rem; }
.nav-link { position: relative; padding: .5rem 0; color: rgba(23, 23, 19, .64); font-size: .84rem; font-weight: 650; transition: color .2s; }
.nav-link:hover { color: var(--ink); }
.nav-link-dark { color: rgba(23,23,19,.62); }
.nav-link-dark:hover, .site-nav-menu[open] summary { color: var(--ink); }
.site-nav-menu { position: relative; }
.site-nav-menu summary { display: flex; align-items: center; gap: .2rem; cursor: pointer; list-style: none; }
.site-nav-menu summary::-webkit-details-marker { display: none; }
.site-nav-menu summary .material-symbols-rounded { font-size: 1rem; transition: transform .2s; }
.site-nav-menu[open] summary .material-symbols-rounded { transform: rotate(180deg); }
.site-nav-menu-panel { position: absolute; top: calc(100% + 1.15rem); left: 50%; width: 22rem; padding: .55rem; border: 1px solid rgba(23,23,19,.1); background: #fff; box-shadow: 0 18px 45px rgba(23,23,19,.13); transform: translateX(-35%); }
.site-nav-menu-panel::before { position: absolute; top: -1.1rem; right: 0; left: 0; height: 1.1rem; content: ""; }
.site-nav-menu-panel a { display: grid; grid-template-columns: 2.25rem 1fr; gap: .75rem; align-items: start; padding: .85rem; color: rgba(23,23,19,.68); transition: background-color .2s, color .2s; }
.site-nav-menu-panel a:hover { background: var(--cream); color: var(--ink); }
.site-nav-menu-panel > a + a { border-top: 1px solid rgba(23,23,19,.08); }
.site-nav-menu-panel .material-symbols-rounded { color: var(--saffron); font-size: 1.2rem; }
.site-nav-menu-panel strong, .site-nav-menu-panel small { display: block; }
.site-nav-menu-panel strong { margin-bottom: .15rem; color: var(--ink); font-size: .84rem; }
.site-nav-menu-panel small { color: rgba(23,23,19,.5); font-size: .73rem; line-height: 1.45; }
.site-account-actions .button-nav { margin-left: .15rem; background: var(--ink); color: #fff; }
.site-account-actions .button-nav:hover { background: var(--saffron); color: var(--ink); }
.site-theme-control { color: rgba(23,23,19,.58); }
.site-theme-control .material-symbols-rounded { font-size: 1.05rem; }
.nav-signin { position: relative; display: inline-flex; min-height: 2.4rem; align-items: center; color: var(--ink); font-size: .78rem; font-weight: 750; white-space: nowrap; }
.nav-signin::after { position: absolute; right: 0; bottom: .28rem; left: 0; height: 2px; background: var(--saffron); content: ""; transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.nav-signin:hover::after { transform: scaleX(1); transform-origin: left; }
.site-nav-mobile-actions { color: rgba(23,23,19,.6); }
.site-nav-mobile-actions { justify-self: end; }
.site-mobile-menu { border-top: 1px solid rgba(23,23,19,.08); background: rgba(255,255,255,.82); -webkit-backdrop-filter: saturate(150%) blur(18px); backdrop-filter: saturate(150%) blur(18px); }
.site-mobile-menu .mobile-nav-label { color: rgba(23,23,19,.42); }
.site-mobile-menu .mobile-nav-link-dark { color: rgba(23,23,19,.72); }
.site-mobile-menu .mobile-nav-link-dark:hover { background: var(--cream); color: var(--ink); }
.site-mobile-menu .mobile-nav-account { border-color: rgba(23,23,19,.1); }
.site-mobile-menu .mobile-nav-signin { border-color: rgba(23,23,19,.18); color: var(--ink); }
.mobile-nav-panel { padding-top: .8rem; }
.mobile-nav-label { margin: .45rem 1rem .2rem; color: rgba(255,255,255,.38); font-size: .68rem; font-weight: 700; }
.mobile-nav-link { display: flex; min-height: 3rem; align-items: center; padding: .7rem 1rem; font-weight: 600; color: var(--ink); }
.mobile-nav-link:hover { background: var(--cream); }
.mobile-nav-link-dark { color: rgba(255,255,255,.72); }
.mobile-nav-link-dark:hover { background: rgba(255,255,255,.08); color: #fff; }
.mobile-nav-account { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1fr); gap: .65rem; margin-top: .8rem; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.1); }
.mobile-nav-signin { display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.2); color: #fff; font-size: .875rem; font-weight: 700; }

.dark .site-header { background: #10100e; -webkit-backdrop-filter: none; backdrop-filter: none; color: #fff; }
.dark .site-header:has(.nav-shell.is-scrolled) { background: rgba(16,16,14,.68); box-shadow: inset 0 -1px rgba(255,255,255,.06); -webkit-backdrop-filter: saturate(165%) blur(20px); backdrop-filter: saturate(165%) blur(20px); }
.dark .brand-logo-light { display: none; }
.dark .brand-logo-dark { display: block; }
.dark .nav-link-dark { color: rgba(255,255,255,.65); }
.dark .nav-link-dark:hover, .dark .site-nav-menu[open] summary { color: #fff; }
.dark .site-nav-mobile-actions { color: rgba(255,255,255,.68); }
.dark .site-account-actions .button-nav { background: var(--saffron); color: var(--ink); }
.dark .site-account-actions .button-nav:hover { background: #fff; }
.dark .site-theme-control { color: rgba(255,255,255,.68); }
.dark .nav-signin { color: #fff; }
.dark .site-nav-menu-panel { border-color: rgba(255,255,255,.12); background: #211f19; box-shadow: 0 18px 45px rgba(0,0,0,.3); }
.dark .site-nav-menu-panel a { color: rgba(255,255,255,.7); }
.dark .site-nav-menu-panel a:hover { background: rgba(255,255,255,.07); color: #fff; }
.dark .site-nav-menu-panel > a + a { border-color: rgba(255,255,255,.09); }
.dark .site-nav-menu-panel strong { color: #fff; }
.dark .site-nav-menu-panel small { color: rgba(255,255,255,.48); }
.dark .site-mobile-menu { border-color: rgba(255,255,255,.1); background: rgba(23,23,19,.84); }
.dark .site-mobile-menu .mobile-nav-label { color: rgba(255,255,255,.38); }
.dark .site-mobile-menu .mobile-nav-link-dark { color: rgba(255,255,255,.72); }
.dark .site-mobile-menu .mobile-nav-link-dark:hover { background: rgba(255,255,255,.08); color: #fff; }
.dark .site-mobile-menu .mobile-nav-account { border-color: rgba(255,255,255,.1); }
.dark .site-mobile-menu .mobile-nav-signin { border-color: rgba(255,255,255,.2); color: #fff; }

@media (max-width: 900px) and (min-width: 768px) {
  .site-nav-primary { gap: .9rem; }
  .site-account-actions { gap: .5rem; }
  .site-account-actions .button-nav { padding-inline: .75rem; }
}

.button-dark, .button-light { display: inline-flex; align-items: center; gap: .45rem; border-radius: 0; font-size: .875rem; font-weight: 700; transition: transform .2s, background-color .2s, color .2s; }
.button-dark { background: var(--ink); color: #fff; padding: .72rem 1.15rem; }
.button-dark:hover { transform: translateY(-2px); background: var(--olive); color: #fff; }
.button-light { border: 1px solid rgba(23,23,19,.14); background: rgba(255,255,255,.72); color: var(--ink); }
.button-light:hover { transform: translateY(-2px); background: #fff; }
.button-large { padding: .95rem 1.4rem; }
.button-nav { display: inline-flex; align-items: center; gap: .45rem; border-radius: 0; background: var(--saffron); padding: .72rem 1.15rem; color: var(--ink); font-size: .875rem; font-weight: 800; transition: background-color .2s; }
.button-nav:hover { background: #fff; color: var(--ink); }

.check-item::before { margin-right: .45rem; content: "✓"; color: var(--olive); font-weight: 800; }
.landing-hero { padding-top: 8rem; padding-bottom: 4.5rem; }
.hero-layout { gap: clamp(2.5rem, 5vw, 5rem); min-height: 38rem; }
.hero-kicker { display: flex; align-items: center; gap: .7rem; margin: 0; color: rgba(23,23,19,.48); font-size: .78rem; font-weight: 700; }
.hero-kicker span { width: 1.65rem; height: 3px; background: var(--saffron); }
.hero-frame { border-radius: 0; box-shadow: 0 24px 60px rgba(36,31,20,.12); }
.hero-image { aspect-ratio: 1.16 / 1; min-height: 31rem; }
.hero-week-summary { display: flex; flex-wrap: wrap; gap: 0; margin-top: 3rem; color: rgba(23,23,19,.5); font-size: .76rem; }
.hero-week-summary span { padding: 0 1.15rem; }
.hero-week-summary span:first-child { padding-left: 0; }
.hero-week-summary span + span { border-left: 1px solid rgba(23,23,19,.14); }
.hero-week-summary strong { margin-right: .2rem; color: var(--ink); font-family: "Manrope", sans-serif; font-size: 1rem; }
.hero-highlight { color: var(--olive); }

@media (max-width: 1023px) {
  .landing-hero { padding-top: 7.5rem; }
  .hero-layout { gap: 3rem; }
  .hero-image { min-height: 0; }
}

@media (max-width: 520px) {
  .landing-hero { padding-top: 7rem; padding-bottom: 3.5rem; }
  .hero-week-summary { margin-top: 2.25rem; }
  .hero-week-summary span { padding-inline: .7rem; }
}

.section-pad { padding: 6.5rem 1.25rem; }
.section-intro { display: grid; align-items: end; gap: 1.5rem; }
.kicker { font-size: .75rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; color: var(--olive); }
.section-title { margin-top: .65rem; max-width: 850px; font-family: "Manrope", sans-serif; font-size: clamp(2.35rem, 5.2vw, 4.75rem); font-weight: 800; line-height: 1.02; letter-spacing: -.055em; }
.section-copy { max-width: 31rem; font-size: 1.06rem; line-height: 1.75; color: rgba(23,23,19,.58); }

.process-card { position: relative; min-height: 325px; padding: 2.25rem 1.4rem; }
.process-card + .process-card { border-top: 1px solid rgba(23,23,19,.1); }
.process-number { position: absolute; top: 2rem; right: 1.4rem; font-family: "Manrope", sans-serif; font-size: .72rem; font-weight: 800; letter-spacing: .14em; color: rgba(23,23,19,.3); }
.process-card h3, .feature-card h3 { margin-top: 6rem; font-family: "Manrope", sans-serif; font-size: 1.55rem; font-weight: 750; letter-spacing: -.035em; }
.process-card p, .feature-card p { margin-top: .9rem; max-width: 25rem; line-height: 1.75; color: rgba(23,23,19,.58); }

.feature-card { border: 1px solid rgba(23,23,19,.1); border-radius: 0; background: #fff; }
.preference-card p { color: rgba(255,255,255,.76); }
.preference-card .feature-label { color: rgba(255,255,255,.62) !important; }
.preference-card h3 { color: #fff; }
.feature-label { margin: 0 !important; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--olive) !important; }
.feature-card h3 { margin-top: 3.5rem; }
.list-row { display: flex; justify-content: space-between; border-bottom: 1px solid rgba(23,23,19,.08); padding-bottom: .7rem; color: rgba(23,23,19,.56); }
.list-row:last-child { border: 0; padding-bottom: 0; }
.list-row strong { color: var(--ink); }

.price-card { display: flex; min-height: 590px; flex-direction: column; border: 1px solid rgba(23,23,19,.15); border-radius: 0; padding: 2.25rem 1.5rem; }
.price-card + .price-card { border-top: 1px solid rgba(23,23,19,.15); }
.price-card-featured { background: var(--cream); }
.price-best-for { margin-top: auto; border-top: 1px solid rgba(23,23,19,.1); padding-top: 1.15rem; color: rgba(23,23,19,.52); font-size: .68rem; line-height: 1.5; }
.price-best-for strong { display: block; margin-bottom: .2rem; color: var(--ink); font-size: .6rem; text-transform: uppercase; letter-spacing: .08em; }
.price-name { font-family: "Manrope", sans-serif; font-size: 1.3rem; font-weight: 800; }
.price-line { display: flex; align-items: end; gap: .8rem; margin-top: 2.3rem; }
.price-amount { font-family: "Manrope", sans-serif; font-size: clamp(3.5rem, 6vw, 5.5rem); font-weight: 800; line-height: .85; letter-spacing: -.07em; }
.price-period { padding-bottom: .35rem; font-size: .82rem; color: rgba(23,23,19,.48); }
.price-card > div > .price-period { display: block; margin-top: 1rem; padding-bottom: 0; }
.price-note { border-bottom: 2px solid var(--saffron); padding-bottom: .2rem; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.price-list { margin: 3.25rem 0 2rem; padding: 0; list-style: none; }
.price-list li { display: flex; align-items: center; gap: .7rem; border-top: 1px solid rgba(23,23,19,.1); padding: .9rem 0; font-size: .9rem; font-weight: 600; }
.price-list .material-symbols-rounded { color: var(--olive); font-size: 1.15rem; }
.price-action { display: block; margin-top: 2rem; border: 1px solid var(--ink); border-radius: 0; padding: 1rem; text-align: center; font-size: .85rem; font-weight: 800; transition: background-color .2s, color .2s; }
.price-action-light { color: var(--ink); }
.price-action-light:hover { background: var(--ink); color: #fff; }
.price-action-dark { background: var(--ink); color: #fff; }
.price-action-dark:hover { background: var(--olive); border-color: var(--olive); }

.footer-heading { margin-bottom: 1rem; font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: rgba(23,23,19,.4); }
.footer-link { display: block; width: max-content; margin-top: .65rem; font-size: .9rem; font-weight: 600; color: rgba(23,23,19,.65); }
.footer-link:hover { color: var(--olive); }
.footer-brand { display: inline-flex; align-items: center; gap: .8rem; color: var(--ink); font-family: "Manrope", sans-serif; font-size: 1.05rem; font-weight: 800; letter-spacing: -.035em; }
.footer-brand img { width: clamp(13rem, 17vw, 15rem); max-height: 5.5rem; object-fit: contain; object-position: left center; }
.footer-main { grid-template-columns: 1fr; }
.footer-intro { max-width: 25rem; }
.footer-family-link { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .65rem; margin-top: 1.4rem; border: 1px solid rgba(23,23,19,.11); border-left: 3px solid var(--saffron); padding: .75rem; color: var(--ink); }
.footer-family-link > .material-symbols-rounded { color: #865a00; font-size: 1.1rem; }
.footer-family-link span:last-child { color: rgba(23,23,19,.35); font-size: .9rem; }
.footer-family-link small, .footer-family-link strong { display: block; }
.footer-family-link small { color: rgba(23,23,19,.43); font-size: .57rem; }
.footer-family-link strong { margin-top: .14rem; font-size: .67rem; }
.footer-external-link { display: flex; align-items: center; gap: .25rem; }
.footer-external-link .material-symbols-rounded { font-size: .78rem; }
.footer-bottom > div { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.footer-bottom a { display: inline-flex; align-items: center; gap: .25rem; color: inherit; font-weight: 700; }
.footer-bottom a .material-symbols-rounded { font-size: .8rem; }
.language-switcher { display: inline-flex; align-items: center; gap: .6rem; }
.language-switcher label { font-weight: 700; }
.language-switcher select { appearance: none; min-width: 6.5rem; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: .55rem 1.8rem .55rem .7rem; color: inherit; font: inherit; font-weight: 700; cursor: pointer; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 13px) 50%, calc(100% - 9px) 50%; background-size: 4px 4px, 4px 4px; background-repeat: no-repeat; }
.dark .language-switcher select { border-color: rgba(255,255,255,.16); color-scheme: dark; }

/* Authentication */
.auth-page { display: grid; min-height: 100vh; background: #fff; }
.auth-form-side { display: flex; min-height: 100vh; flex-direction: column; padding: 1.5rem; }
.auth-topbar { display: flex; align-items: center; justify-content: space-between; }
.auth-logo { display: flex; width: 9.5rem; height: 3.8rem; align-items: center; }
.auth-logo img { width: 100%; max-height: 100%; object-fit: contain; object-position: left; }
.auth-logo-light { display: block; }
.auth-logo-dark { display: none; }
.auth-theme-toggle { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid rgba(23,23,19,.14); background: transparent; color: var(--ink); }
.auth-topbar-actions { display: flex; align-items: center; gap: .5rem; }
.auth-language-switcher select { height: 2.75rem; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: 0 .7rem; color: var(--ink); font: inherit; font-size: .75rem; font-weight: 800; }
.auth-form-wrap { width: 100%; max-width: 29rem; margin: auto; padding: 4rem 0 2rem; }
.auth-heading h1 { max-width: 28rem; margin-top: .8rem; font-family: "Manrope", sans-serif; font-size: clamp(2.3rem, 4.5vw, 3.8rem); font-weight: 800; line-height: 1.03; letter-spacing: -.055em; }
.auth-heading > p:last-child { max-width: 26rem; margin-top: 1rem; line-height: 1.65; color: rgba(23,23,19,.56); }
.auth-kicker { font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--olive); }
.auth-back { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: 2.8rem; color: rgba(23,23,19,.58); font-size: .82rem; font-weight: 700; }
.auth-back:hover { color: var(--ink); }
.auth-form { margin-top: 2.5rem; }
.auth-field { margin-top: 1.3rem; }
.auth-field label { display: block; margin-bottom: .5rem; font-size: .8rem; font-weight: 700; }
.auth-field input { width: 100%; height: 3.35rem; border: 1px solid rgba(23,23,19,.18); outline: 0; background: #fff; padding: 0 1rem; color: var(--ink); font: inherit; font-size: .9rem; transition: border-color .2s, box-shadow .2s, background-color .42s, color .42s; }
.auth-field input::placeholder { color: rgba(23,23,19,.34); }
.auth-field input:focus { border-color: var(--saffron); box-shadow: 0 0 0 3px rgba(255,176,0,.15); }
.auth-field > span { display: block; margin-top: .35rem; color: #b42318; font-size: .75rem; }
.password-field { position: relative; }
.password-field input { padding-right: 3.25rem; }
.password-toggle { position: absolute; top: 0; right: 0; display: grid; width: 3.25rem; height: 3.35rem; place-items: center; border: 0; background: transparent; color: rgba(23,23,19,.48); }
.password-toggle .material-symbols-rounded { font-size: 1.2rem; }
.password-strength { margin-top: .65rem; }
.password-strength-track { height: 3px; overflow: hidden; background: rgba(23,23,19,.1); }
.password-strength-track span { display: block; width: 0; height: 100%; background: #bd3b2f; transition: width .28s ease, background-color .28s ease; }
.password-strength p { margin-top: .38rem; color: rgba(23,23,19,.42); font-size: .68rem; }
.password-strength strong { color: inherit; }
.auth-field-help { display: block; margin-top: .4rem; color: rgba(23,23,19,.46); font-size: .64rem; line-height: 1.45; }
.password-strength[data-strength="good"] .password-strength-track span { background: #d18b00; }
.password-strength[data-strength="good"] p { color: #986500; }
.password-strength[data-strength="strong"] .password-strength-track span { background: var(--saffron); }
.password-strength[data-strength="strong"] p { color: var(--olive); }
.auth-inline-link { color: var(--olive); font-size: .75rem; font-weight: 700; }
.auth-check { display: flex; align-items: center; gap: .65rem; margin-top: 1.2rem; color: rgba(23,23,19,.6); font-size: .8rem; }
.auth-check input { width: 1rem; height: 1rem; accent-color: var(--saffron); }
.auth-submit { display: flex; width: 100%; height: 3.5rem; align-items: center; justify-content: center; gap: .55rem; margin-top: 1.6rem; border: 1px solid var(--ink); background: var(--ink); color: #fff; font-size: .86rem; font-weight: 800; transition: background-color .2s, border-color .2s, color .2s; }
.auth-submit:hover { border-color: var(--saffron); background: var(--saffron); color: var(--ink); }
.auth-switch { margin-top: 1.5rem; text-align: center; color: rgba(23,23,19,.5); font-size: .85rem; }
.auth-switch a { color: var(--ink); font-weight: 800; border-bottom: 1px solid var(--saffron); }
.auth-legal { margin-top: auto; padding-top: 2rem; text-align: center; color: rgba(23,23,19,.38); font-size: .68rem; }
.auth-legal a { color: inherit; text-decoration: underline; }
.auth-visual { position: relative; display: none; min-height: 100vh; overflow: hidden; background: var(--ink); }
.auth-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.auth-visual-shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(12,12,10,.86), rgba(12,12,10,.08) 65%); }
.auth-quote { position: absolute; right: 3.5rem; bottom: 3.5rem; left: 3.5rem; max-width: 35rem; color: #fff; }
.auth-quote p { font-family: "Manrope", sans-serif; font-size: clamp(1.8rem, 3vw, 3.2rem); font-weight: 700; line-height: 1.12; letter-spacing: -.04em; }
.auth-quote span { display: block; margin-top: 1.25rem; color: rgba(255,255,255,.62); font-size: .72rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.auth-validation { color: #b42318; font-size: .78rem; }
.auth-validation:empty { display: none; }
.auth-success { display: flex; gap: 1rem; margin-top: 2.5rem; border-left: 3px solid var(--saffron); background: var(--cream); padding: 1.25rem; }
.auth-success > span { color: var(--olive); }
.auth-success strong { font-family: "Manrope", sans-serif; }
.auth-success p { margin-top: .35rem; color: rgba(23,23,19,.55); font-size: .82rem; line-height: 1.5; }

.reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Dark theme */
.dark body { background: #10100e; color: #f5f2e9; }
.dark .bg-white { background-color: #171713; }
.dark .bg-cream { background-color: #10100e; }
.dark .text-ink { color: #f5f2e9; }
.dark .text-ink\/70 { color: rgba(245,242,233,.7); }
.dark .text-ink\/65 { color: rgba(245,242,233,.65); }
.dark .text-ink\/60 { color: rgba(245,242,233,.6); }
.dark .text-ink\/55 { color: rgba(245,242,233,.55); }
.dark .text-ink\/50 { color: rgba(245,242,233,.5); }
.dark .text-ink\/45 { color: rgba(245,242,233,.45); }
.dark .text-ink\/40 { color: rgba(245,242,233,.4); }
.dark .border-black\/15,
.dark .border-black\/10 { border-color: rgba(255,255,255,.13); }
.dark .section-copy,
.dark .process-card p,
.dark .feature-card p { color: rgba(245,242,233,.6); }
.dark .feature-card { border-color: rgba(255,255,255,.13); background: #191916; }
.dark .preference-card p { color: rgba(255,255,255,.78); }
.dark .process-card + .process-card { border-color: rgba(255,255,255,.13); }
.dark .process-number { color: rgba(255,255,255,.32); }
.dark .hero-highlight { color: var(--saffron); }
.dark .hero-kicker, .dark .hero-week-summary { color: rgba(255,255,255,.5); }
.dark .hero-week-summary span + span { border-color: rgba(255,255,255,.16); }
.dark .hero-week-summary strong { color: #fff; }
.dark .hero-meal-note { background: #191916; border-color: rgba(255,255,255,.13); }
.dark .button-dark { background: var(--saffron); color: var(--ink); }
.dark .button-dark:hover { background: #fff; color: var(--ink); }
.dark .button-light { border-color: rgba(255,255,255,.2); background: transparent; color: #fff; }
.dark .pricing-grid .price-card { border-color: rgba(255,255,255,.14); background: #171713; }
.dark .pricing-grid .price-card-featured { background: #202019; }
.dark .price-list li,
.dark .list-row { border-color: rgba(255,255,255,.12); }
.dark .list-row,
.dark .list-row span { color: rgba(245,242,233,.62); }
.dark .list-row strong { color: #f5f2e9; }
.dark .price-period,
.dark .price-feature p { color: rgba(245,242,233,.5); }
.dark .price-action-light { border-color: #f5f2e9; color: #f5f2e9; }
.dark .price-action-light:hover { background: #f5f2e9; color: var(--ink); }
.dark footer { border-color: rgba(255,255,255,.12); }
.dark .footer-heading,
.dark .footer-link { color: rgba(245,242,233,.58); }
.dark .footer-brand { color: #f5f2e9; }
.dark .footer-brand img { content: url("/assets/Get-Moving-Meals-Logo.png"); }
.dark .footer-family-link { border-color: rgba(255,255,255,.12); border-left-color: var(--saffron); color: #f5f2e9; }
.dark .footer-family-link small { color: rgba(245,242,233,.43); }
.dark .footer-family-link span:last-child { color: rgba(245,242,233,.35); }
@media (min-width: 700px) {
  .footer-main { grid-template-columns: minmax(15rem,1.4fr) repeat(3,minmax(8rem,.6fr)); }
}

/* Embedded Stripe checkout */
.checkout-body { min-height: 100vh; margin: 0; background: #f8f5ec; color: #171713; font-family: "DM Sans",sans-serif; }
.checkout-header { display: flex; min-height: 4.5rem; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(23,23,19,.1); background: #fff; padding: .8rem clamp(1rem,4vw,3rem); }
.checkout-header img { width: 9rem; height: 2.8rem; object-fit: contain; object-position: left center; }
.checkout-header > span { display: flex; align-items: center; gap: .35rem; color: rgba(23,23,19,.58); font-size: .7rem; font-weight: 700; }
.checkout-header .material-symbols-rounded { font-size: 1rem; }
.checkout-shell { display: grid; width: min(72rem,calc(100% - 2rem)); margin: 2rem auto 4rem; border: 1px solid rgba(23,23,19,.12); background: #fff; }
.checkout-summary { padding: clamp(1.5rem,4vw,3.25rem); background: #fff9e9; }
.checkout-summary > a { display: inline-flex; align-items: center; gap: .3rem; color: rgba(23,23,19,.58); font-size: .66rem; font-weight: 750; }
.checkout-summary > a .material-symbols-rounded { font-size: 1rem; }
.checkout-summary > p { margin-top: 3rem; color: #865a00; font-size: .65rem; font-weight: 800; }
.checkout-summary h1 { margin-top: .55rem; font: 800 clamp(2.1rem,5vw,3.6rem)/1 "Manrope",sans-serif; letter-spacing: -.055em; }
.checkout-price { display: flex; align-items: baseline; gap: .6rem; margin-top: 1.6rem; }
.checkout-price strong { font: 800 2.6rem/1 "Manrope",sans-serif; }
.checkout-price span { color: rgba(23,23,19,.52); font-size: .75rem; }
.checkout-summary ul { display: grid; gap: .8rem; margin: 2rem 0 0; padding: 1.5rem 0; border-block: 1px solid rgba(23,23,19,.1); list-style: none; }
.checkout-summary li { display: flex; align-items: center; gap: .6rem; font-size: .73rem; font-weight: 650; }
.checkout-summary li .material-symbols-rounded { color: #9a6700; font-size: 1.05rem; }
.checkout-summary > small { display: block; margin-top: 1.3rem; color: rgba(23,23,19,.5); font-size: .62rem; line-height: 1.6; }
.checkout-payment { min-width: 0; padding: clamp(1.5rem,4vw,3.25rem); }
.checkout-payment > div:first-child > p { color: #865a00; font-size: .65rem; font-weight: 800; }
.checkout-payment h2 { margin-top: .45rem; font: 800 clamp(1.45rem,3vw,2.1rem)/1.1 "Manrope",sans-serif; letter-spacing: -.04em; }
.checkout-payment > div:first-child > span { display: block; margin-top: .55rem; color: rgba(23,23,19,.5); font-size: .68rem; }
#payment-element { min-height: 9rem; }
#payment-element:empty { min-height:0; }
.custom-payment-form { margin-top: 1.7rem; }
.payment-email { display: flex; align-items: center; justify-content: space-between; border-block: 1px solid rgba(23,23,19,.1); padding: 1rem 0; }
.payment-email span,.payment-element-label { color: rgba(23,23,19,.52); font-size: .67rem; }
.payment-email strong { font-size: .7rem; font-weight: 650; }
.payment-element-label { display: block; margin: 1.3rem 0 .55rem; color: inherit; font-weight: 750; }
.custom-payment-form > button { display: flex; width: 100%; min-height: 3.5rem; align-items: center; justify-content: center; gap: .55rem; margin-top: 1.3rem; border: 1px solid #171713; background: #171713; color: #fff; font: 750 .74rem "DM Sans",sans-serif; }
.custom-payment-form > button .material-symbols-rounded { font-size: 1rem; }
.custom-payment-form > button:disabled { cursor: wait; opacity: .65; }
.payment-security-note { display: flex; align-items: center; justify-content: center; gap: .35rem; margin-top: .8rem; color: rgba(23,23,19,.45); font-size: .58rem; }
.payment-security-note .material-symbols-rounded { font-size: .85rem; }
.stripe-checkout-footer{margin-top:1rem;border-top:1px solid rgba(23,23,19,.1);padding-top:1rem;text-align:center}.stripe-checkout-footer>p{display:flex;align-items:center;justify-content:center;gap:.38rem;color:rgba(23,23,19,.48);font-size:.58rem;font-weight:600}.stripe-checkout-footer img{display:block;width:2.8rem;height:auto}.stripe-checkout-footer small{display:block;max-width:27rem;margin:.6rem auto 0;color:rgba(23,23,19,.43);font-size:.55rem;line-height:1.55}.stripe-checkout-footer a{border-bottom:1px solid rgba(10,37,64,.35);color:#0a2540;font-weight:700}.stripe-checkout-footer a:hover{border-bottom-color:#0a2540}
.checkout-loading { display: flex; min-height: 20rem; align-items: center; justify-content: center; gap: .55rem; color: rgba(23,23,19,.5); font-size: .7rem; }
.checkout-loading .material-symbols-rounded { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.checkout-error { margin-top: 1rem; border-left: 3px solid #b42318; background: #fff3f1; padding: .9rem; color: #8f2d25; font-size: .7rem; }
.checkout-recovery strong,.checkout-recovery p { display:block; }
.checkout-recovery strong { font-size:.76rem; }
.checkout-recovery p { margin-top:.3rem; line-height:1.5; }
.checkout-recovery > div { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; margin-top:.8rem; }
.checkout-recovery button,.checkout-recovery a { min-height:2.5rem; border:1px solid currentColor; background:transparent; padding:.65rem .8rem; color:inherit; font:750 .65rem "DM Sans",sans-serif; }
.checkout-recovery button { background:#8f2d25; color:#fff; cursor:pointer; }
.dark .checkout-body { background: #10100e; color: #f5f2e9; }
.dark .checkout-header,.dark .checkout-shell,.dark .checkout-payment { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .checkout-summary { background: #29251a; }
.dark .checkout-header > span,.dark .checkout-summary > a,.dark .checkout-price span,.dark .checkout-summary > small,.dark .checkout-payment > div:first-child > span,.dark .checkout-loading { color: rgba(245,242,233,.52); }
.dark .checkout-summary ul { border-color: rgba(255,255,255,.11); }
.dark .payment-email { border-color: rgba(255,255,255,.11); }
.dark .payment-email span,.dark .payment-element-label,.dark .payment-security-note { color: rgba(245,242,233,.48); }
.dark .stripe-checkout-footer{border-color:rgba(255,255,255,.1)}.dark .stripe-checkout-footer>p,.dark .stripe-checkout-footer small{color:rgba(245,242,233,.48)}.dark .stripe-checkout-footer a{border-color:rgba(255,255,255,.35);color:#f5f2e9}.dark .stripe-checkout-footer img{box-sizing:content-box;background:#fff;padding:.15rem .3rem}
.dark .custom-payment-form > button { border-color: #f5f2e9; background: #f5f2e9; color: #171713; }
@media (min-width: 850px) { .checkout-shell { grid-template-columns: minmax(18rem,.75fr) minmax(28rem,1.25fr); } }
.portal-launch-body { display: grid; min-height: 100vh; margin: 0; place-items: center; background: #f8f5ec; padding: 1rem; color: #171713; font-family: "DM Sans",sans-serif; }
.portal-launch-card { width: min(30rem,100%); border: 1px solid rgba(23,23,19,.12); background: #fff; padding: clamp(1.5rem,5vw,3rem); text-align: center; }
.portal-launch-card > img { width: 9rem; height: 3rem; margin: 0 auto 2.2rem; object-fit: contain; }
.portal-launch-card > .material-symbols-rounded { display: grid; width: 3.2rem; height: 3.2rem; margin: 0 auto; place-items: center; background: #fff5d9; color: #8a5d00; }
.portal-launch-card h1 { margin-top: 1.2rem; font: 800 1.75rem/1.1 "Manrope",sans-serif; letter-spacing: -.04em; }
.portal-launch-card p { margin: .7rem auto 1.5rem; color: rgba(23,23,19,.52); font-size: .72rem; line-height: 1.6; }
.portal-launch-card > a { display: flex; min-height: 3.2rem; align-items: center; justify-content: center; border: 1px solid #171713; background: #171713; color: #fff; font-size: .7rem; font-weight: 750; }
.portal-launch-card > .portal-launch-back { min-height: auto; margin-top: 1rem; border: 0; background: transparent; color: rgba(23,23,19,.55); }
.dark .portal-launch-body { background: #10100e; color: #f5f2e9; }
.dark .portal-launch-card { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .portal-launch-card p,.dark .portal-launch-card > .portal-launch-back { color: rgba(245,242,233,.5); }
.dark .portal-launch-card > a:not(.portal-launch-back) { border-color: #f5f2e9; background: #f5f2e9; color: #171713; }
.billing-body{min-height:100vh;margin:0;background:#f8f5ec;color:#171713;font-family:"DM Sans",sans-serif}.billing-head{display:flex;min-height:4.5rem;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(23,23,19,.1);background:#fff;padding:.7rem clamp(1rem,4vw,3rem)}.billing-head img{width:9rem;height:3rem;object-fit:contain}.billing-head>a:last-child{display:flex;align-items:center;gap:.35rem;color:rgba(23,23,19,.58);font-size:.67rem;font-weight:700}.billing-head .material-symbols-rounded{font-size:1rem}.billing-shell{width:min(72rem,calc(100% - 2rem));margin:0 auto;padding:3rem 0 5rem}.billing-title>p{color:#865a00;font-size:.65rem;font-weight:800}.billing-title h1{margin:.55rem 0;font:800 clamp(2.3rem,6vw,4.5rem)/1 "Manrope",sans-serif;letter-spacing:-.06em}.billing-title>span{color:rgba(23,23,19,.52);font-size:.76rem}.billing-notice{display:flex;align-items:center;gap:.55rem;margin-top:1.2rem;border-left:3px solid #a16a00;background:#fff9e9;padding:.9rem;font-size:.68rem;font-weight:650}.billing-notice.error{border-color:#b42318;background:#fff3f1;color:#8f2d25}.billing-duplicate{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem;border:1px solid #e6c66f;background:#fff9e9;padding:1.2rem}.billing-duplicate>div{display:flex;gap:.7rem}.billing-duplicate .material-symbols-rounded{color:#936200}.billing-duplicate strong{font-size:.76rem}.billing-duplicate p{margin-top:.25rem;color:rgba(23,23,19,.53);font-size:.65rem}.billing-duplicate button,.billing-panel button{border:1px solid #171713;background:#171713;padding:.7rem .85rem;color:#fff;font:700 .65rem "DM Sans",sans-serif}.billing-grid{display:grid;gap:1rem;margin-top:1.5rem}.billing-panel{border:1px solid rgba(23,23,19,.12);background:#fff;padding:clamp(1.2rem,3vw,2rem)}.billing-panel-head{display:flex;align-items:start;justify-content:space-between;gap:1rem}.billing-panel-head p{color:rgba(23,23,19,.46);font-size:.61rem;font-weight:700}.billing-panel-head h2{margin-top:.35rem;font:800 1.3rem "Manrope",sans-serif}.billing-state{background:#fff5d9;padding:.4rem .55rem;color:#805500;font-size:.58rem;font-weight:800}.billing-renewal{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.35rem;margin-top:2rem}.billing-renewal strong{font:800 2.5rem "Manrope",sans-serif}.billing-renewal span{color:rgba(23,23,19,.46);font-size:.66rem}.billing-renewal small{grid-column:1/-1;color:rgba(23,23,19,.52);font-size:.65rem}.billing-plan-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.5rem}.billing-plan-actions button{background:transparent;color:inherit}.billing-plan-actions button.danger{border-color:#d9a8a4;color:#9f2d25}.billing-card-list{margin-top:1.5rem}.billing-card-list article{display:flex;align-items:center;gap:.7rem;border-top:1px solid rgba(23,23,19,.1);padding:1rem 0}.billing-card-list article>.material-symbols-rounded{display:grid;width:2.4rem;height:2.4rem;place-items:center;background:#fff5d9;color:#865a00}.billing-card-list article div{min-width:0;flex:1}.billing-card-list strong,.billing-card-list small{display:block;font-size:.68rem}.billing-card-list small{margin-top:.2rem;color:rgba(23,23,19,.48)}.billing-card-list b{font-size:.57rem}.billing-invoices{margin-top:1rem}.billing-invoices>article{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:1rem;border-top:1px solid rgba(23,23,19,.1);padding:1rem 0}.billing-invoices strong,.billing-invoices small{display:block;font-size:.66rem}.billing-invoices small{margin-top:.2rem;color:rgba(23,23,19,.48)}.billing-invoices>article>b{font-size:.7rem}.billing-invoices>article>div:last-child{display:flex;gap:.6rem}.billing-invoices a{border-bottom:1px solid #ffb000;font-size:.62rem;font-weight:700}.billing-empty{margin-top:1.5rem;color:rgba(23,23,19,.48);font-size:.68rem}.billing-dialog{width:min(32rem,calc(100% - 2rem));border:1px solid rgba(23,23,19,.15);background:#fff;padding:2rem;color:#171713}.billing-dialog::backdrop{background:rgba(10,10,8,.7);backdrop-filter:blur(4px)}.billing-dialog>form[method=dialog]{position:absolute;top:1rem;right:1rem}.billing-dialog>form[method=dialog] button{border:0;background:transparent}.billing-dialog>p{color:#865a00;font-size:.62rem;font-weight:800}.billing-dialog h2{margin-top:.4rem;font:800 1.7rem "Manrope",sans-serif}.billing-dialog>span{display:block;margin-top:.4rem;color:rgba(23,23,19,.48);font-size:.67rem}.billing-dialog>#card-form{margin-top:1.5rem}.billing-dialog>#card-form>button{width:100%;margin-top:1rem;border:0;background:#171713;padding:1rem;color:#fff;font-weight:750}.dark .billing-body{background:#10100e;color:#f5f2e9}.dark .billing-head,.dark .billing-panel,.dark .billing-dialog{border-color:rgba(255,255,255,.12);background:#191916;color:#f5f2e9}.dark .billing-head>a:last-child,.dark .billing-title>span,.dark .billing-panel-head p,.dark .billing-renewal span,.dark .billing-renewal small,.dark .billing-card-list small,.dark .billing-invoices small,.dark .billing-empty,.dark .billing-dialog>span{color:rgba(245,242,233,.48)}.dark .billing-card-list article,.dark .billing-invoices>article{border-color:rgba(255,255,255,.1)}.dark .billing-plan-actions button{border-color:rgba(255,255,255,.35);color:#f5f2e9}@media(min-width:760px){.billing-grid{grid-template-columns:1fr 1fr}.billing-duplicate{flex-direction:row;align-items:center;justify-content:space-between}}
.plan-failure { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:.8rem; }
.plan-failure > .material-symbols-rounded { font-size:1.25rem; }
.plan-failure a { border-bottom:2px solid #b42318; color:#7f1d17; font-size:.66rem; font-weight:800; white-space:nowrap; }
.plan-failure a.quiet { border-bottom-color:rgba(180,35,24,.25); }
.dark .plan-failure a { color:#f0bbb7; }
@media (max-width:760px) { .plan-failure { grid-template-columns:auto 1fr; } .plan-failure a { grid-column:2; justify-self:start; } }

/* Flatter preference editors: one calm surface instead of nested boxes. */
.food-boundaries { grid-template-columns:1fr; gap:0; }
.food-boundaries .avoid-foods { grid-template-columns:minmax(11rem,.7fr) minmax(16rem,1fr); align-items:center; gap:.55rem 1rem; border:0; border-bottom:1px solid rgba(23,23,19,.1); padding:1rem 0; }
.food-boundaries .avoid-foods > div { border:0; padding:0; }
.food-boundaries .avoid-foods > div:first-child { display:block; }
.food-boundaries .avoid-foods label { display:block; }
.food-boundaries .avoid-food-entry { width:100%; max-width:none; border-bottom:1px solid rgba(23,23,19,.18); }
.food-boundaries .avoid-food-entry input { height:2.65rem; border:0; }
.food-boundaries .avoid-food-entry button { gap:.25rem; border:0; border-left:3px solid var(--saffron); background:#fff6dc; padding:0 .8rem; color:var(--ink); }
.food-boundaries .avoid-food-entry button .material-symbols-rounded { font-size:.9rem; }
.food-boundaries .avoid-food-tags { grid-column:2; min-height:1.7rem; align-items:center; }
.food-boundaries .avoid-food-tags > span { background:#fff6dc; padding:.38rem .5rem; }
.food-boundaries .avoid-food-tags button { display:grid; width:1.25rem; height:1.25rem; place-items:center; padding:0; }
.dark .food-boundaries .avoid-foods { border-color:rgba(255,255,255,.12); }
.dark .food-boundaries .avoid-food-entry { border-color:rgba(255,255,255,.18); }
.dark .food-boundaries .avoid-food-entry button,.dark .food-boundaries .avoid-food-tags > span { background:#302918; color:#f5f2e9; }

/* Nutrition focus uses the full step width and reads as choices, not a stack of cards. */
@media (min-width:768px) {
  .nutrition-focus-step > .nutrition-focus-content { grid-column:2 / -1; }
  .nutrition-focus-content > .focus-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
.nutrition-focus-content { min-width:0; }
.nutrition-focus-heading { margin-bottom:1rem; }
.nutrition-focus-step .focus-options { gap:0 1rem; border-top:1px solid rgba(23,23,19,.1); }
.nutrition-focus-step .focus-options label > span { position:relative; min-height:4.5rem; border:0; border-bottom:1px solid rgba(23,23,19,.1); padding:.8rem .8rem .8rem 1.7rem; }
.nutrition-focus-step .focus-options label > span::before { content:""; position:absolute; top:.95rem; left:.25rem; width:.72rem; height:.72rem; border:1px solid rgba(23,23,19,.35); border-radius:50%; }
.nutrition-focus-step .focus-options input:checked + span { border-color:rgba(23,23,19,.1); background:transparent; box-shadow:none; }
.nutrition-focus-step .focus-options input:checked + span::before { border:3px solid var(--saffron); }
.nutrition-focus-step .nutrition-focus-note { max-width:none; margin-bottom:0; background:transparent; border-left:0; border-top:1px solid rgba(23,23,19,.1); padding:.8rem 0; font-size:.66rem; }
.dark .nutrition-focus-step .focus-options,.dark .nutrition-focus-step .focus-options label > span,.dark .nutrition-focus-step .nutrition-focus-note { border-color:rgba(255,255,255,.12); }
.dark .nutrition-focus-step .focus-options input:checked + span { background:transparent; }
@media (max-width:700px) {
  .food-boundaries .avoid-foods { grid-template-columns:1fr; }
  .food-boundaries .avoid-food-tags { grid-column:1; }
}
.dark .auth-page,
.dark .auth-form-side { background: #10100e; }
.dark .auth-theme-toggle { border-color: rgba(255,255,255,.16); color: #f5f2e9; }
.dark .auth-language-switcher select { border-color: rgba(255,255,255,.16); color: #f5f2e9; color-scheme: dark; }
.dark .auth-logo-light { display: none; }
.dark .auth-logo-dark { display: block; }
.dark .auth-heading > p:last-child,
.dark .auth-back,
.dark .auth-check,
.dark .auth-switch { color: rgba(245,242,233,.58); }
.dark .auth-back:hover,
.dark .auth-switch a { color: #f5f2e9; }
.dark .auth-field input { border-color: rgba(255,255,255,.17); background: #181815; color: #f5f2e9; }
.dark .auth-field input::placeholder { color: rgba(245,242,233,.3); }
.dark .password-toggle { color: rgba(245,242,233,.48); }
.dark .password-strength-track { background: rgba(255,255,255,.12); }
.dark .password-strength p { color: rgba(245,242,233,.42); }
.dark .auth-field-help { color: rgba(245,242,233,.46); }
.dark .password-strength[data-strength="good"] p,
.dark .password-strength[data-strength="strong"] p { color: var(--saffron); }
.dark .auth-submit { border-color: var(--saffron); background: var(--saffron); color: var(--ink); }
.dark .auth-submit:hover { border-color: #fff; background: #fff; }
.dark .auth-legal { color: rgba(245,242,233,.36); }
.dark .auth-success { background: #191916; }
.dark .auth-success p { color: rgba(245,242,233,.58); }

/* Signed-in application */
.app-shell { min-height: 100vh; background: #f4f1e9; }
.app-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 60; display: flex; width: 17.5rem; flex-direction: column; border-right: 1px solid rgba(255,255,255,.1); background: var(--ink); color: #fff; transform: translateX(-100%); transition: transform .28s ease; }
.app-sidebar.is-open { transform: translateX(0); }
.app-sidebar-head { display: flex; height: 5.25rem; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.1); padding: 0 1.35rem; }
.app-home-link { display: inline-flex; align-items: center; color: #fff; }
.app-home-link img { width: 8.5rem; max-height: 3.1rem; object-fit: contain; object-position: left center; }
.app-mobile-logo { width: 7.5rem; max-height: 2.3rem; object-fit: contain; }
.app-icon-button { display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border: 0; background: transparent; color: inherit; }
.app-nav { min-height: 0; flex: 1; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 1.35rem .85rem; scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
.app-nav-label { margin: 0 .75rem .7rem; color: rgba(255,255,255,.35); font-size: .7rem; font-weight: 650; }
.app-nav-section-label { margin-top: 1rem; }
.app-nav-parent, .app-nav-link { display: flex; width: 100%; min-height: 3rem; align-items: center; gap: .75rem; border: 0; background: transparent; padding: .7rem .75rem; color: rgba(255,255,255,.67); text-align: left; font: inherit; font-size: .84rem; font-weight: 700; }
.app-nav-parent:hover, .app-nav-link:hover, .app-nav-link.active { background: rgba(255,255,255,.07); color: #fff; }
.app-nav-icon { color: rgba(255,255,255,.42); font-size: 1.2rem; }
.app-nav-link.active .app-nav-icon, .app-nav-parent.is-open .app-nav-icon { color: var(--saffron); }
.nav-count { display: grid; width: 1.25rem; height: 1.25rem; margin-left: auto; place-items: center; background: var(--saffron); color: var(--ink); font-size: .58rem; }
.app-nav-chevron { margin-left: auto; font-size: 1.15rem; transition: transform .2s; }
.app-nav-parent.is-open .app-nav-chevron { transform: rotate(180deg); }
.app-subnav { margin: .35rem 0 .7rem; padding: .35rem; background: rgba(255,255,255,.035); }
.app-subgroup { padding: .4rem; }
.app-subgroup + .app-subgroup { margin-top: .25rem; }
.app-subgroup > p { margin: 0 0 .25rem .45rem; color: rgba(255,255,255,.3); font-size: .62rem; font-weight: 650; }
.app-subnav a { display: flex; align-items: center; gap: .35rem; padding: .52rem .45rem; color: rgba(255,255,255,.5); font-size: .76rem; font-weight: 600; }
.app-subnav a .nav-count { margin-left: auto; }
.app-subnav a.active, .app-subnav a:hover { background: rgba(255,255,255,.075); color: #fff; }
.app-subnav a.active { box-shadow: inset 3px 0 var(--saffron); padding-left: .7rem; }
.app-subnav-featured .material-symbols-rounded { color: var(--saffron); font-size: .95rem; }
.account-wrap { position: relative; flex: 0 0 auto; margin-top: auto; border-top: 1px solid rgba(255,255,255,.1); padding: .85rem; }
.account-trigger { display: flex; width: 100%; align-items: center; gap: .7rem; border: 0; background: transparent; padding: .6rem; color: #fff; text-align: left; }
.account-avatar { display: grid; width: 2.45rem; height: 2.45rem; flex: 0 0 auto; place-items: center; background: rgba(255,255,255,.1); color: rgba(255,255,255,.75); font-size: 1.1rem; }
.account-copy { min-width: 0; flex: 1; }
.account-copy strong, .account-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-copy strong { font-size: .78rem; }
.account-copy small { margin-top: .15rem; color: rgba(255,255,255,.42); font-size: .65rem; }
.account-switch-icon { color: rgba(255,255,255,.46); font-size: 1.2rem; }
.account-menu { position: absolute; right: .85rem; bottom: calc(100% + .55rem); left: .85rem; border: 1px solid rgba(255,255,255,.14); background: #24241f; padding: .45rem; box-shadow: 0 20px 45px rgba(0,0,0,.32); }
.account-menu-head { display: flex; align-items: center; gap: .65rem; border-bottom: 1px solid rgba(255,255,255,.1); padding: .65rem; margin-bottom: .3rem; }
.account-menu-head strong, .account-menu-head small { display: block; font-size: .72rem; }
.account-menu-head small { margin-top: .1rem; color: rgba(255,255,255,.4); }
.account-menu-item { display: flex; width: 100%; align-items: center; gap: .7rem; border: 0; background: transparent; padding: .7rem; color: rgba(255,255,255,.68); font: inherit; font-size: .75rem; font-weight: 650; }
.account-menu-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.account-menu-item .material-symbols-rounded { font-size: 1.1rem; }
.account-language-form { display: grid; grid-template-columns: 1.1rem 1fr; align-items: center; gap: .7rem; padding: .45rem .7rem; color: rgba(255,255,255,.68); }
.account-language-form .material-symbols-rounded { font-size: 1.1rem; }
.account-language-form select { width: 100%; border: 0; background: #24241f; color: inherit; padding: .25rem 0; font: inherit; font-size: .75rem; font-weight: 650; color-scheme: dark; }
.account-logout { color: #f4a7a0; }
.app-main { min-height: 100vh; }
.app-mobile-head { position: sticky; top: 0; z-index: 30; display: flex; height: 4rem; align-items: center; gap: .6rem; border-bottom: 1px solid rgba(23,23,19,.1); background: rgba(255,255,255,.92); padding: 0 1rem; backdrop-filter: blur(12px); }
.app-content { width: 100%; max-width: 96rem; margin: 0 auto; padding: 1.4rem 1.2rem 4rem; }
.app-breadcrumbs { position: sticky; top: 4rem; z-index: 25; display: flex; min-height: 3.2rem; flex-wrap: wrap; align-items: center; gap: .35rem; margin: -1.4rem -1.2rem 0; border-bottom: 1px solid rgba(23,23,19,.09); background: rgba(244,241,233,.94); padding: 0 1.2rem; color: rgba(23,23,19,.38); font-size: .7rem; font-weight: 700; backdrop-filter: blur(12px); }
.app-breadcrumbs .material-symbols-rounded { font-size: .9rem; color: rgba(23,23,19,.25); }
.app-breadcrumbs strong { color: rgba(23,23,19,.66); }
.app-page-heading { display: flex; flex-direction: column; gap: 1.4rem; margin-top: 2.2rem; }
.app-page-heading h1 { margin-top: .55rem; font-family: "Manrope", sans-serif; font-size: clamp(2.3rem,5vw,4.6rem); font-weight: 800; line-height: .98; letter-spacing: -.06em; }
.app-page-heading > div > p:last-child { max-width: 38rem; margin-top: .8rem; color: rgba(23,23,19,.54); line-height: 1.65; }
.app-kicker { display: flex; align-items: center; gap: .5rem; color: rgba(23,23,19,.48); font-size: .72rem; font-weight: 700; }
.app-kicker::before { width: 1.2rem; height: 2px; content: ""; background: var(--saffron); }
.app-primary-action { display: inline-flex; width: max-content; align-items: center; justify-content: center; gap: .5rem; border: 0; background: var(--ink); padding: .85rem 1.1rem; color: #fff; font-size: .77rem; font-weight: 800; }
.app-primary-action .material-symbols-rounded { font-size: 1.05rem; }
.plan-ready-notice { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .85rem; margin-top: 1rem; border: 1px solid rgba(185,120,0,.28); background: #fff8e5; padding: 1rem; }
.plan-ready-notice > .material-symbols-rounded { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; background: var(--saffron); color: var(--ink); }
.plan-ready-notice strong { font-family: "Manrope",sans-serif; font-size: .8rem; }
.plan-ready-notice p { margin-top: .2rem; color: rgba(23,23,19,.54); font-size: .68rem; }
.plan-ready-notice > a { grid-column: 2; display: inline-flex; width: max-content; align-items: center; gap: .3rem; color: inherit; font-size: .68rem; font-weight: 800; }
.plan-ready-notice > a .material-symbols-rounded { font-size: .95rem; }
.week-strip { display: grid; grid-template-columns: repeat(7,minmax(4rem,1fr)); margin-top: 2.5rem; overflow-x: auto; border: 1px solid rgba(23,23,19,.12); background: #fff; }
.day-tab { min-width: 4rem; border: 0; border-right: 1px solid rgba(23,23,19,.1); background: transparent; padding: 1rem .5rem; color: rgba(23,23,19,.48); }
.day-tab:last-child { border: 0; }
.day-tab small, .day-tab strong { display: block; }
.day-tab small { font-size: .68rem; font-weight: 700; }
.day-tab strong { margin-top: .35rem; font-family: "Manrope",sans-serif; font-size: 1.15rem; }
.day-tab.active { box-shadow: inset 0 -3px var(--saffron); background: #fff9e9; color: var(--ink); }
.meal-layout { display: grid; gap: 1rem; margin-top: 1rem; }
.meal-feature, .today-list, .saved-meal, .grocery-board, .nutrition-lead, .plain-stat, .preferences-form fieldset { border: 1px solid rgba(23,23,19,.11); background: #fff; }
.meal-feature { display: grid; overflow: hidden; }
.meal-feature > img { width: 100%; min-height: 20rem; height: 100%; object-fit: cover; }
.meal-feature-copy { display: flex; flex-direction: column; justify-content: space-between; padding: 1.5rem; }
.meal-feature-copy h2 { margin-top: .6rem; font-family: "Manrope",sans-serif; font-size: 1.8rem; font-weight: 800; letter-spacing: -.04em; }
.meal-feature-copy p:not(.app-kicker) { margin-top: .7rem; color: rgba(23,23,19,.5); line-height: 1.55; }
.app-text-action { display: flex; align-items: center; gap: .45rem; margin-top: 2rem; border: 0; background: transparent; color: var(--ink); font-size: .78rem; font-weight: 800; }
.today-list { padding: 1.2rem; }
.today-list-head { display: flex; align-items: center; justify-content: space-between; padding: .3rem 0 1rem; }
.today-list-head h3 { font-family: "Manrope",sans-serif; font-weight: 800; }
.today-list-head span { color: rgba(23,23,19,.4); font-size: .7rem; }
.mini-meal { display: grid; grid-template-columns: 5.2rem 1fr; gap: .85rem; border-top: 1px solid rgba(23,23,19,.1); padding: 1rem 0; }
.mini-meal img { width: 5.2rem; height: 4.5rem; object-fit: cover; }
.mini-meal small, .mini-meal strong, .mini-meal span { display: block; }
.mini-meal small { color: rgba(23,23,19,.48); font-size: .66rem; font-weight: 700; }
.mini-meal strong { margin-top: .28rem; font-size: .78rem; }
.mini-meal span { margin-top: .35rem; color: rgba(23,23,19,.4); font-size: .65rem; }
.add-meal { display: flex; width: 100%; align-items: center; justify-content: center; gap: .4rem; border: 1px dashed rgba(23,23,19,.2); background: transparent; padding: .75rem; color: rgba(23,23,19,.55); font-size: .72rem; font-weight: 700; }
.saved-grid { display: grid; gap: 1rem; margin-top: 2.5rem; }
.saved-meal { display: grid; overflow: hidden; }
.saved-meal img { width: 100%; height: 15rem; object-fit: cover; }
.saved-meal img.meal-brand-fallback { object-fit: contain; background: #fff; padding: 3rem; }
.saved-meal > div { padding: 1.2rem; }
.saved-meal small { color: rgba(23,23,19,.48); font-weight: 700; }
.saved-meal h2 { margin-top: .5rem; font-family: "Manrope",sans-serif; font-size: 1.25rem; font-weight: 800; }
.saved-meal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: 1.2rem; }
.saved-meal-actions a, .saved-meal-actions button { display: inline-flex; align-items: center; gap: .3rem; min-height: 2.35rem; border: 1px solid rgba(23,23,19,.12); background: transparent; padding: .55rem .7rem; color: inherit; font: inherit; font-size: .66rem; font-weight: 800; text-decoration: none; }
.saved-meal-actions button { cursor: pointer; }
.saved-meal-actions .material-symbols-rounded { font-size: 1rem; }
.saved-meal-pcf { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.saved-meal-pcf span { background: var(--macro-soft); padding: .4rem .55rem; color: var(--macro-color); font-size: .65rem; }
.grocery-board { max-width: 55rem; margin-top: 2.5rem; padding: 1.2rem; }
.manual-grocery-form { display: grid; gap: .7rem; border-bottom: 1px solid rgba(23,23,19,.1); padding-bottom: 1.4rem; }
.manual-grocery-form label { display: block; margin-bottom: .4rem; color: rgba(23,23,19,.52); font-size: .66rem; font-weight: 700; }
.manual-grocery-form input, .manual-grocery-form select { width: 100%; height: 2.8rem; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: 0 .7rem; color: inherit; font: inherit; font-size: .75rem; }
.manual-grocery-form button { display: flex; height: 2.8rem; align-items: center; justify-content: center; gap: .35rem; align-self: end; border: 0; background: var(--ink); color: #fff; font: inherit; font-size: .72rem; font-weight: 800; }
.manual-grocery-form button .material-symbols-rounded { font-size: 1rem; }
.grocery-progress { padding: .5rem 0 1.5rem; }
.grocery-progress > div:first-child { display: flex; justify-content: space-between; font-size: .75rem; }
.grocery-progress-track { height: 4px; margin-top: .8rem; background: var(--cream); }
.grocery-progress-track span { display: block; width: 33%; height: 100%; background: var(--saffron); }
.grocery-group { border-top: 1px solid rgba(23,23,19,.1); padding: 1.3rem 0; }
.grocery-group h2 { display: flex; justify-content: space-between; font-family: "Manrope",sans-serif; font-size: 1rem; font-weight: 800; }
.grocery-group h2 span { color: rgba(23,23,19,.35); }
.grocery-group label { display: flex; align-items: center; gap: .7rem; padding: .7rem 0; color: rgba(23,23,19,.65); font-size: .82rem; }
.grocery-group input { accent-color: var(--saffron); }
.grocery-group input:checked + span { color: rgba(23,23,19,.35); text-decoration: line-through; }
.grocery-group label small { margin-left: auto; color: rgba(23,23,19,.35); font-size: .6rem; }
.manual-items-empty { padding: 1rem 0 .3rem; color: rgba(23,23,19,.38); font-size: .7rem; }
.nutrition-summary { display: grid; gap: 1rem; margin-top: 2.5rem; }
.nutrition-lead { display: flex; gap: 1.2rem; padding: 1.5rem; }
.nutrition-lead > span { color: var(--saffron); font-size: 2rem; }
.nutrition-lead p { color: rgba(23,23,19,.45); font-size: .7rem; }
.nutrition-lead h2 { margin-top: .25rem; font-family: "Manrope",sans-serif; font-size: 1.7rem; font-weight: 800; }
.nutrition-lead div > span { display: block; margin-top: .55rem; color: rgba(23,23,19,.52); font-size: .8rem; line-height: 1.5; }
.plain-stat { padding: 1.4rem; }
.plain-stat p { color: rgba(23,23,19,.45); font-size: .7rem; font-weight: 700; }
.plain-stat strong { display: block; margin-top: .5rem; font-family: "Manrope",sans-serif; font-size: 1.45rem; }
.plain-stat > span { display: block; margin-top: .35rem; color: rgba(23,23,19,.48); font-size: .72rem; }
.plain-meter { height: 4px; margin-top: 1.3rem; background: var(--cream); }
.plain-meter i { display: block; height: 100%; background: var(--saffron); }
.preferences-form { display: grid; gap: 1rem; max-width: 60rem; margin-top: 2.5rem; }
.preferences-form fieldset { padding: 1.4rem; }
.preferences-form legend { font-family: "Manrope",sans-serif; font-weight: 800; }
.preferences-form fieldset > p { margin-top: .4rem; color: rgba(23,23,19,.48); font-size: .75rem; }
.choice-grid { display: grid; gap: .6rem; margin-top: 1.2rem; }
.choice-grid label { display: flex; align-items: center; gap: .65rem; border: 1px solid rgba(23,23,19,.1); padding: .8rem; font-size: .78rem; font-weight: 650; }
.choice-grid input { accent-color: var(--saffron); }
.preference-input { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.2rem; }
.preference-input span { background: var(--cream); padding: .55rem .7rem; font-size: .72rem; font-weight: 700; }
.preference-input input { min-width: 10rem; flex: 1; border: 1px solid rgba(23,23,19,.13); padding: .55rem .7rem; background: transparent; color: inherit; }
.plan-builder { display: grid; gap: 1rem; max-width: 62rem; margin-top: 2.5rem; }
.plan-builder-step { display: grid; gap: 1.2rem; border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.4rem; }
.plan-step-number { display: grid; width: 2rem; height: 2rem; place-items: center; background: #fff5d9; color: var(--ink); font-family: "Manrope",sans-serif; font-size: .75rem; font-weight: 800; }
.plan-builder-step h2 { font-family: "Manrope",sans-serif; font-size: 1rem; font-weight: 800; }
.plan-builder-step p { margin-top: .35rem; color: rgba(23,23,19,.48); font-size: .75rem; }
.plan-choice-row { display: flex; flex-wrap: wrap; gap: .55rem; }
.plan-choice-row label { border: 1px solid rgba(23,23,19,.12); padding: .7rem .85rem; font-size: .76rem; font-weight: 650; }
.plan-choice-row input { margin-right: .45rem; accent-color: var(--saffron); }
.meal-slot-validation { grid-column: 3; margin-top: -.25rem; color: #b42318; font-size: .63rem; font-weight: 750; }
.plan-builder textarea { min-height: 6rem; width: 100%; resize: vertical; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .8rem; color: inherit; font: inherit; font-size: .78rem; }
.plan-name-field > span { display: block; margin-bottom: .4rem; font-size: .68rem; font-weight: 700; }
.plan-name-field input { width: 100%; height: 2.9rem; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: 0 .75rem; color: inherit; font: inherit; font-size: .78rem; }
.plans-list { max-width: 65rem; margin-top: 2.5rem; border-top: 1px solid rgba(23,23,19,.12); }
.plan-row-shell { position: relative; border-bottom: 1px solid rgba(23,23,19,.12); }
.plan-row-shell:has(.plan-row-menu[open]) { z-index: 30; }
.plan-row { display: grid; grid-template-columns: 3.2rem minmax(0,1fr) auto; align-items: center; gap: 1rem; border-bottom: 1px solid rgba(23,23,19,.12); padding: 1rem .3rem; color: var(--ink); }
.plan-row-shell .plan-row { border-bottom: 0; padding-right: 3.2rem; }
.plan-row-menu { position: absolute; z-index: 5; top: 50%; right: .35rem; transform: translateY(-50%); }
.plan-row-menu[open] { z-index: 40; }
.plan-row-menu > summary { display: grid; width: 2.35rem; height: 2.35rem; cursor: pointer; list-style: none; place-items: center; border: 1px solid rgba(23,23,19,.11); background: #fff; }
.plan-row-menu > summary::-webkit-details-marker { display: none; }
.plan-row-menu > summary .material-symbols-rounded { font-size: 1.05rem; }
.plan-row-menu > div { position: absolute; top: calc(100% + .35rem); right: 0; width: 12.5rem; border: 1px solid rgba(23,23,19,.12); background: #fff; padding: .35rem; box-shadow: 0 12px 30px rgba(23,23,19,.12); }
.plan-row-menu button { display: flex; width: 100%; cursor: pointer; align-items: center; gap: .5rem; border: 0; background: transparent; padding: .65rem; color: inherit; text-align: left; font: inherit; font-size: .64rem; font-weight: 750; }
.plan-row-menu button:hover { background: #fff8e5; }
.plan-row-menu button.danger { color: #a33a31; }
.plan-row-menu button .material-symbols-rounded { font-size: .95rem; }
.plan-date { display: grid; height: 3.2rem; place-items: center; align-content: center; background: #fff; }
.plan-date strong { font-family: "Manrope",sans-serif; font-size: 1rem; line-height: 1; }
.plan-date small { margin-top: .15rem; color: rgba(23,23,19,.42); font-size: .58rem; }
.plan-row-copy { min-width: 0; }
.plan-row-copy strong, .plan-row-copy small { display: block; }
.plan-row-copy strong { overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.plan-row-copy small { margin-top: .3rem; color: rgba(23,23,19,.43); font-size: .65rem; }
.plan-macros { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin-top: .55rem; }
.plan-macros i { background: var(--cream); padding: .25rem .4rem; color: rgba(23,23,19,.62); font-size: .58rem; font-style: normal; font-weight: 750; }
.macro-protein { --macro-color: #d95f52; --macro-soft: #fff0ed; }
.macro-carbs { --macro-color: #c48600; --macro-soft: #fff7df; }
.macro-fat { --macro-color: #7565a8; --macro-soft: #f2effc; }
.plan-macros i.macro-protein, .plan-macros i.macro-carbs, .plan-macros i.macro-fat { background: var(--macro-soft); color: var(--macro-color); }
.plan-macros em { color: rgba(23,23,19,.34); font-size: .56rem; font-style: normal; }
.plan-status { display: none; color: rgba(23,23,19,.42); font-size: .66rem; font-weight: 700; }
.plan-row > .material-symbols-rounded { display: none; font-size: 1.05rem; }
.plan-row-current { box-shadow: inset 3px 0 var(--saffron); padding-left: .8rem; }
.create-plan-layout { display: grid; gap: 1.2rem; align-items: start; }
.profile-preferences { display: grid; gap: 1rem; max-width: 68rem; margin-top: 2.5rem; }
.preference-section { border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.4rem; }
.preference-section-heading { display: flex; gap: .9rem; }
.preference-section-heading > span { display: grid; width: 1.8rem; height: 1.8rem; flex: 0 0 auto; place-items: center; background: #fff5d9; font-size: .7rem; font-weight: 800; }
.preference-section-heading h2 { font-family: "Manrope",sans-serif; font-size: 1rem; font-weight: 800; }
.preference-section-heading p { margin-top: .3rem; color: rgba(23,23,19,.48); font-size: .74rem; line-height: 1.5; }
.smart-options, .compact-options, .goal-options { display: grid; gap: .55rem; margin-top: 1.25rem; }
.smart-options label, .compact-options label, .goal-options label { position: relative; }
.smart-options input, .compact-options input, .goal-options input { position: absolute; opacity: 0; pointer-events: none; }
.smart-options label > span, .compact-options label > span, .goal-options label { display: flex; border: 1px solid rgba(23,23,19,.12); padding: .75rem; cursor: pointer; }
.smart-options label > span { flex-direction: column; }
.smart-options strong, .smart-options small { display: block; }
.smart-options strong { font-size: .8rem; }
.smart-options small { margin-top: .15rem; color: rgba(23,23,19,.42); font-size: .62rem; }
.smart-options input:checked + span, .compact-options input:checked + span, .goal-options label:has(input:checked) { border-color: var(--saffron); background: #fffaf0; box-shadow: inset 3px 0 var(--saffron); }
.compact-options label > span { align-items: center; font-size: .76rem; font-weight: 650; }
.measurement-grid { display: grid; gap: .75rem; margin-top: 1.25rem; }
.measurement-grid > label > span, .avoid-foods > label { display: block; margin-bottom: .45rem; font-size: .7rem; font-weight: 700; }
.measurement-grid label > div { display: grid; grid-template-columns: 1fr 5rem; }
.measurement-grid input, .measurement-grid select { height: 2.9rem; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: 0 .75rem; color: inherit; font: inherit; font-size: .78rem; }
.measurement-grid select { border-left: 0; }
.goal-options label { min-height: 9rem; align-items: center; gap: 1rem; overflow: hidden; }
.goal-options img { width: 5rem; height: 7rem; flex: 0 0 auto; object-fit: contain; object-position: center bottom; }
.goal-options strong, .goal-options small { display: block; }
.goal-options strong { font-size: .76rem; }
.goal-options small { margin-top: .18rem; color: rgba(23,23,19,.42); font-size: .62rem; }
.avoid-foods { margin-top: 1.3rem; }
.avoid-foods > div { display: flex; flex-wrap: wrap; gap: .45rem; border: 1px solid rgba(23,23,19,.13); padding: .55rem; }
.avoid-foods span { display: flex; align-items: center; gap: .35rem; background: var(--cream); padding: .4rem .55rem; font-size: .68rem; font-weight: 700; }
.avoid-foods button { border: 0; background: transparent; color: rgba(23,23,19,.45); }
.avoid-foods input { min-width: 9rem; flex: 1; border: 0; outline: 0; background: transparent; padding: .4rem; color: inherit; font: inherit; font-size: .72rem; }
.household-grid { display: grid; gap: .6rem; margin-top: 1.2rem; }
.household-person { display: flex; align-items: center; gap: .7rem; border: 1px solid rgba(23,23,19,.11); padding: .8rem; }
.household-person > .material-symbols-rounded { color: rgba(23,23,19,.46); }
.household-person > div:nth-child(2) { min-width: 0; flex: 1; }
.household-person strong, .household-person small { display: block; }
.household-person strong { font-size: .75rem; }
.household-person small { margin-top: .15rem; color: rgba(23,23,19,.4); font-size: .61rem; }
.quantity-stepper { display: grid; grid-template-columns: 2rem 2rem 2rem; align-items: center; border: 1px solid rgba(23,23,19,.12); }
.quantity-stepper button { height: 2rem; border: 0; background: transparent; color: inherit; font: inherit; font-size: 1rem; }
.quantity-stepper output { text-align: center; font-size: .72rem; font-weight: 800; }
.household-note { display: flex; align-items: center; gap: .4rem; margin-top: .75rem; color: rgba(23,23,19,.43); font-size: .65rem; }
.household-note .material-symbols-rounded { font-size: .95rem; }
.create-plan-layout .plan-builder { margin-top: 2.5rem; }
.focus-options { display: grid; gap: .5rem; }
.focus-options label { position: relative; }
.focus-options input { position: absolute; opacity: 0; }
.focus-options label > span { display: block; height: 100%; min-height: 5.5rem; border: 1px solid rgba(23,23,19,.12); padding: .8rem; cursor: pointer; }
.focus-options strong, .focus-options small { display: block; }
.focus-options strong { font-size: .75rem; }
.focus-options small { margin-top: .2rem; color: rgba(23,23,19,.42); font-size: .62rem; }
.focus-options input:checked + span { border-color: var(--saffron); background: #fffaf0; box-shadow: inset 3px 0 var(--saffron); }
.nutrition-focus-note { display: flex; min-width: 0; align-items: flex-start; gap: .5rem; border-left: 3px solid var(--saffron); padding: .7rem .8rem; background: #fff9e9; line-height: 1.55; }
.nutrition-focus-note .material-symbols-rounded { color: #8b6100; font-size: .9rem; }
.plan-review { position: sticky; top: 4.3rem; border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.4rem; }
.plan-review h2 { margin-top: .65rem; font-family: "Manrope",sans-serif; font-size: 1.45rem; font-weight: 800; letter-spacing: -.035em; }
.create-plan-safe-state { max-width: 72rem; }
.create-plan-locked-layout .plan-builder-step { align-items: start; }
.create-plan-locked-card { margin-top: 2rem; }
.create-plan-locked-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; }
.create-plan-locked-link { border-bottom: 2px solid var(--saffron); color: inherit; font-size: .68rem; font-weight: 800; }
.review-group { border-top: 1px solid rgba(23,23,19,.1); padding: 1rem 0; }
.review-group:first-of-type { margin-top: 1.3rem; }
.review-group span, .review-group strong, .review-group small { display: block; }
.review-group span { color: rgba(23,23,19,.42); font-size: .64rem; }
.review-group strong { margin-top: .35rem; font-size: .78rem; }
.review-group small { margin-top: .25rem; color: rgba(23,23,19,.46); font-size: .67rem; line-height: 1.45; }
.review-edit { display: flex; align-items: center; gap: .4rem; color: rgba(23,23,19,.6); font-size: .7rem; font-weight: 700; }
.review-edit .material-symbols-rounded { font-size: 1rem; }
.plan-review .app-primary-action { width: 100%; margin-top: 1.2rem; }
.review-note { margin-top: .7rem; color: rgba(23,23,19,.4); text-align: center; font-size: .62rem; line-height: 1.4; }
.profile-layout { display: grid; gap: 1.2rem; align-items: start; margin-top: 2.5rem; }
.profile-main { display: grid; gap: 1rem; }
.profile-card, .subscription-card { border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.4rem; }
.profile-identity { display: flex; align-items: center; gap: 1rem; }
.profile-avatar-wrap { position: relative; flex: 0 0 auto; }
.profile-large-avatar { display: grid; width: 4.4rem; height: 4.4rem; flex: 0 0 auto; place-items: center; background: #fff5d9; color: rgba(23,23,19,.65); font-size: 2rem; }
.profile-avatar-image { display: block; object-fit: cover; }
.profile-photo-form { position: absolute; right: -.35rem; bottom: -.35rem; }
.profile-photo-form input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.profile-photo-form label { display: grid; width: 1.75rem; height: 1.75rem; cursor: pointer; place-items: center; border: 2px solid #fff; background: var(--ink); color: #fff; }
.profile-photo-form label .material-symbols-rounded { font-size: .9rem; }
.profile-photo-form label span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.profile-photo-help { display: block; margin-top: .35rem; color: rgba(23,23,19,.36); font-size: .58rem; }
.profile-identity h2 { font-family: "Manrope",sans-serif; font-size: 1.2rem; font-weight: 800; }
.profile-identity p { margin-top: .2rem; color: rgba(23,23,19,.45); font-size: .72rem; }
.profile-identity button, .profile-card-heading button, .profile-action-row button { margin-top: .6rem; border: 0; background: transparent; padding: 0; color: rgba(23,23,19,.62); font: inherit; font-size: .68rem; font-weight: 750; text-decoration: underline; text-decoration-color: var(--saffron); text-underline-offset: 3px; }
.profile-card-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.profile-card-heading h2 { font-family: "Manrope",sans-serif; font-size: .95rem; font-weight: 800; }
.profile-card-heading p { margin-top: .3rem; color: rgba(23,23,19,.45); font-size: .7rem; }
.profile-card-heading button { margin: 0; }
.profile-details { display: grid; gap: 1rem; margin-top: 1.4rem; }
.profile-details div { border-top: 1px solid rgba(23,23,19,.09); padding-top: .8rem; }
.profile-details dt { color: rgba(23,23,19,.4); font-size: .64rem; }
.profile-details dd { margin-top: .3rem; font-size: .76rem; font-weight: 700; }
.profile-action-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.2rem; border-top: 1px solid rgba(23,23,19,.09); padding-top: 1rem; }
.profile-action-row strong, .profile-action-row small { display: block; }
.profile-action-row strong { font-size: .75rem; }
.profile-action-row small { margin-top: .25rem; color: rgba(23,23,19,.42); font-size: .64rem; }
.profile-action-row button { margin: 0; white-space: nowrap; }
.accessibility-settings { margin-top: 1.2rem; }
.accessibility-setting { display: flex; flex-direction: column; gap: .9rem; border-top: 1px solid rgba(23,23,19,.09); padding: 1rem 0; }
.accessibility-setting strong, .accessibility-setting small { display: block; }
.accessibility-setting strong { font-size: .76rem; }
.accessibility-setting small { max-width: 28rem; margin-top: .25rem; color: rgba(23,23,19,.43); font-size: .65rem; line-height: 1.45; }
.text-size-control { display: flex; flex-wrap: wrap; gap: .35rem; }
.text-size-control button { border: 1px solid rgba(23,23,19,.14); background: transparent; padding: .55rem .65rem; color: inherit; font: inherit; font-size: .66rem; font-weight: 700; }
.text-size-control button.active { border-color: var(--saffron); box-shadow: inset 0 -2px var(--saffron); }
.accessibility-toggle { cursor: pointer; }
.accessibility-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.accessibility-toggle > span { position: relative; width: 2.6rem; height: 1.4rem; flex: 0 0 auto; background: rgba(23,23,19,.16); transition: background-color .2s; }
.accessibility-toggle > span::after { position: absolute; top: .2rem; left: .2rem; width: 1rem; height: 1rem; content: ""; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: transform .2s; }
.accessibility-toggle input:checked + span { background: var(--saffron); }
.accessibility-toggle input:checked + span::after { transform: translateX(1.2rem); }
.subscription-card { position: sticky; top: 4.2rem; background: var(--ink); color: #fff; }
.subscription-label { display: flex; align-items: center; justify-content: space-between; gap: .7rem; color: rgba(255,255,255,.48); font-size: .62rem; }
.subscription-label b { background: #fff4d2; padding: .3rem .45rem; color: #6f4a00; font-size: .56rem; }
.subscription-top { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; }
.subscription-top > strong { font-family: "Manrope",sans-serif; font-size: 1.55rem; }
.subscription-top > p { display: flex; align-items: baseline; gap: .35rem; font-family: "Manrope",sans-serif; font-weight: 800; }
.subscription-top > p > span { font-size: 2.2rem; }
.subscription-top > p small { color: rgba(255,255,255,.46); font-family: "DM Sans",sans-serif; font-size: .68rem; font-weight: 500; }
.subscription-status { display: flex; align-items: center; gap: .6rem; margin-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); padding: 1rem 0; }
.subscription-status > span { width: .5rem; height: .5rem; background: var(--saffron); }
.subscription-status strong, .subscription-status small { display: block; font-size: .68rem; }
.subscription-status small { margin-top: .2rem; color: rgba(255,255,255,.43); }
.subscription-card ul { margin-top: .55rem; padding: 0; list-style: none; }
.subscription-card li { display: flex; align-items: center; gap: .5rem; padding: .42rem 0; color: rgba(255,255,255,.68); font-size: .7rem; }
.subscription-card li .material-symbols-rounded { color: var(--saffron); font-size: .95rem; }
.subscription-actions { display: grid; gap: .5rem; margin-top: 1.2rem; }
.subscription-actions form { margin: 0; }
.subscription-upgrade, .subscription-manage { display: flex; width: 100%; align-items: center; justify-content: space-between; border: 1px solid var(--saffron); padding: .8rem; font: inherit; font-size: .72rem; font-weight: 800; }
.subscription-upgrade { background: var(--saffron); color: var(--ink); }
.subscription-manage { background: transparent; color: #fff; }
.subscription-upgrade small, .subscription-manage small { font-size: .59rem; font-weight: 600; opacity: .65; }
.subscription-trial { display: flex; gap: .6rem; border-bottom: 1px solid rgba(255,255,255,.12); padding: .9rem 0; }
.subscription-trial > .material-symbols-rounded { color: var(--saffron); font-size: 1.1rem; }
.subscription-trial strong, .subscription-trial small { display: block; font-size: .64rem; }
.subscription-trial small { margin-top: .18rem; color: rgba(255,255,255,.45); line-height: 1.4; }
.subscription-includes { padding-top: .9rem; }
.subscription-includes > span { color: rgba(255,255,255,.4); font-size: .59rem; font-weight: 700; }
.checkin-layout { display: grid; gap: 1rem; align-items: start; max-width: 68rem; margin-top: 2.5rem; }
.checkin-card, .checkin-info { border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.4rem; }
.checkin-progress > span { color: rgba(23,23,19,.45); font-size: .65rem; }
.checkin-progress > div { height: 3px; margin-top: .6rem; background: var(--cream); }
.checkin-progress i { display: block; width: 33.33%; height: 100%; background: var(--saffron); transition: width .25s; }
.checkin-question { display: none; margin-top: 2rem; }
.checkin-question.active { display: block; }
.checkin-question legend { font-family: "Manrope",sans-serif; font-size: 1.35rem; font-weight: 800; line-height: 1.2; letter-spacing: -.035em; }
.checkin-question > p { margin-top: .5rem; color: rgba(23,23,19,.46); font-size: .72rem; }
.checkin-options { display: grid; gap: .55rem; margin-top: 1.2rem; }
.checkin-options label { position: relative; }
.checkin-options input { position: absolute; opacity: 0; }
.checkin-options span { display: block; border: 1px solid rgba(23,23,19,.12); padding: .8rem; font-size: .75rem; font-weight: 650; cursor: pointer; }
.checkin-options input:checked + span { border-color: var(--saffron); background: #fffaf0; box-shadow: inset 3px 0 var(--saffron); }
.checkin-question textarea { width: 100%; min-height: 9rem; margin-top: 1.2rem; resize: vertical; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .8rem; color: inherit; font: inherit; font-size: .75rem; }
.checkin-actions { display: flex; justify-content: space-between; margin-top: 1.5rem; }
.checkin-actions button { min-width: 6rem; border: 1px solid rgba(23,23,19,.15); background: transparent; padding: .75rem; color: inherit; font: inherit; font-size: .7rem; font-weight: 800; }
.checkin-actions button:last-child { border-color: var(--ink); background: var(--ink); color: #fff; }
.checkin-actions button:disabled { opacity: .35; }
.checkin-status { margin-top: .7rem; color: rgba(23,23,19,.55); font-size: .68rem; }
.checkin-info > .material-symbols-rounded { color: var(--saffron); font-size: 1.8rem; }
.checkin-info h2 { margin-top: .8rem; font-family: "Manrope",sans-serif; font-size: .95rem; font-weight: 800; }
.checkin-info p { margin-top: .55rem; color: rgba(23,23,19,.52); font-size: .7rem; line-height: 1.55; }
.checkin-info small { display: block; margin-top: 1rem; color: rgba(23,23,19,.38); font-size: .62rem; }
.plan-detail-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.app-secondary-action { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; border: 1px solid rgba(23,23,19,.16); background: transparent; padding: .85rem 1rem; color: var(--ink); font: inherit; font-size: .74rem; font-weight: 800; }
.app-secondary-action .material-symbols-rounded { font-size: 1rem; }
.plan-overview { display: grid; grid-template-columns: repeat(2,1fr); margin-top: 2.5rem; border: 1px solid rgba(23,23,19,.11); background: #fff; }
.plan-overview > div { padding: 1rem; border-right: 1px solid rgba(23,23,19,.09); border-bottom: 1px solid rgba(23,23,19,.09); }
.plan-overview > div[class^="macro-"] { box-shadow: inset 0 3px var(--macro-color); }
.plan-overview > div:nth-child(2n) { border-right: 0; }
.plan-overview > div:nth-last-child(-n+2) { border-bottom: 0; }
.plan-overview span, .plan-overview strong, .plan-overview small { display: block; }
.plan-overview span { color: rgba(23,23,19,.42); font-size: .62rem; }
.plan-overview strong { margin-top: .35rem; font-family: "Manrope",sans-serif; font-size: 1.35rem; }
.plan-overview small { margin-top: .2rem; color: rgba(23,23,19,.38); font-size: .58rem; }
.full-week { display: grid; gap: .8rem; margin-top: 1.2rem; }
.full-day { border: 1px solid rgba(23,23,19,.11); background: #fff; }
.full-day > header { display: flex; flex-direction: column; gap: .8rem; border-bottom: 1px solid rgba(23,23,19,.1); padding: 1rem; }
.full-day > header h2 { font-family: "Manrope",sans-serif; font-size: .95rem; font-weight: 800; }
.full-day > header div:first-child > span { display: block; margin-top: .2rem; color: rgba(23,23,19,.4); font-size: .62rem; }
.day-pcf { display: flex; flex-wrap: wrap; gap: .35rem; }
.day-pcf span { background: var(--macro-soft); padding: .35rem .45rem; color: var(--macro-color); font-size: .59rem; }
.day-pcf b { color: var(--macro-color); }
.day-meals { display: grid; }
.day-meal { display: grid; width: 100%; grid-template-columns: 4.5rem minmax(0,1fr) 1.2rem; align-items: center; gap: .75rem; border: 0; border-bottom: 1px solid rgba(23,23,19,.08); background: transparent; padding: .75rem; color: var(--ink); text-align: left; font: inherit; cursor: pointer; transition: background-color .18s; }
.day-meal:hover { background: #fffaf0; }
.day-meal:last-child { border-bottom: 0; }
.day-meal > img { width: 4.5rem; height: 3.7rem; object-fit: cover; }
.day-meal > img.meal-brand-fallback { object-fit: contain; background: #fff; padding: .45rem; }
.day-meal small, .day-meal strong, .day-meal em { display: block; }
.day-meal small { color: rgba(23,23,19,.4); font-size: .57rem; font-weight: 700; }
.day-meal strong { margin-top: .2rem; overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.day-meal em { margin-top: .25rem; color: rgba(23,23,19,.38); font-size: .58rem; font-style: normal; }
.day-meal > .material-symbols-rounded { color: rgba(23,23,19,.28); font-size: 1rem; }
.day-meal.has-safety-conflict{border-left:3px solid #b4483c;background:#fff7f4}.meal-conflict-label{display:inline-flex!important;align-items:center;gap:.25rem;width:max-content;margin-top:.3rem;color:#9b352d;font-size:.56rem}.meal-conflict-label .material-symbols-rounded{font-size:.8rem}.drawer-meal-warning{display:flex;gap:.65rem;margin-bottom:1rem;border:1px solid #d79c91;border-left:4px solid #b4483c;background:#fff4f1;padding:.8rem;color:#68251f}.drawer-meal-warning>.material-symbols-rounded{flex:0 0 auto}.drawer-meal-warning strong{font-size:.68rem}.drawer-meal-warning li,.drawer-meal-warning p{margin-top:.25rem;font-size:.61rem;line-height:1.45}.drawer-meal-warning ul{margin:.35rem 0 0 1rem}
.week-purpose { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.35rem; border: 1px solid rgba(23,23,19,.11); border-left: 3px solid var(--saffron); background: #fff; padding: 1rem; }
.week-purpose > div { display: flex; align-items: flex-start; gap: .7rem; }
.week-purpose > div > .material-symbols-rounded { color: #865a00; }
.week-purpose strong, .week-purpose small { display: block; }
.week-purpose strong { font-size: .7rem; }
.week-purpose small { max-width: 38rem; margin-top: .2rem; color: rgba(23,23,19,.46); font-size: .63rem; line-height: 1.5; }
.week-purpose nav { display: flex; flex-wrap: wrap; gap: .45rem; }
.week-purpose nav a { display: inline-flex; align-items: center; gap: .35rem; border: 1px solid rgba(23,23,19,.13); padding: .55rem .65rem; color: var(--ink); font-size: .62rem; font-weight: 750; }
.week-purpose nav .material-symbols-rounded { font-size: .9rem; }
.week-glance-day.is-current { border-left: 3px solid var(--saffron); }
.week-glance-day > header b { background: #fff4d2; padding: .35rem .5rem; color: #765000; font-size: .57rem; }
.week-day-label { color: #865a00 !important; font-size: .56rem !important; font-weight: 800; }
.week-meal-link { text-decoration: none; }
.week-meal-link strong { overflow: visible; line-height: 1.35; text-overflow: clip; white-space: normal; }
.week-meal-link em { line-height: 1.4; }
.dark .week-purpose { border-color: rgba(255,255,255,.12); border-left-color: var(--saffron); background: #191916; }
.dark .week-purpose small { color: rgba(245,242,233,.43); }
.dark .week-purpose nav a { border-color: rgba(255,255,255,.14); color: #f5f2e9; }
@media (min-width: 768px) {
  .week-purpose { flex-direction: row; align-items: center; justify-content: space-between; }
  .week-glance .day-meals { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
.drawer-pcf { display: flex; gap: .4rem; margin-top: 1rem; }
.drawer-pcf span { background: var(--macro-soft); padding: .4rem .55rem; color: var(--macro-color); font-size: .65rem; }
.drawer-full-nutrition { margin-top: .8rem; border: 1px solid rgba(23,23,19,.11); }
.drawer-full-nutrition > summary { display: flex; cursor: pointer; list-style: none; align-items: center; justify-content: space-between; padding: .75rem; font-size: .66rem; font-weight: 800; }
.drawer-full-nutrition > summary::-webkit-details-marker { display: none; }
.drawer-full-nutrition > summary .material-symbols-rounded { font-size: 1rem; transition: transform .18s ease; }
.drawer-full-nutrition[open] > summary .material-symbols-rounded { transform: rotate(180deg); }
.drawer-full-nutrition dl { border-top: 1px solid rgba(23,23,19,.09); padding: 0 .75rem; }
.drawer-full-nutrition dl > div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(23,23,19,.08); padding: .55rem 0; font-size: .62rem; }
.drawer-full-nutrition dt { color: rgba(23,23,19,.5); }
.drawer-full-nutrition dd { font-weight: 800; }
.drawer-full-nutrition > p { padding: .65rem .75rem; color: rgba(23,23,19,.45); font-size: .57rem; line-height: 1.5; }
.meal-drawer-scrim { position: fixed; inset: 0; z-index: 80; background: rgba(0,0,0,.48); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); transform: translateZ(0); }
.meal-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 90; display: flex; width: min(31rem,100vw); height: 100vh; height: 100dvh; min-height: 0; flex-direction: column; overflow: hidden; background: #fff; color: var(--ink); box-shadow: -20px 0 55px rgba(0,0,0,.18); backface-visibility: hidden; transform: translate3d(105%,0,0); will-change: transform; transition: transform .3s cubic-bezier(.22,.8,.25,1); }
.meal-drawer.is-open { transform: translate3d(0,0,0); }
.meal-drawer-head { display: flex; height: 4.1rem; flex: 0 0 auto; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(23,23,19,.1); padding: 0 1.2rem; }
.meal-drawer-head p { font-size: .72rem; font-weight: 800; }
.meal-drawer-head button { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 0; background: transparent; color: inherit; }
.meal-drawer-scroll { min-width: 0; min-height: 0; flex: 1 1 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; scrollbar-gutter: stable; }
.meal-drawer-image-wrap{position:relative;width:100%;height:clamp(15rem,38vh,21rem);overflow:hidden;background:#eeeae0}.meal-drawer-image-wrap>img{position:absolute!important;inset:0!important;display:block!important;width:100%!important;min-width:100%!important;max-width:none!important;height:100%!important;object-fit:cover!important;object-position:center!important;image-rendering:auto}.meal-drawer-image-wrap>img.meal-brand-fallback{object-fit:contain!important;background:#fff;padding:3.25rem}.meal-drawer-image-wrap::after{position:absolute;right:0;bottom:0;width:8rem;height:7rem;background:radial-gradient(circle at 100% 100%,rgba(12,12,10,.62) 0,rgba(12,12,10,.3) 34%,transparent 72%);content:"";pointer-events:none}.meal-image-report-open{position:absolute;right:.75rem;bottom:.7rem;z-index:2;display:grid;width:2.75rem;height:2.75rem;place-items:center;border:0;background:transparent;padding:0;color:#fff;cursor:pointer;filter:drop-shadow(0 2px 3px rgba(0,0,0,.65))}.meal-image-report-open:hover{color:var(--saffron);transform:translateY(-1px)}.meal-image-report-open:focus-visible{outline:2px solid var(--saffron);outline-offset:1px}.meal-image-report-open:disabled{display:none}.meal-image-report-open .material-symbols-rounded{font-size:1.35rem;color:currentColor}
.meal-drawer-intro { padding: 1.4rem; }
.meal-drawer-intro > p { color: rgba(23,23,19,.44); font-size: .65rem; font-weight: 700; }
.meal-drawer-intro h2 { margin-top: .5rem; font-family: "Manrope",sans-serif; font-size: 1.65rem; font-weight: 800; line-height: 1.1; letter-spacing: -.04em; }
.drawer-section { border-top: 1px solid rgba(23,23,19,.1); padding: 1.4rem; }
.drawer-section-title { display: flex; align-items: center; justify-content: space-between; }
.drawer-section h3 { font-family: "Manrope",sans-serif; font-size: .88rem; font-weight: 800; }
.drawer-section-title > span { color: rgba(23,23,19,.4); font-size: .62rem; }
.drawer-section ul, .drawer-section ol { margin: 1rem 0 0; padding: 0; list-style: none; }
.drawer-section ul li { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(23,23,19,.07); padding: .65rem 0; font-size: .72rem; }
.drawer-section ul li span { color: rgba(23,23,19,.58); }
.drawer-section ul li strong { white-space: nowrap; }
.drawer-section ol li { display: grid; grid-template-columns: 1.6rem 1fr; gap: .65rem; margin-top: .85rem; }
.drawer-section ol li > span { display: grid; width: 1.6rem; height: 1.6rem; place-items: center; background: #fff5d9; font-size: .62rem; font-weight: 800; }
.drawer-section ol p { color: rgba(23,23,19,.6); font-size: .72rem; line-height: 1.55; }
.meal-drawer-actions { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .35rem; border-top: 1px solid rgba(23,23,19,.1); background: #fff; padding: .55rem .7rem; }
.meal-drawer-actions form { display: flex; }
.meal-drawer-actions form button { width: 100% !important; min-height: 2.65rem !important; padding: .5rem .35rem !important; font-size: .57rem !important; line-height: 1.2; }
.meal-drawer-actions > button { width: 100% !important; min-height: 2.65rem !important; padding: .5rem .35rem !important; font-size: .57rem !important; line-height: 1.2; }
.meal-drawer-actions > p { grid-column: 1 / -1; min-height: 0; color: rgba(23,23,19,.5); font-size: .64rem; line-height: 1.4; }
.meal-drawer-actions > p:empty { display: none; }
.drawer-save, .drawer-grocery, .drawer-swap { display: flex; min-height: 2.65rem; align-items: center; justify-content: center; gap: .3rem; font: inherit; font-size: .6rem; font-weight: 800; }
.drawer-save { border: 1px solid rgba(23,23,19,.18); background: transparent; color: var(--ink); }
.drawer-grocery { border: 1px solid rgba(23,23,19,.18); background: #fff7df; color: var(--ink); }
.drawer-save.is-saved { border-color: var(--saffron); background: #fff7df; }
.drawer-swap { border: 1px solid var(--ink); background: var(--ink); color: #fff; }
.drawer-save .material-symbols-rounded, .drawer-grocery .material-symbols-rounded, .drawer-swap .material-symbols-rounded { font-size: 1.05rem; }
body.drawer-open { overflow: hidden; }
.meal-swap-drawer { z-index: 95; }
.meal-swap-scroll { padding-bottom: 1rem; }
.meal-swap-intro { border-bottom: 1px solid rgba(23,23,19,.08); }
.meal-swap-intro > span { display: block; margin-top: .65rem; color: rgba(23,23,19,.48); font-size: .68rem; }
.meal-swap-form { display: grid; gap: .85rem; padding: 1.4rem; }
.meal-swap-form label > span { display: block; margin-bottom: .35rem; font-size: .64rem; font-weight: 800; }
.meal-swap-form input, .meal-swap-form select { width: 100%; min-width: 0; height: 2.75rem; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: 0 .7rem; color: inherit; font: inherit; font-size: .68rem; }
.meal-swap-form > button { width: 100%; margin-top: .2rem; }
.meal-swap-form > p { color: rgba(23,23,19,.46); font-size: .62rem; line-height: 1.5; }
.updates-list { display: grid; gap: 1rem; max-width: 62rem; margin-top: 2.5rem; }
.update-card { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 1rem; border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.25rem; }
.update-card-icon { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; background: #fff5d9; color: #8a5d00; }
.update-card-icon .material-symbols-rounded { font-size: 1.25rem; }
.update-card-head { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.update-card-head h2 { font-family: "Manrope",sans-serif; font-size: 1rem; font-weight: 800; }
.update-card-head span { background: #fff5d9; padding: .25rem .4rem; color: #805800; font-size: .56rem; font-weight: 800; }
.update-card p { margin-top: .45rem; color: rgba(23,23,19,.54); font-size: .72rem; line-height: 1.6; }
.update-card time { display: block; margin-top: .7rem; color: rgba(23,23,19,.36); font-size: .62rem; font-weight: 700; }
.feedback-layout { display: grid; gap: 1.2rem; align-items: start; margin-top: 2.5rem; }
.nutrition-source { display: flex; align-items: center; gap: .75rem; margin-top: 2rem; border: 1px solid rgba(23,23,19,.11); background: #fff; padding: .9rem 1rem; }
.nutrition-source > .material-symbols-rounded { color: #9b6900; }
.nutrition-source > div { min-width: 0; flex: 1; }
.nutrition-source strong, .nutrition-source small { display: block; }
.nutrition-source strong { font-size: .72rem; }
.nutrition-source small { margin-top: .15rem; color: rgba(23,23,19,.43); font-size: .62rem; }
.nutrition-source a { color: inherit; font-size: .65rem; font-weight: 800; }
.nutrition-days { display: grid; gap: .55rem; margin-top: 1rem; }
.nutrition-detail-grid { display: grid; gap: .55rem; margin-top: .7rem; }
.nutrition-detail-grid article { border: 1px solid rgba(23,23,19,.1); background: #fff; padding: .85rem; }
.nutrition-detail-grid span, .nutrition-detail-grid strong, .nutrition-detail-grid small { display: block; }
.nutrition-detail-grid span { color: rgba(23,23,19,.48); font-size: .62rem; font-weight: 750; }
.nutrition-detail-grid strong { margin-top: .35rem; font-family: "Manrope",sans-serif; font-size: 1.05rem; }
.nutrition-detail-grid small { margin-top: .2rem; color: rgba(23,23,19,.4); font-size: .56rem; }
.nutrition-estimate-note { display: flex; align-items: center; gap: .7rem; margin-top: .7rem; border: 1px solid rgba(23,23,19,.1); background: #fff9e9; padding: .8rem 1rem; }
.nutrition-estimate-note > span { flex: 0 0 auto; color: #8b6100; }
.nutrition-estimate-note p { color: rgba(23,23,19,.55); font-size: .62rem; line-height: 1.5; }
.nutrition-estimate-note strong { color: var(--ink); }
.meal-safety-alert { display: flex; align-items: flex-start; gap: .75rem; max-width: 65rem; margin: 1rem 0; border: 1px solid #d79c91; border-left: 4px solid #b4483c; background: #fff4f1; padding: .9rem; }
.meal-safety-alert > .material-symbols-rounded { color: #a33a31; }
.meal-safety-alert > div { min-width: 0; flex: 1; }
.meal-safety-alert strong { display: block; font-size: .7rem; }
.meal-safety-alert p, .meal-safety-alert summary, .meal-safety-alert li { margin-top: .22rem; color: rgba(23,23,19,.62); font-size: .61rem; line-height: 1.5; }
.meal-safety-alert summary { cursor: pointer; font-weight: 800; }
.meal-safety-alert ul { margin: .5rem 0 0 1rem; }
.meal-safety-alert li span { color: #983c33; }
.meal-safety-alert > a { flex: 0 0 auto; color: inherit; font-size: .62rem; font-weight: 800; }
.meal-safety-alert.compact { align-items: center; }
.nutrition-days article { display: grid; grid-template-columns: 3.5rem minmax(0,1fr); gap: .2rem .7rem; border: 1px solid rgba(23,23,19,.1); background: #fff; padding: .8rem; }
.nutrition-days span { grid-row: 1 / 3; align-self: center; color: rgba(23,23,19,.42); font-size: .62rem; font-weight: 700; }
.nutrition-days strong { font-size: .7rem; }
.nutrition-days small { color: rgba(23,23,19,.43); font-size: .6rem; }
.preplanning-layout { display: grid; gap: 1rem; align-items: start; margin-top: 2.5rem; }
.preplanning-form, .upcoming-weeks { border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.25rem; }
.preplanning-form { display: grid; gap: 1rem; }
.preplanning-form h2, .upcoming-weeks h2 { font-family: "Manrope",sans-serif; font-size: 1rem; font-weight: 800; }
.preplanning-form > div:first-child p { margin-top: .35rem; color: rgba(23,23,19,.48); font-size: .68rem; line-height: 1.5; }
.preplanning-form label > span { display: block; margin-bottom: .4rem; font-size: .67rem; font-weight: 800; }
.preplanning-form input, .preplanning-form select, .preplanning-form textarea { width: 100%; border: 1px solid rgba(23,23,19,.14); background-color: transparent; padding: .75rem; color: inherit; font: inherit; font-size: .73rem; }
.preplanning-form input, .preplanning-form select { height: 2.9rem; }
.preplanning-form textarea { min-height: 6.5rem; resize: vertical; }
.preplanning-fields { display: grid; gap: 1rem; }
.upcoming-weeks { display: grid; gap: .8rem; }
.upcoming-weeks article { display: grid; grid-template-columns: 3.2rem minmax(0,1fr) auto auto; align-items: center; gap: .6rem; border-top: 1px solid rgba(23,23,19,.09); padding-top: .8rem; }
.upcoming-weeks article time { font-family: "Manrope",sans-serif; font-size: .68rem; font-weight: 800; }
.upcoming-weeks article strong, .upcoming-weeks article small { display: block; }
.upcoming-weeks article strong { font-size: .68rem; }
.upcoming-weeks article small, .upcoming-empty { margin-top: .15rem; color: rgba(23,23,19,.42); font-size: .61rem; line-height: 1.5; }
.upcoming-weeks article > a { color: inherit; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.upcoming-weeks article form button { display: grid; width: 2rem; height: 2rem; place-items: center; border: 0; background: transparent; color: rgba(23,23,19,.42); }
.upcoming-weeks article form .material-symbols-rounded { font-size: 1rem; }
.feedback-form, .public-feedback { border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.4rem; }
.feedback-form-heading h2, .public-feedback > div h2 { font-family: "Manrope",sans-serif; font-size: 1rem; font-weight: 800; }
.feedback-form-heading p, .public-feedback > div p { margin-top: .35rem; color: rgba(23,23,19,.47); font-size: .7rem; line-height: 1.5; }
.feedback-rating { margin-top: 1.4rem; }
.feedback-rating legend, .feedback-field > span { display: block; margin-bottom: .55rem; font-size: .7rem; font-weight: 700; }
.feedback-rating > div { display: grid; grid-template-columns: repeat(3,1fr); gap: .45rem; }
.feedback-rating label { position: relative; }
.feedback-rating input { position: absolute; opacity: 0; }
.feedback-rating label > span { display: block; border: 1px solid rgba(23,23,19,.12); padding: .65rem; text-align: center; color: rgba(23,23,19,.48); }
.feedback-rating label small { display: block; margin-top: .25rem; font-family: "DM Sans",sans-serif; font-size: .6rem; }
.feedback-rating input:checked + span { border-color: var(--saffron); background: #fffaf0; color: var(--ink); box-shadow: inset 0 -2px var(--saffron); }
.feedback-field { display: block; margin-top: 1.2rem; }
.feedback-field select, .feedback-field textarea { width: 100%; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .75rem; color: inherit; font: inherit; font-size: .75rem; }
.feedback-field select { height: 2.9rem; padding: 0 .75rem; }
.feedback-field textarea { min-height: 8rem; resize: vertical; }
.feedback-public { display: flex; align-items: start; gap: .7rem; margin: 1rem 0; }
.feedback-public input { margin-top: .15rem; accent-color: var(--saffron); }
.feedback-public strong, .feedback-public small { display: block; }
.feedback-public strong { font-size: .7rem; }
.feedback-public small { margin-top: .25rem; color: rgba(23,23,19,.42); font-size: .63rem; line-height: 1.45; }
.feedback-status { min-height: 1rem; margin-top: .7rem; color: rgba(23,23,19,.58); font-size: .68rem; }
.public-feedback { display: grid; gap: 1rem; }
.public-feedback article { border-top: 1px solid rgba(23,23,19,.1); padding-top: 1rem; }
.public-feedback-head { display: flex; align-items: center; gap: .6rem; }
.feedback-avatar { display: grid; width: 2rem; height: 2rem; place-items: center; background: #fff5d9; font-size: .68rem; font-weight: 800; }
.public-feedback-head strong, .public-feedback-head small { display: block; font-size: .67rem; }
.public-feedback-head small { margin-top: .1rem; color: rgba(23,23,19,.38); }
.public-feedback article > p { margin-top: .7rem; color: rgba(23,23,19,.63); font-size: .74rem; line-height: 1.6; }
.feedback-topic { display: inline-block; margin-top: .7rem; color: rgba(23,23,19,.4); font-size: .6rem; font-weight: 700; }
.sidebar-scrim { position: fixed; inset: 0; z-index: 50; background: rgba(0,0,0,.5); }
body.sidebar-open { overflow: hidden; }

.dark .app-shell { background: #10100e; }
.dark .app-mobile-head { border-color: rgba(255,255,255,.1); background: rgba(23,23,19,.92); }
.dark .app-breadcrumbs { color: rgba(245,242,233,.38); }
.dark .app-breadcrumbs { border-color: rgba(255,255,255,.09); background: rgba(16,16,14,.94); }
.dark .app-breadcrumbs .material-symbols-rounded { color: rgba(245,242,233,.24); }
.dark .app-breadcrumbs strong { color: rgba(245,242,233,.68); }
.dark .app-kicker { color: rgba(245,242,233,.5); }
.dark .app-page-heading > div > p:last-child,
.dark .meal-feature-copy p:not(.app-kicker),
.dark .nutrition-lead div > span,
.dark .plain-stat > span,
.dark .preferences-form fieldset > p { color: rgba(245,242,233,.53); }
.dark .week-strip, .dark .meal-feature, .dark .today-list, .dark .saved-meal, .dark .grocery-board, .dark .nutrition-lead, .dark .plain-stat, .dark .preferences-form fieldset { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .day-tab { border-color: rgba(255,255,255,.1); color: rgba(245,242,233,.5); }
.dark .day-tab.active { background: #29251a; color: #f5f2e9; }
.dark .today-list-head span, .dark .mini-meal span, .dark .mini-meal small, .dark .saved-meal small, .dark .grocery-group h2 span, .dark .nutrition-lead p, .dark .plain-stat p { color: rgba(245,242,233,.4); }
.dark .mini-meal, .dark .grocery-group { border-color: rgba(255,255,255,.1); }
.dark .add-meal, .dark .choice-grid label, .dark .preference-input input { border-color: rgba(255,255,255,.15); color: rgba(245,242,233,.65); }
.dark .grocery-group label { color: rgba(245,242,233,.65); }
.dark .grocery-group input:checked + span { color: rgba(245,242,233,.32); }
.dark .manual-grocery-form { border-color: rgba(255,255,255,.1); }
.dark .manual-grocery-form label, .dark .grocery-group label small, .dark .manual-items-empty { color: rgba(245,242,233,.4); }
.dark .manual-grocery-form input, .dark .manual-grocery-form select { border-color: rgba(255,255,255,.14); }
.dark .grocery-progress-track, .dark .plain-meter, .dark .preference-input span { background: #272720; }
.dark .plan-builder-step { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .plan-step-number, .dark .plan-date { background: #28251c; color: #f5f2e9; }
.dark .plan-builder-step p, .dark .plan-row-copy small, .dark .plan-date small, .dark .plan-status { color: rgba(245,242,233,.44); }
.dark .plan-choice-row label, .dark .plan-builder textarea { border-color: rgba(255,255,255,.14); }
.dark .meal-slot-validation { color: #f0a49d; }
.dark .plans-list, .dark .plan-row, .dark .plan-row-shell { border-color: rgba(255,255,255,.12); }
.dark .plan-row { color: #f5f2e9; }
.dark .plan-row-menu > summary, .dark .plan-row-menu > div { border-color: rgba(255,255,255,.13); background: #191916; }
.dark .plan-row-menu button:hover { background: #29251a; }
.dark .saved-meal-actions a, .dark .saved-meal-actions button { border-color: rgba(255,255,255,.13); }
.dark .plan-macros i.macro-protein, .dark .plan-macros i.macro-carbs, .dark .plan-macros i.macro-fat, .dark .day-pcf span, .dark .drawer-pcf span { background: color-mix(in srgb, var(--macro-color) 18%, #191916); color: color-mix(in srgb, var(--macro-color) 72%, white); }
.dark .plan-macros em { color: rgba(245,242,233,.34); }
.dark .preference-section, .dark .plan-review { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .preference-section-heading > span { background: #28251c; }
.dark .preference-section-heading p, .dark .smart-options small, .dark .goal-options small, .dark .focus-options small, .dark .review-group small, .dark .review-note { color: rgba(245,242,233,.43); }
.dark .smart-options label > span, .dark .compact-options label > span, .dark .goal-options label, .dark .measurement-grid input, .dark .measurement-grid select, .dark .avoid-foods > div, .dark .focus-options label > span { border-color: rgba(255,255,255,.14); }
.dark .smart-options input:checked + span, .dark .compact-options input:checked + span, .dark .goal-options label:has(input:checked), .dark .focus-options input:checked + span { background: #29251a; }
.dark .review-edit { color: rgba(245,242,233,.6); }
.dark .avoid-foods span { background: #292923; }
.dark .avoid-foods button { color: rgba(245,242,233,.5); }
.dark .household-person, .dark .quantity-stepper { border-color: rgba(255,255,255,.13); }
.dark .household-person > .material-symbols-rounded, .dark .household-person small, .dark .household-note { color: rgba(245,242,233,.43); }
.dark .review-group { border-color: rgba(255,255,255,.1); }
.dark .review-group span { color: rgba(245,242,233,.4); }
.dark .plan-name-field input { border-color: rgba(255,255,255,.14); }
.dark .profile-card { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .profile-large-avatar { background: #28251c; color: rgba(245,242,233,.65); }
.dark .profile-photo-form label { border-color: #191916; background: var(--saffron); color: var(--ink); }
.dark .profile-photo-help { color: rgba(245,242,233,.35); }
.dark .profile-identity p, .dark .profile-card-heading p, .dark .profile-action-row small { color: rgba(245,242,233,.43); }
.dark .profile-identity button, .dark .profile-card-heading button, .dark .profile-action-row button { color: rgba(245,242,233,.66); }
.dark .profile-details div, .dark .profile-action-row { border-color: rgba(255,255,255,.1); }
.dark .profile-details dt { color: rgba(245,242,233,.4); }
.dark .checkin-card, .dark .checkin-info { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .checkin-progress > span, .dark .checkin-question > p, .dark .checkin-status, .dark .checkin-info p, .dark .checkin-info small { color: rgba(245,242,233,.45); }
.dark .checkin-progress > div { background: #292923; }
.dark .checkin-options span, .dark .checkin-question textarea, .dark .checkin-actions button { border-color: rgba(255,255,255,.14); }
.dark .checkin-options input:checked + span { background: #29251a; }
.dark .checkin-actions button:last-child { border-color: var(--saffron); background: var(--saffron); color: var(--ink); }
.dark .app-secondary-action { border-color: rgba(255,255,255,.15); color: #f5f2e9; }
.dark .plan-overview, .dark .full-day { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .plan-overview > div, .dark .full-day > header, .dark .day-meal { border-color: rgba(255,255,255,.09); }
.dark .plan-overview span, .dark .plan-overview small, .dark .full-day > header div:first-child > span, .dark .day-meal small, .dark .day-meal em { color: rgba(245,242,233,.4); }
.dark .day-pcf b, .dark .day-meal { color: #f5f2e9; }
.dark .day-meal > .material-symbols-rounded { color: rgba(245,242,233,.28); }
.dark .day-meal:hover { background: #242117; }
.dark .day-meal.has-safety-conflict{border-left-color:#d36b5f;background:#2a1d1b}.dark .meal-conflict-label{color:#efa69d}.dark .drawer-meal-warning{border-color:#70413c;border-left-color:#d36b5f;background:#2a1d1b;color:#f5c1bb}
.meal-image-report-content{padding:2rem 1.5rem}.meal-image-report-mark{display:grid;width:3rem;height:3rem;place-items:center;background:#fff3c8;color:#8d6200}.meal-image-report-content .eyebrow{margin-top:1.5rem;color:#9b6b00;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.meal-image-report-content h2{margin:.45rem 0 .65rem;font:800 1.65rem/1.15 Manrope,sans-serif;letter-spacing:-.035em}.meal-image-report-content>p:not(.eyebrow){color:rgba(23,23,19,.58);font-size:.86rem;line-height:1.6}.meal-image-report-content form{display:grid;gap:1.1rem;margin-top:1.75rem}.meal-image-report-content label>span{display:block;margin-bottom:.45rem;font-size:.72rem;font-weight:800}.meal-image-report-content label small{color:rgba(23,23,19,.45);font-weight:600}.meal-image-report-content select,.meal-image-report-content textarea{width:100%;border:1px solid rgba(23,23,19,.17);background:#fff;padding:.8rem;color:inherit;font:inherit;font-size:.78rem}.meal-image-report-content textarea{resize:vertical}.meal-image-report-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.meal-image-report-actions button{min-height:3rem;border:1px solid rgba(23,23,19,.15);background:transparent;color:inherit;font:inherit;font-size:.72rem;font-weight:800}.meal-image-report-actions button[type=submit]{border-color:var(--ink);background:var(--ink);color:#fff}.dark .meal-image-report-open{background:rgba(21,21,18,.94);border-color:rgba(255,255,255,.14);color:#fff}.dark .meal-image-report-content>p:not(.eyebrow),.dark .meal-image-report-content label small{color:rgba(245,242,233,.58)}.dark .meal-image-report-content select,.dark .meal-image-report-content textarea{border-color:rgba(255,255,255,.14);background:#151512}.dark .meal-image-report-actions button{border-color:rgba(255,255,255,.16)}
.admin-image-head { align-items: flex-start; }
.admin-image-head > div { max-width: 46rem; }
.admin-eyebrow { display: block; margin-bottom: .35rem; color: #8b5e00; font-size: .56rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.admin-panel-head .admin-template-action { display: inline-flex; min-height: 2.7rem; flex: 0 0 auto; align-items: center; justify-content: center; gap: .45rem; border: 1px solid rgba(23,23,19,.18); background: #fff; padding: .65rem .85rem; color: var(--ink); box-shadow: 0 2px 0 rgba(23,23,19,.12); font-size: .65rem; font-weight: 800; }
.admin-template-action:hover { border-color: #bd8100; background: #fff9e9; transform: translateY(-1px); }
.admin-template-action .material-symbols-rounded { color: #8b5e00; font-size: 1rem; }
.admin-image-workflow { display: grid; gap: .65rem; margin: 1.25rem 0; counter-reset: catalog-step; }
.admin-image-workflow article { display: grid; grid-template-columns: 2rem minmax(0,1fr); gap: .75rem; border: 1px solid rgba(23,23,19,.1); background: rgba(255,255,255,.45); padding: 1rem; }
.admin-image-workflow article > span { display: grid; width: 2rem; height: 2rem; place-items: center; background: #fff1c4; color: #624300; font-size: .67rem; font-weight: 900; }
.admin-image-workflow strong { display: block; font-size: .7rem; }
.admin-image-workflow p { margin-top: .28rem; color: rgba(23,23,19,.52); font-size: .62rem; line-height: 1.55; }
.admin-image-import { display: grid; grid-template-columns: minmax(12rem,.6fr) minmax(18rem,1.4fr) auto; align-items: center; gap: 1rem; border: 1px solid rgba(23,23,19,.1); background: #fff; padding: 1rem; }
.admin-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1.25rem}.admin-upload-grid .admin-image-import{grid-template-columns:1fr auto;gap:.75rem;padding:1rem}.admin-upload-title{grid-column:1/-1;display:flex;align-items:center;gap:.65rem}.admin-upload-title>.material-symbols-rounded{display:grid;width:2.25rem;height:2.25rem;place-items:center;background:#fff1c4;color:#805600;font-size:1.1rem}.admin-upload-title strong,.admin-upload-title small{display:block}.admin-upload-title strong{font-size:.72rem}.admin-upload-title small{margin-top:.12rem;color:rgba(23,23,19,.46);font-size:.57rem}.admin-upload-grid .admin-file-picker{min-height:3.6rem;grid-template-columns:minmax(0,1fr) auto;padding:.55rem .7rem}.admin-upload-grid .admin-import-action{min-height:3.6rem;box-shadow:none}
.admin-photo-upload { margin-bottom: .75rem; }
.admin-import-copy > strong { display: block; font-family: "Manrope",sans-serif; font-size: .74rem; }
.admin-import-copy p { margin-top: .3rem; color: rgba(23,23,19,.48); font-size: .6rem; line-height: 1.5; }
.admin-file-picker { display: grid; min-height: 4.4rem; cursor: pointer; grid-template-columns: 2.5rem minmax(0,1fr) auto; align-items: center; gap: .75rem; border: 1px dashed rgba(23,23,19,.25); background: #faf9f5; padding: .65rem .8rem; }
.admin-file-picker:hover, .admin-image-import.has-file .admin-file-picker { border-color: #c48600; background: #fff9e9; }
.admin-file-picker input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.admin-file-picker > .material-symbols-rounded { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; background: #fff1c4; color: #805600; font-size: 1.2rem; }
.admin-file-picker > span:nth-of-type(2) { min-width: 0; }
.admin-file-picker strong, .admin-file-picker small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-file-picker strong { font-size: .66rem; }
.admin-file-picker small { margin-top: .18rem; color: rgba(23,23,19,.45); font-size: .57rem; }
.admin-file-picker em { border-bottom: 2px solid var(--saffron); color: var(--ink); font-size: .61rem; font-style: normal; font-weight: 850; }
.admin-import-action { display: inline-flex; min-height: 3.1rem; align-items: center; justify-content: center; gap: .45rem; border: 1px solid var(--ink); background: var(--ink); padding: .7rem 1rem; color: #fff; box-shadow: 0 3px 0 #7d7d71; font: inherit; font-size: .67rem; font-weight: 850; white-space: nowrap; }
.admin-import-action .material-symbols-rounded { font-size: 1rem; }
.admin-import-action:disabled { cursor: not-allowed; border-color: rgba(23,23,19,.12); background: rgba(23,23,19,.08); color: rgba(23,23,19,.35); box-shadow: none; transform: none; }
.admin-image-table-wrap { overflow: auto; }
.admin-image-table { width: 100%; border-collapse: collapse; font-size: .62rem; }
.admin-image-table th, .admin-image-table td { border-bottom: 1px solid rgba(23,23,19,.09); padding: .65rem; text-align: left; vertical-align: top; }
.admin-image-table td strong, .admin-image-table td small { display: block; }
.admin-image-table td small { margin-top: .15rem; color: rgba(23,23,19,.45); }
.status-active { color: #24683f; font-weight: 800; }
.status-inactive { color: #8a5a22; font-weight: 800; }
.dark .admin-image-workflow article, .dark .admin-image-import, .dark .admin-image-table th, .dark .admin-image-table td { border-color: rgba(255,255,255,.1); }
.dark .admin-image-workflow article { background: rgba(255,255,255,.025); }
.dark .admin-image-workflow p, .dark .admin-import-copy p, .dark .admin-file-picker small, .dark .admin-image-table td small { color: rgba(245,242,233,.48); }
.dark .admin-panel-head .admin-template-action, .dark .admin-image-import { border-color: rgba(255,255,255,.13); background: #191916; color: #f5f2e9; }
.dark .admin-file-picker { border-color: rgba(255,255,255,.18); background: #11110f; }
.dark .admin-file-picker:hover, .dark .admin-image-import.has-file .admin-file-picker { border-color: var(--saffron); background: #29251a; }
.dark .admin-file-picker em { color: #f5f2e9; }
.dark .admin-import-action { border-color: #f5f2e9; background: #f5f2e9; color: #171713; box-shadow: 0 3px 0 #77756d; }
.dark .admin-import-action:disabled { border-color: rgba(255,255,255,.1); background: rgba(255,255,255,.07); color: rgba(255,255,255,.3); box-shadow: none; }
@media (max-width: 960px) { .admin-image-import { grid-template-columns: 1fr; } .admin-import-action { width: 100%; } }
@media (max-width:960px){.admin-upload-grid{grid-template-columns:1fr}.admin-upload-grid .admin-image-import{grid-template-columns:1fr auto}}
@media (max-width: 640px) { .admin-image-head { align-items: stretch; flex-direction: column; } .admin-panel-head .admin-template-action { width: 100%; } .admin-file-picker { grid-template-columns: 2.5rem minmax(0,1fr); } .admin-file-picker em { display: none; } }
@media (min-width: 768px) { .admin-image-workflow { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.dark img.meal-brand-fallback { content: url("/assets/Get-Moving-Meals-Logo.png"); background: #151512; }
.dark .meal-drawer, .dark .meal-drawer-actions { background: #151512; color: #f5f2e9; }
.dark .update-card { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .update-card-icon, .dark .update-card-head span { background: #2b2412; color: #e5b94c; }
.dark .update-card p { color: rgba(245,242,233,.54); }
.dark .update-card time { color: rgba(245,242,233,.36); }
.dark .drawer-grocery { border-color: rgba(255,255,255,.16); background: #2b2412; color: #f5f2e9; }
.dark .meal-drawer-head, .dark .drawer-section, .dark .meal-drawer-actions, .dark .drawer-section ul li { border-color: rgba(255,255,255,.1); }
.dark .meal-drawer-intro > p, .dark .drawer-section-title > span, .dark .drawer-section ul li span, .dark .drawer-section ol p, .dark .meal-drawer-actions > p { color: rgba(245,242,233,.56); }
.dark .drawer-section ol li > span { background: #28251c; }
.dark .drawer-save { border-color: rgba(255,255,255,.18); color: #f5f2e9; }
.dark .drawer-save.is-saved { border-color: var(--saffron); background: #29251a; }
.dark .drawer-swap { border-color: var(--saffron); background: var(--saffron); color: var(--ink); }
.dark .accessibility-setting { border-color: rgba(255,255,255,.1); }
.dark .accessibility-setting small { color: rgba(245,242,233,.43); }
.dark .text-size-control button { border-color: rgba(255,255,255,.14); }
.dark .accessibility-toggle > span { background: rgba(255,255,255,.16); }
.dark .feedback-form, .dark .public-feedback { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .plan-ready-notice { border-color: rgba(255,176,0,.3); background: #2b2412; }
.dark .plan-ready-notice p { color: rgba(245,242,233,.55); }
.dark .nutrition-source, .dark .nutrition-days article, .dark .preplanning-form, .dark .upcoming-weeks { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .nutrition-detail-grid article, .dark .nutrition-estimate-note, .dark .drawer-full-nutrition { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .drawer-full-nutrition dl { border-color: rgba(255,255,255,.1); }
.dark .drawer-full-nutrition dl > div { border-color: rgba(255,255,255,.08); }
.dark .nutrition-detail-grid span, .dark .nutrition-detail-grid small, .dark .nutrition-estimate-note p, .dark .drawer-full-nutrition dt, .dark .drawer-full-nutrition > p { color: rgba(245,242,233,.46); }
.dark .nutrition-estimate-note strong { color: #f5f2e9; }
.dark .meal-safety-alert { border-color: #70413c; border-left-color: #d36b5f; background: #2a1d1b; }
.dark .meal-safety-alert p, .dark .meal-safety-alert summary, .dark .meal-safety-alert li { color: rgba(245,242,233,.62); }
.dark .meal-safety-alert li span { color: #efa69d; }
.dark .nutrition-source small, .dark .nutrition-days span, .dark .nutrition-days small, .dark .preplanning-form > div:first-child p, .dark .upcoming-weeks article small, .dark .upcoming-empty { color: rgba(245,242,233,.43); }
.dark .preplanning-form input, .dark .preplanning-form select, .dark .preplanning-form textarea, .dark .upcoming-weeks article { border-color: rgba(255,255,255,.12); }
.dark .feedback-form-heading p, .dark .public-feedback > div p, .dark .feedback-public small, .dark .feedback-status { color: rgba(245,242,233,.45); }
.dark .feedback-rating label > span, .dark .feedback-field select, .dark .feedback-field textarea { border-color: rgba(255,255,255,.14); }
.dark .feedback-rating input:checked + span { background: #29251a; color: #f5f2e9; }
.dark .public-feedback article { border-color: rgba(255,255,255,.1); }
.dark .feedback-avatar { background: #28251c; }
.dark .public-feedback-head small, .dark .feedback-topic { color: rgba(245,242,233,.38); }
.dark .public-feedback article > p { color: rgba(245,242,233,.64); }

html.text-large { font-size: 112%; }
html.text-extra-large { font-size: 125%; }
html.high-contrast .app-shell { background: #fff; }
html.high-contrast .app-main { color: #000; }
html.high-contrast .app-sidebar { background: #000; }
html.high-contrast .profile-card,
html.high-contrast .grocery-board,
html.high-contrast .feedback-form,
html.high-contrast .public-feedback { border-color: #000; }
html.dark.high-contrast .app-shell { background: #000; }
html.dark.high-contrast .app-main { color: #fff; }
html.dark.high-contrast .profile-card,
html.dark.high-contrast .grocery-board,
html.dark.high-contrast .feedback-form,
html.dark.high-contrast .public-feedback { border-color: #fff; background: #000; }
html.large-controls button,
html.large-controls input,
html.large-controls select { min-height: 3.25rem; }
html.large-controls .app-nav-link,
html.large-controls .app-nav-parent,
html.large-controls .account-menu-item { min-height: 3.5rem; }

/* Admin */
.admin-shell { min-height: 100vh; background: #f3f1eb; }
.admin-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 60; display: flex; width: 16.5rem; min-height: 0; flex-direction: column; overflow: hidden; background: #11110f; color: #fff; transform: translateX(-100%); transition: transform .28s ease; }
.admin-sidebar.is-open { transform: translateX(0); }
.admin-brand { display: flex; min-height: 5.2rem; flex: 0 0 auto; align-items: center; gap: .7rem; border-bottom: 1px solid rgba(255,255,255,.1); padding: 1rem 1.2rem; }
.admin-brand > img { width: 8.6rem; max-height: 3.2rem; object-fit: contain; object-position: left center; }
.admin-brand > div { min-width: 0; flex: 1; }
.admin-brand strong, .admin-brand small { display: block; }
.admin-brand strong { font-family: "Manrope",sans-serif; font-size: .78rem; }
.admin-brand small { margin-top: .18rem; color: rgba(255,255,255,.38); font-size: .6rem; }
.admin-brand button, .admin-topbar > button { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 0; background: transparent; color: inherit; }
.admin-nav { display: grid; min-height: 0; flex: 1 1 auto; align-content: start; gap: .16rem; overflow-x: hidden; overflow-y: auto; padding: .8rem .75rem 1.2rem; scrollbar-color: rgba(255,176,0,.55) transparent; scrollbar-width: thin; overscroll-behavior: contain; }
.admin-nav::-webkit-scrollbar { width: .35rem; }
.admin-nav::-webkit-scrollbar-thumb { border-radius: 1rem; background: rgba(255,176,0,.5); }
.admin-nav-group { margin: .85rem .75rem .25rem; color: rgba(255,255,255,.32); font-size: .56rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.admin-nav-group:first-child { margin-top: .2rem; }
.admin-nav a { display: flex; min-height: 2.9rem; align-items: center; gap: .7rem; padding: .7rem .75rem; color: rgba(255,255,255,.56); font-size: .75rem; font-weight: 650; }
.admin-nav a:hover, .admin-nav a.active { background: rgba(255,255,255,.07); color: #fff; }
.admin-nav a.active { box-shadow: inset 3px 0 var(--saffron); }
.admin-nav .material-symbols-rounded { font-size: 1.1rem; }
.nav-feature-lock{margin-left:auto!important;font-size:.72rem!important;opacity:.65}
.grocery-item-row{display:grid;grid-template-columns:2rem minmax(0,1fr) auto 2rem;align-items:center;gap:.55rem;border-top:1px solid rgba(23,23,19,.08);padding:.65rem 0}.grocery-item-row form,.grocery-item-row button{margin:0}.grocery-item-row button{display:grid;width:2rem;height:2rem;place-items:center;border:0;background:transparent;color:inherit}.grocery-item-row button .material-symbols-rounded{font-size:1rem}.grocery-item-row>span{font-size:.7rem}.grocery-item-row>span.is-checked{opacity:.45;text-decoration:line-through}.grocery-item-row small{color:rgba(23,23,19,.42);font-size:.61rem}.grocery-item-row form:last-child button{color:#a43d35}.dark .grocery-item-row{border-color:rgba(255,255,255,.1)}.dark .grocery-item-row small{color:rgba(245,242,233,.42)}
.account-data-controls{display:grid;gap:.9rem}.account-export{display:flex;width:max-content;align-items:center;gap:.4rem;border-bottom:2px solid var(--saffron);font-size:.67rem;font-weight:800}.account-export .material-symbols-rounded{font-size:.95rem}.account-data-controls details{border-top:1px solid rgba(23,23,19,.1);padding-top:.8rem}.account-data-controls summary{width:max-content;color:#98372f;cursor:pointer;font-size:.67rem;font-weight:800}.account-data-controls details>p{max-width:38rem;margin-top:.55rem;color:rgba(23,23,19,.5);font-size:.63rem;line-height:1.55}.account-data-controls form{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem;margin-top:.7rem}.account-data-controls label span{display:block;margin-bottom:.3rem;font-size:.6rem;font-weight:750}.account-data-controls input{height:2.6rem;border:1px solid rgba(23,23,19,.14);background:transparent;padding:0 .7rem;color:inherit}.account-data-controls form button{height:2.6rem;border:1px solid #a43d35;background:transparent;padding:0 .8rem;color:#a43d35;font:inherit;font-size:.62rem;font-weight:800}.dark .account-data-controls details,.dark .account-data-controls input{border-color:rgba(255,255,255,.12)}.dark .account-data-controls details>p{color:rgba(245,242,233,.45)}
.admin-sidebar-foot { flex: 0 0 auto; border-top: 1px solid rgba(255,255,255,.1); background: #11110f; padding: .65rem .8rem; }
.admin-sidebar-foot > a { display: flex; align-items: center; gap: .4rem; padding: .6rem; color: rgba(255,255,255,.5); font-size: .68rem; font-weight: 700; }
.admin-sidebar-foot > a .material-symbols-rounded { font-size: .95rem; }
.admin-sidebar-foot > div { display: flex; align-items: center; gap: .6rem; padding: .6rem; }
.admin-sidebar-foot p strong, .admin-sidebar-foot p small { display: block; font-size: .66rem; }
.admin-sidebar-foot p small { color: rgba(255,255,255,.38); }
.admin-main { min-height: 100vh; }
.admin-topbar { position: sticky; top: 0; z-index: 30; display: flex; height: 4.2rem; align-items: center; gap: .7rem; border-bottom: 1px solid rgba(23,23,19,.09); background: rgba(255,255,255,.92); padding: 0 1rem; backdrop-filter: blur(12px); }
.admin-topbar > div { min-width: 0; flex: 1; }
.admin-topbar > div span, .admin-topbar > div strong { display: block; }
.admin-topbar > div span { color: rgba(23,23,19,.4); font-size: .58rem; }
.admin-topbar > div strong { margin-top: .1rem; font-size: .75rem; }
.admin-content { max-width: 92rem; margin: 0 auto; padding: 1.5rem 1.2rem 4rem; }
.admin-page-head { display: flex; flex-direction: column; gap: 1rem; }
.admin-page-head p { color: rgba(23,23,19,.43); font-size: .68rem; font-weight: 700; }
.admin-page-head h1 { margin-top: .45rem; font-family: "Manrope",sans-serif; font-size: clamp(2rem,4vw,3.5rem); font-weight: 800; letter-spacing: -.05em; }
.admin-page-head div > span { display: block; margin-top: .6rem; color: rgba(23,23,19,.5); font-size: .75rem; }
.admin-page-head > button { display: flex; width: max-content; align-items: center; gap: .45rem; border: 1px solid #d79500; background: var(--saffron); padding: .85rem 1.1rem; color: var(--ink); box-shadow: 0 3px 0 #b97d00; font: inherit; font-size: .7rem; font-weight: 800; }
.admin-page-head > button:hover { background: #ffc13b; transform: translateY(-1px); }
.admin-page-head > button .material-symbols-rounded { font-size: 1rem; }
.admin-metrics { display: grid; gap: .7rem; margin-top: 2rem; }
.admin-metrics article, .admin-panel { border: 1px solid rgba(23,23,19,.1); background: #fff; }
.admin-metrics article { padding: 1.1rem; }
.admin-metrics span, .admin-metrics strong, .admin-metrics small { display: block; }
.admin-metrics span { color: rgba(23,23,19,.43); font-size: .65rem; }
.admin-metrics strong { margin-top: .55rem; font-family: "Manrope",sans-serif; font-size: 1.65rem; }
.admin-metrics small { margin-top: .35rem; color: rgba(23,23,19,.4); font-size: .6rem; }
.admin-overview-grid { display: grid; align-items: start; gap: .8rem; margin-top: .8rem; }
.admin-panel { padding: 1.1rem; }
.admin-panel-head { display: flex; justify-content: space-between; gap: 1rem; }
.admin-panel-head h2, .admin-settings h2 { font-family: "Manrope",sans-serif; font-size: .85rem; font-weight: 800; }
.admin-panel-head p { margin-top: .2rem; color: rgba(23,23,19,.4); font-size: .62rem; }
.admin-panel-head a { color: rgba(23,23,19,.55); font-size: .63rem; font-weight: 700; }
.admin-table { margin-top: 1rem; }
.admin-table-row { display: grid; grid-template-columns: minmax(0,1fr) 5rem 4rem; align-items: center; gap: .7rem; border-top: 1px solid rgba(23,23,19,.08); padding: .75rem 0; font-size: .66rem; }
.admin-table-row b, .admin-table-row small { display: block; }
.admin-table-row small { margin-top: .15rem; color: rgba(23,23,19,.38); }
.admin-table-header { color: rgba(23,23,19,.38); font-weight: 700; }
.admin-attention { display: flex; align-items: center; gap: .7rem; border-top: 1px solid rgba(23,23,19,.08); padding: 1rem 0; color: var(--ink); }
.admin-attention:first-of-type { margin-top: .7rem; }
.admin-attention > .material-symbols-rounded { color: var(--saffron); }
.admin-attention div { flex: 1; }
.admin-attention strong, .admin-attention small { display: block; font-size: .68rem; }
.admin-attention small { color: rgba(23,23,19,.4); }
.admin-attention > b { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; background: #fff5d9; font-size: .65rem; }
.admin-all-clear { display: flex; align-items: flex-start; gap: .7rem; margin-top: .9rem; background: #fff9e9; padding: .85rem; }
.admin-all-clear > .material-symbols-rounded { color: #865a00; }
.admin-all-clear strong, .admin-all-clear small { display: block; font-size: .65rem; }
.admin-all-clear small { margin-top: .18rem; color: rgba(23,23,19,.45); line-height: 1.45; }
.admin-queue-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .35rem; margin-top: .8rem; border-top: 1px solid rgba(23,23,19,.08); padding-top: .8rem; }
.admin-queue-summary span { color: rgba(23,23,19,.45); font-size: .57rem; line-height: 1.35; }
.admin-queue-summary b { display: block; color: var(--ink); font-family: "Manrope",sans-serif; font-size: .78rem; }
.admin-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.admin-toolbar label { display: flex; min-width: 15rem; flex: 1; align-items: center; border: 1px solid rgba(23,23,19,.12); background: #fff; padding: 0 .7rem; }
.admin-toolbar input, .admin-toolbar select, .admin-toolbar + select { height: 2.8rem; border: 0; outline: 0; background: transparent; color: inherit; font: inherit; font-size: .7rem; }
.admin-toolbar select { border: 1px solid rgba(23,23,19,.12); background: #fff; padding: 0 .7rem; }
.admin-member-filters { align-items: stretch; }
.admin-member-filters .admin-search { min-width: min(100%, 18rem); }
.admin-member-filters > .custom-select { width: 10.5rem; flex: 0 0 auto; }
.admin-filter-reset { display: flex; align-items: center; gap: .3rem; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: 0 .8rem; color: rgba(23,23,19,.64); font: inherit; font-size: .67rem; font-weight: 700; }
.admin-filter-reset .material-symbols-rounded { font-size: 1rem; }
.admin-filter-summary { margin-top: .7rem; color: rgba(23,23,19,.46); font-size: .64rem; }
.admin-filter-summary strong { color: var(--ink); }
.admin-member-list { margin-top: .7rem; overflow-x: auto; }
.admin-member-list .admin-table-row { min-width: 48rem; grid-template-columns: minmax(14rem,1fr) 7rem 6rem 8rem 7rem; }
.admin-member-identity { display: flex; min-width: 0; align-items: center; gap: .6rem; }
.admin-member-identity > img, .admin-member-identity > .material-symbols-rounded { width: 2rem; height: 2rem; flex: 0 0 auto; object-fit: cover; }
.admin-member-identity > .material-symbols-rounded { display: grid; place-items: center; background: #fff5d9; color: #865a00; font-size: 1rem; }
.admin-member-identity > span:last-child { min-width: 0; }
.admin-filter-empty { margin-top: .7rem; border: 1px solid rgba(23,23,19,.1); background: #fff; padding: 2.5rem 1rem; text-align: center; }
.admin-filter-empty .material-symbols-rounded, .admin-filter-empty strong, .admin-filter-empty small { display: block; }
.admin-filter-empty .material-symbols-rounded { color: #9a6900; font-size: 1.5rem; }
.admin-filter-empty strong { margin-top: .5rem; font-size: .75rem; }
.admin-filter-empty small { margin-top: .25rem; color: rgba(23,23,19,.45); font-size: .62rem; }
.dark .admin-filter-reset { border-color: rgba(255,255,255,.15); color: rgba(255,255,255,.68); }
.dark .admin-filter-summary { color: rgba(255,255,255,.45); }
.dark .admin-filter-summary strong { color: #fff; }
.dark .admin-member-identity > .material-symbols-rounded { background: #28251c; color: var(--saffron); }
.dark .admin-filter-empty { border-color: rgba(255,255,255,.1); background: #191916; }
.dark .admin-filter-empty strong { color: #fff; }
.dark .admin-filter-empty small { color: rgba(255,255,255,.45); }
.admin-status { color: rgba(23,23,19,.5); }
.admin-status.active::before { display: inline-block; width: .4rem; height: .4rem; margin-right: .35rem; content: ""; background: var(--saffron); }
.admin-meal-grid { display: grid; gap: .8rem; margin-top: 1.5rem; }
.admin-meal-grid article { overflow: hidden; border: 1px solid rgba(23,23,19,.1); background: #fff; }
.admin-meal-grid img { width: 100%; height: 11rem; object-fit: cover; }
.admin-meal-grid article > div { padding: 1rem; }
.admin-meal-grid small { color: rgba(23,23,19,.4); font-size: .6rem; }
.admin-meal-grid h2 { margin-top: .4rem; font-family: "Manrope",sans-serif; font-size: .9rem; font-weight: 800; }
.admin-meal-grid p { margin-top: .4rem; color: rgba(23,23,19,.47); font-size: .62rem; }
.admin-meal-grid button, .admin-plan-management button { margin-top: .8rem; border: 0; background: transparent; padding: 0; font: inherit; font-size: .64rem; font-weight: 750; text-decoration: underline; text-decoration-color: var(--saffron); }
.admin-plan-management { max-width: 55rem; margin-top: 1rem; }
.admin-plan-management > div { display: grid; grid-template-columns: 1fr 3rem 3rem; align-items: center; gap: .7rem; border-top: 1px solid rgba(23,23,19,.08); padding: .9rem 0; }
.admin-plan-management > div:first-of-type { margin-top: .8rem; }
.admin-plan-management strong, .admin-plan-management small { display: block; font-size: .68rem; }
.admin-plan-management small { color: rgba(23,23,19,.4); }
.admin-feedback-list { display: grid; gap: .7rem; max-width: 58rem; margin-top: 1.5rem; }
.admin-feedback-list article { border: 1px solid rgba(23,23,19,.1); background: #fff; padding: 1rem; }
.admin-feedback-list article > div { display: flex; align-items: center; gap: .6rem; }
.admin-feedback-list article > div p { flex: 1; }
.admin-feedback-list strong, .admin-feedback-list small { display: block; font-size: .65rem; }
.admin-feedback-list small { color: rgba(23,23,19,.4); }
.admin-feedback-list em { color: #9a6900; font-size: .6rem; font-style: normal; }
.admin-feedback-list blockquote { margin-top: .9rem; color: rgba(23,23,19,.62); font-size: .72rem; line-height: 1.55; }
.admin-feedback-list footer { display: flex; justify-content: end; gap: .4rem; margin-top: .9rem; }
.admin-feedback-list footer button { border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .55rem .7rem; font: inherit; font-size: .62rem; font-weight: 700; }
.admin-feedback-list footer button:last-child { border-color: var(--ink); background: var(--ink); color: #fff; }
.admin-count-pill{align-self:start;border-radius:999px;background:#fff1c4;padding:.35rem .55rem;color:#684700;font-size:.58rem;font-weight:800}.admin-image-report-list{max-width:none;margin-top:1rem}.admin-image-report-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem}.admin-image-report-list .admin-report-copy{display:flex;min-width:0;align-items:flex-start;gap:.7rem}.admin-report-copy>.material-symbols-rounded{display:grid;width:2rem;height:2rem;flex:0 0 auto;place-items:center;background:#fff3d1;color:#8a6000;font-size:1rem}.admin-report-copy>div{min-width:0}.admin-report-copy strong{text-transform:capitalize}.admin-report-copy p{margin:.18rem 0;color:rgba(23,23,19,.7);font-size:.68rem;line-height:1.4}.admin-image-report-list form{display:flex;flex:0 0 auto;gap:.45rem}.admin-image-report-list form button{display:inline-flex;min-height:2.35rem;align-items:center;gap:.3rem;border:1px solid rgba(23,23,19,.14);padding:.5rem .7rem;font:inherit;font-size:.6rem;font-weight:800;cursor:pointer}.admin-image-report-list form button .material-symbols-rounded{font-size:.9rem}.admin-report-dismiss{background:transparent;color:rgba(23,23,19,.65)}.admin-report-resolve{border-color:var(--ink)!important;background:var(--ink);color:#fff}.admin-report-dismiss:hover{background:#f2f0e9;color:var(--ink)}.admin-report-resolve:hover{background:#34342e}.dark .admin-upload-title small,.dark .admin-report-copy p{color:rgba(245,242,233,.55)}.dark .admin-count-pill,.dark .admin-report-copy>.material-symbols-rounded{background:#302919;color:#ffc13a}.dark .admin-report-dismiss{border-color:rgba(255,255,255,.14);color:rgba(245,242,233,.65)}.dark .admin-report-dismiss:hover{background:rgba(255,255,255,.07);color:#fff}.dark .admin-report-resolve{border-color:#f5f2e9!important;background:#f5f2e9;color:#171713}@media(max-width:700px){.admin-image-report-list article{align-items:stretch;flex-direction:column}.admin-image-report-list form{justify-content:flex-end}.admin-upload-grid .admin-image-import{grid-template-columns:1fr}.admin-upload-grid .admin-import-action{width:100%}}
.admin-settings { display: grid; gap: .8rem; max-width: 60rem; margin-top: 1.5rem; }
.admin-settings label { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid rgba(23,23,19,.08); padding: .9rem 0; font-size: .68rem; }
.admin-settings label:first-of-type { margin-top: .7rem; }
.admin-settings select { border: 1px solid rgba(23,23,19,.12); background: transparent; padding: .5rem; color: inherit; font: inherit; }
.admin-setting-toggle strong, .admin-setting-toggle small { display: block; }
.admin-setting-toggle small { color: rgba(23,23,19,.4); }
.admin-setting-toggle input { accent-color: var(--saffron); }
.admin-question-form { max-width: 55rem; margin-top: 1.2rem; border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1.1rem; }
.admin-question-form .admin-panel-head button { border: 0; background: transparent; color: inherit; }
.admin-question-form > label, .admin-question-grid label { display: block; margin-top: 1rem; }
.admin-question-form label > span { display: block; margin-bottom: .4rem; font-size: .65rem; font-weight: 700; }
.admin-question-form input[type="text"], .admin-question-form select, .admin-question-form textarea { width: 100%; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .7rem; color: inherit; font: inherit; font-size: .7rem; }
.admin-question-form input[type="text"], .admin-question-form select { height: 2.8rem; padding-top: 0; padding-bottom: 0; }
.admin-question-form textarea { min-height: 6rem; }
.admin-question-grid { display: grid; gap: .7rem; }
.admin-question-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.admin-question-actions label { font-size: .65rem; }
.admin-question-actions input { margin-right: .35rem; accent-color: var(--saffron); }
.admin-question-actions button { border: 0; background: var(--ink); padding: .7rem 1rem; color: #fff; font: inherit; font-size: .66rem; font-weight: 800; }
.admin-question-list, .admin-role-list, .admin-webhook-list { display: grid; gap: .7rem; max-width: 65rem; margin-top: 1.2rem; }
.admin-question-list article, .admin-role-list article, .admin-webhook-list article { border: 1px solid rgba(23,23,19,.1); background: #fff; padding: 1rem; }
.admin-question-list article > div:first-child { display: flex; align-items: center; gap: .55rem; }
.question-state { padding: .25rem .4rem; font-size: .58rem; font-weight: 800; }
.question-state.live { background: #fff2cf; color: #765000; }
.question-state.draft { background: var(--cream); color: rgba(23,23,19,.5); }
.admin-question-list article small { color: rgba(23,23,19,.4); font-size: .6rem; }
.admin-question-list h2 { margin-top: .7rem; font-family: "Manrope",sans-serif; font-size: .85rem; font-weight: 800; }
.admin-question-list article > p { margin-top: .35rem; color: rgba(23,23,19,.45); font-size: .64rem; }
.admin-question-list footer { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .8rem; }
.admin-question-list footer button, .admin-role-list button, .admin-webhook-list button, .admin-key-list button { border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .5rem .65rem; color: inherit; font: inherit; font-size: .6rem; font-weight: 700; }
.admin-role-list article, .admin-webhook-list article { display: flex; align-items: center; gap: .8rem; }
.admin-role-list article > .material-symbols-rounded, .webhook-icon { display: grid; width: 2.7rem; height: 2.7rem; flex: 0 0 auto; place-items: center; background: #fff5d9; color: rgba(23,23,19,.65); }
.admin-role-list article > div, .admin-webhook-list article > div:nth-child(2) { min-width: 0; flex: 1; }
.admin-role-list h2, .admin-webhook-list h2 { font-family: "Manrope",sans-serif; font-size: .76rem; font-weight: 800; }
.admin-role-list p { margin-top: .25rem; color: rgba(23,23,19,.48); font-size: .64rem; }
.admin-role-list small { display: block; margin-top: .35rem; color: rgba(23,23,19,.36); font-size: .58rem; }
.security-notice { display: flex; gap: .7rem; max-width: 55rem; margin-top: 1.2rem; border-left: 3px solid var(--saffron); background: #fff9e9; padding: .9rem; }
.security-notice .material-symbols-rounded { color: #8a5d00; }
.security-notice p { color: rgba(23,23,19,.6); font-size: .66rem; line-height: 1.5; }
.admin-key-list { max-width: 60rem; margin-top: .8rem; overflow-x: auto; }
.admin-key-list .admin-table-row { min-width: 40rem; grid-template-columns: minmax(12rem,1fr) 6rem 7rem 4rem; }
.admin-key-list button { color: #a43d35; }
.admin-inline-key-form{display:flex;align-items:end;gap:.6rem;margin-top:1rem}.admin-inline-key-form label{min-width:14rem;flex:1}.admin-inline-key-form label span{display:block;margin-bottom:.35rem;font-size:.62rem;font-weight:750}.admin-inline-key-form input{width:100%;height:2.65rem;border:1px solid rgba(23,23,19,.14);background:transparent;padding:0 .7rem;color:inherit}.admin-inline-key-form>button{height:2.65rem;border:0;background:var(--ink);padding:0 .85rem;color:#fff!important;font:inherit;font-size:.62rem;font-weight:800}.dark .admin-inline-key-form input{border-color:rgba(255,255,255,.14)}
.admin-webhook-list code { display: block; overflow: hidden; margin-top: .3rem; color: rgba(23,23,19,.5); font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.admin-webhook-list p, .admin-webhook-list small { display: block; margin-top: .3rem; color: rgba(23,23,19,.42); font-size: .6rem; }
.admin-webhook-list p > span { display: inline-block; width: .4rem; height: .4rem; margin-right: .3rem; background: var(--saffron); }
.dark .admin-question-form, .dark .admin-question-list article, .dark .admin-role-list article, .dark .admin-webhook-list article { border-color: rgba(255,255,255,.11); background: #191916; }
.dark .admin-question-form input[type="text"], .dark .admin-question-form select, .dark .admin-question-form textarea, .dark .admin-question-list footer button, .dark .admin-role-list button, .dark .admin-webhook-list button, .dark .admin-key-list button { border-color: rgba(255,255,255,.13); }
.dark .admin-question-list article small, .dark .admin-question-list article > p, .dark .admin-role-list p, .dark .admin-role-list small, .dark .admin-webhook-list code, .dark .admin-webhook-list p, .dark .admin-webhook-list small { color: rgba(245,242,233,.42); }
.dark .question-state.live, .dark .security-notice { background: #29251a; }
.dark .question-state.draft { background: #282823; color: rgba(245,242,233,.5); }
.dark .admin-role-list article > .material-symbols-rounded, .dark .webhook-icon { background: #28251c; color: rgba(245,242,233,.65); }
.dark .security-notice p { color: rgba(245,242,233,.6); }
.dark .admin-shell { background: #10100e; }
.dark .admin-topbar { border-color: rgba(255,255,255,.1); background: rgba(23,23,19,.92); }
.dark .admin-topbar > div span, .dark .admin-page-head p, .dark .admin-page-head div > span, .dark .admin-metrics span, .dark .admin-metrics small, .dark .admin-panel-head p, .dark .admin-table-header, .dark .admin-table-row small, .dark .admin-attention small, .dark .admin-meal-grid small, .dark .admin-meal-grid p, .dark .admin-plan-management small, .dark .admin-feedback-list small, .dark .admin-setting-toggle small { color: rgba(245,242,233,.4); }
.dark .admin-metrics article, .dark .admin-panel, .dark .admin-toolbar label, .dark .admin-toolbar select, .dark .admin-meal-grid article, .dark .admin-feedback-list article { border-color: rgba(255,255,255,.11); background: #191916; }
.dark .admin-table-row, .dark .admin-attention, .dark .admin-plan-management > div, .dark .admin-feedback-list footer button, .dark .admin-settings label { border-color: rgba(255,255,255,.1); }
.dark .admin-attention { color: #f5f2e9; }
.dark .admin-attention > b { background: #28251c; }
.dark .admin-feedback-list blockquote { color: rgba(245,242,233,.62); }
.dark .admin-feedback-list footer button:last-child { border-color: var(--saffron); background: var(--saffron); color: var(--ink); }

.admin-secret-form, .admin-settings-form, .admin-webhook-form { max-width: 60rem; margin-top: .8rem; }
.admin-secret-grid, .admin-webhook-fields { display: grid; gap: 1rem; margin-top: 1.25rem; }
.admin-secret-grid label > span, .admin-webhook-fields label > span, .admin-settings label > span { display: block; font-size: .68rem; font-weight: 750; }
.admin-secret-grid input, .admin-webhook-fields input, .admin-webhook-fields textarea, .admin-settings input:not([type="checkbox"]) { width: 100%; min-width: 0; margin-top: .4rem; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .7rem .75rem; color: inherit; font: inherit; font-size: .7rem; }
.admin-secret-grid input, .admin-webhook-fields input, .admin-settings input:not([type="checkbox"]) { height: 2.8rem; }
.admin-secret-grid small, .admin-webhook-fields small, .admin-settings label small, .stripe-endpoint-note small { display: block; margin-top: .35rem; color: rgba(23,23,19,.42); font-size: .6rem; }
.admin-panel-head button, .admin-settings-save, .admin-webhook-form button { border: 0; background: var(--ink); padding: .7rem .9rem; color: #fff; font: inherit; font-size: .64rem; font-weight: 800; }
.admin-settings-save { margin-top: .8rem; }
.admin-setting-toggle input { width: 1.05rem; height: 1.05rem; flex: 0 0 auto; }
.stripe-endpoint-note { max-width: 60rem; margin-top: .8rem; }
.stripe-endpoint-note strong, .stripe-endpoint-note code { display: block; }
.stripe-endpoint-note code { overflow-wrap: anywhere; margin-top: .55rem; color: #865a00; font-size: .65rem; }
.admin-webhook-secret { max-width: 60rem; margin-top: .8rem; border-left: 3px solid var(--saffron); background: #fff9e9; padding: .9rem; }
.admin-webhook-secret code { display: block; overflow-wrap: anywhere; margin-top: .35rem; font-size: .68rem; }
.admin-webhook-form > label { display: block; margin-top: 1rem; }
.admin-webhook-form > label > span { display: block; margin-bottom: .4rem; font-size: .68rem; font-weight: 750; }
.admin-webhook-form > label input { width: 100%; height: 2.8rem; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: 0 .75rem; color: inherit; font: inherit; font-size: .7rem; }
.admin-webhook-form > label small { display: block; margin-top: .35rem; color: rgba(23,23,19,.42); font-size: .6rem; }
.admin-role-assignments { max-width: 65rem; margin-top: .8rem; }
.admin-role-assignments > form { display: grid; grid-template-columns: minmax(0,1fr); gap: .55rem; align-items: center; border-top: 1px solid rgba(23,23,19,.08); padding: .8rem 0; }
.admin-role-assignments > form:first-of-type { margin-top: .8rem; }
.admin-role-assignments strong, .admin-role-assignments small { display: block; font-size: .65rem; }
.admin-role-assignments small { margin-top: .15rem; color: rgba(23,23,19,.4); }
.admin-role-assignments select { min-height: 2.6rem; border: 1px solid rgba(23,23,19,.13); background-color: transparent; padding: 0 .7rem; color: inherit; font: inherit; font-size: .65rem; }
.admin-role-assignments button { border: 0; background: var(--ink); padding: .7rem .8rem; color: #fff; font: inherit; font-size: .62rem; font-weight: 800; }
.dark .admin-secret-grid input, .dark .admin-webhook-fields input, .dark .admin-webhook-fields textarea, .dark .admin-settings input:not([type="checkbox"]) { border-color: rgba(255,255,255,.14); }
.dark .admin-secret-grid small, .dark .admin-webhook-fields small, .dark .admin-settings label small, .dark .stripe-endpoint-note small { color: rgba(245,242,233,.42); }
.dark .stripe-endpoint-note code { color: #f2c35e; }
.dark .admin-webhook-secret { background: #29251a; }
.dark .admin-webhook-form > label input, .dark .admin-role-assignments > form, .dark .admin-role-assignments select { border-color: rgba(255,255,255,.13); }
.dark .admin-role-assignments small, .dark .admin-webhook-form > label small { color: rgba(245,242,233,.42); }

.custom-diet-field { display: block; max-width: 34rem; margin-top: 1rem; }
.custom-diet-field > span { display: block; margin-bottom: .4rem; font-size: .7rem; font-weight: 750; }
.custom-diet-field input { width: 100%; height: 3rem; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: 0 .8rem; color: inherit; font: inherit; font-size: .72rem; }
.avoid-foods { display: grid; gap: .8rem; margin-top: 1.25rem; border-top: 1px solid rgba(23,23,19,.09); padding-top: 1.25rem; }
.avoid-foods label { font-size: .76rem; font-weight: 800; }
.avoid-foods p { margin-top: .2rem; color: rgba(23,23,19,.46); font-size: .65rem; }
.avoid-food-entry { display: flex; max-width: 34rem; }
.avoid-food-entry input { min-width: 0; height: 3rem; flex: 1; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: 0 .8rem; color: inherit; font: inherit; font-size: .72rem; }
.avoid-food-entry button { display: flex; align-items: center; gap: .3rem; border: 0; background: var(--ink); padding: 0 .9rem; color: #fff; font: inherit; font-size: .66rem; font-weight: 800; }
.avoid-food-entry .material-symbols-rounded { font-size: 1rem; }
.avoid-food-tags { display: flex; flex-wrap: wrap; gap: .45rem; }
.avoid-food-tags > span { display: inline-flex; align-items: center; gap: .35rem; background: #fff4d2; padding: .45rem .55rem; font-size: .66rem; font-weight: 700; }
.avoid-food-tags button { border: 0; background: transparent; color: inherit; line-height: 0; }
.avoid-food-tags button .material-symbols-rounded { font-size: .9rem; }
.avoid-food-tags.is-empty { color: rgba(23,23,19,.42); font-size: .65rem; }
.dark .custom-diet-field input, .dark .avoid-foods, .dark .avoid-food-entry input { border-color: rgba(255,255,255,.14); }
.dark .avoid-foods p, .dark .avoid-food-tags.is-empty { color: rgba(245,242,233,.45); }
.dark .avoid-food-tags > span { background: #332b18; }
.food-boundaries { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 1.4rem; border-top: 1px solid rgba(23,23,19,.09); padding-top: 1.4rem; }
.food-boundaries-heading { grid-column: 1/-1; }
.food-boundaries-heading h3 { font-size: 1rem; font-weight: 800; }
.food-boundaries-heading p { margin-top: .25rem; color: rgba(23,23,19,.5); font-size: .72rem; }
.food-boundaries .avoid-foods { margin: 0; border: 0; border-bottom: 1px solid rgba(23,23,19,.1); padding: 1rem 0; }
.family-page { display: grid; gap: 1.4rem; }
.family-invite-panel,.family-list,.family-comparison { border: 1px solid rgba(23,23,19,.12); background: #fff; padding: 1.4rem; }
.family-invite-panel > div,.family-invite-panel form,.family-comparison header,.family-list article,.family-actions { display:flex; align-items:center; gap:1rem; }
.family-invite-panel > div { margin-bottom: 1.2rem; }.family-invite-panel > div > .material-symbols-rounded { color:#9a6800;font-size:2rem; }
.family-invite-panel h2,.family-list h2,.family-comparison h2 { font-size:1rem;font-weight:800; }.family-invite-panel p,.family-list small,.family-empty p { color:rgba(23,23,19,.5);font-size:.7rem; }
.family-invite-panel label { flex:1; }.family-invite-panel label span { display:block;margin-bottom:.35rem;font-size:.65rem;font-weight:800; }.family-invite-panel input { width:100%;height:3rem;border:1px solid rgba(23,23,19,.15);padding:0 .8rem;background:transparent;color:inherit; }
.family-list h2 { margin-bottom:.8rem; }.family-list article { justify-content:space-between;border-top:1px solid rgba(23,23,19,.09);padding:.9rem 0; }.family-list article > div:first-child { display:grid;gap:.15rem; }
.family-actions form { margin:0; }.family-actions button,.family-comparison .quiet { border:1px solid rgba(23,23,19,.18);background:var(--ink);color:#fff;padding:.6rem .85rem;font-weight:700; }.family-actions .quiet,.family-comparison .quiet { background:transparent;color:inherit; }
.family-status { background:#fff4d2;padding:.4rem .6rem;font-size:.64rem;font-weight:800; }.family-comparison header { justify-content:space-between;margin-bottom:1rem; }
.comparison-head,.comparison-days article > div { display:grid;grid-template-columns:1fr 1fr; }.comparison-head > div { display:grid;gap:.2rem;padding:1rem;border:1px solid rgba(23,23,19,.1); }.comparison-head small { color:rgba(23,23,19,.45); }
.comparison-days article { border:1px solid rgba(23,23,19,.1);border-top:0; }.comparison-days h3 { padding:.55rem 1rem;background:var(--cream);font-size:.7rem;font-weight:800; }.comparison-days ul { padding:.7rem 1rem;display:grid;gap:.6rem; }.comparison-days ul+ul { border-left:1px solid rgba(23,23,19,.1); }.comparison-days li { display:grid;gap:.1rem; }.comparison-days li small { color:rgba(23,23,19,.43);font-size:.58rem;text-transform:lowercase; }.comparison-days li span { font-size:.7rem;font-weight:700; }.family-empty { display:flex;align-items:center;gap:.8rem;padding:1rem;background:var(--cream); }
.dark .food-boundaries-heading p,.dark .family-invite-panel p,.dark .family-list small,.dark .family-empty p,.dark .comparison-head small,.dark .comparison-days li small { color:rgba(245,242,233,.5); }.dark .family-invite-panel,.dark .family-list,.dark .family-comparison { background:#191915;border-color:rgba(255,255,255,.13); }.dark .family-invite-panel input,.dark .family-list article,.dark .comparison-head>div,.dark .comparison-days article,.dark .comparison-days ul+ul { border-color:rgba(255,255,255,.13); }.dark .comparison-days h3,.dark .family-empty { background:#22221d; }
@media(max-width:700px){.food-boundaries{grid-template-columns:1fr}.family-invite-panel form{align-items:stretch;flex-direction:column}.comparison-head,.comparison-days article>div{grid-template-columns:1fr}.comparison-days ul+ul{border-left:0;border-top:1px solid rgba(23,23,19,.1)}}
.profile-name-edit { display: grid; width: 2.7rem; height: 2.7rem; margin: 0 0 0 auto !important; place-items: center; border: 1px solid rgba(23,23,19,.12) !important; background: transparent !important; padding: 0 !important; text-decoration: none !important; }
.profile-name-edit .material-symbols-rounded { font-size: 1.05rem; }
.profile-name-form { display: flex; width: 100%; flex-basis: 100%; flex-wrap: wrap; align-items: end; gap: .5rem; margin-top: .8rem; border-top: 1px solid rgba(23,23,19,.09); padding-top: .9rem; }
.profile-name-form label { min-width: 12rem; flex: 1; }
.profile-name-form label span { display: block; margin-bottom: .35rem; font-size: .64rem; font-weight: 750; }
.profile-name-form input { width: 100%; height: 2.8rem; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: 0 .7rem; color: inherit; font: inherit; font-size: .7rem; }
.profile-name-form button { height: 2.8rem; margin: 0 !important; border: 0 !important; background: var(--ink) !important; padding: 0 .8rem !important; color: #fff !important; font: inherit; font-size: .64rem; font-weight: 800; text-decoration: none !important; }
.profile-name-form button:last-child { border: 1px solid rgba(23,23,19,.13) !important; background: transparent !important; color: inherit !important; }
.dark .profile-name-form, .dark .profile-name-form input, .dark .profile-name-edit { border-color: rgba(255,255,255,.14) !important; }
.admin-fixed-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.admin-fixed-heading > .material-symbols-rounded { display: grid; width: 2.15rem; height: 2.15rem; flex: 0 0 auto; place-items: center; background: #fff4d2; color: #865a00; font-size: 1rem; }
.admin-fixed-heading p { margin-top: .25rem; color: rgba(23,23,19,.42); font-size: .61rem; }
.admin-locked-value { position: relative; width: min(15rem,55%); }
.admin-locked-value input { width: 100% !important; padding-right: 2.2rem !important; cursor: not-allowed; opacity: .68; }
.admin-locked-value .material-symbols-rounded { position: absolute; top: 50%; right: .7rem; color: rgba(23,23,19,.42); font-size: .9rem; transform: translateY(-50%); pointer-events: none; }
.admin-fixed-note { display: flex; align-items: start; gap: .45rem; margin-top: .8rem; color: rgba(23,23,19,.48); font-size: .62rem; line-height: 1.5; }
.admin-fixed-note .material-symbols-rounded { color: #865a00; font-size: .95rem; }
.dark .admin-fixed-heading > .material-symbols-rounded { background: #332b18; color: #f2c35e; }
.dark .admin-fixed-heading p, .dark .admin-fixed-note { color: rgba(245,242,233,.43); }
.dark .admin-locked-value .material-symbols-rounded { color: rgba(245,242,233,.43); }
.dark .admin-fixed-note .material-symbols-rounded { color: #f2c35e; }

/* Admin safe notes */
.safe-notes-intro{display:flex;gap:.85rem;max-width:64rem;margin-top:1.5rem;border-left:3px solid var(--saffron);background:#fff9e9;padding:1rem 1.1rem}.safe-notes-intro>.material-symbols-rounded{color:#865a00}.safe-notes-intro strong,.safe-notes-intro p{display:block}.safe-notes-intro strong{font-size:.73rem}.safe-notes-intro p{margin-top:.25rem;color:rgba(23,23,19,.55);font-size:.64rem;line-height:1.55}.safe-note-compose{max-width:64rem;margin-top:1.1rem;border-top:1px solid rgba(23,23,19,.12);padding-top:1.2rem}.safe-note-form{display:grid;gap:.9rem;margin-top:1rem}.safe-note-form label>span{display:block;margin-bottom:.35rem;font-size:.65rem;font-weight:750}.safe-note-form input,.safe-note-form textarea,.safe-note-unlock input{width:100%;border:1px solid rgba(23,23,19,.14);background:#fff;padding:.75rem;color:inherit;font:inherit;font-size:.7rem}.safe-note-form input{height:2.8rem}.safe-note-form textarea{min-height:8.5rem;resize:vertical}.safe-note-form small{display:block;margin-top:.3rem;color:rgba(23,23,19,.43);font-size:.58rem}.safe-note-passphrases{display:grid;gap:.8rem}.safe-note-form>button{display:flex;width:max-content;align-items:center;gap:.4rem;border:0;background:var(--ink);padding:.72rem 1rem;color:#fff;font:inherit;font-size:.65rem;font-weight:800}.safe-note-form>button .material-symbols-rounded{font-size:.9rem}.safe-note-form-error,.safe-note-row-error{min-height:.8rem;color:#a43d35;font-size:.61rem}.safe-note-list{max-width:64rem;margin-top:2rem}.safe-note-list-head{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid rgba(23,23,19,.12);padding-bottom:.7rem}.safe-note-list-head h2{font-family:"Manrope",sans-serif;font-size:.88rem;font-weight:800}.safe-note-list-head span{color:rgba(23,23,19,.43);font-size:.62rem}.safe-note-empty{display:flex;align-items:center;gap:.7rem;padding:1.2rem 0}.safe-note-empty>.material-symbols-rounded{color:#865a00}.safe-note-empty strong,.safe-note-empty p{display:block;font-size:.65rem}.safe-note-empty p{margin-top:.2rem;color:rgba(23,23,19,.43)}.safe-note-row{display:grid;gap:.7rem;border-bottom:1px solid rgba(23,23,19,.1);padding:1rem 0}.safe-note-locked{display:flex;min-width:0;align-items:center;gap:.65rem}.safe-note-locked>.material-symbols-rounded{display:grid;width:2.3rem;height:2.3rem;flex:0 0 auto;place-items:center;background:#fff5d9;color:#865a00;font-size:1rem}.safe-note-locked strong,.safe-note-locked small{display:block;font-size:.65rem}.safe-note-locked small{margin-top:.15rem;color:rgba(23,23,19,.42)}.safe-note-unlock{display:flex;gap:.5rem}.safe-note-unlock input{max-width:19rem;height:2.55rem;background:transparent}.safe-note-unlock button,.safe-note-readable button,.safe-note-delete{border:0;background:transparent;color:inherit;font:inherit;font-size:.62rem;font-weight:800;text-decoration:underline;text-decoration-color:var(--saffron);text-underline-offset:.22rem}.safe-note-readable{border-left:3px solid var(--saffron);background:#fff;padding:1rem}.safe-note-readable>div{display:flex;align-items:start;justify-content:space-between;gap:1rem}.safe-note-readable strong{font-family:"Manrope",sans-serif;font-size:.78rem}.safe-note-readable button,.safe-note-delete{display:flex;align-items:center;gap:.25rem}.safe-note-readable button .material-symbols-rounded,.safe-note-delete .material-symbols-rounded{font-size:.85rem}.safe-note-readable>p{margin-top:.7rem;color:rgba(23,23,19,.68);font-size:.68rem;line-height:1.65;white-space:pre-wrap}.safe-note-row>form{justify-self:start}.safe-note-delete{color:#a43d35}.dark .safe-notes-intro{background:#29251a}.dark .safe-notes-intro p,.dark .safe-note-form small,.dark .safe-note-list-head span,.dark .safe-note-empty p,.dark .safe-note-locked small{color:rgba(245,242,233,.43)}.dark .safe-note-form input,.dark .safe-note-form textarea,.dark .safe-note-unlock input,.dark .safe-note-readable{border-color:rgba(255,255,255,.14);background:#191916}.dark .safe-note-list-head,.dark .safe-note-row{border-color:rgba(255,255,255,.1)}.dark .safe-note-locked>.material-symbols-rounded{background:#28251c;color:#f2c35e}.dark .safe-note-readable>p{color:rgba(245,242,233,.68)}
@media(min-width:768px){.safe-note-passphrases{grid-template-columns:repeat(2,minmax(0,1fr))}.safe-note-row{grid-template-columns:minmax(12rem,1fr) minmax(16rem,1fr) auto;align-items:center}.safe-note-readable{grid-column:1/-1}.safe-note-row-error{grid-column:1/3}.safe-note-row>form{grid-column:3;grid-row:1}}
.archived-plans { margin-top: 1.2rem; border: 1px solid rgba(23,23,19,.1); background: #fff; }
.archived-plans > summary { display: flex; min-height: 3.8rem; cursor: pointer; list-style: none; align-items: center; gap: .7rem; padding: 0 1rem; }
.archived-plans > summary::-webkit-details-marker { display: none; }
.archived-plans > summary > span:first-child { display: flex; flex: 1; align-items: center; gap: .55rem; font-size: .72rem; font-weight: 800; }
.archived-plans > summary .material-symbols-rounded { font-size: 1rem; }
.archived-plans > summary > strong { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; background: #fff4d2; font-size: .62rem; }
.archived-plans > summary > .material-symbols-rounded { transition: transform .18s ease; }
.archived-plans[open] > summary > .material-symbols-rounded { transform: rotate(180deg); }
.archived-plans .plans-list { border-top: 1px solid rgba(23,23,19,.09); }
.plan-row.archived { opacity: .78; }
.dark .archived-plans { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .archived-plans .plans-list { border-color: rgba(255,255,255,.09); }
.dark .archived-plans > summary > strong { background: #332b18; }
.flexible-portions-controls { display: grid; gap: 1rem; }
.flexible-portions-panel>summary{display:flex;align-items:center;gap:.45rem;cursor:pointer;list-style:none}.flexible-portions-panel>summary::-webkit-details-marker{display:none}.flexible-portions-panel>summary::marker{content:""}.flexible-portions-panel>summary .material-symbols-rounded{transition:transform .2s ease}.flexible-portions-panel[open]>summary .material-symbols-rounded{transform:rotate(180deg)}.flexible-portions-panel>*+*{margin-top:1.35rem}.flexible-count-grid+fieldset{margin-top:1.5rem}
.flexible-portions-controls fieldset { border: 0; }
.flexible-portions-controls legend, .flexible-count-grid label > span { display: block; margin-bottom: .45rem; font-size: .65rem; font-weight: 800; }
.flexible-day-options, .leftover-options { display: flex; flex-wrap: wrap; gap: .4rem; }
.flexible-day-options input, .leftover-options input { position: absolute; opacity: 0; }
.flexible-day-options span, .leftover-options span { display: block; border: 1px solid rgba(23,23,19,.13); padding: .55rem .65rem; font-size: .65rem; cursor: pointer; }
.flexible-day-options input:checked + span, .leftover-options input:checked + span { border-color: var(--saffron); background: #fff5d9; box-shadow: inset 3px 0 var(--saffron); }
.flexible-count-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; }
.flexible-count-grid label, .flexible-count-grid input, .flexible-count-grid select, .flexible-count-grid .custom-select { min-width: 0; }
.flexible-count-grid input, .flexible-count-grid select { width: 100%; height: 2.7rem; border: 1px solid rgba(23,23,19,.13); background-color: transparent; padding: 0 .65rem; color: inherit; font: inherit; font-size: .67rem; }
.flexible-portions-locked { display: flex; align-items: center; gap: .7rem; border-left: 3px solid var(--saffron); background: #fff9e9; padding: .8rem; }
.flexible-portions-locked > .material-symbols-rounded { color: #865a00; }
.flexible-portions-locked div { flex: 1; }
.flexible-portions-locked strong { font-size: .7rem; }
.flexible-portions-locked p { margin-top: .15rem; font-size: .62rem; }
.flexible-portions-locked a { color: inherit; font-size: .62rem; font-weight: 800; border-bottom: 2px solid var(--saffron); }
.dark .price-best-for { border-color: rgba(255,255,255,.1); color: rgba(245,242,233,.48); }
.dark .price-best-for strong { color: #f5f2e9; }
.dark .flexible-day-options span, .dark .leftover-options span, .dark .flexible-count-grid input, .dark .flexible-count-grid select { border-color: rgba(255,255,255,.14); }
.dark .flexible-day-options input:checked + span, .dark .leftover-options input:checked + span, .dark .flexible-portions-locked { background: #29251a; }
.subscription-benefit { display: flex; align-items: center; gap: .6rem; border-top: 1px solid rgba(23,23,19,.1); padding: .85rem 0; }
.subscription-benefit > .material-symbols-rounded { color: #865a00; }
.subscription-benefit strong, .subscription-benefit small { display: block; font-size: .64rem; }
.subscription-benefit small { margin-top: .15rem; color: rgba(23,23,19,.43); }
.dark .subscription-benefit { border-color: rgba(255,255,255,.1); }
.dark .subscription-benefit > .material-symbols-rounded { color: #f2c35e; }
.dark .subscription-benefit small { color: rgba(245,242,233,.43); }
.day-skip-action { display: inline-flex; align-items: center; gap: .35rem; border: 1px solid rgba(23,23,19,.12); background: transparent; padding: .5rem .65rem; color: inherit; font: inherit; font-size: .6rem; font-weight: 750; }
.day-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.day-actions form { margin: 0; }
.day-regenerate-action { display: inline-flex; align-items: center; gap: .35rem; border: 0; background: var(--ink); padding: .55rem .65rem; color: #fff; font: inherit; font-size: .6rem; font-weight: 750; }
.day-regenerate-action .material-symbols-rounded { font-size: .9rem; }
.day-skip-action .material-symbols-rounded { font-size: .9rem; }
.full-day.is-skipped .day-meals, .day-meal.is-skipped { opacity: .48; }
.meal-edit-panel { margin-top: 1rem; border: 1px solid rgba(23,23,19,.11); }
.meal-edit-panel summary { display: flex; cursor: pointer; list-style: none; align-items: center; gap: .4rem; padding: .8rem; font-size: .68rem; font-weight: 800; }
.meal-edit-panel summary::-webkit-details-marker { display: none; }
.meal-edit-panel summary .material-symbols-rounded { font-size: 1rem; }
.meal-edit-panel form { display: grid; gap: .7rem; border-top: 1px solid rgba(23,23,19,.09); padding: .8rem; }
.meal-edit-panel label > span, .meal-edit-panel label > small { display: block; font-size: .62rem; }
.meal-edit-panel label > span { margin-bottom: .3rem; font-weight: 800; }
.meal-edit-panel label > small { margin-bottom: .3rem; color: rgba(23,23,19,.42); }
.meal-edit-panel input, .meal-edit-panel textarea { width: 100%; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .65rem; color: inherit; font: inherit; font-size: .68rem; }
.meal-edit-panel input { height: 2.6rem; }
.meal-edit-panel textarea { min-height: 5.5rem; resize: vertical; }
.meal-edit-panel form > p { color: rgba(23,23,19,.46); font-size: .6rem; }
.meal-edit-panel form > button { border: 0; background: var(--ink); padding: .7rem; color: #fff; font: inherit; font-size: .64rem; font-weight: 800; }
.meal-drawer-actions .drawer-skip { width: 100%; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: .5rem .35rem; color: inherit; font: inherit; font-size: .57rem; font-weight: 750; }
.meal-drawer-actions .drawer-nutrition { width: 100%; border: 1px solid rgba(23,23,19,.13); background: #fff9e9; padding: .5rem .35rem; color: inherit; font: inherit; font-size: .57rem; font-weight: 750; }

@media (max-width: 640px) {
  body.drawer-open { position: fixed; right: 0; left: 0; width: 100%; overscroll-behavior: none; }
  .meal-drawer { overscroll-behavior: none; }
  .meal-drawer-scroll { overscroll-behavior-y: contain; }
}
.meal-nutrition-status { margin-top: .6rem; color: rgba(23,23,19,.46); font-size: .62rem; }
.reminder-create { display: grid; gap: .7rem; max-width: 60rem; margin-top: 1.5rem; border: 1px solid rgba(23,23,19,.11); background: #fff; padding: 1rem; }
.reminder-create label span { display: block; margin-bottom: .35rem; font-size: .65rem; font-weight: 800; }
.reminder-create input { width: 100%; height: 2.8rem; border: 1px solid rgba(23,23,19,.13); background: transparent; padding: 0 .7rem; color: inherit; font: inherit; font-size: .7rem; }
.reminder-create button { display: flex; align-items: center; justify-content: center; gap: .35rem; border: 0; background: var(--ink); padding: .75rem; color: #fff; font: inherit; font-size: .65rem; font-weight: 800; }
.reminder-create button .material-symbols-rounded { font-size: 1rem; }
.reminder-list { display: grid; gap: .6rem; max-width: 60rem; margin-top: .8rem; }
.reminder-list article { display: flex; align-items: center; gap: .8rem; border: 1px solid rgba(23,23,19,.1); background: #fff; padding: .9rem; }
.reminder-list article > .material-symbols-rounded { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; place-items: center; background: #fff5d9; color: #865a00; }
.reminder-list article > div { flex: 1; }
.reminder-list strong, .reminder-list small { display: block; font-size: .66rem; }
.reminder-list small, .reminder-list p { margin-top: .18rem; color: rgba(23,23,19,.43); font-size: .6rem; }
.reminder-list button { border: 1px solid rgba(23,23,19,.12); background: transparent; padding: .5rem .65rem; font: inherit; font-size: .6rem; font-weight: 750; }
.reminder-list article.is-complete { opacity: .5; }
.dark .day-skip-action, .dark .meal-edit-panel, .dark .meal-edit-panel form, .dark .meal-edit-panel input, .dark .meal-edit-panel textarea, .dark .meal-drawer-actions .drawer-skip, .dark .meal-drawer-actions .drawer-nutrition, .dark .reminder-create, .dark .reminder-create input, .dark .reminder-list article, .dark .reminder-list button { border-color: rgba(255,255,255,.13); }
.dark .meal-swap-intro { border-color: rgba(255,255,255,.1); }
.dark .meal-swap-intro > span, .dark .meal-swap-form > p { color: rgba(245,242,233,.43); }
.dark .meal-swap-form input, .dark .meal-swap-form select { border-color: rgba(255,255,255,.13); }
.dark .meal-drawer-actions .drawer-nutrition { background: #29251a; }
.dark .meal-nutrition-status { color: rgba(245,242,233,.43); }
.dark .reminder-create, .dark .reminder-list article { background: #191916; }
.dark .reminder-list article > .material-symbols-rounded { background: #332b18; color: #f2c35e; }
.dark .meal-edit-panel label > small, .dark .meal-edit-panel form > p, .dark .reminder-list small, .dark .reminder-list p { color: rgba(245,242,233,.43); }
.generation-job-list { display: grid; gap: .5rem; max-width: 62rem; margin-top: 1rem; }
.generation-job-list article { display: flex; align-items: center; gap: .7rem; border: 1px solid rgba(23,23,19,.11); background: #fff; padding: .8rem; }
.generation-job-list article > .material-symbols-rounded { color: #865a00; }
.generation-job-list article > div { min-width: 0; flex: 1; }
.generation-job-list strong, .generation-job-list p { display: block; font-size: .64rem; }
.generation-job-list p { margin-top: .15rem; color: rgba(23,23,19,.43); }
.generation-job-list article > div > div { height: 3px; margin-top: .5rem; background: rgba(23,23,19,.08); }
.generation-job-list i { display: block; height: 100%; background: var(--saffron); }
.generation-job-list em { color: rgba(23,23,19,.42); font-size: .58rem; font-style: normal; }
.generation-job-list article.failed { border-left: 3px solid #b42318; }
.generation-job-list article.failed > div > div { display:none; }
.dark .generation-job-list article { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .generation-job-list p, .dark .generation-job-list em { color: rgba(245,242,233,.43); }
.updates-banner { display: flex; align-items: center; gap: .75rem; margin: 1rem 0 0; border: 1px solid rgba(23,23,19,.12); border-left: 4px solid var(--saffron); background: #fff9e9; padding: .75rem .8rem; }
.updates-banner-icon { color: #865a00; }
.updates-banner > div { min-width: 0; flex: 1; }
.updates-banner strong, .updates-banner p { display: block; font-size: .65rem; }
.updates-banner p { margin-top: .15rem; color: rgba(23,23,19,.48); }
.updates-banner > a { border-bottom: 2px solid var(--saffron); color: inherit; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.updates-banner > button { display: grid; width: 2rem; height: 2rem; place-items: center; border: 0; background: transparent; color: inherit; }
.updates-banner > button .material-symbols-rounded { font-size: 1rem; }
.updates-page { max-width: 74rem; }
.updates-version { border: 1px solid rgba(23,23,19,.11); padding: .55rem .7rem; color: rgba(23,23,19,.5); font-size: .62rem; font-weight: 750; }
.updates-featured { display: grid; margin-top: 2.2rem; border: 1px solid rgba(23,23,19,.11); background: #fff; }
.updates-featured-copy { padding: 1.5rem; }
.updates-featured-copy > span { color: #865a00; font-size: .62rem; font-weight: 800; }
.updates-featured-copy h2 { max-width: 35rem; margin-top: 1rem; font-family: "Manrope",sans-serif; font-size: clamp(1.6rem,3vw,2.7rem); font-weight: 800; line-height: 1.08; letter-spacing: -.045em; }
.updates-featured-copy p { max-width: 38rem; margin-top: .85rem; color: rgba(23,23,19,.54); font-size: .76rem; line-height: 1.65; }
.updates-featured-copy a { display: inline-flex; align-items: center; gap: .35rem; margin-top: 1.3rem; border-bottom: 2px solid var(--saffron); color: inherit; font-size: .68rem; font-weight: 800; }
.updates-featured-copy a .material-symbols-rounded { font-size: 1rem; }
.updates-featured-points { border-top: 1px solid rgba(23,23,19,.09); background: var(--cream); padding: .6rem 1.2rem; }
.updates-featured-points > div { display: flex; align-items: center; gap: .7rem; border-bottom: 1px solid rgba(23,23,19,.08); padding: .9rem 0; }
.updates-featured-points > div:last-child { border-bottom: 0; }
.updates-featured-points > div > .material-symbols-rounded { color: #865a00; }
.updates-featured-points strong, .updates-featured-points small { display: block; font-size: .65rem; }
.updates-featured-points small { margin-top: .15rem; color: rgba(23,23,19,.44); }
.updates-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: 3rem; }
.updates-section-heading p, .updates-previous > div p { color: #865a00; font-size: .6rem; font-weight: 800; }
.updates-section-heading h2, .updates-previous > div h2 { margin-top: .3rem; font-family: "Manrope",sans-serif; font-size: 1.25rem; font-weight: 800; }
.updates-section-heading time { color: rgba(23,23,19,.4); font-size: .62rem; }
.updates-highlight-grid { display: grid; gap: .7rem; margin-top: 1rem; }
.updates-highlight-grid article { display: flex; gap: .8rem; border: 1px solid rgba(23,23,19,.1); background: #fff; padding: 1rem; }
.updates-highlight-grid article > .material-symbols-rounded { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; place-items: center; background: #fff5d9; color: #865a00; }
.updates-highlight-grid small { color: rgba(23,23,19,.4); font-size: .56rem; font-weight: 750; }
.updates-highlight-grid h3 { margin-top: .3rem; font-family: "Manrope",sans-serif; font-size: .8rem; font-weight: 800; }
.updates-highlight-grid p { margin-top: .35rem; color: rgba(23,23,19,.5); font-size: .65rem; line-height: 1.55; }
.updates-previous { display: grid; gap: 1.5rem; margin-top: 3rem; border-top: 1px solid rgba(23,23,19,.1); padding-top: 1.5rem; }
.updates-previous ul { list-style: none; }
.updates-previous li { display: grid; grid-template-columns: 3.2rem minmax(0,1fr); gap: .8rem; border-bottom: 1px solid rgba(23,23,19,.08); padding: .8rem 0; }
.updates-previous time { color: rgba(23,23,19,.38); font-size: .6rem; font-weight: 700; }
.updates-previous strong, .updates-previous small { display: block; font-size: .65rem; }
.updates-previous small { margin-top: .18rem; color: rgba(23,23,19,.43); }
.dark .updates-banner { border-color: rgba(255,255,255,.12); border-left-color: var(--saffron); background: #29251a; }
.dark .updates-banner p, .dark .updates-version, .dark .updates-featured-copy p, .dark .updates-featured-points small, .dark .updates-section-heading time, .dark .updates-highlight-grid small, .dark .updates-highlight-grid p, .dark .updates-previous time, .dark .updates-previous small { color: rgba(245,242,233,.43); }
.dark .updates-featured, .dark .updates-highlight-grid article { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .updates-featured-points { border-color: rgba(255,255,255,.1); background: #202019; }
.dark .updates-featured-points > div, .dark .updates-previous, .dark .updates-previous li { border-color: rgba(255,255,255,.09); }
.dark .updates-highlight-grid article > .material-symbols-rounded { background: #332b18; color: #f2c35e; }
@media (min-width: 768px) {
  .updates-featured { grid-template-columns: minmax(0,1.4fr) minmax(18rem,.6fr); }
  .updates-featured-points { border-top: 0; border-left: 1px solid rgba(23,23,19,.09); }
  .updates-highlight-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .updates-previous { grid-template-columns: 15rem minmax(0,1fr); }
}
@media (min-width: 768px) {
  .reminder-create { grid-template-columns: minmax(0,1fr) 15rem 9rem; align-items: end; }
}

@media (min-width: 768px) {
  .admin-secret-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .admin-webhook-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-role-assignments > form { grid-template-columns: minmax(12rem,1fr) 11rem 5rem; }
}

@media (min-width: 768px) {
  .section-pad { padding: 8.5rem 2rem; }
  .section-intro { grid-template-columns: 1.35fr .65fr; }
  .process-card { padding: 2.5rem; }
  .process-card + .process-card { border-top: 0; border-left: 1px solid rgba(23,23,19,.1); }
  .process-number { right: 2.5rem; }
  .price-card { padding: 2.75rem; }
  .price-card + .price-card { border-top: 1px solid rgba(23,23,19,.15); border-left: 1px solid rgba(23,23,19,.15); }
  .app-page-heading { flex-direction: row; align-items: end; justify-content: space-between; }
  .meal-feature { grid-template-columns: 1.2fr .8fr; }
  .saved-grid { grid-template-columns: repeat(2,1fr); }
  .nutrition-summary { grid-template-columns: repeat(3,1fr); }
  .nutrition-lead { grid-column: 1 / -1; }
  .choice-grid { grid-template-columns: repeat(2,1fr); }
  .plan-builder-step { grid-template-columns: 2rem minmax(13rem,.8fr) 1.2fr; align-items: start; padding: 1.6rem; }
  .nutrition-focus-step > .nutrition-focus-note { grid-column: 3; margin-top: -.45rem; }
  .plan-status, .plan-row > .material-symbols-rounded { display: block; }
  .plan-row { grid-template-columns: 3.2rem minmax(0,1fr) auto 1.5rem; padding: 1rem .8rem; }
  .smart-options { grid-template-columns: repeat(5,1fr); }
  .compact-options { grid-template-columns: repeat(3,1fr); }
  .measurement-grid { grid-template-columns: repeat(2,minmax(0,16rem)); }
  .manual-grocery-form { grid-template-columns: minmax(0,1fr) 9rem 7rem; align-items: end; }
  .household-grid { grid-template-columns: repeat(2,1fr); }
  .checkin-options { grid-template-columns: repeat(2,1fr); }
  .goal-options { grid-template-columns: repeat(2,1fr); }
  .focus-options { grid-template-columns: repeat(2,1fr); }
  .profile-details { grid-template-columns: repeat(2,1fr); }
  .plan-overview { grid-template-columns: repeat(4,1fr); }
  .plan-overview > div { border-bottom: 0; }
  .plan-overview > div:nth-child(2n) { border-right: 1px solid rgba(23,23,19,.09); }
  .plan-overview > div:last-child { border-right: 0; }
  .full-day > header { flex-direction: row; align-items: center; justify-content: space-between; }
  .day-meals { grid-template-columns: repeat(3,1fr); }
  .day-meals.meal-count-1 { grid-template-columns: minmax(0,1fr); }
  .day-meals.meal-count-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .day-meals.meal-count-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .day-meal { grid-template-columns: 4rem minmax(0,1fr); border-right: 1px solid rgba(23,23,19,.08); border-bottom: 0; }
  .day-meal:last-child { border-right: 0; }
  .day-meal > img { width: 4rem; }
  .day-meal > .material-symbols-rounded { display: none; }
  .nutrition-days { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nutrition-detail-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
  .preplanning-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (min-width: 1024px) {
  .auth-page { grid-template-columns: minmax(31rem, .9fr) 1.1fr; }
  .auth-form-side { padding: 2rem 3rem; }
  .auth-visual { display: block; }
  .app-sidebar { transform: none; }
  .app-main { margin-left: 17.5rem; }
  .app-mobile-head { display: none; }
  .app-content { padding: 2.2rem 2.5rem 5rem; }
  .app-breadcrumbs { top: 0; margin: -2.2rem -2.5rem 0; padding: 0 2.5rem; }
  .meal-layout { grid-template-columns: minmax(0,1fr) 20rem; }
  .create-plan-layout { grid-template-columns: minmax(0,1fr) 19rem; }
  .plan-review { top: 4.2rem; margin-top: 2.5rem; }
  .profile-layout { grid-template-columns: minmax(0,1fr) 20rem; }
  .accessibility-setting { flex-direction: row; align-items: center; justify-content: space-between; }
  .feedback-layout { grid-template-columns: minmax(0,1fr) 20rem; }
  .preplanning-layout { grid-template-columns: minmax(0,1fr) 24rem; }
  .public-feedback { position: sticky; top: 4.2rem; }
  .plan-overview { grid-template-columns: repeat(5,minmax(0,1fr)); }
  .admin-page-head { flex-direction: row; align-items: end; justify-content: space-between; }
  .admin-metrics { grid-template-columns: repeat(2,1fr); }
  .admin-meal-grid { grid-template-columns: repeat(3,1fr); }
  .admin-settings { grid-template-columns: repeat(2,1fr); }
  .admin-question-grid { grid-template-columns: repeat(2,1fr); }
  .flexible-portions-step { grid-template-columns: 2rem minmax(0,1fr); }
  .flexible-portions-step > .flexible-portions-controls,
  .flexible-portions-step > .flexible-portions-locked { grid-column: 2 / -1; }
  .flexible-portions-controls { display: block; border-top: 1px solid rgba(23,23,19,.09); padding-top: 1.35rem; }
  .flexible-portions-controls > * + * { margin-top: 1.35rem; }
  .flexible-day-options { display: grid; max-width: 36rem; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .55rem; }
  .flexible-day-options span { min-height: 3.4rem; display: grid; place-items: center; padding: .65rem; text-align: center; font-weight: 750; }
  .flexible-count-grid { width: min(100%,38rem); max-width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
  .flexible-count-grid > label:first-child { grid-column: 1 / -1; width: min(100%,24rem); }
  .leftover-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .leftover-options span { min-height: 3rem; display: grid; place-items: center; text-align: center; }
  .dark .flexible-portions-controls { border-color: rgba(255,255,255,.1); }
}

/* Branded form controls */
select {
  appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position:
    calc(100% - 1rem) calc(50% - 2px),
    calc(100% - .72rem) calc(50% - 2px);
  background-repeat: no-repeat;
  background-size: .32rem .32rem, .32rem .32rem;
  padding-right: 2.35rem !important;
}
select:focus {
  border-color: var(--saffron) !important;
  outline: 2px solid rgba(255,176,0,.22);
  outline-offset: 1px;
}
.custom-select-native { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }
.custom-select { position: relative; width: 100%; }
.custom-select-trigger { display: flex; width: 100%; min-height: 2.9rem; align-items: center; justify-content: space-between; gap: .75rem; border: 1px solid rgba(23,23,19,.14); border-radius: 0; background: transparent; padding: .7rem .8rem; color: inherit; text-align: left; font: inherit; font-size: .73rem; }
.custom-select-trigger .material-symbols-rounded { color: #9b6900; font-size: 1.05rem; transition: transform .18s ease; }
.custom-select.is-open .custom-select-trigger { border-color: var(--saffron); outline: 2px solid rgba(255,176,0,.18); }
.custom-select.is-open .custom-select-trigger .material-symbols-rounded { transform: rotate(180deg); }
.custom-select-trigger:disabled { cursor: not-allowed; opacity: .5; }
.custom-select-menu { position: absolute; z-index: 110; top: calc(100% + .35rem); right: 0; left: 0; max-height: 15rem; overflow-y: auto; border: 1px solid rgba(23,23,19,.14); background: #fff; padding: .3rem; box-shadow: 0 14px 35px rgba(23,23,19,.14); }
.custom-select-option { display: flex; width: 100%; min-height: 2.5rem; align-items: center; border: 0; background: transparent; padding: .55rem .65rem; color: var(--ink); text-align: left; font: inherit; font-size: .71rem; }
.custom-select-option:hover, .custom-select-option:focus, .custom-select-option.is-selected { background: #fff6dc; outline: 0; }
.custom-select-option.is-selected { box-shadow: inset 3px 0 var(--saffron); font-weight: 800; }
.dark .custom-select-trigger { border-color: rgba(255,255,255,.14); }
.dark .custom-select-menu { border-color: rgba(255,255,255,.14); background: #24241f; box-shadow: 0 14px 35px rgba(0,0,0,.35); }
.dark .custom-select-option { color: #f5f2e9; }
.dark .custom-select-option:hover, .dark .custom-select-option:focus, .dark .custom-select-option.is-selected { background: #332b18; }

@media (min-width: 1024px) {
  .admin-sidebar { transform: none; }
  .admin-main { margin-left: 16.5rem; }
  .admin-topbar > button:first-child { display: none; }
  .admin-content { padding: 2.2rem 2.5rem 5rem; }
  .admin-metrics { grid-template-columns: repeat(4,1fr); }
  .admin-overview-grid { grid-template-columns: minmax(0,1.5fr) minmax(17rem,.5fr); }
  .checkin-layout { grid-template-columns: minmax(0,1fr) 18rem; }
  .checkin-info { position: sticky; top: 4.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Legal pages */
.legal-page { padding-top: 4.25rem; background: var(--cream); }
.legal-hero { max-width: 76rem; margin: 0 auto; padding: 5.5rem 1.25rem 3.5rem; }
.legal-hero > a { display: inline-flex; align-items: center; gap: .35rem; color: rgba(23,23,19,.58); font-size: .72rem; font-weight: 750; }
.legal-hero > a .material-symbols-rounded { font-size: 1rem; }
.legal-hero > p { margin-top: 3rem; color: #865a00; font-size: .68rem; font-weight: 800; }
.legal-hero h1 { max-width: 48rem; margin-top: .8rem; font-family: "Manrope",sans-serif; font-size: clamp(2.8rem,7vw,5.7rem); font-weight: 800; line-height: .98; letter-spacing: -.065em; }
.legal-hero > span { display: block; max-width: 43rem; margin-top: 1.25rem; color: rgba(23,23,19,.54); font-size: clamp(.9rem,1.7vw,1.15rem); line-height: 1.6; }
.legal-layout { display: grid; max-width: 76rem; margin: 0 auto; border-top: 1px solid rgba(23,23,19,.12); padding: 2rem 1.25rem 6rem; }
.legal-layout > aside { display: none; }
.legal-copy { max-width: 49rem; }
.legal-copy section { scroll-margin-top: 7rem; border-bottom: 1px solid rgba(23,23,19,.1); padding: 0 0 2rem; }
.legal-copy section + section { padding-top: 2rem; }
.legal-copy h2 { font-family: "Manrope",sans-serif; font-size: 1.25rem; font-weight: 800; letter-spacing: -.025em; }
.legal-copy p { margin-top: .8rem; color: rgba(23,23,19,.62); font-size: .82rem; line-height: 1.75; }
.legal-copy p a { border-bottom: 1px solid var(--saffron); color: var(--ink); font-weight: 700; }
.legal-note { display: flex; gap: .7rem; margin-top: 2rem; border-left: 3px solid var(--saffron); background: #fff9e9; padding: 1rem; }
.legal-note .material-symbols-rounded { color: #865a00; }
.legal-note p { margin: 0; font-size: .72rem; }
.companion-empty { display: flex; align-items: flex-start; gap: .8rem; padding: 1.2rem !important; }
.companion-empty > .material-symbols-rounded { display: grid; width: 2.6rem; height: 2.6rem; flex: 0 0 auto; place-items: center; background: #fff5d9; color: #865a00; }
.companion-empty > div > div { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .9rem; }
.companion-empty a { border: 1px solid rgba(23,23,19,.13); padding: .55rem .7rem; color: var(--ink); font-size: .62rem; font-weight: 750; }
.dark .admin-all-clear, .dark .legal-note { background: #29251a; }
.dark .admin-all-clear small, .dark .admin-queue-summary span { color: rgba(245,242,233,.43); }
.dark .admin-queue-summary, .dark .legal-layout, .dark .legal-copy section { border-color: rgba(255,255,255,.1); }
.dark .admin-queue-summary b { color: #f5f2e9; }
.dark .legal-page { background: #10100e; }
.dark .legal-hero > a, .dark .legal-hero > span, .dark .legal-copy p { color: rgba(245,242,233,.58); }
.dark .legal-copy p a { color: #f5f2e9; }
.dark .companion-empty a { border-color: rgba(255,255,255,.14); color: #f5f2e9; }
@media (min-width: 768px) {
  .legal-hero, .legal-layout { padding-right: 2rem; padding-left: 2rem; }
  .legal-layout { grid-template-columns: 14rem minmax(0,1fr); gap: 4rem; }
  .legal-layout > aside { position: sticky; top: 6.5rem; display: flex; height: max-content; flex-direction: column; gap: .7rem; }
  .legal-layout > aside strong { margin-bottom: .35rem; font-size: .7rem; }
  .legal-layout > aside a { color: rgba(23,23,19,.48); font-size: .67rem; font-weight: 650; }
  .dark .legal-layout > aside a { color: rgba(245,242,233,.45); }
}
body.generation-active{overflow:hidden}.plan-generation-overlay{position:fixed;inset:0;width:100vw;height:100dvh;z-index:100;background:rgba(248,245,236,.94);display:flex;overflow:hidden;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(10px)}.dark .plan-generation-overlay{background:rgba(22,21,18,.94)}.plan-generation-card{width:min(500px,100%);max-height:calc(100dvh - 48px);text-align:center}.plan-generation-overlay>.plan-generation-card>.material-symbols-rounded{font-size:40px;color:#b97800}.plan-generation-overlay h2{font:800 1.5rem Manrope,sans-serif;margin:14px 0 8px}.plan-generation-overlay p,.plan-generation-overlay small{color:var(--muted,#777)}.plan-progress-heading{display:flex;justify-content:space-between;align-items:center;margin:24px 0 8px;font-size:.84rem}.plan-progress-heading strong{font:800 1rem Manrope,sans-serif}.plan-generation-progress{height:8px;overflow:hidden;background:rgba(23,23,19,.1)}.dark .plan-generation-progress{background:rgba(255,255,255,.12)}.plan-generation-progress span{display:block;height:100%;background:#ffb000;transition:width .45s ease}.plan-generation-stages{display:grid;gap:8px;margin:18px 0 22px;padding:0;list-style:none;text-align:left}.plan-generation-stages li{display:flex;align-items:center;gap:10px;color:var(--muted,#777);font-size:.9rem}.plan-generation-stages .material-symbols-rounded{font-size:20px;color:inherit}.plan-generation-stages li.is-active{color:#171713;font-weight:750}.dark .plan-generation-stages li.is-active{color:#fff}.plan-generation-stages li.is-complete{color:#8a6500}.plan-generation-stages li.is-active .material-symbols-rounded{color:#ffb000;animation:plan-stage-pulse 1.2s ease-in-out infinite}@keyframes plan-stage-pulse{50%{opacity:.35}}
.app-empty-state{display:flex;align-items:center;gap:1rem;width:100%;margin-top:1rem;border:1px solid rgba(23,23,19,.11);background:#fff;padding:1.35rem}.app-empty-state>.material-symbols-rounded{display:grid;width:2.8rem;height:2.8rem;flex:0 0 auto;place-items:center;background:#fff5d9;color:#8a5d00}.app-empty-state>div{min-width:0;flex:1}.app-empty-state strong{display:block;font-family:"Manrope",sans-serif;font-size:.86rem;font-weight:800}.app-empty-state p{margin-top:.25rem;color:rgba(23,23,19,.5);font-size:.7rem;line-height:1.5}.app-empty-state a{border-bottom:2px solid var(--saffron);color:inherit;font-size:.68rem;font-weight:800}.live-feedback-form{display:grid;gap:1.1rem;max-width:60rem;margin-top:1.5rem;padding:1.5rem}.feedback-field-grid{display:grid;gap:1rem}.live-feedback-form label>span{display:block;margin-bottom:.4rem;font-size:.68rem;font-weight:800}.live-feedback-form select,.live-feedback-form textarea{width:100%;border:1px solid rgba(23,23,19,.14);background:transparent;padding:.8rem;color:inherit;font:inherit;font-size:.76rem}.live-feedback-form select{height:3rem}.live-feedback-form textarea{min-height:9rem;resize:vertical}.live-feedback-form .auth-check{display:flex;align-items:center;gap:.55rem}.live-feedback-form .auth-check span{margin:0;font-weight:500}.live-feedback-form .app-primary-action{justify-self:start}.auth-validation{max-width:60rem;margin:1rem 0;border-left:3px solid #b42318;background:#fff4f2;padding:.9rem 1rem}.auth-validation strong{font-size:.75rem}.auth-validation p{margin-top:.25rem;color:#8f2d25;font-size:.68rem}.dark .app-empty-state,.dark .live-feedback-form{border-color:rgba(255,255,255,.12);background:#191916}.dark .app-empty-state>.material-symbols-rounded{background:#28251c}.dark .app-empty-state p{color:rgba(245,242,233,.48)}.dark .live-feedback-form select,.dark .live-feedback-form textarea{border-color:rgba(255,255,255,.14)}.dark .auth-validation{background:#2b1c1a}.dark .auth-validation p{color:#e7aaa5}@media(min-width:768px){.feedback-field-grid{grid-template-columns:14rem minmax(0,1fr)}}

/* First-time setup */
.onboarding-shell { max-width: 68rem; margin: 1.8rem auto 0; }
.onboarding-head { display: flex; flex-direction: column; gap: 1rem; }
.onboarding-head p { color: #865a00; font-size: .64rem; font-weight: 800; }
.onboarding-head h1 { max-width: 48rem; margin-top: .5rem; font-family: "Manrope",sans-serif; font-size: clamp(2rem,5vw,3.8rem); font-weight: 800; line-height: 1; letter-spacing: -.055em; }
.onboarding-head div > span { display: block; max-width: 42rem; margin-top: .8rem; color: rgba(23,23,19,.5); font-size: .76rem; line-height: 1.55; }
.onboarding-head form button { border: 0; border-bottom: 1px solid var(--saffron); background: transparent; padding: .25rem 0; color: inherit; font: inherit; font-size: .64rem; font-weight: 700; }
.onboarding-progress { display: grid; grid-template-columns: repeat(4,1fr); gap: .35rem; margin-top: 1.5rem; }
.onboarding-progress span { height: 3px; background: rgba(23,23,19,.1); }
.onboarding-progress span.active { background: var(--saffron); }
.onboarding-card { margin-top: .7rem; border: 1px solid rgba(23,23,19,.11); background: #fff; }
.onboarding-step { display: none; min-height: 25rem; border: 0; padding: 1.35rem; }
.onboarding-step.active { display: block; }
.onboarding-step-copy > span { color: #865a00; font-size: .59rem; font-weight: 800; }
.onboarding-step-copy h2 { max-width: 38rem; margin-top: .55rem; font-family: "Manrope",sans-serif; font-size: clamp(1.35rem,3vw,2.2rem); font-weight: 800; letter-spacing: -.04em; }
.onboarding-step-copy p { max-width: 40rem; margin-top: .5rem; color: rgba(23,23,19,.48); font-size: .7rem; line-height: 1.55; }
.onboarding-field { display: block; max-width: 38rem; margin-top: 1.5rem; }
.onboarding-field > span, .onboarding-household label > span { display: block; margin-bottom: .4rem; font-size: .66rem; font-weight: 750; }
.onboarding-field input, .onboarding-field select, .onboarding-field textarea, .onboarding-household input { width: 100%; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: .75rem; color: inherit; font: inherit; font-size: .72rem; }
.onboarding-field input, .onboarding-field select, .onboarding-household input { height: 3rem; }
.onboarding-field textarea { min-height: 6rem; resize: vertical; }
.onboarding-field small { display: block; margin-top: .45rem; color: rgba(23,23,19,.43); font-size: .6rem; line-height: 1.5; }
.onboarding-household { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; max-width: 28rem; margin-top: 1.2rem; }
.onboarding-goals { display: grid; gap: .6rem; margin-top: 1.4rem; }
.onboarding-goals input { position: absolute; opacity: 0; }
.onboarding-goals label > span { display: flex; min-height: 5rem; cursor: pointer; align-items: center; gap: .8rem; border: 1px solid rgba(23,23,19,.12); padding: .6rem; }
.onboarding-goals img { width: 4rem; height: 3.8rem; object-fit: contain; }
.onboarding-goals b { font-size: .69rem; }
.onboarding-goals input:checked + span { border-color: var(--saffron); background: #fff9e9; box-shadow: inset 3px 0 var(--saffron); }
.onboarding-actions { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .8rem; border-top: 1px solid rgba(23,23,19,.1); padding: .8rem 1rem; }
.onboarding-actions button { display: inline-flex; min-height: 2.7rem; align-items: center; gap: .35rem; border: 1px solid rgba(23,23,19,.14); background: transparent; padding: .6rem .8rem; color: inherit; font: inherit; font-size: .65rem; font-weight: 800; }
.onboarding-actions #onboarding-next { border-color: var(--ink); background: var(--ink); color: #fff; }
.onboarding-actions button:disabled { opacity: .35; }
.onboarding-actions p { color: rgba(23,23,19,.4); text-align: center; font-size: .58rem; }
.dark .onboarding-head div > span, .dark .onboarding-step-copy p, .dark .onboarding-field small, .dark .onboarding-actions p { color: rgba(245,242,233,.45); }
.dark .onboarding-progress span { background: rgba(255,255,255,.12); }
.dark .onboarding-progress span.active { background: var(--saffron); }
.dark .onboarding-card { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .onboarding-field input, .dark .onboarding-field select, .dark .onboarding-field textarea, .dark .onboarding-household input, .dark .onboarding-goals label > span, .dark .onboarding-actions { border-color: rgba(255,255,255,.14); }
.dark .onboarding-goals input:checked + span { background: #29251a; }
@media (min-width: 700px) {
  .onboarding-head { flex-direction: row; align-items: start; justify-content: space-between; }
  .onboarding-step { padding: 2rem; }
  .onboarding-goals { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Transferred account activation */
.activation-guidance,
.activation-private-notice,
.transferred-account-note { display: flex; align-items: flex-start; gap: .8rem; }
.activation-guidance { max-width: 58rem; margin-top: 1.4rem; border-left: 3px solid var(--saffron); background: #fff9e9; padding: 1rem; }
.activation-guidance > .material-symbols-rounded,
.activation-private-notice > .material-symbols-rounded,
.transferred-account-note > .material-symbols-rounded { color: #936200; }
.activation-guidance strong,
.activation-guidance p,
.activation-private-notice strong,
.activation-private-notice p,
.transferred-account-note strong,
.transferred-account-note p { display: block; font-size: .68rem; }
.activation-guidance p,
.activation-private-notice p,
.transferred-account-note p { margin-top: .25rem; color: rgba(23,23,19,.52); line-height: 1.5; }
.activation-list { max-width: 70rem; margin-top: .7rem; overflow-x: auto; }
.activation-row { display: grid; min-width: 48rem; grid-template-columns: minmax(13rem,1fr) 8rem 12rem 10rem; align-items: center; gap: 1rem; border-top: 1px solid rgba(23,23,19,.09); padding: .9rem 0; }
.activation-row:first-child { border-top: 0; }
.activation-row b,
.activation-row small { display: block; font-size: .67rem; }
.activation-row small { margin-top: .2rem; color: rgba(23,23,19,.43); }
.activation-header { color: rgba(23,23,19,.42); font-size: .61rem; font-weight: 750; }
.activation-row form { justify-self: end; }
.activation-row button,
.activation-copy-actions button,
.activation-sent-form button { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; border: 1px solid var(--ink); background: var(--ink); padding: .65rem .8rem; color: #fff; font: 750 .63rem "DM Sans",sans-serif; }
.activation-row button .material-symbols-rounded,
.activation-copy-actions button .material-symbols-rounded,
.activation-sent-form button .material-symbols-rounded { font-size: 1rem; }
.activation-state b { text-transform: capitalize; }
.activation-state.link_created b { color: #8a5d00; }
.activation-state.sent b { color: #7a5a09; }
.activation-state.activated b { color: #4d681f; }
.activation-empty { display: flex; align-items: center; gap: .55rem; border-top: 1px solid rgba(23,23,19,.09); padding: 1rem 0; font-size: .7rem; }
.activation-result { max-width: 68rem; }
.activation-back { display: inline-flex; align-items: center; gap: .3rem; color: rgba(23,23,19,.55); font-size: .65rem; font-weight: 750; }
.activation-back .material-symbols-rounded { font-size: 1rem; }
.activation-private-notice { max-width: 50rem; margin-top: 1.25rem; border-left: 3px solid #b42318; background: #fff4f2; padding: 1rem; }
.activation-copy-panel { display: grid; gap: 1rem; max-width: 58rem; margin-top: 1rem; border: 1px solid rgba(23,23,19,.12); background: #fff; padding: clamp(1.2rem,3vw,2rem); }
.activation-copy-panel > div:first-child span,
.activation-copy-panel > div:first-child strong,
.activation-copy-panel > div:first-child small,
.activation-copy-panel label > span { display: block; }
.activation-copy-panel > div:first-child span,
.activation-copy-panel label > span { margin-bottom: .35rem; color: rgba(23,23,19,.45); font-size: .62rem; font-weight: 750; }
.activation-copy-panel > div:first-child strong { font-size: .8rem; }
.activation-copy-panel > div:first-child small { margin-top: .2rem; color: rgba(23,23,19,.45); font-size: .63rem; }
.activation-copy-panel input,
.activation-copy-panel textarea { width: 100%; border: 1px solid rgba(23,23,19,.14); background: #fafafa; padding: .8rem; color: inherit; font: .7rem/1.55 "DM Sans",sans-serif; }
.activation-copy-panel textarea { min-height: 18rem; resize: vertical; }
.activation-copy-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.activation-copy-actions button:first-child { background: transparent; color: var(--ink); }
.activation-sent-form { display: flex; max-width: 58rem; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .8rem; border-top: 1px solid rgba(23,23,19,.1); padding-top: 1rem; }
.activation-sent-form p { color: rgba(23,23,19,.5); font-size: .66rem; }
.transferred-account-note { margin-top: 1.2rem; border-top: 1px solid rgba(23,23,19,.1); padding-top: 1rem; }
.dark .activation-guidance { background: #272319; }
.dark .activation-private-notice { background: #2b1c1a; }
.dark .activation-copy-panel { border-color: rgba(255,255,255,.12); background: #191916; }
.dark .activation-row { border-color: rgba(255,255,255,.1); }
.dark .activation-guidance p,
.dark .activation-private-notice p,
.dark .activation-row small,
.dark .activation-copy-panel > div:first-child span,
.dark .activation-copy-panel > div:first-child small,
.dark .activation-copy-panel label > span,
.dark .activation-sent-form p,
.dark .transferred-account-note p,
.dark .activation-back { color: rgba(245,242,233,.5); }
.dark .activation-copy-panel input,
.dark .activation-copy-panel textarea { border-color: rgba(255,255,255,.14); background: #11110f; }
.dark .activation-row button,
.dark .activation-copy-actions button,
.dark .activation-sent-form button { border-color: #f5f2e9; background: #f5f2e9; color: #171713; }
.dark .activation-copy-actions button:first-child { background: transparent; color: #f5f2e9; }
@media (max-width: 640px) {
  .activation-sent-form { align-items: stretch; flex-direction: column; }
}

/* Quiet, purposeful motion */
@keyframes soft-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes soft-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes progress-breathe {
  0%, 100% { opacity: .72; }
  50% { opacity: 1; }
}

html:not(.motion-ready) body > main,
html:not(.motion-ready) .app-main,
html:not(.motion-ready) .admin-main,
html:not(.motion-ready) .auth-page { opacity: 0; transform: translateY(8px); }
.motion-ready body > main,
.motion-ready .app-main,
.motion-ready .admin-main,
.motion-ready .auth-page {
  animation: soft-rise .48s cubic-bezier(.22,.8,.25,1) both;
}

a, button, input, textarea, .custom-select-trigger,
.meal-card, .plan-card, .pricing-card, .profile-card,
.dashboard-sidebar a, .admin-sidebar a {
  transition-property: color, background-color, border-color, box-shadow, opacity, transform;
  transition-duration: .2s;
  transition-timing-function: cubic-bezier(.22,.8,.25,1);
}
button:not(:disabled):active,
a[class*="button"]:active { transform: translateY(1px); }
button:not(:disabled):hover { transform: translateY(-1px); }

.custom-select-menu {
  transform-origin: top center;
  animation: soft-rise .18s cubic-bezier(.22,.8,.25,1) both;
}
.meal-drawer-scrim { animation: none; }
.updates-banner { animation: soft-rise .4s .08s cubic-bezier(.22,.8,.25,1) both; }
.generation-job-list article:not(.failed) i { animation: progress-breathe 1.4s ease-in-out infinite; }
.onboarding-step.active { animation: soft-rise .3s cubic-bezier(.22,.8,.25,1) both; }
.onboarding-progress span { transition: background-color .28s ease, transform .28s ease; }
.onboarding-progress span.active { transform: scaleY(1.45); }

@media (hover: hover) {
  .meal-card:hover,
  .plan-card:hover,
  .pricing-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(23,23,19,.07); }
  .dark .meal-card:hover,
  .dark .plan-card:hover,
  .dark .pricing-card:hover { box-shadow: 0 12px 28px rgba(0,0,0,.2); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  html:not(.motion-ready) body > main,
  html:not(.motion-ready) .app-main,
  html:not(.motion-ready) .admin-main,
  html:not(.motion-ready) .auth-page { opacity: 1; transform: none; }
}
