/* =====================================================
   BMI & Body Composition Calculator — style.css v2
   Dark Cyber Theme | Calculover
   ===================================================== */

/* ---------- RESET & BASE ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --bg-dark:     #050510;
    --bg-card:     rgba(255,255,255,0.03);
    --border:      rgba(255,255,255,0.08);
    --cyan:        #00f3ff;
    --purple:      #bc13fe;
    --text-main:   #e2e8f0;
    --text-dim:    #8888aa;
    --text-muted:  #555566;
    --radius:      16px;
    --radius-sm:   8px;
    --shadow:      0 4px 24px rgba(0,0,0,0.5);

    /* BMI category colours */
    --col-under:   #60a5fa;
    --col-normal:  #34d399;
    --col-over:    #fbbf24;
    --col-obese:   #fb7185;
}

html { scroll-behavior: smooth; }

body {
    font-family: 'Inter', sans-serif;
    background: var(--bg-dark);
    color: var(--text-main);
    min-height: 100vh;
    line-height: 1.6;
}


/* ---------- HERO ---------- */
.calculator-hero {
    text-align: center;
    padding: 52px 24px 24px;
}

.hero-breadcrumb {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-bottom: 12px;
}
.hero-breadcrumb a {
    color: var(--text-dim);
    text-decoration: none;
}
.hero-breadcrumb a:hover { color: var(--cyan); }

.page-title {
    font-size: clamp(1.6rem, 4vw, 2.6rem);
    font-weight: 800;
    background: linear-gradient(135deg, var(--cyan) 0%, var(--purple) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: 10px;
    line-height: 1.2;
}

.section-desc {
    color: var(--text-dim);
    font-size: 0.9rem;
    max-width: 680px;
    margin: 0 auto;
}

/* ---------- MAIN CONTAINER ---------- */
.main-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 20px 60px;
}

/* ---------- ACTION BAR ---------- */
.action-bar {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
    justify-content: flex-end;
}

.action-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-dim);
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

.action-btn:hover {
    border-color: var(--cyan);
    color: var(--cyan);
    background: rgba(0,243,255,0.05);
}

.action-btn--reset:hover {
    border-color: var(--col-obese);
    color: var(--col-obese);
    background: rgba(251,113,133,0.05);
}

/* ---------- TABS ---------- */
.tab-container {
    display: flex;
    gap: 4px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 4px;
    margin-bottom: 24px;
    width: fit-content;
    overflow-x: auto;
    max-width: 100%;
}

.tab-btn {
    padding: 8px 20px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--text-dim);
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
    flex-shrink: 0;
}

.tab-btn:hover { color: var(--text-main); }

.tab-btn.active {
    background: linear-gradient(135deg, rgba(0,243,255,0.15), rgba(188,19,254,0.15));
    color: var(--text-main);
    border: 1px solid rgba(0,243,255,0.25);
}

.tab-pane { animation: tabFadeIn 0.25s ease; }
.tab-pane.hidden { display: none; }

@keyframes tabFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---------- CARD BASE ---------- */
.bmi-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    box-shadow: var(--shadow);
}

.input-card {
    border-left: 3px solid var(--cyan);
}

.results-card {
    border-left: 3px solid var(--purple);
}

.card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 8px;
}

.card-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-main);
}

.card-section-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--cyan);
    margin-bottom: 16px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ---------- LAYOUT: OVERVIEW (2-col) ---------- */
.two-col-layout {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 20px;
    align-items: start;
}

/* ---------- UNIT TOGGLE PILLS ---------- */
.unit-toggle-pills {
    display: flex;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 3px;
    gap: 2px;
}

.unit-btn {
    padding: 5px 12px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--text-dim);
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.unit-btn.active {
    background: rgba(0,243,255,0.15);
    color: var(--cyan);
    border: 1px solid rgba(0,243,255,0.3);
}

/* ---------- INPUT GROUPS ---------- */
.input-group {
    margin-bottom: 16px;
}

.input-label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-dim);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.input-with-unit {
    display: flex;
    align-items: center;
    gap: 0;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    transition: border-color 0.2s;
}

.input-with-unit:focus-within {
    border-color: var(--cyan);
}

.input-with-unit input,
.stepper-row input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--text-main);
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    padding: 10px 12px;
    width: 100%;
}

.input-unit {
    padding: 0 12px;
    color: var(--text-dim);
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
    background: rgba(255,255,255,0.02);
    border-left: 1px solid var(--border);
    height: 100%;
    display: flex;
    align-items: center;
}

/* Merged height (ft + in) */
.merged-height {
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    transition: border-color 0.2s;
}

.merged-height:focus-within {
    border-color: var(--cyan);
}

.merged-height input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--text-main);
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    padding: 10px 10px;
    text-align: center;
    min-width: 0;
}

.merge-unit {
    color: var(--text-dim);
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0 4px;
    flex-shrink: 0;
}

/* Stepper row (weight) */
.stepper-row {
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    transition: border-color 0.2s;
}

.stepper-row:focus-within {
    border-color: var(--cyan);
}

