:root {
    --ink:#172033;
    --muted:#64748b;
    --line:#dbe3ea;
    --blue:#1d4ed8;
    --navy:#123b5d;
    --teal:#0f766e;
    --green:#166534;
    --amber:#b45309;
    --red:#b91c1c;
    --surface:#ffffff;
    --background:#f5f7fa;
}

* { box-sizing:border-box; }
body {
    margin:0;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
    color:var(--ink);
    background:var(--background);
}
a { color:inherit; }
.topbar {
    background:var(--navy);
    color:white;
    min-height:64px;
    padding:0 24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.brand a { font-weight:800; font-size:1.35rem; text-decoration:none; }
nav { display:flex; gap:18px; flex-wrap:wrap; }
nav a { color:white; text-decoration:none; opacity:.92; }
.container { max-width:1180px; margin:0 auto; padding:28px 20px 60px; }
.footer { max-width:1180px; margin:0 auto; padding:18px 20px 40px; color:var(--muted); }
h1 { margin:.2rem 0; font-size:2rem; }
h2 { margin-top:0; }
.lede { color:var(--muted); margin-top:.4rem; }
.page-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:20px; }
.card {
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:14px;
    padding:18px;
    box-shadow:0 1px 3px rgba(15,23,42,.04);
}
.stack { display:grid; gap:18px; }
.narrow { max-width:720px; }
.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.schedule-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:12px; margin:18px 0; }
.day-card { padding:14px; }
.day-title { display:flex; justify-content:space-between; gap:8px; margin-bottom:10px; }
label { display:grid; gap:6px; font-weight:600; }
input,select,textarea {
    width:100%;
    font:inherit;
    border:1px solid #cbd5e1;
    border-radius:8px;
    padding:10px;
    background:white;
}
.checks { display:flex; flex-wrap:wrap; gap:20px; margin-top:14px; }
.checks label { display:flex; align-items:center; gap:8px; }
.checks input, label > input[type=checkbox] { width:auto; }
.primary,.button {
    display:inline-block;
    border:0;
    border-radius:9px;
    padding:11px 16px;
    background:var(--blue);
    color:white;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}
