/* ---------------- RETIREMENT GOAL CALCULATOR ---------------- */

:root{
  --warn-ink:#8C4A3D; --warn-bg:#FBEEEB; --warn-border:#E8CFC5;
}

.rc-shell{ max-width:1180px; margin:0 auto; padding:8px 5vw 100px; }
.rc-shell .back-row{ margin:0 0 32px; }

.rc-header{ max-width:680px; margin:0 0 40px; }
.rc-eyebrow{ font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin:0 0 14px; }
.rc-title{ font-size:clamp(1.8rem,3.4vw,2.5rem); line-height:1.2; margin:0 0 16px; }
.rc-lede{ font-size:1.02rem; line-height:1.7; color:var(--muted); margin:0; max-width:60ch; }

/* Fixed-assumption strip */
.rc-assumptions{ display:flex; flex-wrap:wrap; gap:12px 32px; background:var(--band); border-radius:10px; padding:18px 22px; margin:0 0 40px; }
.rc-assumption{ display:flex; align-items:center; gap:10px; font-size:.86rem; color:var(--ink); line-height:1.5; }
.rc-assumption svg{ flex:none; width:18px; height:18px; color:var(--accent); }
.rc-assumption b{ font-weight:700; }

/* Layout */
.rc-layout{ display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,400px); gap:40px; align-items:start; }
@media (max-width:900px){ .rc-layout{ grid-template-columns:1fr; } }

.rc-inputs{ display:flex; flex-direction:column; gap:22px; }
.rc-results{ position:sticky; top:24px; display:flex; flex-direction:column; gap:20px; }
@media (max-width:900px){ .rc-results{ position:static; } }

.rc-card{ background:var(--card); border:1px solid var(--line); border-radius:12px; padding:28px 28px 8px; }
.rc-card-title{ font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:0 0 22px; }

/* Slider / numeric field */
.rc-field{ margin:0 0 30px; }
.rc-field-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin:0 0 12px; }
.rc-field-head label{ font-size:.96rem; font-weight:600; color:var(--ink); }
.rc-value-badge{ display:inline-flex; align-items:center; gap:6px; flex:none; }
.rc-num-input{ width:88px; text-align:right; font-family:'Work Sans',sans-serif; font-size:16px; font-weight:600; color:var(--ink);
  background:#fff; border:1.5px solid var(--line); border-radius:6px; padding:8px 10px;
  -moz-appearance:textfield; appearance:textfield; }
.rc-num-input:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.rc-num-input::-webkit-inner-spin-button, .rc-num-input::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
.rc-unit{ font-size:.84rem; color:var(--muted); font-weight:500; }

.rc-currency-wrap{ display:flex; align-items:center; gap:6px; flex:none; }
.rc-currency-wrap .rc-num-input{ width:120px; }

input[type=range].rc-slider{
  -webkit-appearance:none; appearance:none; width:100%; height:26px; border-radius:3px;
  background:linear-gradient(90deg, var(--accent) var(--_pct,50%), var(--line) var(--_pct,50%));
  margin:8px 0 6px; padding:10px 0; background-clip:content-box; box-sizing:border-box; cursor:pointer;
}
input[type=range].rc-slider::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none; width:26px; height:26px; border-radius:50%;
  background:#fff; border:3px solid var(--accent); box-shadow:0 2px 6px rgba(31,58,77,.25); cursor:pointer;
  transition:transform .15s ease;
}
input[type=range].rc-slider::-webkit-slider-thumb:hover{ transform:scale(1.1); }
input[type=range].rc-slider::-moz-range-thumb{
  width:26px; height:26px; border-radius:50%; background:#fff; border:3px solid var(--accent);
  box-shadow:0 2px 6px rgba(31,58,77,.25); cursor:pointer;
}
input[type=range].rc-slider::-moz-range-track{ height:6px; border-radius:3px; background:var(--line); }
input[type=range].rc-slider::-moz-range-progress{ height:6px; border-radius:3px; background:var(--accent); }
input[type=range].rc-slider:focus-visible{ outline:2px solid var(--accent); outline-offset:4px; }