.stepper-row input {
    text-align: center;
}

.step-btn {
    background: rgba(255,255,255,0.04);
    border: none;
    border-right: 1px solid var(--border);
    color: var(--text-dim);
    font-size: 1.1rem;
    padding: 0 14px;
    height: 44px;
    cursor: pointer;
    transition: all 0.15s;
    flex-shrink: 0;
}

.step-btn:last-of-type {
    border-right: none;
    border-left: 1px solid var(--border);
}

.step-btn:hover {
    background: rgba(0,243,255,0.1);
    color: var(--cyan);
}

/* ---------- CHIP ROWS ---------- */
.chip-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.chip {
    padding: 6px 14px;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: 20px;
    color: var(--text-dim);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}

.chip:hover {
    border-color: rgba(0,243,255,0.4);
    color: var(--text-main);
}

.chip.active {
    background: rgba(0,243,255,0.12);
    border-color: var(--cyan);
    color: var(--cyan);
}

/* ---------- OPTIONAL PANELS (TOGGLE) ---------- */
.toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
    margin-bottom: 4px;
}

.switch-toggle {
    position: relative;
    display: inline-block;
    width: 38px;
    height: 20px;
    cursor: pointer;
    flex-shrink: 0;
}

.switch-toggle input { opacity: 0; width: 0; height: 0; }

.switch-knob {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.1);
    border-radius: 20px;
    transition: background 0.3s;
}

.switch-knob::before {
    content: '';
    position: absolute;
    left: 2px;
    top: 2px;
    width: 16px;
    height: 16px;
    background: var(--text-dim);
    border-radius: 50%;
    transition: all 0.3s;
}

.switch-toggle input:checked + .switch-knob { background: rgba(0,243,255,0.3); }
.switch-toggle input:checked + .switch-knob::before {
    transform: translateX(18px);
    background: var(--cyan);
}

.optional-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.3s ease;
    opacity: 0;
}

.optional-panel.open {
    max-height: 240px;
    opacity: 1;
}

/* ---------- HEALTH SCORE RING (NEW) ---------- */
.health-score-wrap {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 16px;
    height: 100px;
}

.health-ring-svg {
    width: 200px;
    height: 90px;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}

.ring-track { transition: none; }
.ring-fill   { transition: stroke-dashoffset 0.8s cubic-bezier(0.4,0,0.2,1), stroke 0.5s ease; }

.health-score-center {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
}

.health-score-num {
    display: block;
    font-size: 2rem;
    font-weight: 800;
    color: var(--text-main);
    line-height: 1;
    letter-spacing: -1px;
    transition: color 0.4s;
}

.health-score-lbl {
    display: block;
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

/* ---------- CHILDREN BADGE (NEW) ---------- */
.children-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    background: rgba(251,191,36,0.15);
    border: 1px solid rgba(251,191,36,0.4);
    border-radius: 20px;
    color: #fbbf24;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.5px;
}

/* ---------- GAUGE CHART ---------- */
.gauge-wrapper {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    margin-bottom: 20px;
}

.gauge-overlay {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    pointer-events: none;
}

.gauge-bmi-number {
    font-size: 2.8rem;
    font-weight: 800;
    line-height: 1;
    color: #fff;
    letter-spacing: -1px;
    transition: color 0.4s;
}

.gauge-category {
    font-size: 0.85rem;
    font-weight: 700;
    margin-top: 4px;
    padding: 3px 12px;
    border-radius: 20px;
    display: inline-block;
    transition: all 0.4s;
}

/* ---------- SPECTRUM BAR ---------- */
.spectrum-visualizer {
    margin-bottom: 20px;
}

.spectrum-bar {
    position: relative;
    height: 10px;
    border-radius: 6px;
    overflow: visible;
    margin-bottom: 20px;
}

.spectrum-gradient {
    position: absolute;
    inset: 0;
    border-radius: 6px;
    background: linear-gradient(to right,
        var(--col-under) 0%,
        var(--col-under) 28.3%,
        var(--col-normal) 28.3%,
        var(--col-normal) 50%,
        var(--col-over) 50%,
        var(--col-over) 66.6%,
        var(--col-obese) 66.6%,
        var(--col-obese) 100%
    );
    opacity: 0.7;
}

.pill-indicator {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 14px;
    height: 14px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(255,255,255,0.3), 0 2px 8px rgba(0,0,0,0.6);
    transition: left 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
    z-index: 2;
}

.spec-tick {
    position: absolute;
    top: 16px;
    transform: translateX(-50%);
    font-size: 0.68rem;
    color: var(--text-muted);
    white-space: nowrap;
}

.spectrum-zone-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 28px;
}

.spectrum-zone-labels span {
    font-size: 0.7rem;
    color: var(--text-muted);
    text-align: center;
}

/* ---------- METRICS GRID (10 cards) ---------- */
.metrics-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.metric-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    transition: border-color 0.3s;
}

.metric-card:hover {
    border-color: rgba(255,255,255,0.15);
}

.metric-label {
    display: block;
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 4px;
}

.metric-value {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
}