.button { background:#e2e8f0; color:var(--ink); }
.week-nav { display:flex; gap:8px; }
.status-card { padding:14px 18px; border-radius:12px; margin:14px 0; }
.status-card.good { background:#dcfce7; color:#14532d; }
.status-card.review { background:#ffedd5; color:#7c2d12; }
.recommendation {
    border-radius:16px;
    padding:22px;
    margin:16px 0 20px;
    border:2px solid;
    background:white;
}
.recommendation.keep { border-color:#86efac; }
.recommendation.change { border-color:#fdba74; }
.recommendation h2 { font-size:2rem; margin:.2rem 0; }
.recommendation-line { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.eyebrow { font-size:.75rem; font-weight:800; letter-spacing:.12em; color:var(--muted); }
.pill { border-radius:999px; padding:4px 9px; font-size:.82rem; font-weight:800; }
.pill.good { background:#dcfce7; color:#14532d; }
.pill.warn { background:#ffedd5; color:#9a3412; }
.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.kpi { background:white; border:1px solid var(--line); border-radius:12px; padding:16px; }
.kpi span { display:block; color:var(--muted); font-size:.9rem; }
.kpi strong { font-size:1.7rem; }
dl { display:grid; grid-template-columns:1fr auto; gap:7px 16px; }
dt { color:var(--muted); }
dd { margin:0; font-weight:700; }
.status-large { font-size:1.5rem; font-weight:900; }
.big-number { font-size:2rem; font-weight:850; }
.mini-kpis { display:grid; grid-template-columns:1fr 1fr; gap:4px; margin-top:10px; font-size:.88rem; font-weight:700; }
.muted,.small { color:var(--muted); font-size:.88rem; }
.validation { color:var(--red); font-weight:700; }

@media (max-width:1000px) {
    .schedule-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:650px) {
    .topbar { align-items:flex-start; flex-direction:column; padding:14px 18px; }
    nav { gap:12px; }
    .page-head { flex-direction:column; }
    .grid-2,.grid-3,.kpi-grid,.schedule-grid { grid-template-columns:1fr; }
}


/* ===== v1002 Option 4 operational dashboard ===== */
.recomp-dashboard { display:grid; gap:18px; }
.dash-title-row {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
}
.dash-title-row h1 { margin:.15rem 0 0; font-size:2.15rem; }
.dash-kicker {
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.12em;
    color:#334155;
}
.dash-status {
    border-radius:999px;
    padding:8px 13px;
    font-size:.88rem;
    font-weight:850;
    border:1px solid var(--line);
    background:white;
}
.dash-status.good { color:#166534; background:#f0fdf4; border-color:#bbf7d0; }
.dash-status.warning { color:#9a3412; background:#fff7ed; border-color:#fed7aa; }
.dash-status.danger { color:#991b1b; background:#fef2f2; border-color:#fecaca; }
.dash-status.neutral { color:#334155; background:#f8fafc; }

.dash-primary-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.dash-panel,
.dash-section {
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 1px 3px rgba(15,23,42,.04);
}
.dash-panel { padding:18px; min-width:0; }
.dash-panel h2 { margin:15px 0 4px; font-size:1.55rem; }
.dash-panel-label {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.06em;
}
.dash-number {
    display:inline-grid;
    place-items:center;
    width:25px;
    height:25px;
    border-radius:6px;
    color:#fff;
    font-size:.82rem;
}
.dash-workout { border-top:4px solid #2563eb; }
.dash-workout .dash-panel-label { color:#1d4ed8; }
.dash-workout .dash-number { background:#2563eb; }
.dash-nutrition { border-top:4px solid #16a34a; }
.dash-nutrition .dash-panel-label { color:#15803d; }
.dash-nutrition .dash-number { background:#16a34a; }
.dash-coach { border-top:4px solid #7c3aed; }
.dash-coach .dash-panel-label { color:#6d28d9; }
.dash-coach .dash-number { background:#7c3aed; }
.dash-focus { color:#334155; font-weight:750; margin:.2rem 0 .6rem; }
.dash-description { color:var(--muted); min-height:3.4em; }
.dash-facts { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:.9rem; margin:14px 0; }
.dash-recommendation {
    display:inline-block;
    margin-top:6px;
    padding:7px 11px;
    border-radius:8px;
    font-weight:850;
}
.dash-recommendation.keep { color:#1d4ed8; background:#eff6ff; }
.dash-recommendation.change { color:#9a3412; background:#fff7ed; }
.dash-small-line { font-size:.85rem; color:#475569; margin:12px 0 0; }
.dash-unit { font-size:1rem; color:var(--muted); font-weight:650; }
.dash-macro-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:16px 0; }
.dash-macro-grid div { border-bottom:3px solid #dbeafe; padding:7px 2px 8px; }
.dash-macro-grid div:nth-child(2) { border-bottom-color:#c4b5fd; }
.dash-macro-grid div:nth-child(3) { border-bottom-color:#fdba74; }
.dash-macro-grid strong { display:block; font-size:1.12rem; }
.dash-macro-grid span { display:block; color:var(--muted); font-size:.75rem; margin-top:2px; }
.dash-nutrition-class { color:#15803d; font-weight:850; margin:12px 0 8px; }
.dash-actual-line { margin-top:14px; padding:9px 10px; background:#f8fafc; border-radius:8px; font-size:.82rem; color:#475569; }
.dash-coach-copy { font-size:1rem; line-height:1.55; }
.dash-coach-factors { display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.dash-coach-factors span { background:#f5f3ff; color:#5b21b6; border-radius:999px; padding:5px 8px; font-size:.75rem; font-weight:750; }
.dash-why { margin-top:14px; color:#6d28d9; }
.dash-why summary { cursor:pointer; font-weight:800; }
.dash-why p { color:#475569; font-size:.88rem; }

.dash-section { padding:18px; }
.dash-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:14px; }
.dash-section-heading h2 { margin:.2rem 0 0; font-size:1.35rem; }
.dash-preliminary,
.dash-detail-date { border-radius:999px; background:#f8fafc; border:1px solid var(--line); padding:6px 10px; color:#475569; font-size:.78rem; font-weight:800; }
.dash-cell-label { text-transform:uppercase; letter-spacing:.06em; font-size:.72rem; font-weight:900; color:#64748b; }
.dash-cell-title { font-size:1.15rem; }
.dash-tip-cell p { margin:2px 0 0; line-height:1.45; }
.dash-empty { border:1px dashed #cbd5e1; border-radius:10px; padding:14px; color:#64748b; }

.dash-fuel-detail { border-top:4px solid #7c3aed; }
.dash-fuel-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1.12fr; align-items:stretch; gap:10px; }
.dash-fuel-card { border:1px solid #e2e8f0; border-radius:11px; padding:15px; min-width:0; background:#fff; }
.dash-flow-arrow { align-self:center; color:#94a3b8; font-size:1.5rem; font-weight:900; }
.dash-compare-head,
.dash-compare-row { display:grid; grid-template-columns:1fr 72px 72px; gap:8px; align-items:center; }
.dash-compare-head { color:#64748b; font-size:.72rem; text-transform:uppercase; font-weight:850; margin:12px 0 4px; }
.dash-compare-head span:first-child { grid-column:2; }
.dash-compare-row { padding:5px 0; border-bottom:1px solid #f1f5f9; font-size:.88rem; }
.dash-compare-row span { text-align:right; }
.dash-carb-row { color:#1d4ed8; }
.dash-difference { margin-top:10px; border-radius:8px; padding:7px 9px; font-size:.8rem; font-weight:850; }
.dash-difference.short { background:#fff7ed; color:#9a3412; }
.dash-difference.met { background:#f0fdf4; color:#166534; }
.dash-big-metric { font-size:2rem; line-height:1; font-weight:900; margin:16px 0 4px; }
.dash-refill-line { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:16px 0; }
.dash-refill-line div { background:#f8fafc; border-radius:8px; padding:9px; }
.dash-refill-line strong { display:block; font-size:1.1rem; }
.dash-refill-line span { display:block; color:#64748b; font-size:.72rem; margin-top:2px; }
.dash-recovery-meter { display:flex; align-items:center; gap:12px; margin:14px 0; padding:12px; border-radius:10px; background:#f5f3ff; }
.dash-meter-value { font-size:2rem; font-weight:900; color:#6d28d9; }
.dash-recovery-meter strong,
.dash-recovery-meter span { display:block; }
.dash-recovery-meter span { color:#64748b; font-size:.78rem; margin-top:3px; }
.dash-detail-list { grid-template-columns:minmax(0,1fr) auto; font-size:.85rem; margin-bottom:0; }
.dash-physiology-note { margin-top:14px; padding:13px 14px; border-radius:10px; background:#f8fafc; border:1px solid #e2e8f0; color:#475569; font-size:.86rem; line-height:1.5; }

@media (max-width:900px) {
    .dash-primary-grid { grid-template-columns:1fr; }
    .dash-description { min-height:0; }
    .dash-fuel-flow { grid-template-columns:1fr; }
    .dash-flow-arrow { transform:rotate(90deg); justify-self:center; }
}

@media (max-width:650px) {
    .recomp-dashboard { gap:14px; }
    .dash-title-row { align-items:flex-start; }
    .dash-title-row h1 { font-size:1.65rem; }
    .dash-status { padding:6px 9px; font-size:.76rem; }
    .dash-panel,.dash-section { padding:14px; border-radius:12px; }
    .dash-panel h2 { font-size:1.35rem; }
    .dash-section-heading { flex-direction:column; gap:8px; }
    .dash-macro-grid { gap:6px; }
    .dash-compare-head,.dash-compare-row { grid-template-columns:1fr 62px 62px; }
}


/* v1002 Workout Actual session-management cleanup */
.workout-saved-card { margin-top:18px; }
.workout-saved-heading,
.workout-form-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}
.workout-saved-heading h2,
.workout-form-heading h2 { margin-bottom:4px; }
.workout-saved-list {
    display:grid;
    gap:10px;
    margin-top:14px;
}
.workout-saved-row {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:12px 0;
    border-top:1px solid #eef2f7;
}
.workout-saved-row:first-child { border-top:0; }
.workout-saved-summary {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px 12px;
    min-width:0;
}
.workout-saved-summary strong {
    min-width:150px;
    font-size:1rem;
}
.workout-saved-summary span {
    color:var(--muted);
    font-size:.88rem;
}
.workout-saved-actions {
    display:flex;
    align-items:center;
    gap:8px;
    flex-shrink:0;
}
.workout-delete-form { margin:0; }
.workout-compact,
.workout-delete-button {
    padding:8px 12px;
    font-size:.86rem;
}
.workout-delete-button {
    border:1px solid #fecaca;
    border-radius:9px;
    background:#fff;
    color:#b91c1c;
    font:inherit;
    font-weight:750;
    cursor:pointer;
}
.workout-delete-button:hover { background:#fef2f2; }
.workout-completed-check { margin-top:0; }

@media (max-width:700px) {
    .workout-saved-heading,
    .workout-form-heading,
    .workout-saved-row {
        align-items:stretch;
        flex-direction:column;
    }
    .workout-saved-actions {
        width:100%;
    }
    .workout-saved-actions .button,
    .workout-saved-actions form,
    .workout-saved-actions button {
        flex:1;
    }
    .workout-delete-button { width:100%; }
}




/* ===== v1002 final Option 4 visual system ===== */
.topbar {
    box-shadow:0 1px 0 rgba(255,255,255,.08),0 4px 18px rgba(15,23,42,.10);
}
nav a {
    padding:7px 9px;
    border-radius:7px;
    font-weight:650;
    transition:background .15s ease,opacity .15s ease;
}
nav a:hover { background:rgba(255,255,255,.11); opacity:1; }

.app-page { display:grid; gap:18px; }
.app-page-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
}
.app-page-head h1 { margin:.12rem 0 0; font-size:2.05rem; }
.app-kicker {
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.12em;
    color:#475569;
}
.app-date-picker {
    min-width:205px;
    padding:10px 12px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:11px;
    box-shadow:0 1px 3px rgba(15,23,42,.04);
}
.app-date-picker label { color:#475569; font-size:.78rem; font-weight:800; }
.app-date-picker input { padding:7px 8px; }

.app-section { position:relative; overflow:hidden; }
.app-section h2 { margin:13px 0 6px; font-size:1.3rem; }
.app-section-blue { border-top:4px solid #2563eb; }
.app-section-green { border-top:4px solid #16a34a; }
.app-section-purple { border-top:4px solid #7c3aed; }
.app-section-amber { border-top:4px solid #f59e0b; }
.app-section-teal { border-top:4px solid #0f766e; }

.app-section-label {
    display:flex;
    align-items:center;
    gap:8px;
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.06em;
    color:#475569;
}
.app-number {
    display:inline-grid;
    place-items:center;
    width:25px;
    height:25px;
    border-radius:6px;
    color:#fff;
    background:#64748b;
    font-size:.82rem;
}
.app-section-blue .app-section-label { color:#1d4ed8; }
.app-section-blue .app-number { background:#2563eb; }
.app-section-green .app-section-label { color:#15803d; }
.app-section-green .app-number { background:#16a34a; }
.app-section-purple .app-section-label { color:#6d28d9; }
.app-section-purple .app-number { background:#7c3aed; }
.app-section-amber .app-section-label { color:#b45309; }
.app-section-amber .app-number { background:#f59e0b; }
.app-section-teal .app-section-label { color:#0f766e; }
.app-section-teal .app-number { background:#0f766e; }

.app-page input,.app-page select,.app-page textarea {
    border-color:#cbd5e1;
    background:#fff;
    transition:border-color .15s ease,box-shadow .15s ease;
}
.app-page input:focus,.app-page select:focus,.app-page textarea:focus {
    outline:none;
    border-color:#60a5fa;
    box-shadow:0 0 0 3px rgba(96,165,250,.14);
}
.app-page textarea { resize:vertical; }

.app-action-row {
    display:flex;
    justify-content:flex-end;
    margin-top:2px;
}
.app-action-row .primary {
    min-width:190px;
    box-shadow:0 4px 12px rgba(29,78,216,.14);
}
.app-message {
    border-radius:10px;
    padding:10px 12px;
    font-weight:750;
}
.app-message.success {
    background:#f0fdf4;
    color:#166534;
    border:1px solid #bbf7d0;
}
.app-empty-state {
    margin-top:12px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    padding:14px;
    color:#64748b;
    background:#f8fafc;
}
.app-pill {
    display:inline-block;
    border-radius:999px;
    padding:4px 8px;
    font-size:.75rem;
    font-weight:800;
}
.app-pill.good { background:#dcfce7; color:#166534; }
.app-pill.neutral { background:#f1f5f9; color:#475569; }

.app-status {
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:12px 14px;
    border-radius:11px;
    border:1px solid var(--line);
    background:#fff;
}
.app-status strong,.app-status span { display:block; }
.app-status span { color:#475569; font-size:.88rem; margin-top:2px; }
.app-status-dot {
    width:10px;
    height:10px;
    margin-top:5px;
    border-radius:50%;
    background:#64748b;
}
.app-status.good { border-color:#bbf7d0; background:#f0fdf4; }
.app-status.good .app-status-dot { background:#16a34a; }
.app-status.review { border-color:#fed7aa; background:#fff7ed; }
.app-status.review .app-status-dot { background:#f59e0b; }

.option4-checks label {
    border:1px solid #e2e8f0;
    border-radius:9px;
    padding:9px 11px;
    background:#f8fafc;
}
.nutrition-entry-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

/* Workout Plan */
.option4-schedule-grid { align-items:stretch; }
.option4-day-card {
    border-top:4px solid #2563eb;
    box-shadow:0 1px 3px rgba(15,23,42,.04);
}
.option4-day-title strong { color:#1d4ed8; }
.option4-day-title span {
    color:#64748b;
    font-size:.8rem;
    font-weight:750;
}
.option4-mini-kpis {
    padding:9px;
    border-radius:9px;
    background:#f8fafc;
}
.option4-mini-kpis span:first-child { color:#1d4ed8; }
.option4-day-meta {
    margin-top:9px;
    color:#475569;
    font-size:.78rem;
    font-weight:750;
}
.option4-glycogen {
    margin-top:5px;
    color:#6d28d9;
    font-size:.78rem;
    font-weight:800;
}

/* Dashboard workout: vertical Planned -> Recomp Recommendation -> Actual */
.dash-workout-stack {
    display:flex;
    flex-direction:column;
    gap:16px;
    margin-top:14px;
}
.dash-workout-block {
    padding:0 2px;
}
.dash-workout-block .dash-workout-step-label {
    display:block;
    margin-bottom:4px;
    font-size:.69rem;
    font-weight:900;
    letter-spacing:.075em;
}
.dash-workout-block.planned .dash-workout-step-label { color:#1d4ed8; }
.dash-workout-block.recomp .dash-workout-step-label { color:#6d28d9; }
.dash-workout-block.actual .dash-workout-step-label { color:#15803d; }

.dash-workout-block h2,
.dash-workout-block h3 {
    margin:0;
    line-height:1.25;
}
.dash-workout-block h2 { font-size:1.38rem; }
.dash-workout-block h3 { font-size:1.08rem; }

.dash-workout-meta {
    margin-top:3px;
    color:#475569;
    font-size:.84rem;
    font-weight:750;
}
.dash-workout-meta span {
    padding:0 3px;
    color:#94a3b8;
}
.dash-workout-description {
    margin:4px 0 0;
    color:#64748b;
    font-size:.82rem;
    line-height:1.35;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.dash-recomp-why {
    margin:4px 0 0;
    color:#475569;
    font-size:.82rem;
    line-height:1.35;
}
.dash-not-logged {
    color:#64748b;
    font-weight:750;
}

/* Tomorrow repeats Today's blue / green / purple section language */
.dash-tomorrow-repeat-section {
    margin-top:18px;
}
.dash-tomorrow-heading {
    padding:0 2px;
}
.dash-tomorrow-repeat-grid {
    margin-top:0;
}
.dash-tomorrow-panel {
    min-height:100%;
}
.dash-tomorrow-panel .dash-panel-label {
    margin-bottom:10px;
}
.dash-tomorrow-panel .dash-panel-label > span {
    font-weight:900;
    letter-spacing:.055em;
}
.dash-tomorrow-panel .dash-description {
    margin-top:5px;
}
.dash-tomorrow-panel .dash-facts {
    margin-top:10px;
}

/* Workout Actual */
.workout-saved-card { margin-top:0; }
.workout-saved-row { border-radius:9px; }
.workout-saved-row:hover { background:#f8fafc; }

@media (max-width:900px) {
    .app-page-head { align-items:stretch; }
    .nutrition-entry-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .container { padding:20px 14px 48px; }
    .topbar { gap:10px; }
    nav {
        width:100%;
        flex-wrap:nowrap;
        overflow-x:auto;
        padding-bottom:2px;
        scrollbar-width:thin;
    }
    nav a { white-space:nowrap; }
    .app-page-head { flex-direction:column; }
    .app-date-picker { width:100%; }
    .app-action-row { justify-content:stretch; }
    .app-action-row .primary { width:100%; }
    .nutrition-entry-grid { grid-template-columns:1fr; }
}


@media (max-width:700px) {
    .dash-workout-description {
        white-space:normal;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
    }
    .dash-tomorrow-repeat-section {
        margin-top:14px;
    }
}


/* ===== v1002 vertical Workout Plan ===== */
.plan-week-mix {
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:8px;
}
.plan-mix-item {
    min-width:0;
    padding:10px 10px 9px;
    border:1px solid #e2e8f0;
    border-top-width:4px;
    border-radius:10px;
    background:#fff;
}
.plan-mix-item strong {
    display:block;
    font-size:1.35rem;
    line-height:1;
}
.plan-mix-item span {
    display:block;
    margin-top:5px;
    color:#475569;
    font-size:.72rem;
    font-weight:800;
    line-height:1.15;
}
.plan-mix-major { border-top-color:#dc2626; background:#fffafa; }
.plan-mix-major strong { color:#b91c1c; }

.plan-mix-accessory { border-top-color:#2563eb; background:#f8fbff; }
.plan-mix-accessory strong { color:#1d4ed8; }

.plan-mix-cardio { border-top-color:#ea580c; background:#fffaf5; }
.plan-mix-cardio strong { color:#c2410c; }

.plan-mix-recovery { border-top-color:#16a34a; background:#f8fdf9; }
.plan-mix-recovery strong { color:#15803d; }

.plan-mix-other { border-top-color:#64748b; background:#f8fafc; }
.plan-mix-other strong { color:#475569; }

.plan-mix-unplanned { border-top-color:#cbd5e1; background:#fbfcfd; }
.plan-mix-unplanned strong { color:#64748b; }

.plan-week-list {
    display:flex;
    flex-direction:column;
    gap:10px;
    margin:18px 0;
}
.plan-day-row {
    display:grid;
    grid-template-columns:170px minmax(250px,.95fr) minmax(340px,1.4fr);
    gap:18px;
    align-items:center;
    padding:15px 16px;
    border-left:5px solid #cbd5e1;
    box-shadow:0 1px 3px rgba(15,23,42,.035);
}
.plan-day-row.plan-cat-major {
    border-left-color:#dc2626;
    background:linear-gradient(90deg,#fff8f8 0,#fff 13%);
}
.plan-day-row.plan-cat-accessory {
    border-left-color:#2563eb;
    background:linear-gradient(90deg,#f6faff 0,#fff 13%);
}
.plan-day-row.plan-cat-cardio {
    border-left-color:#ea580c;
    background:linear-gradient(90deg,#fff8f2 0,#fff 13%);
}
.plan-day-row.plan-cat-recovery {
    border-left-color:#16a34a;
    background:linear-gradient(90deg,#f4fcf6 0,#fff 13%);
}
.plan-day-row.plan-cat-other {
    border-left-color:#64748b;
    background:linear-gradient(90deg,#f7f9fb 0,#fff 13%);
}
.plan-day-row.plan-cat-unplanned {
    border-left-color:#cbd5e1;
    background:linear-gradient(90deg,#fafbfc 0,#fff 13%);
}

.plan-day-heading {
    min-width:0;
}
.plan-day-date strong {
    display:block;
    font-size:1.12rem;
    line-height:1.2;
}
.plan-day-date span {
    display:block;
    margin-top:2px;
    color:#64748b;
    font-size:.8rem;
    font-weight:750;
}
.plan-category-badge {
    display:inline-block;
    margin-top:8px;
    padding:4px 7px;
    border-radius:999px;
    background:#f1f5f9;
    color:#475569;
    font-size:.68rem;
    font-weight:850;
    line-height:1.1;
}
.plan-cat-major .plan-category-badge { background:#fee2e2; color:#991b1b; }
.plan-cat-accessory .plan-category-badge { background:#dbeafe; color:#1e40af; }
.plan-cat-cardio .plan-category-badge { background:#ffedd5; color:#9a3412; }
.plan-cat-recovery .plan-category-badge { background:#dcfce7; color:#166534; }
.plan-cat-other .plan-category-badge { background:#e2e8f0; color:#334155; }
.plan-cat-unplanned .plan-category-badge { background:#f1f5f9; color:#64748b; }

.plan-day-workout label {
    display:block;
    margin-bottom:5px;
    color:#475569;
    font-size:.74rem;
    font-weight:850;
}
.plan-day-workout select {
    width:100%;
    margin:0;
    font-weight:700;
}

.plan-day-details {
    min-width:0;
}
.plan-targets {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
}
.plan-targets > span {
    display:inline-block;
    padding:5px 8px;
    border-radius:7px;
    background:#f8fafc;
    color:#334155;
    font-size:.78rem;
    font-weight:700;
}
.plan-targets .plan-target-cal {
    background:#eef2ff;
    color:#3730a3;
}
.plan-day-context {
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    margin-top:7px;
    color:#64748b;
    font-size:.75rem;
    font-weight:750;
}
.plan-fuel-demand {
    color:#6d28d9;
}
.plan-timing-note {
    margin:5px 0 0;
    color:#64748b;
    font-size:.75rem;
    line-height:1.35;
}
.plan-recalc-note {
    margin:6px 0 0;
    color:#b45309;
    font-size:.74rem;
    font-weight:800;
}

@media (max-width:980px) {
    .plan-week-mix {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .plan-day-row {
        grid-template-columns:135px minmax(230px,1fr);
    }
    .plan-day-details {
        grid-column:1 / -1;
        padding-left:153px;
    }
}

@media (max-width:700px) {
    .plan-week-mix {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .plan-day-row {
        grid-template-columns:1fr;
        gap:11px;
        align-items:stretch;
    }
    .plan-day-details {
        grid-column:auto;
        padding-left:0;
    }
    .plan-day-heading {
        display:flex;
        align-items:flex-start;
        justify-content:space-between;
        gap:12px;
    }
    .plan-category-badge {
        margin-top:0;
        text-align:right;
    }
}


/* ===== v1003 public Welcome page ===== */
.public-nav {
    align-items:center;
}
.public-nav-create {
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.48);
    border-radius:8px;
    background:rgba(255,255,255,.10);
}

.welcome-page {
    display:grid;
    gap:22px;
}
.welcome-hero {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(330px,.85fr);
    gap:24px;
    align-items:stretch;
}
.welcome-hero-copy,
.welcome-decision-card,
.welcome-feature,
.welcome-coach-strip {
    background:#fff;
    border:1px solid #dbe3ea;
    border-radius:16px;
    box-shadow:0 2px 8px rgba(15,23,42,.05);
}
.welcome-hero-copy {
    padding:42px 40px;
    background:
        radial-gradient(circle at 90% 5%,rgba(37,99,235,.09),transparent 36%),
        #fff;
}
.welcome-kicker {
    color:#1d4ed8;
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.12em;
}
.welcome-hero h1 {
    max-width:760px;
    margin:10px 0 14px;
    font-size:clamp(2.35rem,5vw,4.1rem);
    line-height:1.02;
    letter-spacing:-.035em;
}
.welcome-lede {
    max-width:740px;
    margin:0;
    color:#475569;
    font-size:1.08rem;
    line-height:1.65;
}
.welcome-actions {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:26px;
}
.welcome-primary,
.welcome-secondary {
    display:inline-block;
    min-width:145px;
    padding:12px 18px;
    border-radius:10px;
    font-weight:800;
    text-align:center;
    text-decoration:none;
}
.welcome-primary {
    background:#1d4ed8;
    color:#fff;
    box-shadow:0 5px 16px rgba(29,78,216,.18);
}
.welcome-secondary {
    border:1px solid #cbd5e1;
    background:#f8fafc;
    color:#172033;
}
.welcome-test-note {
    margin:13px 0 0;
    color:#64748b;
    font-size:.82rem;
    font-weight:700;
}

.welcome-decision-card {
    padding:24px;
    border-top:4px solid #7c3aed;
}
.welcome-decision-title {
    margin-bottom:14px;
    color:#334155;
    font-size:.82rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.welcome-decision-row {
    margin-bottom:10px;
    padding:12px 13px;
    border-radius:10px;
    border-left:4px solid;
}
.welcome-decision-row span {
    display:block;
    margin-bottom:3px;
    font-size:.68rem;
    font-weight:900;
    letter-spacing:.08em;
}
.welcome-decision-row strong {
    display:block;
    font-size:.95rem;
    line-height:1.3;
}
.welcome-decision-row.planned {
    border-color:#2563eb;
    background:#f8fbff;
}
.welcome-decision-row.planned span { color:#1d4ed8; }
.welcome-decision-row.recomp {
    border-color:#7c3aed;
    background:#fbfaff;
}
.welcome-decision-row.recomp span { color:#6d28d9; }
.welcome-decision-row.actual {
    border-color:#16a34a;
    background:#f8fdf9;
}
.welcome-decision-row.actual span { color:#15803d; }
.welcome-decision-card > p {
    margin:14px 0 0;
    color:#64748b;
    font-size:.84rem;
    line-height:1.5;
}

.welcome-feature-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}
.welcome-feature {
    padding:20px;
    border-top:4px solid #64748b;
}
.welcome-feature.blue { border-top-color:#2563eb; }
.welcome-feature.purple { border-top-color:#7c3aed; }
.welcome-feature.green { border-top-color:#16a34a; }
.welcome-feature.amber { border-top-color:#f59e0b; }
.welcome-feature-label {
    margin-bottom:8px;
    color:#64748b;
    font-size:.7rem;
    font-weight:900;
    letter-spacing:.09em;
}
.welcome-feature.blue .welcome-feature-label { color:#1d4ed8; }
.welcome-feature.purple .welcome-feature-label { color:#6d28d9; }
.welcome-feature.green .welcome-feature-label { color:#15803d; }
.welcome-feature.amber .welcome-feature-label { color:#b45309; }
.welcome-feature h2 {
    margin:0 0 7px;
    font-size:1.08rem;
}
.welcome-feature p {
    margin:0;
    color:#64748b;
    font-size:.84rem;
    line-height:1.5;
}

.welcome-coach-strip {
    display:grid;
    grid-template-columns:minmax(250px,.75fr) minmax(0,1.25fr);
    gap:24px;
    align-items:center;
    padding:24px 26px;
    border-top:4px solid #0f766e;
}
.welcome-coach-strip h2 {
    margin:6px 0 0;
    font-size:1.35rem;
}
.welcome-coach-strip p {
    margin:0;
    color:#475569;
    font-size:.9rem;
    line-height:1.55;
}

@media (max-width:980px) {
    .welcome-hero {
        grid-template-columns:1fr;
    }
    .welcome-feature-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:700px) {
    .welcome-hero-copy {
        padding:28px 22px;
    }
    .welcome-feature-grid,
    .welcome-coach-strip {
        grid-template-columns:1fr;
    }
    .welcome-actions {
        display:grid;
        grid-template-columns:1fr;
    }
    .welcome-primary,
    .welcome-secondary {
        width:100%;
    }
}


/* ===== v1003 responsive authenticated navigation ===== */
.topbar {
    position:relative;
}

.app-nav {
    display:flex;
    align-items:center;
    gap:14px;
}

.nav-signout {
    margin-left:4px;
    padding-left:14px;
    border-left:1px solid rgba(255,255,255,.28);
}

.nav-toggle {
    display:none;
    width:42px;
    height:38px;
    padding:8px 9px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:9px;
    background:rgba(255,255,255,.08);
    cursor:pointer;
}

.nav-toggle-line {
    display:block;
    height:2px;
    margin:4px 0;
    border-radius:2px;
    background:#fff;
}

@media (max-width:820px) {
    .nav-toggle {
        display:block;
        margin-left:auto;
    }

    .app-nav {
        display:none;
        position:absolute;
        z-index:1000;
        top:calc(100% + 8px);
        right:12px;
        left:12px;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        padding:8px;
        border:1px solid #dbe3ea;
        border-radius:12px;
        background:#fff;
        box-shadow:0 12px 30px rgba(15,23,42,.18);
    }

    .app-nav.is-open {
        display:flex;
    }

    .app-nav a {
        display:block;
        padding:12px 13px;
        border-radius:8px;
        color:#172033;
        text-decoration:none;
        font-weight:700;
    }

    .app-nav a:hover,
    .app-nav a:focus {
        background:#f1f5f9;
    }

    .nav-signout {
        margin:7px 0 0;
        padding-left:13px !important;
        border-left:0;
        border-top:1px solid #e2e8f0;
        color:#9f1239 !important;
    }
}

@media (max-width:560px) {
    .public-nav {
        gap:8px;
    }

    .public-nav a {
        font-size:.86rem;
    }

    .public-nav-create {
        padding:7px 10px;
    }
}

/* ===== v1004 profile / settings / progress / evidence ===== */
.profile-actions,
.evidence-actions {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    align-items:center;
}
.profile-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.profile-panel-label {
    margin-bottom:6px;
    color:#64748b;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.09em;
}
.profile-panel h2 { margin:0 0 16px; }
.profile-note {
    margin-top:16px;
    padding:12px 13px;
    border-radius:9px;
    background:#f8fafc;
}
.profile-note p { margin:5px 0 0; }
.profile-latest { grid-column:1 / -1; }
.profile-metric-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:14px 0 18px;
}
.profile-metric-grid div {
    padding:13px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#f8fafc;
}
.profile-metric-grid span,
.profile-metric-grid small { display:block; color:#64748b; }
.profile-metric-grid strong { font-size:1.6rem; }

.progress-summary-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}
.progress-summary span { display:block; color:#64748b; font-size:.8rem; font-weight:800; }
.progress-summary strong { display:block; margin-top:6px; font-size:1.55rem; }
.progress-chart-shell,
.progress-photo-shell,
.progress-history { margin-bottom:16px; }
.progress-section-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}
.progress-section-head h2 { margin:2px 0 0; }
.progress-range,
.progress-coming {
    display:inline-block;
    padding:6px 9px;
    border-radius:999px;
    background:#f1f5f9;
    color:#475569;
    font-size:.75rem;
    font-weight:800;
}
.progress-coming { background:#fff7ed; color:#9a3412; }
.progress-chart-placeholder {
    min-height:180px;
    display:grid;
    place-content:center;
    gap:7px;
    padding:24px;
    border:2px dashed #cbd5e1;
    border-radius:12px;
    text-align:center;
    background:linear-gradient(180deg,#f8fafc,#fff);
}
.progress-chart-placeholder strong { font-size:1.15rem; }
.progress-chart-placeholder span { max-width:720px; color:#64748b; line-height:1.5; }
.photo-upload-disabled {
    display:flex;
    gap:10px;
    align-items:center;
    flex-wrap:wrap;
    padding:14px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    background:#f8fafc;
}
.photo-upload-disabled input { max-width:360px; }
.progress-table-wrap { overflow:auto; }
.progress-table {
    width:100%;
    min-width:940px;
    border-collapse:collapse;
}
.progress-table th,
.progress-table td {
    padding:10px 9px;
    border-bottom:1px solid #e2e8f0;
    text-align:right;
    white-space:nowrap;
}
.progress-table th:first-child,
.progress-table td:first-child { text-align:left; }
.progress-table th {
    color:#64748b;
    font-size:.72rem;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.progress-note-row td {
    padding-top:3px;
    color:#64748b;
    font-size:.82rem;
    text-align:left !important;
    white-space:normal;
}

.evidence-page { display:grid; gap:18px; }
.evidence-hero,
.evidence-principle,
.evidence-card,
.evidence-footnote {
    background:#fff;
    border:1px solid #dbe3ea;
    border-radius:16px;
    box-shadow:0 2px 8px rgba(15,23,42,.05);
}
.evidence-hero {
    padding:38px;
    background:radial-gradient(circle at 92% 8%,rgba(37,99,235,.10),transparent 34%),#fff;
}
.evidence-hero h1 {
    max-width:820px;
    margin:10px 0 14px;
    font-size:clamp(2.2rem,5vw,3.8rem);
    line-height:1.04;
    letter-spacing:-.03em;
}
.evidence-actions { margin-top:22px; }
.evidence-principle {
    padding:22px 24px;
    border-left:5px solid #0f766e;
}
.evidence-principle h2 { margin-bottom:7px; }
.evidence-principle p { margin:0; color:#475569; line-height:1.6; }
.evidence-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.evidence-card { padding:22px; }
.evidence-card h2 { margin:8px 0 8px; font-size:1.25rem; }
.evidence-card p { color:#475569; line-height:1.55; }
.evidence-card a { color:#1d4ed8; font-weight:800; }
.evidence-tag {
    color:#6d28d9;
    font-size:.7rem;
    font-weight:900;
    letter-spacing:.09em;
}
.evidence-card-callout { border-top:4px solid #16a34a; }
.evidence-footnote { padding:18px 20px; color:#475569; font-size:.86rem; line-height:1.55; }

/* v1004 light/dark theme. 'System' is resolved to the current device theme in _Layout. */
html[data-theme="dark"] {
    color-scheme:dark;
    --ink:#e5e7eb;
    --muted:#94a3b8;
    --line:#334155;
    --navy:#0b1f33;
    --surface:#111827;
    --background:#0b1120;
}
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    color:#e5e7eb;
    background:#0f172a;
    border-color:#475569;
}
html[data-theme="dark"] input[readonly] { color:#cbd5e1; background:#111827; }
html[data-theme="dark"] .button { color:#e5e7eb; background:#334155; }
html[data-theme="dark"] .card,
html[data-theme="dark"] .kpi,
html[data-theme="dark"] .recommendation,
html[data-theme="dark"] .dash-panel,
html[data-theme="dark"] .dash-section,
html[data-theme="dark"] .dash-fuel-card,
html[data-theme="dark"] .welcome-hero-copy,
html[data-theme="dark"] .welcome-decision-card,
html[data-theme="dark"] .welcome-feature,
html[data-theme="dark"] .welcome-coach-strip,
html[data-theme="dark"] .evidence-hero,
html[data-theme="dark"] .evidence-principle,
html[data-theme="dark"] .evidence-card,
html[data-theme="dark"] .evidence-footnote {
    background:#111827;
    border-color:#334155;
    box-shadow:none;
}
html[data-theme="dark"] .welcome-hero-copy,
html[data-theme="dark"] .evidence-hero { background:#111827; }
html[data-theme="dark"] .welcome-lede,
html[data-theme="dark"] .welcome-feature p,
html[data-theme="dark"] .welcome-coach-strip p,
html[data-theme="dark"] .welcome-decision-card > p,
html[data-theme="dark"] .evidence-card p,
html[data-theme="dark"] .evidence-principle p,
html[data-theme="dark"] .evidence-footnote,
html[data-theme="dark"] .dash-focus,
html[data-theme="dark"] .dash-small-line,
html[data-theme="dark"] .dash-actual-line,
html[data-theme="dark"] .dash-why p,
html[data-theme="dark"] .dash-tip-cell p,
html[data-theme="dark"] .dash-physiology-note {
    color:#cbd5e1;
}
html[data-theme="dark"] .profile-note,
html[data-theme="dark"] .profile-metric-grid div,
html[data-theme="dark"] .progress-range,
html[data-theme="dark"] .progress-chart-placeholder,
html[data-theme="dark"] .photo-upload-disabled,
html[data-theme="dark"] .dash-actual-line,
html[data-theme="dark"] .dash-preliminary,
html[data-theme="dark"] .dash-detail-date,
html[data-theme="dark"] .dash-empty,
html[data-theme="dark"] .dash-refill-line div,
html[data-theme="dark"] .dash-physiology-note {
    background:#0f172a;
    border-color:#334155;
}
html[data-theme="dark"] .progress-table th,
html[data-theme="dark"] .progress-table td,
html[data-theme="dark"] .dash-compare-row { border-color:#334155; }
html[data-theme="dark"] .app-nav { background:#111827; border-color:#334155; }
html[data-theme="dark"] .app-nav a { color:#e5e7eb; }
html[data-theme="dark"] .app-nav a:hover,
html[data-theme="dark"] .app-nav a:focus { background:#1e293b; }

@media (max-width:800px) {
    .profile-grid,
    .evidence-grid { grid-template-columns:1fr; }
    .profile-latest { grid-column:auto; }
    .profile-metric-grid,
    .progress-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
    .profile-actions,
    .evidence-actions { width:100%; }
    .profile-actions a,
    .evidence-actions a { flex:1 1 100%; text-align:center; }
    .profile-metric-grid,
    .progress-summary-grid { grid-template-columns:1fr; }
    .progress-section-head { flex-direction:column; }
    .evidence-hero { padding:28px 22px; }
}


/* ===== v1004 visual + onboarding upgrade ===== */
.brand-logo-wrap a { display:block; line-height:0; }
.brand-logo { width:190px; height:auto; display:block; }
.brand-logo-dark { display:none; }
.footer-logo { width:150px; height:auto; display:block; }
.theme-image { display:block; width:100%; height:auto; }
.theme-image-dark { display:none; }

.public-shell .topbar,
.onboarding-shell .topbar {
    background:rgba(255,255,255,.96);
    color:#0f172a;
    border-bottom:1px solid #e2e8f0;
    box-shadow:0 2px 16px rgba(15,23,42,.05);
    min-height:82px;
}
.public-shell .public-nav a,
.onboarding-shell .public-nav a { color:#172033; opacity:1; }
.public-shell .public-nav a:hover,
.onboarding-shell .public-nav a:hover { background:#eff6ff; }
.public-shell .public-nav-create {
    color:#fff;
    background:#1d4ed8;
    box-shadow:0 4px 12px rgba(29,78,216,.16);
}
.public-shell .container { max-width:1240px; padding-top:32px; }
.onboarding-shell .container { max-width:1120px; }
.public-shell .recomp-footer,
.onboarding-shell .recomp-footer { max-width:1240px; }

.recomp-footer {
    display:flex;
    align-items:center;
    gap:20px;
    border-top:1px solid var(--line);
}
.recomp-footer-brand { flex:0 0 auto; }
.recomp-footer strong,
.recomp-footer span { display:block; }
.recomp-footer span { margin-top:4px; font-size:.8rem; color:var(--muted); }

.marketing-page { display:grid; gap:30px; }
.marketing-kicker {
    color:#2563eb;
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.marketing-hero {
    display:grid;
    grid-template-columns:minmax(300px,.82fr) minmax(480px,1.18fr);
    gap:34px;
    align-items:center;
}
.marketing-hero-copy { padding:24px 8px 24px 0; }
.marketing-hero-copy h1 {
    max-width:520px;
    margin:14px 0 12px;
    font-size:clamp(3rem,6vw,5.4rem);
    line-height:.92;
    letter-spacing:-.055em;
}
.marketing-hero-copy h1 span { color:#2563eb; }
.marketing-hero-copy h1 strong { color:#b7791f; font-weight:900; }
.marketing-hero-copy h2 {
    margin:22px 0 12px;
    font-size:1.1rem;
    color:#1d4ed8;
}
.marketing-hero-copy p {
    max-width:560px;
    margin:0 0 24px;
    color:#475569;
    font-size:1rem;
    line-height:1.68;
}
.marketing-cta {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:12px 20px;
    border:0;
    border-radius:10px;
    background:linear-gradient(135deg,#2563eb,#1d4ed8);
    color:#fff;
    font-weight:850;
    text-decoration:none;
    box-shadow:0 8px 22px rgba(37,99,235,.18);
}
.marketing-cta:hover { filter:brightness(1.06); }
.marketing-text-link { color:#2563eb; font-weight:800; text-decoration:none; }
.marketing-feature-image {
    display:block;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 18px 48px rgba(15,23,42,.14);
    transition:transform .18s ease,box-shadow .18s ease;
}
.marketing-feature-image:hover {
    transform:translateY(-2px);
    box-shadow:0 22px 56px rgba(15,23,42,.19);
}

.marketing-section { display:grid; gap:18px; }
.marketing-section-head { text-align:center; }
.marketing-section-head h2 { margin:7px 0 0; font-size:1.75rem; }
.marketing-section-head.compact h2 { font-size:1.45rem; }
.simple-step-grid {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
}
.simple-step {
    min-height:190px;
    padding:20px 16px;
    border:1px solid #dbe3ea;
    border-radius:16px;
    background:#fff;
    text-align:center;
    box-shadow:0 2px 8px rgba(15,23,42,.04);
}
.simple-step-icon {
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    margin:0 auto 12px;
    border:2px solid currentColor;
    border-radius:50%;
    font-size:1.45rem;
    font-weight:900;
}
.simple-step h3 { margin:0 0 9px; font-size:1rem; }
.simple-step p { margin:0; color:#64748b; font-size:.85rem; line-height:1.5; }
.step-blue { color:#2563eb; }
.step-green { color:#15803d; }
.step-gold { color:#b7791f; }
.step-purple { color:#7c3aed; }
.simple-step p { color:#64748b; }

.science-simple-panel {
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:20px;
    padding:24px 28px;
    border:1px solid #bfdbfe;
    border-radius:18px;
    background:linear-gradient(120deg,#f8fbff,#fff);
}
.science-simple-mark {
    display:grid;
    place-items:center;
    width:68px;
    height:68px;
    border:2px solid #60a5fa;
    border-radius:50%;
    color:#2563eb;
    font-size:2.4rem;
}
.science-simple-panel h2 { margin:5px 0 6px; font-size:1.35rem; }
.science-simple-panel p { margin:0; color:#475569; line-height:1.55; }

.evidence-v2-intro { text-align:center; max-width:900px; margin:0 auto; }
.evidence-v2-intro h1 {
    margin:8px 0 7px;
    font-size:clamp(2.4rem,5vw,4rem);
    line-height:1;
    letter-spacing:-.04em;
}
.evidence-v2-intro h1 span { color:#2563eb; }
.evidence-v2-intro p { margin:0; color:#475569; font-size:1.05rem; }
.evidence-v2-intro strong { display:block; margin-top:6px; color:#2563eb; }
.evidence-comparison-shell { text-align:center; }
.evidence-image-button {
    display:block;
    width:100%;
    padding:0;
    border:0;
    border-radius:18px;
    overflow:hidden;
    background:transparent;
    cursor:zoom-in;
    box-shadow:0 14px 36px rgba(15,23,42,.10);
}
.evidence-enlarge-hint { margin:9px 0 6px; color:#64748b; font-size:.8rem; font-weight:750; }
.evidence-comparison-shell > p {
    max-width:860px;
    margin:8px auto 0;
    color:#475569;
    line-height:1.6;
}
.evidence-card-grid-v2 {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.evidence-mini-card {
    min-height:190px;
    padding:19px;
    border:1px solid #dbe3ea;
    border-radius:14px;
    background:#fff;
    box-shadow:0 2px 8px rgba(15,23,42,.04);
}
.evidence-mini-card > span { color:#2563eb; font-size:.7rem; font-weight:900; }
.evidence-mini-card h3 { margin:7px 0 7px; font-size:1.03rem; }
.evidence-mini-card p { margin:0 0 10px; color:#64748b; font-size:.84rem; line-height:1.48; }
.evidence-mini-card a { color:#2563eb; font-size:.82rem; font-weight:800; text-decoration:none; }
.evidence-bottom-cta {
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:22px;
    padding:22px 26px;
    border:1px solid #f0c36a;
    border-radius:16px;
    background:#fffdf7;
}
.evidence-bottom-cta h2 { margin:5px 0 4px; }
.evidence-bottom-cta p { margin:0; color:#64748b; }
.evidence-disclaimer { margin:0; color:#94a3b8; font-size:.75rem; text-align:center; }
.evidence-modal[hidden] { display:none; }
.evidence-modal {
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    padding:20px;
    background:rgba(2,6,23,.92);
}
.evidence-modal img { width:min(1400px,96vw); max-height:90vh; object-fit:contain; border-radius:14px; }
.evidence-modal-close {
    position:fixed;
    top:18px;
    right:22px;
    width:44px;
    height:44px;
    border:1px solid rgba(255,255,255,.3);
    border-radius:50%;
    background:rgba(15,23,42,.85);
    color:#fff;
    font-size:1.8rem;
    cursor:pointer;
}
body.modal-open { overflow:hidden; }

/* Authenticated first-login explainer */
.onboarding-page { display:grid; gap:22px; }
.onboarding-hero {
    padding:34px;
    border:1px solid #bfdbfe;
    border-radius:20px;
    background:radial-gradient(circle at 90% 10%,rgba(37,99,235,.16),transparent 32%),linear-gradient(135deg,#fff,#f8fbff);
}
.onboarding-hero h1 {
    max-width:850px;
    margin:8px 0 10px;
    font-size:clamp(2.4rem,5vw,4.3rem);
    line-height:.98;
    letter-spacing:-.045em;
}
.onboarding-lede { max-width:820px; margin:0; color:#475569; font-size:1.05rem; line-height:1.6; }
.onboarding-motivation { margin-top:15px; color:#2563eb; font-weight:900; }
.onboarding-section {
    padding:24px;
    border:1px solid #dbe3ea;
    border-radius:18px;
    background:#fff;
}
.onboarding-section-head {
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-bottom:18px;
}
.onboarding-section-head > span {
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:9px;
    background:#2563eb;
    color:#fff;
    font-weight:900;
}
.onboarding-section-head h2 { margin:5px 0 0; font-size:1.55rem; }
.fuel-cycle-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.fuel-cycle-card {
    padding:18px;
    border-radius:14px;
    border:1px solid #e2e8f0;
    background:#f8fafc;
}
.fuel-cycle-card.burn { border-top:4px solid #2563eb; }
.fuel-cycle-card.refill { border-top:4px solid #f59e0b; }
.fuel-cycle-card.protect { border-top:4px solid #16a34a; }
.fuel-cycle-icon { color:#64748b; font-weight:900; font-size:.74rem; letter-spacing:.08em; }
.fuel-cycle-card h3 { margin:6px 0 7px; }
.fuel-cycle-card p { margin:0; color:#475569; font-size:.88rem; line-height:1.52; }
.onboarding-explainer {
    margin-top:14px;
    padding:15px 17px;
    border-radius:12px;
    background:#eff6ff;
    border:1px solid #bfdbfe;
}
.onboarding-explainer p { margin:6px 0 0; color:#334155; line-height:1.55; }
.recomp-window {
    display:grid;
    grid-template-columns:1fr auto 1fr auto 1fr;
    gap:10px;
    align-items:center;
}
.recomp-window-step {
    padding:16px;
    border:1px solid #dbe3ea;
    border-radius:13px;
    background:#f8fafc;
}
.recomp-window-step.highlight { background:#fff7ed; border-color:#fed7aa; }
.recomp-window-step span { display:block; color:#64748b; font-size:.7rem; font-weight:900; letter-spacing:.08em; }
.recomp-window-step strong { display:block; margin-top:4px; }
.recomp-window-arrow { color:#94a3b8; font-size:1.6rem; font-weight:900; }
.onboarding-note-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-top:16px;
}
.onboarding-note-grid > div { padding:14px 15px; border-radius:12px; background:#f8fafc; }
.onboarding-note-grid h3 { margin:0 0 5px; font-size:1rem; }
.onboarding-note-grid p { margin:0; color:#64748b; font-size:.84rem; line-height:1.48; }
.app-process-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}
.app-process-grid article { padding:17px; border:1px solid #e2e8f0; border-radius:13px; background:#fff; }
.app-process-number {
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#e0e7ff;
    color:#1d4ed8;
    font-weight:900;
}
.app-process-grid h3 { margin:9px 0 6px; font-size:1rem; }
.app-process-grid p { margin:0; color:#64748b; font-size:.84rem; line-height:1.5; }
.app-output-panel {
    display:grid;
    grid-template-columns:minmax(250px,.75fr) minmax(0,1.25fr);
    gap:22px;
    margin-top:16px;
    padding:18px;
    border-radius:14px;
    background:#0f172a;
    color:#fff;
}
.app-output-panel h3 { margin:6px 0 0; font-size:1.2rem; }
.app-output-panel ul { margin:0; padding-left:20px; color:#dbeafe; line-height:1.62; }
.onboarding-start {
    display:grid;
    grid-template-columns:1fr auto;
    gap:22px;
    align-items:center;
    padding:24px 26px;
    border:1px solid #f0c36a;
    border-radius:16px;
    background:#fffdf7;
}
.onboarding-start h2 { margin:5px 0 6px; }
.onboarding-start p { margin:0; color:#64748b; }
.onboarding-start-actions { display:flex; flex-direction:column; gap:8px; align-items:center; }
.onboarding-sources { color:#64748b; font-size:.78rem; line-height:1.7; text-align:center; }
.onboarding-sources a { color:#2563eb; text-decoration:none; }

html[data-theme="dark"] .brand-logo-light,
html[data-theme="dark"] .theme-image-light { display:none; }
html[data-theme="dark"] .brand-logo-dark,
html[data-theme="dark"] .theme-image-dark { display:block; }
html[data-theme="dark"] .public-shell .topbar,
html[data-theme="dark"] .onboarding-shell .topbar {
    background:#050b14;
    color:#e5e7eb;
    border-color:#1e293b;
}
html[data-theme="dark"] .public-shell .public-nav a,
html[data-theme="dark"] .onboarding-shell .public-nav a { color:#e5e7eb; }
html[data-theme="dark"] .public-shell .public-nav a:hover,
html[data-theme="dark"] .onboarding-shell .public-nav a:hover { background:#172033; }
html[data-theme="dark"] .public-shell .public-nav-create { color:#fff; background:#2563eb; }
html[data-theme="dark"] .marketing-hero-copy p,
html[data-theme="dark"] .evidence-v2-intro p,
html[data-theme="dark"] .evidence-comparison-shell > p,
html[data-theme="dark"] .science-simple-panel p,
html[data-theme="dark"] .evidence-bottom-cta p,
html[data-theme="dark"] .onboarding-lede,
html[data-theme="dark"] .onboarding-start p { color:#cbd5e1; }
html[data-theme="dark"] .marketing-hero-copy h1 strong { color:#f4b942; }
html[data-theme="dark"] .simple-step,
html[data-theme="dark"] .evidence-mini-card,
html[data-theme="dark"] .onboarding-section,
html[data-theme="dark"] .app-process-grid article {
    background:#101827;
    border-color:#334155;
    box-shadow:none;
}
html[data-theme="dark"] .simple-step p,
html[data-theme="dark"] .evidence-mini-card p,
html[data-theme="dark"] .fuel-cycle-card p,
html[data-theme="dark"] .onboarding-note-grid p,
html[data-theme="dark"] .app-process-grid p { color:#aebbd0; }
html[data-theme="dark"] .science-simple-panel {
    background:linear-gradient(120deg,#0f172a,#111827);
    border-color:#1e3a5f;
}
html[data-theme="dark"] .evidence-bottom-cta,
html[data-theme="dark"] .onboarding-start { background:#17150f; border-color:#8b651d; }
html[data-theme="dark"] .onboarding-hero {
    background:radial-gradient(circle at 90% 10%,rgba(37,99,235,.22),transparent 32%),linear-gradient(135deg,#0b1220,#101827);
    border-color:#1e3a5f;
}
html[data-theme="dark"] .fuel-cycle-card,
html[data-theme="dark"] .recomp-window-step,
html[data-theme="dark"] .onboarding-note-grid > div {
    background:#0f172a;
    border-color:#334155;
}
html[data-theme="dark"] .recomp-window-step.highlight { background:#231b10; border-color:#7c5412; }
html[data-theme="dark"] .onboarding-explainer { background:#0b2544; border-color:#1e4f7a; }
html[data-theme="dark"] .onboarding-explainer p { color:#dbeafe; }

@media (max-width:980px) {
    .marketing-hero { grid-template-columns:1fr; }
    .marketing-hero-copy { padding-right:0; }
    .marketing-hero-copy h1 { max-width:760px; }
    .simple-step-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .evidence-card-grid-v2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .fuel-cycle-grid,
    .onboarding-note-grid { grid-template-columns:1fr; }
    .app-process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .recomp-window { grid-template-columns:1fr; }
    .recomp-window-arrow { transform:rotate(90deg); justify-self:center; }
}

@media (max-width:700px) {
    .public-shell .topbar,
    .onboarding-shell .topbar { align-items:center; flex-direction:row; padding:10px 14px; }
    .brand-logo { width:148px; }
    .public-nav { margin-left:auto; justify-content:flex-end; }
    .public-nav a:not(.public-nav-create) { display:none; }
    .onboarding-nav a { display:inline-block !important; font-size:.75rem; }
    .public-nav-create { display:inline-block !important; font-size:.76rem !important; }
    .public-shell .container,
    .onboarding-shell .container { padding:20px 14px 42px; }
    .marketing-page { gap:22px; }
    .marketing-hero-copy h1 { font-size:clamp(3rem,17vw,4.4rem); }
    .marketing-hero-copy p { font-size:.95rem; }
    .marketing-cta { width:100%; }
    .marketing-feature-image { border-radius:14px; }
    .simple-step-grid,
    .evidence-card-grid-v2,
    .app-process-grid { grid-template-columns:1fr; }
    .simple-step { min-height:0; text-align:left; padding:16px; }
    .simple-step-icon { margin:0 0 10px; }
    .science-simple-panel,
    .evidence-bottom-cta,
    .onboarding-start,
    .app-output-panel { grid-template-columns:1fr; }
    .science-simple-mark { width:54px; height:54px; font-size:2rem; }
    .evidence-v2-intro h1 { font-size:2.5rem; }
    .evidence-comparison-shell > p { font-size:.9rem; }
    .onboarding-hero,
    .onboarding-section { padding:20px 17px; }
    .onboarding-hero h1 { font-size:2.75rem; }
    .onboarding-section-head h2 { font-size:1.3rem; }
    .recomp-footer { align-items:flex-start; flex-direction:column; }
    .footer-logo { width:130px; }
}

/* ===== v1004 usability + first-run clarity patch ===== */
/* Keep the correct logo readable in both themes on every page. */
.app-shell .topbar {
    background:#ffffff;
    color:#172033;
    border-bottom:1px solid #dbe3ea;
    box-shadow:0 2px 16px rgba(15,23,42,.06);
    min-height:82px;
}
.app-shell .app-nav a { color:#172033; opacity:1; }
.app-shell .app-nav a:hover,
.app-shell .app-nav a:focus { background:#eff6ff; }
.app-shell .nav-signout { border-left-color:#cbd5e1; }
.app-shell .nav-toggle { border-color:#cbd5e1; background:#f8fafc; }
.app-shell .nav-toggle-line { background:#172033; }
.recomp-footer { justify-content:flex-start; }

.section-heading-with-help {
    display:flex;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
}
.section-heading-with-help h2 { margin:13px 0 6px; }
.section-helper {
    margin:0 0 16px;
    color:#64748b;
    font-size:.9rem;
    line-height:1.5;
}
.field-optional {
    color:#94a3b8;
    font-size:.72rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.inline-help { display:inline-flex; vertical-align:middle; margin-left:3px; }
.help-tip {
    position:relative;
    z-index:5;
    display:inline-grid;
    place-items:center;
    width:25px;
    height:25px;
    flex:0 0 25px;
    padding:0;
    border:1px solid #93c5fd;
    border-radius:50%;
    background:#eff6ff;
    color:#1d4ed8;
    font:800 .78rem/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
    cursor:help;
}
.help-tip.small-tip {
    width:20px;
    height:20px;
    flex-basis:20px;
    font-size:.68rem;
}
.help-tip::after {
    content:attr(data-tooltip);
    position:absolute;
    z-index:10000;
    left:50%;
    bottom:calc(100% + 10px);
    width:min(330px,72vw);
    padding:10px 12px;
    border-radius:9px;
    background:#0f172a;
    color:#f8fafc;
    box-shadow:0 10px 28px rgba(15,23,42,.28);
    font-size:.78rem;
    font-weight:600;
    line-height:1.45;
    letter-spacing:0;
    text-transform:none;
    text-align:left;
    pointer-events:none;
    opacity:0;
    transform:translate(-50%,5px);
    transition:opacity .14s ease,transform .14s ease;
}
.help-tip:hover::after,
.help-tip:focus-visible::after {
    opacity:1;
    transform:translate(-50%,0);
}
.help-tip:focus-visible { outline:3px solid rgba(37,99,235,.22); outline-offset:2px; }

.setup-intro-card,
.weekly-plan-guide {
    display:grid;
    grid-template-columns:auto 1fr;
    gap:16px;
    padding:20px 22px;
    border:1px solid #bfdbfe;
    border-radius:16px;
    background:linear-gradient(120deg,#eff6ff,#f8fbff 58%,#ffffff);
}
.setup-intro-card h2,
.weekly-plan-guide h2 { margin:0 0 6px; font-size:1.3rem; }
.setup-intro-card p,
.weekly-plan-guide p { margin:0; color:#475569; line-height:1.55; }
.setup-intro-icon {
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:10px;
    background:#2563eb;
    color:#fff;
    font-weight:900;
}
.setup-progress {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:13px;
}
.setup-progress span {
    padding:6px 9px;
    border:1px solid #dbe3ea;
    border-radius:999px;
    background:#fff;
    color:#64748b;
    font-size:.72rem;
    font-weight:800;
}
.setup-progress span.active {
    border-color:#93c5fd;
    background:#dbeafe;
    color:#1d4ed8;
}
.form-footnote {
    margin:12px 0 0;
    color:#64748b;
    font-size:.8rem;
    line-height:1.45;
}
.critical-choice-callout {
    margin:7px 0 17px;
    padding:14px 16px;
    border:1px solid #c4b5fd;
    border-left:5px solid #7c3aed;
    border-radius:11px;
    background:#faf5ff;
}
.critical-choice-callout strong { display:block; color:#5b21b6; }
.critical-choice-callout p { margin:5px 0 0; color:#475569; font-size:.88rem; line-height:1.5; }
.plan-choice-description {
    display:block;
    min-height:45px;
    padding:9px 10px;
    border:1px solid #e9d5ff;
    border-radius:8px;
    background:#fcfaff;
    color:#5b21b6;
    font-size:.78rem;
    font-weight:650;
    line-height:1.4;
}
.setup-next-callout {
    display:flex;
    gap:10px 16px;
    align-items:baseline;
    flex-wrap:wrap;
    padding:14px 16px;
    border-radius:11px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    color:#475569;
}
.setup-next-callout strong { color:#172033; }

.weekly-plan-guide { grid-template-columns:1fr; }
.weekly-guide-main { display:grid; grid-template-columns:auto 1fr; gap:16px; }
.weekly-target-chips {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:14px 0 9px;
}
.weekly-target-chips span {
    padding:8px 10px;
    border-radius:999px;
    background:#fff;
    border:1px solid #cbd5e1;
    color:#334155;
    font-size:.78rem;
    font-weight:750;
}
.weekly-target-chips strong { color:#1d4ed8; }
.app-status .status-help { margin-left:auto; }
.plan-week-mix-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:2px 0 -7px;
}
.plan-week-mix-heading strong { display:block; margin-top:2px; font-size:1.05rem; }
.plan-day-workout label { display:flex; align-items:center; gap:6px; }
.weekly-save-row {
    position:sticky;
    z-index:30;
    bottom:10px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
    padding:11px 12px;
    border:1px solid #dbe3ea;
    border-radius:12px;
    background:rgba(255,255,255,.94);
    box-shadow:0 8px 26px rgba(15,23,42,.13);
    backdrop-filter:blur(10px);
}
.weekly-dirty-note { color:#9a3412; font-size:.8rem; font-weight:800; }

html[data-theme="dark"] .app-shell .topbar {
    background:#050b14;
    color:#e5e7eb;
    border-color:#1e293b;
}
html[data-theme="dark"] .app-shell .app-nav a { color:#e5e7eb; }
html[data-theme="dark"] .app-shell .app-nav a:hover,
html[data-theme="dark"] .app-shell .app-nav a:focus { background:#172033; }
html[data-theme="dark"] .app-shell .nav-signout { border-left-color:#475569; }
html[data-theme="dark"] .app-shell .nav-toggle { border-color:#475569; background:#111827; }
html[data-theme="dark"] .app-shell .nav-toggle-line { background:#f8fafc; }
html[data-theme="dark"] .setup-intro-card,
html[data-theme="dark"] .weekly-plan-guide {
    background:linear-gradient(120deg,#0b2544,#0f172a 62%,#101827);
    border-color:#1e4f7a;
}
html[data-theme="dark"] .setup-intro-card p,
html[data-theme="dark"] .weekly-plan-guide p,
html[data-theme="dark"] .section-helper,
html[data-theme="dark"] .form-footnote { color:#aebbd0; }
html[data-theme="dark"] .setup-progress span,
html[data-theme="dark"] .weekly-target-chips span {
    background:#101827;
    border-color:#334155;
    color:#cbd5e1;
}
html[data-theme="dark"] .setup-progress span.active { background:#172554; border-color:#2563eb; color:#bfdbfe; }
html[data-theme="dark"] .critical-choice-callout { background:#221735; border-color:#6d28d9; }
html[data-theme="dark"] .critical-choice-callout strong,
html[data-theme="dark"] .plan-choice-description { color:#ddd6fe; }
html[data-theme="dark"] .critical-choice-callout p { color:#cbd5e1; }
html[data-theme="dark"] .plan-choice-description { background:#171126; border-color:#4c1d95; }
html[data-theme="dark"] .setup-next-callout { background:#0f172a; border-color:#334155; color:#aebbd0; }
html[data-theme="dark"] .setup-next-callout strong { color:#f8fafc; }
html[data-theme="dark"] .help-tip { background:#0b2544; border-color:#3b82f6; color:#bfdbfe; }
html[data-theme="dark"] .weekly-save-row {
    background:rgba(15,23,42,.95);
    border-color:#334155;
}

@media (max-width:900px) {
    .setup-intro-card { grid-template-columns:1fr; }
    .weekly-save-row { align-items:stretch; flex-direction:column; }
    .weekly-save-row .primary { width:100%; }
}
@media (max-width:700px) {
    .app-shell .topbar { align-items:center; flex-direction:row; padding:10px 14px; }
    .app-shell .brand-logo { width:148px; }
    .setup-intro-card,
    .weekly-plan-guide { padding:17px 15px; }
    .weekly-guide-main { grid-template-columns:1fr; }
    .weekly-target-chips { display:grid; grid-template-columns:1fr; }
    .help-tip::after { left:auto; right:-10px; transform:translateY(5px); width:min(300px,82vw); }
    .help-tip:hover::after,
    .help-tip:focus-visible::after { transform:translateY(0); }
    .plan-week-mix-heading { align-items:flex-start; }
}

/* v1004 Review My Setup */
.review-mode-note {
    margin-top: .85rem;
    padding: .85rem 1rem;
    border-radius: 12px;
    background: color-mix(in srgb, var(--blue) 9%, var(--surface));
    border: 1px solid color-mix(in srgb, var(--blue) 28%, var(--line));
    color: var(--ink);
}

.review-baseline-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .75rem;
}

.review-baseline-grid > div {
    padding: .85rem 1rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: color-mix(in srgb, var(--surface) 92%, var(--background));
}

.review-baseline-grid span,
.review-baseline-grid strong {
    display: block;
}

.review-baseline-grid span {
    color: var(--muted);
    font-size: .82rem;
    margin-bottom: .2rem;
}

.field-locked {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--muted);
}

.plan-change-confirm {
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, #d99a1b 50%, var(--line));
    border-radius: 12px;
    background: color-mix(in srgb, #d99a1b 10%, var(--surface));
}

.confirm-check {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    font-weight: 400;
}

.confirm-check input[type="checkbox"] {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .15rem;
    flex: 0 0 auto;
}

.profile-setup-review {
    margin-top: 1rem;
    padding-top: .9rem;
    border-top: 1px solid var(--line);
}

.profile-setup-review p {
    margin: .3rem 0 0;
}

.plan-history {
    margin-top: 1rem;
    padding-top: .9rem;
    border-top: 1px solid var(--line);
}

.plan-history-row {
    display: grid;
    grid-template-columns: 8rem 1fr;
    gap: .75rem;
    padding: .45rem 0;
    color: var(--muted);
    font-size: .88rem;
}

.plan-history-row span:last-child {
    color: var(--ink);
}

@media (max-width: 780px) {
    .review-baseline-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .plan-history-row {
        grid-template-columns: 1fr;
        gap: .15rem;
    }
}

/* v1004 plan-first weekly setup + safe rollover */
.plan-choice-field select optgroup:first-of-type {
    font-weight:900;
    color:#1d4ed8;
}
.plan-choice-field select option.recomp-plan-option {
    font-weight:900;
}
.plan-choice-description {
    min-height:56px;
    padding:11px 12px;
    font-size:.9rem;
    line-height:1.5;
}
.inline-week-action {
    display:inline-flex;
    margin:0;
}
.copy-week-button:disabled {
    opacity:.5;
    cursor:not-allowed;
}
.schedule-status-message,
.plan-source-note {
    margin:0 0 16px;
    padding:12px 14px;
    border:1px solid #bfdbfe;
    border-left:5px solid #2563eb;
    border-radius:10px;
    background:#eff6ff;
    color:#334155;
    line-height:1.45;
}
.recommended-week-review {
    margin:0 0 18px;
    padding:18px;
    border:1px solid #c4b5fd;
    border-left:5px solid #7c3aed;
    border-radius:14px;
    background:#faf5ff;
}
.recommended-week-review h2 { margin:4px 0 7px; }
.recommended-week-review p { margin:6px 0; color:#475569; }
.recommended-week-grid {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:8px;
    margin:14px 0;
}
.recommended-day {
    min-width:0;
    padding:10px 8px;
    border:1px solid #ddd6fe;
    border-radius:9px;
    background:#fff;
    text-align:center;
}
.recommended-day strong,
.recommended-day span { display:block; }
.recommended-day strong { color:#5b21b6; font-size:.78rem; }
.recommended-day span { margin-top:4px; color:#334155; font-size:.75rem; line-height:1.25; }

html[data-theme="dark"] .plan-choice-field select optgroup:first-of-type { color:#93c5fd; }
html[data-theme="dark"] .schedule-status-message,
html[data-theme="dark"] .plan-source-note {
    background:#0d1b2e;
    border-color:#1d4ed8;
    color:#dbeafe;
}
html[data-theme="dark"] .recommended-week-review {
    background:#21152f;
    border-color:#7c3aed;
}
html[data-theme="dark"] .recommended-week-review p { color:#d1d5db; }
html[data-theme="dark"] .recommended-day {
    background:#111827;
    border-color:#4c1d95;
}
html[data-theme="dark"] .recommended-day strong { color:#c4b5fd; }
html[data-theme="dark"] .recommended-day span { color:#e5e7eb; }

@media (max-width:900px) {
    .recommended-week-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .week-nav { align-items:stretch; }
    .week-nav .inline-week-action,
    .week-nav .inline-week-action .button { width:100%; }
}

/* ===== v1004 final polish: plan hierarchy, resistance-first education, desktop menu ===== */
.plan-choice-field select optgroup {
    font-weight:900;
}
.plan-choice-field select optgroup:first-of-type {
    color:#1d4ed8;
}
.plan-choice-field select option.recomp-plan-option {
    font-weight:900;
}
.plan-choice-description {
    min-height:72px;
    padding:13px 14px;
    font-size:1rem;
    line-height:1.55;
}
.resistance-first-callout,
.resistance-anchor-panel,
.resistance-plan-note {
    border:1px solid #93c5fd;
    border-left:5px solid #2563eb;
    border-radius:12px;
    background:#eff6ff;
    color:#334155;
}
.resistance-first-callout {
    margin:0 0 18px;
    padding:15px 17px;
}
.resistance-first-callout strong,
.resistance-anchor-panel h3,
.resistance-plan-note strong {
    color:#1e3a8a;
}
.resistance-first-callout p {
    margin:6px 0 0;
    line-height:1.55;
}
.resistance-anchor-panel {
    margin:18px 0;
    padding:18px;
}
.resistance-anchor-panel h3 {
    margin:5px 0 8px;
    font-size:1.25rem;
}
.resistance-anchor-panel p {
    margin:7px 0;
    line-height:1.58;
}
.resistance-plan-note {
    margin:12px 0 2px;
    padding:11px 13px;
    font-size:.88rem;
    line-height:1.5;
}

/* Authenticated desktop keeps high-frequency planning/tracking links visible,
   while the hamburger exposes the complete page list at every screen size. */
.app-shell .topbar {
    gap:14px;
}
.app-shell .brand {
    flex:0 0 auto;
}
.app-shell .app-quick-nav {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:5px;
    margin-left:auto;
    flex-wrap:nowrap;
}
.app-shell .app-quick-nav a {
    padding:8px 9px;
    border-radius:8px;
    color:#172033;
    font-size:.84rem;
    font-weight:750;
    white-space:nowrap;
    text-decoration:none;
}
.app-shell .app-quick-nav a:hover,
.app-shell .app-quick-nav a:focus {
    background:#eff6ff;
}
.app-shell .nav-toggle {
    display:block;
    flex:0 0 auto;
    margin-left:2px;
}
.app-shell .app-nav.app-menu {
    display:none;
    position:absolute;
    z-index:1100;
    top:calc(100% + 8px);
    right:18px;
    left:auto;
    width:min(320px,calc(100vw - 24px));
    max-height:min(72vh,620px);
    overflow-y:auto;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px;
    border:1px solid #dbe3ea;
    border-radius:12px;
    background:#fff;
    box-shadow:0 16px 38px rgba(15,23,42,.20);
}
.app-shell .app-nav.app-menu.is-open {
    display:flex;
}
.app-shell .app-nav.app-menu a {
    display:block;
    padding:11px 13px;
    border-radius:8px;
    color:#172033;
    text-decoration:none;
    font-weight:700;
}
.app-shell .app-nav.app-menu .nav-signout {
    margin:7px 0 0;
    padding-left:13px;
    border-left:0;
    border-top:1px solid #e2e8f0;
    color:#9f1239;
}

html[data-theme="dark"] .resistance-first-callout,
html[data-theme="dark"] .resistance-anchor-panel,
html[data-theme="dark"] .resistance-plan-note {
    background:#0b1c32;
    border-color:#2563eb;
    color:#cbd5e1;
}
html[data-theme="dark"] .resistance-first-callout strong,
html[data-theme="dark"] .resistance-anchor-panel h3,
html[data-theme="dark"] .resistance-plan-note strong {
    color:#bfdbfe;
}
html[data-theme="dark"] .app-shell .app-quick-nav a {
    color:#e5e7eb;
}
html[data-theme="dark"] .app-shell .app-quick-nav a:hover,
html[data-theme="dark"] .app-shell .app-quick-nav a:focus {
    background:#172033;
}
html[data-theme="dark"] .app-shell .app-nav.app-menu {
    background:#111827;
    border-color:#334155;
}
html[data-theme="dark"] .app-shell .app-nav.app-menu a {
    color:#e5e7eb;
}
html[data-theme="dark"] .app-shell .app-nav.app-menu a:hover,
html[data-theme="dark"] .app-shell .app-nav.app-menu a:focus {
    background:#1e293b;
}
html[data-theme="dark"] .app-shell .app-nav.app-menu .nav-signout {
    border-top-color:#334155;
    color:#fda4af;
}

@media (max-width:1080px) {
    .app-shell .app-quick-nav a {
        font-size:.78rem;
        padding:8px 6px;
    }
}
@media (max-width:900px) {
    .app-shell .app-quick-nav {
        display:none;
    }
    .app-shell .app-nav.app-menu {
        right:12px;
        left:12px;
        width:auto;
    }
}


/* ===== v1004 lock polish: Dashboard-first nav + protein/carb emphasis ===== */
.app-shell .app-quick-nav .quick-nav-dashboard {
    font-weight:900;
}

/* ===== v1005a autosave + required-field clarity ===== */
.required-note {
    margin:.15rem 0 .65rem;
    font-size:.82rem;
    color:var(--muted);
}
.required-mark {
    color:#b42318;
    font-weight:900;
}
.autosave-row {
    min-height:1.75rem;
    display:flex;
    align-items:center;
    justify-content:flex-end;
}
.autosave-status {
    font-size:.86rem;
    font-weight:700;
    color:var(--muted);
}
.autosave-status[data-state="saving"],
.autosave-status[data-state="pending"] {
    color:#92400e;
}
.autosave-status[data-state="saved"] {
    color:#166534;
}
.autosave-status[data-state="error"] {
    color:#b42318;
}
.dashboard-weight-needed {
    max-width:760px;
    margin:1rem auto 0;
    padding:1.35rem;
}
.dashboard-weight-needed h2 {
    margin:.3rem 0 .5rem;
}
.dashboard-weight-needed p {
    margin:0;
    color:var(--muted);
    line-height:1.55;
}
.dashboard-weight-needed .app-action-row {
    margin-top:1rem;
}
html[data-theme="dark"] .required-note,
html[data-theme="dark"] .autosave-status {
    color:#cbd5e1;
}
html[data-theme="dark"] .required-mark,
html[data-theme="dark"] .autosave-status[data-state="error"] {
    color:#fda4af;
}
html[data-theme="dark"] .autosave-status[data-state="saving"],
html[data-theme="dark"] .autosave-status[data-state="pending"] {
    color:#fcd34d;
}
html[data-theme="dark"] .autosave-status[data-state="saved"] {
    color:#86efac;
}

/* ===== v1005a label polish: keep required mark beside field label ===== */
.field-label-line {
    display:inline-flex;
    align-items:baseline;
    gap:.45rem;
    min-width:0;
}
.field-label-line .required-mark {
    display:inline;
    line-height:1;
}

/* ===== v1006 dark theme cleanup ===== */

/* Weekly Plan status callout */
html[data-theme="dark"] .schedule-status-message {
    background: #111827;
    border-color: #334155;
    color: #e5e7eb;
}

html[data-theme="dark"] .schedule-status-message strong {
    color: #f8fafc;
}

html[data-theme="dark"] .schedule-status-message p,
html[data-theme="dark"] .schedule-status-message span {
    color: #cbd5e1;
}

/* Dashboard: Today's Impact recovery summary */
html[data-theme="dark"] .dash-recovery-meter {
    background: #1e1b4b;
    border: 1px solid #4c1d95;
}

html[data-theme="dark"] .dash-recovery-meter strong {
    color: #f5f3ff;
}

html[data-theme="dark"] .dash-recovery-meter span {
    color: #c4b5fd;
}

html[data-theme="dark"] .dash-recovery-meter .dash-meter-value {
    color: #a78bfa;
}
/* ===== v1006 guided dark fixes ===== */

/* Weekly Plan status */
html[data-theme="dark"] .schedule-status-message,
body.guided-demo-dark-theme .schedule-status-message {
    background: #052e1b;
    border-color: #166534;
    color: #d1fae5;
}

html[data-theme="dark"] .schedule-status-message strong,
body.guided-demo-dark-theme .schedule-status-message strong {
    color: #f0fdf4;
}

html[data-theme="dark"] .schedule-status-message p,
html[data-theme="dark"] .schedule-status-message span,
body.guided-demo-dark-theme .schedule-status-message p,
body.guided-demo-dark-theme .schedule-status-message span {
    color: #d1fae5;
}

/* Dashboard Today's Impact */
html[data-theme="dark"] .dash-recovery-meter,
body.guided-demo-dark-theme .dash-recovery-meter {
    background: #171235;
    border: 1px solid #5b21b6;
}

html[data-theme="dark"] .dash-recovery-meter strong,
body.guided-demo-dark-theme .dash-recovery-meter strong {
    color: #f5f3ff;
}

html[data-theme="dark"] .dash-recovery-meter span,
body.guided-demo-dark-theme .dash-recovery-meter span {
    color: #c4b5fd;
}

html[data-theme="dark"] .dash-recovery-meter .dash-meter-value,
body.guided-demo-dark-theme .dash-recovery-meter .dash-meter-value {
    color: #a78bfa;
}

/* Footer */
html[data-theme="dark"] .recomp-footer strong,
body.guided-demo-dark-theme .recomp-footer strong {
    color: #e5e7eb;
}

html[data-theme="dark"] .recomp-footer span,
body.guided-demo-dark-theme .recomp-footer span {
    color: #94a3b8;
}

/* ===== v1006 Weekly Plan actual status dark fix ===== */

html[data-theme="dark"] .app-status.good,
body.guided-demo-dark-theme .app-status.good {
    background: #052e1b;
    border-color: #166534;
    color: #d1fae5;
}

html[data-theme="dark"] .app-status.good strong,
body.guided-demo-dark-theme .app-status.good strong {
    color: #f0fdf4;
}

html[data-theme="dark"] .app-status.good span,
body.guided-demo-dark-theme .app-status.good span {
    color: #bbf7d0;
}

html[data-theme="dark"] .app-status.good .app-status-dot,
body.guided-demo-dark-theme .app-status.good .app-status-dot {
    background: #22c55e;
}

html[data-theme="dark"] .app-status.review,
body.guided-demo-dark-theme .app-status.review {
    background: #2b1d08;
    border-color: #92400e;
    color: #fde68a;
}

html[data-theme="dark"] .app-status.review strong,
body.guided-demo-dark-theme .app-status.review strong {
    color: #fef3c7;
}

html[data-theme="dark"] .app-status.review span,
body.guided-demo-dark-theme .app-status.review span {
    color: #fde68a;
}

.weekly-autosave-inline:not([hidden]) {
    display: block;
    margin-top: .75rem;
    text-align: right;
}

/* ===== v1006 Giveaway and Promotion Administration ===== */

.admin-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.admin-card-link:hover {
    transform: translateY(-2px);
}

.admin-code-page {
    padding: 2rem 0 4rem;
}

.admin-page-header {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: flex-start;
    margin-bottom: 1.5rem;
}

.admin-page-header h1 {
    margin: .35rem 0 .5rem;
}

.admin-page-header p,
.admin-code-panel-heading p,
.admin-list-heading p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.admin-back-link {
    white-space: nowrap;
}

.admin-success-message {
    margin-bottom: 1.25rem;
    padding: .9rem 1rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    font-weight: 700;
}

.admin-code-create-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    align-items: start;
}

.admin-code-panel {
    padding: 1.4rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface);
}

.admin-code-panel-heading {
    margin-bottom: 1.25rem;
}

.admin-code-panel-heading h2 {
    margin: .7rem 0 .4rem;
}

.admin-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.admin-form-grid label,
.admin-form-full {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    font-weight: 700;
}

.admin-form-grid small,
.admin-form-full small {
    color: var(--muted);
    font-weight: 400;
    line-height: 1.35;
}

.admin-form-grid input,
.admin-form-grid select,
.admin-form-full textarea {
    width: 100%;
    box-sizing: border-box;
}

.admin-form-full {
    margin-top: 1rem;
}

.admin-input-suffix {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.admin-input-suffix input {
    flex: 1;
}

.admin-input-suffix > span {
    color: var(--muted);
    font-weight: 600;
}

.admin-promo-code-input {
    text-transform: uppercase;
}

.admin-primary-button {
    margin-top: 1.2rem;
    padding: .75rem 1.1rem;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 800;
}

.admin-validation {
    color: #ef4444;
    font-size: .88rem;
    font-weight: 600;
}

.admin-code-list-section {
    margin-top: 2rem;
    padding: 1.4rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface);
}

.admin-list-heading {
    margin-bottom: 1rem;
}

.admin-list-heading h2 {
    margin: 0 0 .3rem;
}

.admin-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.admin-code-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-code-table th,
.admin-code-table td {
    padding: .8rem .65rem;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
}

.admin-code-table th {
    color: var(--muted);
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.admin-code-table input,
.admin-code-table select {
    width: 100%;
    min-width: 8rem;
    box-sizing: border-box;
    margin-bottom: .35rem;
}

.admin-code-table td {
    vertical-align: top;
}


.admin-code-value {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.admin-code-value code {
    font-size: 1rem;
    font-weight: 800;
}

.admin-copy-button {
    padding: .3rem .55rem;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: .78rem;
}

.admin-status-chip {
    display: inline-block;
    padding: .3rem .55rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
}

.admin-empty-state {
    padding: 1rem;
    border: 1px dashed var(--line);
    border-radius: 10px;
    color: var(--muted);
}

@media (max-width: 950px) {
    .admin-code-create-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .admin-form-grid {
        grid-template-columns: 1fr;
    }

    .admin-page-header {
        flex-direction: column;
    }
}

/* ===== v1006 Redeem Code account choices ===== */

.access-code-account-actions {
    display: grid;
    gap: 1rem;
    margin-top: 1.25rem;
}

.access-code-account-choice {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.access-code-account-choice > strong {
    font-size: 1rem;
}

.access-code-account-choice > span {
    color: var(--muted);
    font-size: .92rem;
    line-height: 1.4;
}

.access-code-account-choice button {
    margin-top: .4rem;
}

/* ===== v1006 Redeem Code compact layout ===== */

.access-code-page {
    display: flex;
    justify-content: center;
    padding: 2.5rem 1rem 4rem;
}

.access-code-card {
    width: 100%;
    max-width: 540px;
}

.access-code-label {
    display: flex;
    flex-direction: column;
    max-width: 360px;
    gap: .4rem;
}

.access-code-label input {
    width: 100%;
    max-width: 360px;
    box-sizing: border-box;
}

.access-code-account-actions {
    max-width: 500px;
}

.access-code-account-choice {
    width: auto;
}

.access-code-account-choice button,
.access-code-submit,
.admin-secondary-button {
    width: auto !important;
    align-self: flex-start;
    min-width: 190px;
}

.access-code-account-note,
.access-code-help {
    max-width: 500px;
}

@media (max-width: 600px) {
    .access-code-card {
        max-width: 100%;
    }

    .access-code-label,
    .access-code-label input {
        max-width: 100%;
    }
}

/* ===== v1006 Redeem Code secondary button polish ===== */

.access-code-account-choice .admin-secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 240px;
    min-height: 52px;
    padding: .75rem 1.25rem;

    border: 2px solid var(--navy);
    border-radius: 12px;

    background: transparent;
    color: var(--navy);

    font: inherit;
    font-weight: 800;
    line-height: 1.2;

    cursor: pointer;
    transition:
        background-color .15s ease,
        color .15s ease,
        transform .15s ease;
}

.access-code-account-choice .admin-secondary-button:hover {
    background: var(--navy);
    color: #fff;
    transform: translateY(-1px);
}

html[data-theme="dark"]
.access-code-account-choice .admin-secondary-button {
    border-color: #e5e7eb;
    color: #e5e7eb;
}

html[data-theme="dark"]
.access-code-account-choice .admin-secondary-button:hover {
    background: #e5e7eb;
    color: #0b1120;
}


/* ===== v1006 Pending access / promotion banner ===== */

.pending-access-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.25rem;
    margin: 0 0 1.5rem;
    padding: .9rem 1.1rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
}

.pending-access-banner > div {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.pending-access-banner strong {
    font-size: .95rem;
}

.pending-access-banner span {
    color: var(--muted);
    line-height: 1.4;
}

.pending-access-banner > a {
    flex: 0 0 auto;
    padding: .65rem 1rem;
    border-radius: 10px;
    font-weight: 800;
    text-decoration: none;
}

@media (max-width: 650px) {
    .pending-access-banner {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ===== v1006 Admin Contact Center ===== */

.admin-contact-page {
    padding: 2rem 0 4rem;
}

.admin-contact-settings {
    margin-bottom: 2rem;
    padding: 1.4rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface);
}

.admin-contact-settings-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(240px, .6fr);
    gap: 1.25rem;
    align-items: start;
}

.admin-contact-settings-grid > label:not(.admin-contact-enabled) {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    font-weight: 700;
}

.admin-contact-settings-grid input[type="email"] {
    width: 100%;
    max-width: 520px;
    box-sizing: border-box;
}

.admin-contact-settings-grid small {
    color: var(--muted);
    font-weight: 400;
    line-height: 1.4;
}

.admin-contact-enabled {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    padding: .9rem;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.admin-contact-enabled input {
    margin-top: .2rem;
}

.admin-contact-enabled > span {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.admin-contact-inbox-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.admin-unread-count {
    display: inline-block;
    padding: .4rem .7rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 800;
}

.admin-contact-row-new {
    font-weight: 700;
}

.admin-contact-message-link {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    color: inherit;
    text-decoration: none;
}

.admin-contact-message-link span {
    color: var(--muted);
    font-size: .85rem;
    font-weight: 400;
}

.admin-contact-subject-link {
    color: inherit;
    text-decoration: none;
}

.admin-contact-subject-link:hover,
.admin-contact-message-link:hover {
    text-decoration: underline;
}

.admin-contact-message {
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface);
    overflow: hidden;
}

.admin-contact-message-header {
    display: grid;
    grid-template-columns: 1.5fr 1fr auto;
    gap: 1.5rem;
    padding: 1.25rem;
    border-bottom: 1px solid var(--line);
}

.admin-contact-message-header > div {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.admin-contact-message-label {
    color: var(--muted);
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.admin-contact-message-body {
    min-height: 180px;
    padding: 1.5rem;
    white-space: pre-wrap;
    line-height: 1.65;
}

.admin-contact-message-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: .9rem;
}

.admin-contact-email-error {
    width: 100%;
}

@media (max-width: 750px) {
    .admin-contact-settings-grid,
    .admin-contact-message-header {
        grid-template-columns: 1fr;
    }
}


/* ===== v1006 Public Contact Us ===== */

.contact-page {
    display: flex;
    justify-content: center;
    padding: 2.5rem 1rem 4rem;
}

.contact-card {
    width: 100%;
    max-width: 760px;
    padding: 1.75rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface);
}

.contact-card h1 {
    margin: .4rem 0 .6rem;
}

.contact-intro {
    margin: 0 0 1.5rem;
    color: var(--muted);
    line-height: 1.6;
}

.contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.contact-form-grid label {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    font-weight: 700;
}

.contact-form-grid input,
.contact-form-grid textarea {
    width: 100%;
    box-sizing: border-box;
}

.contact-form-full {
    grid-column: 1 / -1;
}

.contact-submit {
    display: inline-flex;
    margin-top: 1.25rem;
}

.contact-success {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.contact-success span {
    color: var(--muted);
}

.recomp-footer a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (max-width: 650px) {
    .contact-form-grid {
        grid-template-columns: 1fr;
    }

    .contact-form-full {
        grid-column: auto;
    }
}


/* ===== v1006 Admin Code Management Actions ===== */

.admin-code-actions form {
    margin: 0;
}

.admin-code-action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 76px;
    padding: .42rem .7rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
}

.admin-code-action-button:hover {
    filter: brightness(1.08);
}

.admin-code-action-danger {
    border-color: #b45353;
}

.admin-code-no-action {
    color: var(--muted);
}

.admin-code-error-message {
    margin-bottom: 1rem;
    padding: .8rem 1rem;
    border: 1px solid #b45353;
    border-radius: 10px;
    background: var(--surface);
    color: var(--ink);
}


/* ===== v1006 Promotion Detail ===== */

.admin-promo-detail-summary {
    margin-bottom: 2rem;
}

.admin-promo-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.admin-promo-detail-grid > div {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.admin-promo-detail-notes {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.admin-promo-detail-notes p {
    margin: .35rem 0 0;
    white-space: pre-wrap;
}

.admin-promo-detail-link {
    color: inherit;
    text-decoration: none;
}

.admin-promo-detail-link:hover {
    text-decoration: underline;
}

@media (max-width: 800px) {
    .admin-promo-detail-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 520px) {
    .admin-promo-detail-grid {
        grid-template-columns: 1fr;
    }
}


/* ===== v1006 Demo Analytics ===== */

.admin-demo-detail-cell {
    min-width: 150px;
}

.admin-demo-detail-cell strong,
.admin-demo-detail-cell span {
    display: block;
}

.admin-demo-detail-cell span {
    margin-top: .15rem;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.35;
}


/* ENGINE30_WORKOUT_BURN_COMPARE */
.dash-workout-burn-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin-top: .8rem;
}

.dash-workout-burn-grid > div {
    display: grid;
    gap: .12rem;
}

.dash-workout-burn-grid strong {
    font-size: 1.08rem;
    line-height: 1.2;
}

.dash-workout-burn-grid span {
    font-size: .82rem;
    opacity: .76;
}

.dash-workout-block.planned > h2,
.dash-workout-title {
    margin-top: .25rem;
    font-size: 1.45rem;
    line-height: 1.2;
    font-weight: 800;
}

.dash-workout-title-actual {
    font-size: 1.62rem;
    font-weight: 800;
}

@media (max-width: 650px) {
    .dash-workout-burn-grid {
        grid-template-columns: 1fr;
    }
}
/* /ENGINE30_WORKOUT_BURN_COMPARE */

/* ENGINE30_COACH_DAILY_BRIEF */
.dash-coach-brief-launch {
    margin-top: .9rem;
}

.dash-coach-brief-button {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    border-radius: 999px;
    font-weight: 800;
}

.dash-coach-brief-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.8rem;
    height: 1.8rem;
}

.dash-coach-brief-icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
    stroke: currentColor;
    stroke-width: 1.6;
}

body.coach-brief-open {
    overflow: hidden;
}

.dash-coach-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
}

.dash-coach-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.55);
}

.dash-coach-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(980px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    overflow: auto;
    margin: 1rem auto;
    padding: 1.25rem 1.25rem 1.5rem;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(0,0,0,.25);
}

.dash-coach-modal__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.dash-coach-modal__eyebrow,
.dash-coach-card__eyebrow {
    margin-bottom: .25rem;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    opacity: .7;
}

.dash-coach-modal__close {
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 900;
    padding: .35rem .5rem;
}

.dash-coach-brief-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 1rem;
}

.dash-coach-card {
    border: 1px solid rgba(0,0,0,.09);
    border-radius: 16px;
    padding: 1rem;
    background: #fff;
}

.dash-coach-card-actual {
    border-width: 2px;
}

.dash-coach-card__title {
    margin: 0 0 .35rem;
    font-size: 1.2rem;
    line-height: 1.25;
}

.dash-coach-card__meta,
.dash-coach-note {
    margin: .35rem 0 0;
}

.dash-coach-metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: .7rem;
    margin-top: .85rem;
}

.dash-coach-metric-grid > div {
    display: grid;
    gap: .12rem;
}

.dash-coach-metric-grid strong {
    font-size: 1.05rem;
    line-height: 1.2;
}

.dash-coach-metric-grid span {
    font-size: .82rem;
    opacity: .78;
}

html[data-theme="dark"] .dash-coach-modal__dialog,
html[data-theme="dark"] .dash-coach-card {
    background: #111827;
    border-color: #334155;
}

@media (max-width: 900px) {
    .dash-coach-brief-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 650px) {
    .dash-coach-metric-grid {
        grid-template-columns: 1fr;
    }
}
/* /ENGINE30_COACH_DAILY_BRIEF */

/* COACH_MARISOL_TODAY_DETAIL */
.dash-marisol-card {
    width: 100%;
    display: grid;
    grid-template-columns: 72px minmax(0,1fr) 28px;
    align-items: center;
    gap: .85rem;
    margin-top: 1rem;
    padding: .7rem .8rem;
    border: 1px solid rgba(109,40,217,.18);
    border-radius: 16px;
    background: linear-gradient(135deg,#faf7ff,#f4fbf7);
    text-align: left;
    cursor: pointer;
}

.dash-marisol-card:hover,
.dash-marisol-card:focus-visible {
    border-color: rgba(109,40,217,.48);
    box-shadow: 0 8px 24px rgba(109,40,217,.12);
}

.dash-marisol-card__portrait {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 3px 12px rgba(15,23,42,.16);
}

.dash-marisol-card__copy {
    display: grid;
    gap: .18rem;
    min-width: 0;
}

.dash-marisol-card__copy strong {
    font-size: 1.03rem;
}

.dash-marisol-card__copy span {
    font-size: .86rem;
    color: #64748b;
}

.dash-marisol-card__arrow {
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
}

.dash-marisol-card__arrow svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.coach-today-detail-open {
    overflow: hidden;
}

.coach-today-detail {
    position: fixed;
    inset: 0;
    z-index: 1800;
}

.coach-today-detail__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7,12,22,.74);
    backdrop-filter: blur(3px);
}

.coach-today-detail__shell {
    position: relative;
    z-index: 1;
    width: min(900px,calc(100vw - 2rem));
    height: min(92vh,1180px);
    margin: 4vh auto;
    border-radius: 18px;
    overflow: hidden;
    background: #0b1220;
    box-shadow: 0 24px 80px rgba(0,0,0,.45);
    transition: width .18s ease,height .18s ease,margin .18s ease,border-radius .18s ease;
}

.coach-today-detail__shell.is-expanded {
    width: 100vw;
    height: 100vh;
    margin: 0;
    border-radius: 0;
}

.coach-today-detail__controls {
    position: absolute;
    top: .75rem;
    right: .75rem;
    z-index: 3;
    display: flex;
    gap: .45rem;
}

.coach-today-detail__control {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 999px;
    background: rgba(10,18,32,.78);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0,0,0,.22);
}

.coach-today-detail__control:hover,
.coach-today-detail__control:focus-visible {
    background: rgba(18,30,52,.96);
    border-color: rgba(255,255,255,.7);
}

.coach-today-detail__control svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.coach-today-detail__content {
    width: 100%;
    height: 100%;
    overflow: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background: #0b1220;
}

.coach-today-detail__poster {
    display: block;
    width: auto;
    max-width: 100%;
    min-height: 100%;
    height: auto;
    margin: 0 auto;
}

.coach-today-detail__shell.is-expanded .coach-today-detail__poster {
    max-width: min(100%,1122px);
    min-height: 0;
}

html[data-theme="dark"] .dash-marisol-card {
    background: linear-gradient(135deg,#171329,#10201a);
    border-color: #334155;
}

html[data-theme="dark"] .dash-marisol-card__copy span {
    color: #cbd5e1;
}

/* Hide the older text-only Coach Daily Brief launcher when present.
   The Marisol portrait is now the single Coach detail entry point. */
.dash-coach-brief-launch {
    display: none !important;
}

@media (max-width:700px) {
    .dash-marisol-card {
        grid-template-columns: 58px minmax(0,1fr) 24px;
    }

    .dash-marisol-card__portrait {
        width: 58px;
        height: 58px;
    }

    .coach-today-detail__shell {
        width: 100vw;
        height: 100vh;
        margin: 0;
        border-radius: 0;
    }

    .coach-today-detail__controls {
        top: .5rem;
        right: .5rem;
    }
}
/* /COACH_MARISOL_TODAY_DETAIL */

/* COACH_WORKOUT_RESOLVER */
.dash-marisol-card--tomorrow {
    margin-top: .85rem;
}

.dash-tomorrow-panel .dash-marisol-card {
    background: linear-gradient(135deg,#faf7ff,#f8fbff);
}

html[data-theme="dark"] .dash-tomorrow-panel .dash-marisol-card {
    background: linear-gradient(135deg,#171329,#101927);
}
/* /COACH_WORKOUT_RESOLVER */


/* COACH_GUIDE_CARD_VARIANTS_V2 */
.dash-coach-guide-card {
    position: relative;
    width: 100%;
    display: grid;
    grid-template-columns: 72px minmax(0,1fr) 28px;
    align-items: center;
    gap: .85rem;
    margin-top: 1rem;
    padding: .7rem .8rem;
    border: 1px solid rgba(109,40,217,.18);
    border-radius: 16px;
    background: linear-gradient(135deg,#faf7ff,#f4fbf7);
    text-align: left;
    cursor: pointer;
}

.dash-coach-guide-card:hover,
.dash-coach-guide-card:focus-visible {
    border-color: rgba(109,40,217,.48);
    box-shadow: 0 8px 24px rgba(109,40,217,.12);
}

.dash-coach-guide-card__portrait {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 3px 12px rgba(15,23,42,.16);
}

.dash-coach-guide-card__copy {
    display: grid;
    gap: .18rem;
    min-width: 0;
}

.dash-coach-guide-card__copy strong {
    font-size: 1.03rem;
}

.dash-coach-guide-card__copy span {
    font-size: .86rem;
    color: #64748b;
}

.dash-coach-guide-card__arrow {
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
}

.dash-coach-guide-card__arrow svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Left: portrait at left, standard reading flow. */
.dash-coach-guide-card--left .dash-coach-guide-card__portrait {
    grid-column: 1;
}

/* Right: move the coach portrait to the other side for visual variety. */
.dash-coach-guide-card--right {
    grid-template-columns: minmax(0,1fr) 72px 28px;
}

.dash-coach-guide-card--right .dash-coach-guide-card__copy {
    grid-column: 1;
    grid-row: 1;
}

.dash-coach-guide-card--right .dash-coach-guide-card__portrait {
    grid-column: 2;
    grid-row: 1;
}

.dash-coach-guide-card--right .dash-coach-guide-card__arrow {
    grid-column: 3;
    grid-row: 1;
}

/* Center: coach centered above copy for a third position. */
.dash-coach-guide-card--center {
    grid-template-columns: minmax(0,1fr) 28px;
    grid-template-rows: auto auto;
    text-align: center;
}

.dash-coach-guide-card--center .dash-coach-guide-card__portrait {
    grid-column: 1 / 3;
    grid-row: 1;
    justify-self: center;
}

.dash-coach-guide-card--center .dash-coach-guide-card__copy {
    grid-column: 1;
    grid-row: 2;
}

.dash-coach-guide-card--center .dash-coach-guide-card__arrow {
    grid-column: 2;
    grid-row: 2;
}

.dash-coach-guide-card--tomorrow {
    margin-top: .85rem;
}

html[data-theme="dark"] .dash-coach-guide-card {
    background: linear-gradient(135deg,#171329,#10201a);
    border-color: #334155;
}

html[data-theme="dark"] .dash-coach-guide-card__copy span {
    color: #cbd5e1;
}

/* Retire the earlier coach-specific class without breaking any stale markup. */
.dash-marisol-card,
.dash-merisol-card {
    display: none;
}

@media (max-width:700px) {
    .dash-coach-guide-card,
    .dash-coach-guide-card--right {
        grid-template-columns: 58px minmax(0,1fr) 24px;
        text-align: left;
    }

    .dash-coach-guide-card--right .dash-coach-guide-card__portrait,
    .dash-coach-guide-card--center .dash-coach-guide-card__portrait {
        grid-column: 1;
        grid-row: 1;
        justify-self: auto;
    }

    .dash-coach-guide-card--right .dash-coach-guide-card__copy,
    .dash-coach-guide-card--center .dash-coach-guide-card__copy {
        grid-column: 2;
        grid-row: 1;
    }

    .dash-coach-guide-card--right .dash-coach-guide-card__arrow,
    .dash-coach-guide-card--center .dash-coach-guide-card__arrow {
        grid-column: 3;
        grid-row: 1;
    }

    .dash-coach-guide-card__portrait {
        width: 58px;
        height: 58px;
    }
}
/* /COACH_GUIDE_CARD_VARIANTS_V2 */

/* ============================================================
   V1009_DASHBOARD_ANALYSIS_V1
   Yesterday + Trend coaching analysis
   ============================================================ */

.dash-analysis-grid {
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
    gap:18px;
    align-items:start;
}

.dash-analysis-card {
    border:1px solid #dbe3ef;
    border-radius:14px;
    background:#ffffff;
    padding:20px;
    min-width:0;
}

.dash-analysis-card-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    margin-bottom:14px;
}

.dash-analysis-card-head h3 {
    margin:4px 0 0;
    font-size:1.28rem;
}

.dash-analysis-workout {
    color:#64748b;
    font-size:.82rem;
    text-align:right;
    max-width:48%;
}

.dash-analysis-signal-list {
    border-top:1px solid #e5eaf2;
}

.dash-analysis-signal {
    display:grid;
    grid-template-columns:14px minmax(0,1fr) auto;
    gap:10px;
    align-items:start;
    padding:11px 0;
    border-bottom:1px solid #e5eaf2;
}

.dash-analysis-signal > div {
    min-width:0;
}

.dash-analysis-signal strong,
.dash-analysis-signal span {
    display:block;
}

.dash-analysis-signal span:not(.dash-analysis-dot) {
    color:#64748b;
    font-size:.77rem;
    margin-top:2px;
}

.dash-analysis-signal > b {
    text-align:right;
    white-space:nowrap;
    font-size:.9rem;
}

.dash-analysis-dot {
    display:inline-block !important;
    width:11px;
    height:11px;
    min-width:11px;
    border-radius:999px;
    margin-top:4px;
    vertical-align:middle;
    box-shadow:0 0 0 2px rgba(15,23,42,.04);
}

.dash-analysis-dot.green { background:#22c55e; }
.dash-analysis-dot.yellow { background:#eab308; }
.dash-analysis-dot.orange { background:#f97316; }
.dash-analysis-dot.red { background:#ef4444; }
.dash-analysis-dot.gray { background:#94a3b8; }

.dash-analysis-kudos {
    margin-top:14px;
    border:1px solid #bbf7d0;
    background:#f0fdf4;
    color:#166534;
    border-radius:10px;
    padding:12px 14px;
}

.dash-analysis-kudos strong,
.dash-analysis-kudos span {
    display:block;
}

.dash-analysis-kudos span {
    margin-top:3px;
    font-size:.86rem;
}

.dash-analysis-narrative {
    margin-top:14px;
    border-left:4px solid #3b82f6;
    background:#f8fafc;
    border-radius:9px;
    padding:13px 15px;
}

.dash-analysis-narrative p,
.dash-analysis-quality p {
    margin:5px 0 0;
}

.dash-analysis-scale-prompt,
.dash-analysis-quality {
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin-top:14px;
    border:1px dashed #94a3b8;
    border-radius:10px;
    padding:12px 14px;
}

.dash-analysis-scale-prompt strong,
.dash-analysis-scale-prompt span {
    display:block;
}

.dash-analysis-scale-prompt span:not(.dash-analysis-dot) {
    color:#64748b;
    font-size:.8rem;
    margin-top:3px;
}

.dash-analysis-scale-strip {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-top:14px;
}

.dash-analysis-scale-strip > div {
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:9px;
    padding:10px;
}

.dash-analysis-scale-strip strong,
.dash-analysis-scale-strip span {
    display:block;
}

.dash-analysis-scale-strip strong {
    font-size:1.05rem;
}

.dash-analysis-scale-strip span {
    color:#64748b;
    font-size:.72rem;
    margin-top:2px;
}

.dash-analysis-quality {
    border-style:solid;
    background:#fffaf0;
    border-color:#f3d6a2;
}

.dash-analysis-quality > div {
    min-width:0;
}

.dash-analysis-quality p {
    color:#475569;
    font-size:.83rem;
}

.dash-analysis-take {
    margin-top:14px;
    border-radius:10px;
    padding:12px 14px;
    background:#ecfdf5;
    color:#166534;
}

.dash-analysis-take strong,
.dash-analysis-take span {
    display:block;
}

.dash-analysis-take span {
    margin-top:3px;
    font-size:.86rem;
}

.dash-analysis-details {
    margin-top:14px;
}

.dash-analysis-legend {
    display:flex;
    flex-wrap:wrap;
    gap:8px 14px;
}

.dash-analysis-legend > span {
    white-space:nowrap;
}

.dash-analysis-legend .dash-analysis-dot {
    margin-right:4px;
}

html[data-theme="dark"] .dash-analysis-card {
    background:#111827;
    border-color:#334155;
}

html[data-theme="dark"] .dash-analysis-signal-list,
html[data-theme="dark"] .dash-analysis-signal {
    border-color:#263449;
}

html[data-theme="dark"] .dash-analysis-workout,
html[data-theme="dark"] .dash-analysis-signal span:not(.dash-analysis-dot),
html[data-theme="dark"] .dash-analysis-scale-prompt span:not(.dash-analysis-dot),
html[data-theme="dark"] .dash-analysis-quality p {
    color:#9fb1c9;
}

html[data-theme="dark"] .dash-analysis-narrative,
html[data-theme="dark"] .dash-analysis-scale-strip > div {
    background:#0d1727;
    border-color:#2b3b52;
}

html[data-theme="dark"] .dash-analysis-kudos {
    background:#103126;
    border-color:#236447;
    color:#8af0b8;
}

html[data-theme="dark"] .dash-analysis-quality {
    background:#241d13;
    border-color:#66552c;
}

html[data-theme="dark"] .dash-analysis-take {
    background:#103126;
    color:#8af0b8;
}

@media (max-width:1050px) {
    .dash-analysis-grid {
        grid-template-columns:1fr;
    }
}

@media (max-width:620px) {
    .dash-analysis-signal {
        grid-template-columns:14px minmax(0,1fr);
    }

    .dash-analysis-signal > b {
        grid-column:2;
        text-align:left;
    }

    .dash-analysis-scale-strip {
        grid-template-columns:1fr;
    }

    .dash-analysis-workout {
        max-width:52%;
    }
}
/* ============================================================
   V1009_SCALE_INTERPRETATION_V1
   ============================================================ */

.dash-analysis-missing-scale-text {
    color:#ef4444 !important;
    font-weight:800 !important;
}

.dash-analysis-scale-explanation {
    margin-top:10px;
    border-left:4px solid #60a5fa;
    background:#eff6ff;
    border-radius:9px;
    padding:12px 14px;
}

.dash-analysis-scale-explanation strong {
    display:block;
}

.dash-analysis-scale-explanation p {
    margin:5px 0 0;
    font-size:.84rem;
    line-height:1.5;
    color:#334155;
}

html[data-theme="dark"] .dash-analysis-missing-scale-text {
    color:#ff6b6b !important;
}

html[data-theme="dark"] .dash-analysis-scale-explanation {
    background:#0d1b31;
    border-left-color:#60a5fa;
}

html[data-theme="dark"] .dash-analysis-scale-explanation p {
    color:#b5c5da;
}
/* ============================================================
   V1009_CLIENT_START_GUIDE_V1
   ============================================================ */

.client-start-guide,
.baseline-entry-guide {
    border:1px solid #d7e1ee;
    border-radius:16px;
    background:#ffffff;
    padding:22px;
    margin:0 0 20px;
}

.client-start-guide-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
}

.client-start-guide h2,
.baseline-entry-guide h3 {
    margin:4px 0 0;
}

.client-start-kicker {
    display:block;
    color:#64748b;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.client-start-evidence-link {
    white-space:nowrap;
    font-size:.84rem;
    font-weight:700;
}

.client-start-lead {
    max-width:900px;
    margin:14px 0;
    color:#475569;
    font-size:1rem;
}

.client-start-loop {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin:16px 0 18px;
}

.client-start-loop span {
    border:1px solid #cbd5e1;
    background:#f8fafc;
    border-radius:999px;
    padding:7px 12px;
    font-size:.84rem;
    font-weight:800;
}

.client-start-loop b {
    color:#64748b;
}

.client-start-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.client-start-grid > div,
.client-start-priorities > div {
    border:1px solid #e2e8f0;
    background:#f8fafc;
    border-radius:11px;
    padding:13px 14px;
}

.client-start-grid strong,
.client-start-priorities strong,
.client-start-priorities span {
    display:block;
}

.client-start-grid p {
    margin:4px 0 0;
    color:#64748b;
    font-size:.84rem;
    line-height:1.48;
}

.client-start-priorities {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:12px;
}

.client-start-priorities span {
    margin-top:4px;
    color:#64748b;
    font-size:.82rem;
    line-height:1.45;
}

.client-start-note {
    margin-top:14px;
    border-left:4px solid #22c55e;
    background:#f0fdf4;
    border-radius:9px;
    padding:12px 14px;
    color:#166534;
    font-size:.87rem;
}

.baseline-entry-guide p {
    color:#64748b;
    margin:8px 0 0;
    max-width:960px;
}

html[data-theme="dark"] .client-start-guide,
html[data-theme="dark"] .baseline-entry-guide {
    background:#111827;
    border-color:#334155;
}

html[data-theme="dark"] .client-start-lead,
html[data-theme="dark"] .baseline-entry-guide p,
html[data-theme="dark"] .client-start-grid p,
html[data-theme="dark"] .client-start-priorities span,
html[data-theme="dark"] .client-start-kicker {
    color:#9fb1c9;
}

html[data-theme="dark"] .client-start-loop span,
html[data-theme="dark"] .client-start-grid > div,
html[data-theme="dark"] .client-start-priorities > div {
    background:#0d1727;
    border-color:#2b3b52;
}

html[data-theme="dark"] .client-start-note {
    background:#103126;
    color:#8af0b8;
}

@media (max-width:850px) {
    .client-start-grid,
    .client-start-priorities {
        grid-template-columns:1fr;
    }

    .client-start-guide-head {
        flex-direction:column;
    }

    .client-start-evidence-link {
        white-space:normal;
    }
}

/* V1009_LEARNING_ONBOARDING_START */

.learn12wr-page {
    max-width:1100px;
    margin:0 auto;
    padding-bottom:36px;
}

.learn12wr-hero,
.learn12wr-section,
.learn12wr-daily,
.learn12wr-finish {
    background:#ffffff;
    border:1px solid #dbe4ef;
    border-radius:18px;
    margin:0 0 18px;
    padding:26px;
}

.learn12wr-hero {
    border-top:5px solid #2563eb;
}

.learn12wr-hero h1 {
    max-width:880px;
    margin:6px 0 12px;
    font-size:clamp(2rem,4vw,3.2rem);
    line-height:1.04;
}

.learn12wr-hero h1 strong {
    display:block;
    color:#2563eb;
}

.learn12wr-kicker {
    color:#64748b;
    font-size:.72rem;
    font-weight:850;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.learn12wr-hero-lead {
    max-width:900px;
    color:#475569;
    font-size:1.08rem;
    line-height:1.65;
}

.learn12wr-key {
    display:grid;
    gap:6px;
    margin-top:18px;
    padding:16px 18px;
    border-radius:12px;
    background:#eff6ff;
    border:1px solid #bfdbfe;
}

.learn12wr-key strong {
    color:#1d4ed8;
    font-size:1.05rem;
}

.learn12wr-key span {
    color:#334155;
    line-height:1.55;
}

.learn12wr-section {
    display:grid;
    grid-template-columns:54px 1fr;
    gap:18px;
}

.learn12wr-section-number {
    width:48px;
    height:48px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.15rem;
    font-weight:900;
    background:#0f172a;
    color:#ffffff;
}

.learn12wr-section h2,
.learn12wr-daily h2,
.learn12wr-finish h2 {
    margin:5px 0 12px;
    line-height:1.18;
}

.learn12wr-section p,
.learn12wr-daily p,
.learn12wr-finish p {
    color:#475569;
    line-height:1.62;
}

.learn12wr-callout,
.learn12wr-fuel-rule {
    margin:15px 0;
    padding:15px 17px;
    border-radius:12px;
}

.learn12wr-callout {
    background:#f0fdf4;
    border:1px solid #bbf7d0;
    color:#166534;
}

.learn12wr-fuel-rule {
    display:grid;
    gap:5px;
    background:#fff7ed;
    border:1px solid #fed7aa;
}

.learn12wr-fuel-rule strong {
    color:#c2410c;
}

.learn12wr-fuel-rule span {
    color:#7c2d12;
    line-height:1.5;
}

.learn12wr-goal-grid,
.learn12wr-daily-grid,
.learn12wr-example-grid {
    display:grid;
    gap:12px;
}

.learn12wr-goal-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin:16px 0;
}

.learn12wr-goal-grid article,
.learn12wr-daily-grid article {
    border:1px solid #e2e8f0;
    border-radius:13px;
    padding:16px;
    background:#f8fafc;
}

.learn12wr-goal-grid article strong {
    display:block;
    margin-bottom:5px;
}

.learn12wr-goal-grid article p,
.learn12wr-daily-grid article p {
    margin:5px 0;
    font-size:.9rem;
}

.learn12wr-daily-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-top:16px;
}

.learn12wr-daily-step {
    color:#2563eb;
    font-size:.68rem;
    font-weight:850;
    letter-spacing:.1em;
}

.learn12wr-daily-grid h3 {
    margin:4px 0 7px;
}

.learn12wr-cycle {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:20px;
}

.learn12wr-cycle span {
    background:#0f172a;
    color:#ffffff;
    border-radius:999px;
    padding:8px 13px;
    font-size:.82rem;
    font-weight:800;
}

.learn12wr-cycle b {
    color:#64748b;
}

.learn12wr-example-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:16px 0;
}

.learn12wr-example-grid > div {
    border:1px solid #e2e8f0;
    border-radius:11px;
    padding:13px 14px;
    background:#f8fafc;
}

.learn12wr-example-grid strong,
.learn12wr-example-grid span {
    display:block;
}

.learn12wr-example-grid span {
    margin-top:3px;
    color:#64748b;
    font-size:.86rem;
}

.learn12wr-finish {
    border-top:5px solid #22c55e;
}

.learn12wr-graduate {
    margin:18px 0;
    padding:18px;
    border-radius:13px;
    background:#f0fdf4;
    border:1px solid #bbf7d0;
}

.learn12wr-graduate > strong {
    display:block;
    color:#166534;
    font-size:1.08rem;
    margin-bottom:7px;
}

.learn12wr-graduate p {
    margin:7px 0;
    color:#166534;
}

.learn12wr-results-note {
    font-size:.83rem;
    color:#64748b !important;
}

.learn12wr-actions,
.learn12wr-link-row {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
}

.learn12wr-primary-button,
.learn12wr-secondary-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    border-radius:10px;
    padding:10px 16px;
    font-weight:800;
    text-decoration:none;
}

.learn12wr-primary-button {
    background:#2563eb;
    color:#ffffff;
    border:1px solid #2563eb;
}

.learn12wr-secondary-button {
    background:#ffffff;
    color:#1d4ed8;
    border:1px solid #93c5fd;
}

html[data-theme="dark"] .learn12wr-hero,
html[data-theme="dark"] .learn12wr-section,
html[data-theme="dark"] .learn12wr-daily,
html[data-theme="dark"] .learn12wr-finish {
    background:#111827;
    border-color:#334155;
}

html[data-theme="dark"] .learn12wr-hero-lead,
html[data-theme="dark"] .learn12wr-section p,
html[data-theme="dark"] .learn12wr-daily p,
html[data-theme="dark"] .learn12wr-finish p,
html[data-theme="dark"] .learn12wr-kicker {
    color:#b8c4d6;
}

html[data-theme="dark"] .learn12wr-key {
    background:#10233e;
    border-color:#274c77;
}

html[data-theme="dark"] .learn12wr-key span {
    color:#dbeafe;
}

html[data-theme="dark"] .learn12wr-callout,
html[data-theme="dark"] .learn12wr-graduate {
    background:#0f2f24;
    border-color:#236447;
    color:#a7f3d0;
}

html[data-theme="dark"] .learn12wr-graduate p {
    color:#a7f3d0;
}

html[data-theme="dark"] .learn12wr-fuel-rule {
    background:#302012;
    border-color:#7c4a18;
}

html[data-theme="dark"] .learn12wr-fuel-rule span {
    color:#fed7aa;
}

html[data-theme="dark"] .learn12wr-goal-grid article,
html[data-theme="dark"] .learn12wr-daily-grid article,
html[data-theme="dark"] .learn12wr-example-grid > div {
    background:#0d1727;
    border-color:#2b3b52;
}

html[data-theme="dark"] .learn12wr-secondary-button {
    background:#111827;
    color:#bfdbfe;
    border-color:#3b82f6;
}

@media (max-width:800px) {
    .learn12wr-section {
        grid-template-columns:1fr;
    }

    .learn12wr-goal-grid,
    .learn12wr-daily-grid,
    .learn12wr-example-grid {
        grid-template-columns:1fr;
    }

    .learn12wr-section-number {
        width:42px;
        height:42px;
    }
}

/* V1009_LEARNING_ONBOARDING_END */

/* V1009_RECOMP_TRACKING_VISUALS_START */

.learn12wr-visual-section {
    grid-template-columns:54px minmax(0,1fr) 190px;
    align-items:center;
}

.learn12wr-illustration {
    width:100%;
    max-width:190px;
    height:auto;
    border-radius:16px;
    border:1px solid #dbe4ef;
    background:#f8fafc;
}

.learn12wr-daily-card-visual {
    display:grid;
    grid-template-columns:minmax(0,1fr) 130px;
    gap:14px;
    align-items:center;
}

.learn12wr-card-illustration {
    width:100%;
    max-width:130px;
    height:auto;
    border-radius:12px;
    border:1px solid #dbe4ef;
    background:#f8fafc;
}

.learn12wr-recomp-emphasis {
    margin:16px 0;
    padding:17px 18px;
    border-radius:13px;
    background:#eefdf7;
    border:1px solid #a7f3d0;
}

.learn12wr-recomp-emphasis > strong {
    display:block;
    margin-bottom:6px;
    color:#047857;
    font-size:1.05rem;
}

.learn12wr-recomp-emphasis p {
    margin:0;
    color:#14532d;
}

.learn12wr-note {
    font-size:.84rem !important;
    color:#64748b !important;
}

html[data-theme="dark"] .learn12wr-illustration,
html[data-theme="dark"] .learn12wr-card-illustration {
    background:#0f172a;
    border-color:#334155;
}

html[data-theme="dark"] .learn12wr-recomp-emphasis {
    background:#0d2d24;
    border-color:#236447;
}

html[data-theme="dark"] .learn12wr-recomp-emphasis > strong,
html[data-theme="dark"] .learn12wr-recomp-emphasis p {
    color:#a7f3d0;
}

@media (max-width:850px) {
    .learn12wr-visual-section {
        grid-template-columns:1fr;
    }

    .learn12wr-illustration {
        max-width:220px;
        margin:0 auto;
    }

    .learn12wr-daily-card-visual {
        grid-template-columns:1fr;
    }

    .learn12wr-card-illustration {
        max-width:150px;
        margin:0 auto;
    }
}

/* V1009_RECOMP_TRACKING_VISUALS_END */

/* v1009 adaptive recommendation layer */
.dash-adaptive-card {
    display: grid;
    gap: 0.8rem;
}

.dash-adaptive-card p {
    margin: 0;
}

.dash-adaptive-workout {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.dash-adaptive-nutrition {
    display: grid;
    gap: 0.25rem;
}

.dash-adaptive-card small {
    opacity: 0.75;
}

/* Entry date controls: clear, tappable navigation on every entry surface. */
.app-adjacent-days {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .45rem;
    margin-top: .55rem;
}
.app-adjacent-days .app-day-nav-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.25rem;
    padding: .42rem .55rem;
    border: 1px solid #3974a0;
    border-radius: .6rem;
    background: #102a44;
    color: #e8f7ff;
    font-size: .79rem;
    font-weight: 800;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
}
.app-adjacent-days .app-day-nav-button:hover,
.app-adjacent-days .app-day-nav-button:focus-visible {
    border-color: #35d1e3;
    background: #1a4261;
    color: #fff;
}
.app-date-picker:has(.app-adjacent-days) { min-width: min(100%, 17.5rem); }
.app-date-picker input[type="date"],
.daily-entry-date-form input[type="date"] {
    font-size: 1.05rem;
    font-weight: 800;
    color: #0e7490;
}
.app-date-heading {
    font-size: 1.18rem;
    font-weight: 800;
    color: #0e7490;
}
.app-daily-entry-button { white-space: nowrap; }


/* ===== v1013 Weekly Plan primary-goal preview ===== */
.plan-goal-preview {
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);
    gap:18px;
    align-items:center;
    margin:16px 0 18px;
    padding:18px 20px;
    border:1px solid #cbd5e1;
    border-radius:16px;
    background:linear-gradient(135deg,#f8fbff,#f7faf8);
    box-shadow:0 4px 14px rgba(15,23,42,.06);
}

.plan-goal-preview.is-previewing {
    border-color:#2563eb;
    box-shadow:0 6px 20px rgba(37,99,235,.12);
}

.plan-goal-preview h2 {
    margin:.28rem 0 .48rem;
    font-size:1.12rem;
    line-height:1.35;
}

.plan-goal-preview p {
    margin:.35rem 0 0;
    color:#475569;
    line-height:1.48;
}

.plan-goal-engine-note {
    font-size:.82rem;
}

.plan-goal-preview-controls {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
}

.plan-goal-preview-form {
    display:grid;
    gap:6px;
}

.plan-goal-preview-form label {
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.035em;
    text-transform:uppercase;
    color:#334155;
}

.plan-goal-preview-form select {
    width:100%;
    min-height:44px;
    padding:.62rem .7rem;
    border:1px solid #94a3b8;
    border-radius:10px;
    background:#fff;
    color:#0f172a;
    font-weight:800;
}

.plan-goal-preview-actions {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
}

.plan-goal-preview-actions form {
    margin:0;
}

.plan-goal-current-pill {
    align-self:flex-start;
    display:inline-flex;
    padding:.38rem .62rem;
    border:1px solid #86efac;
    border-radius:999px;
    background:#f0fdf4;
    color:#166534;
    font-size:.74rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.05em;
}

@media (max-width: 860px) {
    .plan-goal-preview {
        grid-template-columns:1fr;
    }
}


/* ===== v1013 Weekly Plan closeout: hero + simulator outlook ===== */
.weekly-plan-hero-head {
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
    gap:20px;
    align-items:stretch;
}

.weekly-plan-hero-copy {
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-width:0;
}

.weekly-plan-hero-copy .week-nav {
    margin-top:16px;
}

.weekly-plan-hero-image {
    min-height:170px;
    overflow:hidden;
    border:1px solid #dbe3ea;
    border-radius:16px;
    background:#e2e8f0;
    box-shadow:0 6px 20px rgba(15,23,42,.08);
}

.weekly-plan-hero-image img {
    display:block;
    width:100%;
    height:100%;
    min-height:170px;
    object-fit:cover;
    object-position:center;
}

.plan-goal-title-row {
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.plan-goal-title-row h2 {
    flex:1 1 auto;
    min-width:0;
}

.plan-goal-info {
    flex:0 0 auto;
    margin-top:.26rem;
}

.plan-goal-outlook {
    grid-column:1 / -1;
    margin-top:2px;
    padding:14px 16px;
    border:1px solid #dbe3ea;
    border-radius:14px;
    background:rgba(255,255,255,.74);
}

.plan-goal-outlook-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}

.plan-goal-outlook-head strong {
    display:block;
    margin-top:3px;
    font-size:.98rem;
}

.plan-goal-outlook-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}

.plan-goal-outlook-grid > div {
    min-width:0;
    padding:10px 11px;
    border:1px solid #dbe3ea;
    border-radius:10px;
    background:#fff;
}

.plan-goal-outlook-grid span,
.plan-goal-outlook-grid strong {
    display:block;
}

.plan-goal-outlook-grid span {
    color:#64748b;
    font-size:.7rem;
    font-weight:850;
    letter-spacing:.035em;
    text-transform:uppercase;
}

.plan-goal-outlook-grid strong {
    margin-top:4px;
    color:#0f172a;
    font-size:.86rem;
    line-height:1.3;
}

.plan-goal-outlook-wide {
    grid-column:span 2;
}

.plan-goal-outlook > p {
    margin:10px 0 0 !important;
    font-size:.77rem;
    line-height:1.4;
}

@media (max-width:980px) {
    .weekly-plan-hero-head {
        grid-template-columns:1fr;
    }

    .weekly-plan-hero-image {
        min-height:150px;
        max-height:220px;
    }

    .plan-goal-outlook-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:600px) {
    .plan-goal-outlook-grid {
        grid-template-columns:1fr;
    }

    .plan-goal-outlook-wide {
        grid-column:auto;
    }

    .plan-goal-title-row {
        align-items:flex-start;
    }
}

.app-shell .app-quick-nav{flex-wrap:wrap;min-width:0}
