/* Shared app overlay surfaces; existing manager preserves focus and dismissal. */
.ms-app :is(#plan-modal,#swap-modal,#allergen-modal,.paywall-modal,.walkthrough-card,#texture-prompt-bg > div) { background:var(--ms-white); border:1px solid var(--ms-line); border-radius:12px; max-height:92vh; overflow-y:auto; box-shadow:var(--ms-shadow-card); }
.ms-app :is(.plan-modal-title,.swap-modal-title,.allergen-modal-title,.paywall-modal h2,.walkthrough-step h3) { font-family:var(--ms-font-display); font-size:1.75rem; font-weight:400; line-height:1.25; }
.ms-app :is(.plan-modal-sub,.swap-label,.allergen-modal-disclaimer,.allergen-modal-status-chip,.allergen-modal-aap,.walkthrough-step p) { font-size:.875rem; line-height:1.6; }
.ms-app :is(.mode-tab,.snack-option,.fav-option) { min-height:44px; border:1px solid var(--ms-muted); border-radius:7px; font-size:.875rem; }
.ms-app :is(.mode-tab.active,.snack-option.selected,.fav-option.selected) { color:var(--ms-ink); background:var(--ms-sage); border-color:var(--ms-green); }
.ms-app .swap-meal-box.new-meal { background:var(--ms-sage); border-color:var(--ms-green); }
.ms-app .allergen-modal-aap { background:var(--ms-cream); color:var(--ms-ink); border-color:var(--ms-line); }
.ms-app :is(.allergen-modal-status-chip.introducing,.allergen-modal-status-chip.not_introduced) { color:var(--ms-color-warning); background:var(--ms-butter); border-color:var(--ms-color-warning); }
.ms-app [role=dialog]:focus-visible { outline:3px solid var(--ms-focus); outline-offset:2px; }
.ms-app :is(#plan-modal,#swap-modal,#allergen-modal,.paywall-modal,.walkthrough-card) button { min-height:44px; }
@media(prefers-reduced-motion:reduce) { .ms-app *, .ms-app *::before, .ms-app *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.ms-app .wt-dot.active { background:var(--ms-green); }
.ms-app .wt-next-btn { background:var(--ms-green); border-radius:7px; }
.ms-app .wt-next-btn:hover { background:var(--ms-green-hover); }
.ms-app .wt-skip-btn { color:var(--ms-green); border:1px solid var(--ms-muted); border-radius:7px; }

.ms-app .texture-prompt-option, .ms-app .btn-texture-skip { border-color:var(--ms-muted); border-radius:7px; }
.ms-app .texture-prompt-option.selected { background:var(--ms-sage); border-color:var(--ms-green); }
.ms-app .texture-prompt-option.selected .tp-desc { color:var(--ms-ink); }
.ms-app .btn-texture-save { border-radius:7px; }

.ms-app .swap-meal-box.new-meal :is(.swap-label,.swap-meal-desc) { color:var(--ms-ink); }
.ms-app .swap-notice { color:var(--ms-ink); }
.ms-app .swap-cancel-btn { color:var(--ms-green); border-color:var(--ms-muted); border-radius:7px; }
.ms-app .swap-confirm-btn { border-radius:7px; }

.ms-app #panel-date_range .form-group { min-width:0; }
.ms-app #panel-date_range input { min-width:0; width:100%; box-sizing:border-box; }
@media(max-width:480px) { .ms-app #panel-date_range > div { grid-template-columns:1fr!important; } }