/* Flash animation on recalc */
@keyframes flashPop {
    0%   { opacity: 0.5; transform: scale(0.97); }
    60%  { opacity: 1;   transform: scale(1.02); }
    100% { opacity: 1;   transform: scale(1); }
}

.flash-target.flash {
    animation: flashPop 0.35s ease;
}

/* ---------- PERCENTILE BADGE (children) ---------- */
.percentile-badge {
    background: rgba(251,191,36,0.1);
    border: 1px solid rgba(251,191,36,0.3);
    border-radius: var(--radius-sm);
    padding: 10px 14px;
    font-size: 0.88rem;
    color: #fbbf24;
    margin-bottom: 12px;
    text-align: center;
    font-weight: 600;
}

/* ---------- INSIGHT BAR ---------- */
.insight-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: rgba(0,243,255,0.04);
    border: 1px solid rgba(0,243,255,0.15);
    border-radius: var(--radius-sm);
    margin-bottom: 16px;
    font-size: 0.88rem;
    color: var(--text-dim);
}

.insight-icon { font-size: 1.1rem; flex-shrink: 0; }

/* ---------- ALERTS ---------- */
#alerts-container { display: flex; flex-direction: column; gap: 8px; }

.alert-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    border-radius: var(--radius-sm);
    font-size: 0.83rem;
    line-height: 1.5;
}

.alert-item--success {
    background: rgba(52,211,153,0.08);
    border: 1px solid rgba(52,211,153,0.25);
    color: #34d399;
}

.alert-item--warning {
    background: rgba(251,191,36,0.08);
    border: 1px solid rgba(251,191,36,0.25);
    color: #fbbf24;
}

.alert-item--danger {
    background: rgba(251,113,133,0.08);
    border: 1px solid rgba(251,113,133,0.25);
    color: #fb7185;
}

.alert-item--info {
    background: rgba(96,165,250,0.08);
    border: 1px solid rgba(96,165,250,0.25);
    color: #60a5fa;
}

.alert-icon { font-size: 1rem; flex-shrink: 0; margin-top: 1px; }

/* ---------- BODY COMPOSITION TAB ---------- */
.comp-layout {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.comp-stat-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

.comp-stat {
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    text-align: center;
}

.comp-stat-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 6px;
}

.comp-stat-value {
    display: block;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cyan);
}

.chart-container {
    position: relative;
    width: 100%;
    height: 180px;
}

.chart-container--tall { height: 260px; }

.chart-container--donut {
    width: 200px;
    height: 200px;
    flex-shrink: 0;
}

.chart-desc {
    font-size: 0.82rem;
    color: var(--text-muted);
    margin-bottom: 12px;
}

.comp-callout, .pop-note {
    font-size: 0.8rem;
    color: var(--text-muted);
    padding: 10px 0;
    border-top: 1px solid var(--border);
    margin-top: 12px;
}

.pop-layout {
    display: flex;
    gap: 24px;
    align-items: center;
    flex-wrap: wrap;
}

.pop-legend {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pop-legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    color: var(--text-dim);
}

.pop-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* ---------- BF% METHOD COMPARISON (NEW) ---------- */
.bf-compare-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 8px;
}

.bf-method-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 14px;
    text-align: center;
}

.bf-method-header {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    margin-bottom: 10px;
}

.bf-method-value {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--cyan);
    line-height: 1;
    margin-bottom: 6px;
}

.bf-method-rating {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-dim);
    margin-bottom: 8px;
}

.bf-method-note {
    font-size: 0.68rem;
    color: var(--text-muted);
    border-top: 1px solid var(--border);
    padding-top: 6px;
    margin-top: 6px;
}

/* ---------- BODY SHAPE (NEW) ---------- */
.body-shape-layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.body-shape-visual {
    flex-shrink: 0;
    width: 80px;
}

.body-shape-svg {
    width: 80px;
    height: 120px;
    color: var(--cyan);
    filter: drop-shadow(0 0 8px rgba(0,243,255,0.4));
    transition: color 0.4s ease;
}

/* Apple shape — wider waist */
.body-shape-svg.shape-apple { color: #fb7185; }
/* Pear shape — wider hips */
.body-shape-svg.shape-pear  { color: #60a5fa; }
/* Rectangle — uniform */
.body-shape-svg.shape-rectangle { color: #34d399; }
/* Oval — wide middle, narrow ends */
.body-shape-svg.shape-oval  { color: #fbbf24; }

.body-shape-info {
    flex: 1;
}

.body-shape-label-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.body-shape-shape {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--text-main);
}

.whr-pill {
    display: inline-block;
    padding: 3px 10px;
    background: rgba(0,243,255,0.1);
    border: 1px solid rgba(0,243,255,0.25);
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--cyan);
}

.body-shape-desc {
    font-size: 0.84rem;
    color: var(--text-dim);
    line-height: 1.6;
    margin-bottom: 12px;
}

.shape-legend {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.shape-tag {
    font-size: 0.72rem;
    padding: 3px 8px;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: 12px;
    color: var(--text-muted);
}

/* ---------- IDEAL WEIGHT TABLE ---------- */
.ibw-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.ibw-table th, .ibw-table td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--border);
    text-align: left;
}

.ibw-table th {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
}

.ibw-table td { color: var(--text-dim); }

.ibw-table tr:last-child td { border-bottom: none; }

/* ---------- GOALS TAB ---------- */
.goals-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
}

