/* FIRE Number Calculator (UK) - Scoped, theme-proof */

.firenc-root{--fir-border:#083141;--fir-add:#59747C;--fir-head:#EBF2F4;--fir-bg:#ffffff;--fir-soft:#f9fafb;--fir-muted:#64748b;--fir-text:#083141;--fir-ok:#16a34a;--fir-warn:#f59e0b;--fir-bad:#dc2626;--fir-primary:#2563eb;--fir-primary-hover:#1e4fd6;--fir-card:#fafafa;--fir-field-border:#cbd5e1;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--fir-text);box-sizing:border-box !important;width:1100px !important;max-width:1100px !important;margin-left:auto !important;margin-right:auto !important;margin-top:0;margin-bottom:3rem !important;padding:0 1rem !important;display:block !important}

.firenc-root *{box-sizing:border-box}

.firenc-header{border:1px solid var(--fir-border);border-radius:12px;background:var(--fir-bg);padding:20px;display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin-bottom:1.5rem;box-shadow:0 4px 8px rgba(0,0,0,0.03)}
.firenc-titlewrap{flex:1}
.firenc-title{margin:0 0 0.25rem 0;font-size:1.6rem;line-height:1.2;font-weight:700;color:var(--fir-text)}
.firenc-subtitle{margin:0;color:var(--fir-muted);font-size:0.95rem}

.firenc-actions{display:flex;gap:10px;flex-wrap:wrap;margin:1.5rem 0}

.firenc-btn{appearance:none;border:1px solid var(--fir-field-border);background:#fff;color:#111827;padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all 0.2s}
.firenc-btn:hover:not(:disabled){background:#f3f4f6;border-color:var(--fir-primary)}
.firenc-btn:active:not(:disabled){transform:translateY(1px)}
.firenc-btn:disabled{opacity:0.5;cursor:not-allowed}
.firenc-btn--primary{border-color:var(--fir-primary);background:var(--fir-primary);color:#fff}
.firenc-btn--primary:hover:not(:disabled){background:var(--fir-primary-hover);border-color:var(--fir-primary-hover)}
.firenc-btn--secondary{border-color:var(--fir-field-border);background:#fff}

.firenc-inst{margin-top:12px;border:1px solid var(--fir-field-border);background:var(--fir-soft);border-radius:12px;padding:10px 12px;font-size:0.9rem;color:var(--fir-muted);line-height:1.5}

.firenc-steps{margin-top:1rem;display:flex;flex-direction:column;gap:1.5rem}
.firenc-step{background:#ffffff;border-radius:12px;border:1px solid #d1e7dd;border-left:4px solid var(--fir-primary);padding:0;box-shadow:0 4px 8px rgba(0,0,0,0.03);margin-bottom:0;position:relative;overflow:hidden}
.firenc-stephead{background:linear-gradient(135deg,var(--fir-primary),var(--fir-primary-hover));color:#fff;padding:0.75rem 1.2rem;margin:0;display:flex;align-items:center;gap:0.75rem;font-size:1.1rem;font-weight:700}
.firenc-stepnum{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:rgba(255,255,255,0.25);border-radius:50%;font-size:0.9rem;font-weight:800;margin-right:0.25rem}
.firenc-steptitle{margin:0;font-size:1.1rem;font-weight:700;color:#fff}
.firenc-stepdesc{margin:0.75rem 1.2rem 0;font-size:0.9rem;color:var(--fir-muted);line-height:1.5}
.firenc-stepcontent{padding:1rem 1.2rem}
.firenc-help{margin:0.5rem 0 0 0;color:#486571;font-size:0.9rem;line-height:1.5}
.firenc-subsection-title{margin:1.5rem 0 0.75rem 0;padding-bottom:0.5rem;border-bottom:2px solid var(--fir-field-border);font-size:1rem;font-weight:700;color:var(--fir-text);grid-column:1/-1}
.firenc-subsection-title:first-child{margin-top:0}

.firenc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0.75rem 1rem;align-items:start}
@media (max-width:800px){.firenc-grid{grid-template-columns:minmax(0,1fr)}}

.firenc-fieldrow{display:flex;flex-direction:column;gap:0.25rem;min-width:0}
.firenc-label{font-size:0.85rem;font-weight:600;color:var(--fir-text);flex-shrink:0;margin-bottom:0.25rem}
.firenc-note{font-size:0.85rem;color:var(--fir-muted);line-height:1.5}

.firenc-field,.firenc-select{width:100%;border:1px solid var(--fir-field-border);border-radius:8px;padding:0.4rem 0.55rem;background:#fff;color:var(--fir-text);font-size:0.9rem;box-sizing:border-box;transition:border-color 0.2s,box-shadow 0.2s;outline:none;min-height:32px}
.firenc-field:focus,.firenc-select:focus{outline:none;border-color:var(--fir-primary);box-shadow:0 0 0 2px rgba(37,99,235,0.2)}

.firenc-results{margin-top:1.5rem;border:1px solid var(--fir-field-border);border-radius:12px;background:#fff;padding:1rem 1.2rem;box-shadow:0 4px 8px rgba(0,0,0,0.03)}
.firenc-resultshead{margin-bottom:1.5rem}
.firenc-results-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--fir-field-border)}
.firenc-h2{margin:0 0 0.5rem 0;font-size:1.5rem;font-weight:700;color:var(--fir-text)}
.firenc-h3{margin:0 0 0.75rem 0;font-size:1.2rem;font-weight:700;color:var(--fir-text)}

/* Prominent FIRE Number Display */
.firenc-firenumber-section{margin-bottom:2rem}
.firenc-firenumber-box{border:3px solid var(--fir-primary);border-radius:12px;background:linear-gradient(135deg,rgba(37,99,235,0.05) 0%,rgba(37,99,235,0.02) 100%);padding:32px;text-align:center;box-shadow:0 4px 8px rgba(0,0,0,0.03)}
.firenc-firenumber-label{font-size:1.1rem;font-weight:600;color:var(--fir-text);margin-bottom:16px;text-transform:uppercase;letter-spacing:1px}
.firenc-firenumber-value{font-size:3.5rem;font-weight:800;color:var(--fir-primary);line-height:1.1;margin-bottom:8px;text-shadow:0 2px 4px rgba(0,0,0,0.1)}
.firenc-firenumber-adjusted{margin-top:20px;padding-top:20px;border-top:2px dashed var(--fir-field-border)}
.firenc-firenumber-adjusted:first-of-type{margin-top:16px;padding-top:16px}
.firenc-firenumber-adjusted-label{font-size:0.9rem;font-weight:600;color:var(--fir-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:0.5px}
.firenc-firenumber-adjusted-value{font-size:2rem;font-weight:700;color:var(--fir-ok);line-height:1.1}

/* Prominent FIRE Date Boxes */
.firenc-firedates{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:2rem}
.firenc-firedate-box{border:2px solid var(--fir-primary);border-radius:12px;background:linear-gradient(135deg,rgba(37,99,235,0.08) 0%,rgba(37,99,235,0.03) 100%);padding:24px;text-align:center;box-shadow:0 4px 8px rgba(0,0,0,0.05)}
.firenc-firedate-box--projected{border-color:var(--fir-primary)}
.firenc-firedate-box--sustainable{border-color:var(--fir-ok)}
.firenc-firedate-label{font-size:1rem;font-weight:600;color:var(--fir-text);margin-bottom:12px;text-transform:uppercase;letter-spacing:0.5px}
.firenc-firedate-value{font-size:2rem;font-weight:800;color:var(--fir-primary);line-height:1.1;margin-bottom:8px}
.firenc-firedate-box--sustainable .firenc-firedate-value{color:var(--fir-ok)}
.firenc-firedate-desc{font-size:0.9rem;color:var(--fir-muted);line-height:1.4;margin-top:8px}

.firenc-badges{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:1.5rem}
.firenc-badge{border:1px solid #e2e8f0;border-radius:12px;padding:12px;font-weight:600;font-size:0.85rem;background:#fdfdfd;display:flex;flex-direction:column;gap:4px;min-width:140px}
.firenc-badge-label{font-size:0.75rem;color:var(--fir-muted);text-transform:uppercase;letter-spacing:0.3px}
.firenc-badge-value{font-size:1rem;font-weight:700;color:var(--fir-text)}
.firenc-badge--ok{border-color:rgba(22,163,74,0.3);background:rgba(22,163,74,0.08)}
.firenc-badge--ok .firenc-badge-value{color:var(--fir-ok)}
.firenc-badge--warn{border-color:rgba(245,158,11,0.3);background:rgba(245,158,11,0.08)}
.firenc-badge--warn .firenc-badge-value{color:var(--fir-warn)}
.firenc-badge--bad{border-color:rgba(220,38,38,0.3);background:rgba(220,38,38,0.08)}
.firenc-badge--bad .firenc-badge-value{color:var(--fir-bad)}
.firenc-badge--neutral{border-color:var(--fir-field-border);background:var(--fir-soft)}

.firenc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem}
.firenc-cards-section-title{grid-column:1/-1;font-size:1.2rem;font-weight:700;color:var(--fir-text);margin:1.5rem 0 1rem 0;padding-bottom:0.75rem;border-bottom:2px solid var(--fir-primary)}
.firenc-cards-section-title:first-child{margin-top:0}
.firenc-card{border:1px solid var(--fir-field-border);border-radius:12px;padding:12px;background:#fdfdfd;display:flex;flex-direction:column;gap:8px}
.firenc-card--headline{border:2px solid var(--fir-primary);background:linear-gradient(135deg,rgba(37,99,235,0.05) 0%,rgba(37,99,235,0.02) 100%);padding:16px;box-shadow:0 2px 4px rgba(0,0,0,0.05)}
.firenc-card--headline .firenc-cardvalue{font-size:1.75rem;color:var(--fir-primary)}
.firenc-cardtitle{font-size:0.85rem;color:var(--fir-muted);text-transform:uppercase;letter-spacing:0.3px;font-weight:600}
.firenc-cardvalue{font-size:1.5rem;font-weight:700;color:var(--fir-text)}
.firenc-cardsub{font-size:0.8rem;color:var(--fir-muted);line-height:1.4}
.firenc-card--ok{border-color:rgba(22,163,74,0.3);background:rgba(22,163,74,0.05)}
.firenc-card--warn{border-color:rgba(245,158,11,0.3);background:rgba(245,158,11,0.05)}
.firenc-card--bad{border-color:rgba(220,38,38,0.3);background:rgba(220,38,38,0.05)}
.firenc-spending-note{margin-top:12px;padding-top:12px;border-top:1px solid var(--fir-field-border)}
.firenc-spending-note-title{font-size:0.85rem;font-weight:600;color:var(--fir-text);margin-bottom:6px}
.firenc-spending-note-text{font-size:0.8rem;color:var(--fir-muted);line-height:1.5}

/* Impact of Guaranteed Income Box */
.firenc-impact-box{border:2px solid var(--fir-ok);border-radius:12px;background:linear-gradient(135deg,rgba(22,163,74,0.08) 0%,rgba(22,163,74,0.03) 100%);padding:24px;box-shadow:0 4px 8px rgba(0,0,0,0.05)}
.firenc-impact-header{margin-bottom:20px}
.firenc-impact-title{font-size:1.3rem;font-weight:700;color:var(--fir-text);margin-bottom:8px}
.firenc-impact-subtitle{font-size:0.95rem;color:var(--fir-muted);line-height:1.5}
.firenc-impact-content{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
@media (max-width:800px){.firenc-impact-content{grid-template-columns:1fr}}
.firenc-impact-sources{display:flex;flex-direction:column;gap:16px}
.firenc-impact-source{border-left:3px solid var(--fir-ok);padding-left:16px}
.firenc-impact-source-name{font-size:1rem;font-weight:700;color:var(--fir-text);margin-bottom:6px}
.firenc-impact-source-amount{font-size:1.2rem;font-weight:700;color:var(--fir-ok);margin-bottom:4px}
.firenc-impact-source-age{font-size:0.85rem;color:var(--fir-muted)}
.firenc-impact-summary{display:flex;flex-direction:column;gap:16px;padding:20px;background:rgba(255,255,255,0.6);border-radius:8px}
.firenc-impact-summary-item{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--fir-field-border)}
.firenc-impact-summary-item:last-child{border-bottom:none;padding-bottom:0}
.firenc-impact-summary-label{font-size:0.95rem;color:var(--fir-text);font-weight:600}
.firenc-impact-summary-value{font-size:1.1rem;color:var(--fir-text);font-weight:700}

.firenc-suggestions{margin-top:1.5rem;border-top:1px solid var(--fir-field-border);padding-top:1.5rem}
.firenc-suggrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:1rem}
.firenc-sug{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fdfdfd}
.firenc-sugtitle{font-weight:700;font-size:0.95rem;color:var(--fir-text);margin-bottom:0.5rem}
.firenc-sugbody{font-size:0.85rem;color:var(--fir-muted);line-height:1.5}

.firenc-tablewrap{margin-top:1.5rem;border:1px solid var(--fir-field-border);border-radius:12px;overflow:hidden}
.firenc-tabletitle{background:var(--fir-head);padding:12px 16px;font-weight:700;font-size:0.95rem;border-bottom:1px solid var(--fir-field-border);color:var(--fir-text)}
.firenc-table{width:100%;border-collapse:collapse;font-size:0.85rem;background:#fff}
.firenc-table thead{background:var(--fir-head)}
.firenc-table th{padding:12px 16px;border-bottom:2px solid var(--fir-border);text-align:right;font-weight:700;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.3px;color:var(--fir-text);white-space:nowrap}
.firenc-table th:first-child{text-align:left}
.firenc-table td{padding:10px 16px;border-bottom:1px solid var(--fir-field-border);text-align:right;color:var(--fir-text)}
.firenc-table td:first-child{text-align:left;font-weight:600}
.firenc-table tbody tr:hover{background:var(--fir-soft)}
.firenc-table tbody tr:last-child td{border-bottom:none}
.firenc-table tbody tr.firenc-hit{background:rgba(22,163,74,0.08);font-weight:600}
.firenc-scroll{overflow-x:visible;max-height:600px;overflow-y:auto}
@media (max-width:1160px){.firenc-scroll{overflow-x:auto}}

.firenc-foot{margin-top:10px;color:var(--fir-muted);font-size:12px}

/* Charts */
.firenc-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:20px;margin:1.5rem 0}
.firenc-chart-block{border:1px solid var(--fir-field-border);border-radius:12px;padding:20px;background:#fff}
.firenc-chart-title{font-size:1rem;font-weight:700;margin:0 0 16px 0;color:var(--fir-text)}
.firenc-chart-canvas{width:100%;height:300px;max-width:100%}
.firenc-chart-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;justify-content:center}
.firenc-legend-item{display:flex;align-items:center;gap:6px;font-size:0.8rem;color:var(--fir-text)}
.firenc-legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}

/* Toggle */
.firenc-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}
.firenc-toggle input[type="checkbox"]{width:44px;height:24px;appearance:none;background:#d1d5db;border-radius:12px;position:relative;cursor:pointer;transition:background 0.2s}
.firenc-toggle input[type="checkbox"]:checked{background:var(--fir-primary)}
.firenc-toggle input[type="checkbox"]::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform 0.2s;box-shadow:0 2px 4px rgba(0,0,0,0.2)}
.firenc-toggle input[type="checkbox"]:checked::after{transform:translateX(20px)}
.firenc-toggletext{font-size:0.9rem;color:var(--fir-text);font-weight:500}

/* Field wrapper */
.firenc-fieldwrap{display:flex;flex-direction:column;gap:6px}

/* Responsive */
@media (max-width:1160px){
  .firenc-root{width:calc(100% - 2rem) !important;max-width:calc(100% - 2rem) !important;margin-left:1rem !important;margin-right:1rem !important;padding:0 1rem !important}
  .firenc-firedates{grid-template-columns:1fr;gap:1rem}
  .firenc-firedate-box{padding:20px}
  .firenc-firedate-value{font-size:1.5rem}
  .firenc-charts{grid-template-columns:1fr}
  .firenc-chart-canvas{height:250px}
  .firenc-cards{grid-template-columns:1fr}
  .firenc-suggrid{grid-template-columns:1fr}
  .firenc-badge{min-width:auto}
  .firenc-firenumber-value{font-size:2.5rem}
  .firenc-firenumber-adjusted-value{font-size:1.5rem}
}
@media (max-width:640px){
  .firenc-title{font-size:1.3rem}
  .firenc-steptitle{font-size:1.1rem}
  .firenc-grid{grid-template-columns:1fr}
  .firenc-table{font-size:0.75rem}
  .firenc-table th,.firenc-table td{padding:8px 12px}
  .firenc-firenumber-box{padding:24px 16px}
  .firenc-firenumber-value{font-size:2rem}
  .firenc-firenumber-adjusted-value{font-size:1.3rem}
  .firenc-firenumber-label{font-size:0.95rem}
}

/* Print */
@media print{
  body{background:#fff !important}
  .firenc-header .firenc-actions, .firenc-inst, .firenc-step{display:none !important}
  .firenc-container{max-width:none;padding:0}
  .firenc-results{border:none;padding:0}
  .firenc-tablewrap{border:none}
  .firenc-table th,.firenc-table td{padding:6px 8px}
  .firenc-charts{display:none}
}
