*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --navy: #11140F; --navy-mid: #181C14; --navy-light: #20251C; /* warm green-charcoal (dark editorial) */
  --teal: #46B07E; --teal-bright: #62C896; --teal-dim: rgba(70,176,126,0.12); --teal-dim2: rgba(70,176,126,0.06);
  --lilac: #46B07E; --lilac-dim: rgba(70,176,126,0.14); --lime: #D8A93E; --lime-dim: rgba(216,169,62,0.16);
  --slate: #9AA192; --light: #EDE8DA; --white: #EDE8DA; /* warm off-white */
  --gold: #D8A93E; --red-risk: #E08C6A; --amber-risk: #D8A93E; --green-risk: #62C896;
  --border: rgba(237,232,218,0.12); --border-glow: rgba(70,176,126,0.24); --radius: 16px;
  --bg: var(--navy); --surface: var(--navy-mid); --surface2: var(--navy-light);
  --text: var(--white); --text-sub: var(--slate);
  --nav-bg: #11140F; --input-bg: rgba(237,232,218,0.04);
  --chart-grid: rgba(237,232,218,0.08);
  --glass: #181C14;
  --glow-shadow: 0 1px 2px rgba(0,0,0,0.45), 0 12px 30px -12px rgba(0,0,0,0.55), inset 0 1px 0 rgba(237,232,218,0.05);
  --hover-shadow: 0 2px 4px rgba(0,0,0,0.4), 0 18px 40px -14px rgba(0,0,0,0.6);
  --donut-2: #7FD8AC;
  --teal-a20: rgba(70,176,126,0.20); --teal-a45: rgba(70,176,126,0.45);
  --gold-a10: rgba(216,169,62,0.10); --gold-a30: rgba(216,169,62,0.30);
  --input-border: rgba(237,232,218,0.20);
  --font-display: 'Fraunces', Georgia, serif; --font-body: 'DM Sans', sans-serif; --font-mono: 'DM Mono', monospace;
}
body.light-mode {
  --navy: #F6F1E7; --navy-mid: #FFFDF8; --navy-light: #EFE9DB;
  --slate: #6A6356; --white: #231C12; /* warm espresso ink (softer than cold black) */
  --teal: #237A52; --teal-bright: #2C8F63; /* emerald-forest accent (text/fills) */
  --lilac: #237A52; --lilac-dim: rgba(35,122,82,0.12); --lime: #C99A2E; --lime-dim: rgba(201,154,46,0.16);
  --gold: #C99A2E;
  --border: rgba(44,42,32,0.15); --border-glow: rgba(35,122,82,0.30);
  --bg: #F6F1E7; --surface: #FFFDF8; --surface2: #EFE9DB;
  --text: #231C12; --text-sub: #6A6356;
  --nav-bg: #F6F1E7; --input-bg: rgba(44,42,32,0.04);
  --chart-grid: rgba(44,42,32,0.10);
  --teal-dim: rgba(35,122,82,0.10); --teal-dim2: rgba(35,122,82,0.06);
  --glass: #FFFDF8;
  --glow-shadow: 0 1px 2px rgba(44,42,32,0.05), 0 12px 32px -14px rgba(44,42,32,0.15), inset 0 1px 0 rgba(255,255,255,0.65);
  --hover-shadow: 0 2px 4px rgba(44,42,32,0.06), 0 18px 44px -18px rgba(44,42,32,0.24);
  --donut-2: #5FB388;
  --teal-a20: rgba(35,122,82,0.16); --teal-a45: rgba(35,122,82,0.45);
  --gold-a10: rgba(201,154,46,0.10); --gold-a30: rgba(201,154,46,0.35);
  --input-border: rgba(44,42,32,0.24);
}
/* ── ICON SYSTEM (Lucide sprite: /icons.svg) ── */
.cci { width:1.05em; height:1.05em; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; vertical-align:-0.18em; display:inline-block; }

body { font-family:'DM Sans',sans-serif; background:var(--bg); color:var(--text); min-height:100vh; overflow-x:hidden; transition:background .3s, color .3s; }

/* ── DARK/LIGHT TOGGLE ── */
.theme-toggle { background:var(--surface); border:1px solid var(--border); border-radius:100px; padding:5px; display:flex; align-items:center; gap:2px; cursor:pointer; transition:all .2s; }
.theme-toggle-btn { width:28px; height:28px; border-radius:50%; border:none; background:none; cursor:pointer; color:var(--text-sub); display:flex; align-items:center; justify-content:center; transition:background .2s, color .2s; }
.theme-toggle-btn svg { display:block; }
.theme-toggle-btn.active { background:var(--teal); color:var(--bg); }
body.light-mode .theme-toggle { border-color:rgba(90,106,122,0.25); }