.goal-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 6px;
    border-radius: 3px;
    background: var(--border);
    outline: none;
    cursor: pointer;
    margin-bottom: 4px;
}

.goal-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--cyan);
    box-shadow: 0 0 0 3px rgba(0,243,255,0.2);
    cursor: pointer;
}

.goal-weight-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.goal-weight-row input[type="number"] {
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-main);
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    padding: 8px 12px;
    width: 100px;
    outline: none;
    transition: border-color 0.2s;
}

.goal-weight-row input[type="number"]:focus { border-color: var(--cyan); }

.goal-bmi-preview {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    background: rgba(188,19,254,0.06);
    border: 1px solid rgba(188,19,254,0.2);
    border-radius: var(--radius-sm);
    margin: 16px 0;
}

.goal-preview-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.goal-preview-value {
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--purple);
    line-height: 1;
}

.goal-preview-cat {
    font-size: 0.78rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 12px;
    background: rgba(255,255,255,0.06);
    color: var(--text-dim);
}

.goal-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 20px;
}

.goal-stat {
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 12px 14px;
}

.goal-stat-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 4px;
}

.goal-stat-value {
    display: block;
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--cyan);
}

/* Exercise equivalents strip */
.goal-exercise-strip {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.ex-chip {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 10px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    color: var(--text-dim);
}

/* Zone-segmented progress bar (NEW) */
.goal-progress-section { margin-bottom: 16px; }

.goal-progress-labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.goal-progress-zone-bar {
    position: relative;
    display: flex;
    height: 10px;
    border-radius: 6px;
    overflow: visible;
    margin-bottom: 6px;
}

.gpz-under  { background: var(--col-under);  border-radius: 6px 0 0 6px; }
.gpz-normal { background: var(--col-normal); }
.gpz-over   { background: var(--col-over); }
.gpz-obese  { background: var(--col-obese);  border-radius: 0 6px 6px 0; }

.gpz-marker-current, .gpz-marker-target {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 14px;
    height: 14px;
    border-radius: 50%;
    z-index: 2;
    transition: left 0.5s ease;
    box-shadow: 0 0 0 3px rgba(255,255,255,0.2);
}

.gpz-marker-current {
    background: #fff;
}

.gpz-marker-target {
    background: transparent;
    border: 2.5px dashed #fff;
}

.gpz-labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.65rem;
    color: var(--text-muted);
    margin-top: 4px;
}

.goal-callout {
    font-size: 0.8rem;
    color: var(--text-muted);
    padding: 10px 0;
    border-top: 1px solid var(--border);
    margin-bottom: 16px;
}

.cta-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: linear-gradient(135deg, rgba(0,243,255,0.1), rgba(188,19,254,0.1));
    border: 1px solid rgba(0,243,255,0.3);
    border-radius: var(--radius-sm);
    color: var(--cyan);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s;
}

.cta-link:hover {
    background: linear-gradient(135deg, rgba(0,243,255,0.15), rgba(188,19,254,0.15));
    border-color: var(--cyan);
    transform: translateY(-1px);
}

/* ---------- HISTORY (NEW) ---------- */
.history-log-btn {
    width: 100%;
    padding: 12px;
    background: rgba(0,243,255,0.08);
    border: 1px dashed rgba(0,243,255,0.3);
    border-radius: var(--radius-sm);
    color: var(--cyan);
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    margin-bottom: 16px;
}

.history-log-btn:hover {
    background: rgba(0,243,255,0.14);
    border-style: solid;
}

.history-empty-msg {
    text-align: center;
    color: var(--text-muted);
    font-size: 0.85rem;
    padding: 32px 0;
}

.history-table-wrap {
    overflow-x: auto;
    margin-bottom: 12px;
}

.history-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.history-table th, .history-table td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--border);
    text-align: left;
}

.history-table th {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
}

.history-table td { color: var(--text-dim); }

.history-table tbody tr:hover { background: rgba(255,255,255,0.02); }

.history-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding-top: 8px;
    border-top: 1px solid var(--border);
}

/* ---------- HEALTH RISKS TAB (NEW) ---------- */
.risk-disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 18px;
    background: rgba(96,165,250,0.06);
    border: 1px solid rgba(96,165,250,0.2);
    border-radius: var(--radius-sm);
    font-size: 0.84rem;
    color: var(--text-dim);
    margin-bottom: 28px;
    line-height: 1.6;
}

.risk-disclaimer span {
    font-size: 1.3rem;
    flex-shrink: 0;
}

.risks-section-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 16px;
}

.risk-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 20px;
}

.risk-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 16px;
    transition: border-color 0.25s;
}

.risk-card:hover { border-color: rgba(255,255,255,0.15); }

