/* Carry the public brand into account tools and the shared weekly-plan template.
   Body scope deliberately outranks legacy shortcode/template style blocks.
   Instacart's approved button, logo and colors are owned by the plugin. */
body .ksl-mp-wrap .ksl-mp-registration-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 18px 0;
    font-size: .78rem;
    line-height: 1.5;
}
body .ksl-mp-wrap .ksl-mp-registration-steps li {
    padding: 10px;
    border: 1px solid #d7dfd4;
    border-radius: 7px;
    background: var(--mp-cream);
    color: var(--mp-ink);
}
body .ksl-mp-wrap .ksl-mp-registration-grid .ksl-mp-title { font-size: clamp(2rem, 4vw, 3rem); }
body .ksl-mp-wrap .ksl-mp-registration-guidance > p { margin: 18px 0; }
body .ksl-mp-wrap .ksl-mp-confirmation-recovery { scroll-margin-top: 110px; }
body .ksl-mp-wrap h1,
body .ksl-mp-wrap h2,
body .ksl-mp-wrap h3,
body .daily-meals h2,
body .daily-meal-details h3,
body .daily-detail h2,
body .daily-side-panel h3,
body .grocery-section h2,
body .grocery-category h3 {
    font-family: Bitter, Georgia, serif;
    color: var(--mp-forest);
    letter-spacing: -.025em;
    line-height: 1.3;
}
body .ksl-mp-account-header h1 { font-size: clamp(1.85rem, 3.5vw, 2.5rem); }
body .ksl-mp-profile-section-head h2 { font-size: 1.35rem; }
body .ksl-mp-wrap .ksl-mp-text,
body .ksl-mp-wrap .ksl-mp-callout span,
body .ksl-mp-wrap .ksl-mp-choice-help,
body .ksl-mp-wrap .ksl-mp-profile-section-head p,
body .ksl-mp-wrap .ksl-mp-kv p { color: var(--mp-muted); }
body .ksl-mp-wrap .ksl-mp-callout strong,
body .ksl-mp-wrap .ksl-mp-field label,
body .ksl-mp-wrap .ksl-mp-choice-field legend { color: var(--mp-ink); }
body .ksl-mp-wrap .ksl-mp-panel-soft,
body .ksl-mp-wrap .ksl-mp-dashboard-profile .ksl-mp-callout,
body .ksl-mp-wrap .ksl-mp-choice-field,
body .ksl-mp-wrap .ksl-mp-note:not(.error),
body .ksl-mp-wrap .ksl-mp-household-row { background: var(--mp-cream); border-color: #d7dfd4; }
body .ksl-mp-wrap .ksl-mp-panel,
body .ksl-mp-wrap .ksl-mp-callout,
body .ksl-mp-wrap .ksl-mp-choice-field,
body .ksl-mp-wrap .ksl-mp-choice-group,
body .ksl-mp-wrap .ksl-mp-account-nav { border-color: #d7dfd4; border-radius: 12px; }
body .ksl-mp-wrap .ksl-mp-profile-summary { border-left-color: var(--mp-forest); color: var(--mp-muted); }
body .ksl-mp-wrap .ksl-mp-choice-group-title { color: var(--mp-tomato); }
body .ksl-mp-wrap .ksl-mp-dashboard-details summary { color: var(--mp-forest); }
body .ksl-mp-wrap .ksl-mp-profile-savebar {
    border-color: #d7dfd4;
    background: #fffdf8;
    border-radius: 10px;
    box-shadow: 0 6px 18px #193e320a;
}
body .ksl-mp-wrap .ksl-mp-profile-savebar p { color: var(--mp-muted); }
body .ksl-mp-wrap .ksl-mp-profile-section-head,
body .ksl-mp-wrap .ksl-mp-dashboard-details { border-color: #d7dfd4; }
body .ksl-mp-wrap .ksl-mp-field input:not([type=checkbox]):not([type=radio]),
body .ksl-mp-wrap .ksl-mp-field textarea,
body .ksl-mp-wrap .ksl-mp-field select {
    border-color: #a8b9a5;
    border-radius: 7px;
    color: var(--mp-ink);
    min-height: 46px;
}
body .ksl-mp-wrap input[type=checkbox],
body .grocery-check input { accent-color: var(--mp-forest); }
body .ksl-mp-wrap .ksl-mp-button { font-family: 'Public Sans', Arial, sans-serif; font-weight: 700; }
body .ksl-mp-wrap .ksl-mp-button.secondary { background: var(--mp-forest); }
body .ksl-mp-wrap .ksl-mp-button.ghost { border: 1px solid #a8b9a5; background: #fffdf8; }
body .ksl-mp-wrap .ksl-mp-button:hover { background: #285742; }
body .ksl-mp-wrap .ksl-mp-button.ghost:hover { background: #edf1e5; }
body .ksl-mp-wrap .ksl-mp-profile-shortcuts a { border-color: #c4cfbd; font-weight: 700; }
body .ksl-mp-wrap .ksl-mp-account-nav { padding: 16px; gap: 20px; }
body .ksl-mp-wrap .ksl-mp-account-nav-group { display: grid; gap: 4px; }
body .ksl-mp-wrap .ksl-mp-account-nav-group-title {
    margin: 0 12px 6px;
    color: var(--mp-muted);
    font-size: .7rem;
    letter-spacing: .09em;
    text-transform: uppercase;
    font-weight: 700;
}
body .ksl-mp-wrap .ksl-mp-account-nav a { min-height: 44px; font-size: .88rem; font-weight: 700; }
body .ksl-mp-wrap .ksl-mp-account-nav a:hover { background: #edf1e5; color: var(--mp-forest); }
body .ksl-mp-wrap .ksl-mp-account-nav a.active { background: var(--mp-forest); color: #fffdf8; }
body .ksl-mp-instacart-panel { background: #fffdf8; border-color: #d7dfd4; border-radius: 12px; }
body .ksl-mp-instacart-panel h3 { font-family: Bitter, Georgia, serif; color: var(--mp-forest); }
body .ksl-mp-instacart-panel .ksl-mp-instacart-eyebrow { color: var(--mp-tomato) !important; }

/* A photo set on the hero's inline background-image continues to take priority. */
body .meal-plan-hero {
    background-color: var(--mp-forest);
    background-image: linear-gradient(120deg, #245c44, #193e32);
    padding: 64px 0 62px;
}
body .meal-plan-hero h1 {
    font-family: Bitter, Georgia, serif;
    font-size: clamp(2.1rem, 4.4vw, 3.5rem);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.18;
    color: #fffdf8;
    text-shadow: none;
    overflow-wrap: anywhere;
}
body .meal-plan-hero p { font-size: 1.05rem; }
body .meal-plan-meta { gap: 12px; margin-top: 26px; }
body .meal-plan-meta-item { border-radius: 8px; padding: 10px 16px; }
body .meal-plan-quick-strip { border-radius: 12px; border-color: #d7dfd4; box-shadow: 0 8px 24px #193e320c; }
body .meal-plan-quick-item { background: var(--mp-cream); color: var(--mp-ink); border-radius: 7px; font-weight: 700; }
body .meal-plan-quick-item strong { color: var(--mp-forest); }
body .meal-plan-quick-item i,
body .daily-meal-meta-item i,
body .grocery-category:not(.pantry-check) h3 i { color: var(--mp-forest); }
body .daily-meal-card,
body .daily-detail,
body .grocery-section { border-radius: 14px; border-color: #d7dfd4; box-shadow: 0 8px 28px #193e3209; }
body .daily-meal-card:hover { transform: none; box-shadow: 0 10px 30px #193e3214; }
body .daily-meal-header { background: var(--mp-forest); padding: 20px 26px; }
body .daily-meal-day { font-family: Bitter, Georgia, serif; font-weight: 700; font-size: 1.5rem; }
body .daily-meal-date { color: #e2eadb; opacity: 1; font-size: .88rem; }
body .daily-meal-details p.description,
body .grocery-item-details { color: var(--mp-muted); }
body .daily-instructions li::before { background: #edf1e5; color: var(--mp-forest); }
body .ingredients-list li,
body .daily-side-panel,
body .grocery-category:not(.pantry-check) { background: var(--mp-cream); border-color: #d7dfd4; color: var(--mp-ink); }
body .meal-plan-btn,
body .grocery-tool-button,
body .ksl-mp-feedback-button,
body .ksl-mp-swap-button { border-radius: 7px; font-weight: 700; }
body .meal-plan-btn.primary,
body .meal-plan-btn.dark,
body .ksl-mp-swap-button { background: var(--mp-forest); color: #fffdf8; border-color: var(--mp-forest); }
body .meal-plan-btn.primary:hover,
body .meal-plan-btn.dark:hover,
body .ksl-mp-swap-button:hover { background: #285742; }
body .daily-card-cta { color: var(--mp-forest); font-weight: 700; }
body .social-share-btn:hover,
body .social-share-btn:hover i { color: var(--mp-forest); border-color: #a8b9a5; box-shadow: 0 8px 22px #193e3210; }
body .grocery-section { padding: 32px; }
body .grocery-check { min-height: 44px; }
body .mp-service-page :is(input, textarea, select, button, summary):focus-visible,
body.single-weekly-meal-plan :is(input, textarea, select, button, summary, a):focus-visible {
    outline: 3px solid var(--mp-tomato);
    outline-offset: 3px;
}
@media (max-width: 720px) {
    body .ksl-mp-wrap .ksl-mp-account-nav { padding: 14px; gap: 16px; }
    body .ksl-mp-wrap .ksl-mp-account-nav-group { display: flex; flex-wrap: wrap; gap: 6px; }
    body .ksl-mp-wrap .ksl-mp-account-nav-group-title { flex-basis: 100%; margin: 0 0 2px; }
    body .ksl-mp-wrap .ksl-mp-account-nav a { padding: 10px 12px; background: var(--mp-cream); }
    body .ksl-mp-wrap .ksl-mp-account-nav a.active { background: var(--mp-forest); }
    body .ksl-mp-wrap .ksl-mp-profile-savebar { position: static; }
    body .ksl-mp-profile-section-head,
    body .ksl-mp-choice-field { scroll-margin-top: 85px; }
    body .meal-plan-hero { padding: 42px 0 52px; }
    body .meal-plan-hero h1 { font-size: 2.1rem; }
    body .meal-plan-meta-item { padding: 9px 12px; font-size: .88rem; }
    body .daily-meal-header { padding: 18px 20px; }
    body .daily-meal-content,
    body .daily-detail-body,
    body .grocery-section { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    body .daily-meal-card,
    body .social-share-btn { transition: none; transform: none; }
}

body .ksl-mp-wrap .ksl-mp-plan-card .ksl-mp-plan-top { background: var(--mp-forest); }
body .ksl-mp-wrap .ksl-mp-pricing-hero { background: var(--mp-cream); }
body .ksl-mp-wrap .ksl-mp-preview-header strong,
body .ksl-mp-wrap .ksl-mp-preview-header span:not(.ksl-mp-preview-badge) { color: #fffdf8; }

body .meal-plan-print-button {
    position: fixed; bottom: 20px; right: 20px; z-index: 1000;
    border: 1px solid #fffdf8; border-radius: 7px; padding: 12px 18px;
    background: var(--mp-forest); color: #fffdf8; cursor: pointer;
    font: 700 .88rem 'Public Sans', Arial, sans-serif; min-height: 44px;
    box-shadow: 0 4px 15px #193e3233;
}
@media print { body .meal-plan-print-button { display: none; } }

/* Preserve the template's ink-on-white, compact printed plan. */
@media print {
    body .meal-plan-hero { padding: 20px 0; }
    body .meal-plan-hero h1, body .daily-meal-date { color: #000 !important; }
    body .grocery-section { padding: 0; box-shadow: none; border: 0; }
}

/* Long account emails and URLs must not set the grid's minimum width. */
body .ksl-mp-wrap .ksl-mp-account-layout > * { min-width: 0; }
body .ksl-mp-wrap .ksl-mp-text,
body .ksl-mp-wrap .ksl-mp-callout span,
body .ksl-mp-wrap .ksl-mp-kv p { overflow-wrap: anywhere; }

/* Keep approved grocery controls inside their panels, including padding. */
body .ksl-mp-instacart-button { box-sizing: border-box; }
@media (max-width: 360px) {
    body .grocery-section { padding: 16px; }
    body .grocery-section .ksl-mp-instacart-panel {
        padding: 0; border: 0; background: transparent;
    }
}