/* ── MODAL OVERLAY ── */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:1000; align-items:center; justify-content:center; backdrop-filter:blur(4px); }
.modal-overlay.open { display:flex; }
.modal { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:40px; width:100%; max-width:420px; position:relative; }
.modal h2 { font-family:var(--font-display); font-size:1.6rem; margin-bottom:8px; color:var(--text); }
.modal p { color:var(--text-sub); font-size:0.9rem; margin-bottom:28px; }
.modal-close { position:absolute; top:16px; right:20px; background:none; border:none; color:var(--text-sub); font-size:1.4rem; cursor:pointer; }
.modal-close:hover { color:var(--text); }
.modal-tabs { display:flex; gap:0; margin-bottom:28px; border-radius:8px; overflow:hidden; border:1px solid var(--border); }
.modal-tab { flex:1; background:none; border:none; color:var(--text-sub); padding:10px; font-family:'DM Sans',sans-serif; font-size:0.88rem; font-weight:600; cursor:pointer; transition:all .2s; }
.modal-tab.active { background:var(--teal); color:var(--navy); }
.modal-form { display:flex; flex-direction:column; gap:14px; }
.modal-form input { background:var(--input-bg); border:1px solid var(--border); color:var(--text); padding:12px 16px; border-radius:8px; font-family:'DM Sans',sans-serif; font-size:0.95rem; outline:none; transition:border-color .2s; }
.modal-form input:focus { border-color:var(--teal); }
.modal-form input::placeholder { color:var(--text-sub); }
.modal-submit { background:var(--teal); color:#04130E; border:none; padding:14px; border-radius:10px; font-family:'DM Sans',sans-serif; font-weight:700; font-size:1rem; cursor:pointer; transition:opacity .2s; margin-top:4px; }
.modal-submit:hover { opacity:.88; }
.modal-msg { font-size:0.82rem; color:var(--teal); text-align:center; margin-top:8px; min-height:18px; }
.modal-error { color:#E05252; }
.modal-divider { display:flex; align-items:center; gap:12px; color:var(--text-sub); font-size:0.8rem; margin:4px 0; }
.google-signin-btn { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; background:var(--surface); border:1.5px solid var(--input-border); color:var(--text); padding:12px; border-radius:10px; font-family:'DM Sans',sans-serif; font-size:0.95rem; font-weight:600; cursor:pointer; transition:border-color .2s, box-shadow .2s; }
.google-signin-btn:hover { border-color:var(--teal); box-shadow:0 0 0 3px var(--teal-dim2); }
.google-signin-btn svg { width:18px; height:18px; flex-shrink:0; }
.modal-divider::before,.modal-divider::after { content:''; flex:1; height:1px; background:var(--border); }

/* ── NAV ── */
nav { display:flex; align-items:center; justify-content:space-between; padding:20px 48px; border-bottom:1px solid var(--border); position:sticky; top:0; z-index:200; background:var(--nav-bg); backdrop-filter:blur(12px); transition:background .3s; }
.logo { font-family:var(--font-display); font-size:1.4rem; letter-spacing:-0.5px; cursor:pointer; color:var(--text); }
nav ul { list-style:none; display:flex; gap:32px; }
nav ul a { color:var(--text-sub); text-decoration:none; font-size:0.9rem; font-weight:500; transition:color .2s; }
nav ul a:hover { color:var(--text); }
.nav-right { display:flex; align-items:center; gap:12px; }
.nav-cta { background:var(--teal); color:#04130E; border:none; padding:10px 22px; border-radius:10px; font-weight:700; font-size:0.875rem; cursor:pointer; font-family:'DM Sans',sans-serif; transition:opacity .2s; }
.nav-cta:hover { opacity:.88; }
.nav-user { display:none; align-items:center; gap:10px; }
.nav-user.visible { display:flex; }
.user-avatar { width:34px; height:34px; border-radius:50%; background:var(--teal); color:#04130E; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.85rem; }
.user-name { font-size:0.88rem; font-weight:500; color:var(--text); }
.nav-signout { background:none; border:1px solid var(--border); color:var(--text-sub); padding:6px 14px; border-radius:6px; font-family:'DM Sans',sans-serif; font-size:0.8rem; cursor:pointer; transition:all .2s; }
.nav-signout:hover { border-color:var(--text-sub); color:var(--text); }

/* ── HERO ── */
.hero { padding:80px 48px 60px; text-align:center; position:relative; }
.hero-eyebrow { display:inline-block; font-size:0.78rem; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--teal); margin-bottom:20px; border:1px solid var(--border-glow); padding:6px 16px; border-radius:100px; }
.hero h1 { font-family:var(--font-display); font-size:clamp(2.4rem,5vw,4rem); font-weight:900; line-height:1.1; max-width:700px; margin:0 auto 16px; color:var(--text); }
.hero h1 em { color:var(--teal); font-style:normal; }
.hero p { color:var(--text-sub); font-size:1.05rem; max-width:520px; margin:0 auto 32px; line-height:1.65; }
.counter-dot { width:8px; height:8px; border-radius:50%; background:var(--teal); animation:pulse 1.4s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.8)} }
.counter-label { font-size:0.8rem; color:var(--text-sub); font-weight:500; }
.counter-value { font-family:'DM Mono',monospace; font-size:1.1rem; color:var(--teal); font-weight:500; }

/* ── ROTATING STAT CARDS ── */
.stat-cards-wrap { width:100%; max-width:860px; margin:0 auto; position:relative; }
.stat-cards-track { position:relative; min-height:220px; }
.stat-card {
  display:none;
  background:var(--navy-mid);
  border:1px solid var(--border-glow);
  border-radius:16px; padding:32px 36px;
  text-align:left; flex-direction:column;
  box-shadow:0 8px 40px rgba(0,0,0,0.3);
  animation:statFadeIn .4s ease;
}
.stat-card.active { display:flex; }
@keyframes statFadeIn {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:translateY(0); }
}
.stat-card-icon { width:40px; height:40px; border-radius:11px; background:var(--teal-dim); border:1px solid var(--border-glow); display:flex; align-items:center; justify-content:center; color:var(--teal); margin-bottom:12px; }
.stat-card-icon .cci { width:21px; height:21px; }
.stat-card-category {
  font-size:0.7rem; font-weight:700; letter-spacing:3px;
  text-transform:uppercase; color:var(--teal); margin-bottom:10px;
}
.stat-card-headline {
  font-family:var(--font-display); font-size:1.35rem;
  font-weight:700; line-height:1.25; margin-bottom:14px; color:var(--white);
}
.stat-card-body {
  font-size:0.88rem; color:var(--slate); line-height:1.7;
  margin-bottom:20px; flex:1;
}
.stat-card-body strong { color:var(--white); font-weight:600; }
.stat-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding-top:16px; border-top:1px solid var(--border); }
.stat-source { font-size:0.72rem; color:var(--slate); font-style:italic; flex:1; line-height:1.4; }
.stat-cta {
  background:var(--teal); color:var(--navy); border:none;
  padding:9px 18px; border-radius:8px; font-family:'DM Sans',sans-serif;
  font-weight:700; font-size:0.82rem; cursor:pointer; white-space:nowrap;
  transition:opacity .2s; flex-shrink:0;
}
.stat-cta:hover { opacity:.85; }
/* Controls */
.stat-controls { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:18px; }
.stat-arrow {
  background:var(--navy-mid); border:1px solid var(--border); color:var(--slate);
  width:44px; height:44px; border-radius:50%; font-size:1.3rem; cursor:pointer;
  transition:all .2s; display:flex; align-items:center; justify-content:center;
  line-height:1;
}
.stat-arrow:hover { border-color:var(--teal); color:var(--teal); }
.stat-dots { display:flex; gap:4px; align-items:center; }
.stat-dot {
  width:20px; height:20px; background:none; border:none; padding:0;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.stat-dot::before {
  content:''; width:7px; height:7px; border-radius:50%;
  background:var(--border); transition:all .3s;
}
.stat-dot.active::before { background:var(--teal); width:20px; border-radius:4px; }
/* Progress bar */
.stat-progress-bar {
  height:2px; background:var(--border); border-radius:2px;
  margin-bottom:14px; overflow:hidden;
}
.stat-progress-fill {
  height:100%; background:var(--teal); border-radius:2px;
  width:0%;
}
@media(max-width:768px){
  .stat-card { padding:24px 20px; }
  .stat-card-headline { font-size:1.1rem; }
  .tab-bar { grid-template-columns:repeat(auto-fit, minmax(70px, 1fr)); gap:5px; }
  .tab-btn { font-size:0.62rem; padding:8px 4px 7px; }
  .tab-icon { font-size:1.1rem; }
}

/* ── SAVED SCENARIOS BANNER ── */
.scenarios-banner { max-width:1100px; margin:0 auto 32px; padding:0 48px; display:none; }
.scenarios-banner.visible { display:block; }
.scenarios-inner { background:var(--teal-dim2); border:1px solid var(--border-glow); border-radius:12px; padding:20px 24px; }
.scenarios-inner h4 { font-size:0.75rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--teal); margin-bottom:14px; }
.scenarios-list { display:flex; gap:10px; flex-wrap:wrap; }
.scenario-chip { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:8px 14px; font-size:0.82rem; cursor:pointer; transition:all .2s; display:flex; align-items:center; gap:8px; color:var(--text); }
.scenario-chip:hover { border-color:var(--teal); color:var(--teal); }
.scenario-chip .chip-del { color:var(--text-sub); font-size:0.9rem; }
.scenario-chip .chip-del:hover { color:#E05252; }
.save-scenario-btn { display:inline-flex; align-items:center; gap:7px; background:var(--teal-dim); border:1px solid var(--border-glow); color:var(--teal); border-radius:10px; padding:10px 18px; font-size:0.85rem; font-weight:600; font-family:'DM Sans',sans-serif; cursor:pointer; transition:all .2s; }
.save-scenario-btn:hover { background:var(--teal-a20); border-color:var(--teal); }

/* ── CALCULATOR SECTION ── */
.calc-section { padding:0 48px 80px; max-width:1100px; margin:0 auto; }
.section-label { font-size:0.75rem; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--teal); margin-bottom:28px; }
.tab-bar { display:grid; grid-template-columns:repeat(auto-fit, minmax(86px, 1fr)); gap:6px; margin-bottom:28px; }
.tab-btn { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:var(--surface2); border:1px solid var(--border); color:var(--text-sub); font-family:'DM Sans',sans-serif; font-size:0.7rem; font-weight:500; padding:10px 6px 9px; cursor:pointer; white-space:normal; text-align:center; line-height:1.15; border-radius:10px; transition:color .2s, border-color .2s, background .2s; }
.tab-icon { font-size:1.3rem; line-height:1; }
.tab-label { display:block; }
.tab-btn:hover { color:var(--text); border-color:var(--text-sub); }
.tab-btn.active { color:var(--teal); border-color:var(--teal); background:var(--teal-dim); }
.calc-panel { display:none; }
.calc-panel.active { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.input-group { margin-bottom:14px; }
.input-group label { display:block; font-size:0.72rem; font-weight:600; color:var(--text-sub); letter-spacing:.3px; text-transform:uppercase; margin-bottom:7px; }
.input-group input, .input-group select { width:100%; background:var(--input-bg); border:1.5px solid var(--input-border); color:var(--text); padding:12px 14px; border-radius:8px; font-family:'DM Mono',monospace; font-size:1.02rem; font-weight:500; transition:border-color .2s, box-shadow .2s; outline:none; }
.input-group input:focus { border-color:var(--teal); }
.input-group select option { background:var(--surface); color:var(--text); }
.input-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.input-card { background:var(--surface2); border:1px solid var(--border); border-radius:var(--radius); padding:22px; }
.input-card h3 { font-size:0.74rem; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--text-sub); margin-bottom:16px; }

/* Result card */
.result-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:22px; }
.result-card h3 { font-size:0.74rem; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--text-sub); margin-bottom:14px; }
.result-main { font-family:var(--font-display); font-size:3rem; font-weight:700; color:var(--teal); margin-bottom:4px; line-height:1; }
.result-sub { color:var(--text-sub); font-size:0.82rem; margin-bottom:16px; }
.result-breakdown { border-top:1px solid var(--border); padding-top:14px; }
.breakdown-row { display:flex; justify-content:space-between; align-items:center; padding:6px 0; font-size:0.88rem; border-bottom:1px solid var(--border); }
.breakdown-row:last-child { border-bottom:none; }
.breakdown-row .b-label { color:var(--text-sub); }
.breakdown-row .b-val { font-family:'DM Mono',monospace; font-weight:500; color:var(--text); }
.breakdown-row .b-val.highlight { color:var(--teal); }