.risk-card-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.risk-card-icon { font-size: 1.2rem; flex-shrink: 0; }

.risk-card-name {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-main);
    flex: 1;
}

.risk-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    border: 1px solid currentColor;
    flex-shrink: 0;
    color: var(--text-muted);
    background: rgba(255,255,255,0.03);
}

.risk-badge.risk-low       { color: #34d399; background: rgba(52,211,153,0.1); }
.risk-badge.risk-moderate  { color: #fbbf24; background: rgba(251,191,36,0.1); }
.risk-badge.risk-high      { color: #f97316; background: rgba(249,115,22,0.1); }
.risk-badge.risk-very-high { color: #fb7185; background: rgba(251,113,133,0.1); }

.risk-card-desc {
    font-size: 0.8rem;
    color: var(--text-muted);
    line-height: 1.6;
}

/* ---------- ABSI & BRI (NEW) ---------- */
.absi-bri-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.absi-header { margin-bottom: 14px; }

.absi-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 4px;
}

.absi-subtitle {
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--text-muted);
}

.absi-desc {
    font-size: 0.78rem;
    color: var(--text-muted);
    line-height: 1.5;
}

.absi-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.absi-stat {
    flex: 1;
    min-width: 80px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
}

.absi-stat-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.absi-stat-val {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    color: var(--cyan);
}

/* BRI scale */
.bri-scale {
    margin-top: 14px;
}

.bri-bar {
    display: flex;
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 4px;
}

.bri-zone {
    flex: 1;
    font-size: 0;
}

.bri-lean    { background: #60a5fa; }
.bri-healthy { background: #34d399; }
.bri-excess  { background: #fbbf24; }
.bri-high    { background: #fb7185; flex: 3; }

.bri-scale-labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.65rem;
    color: var(--text-muted);
    margin-top: 2px;
}

/* ---------- ACTION PLAN (NEW) ---------- */
.action-plan-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.action-plan-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    background: rgba(0,243,255,0.04);
    border: 1px solid rgba(0,243,255,0.12);
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    color: var(--text-dim);
    line-height: 1.6;
}

.action-plan-item::before {
    content: '→';
    color: var(--cyan);
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}

/* ---------- HOW IT WORKS ---------- */
.how-it-works-section {
    max-width: 1300px;
    margin: 0 auto;
    padding: 40px 20px;
}

.section-header-bar {
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 3px;
    color: var(--cyan);
    text-align: center;
    margin-bottom: 8px;
}

.onboarding-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 24px;
}

.onboarding-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    transition: border-color 0.25s, transform 0.25s;
}

.onboarding-card:hover {
    border-color: rgba(0,243,255,0.3);
    transform: translateY(-4px);
}

.step-num {
    font-size: 2rem;
    font-weight: 800;
    color: rgba(0,243,255,0.15);
    margin-bottom: 12px;
    font-variant-numeric: tabular-nums;
}

.onboarding-card h3 {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--cyan);
}

.onboarding-card p {
    font-size: 0.84rem;
    color: var(--text-dim);
    line-height: 1.6;
}

/* ---------- FORMULA SECTION ---------- */
.formula-section {
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 28px 0;
    margin-bottom: 0;
}

.formula-section-inner {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 20px;
}

.formula-pills-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
    justify-content: center;
}

.formula-pill-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 14px;
    background: rgba(0,243,255,0.05);
    border: 1px solid rgba(0,243,255,0.15);
    border-radius: var(--radius-sm);
    max-width: 260px;
}

.fp-name {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cyan);
}

.fp-formula {
    font-size: 0.75rem;
    color: var(--text-muted);
    font-family: 'Courier New', monospace;
    line-height: 1.4;
}

/* ---------- FAQ ---------- */
.faq-section {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 20px 60px;
}

.faq-header {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--text-main);
    text-align: center;
    margin-bottom: 8px;
}

.faq-divider {
    width: 40px;
    height: 2px;
    background: linear-gradient(90deg, var(--cyan), var(--purple));
    margin: 0 auto 24px;
    border-radius: 1px;
}

.faq-item {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    margin-bottom: 8px;
    overflow: hidden;
    transition: border-color 0.2s;
}

.faq-item:hover { border-color: rgba(0,243,255,0.2); }

.faq-item summary {
    padding: 14px 18px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary::after {
    content: '+';
    font-size: 1.2rem;
    color: var(--text-muted);
    transition: transform 0.2s;
    margin-left: 12px;
    flex-shrink: 0;
}

.faq-item[open] summary::after {
    content: '-';
    color: var(--cyan);
}

.faq-item p {
    padding: 0 18px 14px;
    font-size: 0.85rem;
    color: var(--text-dim);
    line-height: 1.7;
}

/* ---------- GLOSSARY ---------- */
.gloss-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.gloss-item {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 14px;
    font-size: 0.82rem;
    color: var(--text-dim);
    line-height: 1.5;
}

.gloss-item strong { color: var(--cyan); }

/* ---------- RELATED GRID ---------- */
.related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.related-card {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: border-color 0.2s, transform 0.2s;
}

.related-card:hover {
    border-color: rgba(0,243,255,0.3);
    transform: translateY(-3px);
}

.related-icon { font-size: 1.5rem; }
.related-name { font-size: 0.88rem; font-weight: 700; color: var(--text-main); }
.related-desc { font-size: 0.75rem; color: var(--text-muted); }

/* ---------- FOOTER ---------- */
.site-footer {
    background: rgba(255,255,255,0.02);
    border-top: 1px solid var(--border);
    padding: 28px 20px;
}

.footer-inner {
    max-width: 1300px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
    justify-content: space-between;
}

.footer-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 2px;
    color: var(--cyan);
}

