/* Shared experience across web and native, development and production. */
#app{overflow-anchor:none;scrollbar-gutter:stable;scroll-behavior:auto}
dialog,dialog.account-settings-dialog,dialog.family-settings-dialog,dialog.grocery-pickup-dialog[open]{box-sizing:border-box;width:min(620px,calc(100% - max(32px,env(safe-area-inset-left) + env(safe-area-inset-right))));max-width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);margin:auto;overscroll-behavior:none;overflow-x:hidden;overflow-y:auto;padding:20px}
dialog .dialog-head h2{font-size:22px}
dialog input,dialog select,dialog textarea{font-size:16px;max-width:100%;min-width:0}
dialog .actions{position:sticky;bottom:-20px;background:white;padding:14px 0;margin-top:12px;z-index:2}
dialog .family-member{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:center;justify-content:space-between}
dialog .family-member b{text-align:left;overflow-wrap:anywhere}
dialog .family-member span{text-align:right;font-size:13px;overflow-wrap:anywhere}
.calendar-row{display:flex!important;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 10px;min-height:64px}
.calendar-row b{width:auto;font-size:20px;line-height:1.35}
.calendar-row span{width:100%;font-size:16px;line-height:1.6;text-align:left}
.calendar .week-navigation{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.week-navigation .button{display:flex;flex-direction:column;gap:4px;align-items:center;font-size:16px}
.week-navigation .week-arrow{font-size:26px;line-height:1.1}
.meal-day-slot h3{font-size:21px;margin:6px 0 10px}
.today-meal .scheduled-slot{font-size:25px;font-weight:700;color:white;line-height:1.25}
.today-meal .scheduled-name{font-size:20px;font-weight:600;line-height:1.4}
.savings-summary-grid .savings-bar-legend{font-size:14px;line-height:1.45}
.savings-summary-grid h2{font-size:18px}
.choice-entry{padding:12px 14px;min-height:44px;font-size:15px}
.meal-choice-dialog .favorite-results{max-height:45dvh;overflow-y:auto;overscroll-behavior:contain}
.meal-choice-dialog [aria-pressed=true]{background:var(--green);color:white;outline:3px solid #b3dca5;outline-offset:1px}
.meal-choice-dialog .favorite-result small{color:inherit}
.meal-choice-dialog>.actions:not(:last-child){position:static}
.receipt-meal{padding:14px;background:var(--pale);border-radius:12px;margin:12px 0}
.receipt-meal h3{font-size:18px}.receipt-meal p{margin:8px 0}
.scan-review-row{padding:12px;border:1px solid var(--border);border-radius:12px}
#scanner .scanner-actions{position:sticky;bottom:-20px;background:white;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 0}
#scanner .scanner-actions .button{font-size:14px}
@media(min-width:761px){.home-columns{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.calendar-row b,.calendar-row span{width:100%!important}}
@media(min-width:1100px){#app .calendar-row{display:grid!important;grid-template-columns:minmax(160px,180px) minmax(0,1fr);align-items:center;gap:18px}#app .calendar-row b,#app .calendar-row span{text-align:left}}
@media(max-width:380px){.savings-summary-grid{grid-template-columns:1fr}.categories{grid-template-columns:1fr}}