/* Chart area */
.chart-area { margin-top:24px; border-top:1px solid var(--border); padding-top:20px; }
.chart-area h4 { font-size:0.75rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--text-sub); margin-bottom:16px; }
.chart-wrap { position:relative; height:200px; }

/* Full-width result for annuity/retirement */
.result-full { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:32px; }

/* ── AUTO CALCULATOR EXTENDED ── */
.auto-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.auto-full { grid-column:1/-1; }
.auto-section-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:22px; }
.auto-card-title { font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--teal); margin-bottom:16px; display:flex; align-items:center; gap:6px; }
.auto-field { margin-bottom:14px; }
.auto-field:last-child { margin-bottom:0; }
.auto-field label { display:block; font-size:0.78rem; color:var(--text-sub); margin-bottom:5px; font-weight:500; text-transform:uppercase; letter-spacing:.4px; }
.input-wrap { position:relative; display:flex; align-items:center; }
.input-wrap .pfx,.input-wrap .sfx { position:absolute; font-size:0.875rem; color:var(--text-sub); pointer-events:none; font-weight:600; z-index:1; }
.input-wrap .pfx { left:11px; }
.input-wrap .sfx { right:11px; }
.input-wrap.has-pfx input { padding-left:28px !important; }
.input-wrap.has-sfx input { padding-right:28px !important; }
.auto-field input, .auto-field select { width:100%; background:var(--input-bg); border:1.5px solid var(--input-border); color:var(--text); padding:12px 12px; border-radius:8px; font-family:'DM Mono',monospace; font-size:1.02rem; font-weight:500; outline:none; transition:border-color .2s, box-shadow .2s; -moz-appearance:textfield; }
.auto-field input[type=number]::-webkit-inner-spin-button { -webkit-appearance:none; }
.auto-field input:focus, .auto-field select:focus { border-color:var(--teal); }
.auto-field select { font-family:'DM Sans',sans-serif; cursor:pointer; }
.auto-divider { border:none; border-top:1px solid var(--border); margin:14px 0; }
.auto-summary-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px; }
.auto-summary-item label { font-size:0.68rem; color:var(--teal); text-transform:uppercase; letter-spacing:.5px; margin-bottom:3px; font-weight:600; }
.auto-summary-val { font-family:var(--font-display); font-size:1.2rem; font-weight:700; color:var(--white); }
.auto-summary-val.big { font-size:1.6rem; color:var(--teal); }
.auto-summary-val.pos { color:#3EBF7A; }
.auto-summary-val.neg { color:#E05252; }
.info-pills { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.info-pill { background:rgba(136,153,170,0.08); border:1px solid var(--border); border-radius:20px; padding:4px 14px; font-size:0.75rem; color:var(--slate); }
.info-pill strong { color:var(--white); }
.info-pill strong.pos { color:#3EBF7A; }
/* Amort table */
.amort-controls { display:flex; align-items:flex-end; gap:16px; margin-bottom:16px; flex-wrap:wrap; }
.amort-toggle-btn { background:var(--teal); color:var(--navy); border:none; font-family:'DM Sans',sans-serif; font-size:0.8rem; font-weight:700; padding:9px 18px; border-radius:10px; cursor:pointer; white-space:nowrap; margin-left:auto; transition:opacity .2s; }
.amort-toggle-btn:hover { opacity:.85; }
.amort-table-wrap { overflow:auto; border-radius:8px; border:1px solid var(--border); max-height:400px; }
.amort-table-wrap table { width:100%; border-collapse:collapse; font-size:0.8rem; }
.amort-table-wrap thead th { background:var(--navy); color:var(--teal); font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.5px; padding:10px 12px; text-align:right; position:sticky; top:0; z-index:1; }
.amort-table-wrap thead th:first-child { text-align:center; }
.amort-table-wrap tbody tr { border-top:1px solid rgba(136,153,170,0.08); transition:background .1s; }
.amort-table-wrap tbody tr:hover { background:rgba(255,255,255,0.03); }
.amort-table-wrap tbody tr.annual-row { background:var(--teal-dim2); border-top:1px solid var(--border-glow); }
.amort-table-wrap tbody td { padding:8px 12px; text-align:right; color:var(--text); font-family:'DM Mono',monospace; font-size:0.78rem; }
.amort-table-wrap tbody td:first-child { text-align:center; color:var(--slate); font-family:'DM Sans',sans-serif; }
td .pos { color:#3EBF7A; }
td .neg { color:#E05252; }
@media(max-width:768px){ .auto-grid { grid-template-columns:1fr; } .auto-summary-grid { grid-template-columns:1fr 1fr; } }

/* ── DIVIDEND SECTION ── */
.dividend-section { max-width:1100px; margin:0 auto; padding:0 48px 80px; }
.section-header { display:flex; align-items:baseline; gap:16px; margin-bottom:12px; flex-wrap:wrap; }
.section-header h2 { font-family:var(--font-display); font-size:1.75rem; }
.live-badge { font-size:0.7rem; font-weight:700; letter-spacing:1px; background:var(--lime-dim); color:var(--gold); border:1px solid var(--gold-a30); padding:4px 10px; border-radius:100px; text-transform:uppercase; }
.live-badge.loading { animation:pulse 1s infinite; }
.yield-refresh { font-size:0.78rem; color:var(--slate); margin-bottom:24px; display:flex; align-items:center; gap:8px; }
.refresh-btn { background:none; border:none; color:var(--teal); font-size:0.78rem; font-family:'DM Sans',sans-serif; cursor:pointer; text-decoration:underline; }

table { width:100%; border-collapse:collapse; }
thead tr { border-bottom:1px solid var(--border); }
thead th { font-size:0.72rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--slate); padding:12px 16px; text-align:left; }
tbody tr { border-bottom:1px solid var(--border); transition:background .15s; }
tbody tr:hover { background:rgba(255,255,255,0.03); }
tbody td { padding:16px; font-size:0.92rem; vertical-align:middle; }
.ticker { font-family:'DM Mono',monospace; font-weight:500; font-size:0.85rem; background:var(--teal-dim); color:var(--teal); padding:4px 10px; border-radius:6px; }
.yield-val { font-family:'DM Mono',monospace; font-weight:600; font-size:1.05rem; }
.yield-up { color:#3EBF7A; }
.yield-down { color:#E05252; }
.yield-neutral { color:var(--teal); }
.yield-change { font-size:0.72rem; margin-top:2px; }
.company-name { font-weight:500; margin-bottom:2px; }
.company-type { font-size:0.78rem; color:var(--slate); }
.risk-badge { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:100px; font-size:0.78rem; font-weight:600; }
.risk-badge::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; }
.risk-low { background:rgba(62,191,122,0.12); color:var(--green-risk); }
.risk-med { background:rgba(240,160,64,0.12); color:var(--amber-risk); }
.risk-high { background:rgba(224,82,82,0.12); color:var(--red-risk); }
.rank-num { font-family:'DM Mono',monospace; font-size:0.8rem; color:var(--slate); font-weight:500; }
.freq-tag { font-size:0.75rem; color:var(--slate); background:rgba(136,153,170,0.1); padding:3px 8px; border-radius:4px; }
.price-val { font-family:'DM Mono',monospace; font-size:0.88rem; }

/* ── AI ADVISOR ── */
.advisor-section { max-width:1100px; margin:0 auto; padding:0 48px 80px; }
.advisor-card { background:var(--navy-mid); border:1px solid var(--border-glow); border-radius:16px; overflow:hidden; }
.advisor-header { padding:24px 28px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:14px; }
.advisor-icon { width:42px; height:42px; border-radius:10px; background:var(--teal-dim); border:1px solid var(--border-glow); display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0; }
.advisor-title { font-weight:700; font-size:1rem; }
.advisor-subtitle { color:var(--slate); font-size:0.82rem; margin-top:2px; }
.advisor-status { margin-left:auto; display:flex; align-items:center; gap:6px; font-size:0.78rem; color:var(--green-risk); }
.advisor-status-dot { width:7px; height:7px; border-radius:50%; background:var(--green-risk); animation:pulse 2s infinite; }
.chat-messages { height:340px; overflow-y:auto; padding:24px 28px; display:flex; flex-direction:column; gap:16px; scroll-behavior:smooth; }
.chat-messages::-webkit-scrollbar { width:4px; }
.chat-messages::-webkit-scrollbar-track { background:transparent; }
.chat-messages::-webkit-scrollbar-thumb { background:var(--border); border-radius:2px; }
.msg { display:flex; gap:10px; max-width:85%; }
.msg.user { align-self:flex-end; flex-direction:row-reverse; }
.msg-bubble { padding:12px 16px; border-radius:12px; font-size:0.9rem; line-height:1.55; }
.msg.ai .msg-bubble { background:var(--navy-light); border:1px solid var(--border); border-radius:4px 12px 12px 12px; }
.msg.user .msg-bubble { background:var(--teal); color:var(--navy); font-weight:500; border-radius:12px 4px 12px 12px; }
.msg-avatar { width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.8rem; flex-shrink:0; margin-top:2px; }
.msg.ai .msg-avatar { background:var(--teal-dim); border:1px solid var(--border-glow); }
.msg.user .msg-avatar { background:rgba(255,255,255,0.1); }
.typing-indicator { display:flex; gap:4px; align-items:center; padding:12px 16px; }
.typing-dot { width:7px; height:7px; border-radius:50%; background:var(--slate); animation:typingBounce 1.2s infinite; }
.typing-dot:nth-child(2) { animation-delay:.2s; }
.typing-dot:nth-child(3) { animation-delay:.4s; }
@keyframes typingBounce { 0%,60%,100%{transform:translateY(0)} 30%{transform:translateY(-6px)} }
.chat-input-area { padding:16px 28px; border-top:1px solid var(--border); display:flex; gap:10px; align-items:flex-end; }
.chat-input-area textarea { flex:1; background:var(--navy); border:1px solid var(--border); color:var(--white); padding:12px 16px; border-radius:10px; font-family:'DM Sans',sans-serif; font-size:0.9rem; resize:none; outline:none; min-height:44px; max-height:120px; transition:border-color .2s; line-height:1.4; }
.chat-input-area textarea:focus { border-color:var(--teal); }
.chat-input-area textarea::placeholder { color:var(--slate); }
.chat-send-btn { background:var(--teal); color:var(--navy); border:none; width:44px; height:44px; border-radius:10px; cursor:pointer; font-size:1.1rem; transition:opacity .2s; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.chat-send-btn:hover { opacity:.85; }
.chat-send-btn:disabled { opacity:.4; cursor:default; }
.quick-prompts { padding:12px 28px 0; display:flex; gap:8px; flex-wrap:wrap; }
.quick-btn { background:var(--teal-dim); border:1px solid var(--border-glow); color:var(--teal); border-radius:100px; padding:6px 14px; font-size:0.78rem; font-family:'DM Sans',sans-serif; cursor:pointer; transition:all .2s; white-space:nowrap; }
.quick-btn:hover { background:var(--teal-a20); }

/* ── CRYPTO SECTION ── */
.crypto-section { max-width:1100px; margin:0 auto; padding:0 48px 80px; }
.crypto-tabs { display:flex; gap:8px; margin-bottom:28px; border-bottom:1px solid var(--border); overflow-x:auto; }
.crypto-tab { background:none; border:none; color:var(--text-sub); font-family:'DM Sans',sans-serif; font-size:0.88rem; font-weight:500; padding:11px 18px; cursor:pointer; white-space:nowrap; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .2s; }
.crypto-tab:hover { color:var(--text); }
.crypto-tab.active { color:#F7931A; border-bottom-color:#F7931A; }
.crypto-panel { display:none; }
.crypto-panel.active { display:block; }

/* Fear & Greed */
.fg-wrap { display:grid; grid-template-columns:280px 1fr; gap:32px; align-items:start; }
.fg-gauge-card { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:28px; text-align:center; }
.fg-value { font-family:var(--font-display); font-size:4rem; font-weight:900; line-height:1; margin:16px 0 4px; }
.fg-label { font-size:1rem; font-weight:700; text-transform:uppercase; letter-spacing:2px; margin-bottom:20px; }
.fg-bar-wrap { height:12px; background:linear-gradient(90deg,#E05252 0%,#F0A040 25%,#F5C842 50%,#3EBF7A 75%,#46B07E 100%); border-radius:6px; position:relative; margin-bottom:8px; }
.fg-needle { position:absolute; top:-4px; width:4px; height:20px; background:var(--text); border-radius:2px; transform:translateX(-50%); transition:left .8s ease; }
.fg-bar-labels { display:flex; justify-content:space-between; font-size:0.65rem; color:var(--text-sub); }
.fg-history { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:28px; }
.fg-history h4 { font-size:0.75rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--text-sub); margin-bottom:16px; }
.fg-meta { font-size:0.78rem; color:var(--text-sub); margin-top:12px; }

/* Live Price Ticker */
.crypto-ticker-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; flex-wrap:wrap; gap:12px; }
.crypto-search { background:var(--input-bg); border:1px solid var(--border); color:var(--text); padding:9px 14px; border-radius:8px; font-family:'DM Sans',sans-serif; font-size:0.88rem; outline:none; width:220px; transition:border-color .2s; }
.crypto-search:focus { border-color:#F7931A; }
.crypto-search::placeholder { color:var(--text-sub); }
.crypto-table { width:100%; border-collapse:collapse; }
.crypto-table th { font-size:0.7rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--text-sub); padding:10px 14px; text-align:right; border-bottom:1px solid var(--border); }
.crypto-table th:first-child,.crypto-table th:nth-child(2) { text-align:left; }
.crypto-table td { padding:14px; font-size:0.88rem; border-bottom:1px solid rgba(136,153,170,0.08); text-align:right; vertical-align:middle; }
.crypto-table td:first-child,.crypto-table td:nth-child(2) { text-align:left; }
.crypto-table tr:hover td { background:rgba(247,147,26,0.03); }
.crypto-rank { font-family:'DM Mono',monospace; font-size:0.78rem; color:var(--text-sub); }
.crypto-name-wrap { display:flex; align-items:center; gap:10px; }
.crypto-icon { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.crypto-name { font-weight:600; font-size:0.88rem; }
.crypto-symbol { font-size:0.72rem; color:var(--text-sub); font-family:'DM Mono',monospace; }
.crypto-price { font-family:'DM Mono',monospace; font-weight:600; font-size:0.9rem; }
.pct-up { color:#3EBF7A; font-family:'DM Mono',monospace; font-size:0.82rem; font-weight:600; }
.pct-down { color:#E05252; font-family:'DM Mono',monospace; font-size:0.82rem; font-weight:600; }
.spark-cell { width:80px; }
.mcap { font-family:'DM Mono',monospace; font-size:0.8rem; color:var(--text-sub); }
.watchlist-btn { background:none; border:1px solid var(--border); color:var(--text-sub); border-radius:6px; padding:4px 10px; font-size:0.72rem; cursor:pointer; transition:all .2s; font-family:'DM Sans',sans-serif; }
.watchlist-btn:hover,.watchlist-btn.active { border-color:#F7931A; color:#F7931A; }

/* Profit/Loss Calc */
.crypto-calc-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.crypto-input-card { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:28px; }
.crypto-input-card h3 { font-size:0.75rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--text-sub); margin-bottom:20px; }
.crypto-field { margin-bottom:16px; }
.crypto-field label { display:block; font-size:0.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--text-sub); margin-bottom:6px; }
.crypto-field input, .crypto-field select { width:100%; background:var(--input-bg); border:1px solid var(--border); color:var(--text); padding:11px 14px; border-radius:8px; font-family:'DM Mono',monospace; font-size:0.95rem; outline:none; transition:border-color .2s; }
.crypto-field input:focus,.crypto-field select:focus { border-color:#F7931A; }
.crypto-field select { font-family:'DM Sans',sans-serif; }
.crypto-result-card { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:28px; }
.crypto-result-main { font-family:var(--font-display); font-size:2.8rem; font-weight:700; line-height:1; margin-bottom:6px; }
.crypto-result-sub { font-size:0.82rem; color:var(--text-sub); margin-bottom:20px; }
.profit-positive { color:#3EBF7A; }
.profit-negative { color:#E05252; }

/* DCA */
.dca-results-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:24px; }
.dca-stat { background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:16px; }
.dca-stat-val { font-family:var(--font-display); font-size:1.4rem; font-weight:700; color:var(--teal); }
.dca-stat-lbl { font-size:0.72rem; color:var(--text-sub); margin-top:4px; text-transform:uppercase; letter-spacing:.5px; }

/* Portfolio */
.portfolio-rows { display:flex; flex-direction:column; gap:14px; margin-bottom:16px; }
.portfolio-row { display:grid; grid-template-columns:1.4fr 1fr auto; grid-template-rows:auto auto; gap:12px; align-items:end; padding:14px; background:var(--surface2); border-radius:10px; }
.portfolio-row .pr-coin { grid-column:1; grid-row:1; }
.portfolio-row .pr-amount { grid-column:2; grid-row:1; }
.portfolio-row .pr-del { grid-column:3; grid-row:1 / span 2; align-self:center; }
.portfolio-row .pr-basis { grid-column:1; grid-row:2; }
.portfolio-row .pr-price { grid-column:2; grid-row:2; }
.portfolio-row input, .portfolio-row select { background:var(--input-bg); border:1px solid var(--border); color:var(--text); padding:10px 12px; border-radius:8px; font-family:'DM Mono',monospace; font-size:0.95rem; outline:none; transition:border-color .2s; width:100%; min-width:0; box-sizing:border-box; }
.portfolio-row select { font-family:'DM Sans',sans-serif; font-size:0.85rem; }
.portfolio-row input:focus, .portfolio-row select:focus { border-color:#F7931A; }
.portfolio-row label { display:block; font-size:0.68rem; color:var(--text-sub); margin-bottom:5px; font-weight:600; text-transform:uppercase; letter-spacing:0.3px; white-space:nowrap; }
.portfolio-row > div { min-width:0; }
.portfolio-total { background:linear-gradient(135deg,rgba(247,147,26,0.1),var(--surface)); border:1px solid rgba(247,147,26,0.25); border-radius:12px; padding:20px; }
.portfolio-total-val { font-family:var(--font-display); font-size:2.4rem; font-weight:700; color:#F7931A; }
.alloc-chart-wrap { position:relative; height:260px; margin-top:20px; }

/* Crypto affiliate */
.crypto-aff-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; margin-top:24px; }
.crypto-aff-card { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:18px; display:flex; flex-direction:column; gap:8px; transition:border-color .2s; cursor:pointer; }
.crypto-aff-card:hover { border-color:rgba(247,147,26,0.4); }
.crypto-aff-logo { font-size:1.4rem; }
.crypto-aff-name { font-weight:700; font-size:0.9rem; }
.crypto-aff-desc { font-size:0.78rem; color:var(--text-sub); line-height:1.5; flex:1; }
.crypto-aff-commission { font-size:0.72rem; color:#F7931A; font-weight:700; }
.crypto-aff-btn { background:#F7931A; color:#fff; border:none; border-radius:7px; padding:8px; font-family:'DM Sans',sans-serif; font-weight:700; font-size:0.78rem; cursor:pointer; text-align:center; transition:opacity .2s; }
.crypto-aff-btn:hover { opacity:.88; }

/* Bitcoin orange accent for crypto tabs */
.section-eyebrow-crypto { font-size:0.72rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#F7931A; margin-bottom:12px; }
.live-badge-crypto { font-size:0.7rem; font-weight:700; letter-spacing:1px; background:rgba(247,147,26,0.1); color:#F7931A; border:1px solid rgba(247,147,26,0.3); padding:4px 10px; border-radius:100px; text-transform:uppercase; }

@media(max-width:768px){
  .crypto-section { padding-left:20px; padding-right:20px; }
  .fg-wrap { grid-template-columns:1fr; }
  .crypto-calc-grid { grid-template-columns:1fr; }
  .dca-results-grid { grid-template-columns:1fr 1fr; }
  .portfolio-row { grid-template-columns:1fr 1fr; grid-template-rows:auto auto auto; row-gap:10px; }
  .portfolio-row .pr-coin { grid-column:1 / -1; grid-row:1; }
  .portfolio-row .pr-amount { grid-column:1; grid-row:2; }
  .portfolio-row .pr-basis { grid-column:2; grid-row:2; }
  .portfolio-row .pr-price { grid-column:1; grid-row:3; }
  .portfolio-row .pr-del { grid-column:2; grid-row:3; align-self:end; }
  .crypto-aff-grid { grid-template-columns:1fr 1fr; }
}

/* ── AFFILIATE CTA CARDS ── */
.aff-card { margin-top:24px; border-top:1px solid var(--border); padding-top:20px; }
.aff-card-label { font-size:0.68rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--slate); margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.aff-card-label::after { content:''; flex:1; height:1px; background:var(--border); }
.aff-offers { display:flex; flex-direction:column; gap:10px; }
.aff-offer { display:flex; align-items:center; gap:12px; background:var(--navy); border:1px solid var(--border); border-radius:10px; padding:12px 14px; text-decoration:none; color:var(--white); transition:border-color .2s,background .2s; cursor:pointer; }
.aff-offer:hover { border-color:var(--teal); background:var(--teal-dim2); }
.aff-offer-logo { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-weight:800; font-size:0.75rem; }
.aff-offer-body { flex:1; }
.aff-offer-name { font-size:0.85rem; font-weight:600; margin-bottom:2px; }
.aff-offer-desc { font-size:0.75rem; color:var(--slate); line-height:1.4; }
.aff-offer-rate { font-family:'DM Mono',monospace; font-size:0.82rem; color:var(--teal); font-weight:600; white-space:nowrap; }
.aff-offer-cta { background:var(--teal); color:var(--navy); border:none; border-radius:7px; padding:7px 14px; font-family:'DM Sans',sans-serif; font-weight:700; font-size:0.78rem; cursor:pointer; white-space:nowrap; flex-shrink:0; }
.aff-disclosure { font-size:0.68rem; color:var(--slate); margin-top:10px; line-height:1.5; font-style:italic; }
.aff-sponsored-tag { font-size:0.65rem; background:rgba(136,153,170,0.12); color:var(--slate); border:1px solid var(--border); border-radius:4px; padding:2px 6px; font-weight:600; letter-spacing:.5px; }
.open-acct-btn { background:none; border:1px solid var(--border-glow); color:var(--teal); border-radius:7px; padding:5px 12px; font-family:'DM Sans',sans-serif; font-size:0.75rem; font-weight:700; cursor:pointer; white-space:nowrap; transition:all .2s; }
.open-acct-btn:hover { background:var(--teal); color:var(--navy); }

@media(max-width:768px){
  .aff-offer { flex-wrap:wrap; }
}

/* ── FOOTER ── */
footer { border-top:1px solid var(--border); padding:32px 48px; display:flex; justify-content:space-between; align-items:center; color:var(--slate); font-size:0.82rem; }
.disclaimer { max-width:600px; line-height:1.6; }

@media(max-width:768px){
  nav { padding:16px 20px; }
  nav ul { display:none; }
  .hero { padding:48px 20px 40px; }
  .calc-section,.dividend-section,.advisor-section,.scenarios-banner { padding-left:20px; padding-right:20px; }
  .calc-panel.active { grid-template-columns:1fr; }
  .result-full { grid-template-columns:1fr; }
  .input-row { grid-template-columns:1fr; }
  thead th:nth-child(5),tbody td:nth-child(5) { display:none; }
  footer { flex-direction:column; gap:12px; text-align:center; padding:24px 20px; }
  .chat-messages { height:260px; }
}

/* ════════════════════════════════════════════════════════════
   EMERALD GLASS — premium visual layer (overrides by source order)
   ════════════════════════════════════════════════════════════ */
body { font-family:var(--font-body); position:relative; }
/* Ambient mesh glow + faint grid on the near-black base */
body::before {
  content:''; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(1100px 600px at 80% -10%, rgba(70,176,126,0.10), transparent 60%),
    radial-gradient(800px 520px at 8% 6%, rgba(167,139,250,0.10), transparent 55%),
    radial-gradient(700px 700px at 55% 115%, rgba(198,242,78,0.05), transparent 60%),
    radial-gradient(600px 500px at 95% 70%, rgba(0,180,160,0.07), transparent 55%);
}
body::after {
  content:''; position:fixed; inset:0; z-index:-2; pointer-events:none; opacity:0.5;
  background-image:linear-gradient(rgba(255,255,255,0.012) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,0.012) 1px, transparent 1px);
  background-size:64px 64px;
}
body.light-mode::after { opacity:0; }
body.light-mode::before {
  background:
    radial-gradient(1100px 600px at 80% -10%, rgba(0,168,124,0.10), transparent 60%),
    radial-gradient(800px 520px at 8% 6%, rgba(167,139,250,0.10), transparent 55%);
}
/* Drifting gradient-mesh blobs */
.bg-blob { position:fixed; border-radius:50%; filter:blur(90px); opacity:0.42; z-index:-1; pointer-events:none; }
.bg-blob.b1 { width:520px; height:520px; top:-160px; right:-80px; background:radial-gradient(circle,#2C8F63,transparent 70%); opacity:0.30; animation:bgDrift1 20s ease-in-out infinite; }
.bg-blob.b2 { width:460px; height:460px; top:34%; left:-180px; background:radial-gradient(circle,#D8A93E,transparent 70%); opacity:0.14; animation:bgDrift2 24s ease-in-out infinite; }
.bg-blob.b3 { width:380px; height:380px; bottom:-140px; left:45%; background:radial-gradient(circle,#46B07E,transparent 70%); opacity:0.16; animation:bgDrift3 28s ease-in-out infinite; }
body.light-mode .bg-blob.b1 { opacity:0.18; } body.light-mode .bg-blob.b2 { opacity:0.10; } body.light-mode .bg-blob.b3 { opacity:0.12; }
@keyframes bgDrift1 { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-50px,45px) scale(1.1)} }
@keyframes bgDrift2 { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(60px,-35px) scale(1.08)} }
@keyframes bgDrift3 { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(-40px,-25px) scale(1.12)} }
@media (prefers-reduced-motion: reduce) { .bg-blob { animation:none; } }

/* ── NAV + LOGO ── */
nav { padding:18px 48px; backdrop-filter:blur(18px) saturate(140%); }
.logo { display:flex; align-items:center; gap:11px; }
.lmark { width:34px; height:34px; flex-shrink:0; filter:drop-shadow(0 0 10px rgba(70,176,126,0.40)); transition:transform .3s ease; }
.logo:hover .lmark { transform:rotate(-6deg) scale(1.06); }
.logo-word { font-family:var(--font-display); font-weight:700; font-size:1.4rem; letter-spacing:-0.5px; color:var(--text); }
.logo-word span { color:var(--teal); }
.nav-cta { border-radius:10px; transition:all .2s; }
.nav-cta:hover { box-shadow:0 0 22px rgba(70,176,126,0.45); transform:translateY(-1px); opacity:1; }

/* ── HERO ── */
.hero { padding:88px 48px 56px; }
.hero h1 { font-family:var(--font-display); font-weight:700; letter-spacing:-1.5px; font-size:clamp(2.6rem,5.5vw,4.4rem); max-width:880px; }
.hero h1 em { background:linear-gradient(120deg,var(--teal-bright),var(--teal) 60%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; background-size:200% auto; animation:hueShift 5s ease-in-out infinite; }
@keyframes hueShift { 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }
p.calc-kicker { font-family:var(--font-display); font-style:italic; font-size:clamp(1.05rem,2.2vw,1.35rem); color:var(--teal); text-align:center; margin:-8px auto 16px; max-width:700px; letter-spacing:-0.3px; }
.hero-eyebrow { background:var(--teal-dim2); backdrop-filter:blur(8px); border-color:var(--border-glow); }

/* ── GLASS CARDS (all surfaces) ── */
.stat-card, .input-card, .result-card, .auto-section-card,
.fg-gauge-card, .fg-history, .crypto-input-card, .crypto-result-card,
.advisor-card, .crypto-aff-card, .scenarios-inner, .dca-stat {
  background:var(--glass); backdrop-filter:blur(20px); box-shadow:var(--glow-shadow);
}
.result-card, .crypto-result-card, .advisor-card { border-color:var(--border-glow); }
.stat-card { border-radius:22px; box-shadow:var(--glow-shadow); }

/* ── PILL TABS ── */
.tab-bar { display:flex; flex-wrap:wrap; gap:9px; }
.tab-btn { flex-direction:row; gap:8px; border-radius:100px; padding:11px 18px; font-size:0.82rem; font-weight:600; background:rgba(255,255,255,0.03); }
body.light-mode .tab-btn { background:rgba(6,18,14,0.04); }
.tab-btn .tab-label { display:inline; }
.tab-btn.active { color:#04130E; background:var(--teal); border-color:var(--teal); box-shadow:0 0 22px rgba(70,176,126,0.35); }

/* ── THE BIG NUMBERS — data is the hero ── */
.result-main {
  font-family:var(--font-display); font-weight:700; letter-spacing:-2px; font-size:4rem;
  background:linear-gradient(120deg,var(--white),var(--teal-bright));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  text-shadow:0 0 40px rgba(70,176,126,0.18);
}
/* crypto P/L number stays solid so profit-positive/negative colors show */
.crypto-result-main { font-family:var(--font-display); font-weight:700; letter-spacing:-1.5px; font-size:3rem; }
.fg-value, .portfolio-total-val, .auto-summary-val.big { font-family:var(--font-display); letter-spacing:-1px; }

/* Money fields: $ prefix inside the field */
.money-wrap { position:relative; }
.money-wrap .money-prefix { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--text-sub); font-family:'DM Mono',monospace; font-size:1.02rem; pointer-events:none; }
.money-wrap input { padding-left:32px !important; }

/* Crypto-page fields match the calculator field metrics */
.crypto-field input, .crypto-field select { padding:12px 12px; font-size:1.02rem; font-weight:500; border-width:1.5px; border-color:var(--input-border); }

/* Inputs: glow focus ring + rounder */
.input-group input, .input-group select, .auto-field input, .auto-field select,
.crypto-field input, .crypto-field select, .chat-input-area textarea, .crypto-search {
  border-radius:11px;
}
.input-group input:focus, .auto-field input:focus, .auto-field select:focus,
.crypto-field input:focus, .crypto-field select:focus { border-color:var(--teal); box-shadow:0 0 0 3px var(--teal-dim); }

/* Primary CTAs: subtle sculpted gradient */
.nav-cta, .modal-submit, .stat-cta, .amort-toggle-btn, .chat-send-btn, .ai-send, .cookie-accept, .account-cta-btn {
  background:linear-gradient(135deg, var(--teal-bright) 0%, var(--teal) 65%);
}

/* Pills & CTAs glow on hover */
.stat-cta:hover, .save-scenario-btn:hover, .amort-toggle-btn:hover, .quick-btn:hover { box-shadow:0 0 18px rgba(70,176,126,0.32); }

/* ── ENTRANCE MOTION ── */
@keyframes riseIn { from{opacity:0; transform:translateY(24px)} to{opacity:1; transform:translateY(0)} }
.hero-eyebrow { animation:riseIn .7s cubic-bezier(.2,.7,.2,1) both; }
.hero h1 { animation:riseIn .7s cubic-bezier(.2,.7,.2,1) .1s both; }
.hero p { animation:riseIn .7s cubic-bezier(.2,.7,.2,1) .2s both; }
.stat-cards-wrap { animation:riseIn .7s cubic-bezier(.2,.7,.2,1) .3s both; }
@media (prefers-reduced-motion: reduce) { .hero-eyebrow,.hero h1,.hero p,.stat-cards-wrap,.hero h1 em { animation:none; } }

@media(max-width:768px){
  .hero { padding:56px 20px 36px; }
  nav { padding:16px 20px; }
  .tab-btn { padding:9px 14px; font-size:0.78rem; }
}

/* ── PLAYFUL CALCULATOR EXTRAS: donut + gradient feature card ── */
.calc-extras { margin-top:24px; padding-top:22px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:16px; }
.donut-card { background:var(--surface2); border:1px solid var(--border); border-radius:14px; padding:22px; display:flex; align-items:center; gap:22px; }
.donut-card h4 { font-size:0.7rem; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; color:var(--text-sub); margin-bottom:16px; }
.donut { width:140px; height:140px; border-radius:50%; flex-shrink:0; position:relative; background:conic-gradient(var(--teal) 0 60%, var(--donut-2) 60% 84%, var(--lime) 84% 100%); filter:drop-shadow(0 0 18px rgba(70,176,126,0.28)); transition:background .4s ease; }
.donut::after { content:''; position:absolute; inset:24px; border-radius:50%; background:var(--surface2); }
.donut-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:1; }
.donut-center .v { font-family:var(--font-display); font-size:1.4rem; font-weight:700; letter-spacing:-0.5px; color:var(--text); }
.donut-center .l { font-size:0.6rem; color:var(--text-sub); text-transform:uppercase; letter-spacing:1px; }
.donut-legend { flex:1; min-width:0; }
.legend-item { display:flex; align-items:center; gap:10px; margin-bottom:12px; font-size:0.86rem; color:var(--text); }
.legend-item:last-child { margin-bottom:0; }
.legend-dot { width:11px; height:11px; border-radius:4px; flex-shrink:0; }
.legend-item .amt { margin-left:auto; font-family:var(--font-mono); color:var(--text-sub); font-size:0.84rem; }
.feature-card { border-radius:14px; padding:24px 26px; position:relative; overflow:hidden; background:linear-gradient(135deg,#6d4be0 0%,#00b389 100%); color:#fff; box-shadow:0 18px 50px -22px rgba(109,75,224,0.55); }
.feature-card::before { content:''; position:absolute; width:260px; height:260px; border-radius:50%; top:-110px; right:-70px; background:radial-gradient(circle,rgba(255,255,255,0.22),transparent 70%); }
.feature-card .fc-label { font-size:0.76rem; font-weight:600; opacity:0.88; letter-spacing:.4px; position:relative; z-index:1; }
.feature-card .fc-num { font-family:var(--font-display); font-size:2.4rem; font-weight:700; letter-spacing:-1px; margin:6px 0 3px; position:relative; z-index:1; -webkit-text-fill-color:#fff; }
.feature-card .fc-sub { font-size:0.82rem; opacity:0.82; margin-bottom:18px; position:relative; z-index:1; }
.feature-card .fc-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:16px; border-top:1px solid rgba(255,255,255,0.25); position:relative; z-index:1; font-size:0.86rem; }
.feature-card .fc-chip { background:rgba(255,255,255,0.2); backdrop-filter:blur(6px); padding:7px 15px; border-radius:100px; font-size:0.78rem; font-weight:700; white-space:nowrap; }
@media(max-width:480px){ .donut-card { flex-direction:column; text-align:center; } .donut-legend { width:100%; } }

/* ── 3D TILT (display tiles only) ── */
.tilt { transition:transform .25s ease, box-shadow .25s ease; transform-style:preserve-3d; will-change:transform; }

/* ── SCROLL REVEAL ── */
.reveal { opacity:0; transform:translateY(26px); }
.reveal.in { opacity:1; transform:none; transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
@media (prefers-reduced-motion: reduce) { .reveal { opacity:1 !important; transform:none !important; } .tilt { transition:none; } }

/* ── RICH SITE FOOTER ── */
.site-footer { display:block; border-top:1px solid var(--border); padding:48px 48px 32px; background:rgba(6,9,11,0.6); position:relative; z-index:1; }
.footer-grid { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:36px; }
.footer-logo { display:flex; align-items:center; gap:11px; margin-bottom:14px; cursor:pointer; }
.footer-logo svg { width:32px; height:32px; filter:drop-shadow(0 0 10px rgba(70,176,126,0.40)); }
.footer-logo .word { font-family:var(--font-display); font-weight:700; font-size:1.3rem; letter-spacing:-0.5px; color:var(--text); }
.footer-logo .word span { color:var(--teal); }
.footer-brand p { color:var(--text-sub); font-size:0.86rem; max-width:280px; line-height:1.6; }
.footer-col h4 { font-size:0.72rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--text); margin-bottom:16px; }
.footer-col a { display:block; color:var(--text-sub); font-size:0.88rem; margin-bottom:10px; text-decoration:none; transition:color .2s; }
.footer-col a:hover { color:var(--teal); }
.footer-bottom { max-width:1100px; margin:36px auto 0; padding-top:24px; border-top:1px solid var(--border); }
.footer-disclaimer { color:var(--text-sub); font-size:0.78rem; line-height:1.6; margin-bottom:14px; }
.footer-disclaimer strong { color:var(--text); }
.footer-disclaimer a { color:var(--teal); }
.footer-meta { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; color:var(--text-sub); font-size:0.8rem; }
/* Light mode: footer needs a light background so the (now-dark) text is visible */
body.light-mode .site-footer { background:rgba(255,255,255,0.7); }
@media(max-width:768px){ .site-footer { padding:36px 20px 28px; } .footer-grid { grid-template-columns:1fr 1fr; gap:28px; } .footer-brand { grid-column:1/-1; } }

/* ── ACCESSIBILITY ── */
.skip-link { position:absolute; left:-9999px; top:0; z-index:9999; background:var(--teal); color:#04130E; padding:10px 18px; border-radius:0 0 10px 0; font-family:var(--font-body); font-weight:700; font-size:0.85rem; text-decoration:none; }
.skip-link:focus { left:0; }
:focus-visible { outline:2px solid var(--teal); outline-offset:2px; border-radius:4px; }

/* ── ACCOUNT SETTINGS MODAL ── */
.acct-section { padding-top:22px; margin-top:22px; border-top:1px solid var(--border); }
.acct-section:first-of-type { padding-top:4px; margin-top:8px; border-top:none; }
.acct-h { font-size:0.98rem; font-weight:700; margin-bottom:6px; color:var(--text); }
.acct-sub { font-size:0.82rem; color:var(--text-sub); margin-bottom:12px; line-height:1.5; }
.acct-sub strong { color:var(--text); }
.acct-danger .acct-h { color:#FF6B6B; }
.acct-delete-btn { background:rgba(255,107,107,0.12); color:#FF6B6B; border:1px solid rgba(255,107,107,0.35); padding:13px; border-radius:10px; font-family:'DM Sans',sans-serif; font-weight:700; font-size:0.92rem; cursor:pointer; transition:all .2s; }
.acct-delete-btn:hover { background:#FF6B6B; color:#fff; }
.modal-msg.ok { color:var(--teal); }
.modal-msg.err { color:#FF6B6B; }
.auth-forgot { background:none; border:none; color:var(--text-sub); font-family:var(--font-body); font-size:0.82rem; cursor:pointer; text-align:center; padding:2px; margin-top:-4px; transition:color .2s; }
.auth-forgot:hover { color:var(--teal); text-decoration:underline; }

/* ── COOKIE CONSENT BANNER ── */
.cookie-banner { position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:1500; max-width:680px; width:calc(100% - 32px); background:var(--glass); backdrop-filter:blur(20px); border:1px solid var(--border-glow); border-radius:16px; padding:16px 20px; box-shadow:var(--glow-shadow); display:none; align-items:center; gap:16px; flex-wrap:wrap; }
.cookie-banner.show { display:flex; }
.cookie-text { flex:1; min-width:240px; font-size:0.84rem; color:var(--text-sub); line-height:1.55; }
.cookie-text a { color:var(--teal); text-decoration:none; }
.cookie-text a:hover { text-decoration:underline; }
.cookie-actions { display:flex; gap:10px; }
.cookie-btn { border:none; border-radius:9px; padding:10px 18px; font-family:var(--font-body); font-weight:700; font-size:0.85rem; cursor:pointer; transition:all .2s; }
.cookie-accept { background:var(--teal); color:#04130E; }
.cookie-accept:hover { box-shadow:0 0 18px rgba(70,176,126,0.40); }
.cookie-decline { background:rgba(255,255,255,0.05); color:var(--text); border:1px solid var(--border); }
.cookie-decline:hover { border-color:var(--text-sub); }
@media(max-width:560px){ .cookie-banner { flex-direction:column; align-items:stretch; } .cookie-actions { justify-content:flex-end; } }

/* ── CREATE-ACCOUNT CTA (replaces the old newsletter bar) ── */
.account-cta { background:linear-gradient(135deg, rgba(0,60,48,0.55), rgba(12,19,17,0.85)); border-top:1px solid var(--border-glow); border-bottom:1px solid var(--border-glow); padding:64px 48px; text-align:center; }
body.light-mode .account-cta { background:linear-gradient(135deg, rgba(0,168,124,0.10), rgba(255,255,255,0.9)); }
.account-cta-inner { max-width:680px; margin:0 auto; }
.account-cta h3 { font-family:var(--font-display); font-size:clamp(1.6rem,3.5vw,2rem); font-weight:700; letter-spacing:-0.5px; margin-bottom:14px; color:var(--text); }
.account-cta p { color:var(--text-sub); font-size:1.02rem; line-height:1.65; margin-bottom:24px; }
.account-cta-perks { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; margin-bottom:28px; }
.ac-perk { font-size:0.88rem; color:var(--text); font-weight:500; display:inline-flex; align-items:center; gap:7px; }
.ac-perk .cci { color:var(--teal); }
.account-cta-btn { background:var(--teal); color:#04130E; border:none; padding:15px 32px; border-radius:10px; font-family:var(--font-body); font-weight:700; font-size:1rem; cursor:pointer; transition:box-shadow .2s, transform .2s; }
.account-cta-btn:hover { box-shadow:0 0 24px rgba(70,176,126,0.45); transform:translateY(-1px); }
.account-cta-sub { margin-top:18px; font-size:0.86rem; color:var(--text-sub); }
.account-cta-sub a { color:var(--teal); text-decoration:none; }
.account-cta-sub a:hover { text-decoration:underline; }
@media(max-width:768px){ .account-cta { padding:48px 22px; } }

/* ── Homepage calculator launcher grid (links to per-calculator pages) ── */
.calc-launch-intro { max-width:680px; margin:6px auto 30px; text-align:center; color:var(--text-sub); font-size:0.95rem; line-height:1.65; }
.calc-launch-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(238px,1fr)); gap:16px; }
.calc-launch-card { display:flex; flex-direction:column; gap:7px; padding:22px; background:var(--surface2); border:1px solid var(--border); border-radius:var(--radius); text-decoration:none; transition:transform .18s, border-color .18s, background .18s; }
.calc-launch-card:hover { transform:translateY(-3px); border-color:var(--teal); background:var(--surface); box-shadow:var(--hover-shadow); }
.cl-icon { width:38px; height:38px; border-radius:10px; background:var(--teal-dim); border:1px solid var(--border-glow); display:flex; align-items:center; justify-content:center; color:var(--teal); }
.cl-icon .cci { width:20px; height:20px; }
.cl-name { font-family:var(--font-display); font-size:1.06rem; font-weight:600; color:var(--text); }
.cl-desc { font-size:0.84rem; color:var(--text-sub); line-height:1.45; }

/* Saved-scenarios empty state (per-calculator pages) */
.scenarios-empty { color:var(--text-sub); font-size:0.86rem; line-height:1.55; margin:4px 0 0; }

/* ════════════════════════════════════════════════════════
   FORM & FUNCTION POLISH (2026-06-20) — sitewide
   ════════════════════════════════════════════════════════ */
/* Accessibility: visible keyboard focus ring on all interactive elements */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--teal); outline-offset: 2px; border-radius: 6px;
}
/* Keep mouse clicks clean (no ring), only show on keyboard focus — :focus-visible already handles this */
.nav-cta { white-space: nowrap; }              /* fix "Sign In" wrapping on small screens */
.nav-signout { white-space: nowrap; }
/* Micro-interactions: consistent, subtle press feedback on buttons/cards */
button, .calc-launch-card, .aff-offer, .guide-card, .scenario-chip { transition: transform .12s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease; }
button:not(:disabled):active { transform: translateY(1px); }
.save-scenario-btn, .nav-cta, .modal-submit, .pt-add-btn, .crypto-refresh, .port-add-btn { transition: all .18s ease; }
/* Honor reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* ── Touch targets: ≥44px tap height on coarse-pointer (touch) devices — WCAG 2.5.5 / Apple HIG.
   Scoped to (pointer:coarse) so desktop keeps its compact controls. ── */
@media (pointer: coarse) {
  .input-group input, .input-group select, .auto-field input, .auto-field select,
  .crypto-field input, .crypto-field select, .portfolio-row input, .portfolio-row select,
  .contact-form input, .modal-form input, .ai-input-row input { min-height: 44px; }
  .nav-cta, .amort-toggle-btn, .aff-offer-cta, .save-scenario-btn,
  .quick-btn, .modal-submit, .pt-add-btn, .port-add-btn, .crypto-refresh { min-height: 44px; }
  .stat-dot { width: 44px; height: 44px; }
  .theme-toggle-btn { width: 40px; height: 40px; }
}
/* Remove the 300ms tap delay on interactive controls */
a, button, input, select, textarea, [role=button] { touch-action: manipulation; }

/* Tabular figures: live-updating numbers in the proportional display font align in columns
   and don't shift width as digits change (DM Mono fields are already tabular). */
.result-main, .result-sub, .auto-summary-val, .fg-value, .crypto-result-main, .dca-stat-val,
.portfolio-total-val, .donut-center .v, .feature-card .fc-num, .b-val, .info-pill strong {
  font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1;
}

/* Hero trust strip — credibility cues directly under the homepage hero */
.hero-trust { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:9px 22px; max-width:680px; margin:24px auto 0; padding:0; }
.hero-trust li { display:flex; align-items:center; gap:7px; font-size:0.85rem; color:var(--text-sub); }
.hero-trust svg { width:15px; height:15px; color:var(--teal); flex-shrink:0; }
.hero-trust a { color:var(--text-sub); text-decoration:underline; text-underline-offset:2px; }
.hero-trust a:hover { color:var(--teal); }

/* Empty-state prompt shown in a calculator's headline result when the primary field is blank */
.result-empty { font-size:1.05rem !important; font-weight:600; color:var(--text-sub) !important; line-height:1.5; }

/* Breadcrumb is a <nav>, so the global nav{flex/sticky/border} rule was
   styling it like a header bar (items spread full-width). Neutralize that —
   render it as a normal left-aligned inline breadcrumb. */
nav.breadcrumb { display:block; position:static; top:auto; border-bottom:none; background:none; backdrop-filter:none; z-index:auto; justify-content:flex-start; align-items:baseline; }

/* ── "Ask AI about this result" — button + chat modal (injected by cc-account.js) ── */
.ai-ask-btn { width:100%; margin-top:14px; background:transparent; border:1px solid var(--teal); color:var(--teal); border-radius:10px; padding:12px; font-family:'DM Sans',sans-serif; font-size:0.92rem; font-weight:600; cursor:pointer; transition:all .18s ease; }
.ai-ask-btn:hover { background:var(--teal-dim); }
.ai-modal { max-width:520px; width:100%; display:flex; flex-direction:column; max-height:88vh; }
.ai-messages { flex:1; overflow-y:auto; min-height:150px; max-height:46vh; display:flex; flex-direction:column; gap:10px; padding:6px 2px; margin-bottom:10px; }
.ai-msg { padding:10px 14px; border-radius:12px; font-size:0.9rem; line-height:1.55; max-width:88%; white-space:pre-wrap; }
.ai-msg-user { align-self:flex-end; background:var(--teal); color:#04211a; border-bottom-right-radius:4px; }
.ai-msg-ai { align-self:flex-start; background:var(--surface2); color:var(--text); border:1px solid var(--border); border-bottom-left-radius:4px; }
.ai-typing { opacity:0.6; }
.ai-suggestions { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.ai-suggestions button { background:var(--surface2); border:1px solid var(--border); color:var(--text-sub); border-radius:100px; padding:7px 13px; font-family:'DM Sans',sans-serif; font-size:0.8rem; cursor:pointer; transition:all .18s ease; }
.ai-suggestions button:hover { border-color:var(--teal); color:var(--teal); }
.ai-input-row { display:flex; gap:8px; }
.ai-input-row input { flex:1; background:var(--input-bg); border:1px solid var(--border); color:var(--text); padding:11px 14px; border-radius:10px; font-family:'DM Sans',sans-serif; font-size:0.9rem; outline:none; }
.ai-input-row input:focus { border-color:var(--teal); }
.ai-send { width:auto !important; padding:11px 18px !important; white-space:nowrap; }

/* ═══════════════════════════════════════════════════════
   EDITORIAL DIRECTION A — flat, warm, serif (de-AI)
   Removes the ambient glow, drifting blobs, glass blur, and
   animated gradient headline; restyles hero/nav/cards editorial.
   ═══════════════════════════════════════════════════════ */
body::before, body.light-mode::before { background:none; }
body::after { display:none; }
.bg-blob { display:none; }

nav { backdrop-filter:none; }
.lmark { filter:none; }
.nav-cta { border-radius:10px; }
.nav-cta:hover { box-shadow:none; transform:translateY(-1px); }

.hero h1 { font-weight:600; letter-spacing:-0.5px; }
.hero h1 em { background:none; -webkit-background-clip:border-box; background-clip:border-box; -webkit-text-fill-color:currentColor; color:var(--teal); font-style:italic; font-weight:500; animation:none; }
.hero-eyebrow { background:none; backdrop-filter:none; border:none; border-radius:0; padding:0; color:var(--teal); font-weight:600; letter-spacing:.2em; }

.stat-card, .input-card, .result-card, .auto-section-card,
.fg-gauge-card, .fg-history, .crypto-input-card, .crypto-result-card,
.advisor-card, .crypto-aff-card, .scenarios-inner, .dca-stat {
  background:var(--surface); backdrop-filter:none; box-shadow:var(--glow-shadow); border:1px solid var(--border);
}
.stat-card { box-shadow:var(--glow-shadow); }
.result-card, .crypto-result-card, .advisor-card { border-color:var(--border); }

.feature-card { background:var(--teal); color:#F8F4EA; box-shadow:var(--glow-shadow); }
.feature-card::before { display:none; }
.feature-card .fc-num { -webkit-text-fill-color:#F8F4EA; }
.feature-card .fc-chip { background:rgba(255,255,255,0.16); backdrop-filter:none; }
body:not(.light-mode) .feature-card { color:#0A2417; }
body:not(.light-mode) .feature-card .fc-num { -webkit-text-fill-color:#0A2417; }
body:not(.light-mode) .feature-card .fc-row { border-top-color:rgba(10,36,23,0.25); }

.cookie-banner { background:var(--surface); backdrop-filter:none; border-color:var(--border); box-shadow:0 2px 14px rgba(44,42,32,0.10); }

body.light-mode .nav-cta, body.light-mode .modal-submit, body.light-mode .stat-cta,
body.light-mode .amort-toggle-btn, body.light-mode .aff-offer-cta, body.light-mode .cookie-accept,
body.light-mode .account-cta-btn, body.light-mode .chat-send-btn, body.light-mode .ai-send,
body.light-mode .modal-tab.active, body.light-mode .tab-btn.active {
  background:linear-gradient(135deg, #2F9A64 0%, #237A52 65%); color:#0A2417;
}

/* Dark masthead + footer bands in light mode — re-scope vars so all nav/footer text flips to light, body stays cream */
body.light-mode nav, body.light-mode .site-footer {
  background:#181C14;
  --text:#EDE8DA; --text-sub:#AEB4A6; --teal:#62C896;
  --bg:#181C14; --surface:#20251C; --border:rgba(237,232,218,0.14);
}
body.light-mode .footer-logo svg { filter:none; }