.footer-logo { width: 22px; height: 22px; object-fit: contain; }

.footer-links {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.footer-links a {
    color: var(--text-dim);
    text-decoration: none;
    font-size: 0.82rem;
    transition: color 0.2s;
}

.footer-links a:hover { color: var(--cyan); }

.footer-note {
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* ---------- UTILITIES ---------- */
.hidden { display: none !important; }

/* ---------- PULSE (Normal BMI) ---------- */
@keyframes bmiGlow {
    0%, 100% { text-shadow: 0 0 12px rgba(52,211,153,0.4); }
    50%       { text-shadow: 0 0 24px rgba(52,211,153,0.8), 0 0 40px rgba(52,211,153,0.3); }
}

.gauge-bmi-number.pulse-normal {
    animation: bmiGlow 2.5s ease-in-out infinite;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1100px) {
    .two-col-layout { grid-template-columns: 300px 1fr; }
    .onboarding-grid { grid-template-columns: repeat(2, 1fr); }
    .metrics-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 900px) {
    .two-col-layout { grid-template-columns: minmax(0, 1fr);  overflow: hidden;}
    .metrics-grid { grid-template-columns: repeat(3, 1fr); }
    .goals-layout { grid-template-columns: minmax(0, 1fr);  overflow: hidden;}
    .comp-stat-row { grid-template-columns: repeat(2, 1fr); }
    .onboarding-grid { grid-template-columns: 1fr 1fr; }
    .risk-cards-grid { grid-template-columns: repeat(2, 1fr); }
    .absi-bri-grid { grid-template-columns: minmax(0, 1fr);  overflow: hidden;}
    .bf-compare-grid { grid-template-columns: minmax(0, 1fr);  overflow: hidden;}
    .gloss-grid { grid-template-columns: minmax(0, 1fr);  overflow: hidden;}
    .related-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    

    
    
    

    .action-bar { justify-content: flex-start; }
    .tab-container { width: 100%; }
    .tab-btn { flex: 1; padding: 8px 6px; font-size: 0.72rem; }
    .metrics-grid { grid-template-columns: repeat(2, 1fr); }
    .goal-stats-grid { grid-template-columns: 1fr 1fr; }
    .pop-layout { flex-direction: column; }
    .chart-container--donut { width: 160px; height: 160px; }
    .gauge-bmi-number { font-size: 2.2rem; }
    .comp-stat-row { grid-template-columns: 1fr 1fr; }
    .risk-cards-grid { grid-template-columns: minmax(0, 1fr);  overflow: hidden;}
    .body-shape-layout { flex-direction: column; }
    .related-grid { grid-template-columns: minmax(0, 1fr);  overflow: hidden;}
    .onboarding-grid { grid-template-columns: minmax(0, 1fr);  overflow: hidden;}
    .absi-stats { flex-direction: column; }
}

/* Toast notifications */
.toast { position:fixed; bottom:1.5rem; right:1.5rem; padding:.75rem 1.25rem; border-radius:8px; font-size:.875rem; z-index:9999; box-shadow:0 4px 12px rgba(0,0,0,.3); max-width:320px; color:#fff; animation: toastIn 0.3s ease; }
.toast-success { background: #00b4d8; }
.toast-warn { background: #f59e0b; }
.toast-error { background: #dc2626; }
@keyframes toastIn { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }

/* ── LIGHT MODE ───────────────────────────────────── */
[data-theme="light"] {
    --bg-card:    #FFFFFF;
    --bg-dark:    #E8EDF5;
    --border:     rgba(0,0,0,0.12);
    --cyan:       #0E7490;
    --purple:     #7C3AED;
    --text-dim:   #334155;
    --text-main:  #0F172A;
    --text-muted: #64748B;
    --shadow:     0 2px 12px rgba(0,0,0,0.08);
}

[data-theme="light"] body { background: #E8EDF5; }


[data-theme="light"] .bmi-card {
    background: #FFFFFF;
    border-color: rgba(0,0,0,0.12);
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

[data-theme="light"] .unit-toggle-pills,
[data-theme="light"] .chip,
[data-theme="light"] .tab-btn {
    background: #EDF2F9;
    border-color: rgba(0,0,0,0.1);
    color: #334155;
}

[data-theme="light"] .chip.active,
[data-theme="light"] .unit-btn.active,
[data-theme="light"] .tab-btn.active {
    background: #0E7490;
    color: #fff;
    border-color: #0E7490;
}

[data-theme="light"] .chip:hover { border-color: #0E7490; color: #0E7490; }

[data-theme="light"] .tab-container { background: #EDF2F9; border-color: rgba(0,0,0,0.1); }

[data-theme="light"] .input-with-unit,
[data-theme="light"] .merged-height,
[data-theme="light"] .stepper-row {
    background: #EDF2F9;
    border-color: rgba(0,0,0,0.12);
}

[data-theme="light"] .input-with-unit input,
[data-theme="light"] .merged-height input,
[data-theme="light"] .stepper-row input {
    color: #0F172A;
}

[data-theme="light"] .input-unit,
[data-theme="light"] .merge-unit { color: #64748B; background: #E2E8F0; border-color: rgba(0,0,0,0.1); }

[data-theme="light"] .step-btn {
    background: #E2E8F0;
    border-color: rgba(0,0,0,0.1);
    color: #334155;
}
[data-theme="light"] .step-btn:hover { background: #EFF9FB; color: #0E7490; }

[data-theme="light"] .switch-knob { background: rgba(0,0,0,0.1); }
[data-theme="light"] .switch-knob::before { background: #94A3B8; }
[data-theme="light"] .switch-toggle input:checked + .switch-knob { background: rgba(14,116,144,0.2); }
[data-theme="light"] .switch-toggle input:checked + .switch-knob::before { background: #0E7490; }

[data-theme="light"] .optional-panel p { color: #64748B; }

[data-theme="light"] .action-btn { background: #FFFFFF; border-color: rgba(0,0,0,0.15); color: #334155; }
[data-theme="light"] .action-btn:hover { background: #EFF9FB; border-color: #0E7490; color: #0E7490; }
[data-theme="light"] .action-btn--reset:hover { background: #FFF1F2; border-color: #fb7185; color: #e11d48; }

[data-theme="light"] .metric-card { background: #EDF2F9; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .metric-label { color: #64748B; }
[data-theme="light"] .metric-value { color: #0F172A; }

[data-theme="light"] .gauge-bmi-number { color: #0F172A; }
[data-theme="light"] .pill-indicator { background: #0F172A; }

[data-theme="light"] .insight-bar {
    background: #EFF9FB;
    border-color: rgba(14,116,144,0.25);
}

[data-theme="light"] .alert-item--success { background: #F0FDF4; border-color: rgba(52,211,153,0.4); color: #065F46; }
[data-theme="light"] .alert-item--warning { background: #FFFBEB; border-color: rgba(251,191,36,0.4); color: #92400E; }
[data-theme="light"] .alert-item--danger  { background: #FFF1F2; border-color: rgba(251,113,133,0.4); color: #9F1239; }
[data-theme="light"] .alert-item--info    { background: #EFF9FB; border-color: rgba(96,165,250,0.4); color: #1E40AF; }

[data-theme="light"] .comp-stat { background: #EDF2F9; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .comp-stat-value { color: #0E7490; }

[data-theme="light"] .bf-method-card { background: #EDF2F9; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .bf-method-value { color: #0E7490; }
[data-theme="light"] .bf-method-header { color: #64748B; }
[data-theme="light"] .bf-method-rating { color: #334155; }
[data-theme="light"] .bf-method-note { color: #64748B; border-color: rgba(0,0,0,0.08); }

[data-theme="light"] .body-shape-svg { color: #0E7490; filter: drop-shadow(0 0 6px rgba(14,116,144,0.3)); }
[data-theme="light"] .body-shape-svg.shape-apple { color: #e11d48; }
[data-theme="light"] .body-shape-svg.shape-pear  { color: #1D4ED8; }
[data-theme="light"] .body-shape-svg.shape-rectangle { color: #065F46; }
[data-theme="light"] .body-shape-svg.shape-oval  { color: #92400E; }

[data-theme="light"] .whr-pill { background: #EFF9FB; border-color: rgba(14,116,144,0.3); color: #0E7490; }
[data-theme="light"] .body-shape-desc { color: #334155; }
[data-theme="light"] .shape-tag { background: #EDF2F9; border-color: rgba(0,0,0,0.1); color: #64748B; }

[data-theme="light"] .ibw-table th { color: #64748B; }
[data-theme="light"] .ibw-table td { color: #334155; }
[data-theme="light"] .ibw-table th, .ibw-table td { border-color: rgba(0,0,0,0.08); }

[data-theme="light"] .goal-bmi-preview {
    background: rgba(124,58,237,0.05);
    border-color: rgba(124,58,237,0.2);
}
[data-theme="light"] .goal-preview-value { color: #7C3AED; }
[data-theme="light"] .goal-stat { background: #EDF2F9; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .goal-stat-value { color: #0E7490; }
[data-theme="light"] .goal-weight-row input[type="number"] {
    background: #EDF2F9;
    border-color: rgba(0,0,0,0.12);
    color: #0F172A;
}
[data-theme="light"] .goal-progress-labels { color: #64748B; }
[data-theme="light"] .gpz-labels { color: #64748B; }
[data-theme="light"] .gpz-marker-current,
[data-theme="light"] .gpz-marker-target { box-shadow: 0 0 0 3px rgba(0,0,0,0.12); }
[data-theme="light"] .gpz-marker-current { background: #0F172A; }
[data-theme="light"] .gpz-marker-target { border-color: #0F172A; }

[data-theme="light"] .ex-chip { background: #EDF2F9; border-color: rgba(0,0,0,0.1); color: #334155; }

[data-theme="light"] .history-log-btn {
    background: #EFF9FB;
    border-color: rgba(14,116,144,0.3);
    color: #0E7490;
}
[data-theme="light"] .history-log-btn:hover { background: rgba(14,116,144,0.1); }
[data-theme="light"] .history-empty-msg { color: #64748B; }
[data-theme="light"] .history-table th { color: #64748B; }
[data-theme="light"] .history-table td { color: #334155; }
[data-theme="light"] .history-table th,
[data-theme="light"] .history-table td { border-color: rgba(0,0,0,0.08); }
[data-theme="light"] .history-table tbody tr:hover { background: #F8FAFC; }
[data-theme="light"] .history-actions { border-color: rgba(0,0,0,0.08); }

[data-theme="light"] .risk-disclaimer { background: #EFF9FB; border-color: rgba(14,116,144,0.2); }
[data-theme="light"] .risk-card { background: #FFFFFF; border-color: rgba(0,0,0,0.12); box-shadow: 0 1px 4px rgba(0,0,0,0.05); }
[data-theme="light"] .risk-card-name { color: #0F172A; }
[data-theme="light"] .risk-card-desc { color: #64748B; }
[data-theme="light"] .risk-badge { color: #64748B; background: #EDF2F9; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .risk-badge.risk-low       { color: #065F46; background: #F0FDF4; }
[data-theme="light"] .risk-badge.risk-moderate  { color: #92400E; background: #FFFBEB; }
[data-theme="light"] .risk-badge.risk-high      { color: #9A3412; background: #FFF7ED; }
[data-theme="light"] .risk-badge.risk-very-high { color: #9F1239; background: #FFF1F2; }

[data-theme="light"] .absi-card,
[data-theme="light"] .bri-card { background: #FFFFFF; border-color: rgba(0,0,0,0.12); }
[data-theme="light"] .absi-title { color: #0F172A; }
[data-theme="light"] .absi-subtitle,
[data-theme="light"] .absi-desc { color: #64748B; }
[data-theme="light"] .absi-stat { background: #EDF2F9; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .absi-stat-val { color: #0E7490; }

[data-theme="light"] .action-plan-item {
    background: #EFF9FB;
    border-color: rgba(14,116,144,0.15);
    color: #334155;
}
[data-theme="light"] .action-plan-item::before { color: #0E7490; }
[data-theme="light"] .action-plan-card { background: #FFFFFF; }

[data-theme="light"] .onboarding-card { background: #FFFFFF; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .onboarding-card h3 { color: #0E7490; }
[data-theme="light"] .onboarding-card p { color: #334155; }
[data-theme="light"] .step-num { color: rgba(14,116,144,0.2); }

[data-theme="light"] .formula-section { border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .formula-pill-item { background: #EFF9FB; border-color: rgba(14,116,144,0.2); }
[data-theme="light"] .fp-name { color: #0E7490; }
[data-theme="light"] .fp-formula { color: #64748B; }

[data-theme="light"] .faq-item { background: #FFFFFF; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .faq-item summary { color: #0F172A; }
[data-theme="light"] .faq-item p { color: #334155; }
[data-theme="light"] .faq-item[open] summary::after { color: #0E7490; }

[data-theme="light"] .gloss-item { background: #FFFFFF; border-color: rgba(0,0,0,0.1); color: #334155; }
[data-theme="light"] .gloss-item strong { color: #0E7490; }

[data-theme="light"] .related-card { background: #FFFFFF; border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .related-name { color: #0F172A; }
[data-theme="light"] .related-desc { color: #64748B; }

[data-theme="light"] .site-footer { background: rgba(0,0,0,0.03); border-color: rgba(0,0,0,0.1); }
[data-theme="light"] .footer-brand { color: #0E7490; }
[data-theme="light"] .footer-links a { color: #334155; }
[data-theme="light"] .footer-links a:hover { color: #0E7490; }

[data-theme="light"] .children-badge {
    background: rgba(251,191,36,0.1);
    border-color: rgba(251,191,36,0.4);
    color: #92400E;
}

[data-theme="light"] .percentile-badge {
    background: #FFFBEB;
    border-color: rgba(251,191,36,0.4);
    color: #92400E;
}

[data-theme="light"] .cta-link { color: #0E7490; background: rgba(14,116,144,0.08); border-color: rgba(14,116,144,0.3); }
[data-theme="light"] .cta-link:hover { background: rgba(14,116,144,0.15); }

[data-theme="light"] .health-score-num { color: #0F172A; }
[data-theme="light"] .ring-track { stroke: rgba(0,0,0,0.08); }

[data-theme="light"] 