.shell { max-width: 1080px; padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
.shell header { padding: 22px 0; border-bottom: 0; }
.brand { gap: 9px; font-size: 25px; letter-spacing: -.7px; }
.brand img { width: 42px; height: 42px; object-fit: contain; }
.brand small { letter-spacing: 1.5px; font-size: 8px; }
.local { background: #eaf0e5; padding: 8px 11px; border-radius: 20px; font-size: 10px; }
.settings-card { background: #fffefa; border: 1px solid #e0e5d8; border-radius: 16px; overflow: hidden; }
.sign-out svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.sign-out { display: flex; align-items: center; gap: 13px; text-align: left; width: 100%; min-height: 66px; padding: 20px; border-radius: 0; background: transparent; color: #9b6960; font-size: 14px; font-weight: 500; }
.sign-out:disabled { cursor: default; opacity: .65; }
.sign-out:disabled:hover { filter: none; }
body[data-screen='settings'] .shell footer { display: none; }
.home-intro { margin-top: 12px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 24px; padding: 30px 34px; border-radius: 24px; background: #e9eddf; }
.home-intro[hidden] { display: none; }
.home-intro .eyebrow { margin: 0 0 12px; color: #4d6756; }
.home-intro h1 { font-size: 43px; letter-spacing: -1.6px; margin: 0 0 12px; line-height: 1.12; }
.home-intro p:not(.eyebrow) { font-size: 14px; line-height: 1.6; color: #60705c; margin: 0 0 19px; max-width: 380px; }
.home-intro .intro-chef { width: 150px; height: 150px; transform: rotate(5deg); }
.intro-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.intro-actions button { min-height: 44px; font-size: 13px; border-radius: 11px; }
.intro-actions button span { margin-left: 15px; }
.intro-actions .text-button { background: transparent; color: #45644f; font-size: 11px; font-weight: 500; padding: 10px 4px; }
.home-overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 8px 0 22px; }
.overview-card { display: flex; flex-direction: column; gap: 11px; text-align: left; padding: 21px; background: #fffefa; border: 1px solid #e0e5d8; border-radius: 16px; color: #194e41; }
.overview-value { font-size: 29px; font-weight: 650; letter-spacing: -1px; }
.overview-value small { font-size: 12px; color: #6e7d69; font-weight: 400; letter-spacing: 0; }
.overview-card > span:last-child { display: flex; justify-content: space-between; gap: 6px; font-size: 12px; color: #687962; font-weight: 450; width: 100%; }
.home-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px; }
.next-dinner,.home-shopping { border: 1px solid #e0e5d8; border-radius: 18px; padding: 25px; background: #fffefa; }
.home-card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.home-card-head .eyebrow { color: #7c896e; font-size: 9px; }
.little-plate { font-size: 26px; color: #9cae84; }
.next-dinner h2 { font-size: 30px; line-height: 1.16; margin: 13px 0; max-width: 330px; }
.next-dinner p,.home-shopping p { color: #78806f; font-size: 12px; line-height: 1.7; }
.home-card-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 22px; }
.home-card-actions button { font-size: 12px; min-height: 44px; }
.home-card-actions button span { padding-left: 20px; }
.home-card-actions .text-button { background: none; color: #537255; font-weight: 500; }
.home-shopping h2 { font: 500 23px/1.2 Georgia,serif; margin: 4px 0; }
.list-dot { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; font-size: 12px; background: #e9eddf; flex-shrink: 0; }
.shopping-preview { list-style: none; padding: 0; margin: 16px 0 0; }
.shopping-preview li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid #eceee5; font-size: 12px; }
.shopping-preview li span { overflow-wrap: anywhere; }
.shopping-preview small { font-size: 9px; color: #87917c; display: block; margin-top: 3px; }
.shopping-preview strong { font-size: 11px; font-weight: 500; white-space: nowrap; }
.home-link { background: none; color: #194e41; width: 100%; padding: 15px 0 0; display: flex; justify-content: space-between; align-items: center; min-height: 44px; font-size: 12px; text-align: left; }
.pantry-nudge { display: flex; width: 100%; gap: 15px; text-align: left; align-items: center; padding: 20px; border-radius: 16px; background: #f0ede3; color: #425540; margin-top: 20px; }
.pantry-nudge > span:nth-child(2) { flex: 1; min-width: 0; }
.pantry-nudge strong { display: block; font-size: 12px; font-weight: 600; }
.pantry-nudge small { display: block; font-size: 11px; font-weight: 400; line-height: 1.6; color: #7a806e; margin-top: 4px; }
.pantry-nudge-icon { font-size: 24px; font-weight: 350; }
.view-title { font: 500 34px/1.2 Georgia,serif; letter-spacing: -1px; margin: 10px 0; }
.view-title span { display: block; color: #7b856f; font: 400 12px/1.5 system-ui,sans-serif; letter-spacing: 0; margin-top: 9px; }
.schedule-actions { display: flex; gap: 9px; flex-wrap: wrap; }
.schedule-actions button { min-height: 44px; font-size: 12px; }
.order-note { border-radius: 12px; padding: 14px 16px; background: #e9eddf; color: #52674b; font-size: 12px; line-height: 1.6; }
.shell footer { margin-top: 30px; }
.bottom-nav { position: fixed; inset: auto 0 0; top: auto; z-index: 10; background: #fffefa; border: 0; border-top: 1px solid #e0e5d8; padding: 8px max(16px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); display: block; box-shadow: 0 -5px 20px #243f3504; }
.bottom-nav-inner { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); max-width: 620px; margin: 0 auto; gap: 8px; }
.bottom-nav button { position: relative; border: 0; border-radius: 14px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; background: transparent; padding: 9px 4px; min-height: 62px; color: #88917f; font-size: 11px; font-weight: 500; }
.bottom-nav button.active { border: 0; color: #194e41; background: #edf2e7; font-weight: 700; }
.bottom-nav svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.nav-icon { position: relative; display: flex; }
.bottom-nav b { position: absolute; left: 15px; top: -6px; margin: 0; background: #194e41; color: #fffefa; border: 2px solid #fffefa; padding: 1px 4px; min-width: 18px; border-radius: 10px; font-size: 9px; line-height: 12px; }
.bottom-nav b[hidden] { display: none; }
@media(max-width:700px) {
  .shell header { padding: 20px 0 16px; }
  .brand { font-size: 22px; }
  .brand img { width: 35px; height: 35px; }
  .brand small { font-size: 6px; letter-spacing: 1.2px; }
  .local { font-size: 8px; padding: 7px 8px; max-width: 91px; line-height: 1.4; }
  .home-intro { padding: 24px 22px; border-radius: 20px; margin-top: 5px; grid-template-columns: 1fr; gap: 0; position: relative; overflow: hidden; }
  .home-intro h1 { font-size: 35px; letter-spacing: -1.2px; max-width: 230px; }
  .home-intro p:not(.eyebrow) { max-width: 240px; font-size: 12px; margin-bottom: 16px; }
  .home-intro .eyebrow { font-size: 8px; letter-spacing: 1.3px; margin-bottom: 12px; }
  .home-intro .intro-chef { width: 85px; height: 85px; position: absolute; right: -2px; top: 45px; opacity: .2; transform: rotate(9deg); pointer-events: none; }
  .intro-actions { gap: 6px; }
  .intro-actions button { font-size: 12px; padding: 11px 15px; }
  .intro-actions .text-button { font-size: 10px; padding: 8px 0; }
  .home-overview { gap: 8px; margin-bottom: 16px; }
  .overview-card { padding: 15px 11px; gap: 8px; border-radius: 13px; }
  .overview-value { font-size: 26px; }
  .overview-value small { display: block; font-size: 10px; margin-top: 2px; }
  .overview-card > span:last-child { font-size: 9px; line-height: 1.4; }
  .overview-card > span:last-child span { display: none; }
  .home-grid { grid-template-columns: 1fr; gap: 15px; }
  .next-dinner,.home-shopping { padding: 21px; border-radius: 16px; }
  .next-dinner h2 { font-size: 28px; max-width: 260px; }
  .home-card-actions { margin-top: 17px; }
  .home-shopping h2 { font-size: 22px; }
  .pantry-nudge { padding: 17px; }
  .view-title { font-size: 32px; }
  .bottom-nav-inner { gap: 5px; }
  .bottom-nav button { min-height: 60px; font-size: 10px; }
  .bottom-nav { padding-top: 7px; }
  .section-head .schedule-actions { flex-basis: 100%; }
}