.rc-slider-scale{ display:flex; justify-content:space-between; font-size:.76rem; color:var(--muted); margin:0 0 6px; }
.rc-field .hint{ font-size:.84rem; color:var(--muted); line-height:1.55; margin:8px 0 0; }
.rc-field .rc-live-value{ font-size:.9rem; font-weight:600; color:var(--accent); margin:2px 0 0; }

/* Currency text inputs (savings / passive income) */
.rc-currency-field{ display:flex; flex-direction:column; gap:8px; }
.rc-currency-field label{ font-size:.96rem; font-weight:600; color:var(--ink); }
.rc-currency-input-wrap{ position:relative; display:flex; align-items:center; }
.rc-currency-prefix{ position:absolute; left:14px; font-size:.96rem; font-weight:600; color:var(--muted); pointer-events:none; }
.rc-currency-input-wrap input{
  width:100%; font-family:'Work Sans',sans-serif; font-size:16px; font-weight:600; color:var(--ink);
  background:#fff; border:1.5px solid var(--line); border-radius:6px; padding:12px 14px 12px 40px;
}
.rc-currency-input-wrap input:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.rc-currency-input-wrap span.rc-per-month{ position:absolute; right:14px; font-size:.82rem; color:var(--muted); pointer-events:none; }
.rc-currency-field .hint{ font-size:.84rem; color:var(--muted); line-height:1.55; margin:0; }
.rc-currency-field .rc-caveat{ font-size:.78rem; color:#4E6474; line-height:1.5; margin:2px 0 0; padding:10px 12px; background:var(--card-2); border-radius:6px; }

/* Timeline */
.rc-timeline{ margin:6px 0 30px; }
.rc-timeline-track{ position:relative; height:4px; background:var(--line); border-radius:2px; margin:0 0 10px; }
.rc-timeline-fill{ position:absolute; left:0; top:0; height:100%; background:linear-gradient(90deg,var(--accent),var(--accent-bright)); border-radius:2px; transition:width .3s ease; }
.rc-timeline-dot{ position:absolute; top:50%; transform:translate(-50%,-50%); width:14px; height:14px; border-radius:50%; background:#fff; border:3px solid var(--accent); transition:left .3s ease; }
.rc-timeline-labels{ display:flex; justify-content:space-between; font-size:.82rem; color:var(--muted); }
.rc-timeline-labels b{ color:var(--ink); font-weight:600; }
.rc-timeline-mid{ text-align:center; font-size:.86rem; font-weight:600; color:var(--accent); margin:10px 0 0; }

/* Results panel */
.rc-result-primary{ border-radius:14px; padding:28px 26px; background:var(--band); border:1px solid var(--line); transition:transform .25s ease; }
.rc-result-primary.rc-emphasis{ background:linear-gradient(135deg,var(--accent),#154f70); border-color:transparent; }
.rc-result-primary .rc-result-label{ font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin:0 0 10px; }
.rc-result-primary.rc-emphasis .rc-result-label{ color:rgba(255,255,255,.94); }
.rc-result-primary .rc-result-value{ font-family:'Lora',serif; font-weight:600; font-size:clamp(1.7rem,3vw,2.3rem); color:var(--ink); margin:0 0 8px; font-variant-numeric:tabular-nums; }
.rc-result-primary.rc-emphasis .rc-result-value{ color:#fff; }
.rc-result-primary .rc-result-sub{ font-size:.86rem; line-height:1.55; color:var(--muted); margin:0; }
.rc-result-primary.rc-emphasis .rc-result-sub{ color:rgba(255,255,255,.94); }
.rc-result-primary.is-updated{ animation:rcPulse .5s ease; }
@keyframes rcPulse{ 0%{ transform:scale(1); } 30%{ transform:scale(1.015); } 100%{ transform:scale(1); } }

/* Cost of procrastination (on-screen) */
.rc-card.rc-warn-card{ background:var(--warn-bg); border-color:var(--warn-border); border-top:3px solid var(--warn-ink); }
.rc-warn-card .rc-card-title{ color:var(--warn-ink); }
.rc-warn-lede{ font-size:.82rem; line-height:1.55; color:var(--muted); margin:0 0 18px; }
.rc-warn-grid{ display:flex; flex-direction:column; }
.rc-warn-stat{ display:flex; flex-direction:column; gap:2px; padding:10px 0; border-bottom:1px solid var(--warn-border); }
.rc-warn-stat:last-child{ border-bottom:none; }
.rc-warn-stat-label{ font-size:.8rem; font-weight:600; color:var(--ink); }
.rc-warn-stat-value{ font-family:'Lora',serif; font-weight:600; font-size:1.08rem; color:var(--warn-ink); font-variant-numeric:tabular-nums; }
.rc-warn-stat-delta{ font-size:.78rem; color:var(--muted); }

.rc-secondary-grid{ display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--line); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
@media (max-width:520px){ .rc-secondary-grid{ grid-template-columns:1fr; } }
.rc-stat{ background:var(--card); padding:18px 18px; display:flex; flex-direction:column; gap:6px; }
.rc-stat .rc-stat-label{ font-size:.76rem; color:var(--muted); line-height:1.4; }
.rc-stat .rc-stat-value{ font-size:1.02rem; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }

.rc-warning{ font-size:.86rem; line-height:1.6; color:#8A5A12; background:#FBF3E3; border-radius:8px; padding:12px 14px; margin:0 0 20px; display:none; }
.rc-warning.is-visible{ display:block; }

/* Disclaimer + CTA */
.rc-disclaimer{ margin:48px 0 0; padding:22px 24px; background:var(--card-2); border-radius:10px; }
.rc-disclaimer p{ font-size:.86rem; line-height:1.65; color:var(--ink); margin:0 0 14px; }
.rc-disclaimer p:last-child{ margin-bottom:0; }
.rc-disclaimer p b{ font-weight:700; }

.rc-cta{ margin:48px 0 0; padding:36px; background:var(--band); border-radius:12px; text-align:left; }
.rc-cta h2{ font-size:1.4rem; line-height:1.3; margin:0 0 12px; }
.rc-cta p{ font-size:.96rem; line-height:1.6; color:var(--muted); margin:0 0 24px; max-width:56ch; }

@media (max-width:600px){
  .rc-card{ padding:24px 20px 6px; }
  .rc-cta{ padding:28px 22px; }
}

/* ---- Download bar ---- */
.rc-download-bar{ display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; }
.rc-download-hint{ font-size:.82rem; color:var(--muted); margin:0; }
.rc-name-field{ display:flex; flex-direction:column; gap:6px; flex:1 1 200px; min-width:180px; }
.rc-name-field label{ font-size:.82rem; font-weight:600; color:var(--ink); }
.rc-name-field input{ font-family:'Work Sans',sans-serif; font-size:15px; color:var(--ink); background:#fff; border:1.5px solid var(--line); border-radius:6px; padding:11px 12px; }
.rc-name-field input:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }

/* ---- Print-only document (hidden on screen) ---- */
.rc-print-only{ display:none; }
.rc-print-sheet{ background:#fff; font-family:'Lora',serif; color:var(--ink); }
.rc-print-logo{ height:22px; width:auto; margin:0 0 10px; display:block; }
.rc-print-heading{ font-size:1.15rem; font-weight:600; margin:0 0 6px; }
.rc-print-meta{ font-size:.8rem; color:var(--muted); font-family:'Work Sans',sans-serif; margin:0 0 20px; padding-bottom:14px; border-bottom:1.5px solid var(--ink); }
.rc-print-block{ margin:0 0 18px; }
.rc-print-block.rc-print-compact{ break-inside:avoid; page-break-inside:avoid; }
.rc-print-block-title{ font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); font-family:'Work Sans',sans-serif; margin:0 0 10px; padding-bottom:5px; border-bottom:1px solid var(--line); }
.rc-print-subblock{ margin:0 0 12px; break-inside:avoid; page-break-inside:avoid; }
.rc-print-subblock:last-child{ margin-bottom:0; }
.rc-print-subblock-title{ font-size:.72rem; font-weight:600; color:var(--muted); font-family:'Work Sans',sans-serif; margin:0 0 2px; }
.rc-print-row{ display:flex; justify-content:space-between; gap:14px; padding:6px 0; border-bottom:1px solid var(--line); font-size:.92rem; line-height:1.5; break-inside:avoid; page-break-inside:avoid; }
.rc-print-row:last-child{ border-bottom:none; }
.rc-print-row .k{ color:var(--muted); }
.rc-print-row .v{ font-weight:600; font-variant-numeric:tabular-nums; }

.rc-print-hero-cards{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0 0 4px; break-inside:avoid; page-break-inside:avoid; }
.rc-print-hero-card{ background:var(--card-2); border:1px solid #E7D9BE; border-top:3px solid var(--accent); border-radius:6px; padding:12px 13px; break-inside:avoid; page-break-inside:avoid; }
.rc-print-hero-card .label{ font-size:.66rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); font-family:'Work Sans',sans-serif; margin:0 0 6px; line-height:1.3; }
.rc-print-hero-card .value{ font-family:'Lora',serif; font-weight:600; font-size:1.3rem; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.1; }

.rc-print-warn-title{ font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--warn-ink); font-family:'Work Sans',sans-serif; margin:0 0 4px; padding-bottom:5px; border-bottom:1px solid var(--warn-border); }
.rc-print-warn-lede{ font-size:.72rem; line-height:1.55; color:var(--muted); font-family:'Work Sans',sans-serif; margin:0 0 10px; }
.rc-print-warn-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 4px; break-inside:avoid; page-break-inside:avoid; }
.rc-print-warn-card{ background:var(--warn-bg); border:1px solid var(--warn-border); border-top:3px solid var(--warn-ink); border-radius:6px; padding:10px 11px; break-inside:avoid; page-break-inside:avoid; }
.rc-print-warn-card .label{ font-size:.6rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--warn-ink); font-family:'Work Sans',sans-serif; margin:0 0 7px; line-height:1.3; }
.rc-print-warn-card .value{ font-family:'Lora',serif; font-weight:600; font-size:1rem; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1.15; margin:0 0 3px; }
.rc-print-warn-card .delta{ font-size:.66rem; color:var(--warn-ink); font-weight:600; font-family:'Work Sans',sans-serif; }
.rc-print-warn-card .lifetime{ font-size:.64rem; color:var(--muted); font-family:'Work Sans',sans-serif; margin:5px 0 0; padding-top:5px; border-top:1px dashed var(--warn-border); }

.rc-print-note{ background:var(--band); border-radius:6px; padding:10px 12px; margin:0 0 16px; font-family:'Work Sans',sans-serif; break-inside:avoid; page-break-inside:avoid; }
.rc-print-note p{ font-size:.72rem; line-height:1.6; color:var(--ink); margin:0 0 6px; }
.rc-print-note p:last-child{ margin-bottom:0; }
.rc-print-note ul{ margin:0; padding-left:16px; }
.rc-print-note li{ font-size:.72rem; line-height:1.6; color:var(--ink); }

.rc-print-disclaimer p{ font-size:.78rem; line-height:1.6; color:var(--ink); margin:0 0 10px; font-family:'Work Sans',sans-serif; }
.rc-print-disclaimer p:last-child{ margin-bottom:0; }
.rc-print-footer{ margin:26px 0 0; padding-top:14px; border-top:1px dashed var(--line); font-size:.72rem; color:var(--muted); font-family:'Work Sans',sans-serif; line-height:1.5; }

@media print{
  .no-print, .site-nav, .back-row, .rc-header, .rc-assumptions, .rc-layout, .rc-disclaimer, .rc-cta, .site-footer{ display:none !important; }
  .rc-shell{ padding:0; max-width:none; }
  .rc-print-only{ display:block; }
  body{ background:#fff; }
  @page{ margin:16mm 14mm; }
}
