/* Firefighters Pension Retirement Calculator (FPRC) - Standardized Styles */
.fprc-root{max-width:100% !important;width:100% !important;box-sizing:border-box;overflow-x:hidden}
.fprc-root *{box-sizing:border-box}
.fprc-wrap{
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  max-width: 1200px !important;
  width: 100% !important;
  margin: 24px auto 32px !important;
  padding: 24px;
  color: #083141;
  background: #ffffff;
  border: 2px solid #083141;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
  box-sizing: border-box;
}
.fprc-card{
  border: 1px solid #d5e4eb;
  background: #ffffff;
  border-radius: 12px;
  padding: 20px 24px;
  margin: 20px 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
  transition: box-shadow 0.2s ease;
}
.fprc-card:hover{box-shadow: 0 4px 12px rgba(0,0,0,0.06)}
.fprc-head{
  display:flex;
  gap:12px;
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
}
.fprc-title{
  font-size: 1.8rem;
  font-weight: 700;
  color: #083141;
  line-height: 1.2;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.fprc-sub{
  margin: 0;
  color: #526b75;
  font-size: 0.95rem;
  line-height: 1.6;
}
.fprc-badges{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:12px}
.fprc-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 12px;
  border-radius:10px;
  border:1px solid #cbd5e1;
  background:#f8fafc;
  font-weight:600;
  font-size:0.85rem;
  color:#0f172a;
}
.fprc-badge--good{border-color:#35a56b;background:#e5f6ef;color:#123828}
.fprc-badge--bad{border-color:#ef4444;background:#fff1f2;color:#b91c1c}
.fprc-grid{display:grid; gap:12px}
.fprc-grid-2{grid-template-columns: repeat(2, minmax(0, 1fr));}
.fprc-grid-3{grid-template-columns: repeat(3, minmax(0, 1fr));}
@media (max-width: 1024px){
  .fprc-grid-2,.fprc-grid-3{grid-template-columns:1fr;gap:12px}
}
.fprc-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.fprc-field label{
  display:block;
  font-weight:600;
  font-size:0.9rem;
  color:#0f172a;
  margin-bottom:0;
  line-height:1.4;
}
.fprc-field input,.fprc-field select{
  width:100%;
  border:1px solid #cbd5e1;
  border-radius:8px;
  padding:0.5rem 0.75rem;
  font-size:0.9rem;
  background:#ffffff;
  color:#0f172a;
  transition:border-color 0.2s,box-shadow 0.2s,background-color 0.2s;
  outline:none;
  min-height:38px;
  font-family:inherit;
  line-height:1.5;
  box-sizing:border-box;
}
.fprc-field input:focus,.fprc-field select:focus{
  outline:none;
  border-color:#59747c;
  box-shadow:0 0 0 2px rgba(89,116,124,0.2);
  background:#f8fafc;
}
.fprc-help{font-size:0.9rem;color:#526b75;margin-top:6px;line-height:1.5}
.fprc-check{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.fprc-check input[type="checkbox"]{width:20px;height:20px;min-height:20px;margin:0;padding:0;border-radius:4px;border:2px solid #59747c;background:#ffffff;cursor:pointer;appearance:none;position:relative;flex-shrink:0;transition:all 0.2s ease}
.fprc-check input[type="checkbox"]:checked{background-color:#59747c;border-color:#59747c}
.fprc-check input[type="checkbox"]:checked::after{content:'';position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.fprc-check input[type="checkbox"]:not(:checked){background-color:#ffffff;border-color:#cbd5e1}
.fprc-check input[type="checkbox"]:hover{border-color:#4a5f66;box-shadow:0 0 0 2px rgba(89,116,124,0.1)}
.fprc-check span{font-weight:600;font-size:0.95rem;color:#083141}
.fprc-checkbox-field{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e3edf2;border-radius:8px;background:#fff;transition:all 0.2s ease;cursor:pointer}
.fprc-checkbox-field:hover{background:#f8fafc;border-color:#d5e4eb}
.fprc-checkbox-field input[type="checkbox"]{width:20px;height:20px;min-height:20px;margin:0;padding:0;border-radius:4px;border:2px solid #59747c;background:#ffffff;cursor:pointer;appearance:none;position:relative;flex-shrink:0;transition:all 0.2s ease}
.fprc-checkbox-field input[type="checkbox"]:checked{background-color:#59747c;border-color:#59747c}
.fprc-checkbox-field input[type="checkbox"]:checked::after{content:'';position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.fprc-checkbox-field input[type="checkbox"]:not(:checked){background-color:#ffffff;border-color:#cbd5e1}
.fprc-checkbox-field input[type="checkbox"]:hover{border-color:#4a5f66;box-shadow:0 0 0 2px rgba(89,116,124,0.1)}
.fprc-checkbox-field label{cursor:pointer;font-weight:600;font-size:0.95rem;color:#083141;margin:0;user-select:none}
.fprc-h1{font-size:1.8rem;font-weight:700;color:#083141;margin:0 0 12px 0;line-height:1.2}
.fprc-inst{background:#f8fafc;border:1px solid #d5e4eb;border-radius:8px;padding:12px 16px;margin:16px 0;color:#526b75;font-size:0.9rem;line-height:1.5}
.fprc-btns{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}
.fprc-section{margin:24px 0}
.fprc-step{border:1px solid #d5e4eb;background:#ffffff;border-radius:12px;padding:20px 24px;margin:20px 0;box-shadow:0 2px 8px rgba(0,0,0,0.03)}
.fprc-step h2{font-size:1.3rem;font-weight:800;color:#083141;margin:0 0 8px 0;letter-spacing:-0.01em}
.fprc-step p{margin:0 0 16px 0;color:#526b75;font-size:0.9rem;line-height:1.5}
.fprc-fields{display:grid;gap:16px}
.fprc-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.fprc-hr{height:1px;background:#e3edf2;margin:16px 0}
.fprc-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin:20px 0}
.fprc-chart{border:1px solid #d5e4eb;background:#ffffff;border-radius:8px;padding:16px;margin:12px 0}
.fprc-chart canvas{width:100%;height:300px;display:block;max-width:100%;border:1px solid #e3edf2;border-radius:8px;background:#ffffff}
@media (max-width:768px){.fprc-chart canvas{height:250px}}
.fprc-step-title{margin:0 0 10px 0;font-size:1.3rem;font-weight:800;color:#083141;letter-spacing:-0.01em}
.fprc-step-desc{margin:0 0 16px 0;color:#526b75;font-size:0.9rem;line-height:1.5}
.fprc-btnrow{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.fprc-btn{
  appearance:none;
  border:2px solid #59747c;
  background:#59747c;
  color:#ffffff;
  border-radius:8px;
  padding:0.75rem 1.5rem;
  font-weight:700;
  font-size:0.95rem;
  cursor:pointer;
  transition:all 0.2s ease;
  box-shadow:0 2px 4px rgba(89,116,124,0.2);
}
.fprc-btn:hover{
  background:#4a5f66;
  border-color:#4a5f66;
  box-shadow:0 4px 8px rgba(89,116,124,0.3);
  transform:translateY(-1px);
}
.fprc-btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(89,116,124,0.2)}
.fprc-btn--primary{background:#59747c;border-color:#59747c;color:#ffffff}
.fprc-btn--primary:hover{background:#4a5f66;border-color:#4a5f66}
.fprc-btn--secondary{background:#ffffff;border-color:#59747c;color:#59747c}
.fprc-btn--secondary:hover{background:#f8fafc;border-color:#4a5f66;color:#4a5f66}
.fprc-btn:disabled{opacity:0.55;cursor:not-allowed;pointer-events:none;transform:none}
.fprc-btn--danger{border-color:#ef4444;background:#fff;color:#b91c1c}
.fprc-btn--danger:hover{background:#fff1f2;border-color:#dc2626;color:#991b1b}
.fprc-mini{font-size:12px;color:#475569}
.fprc-table-wrap,.fprc-tablewrap{overflow:auto;border:1px solid #d5e4eb;border-radius:8px;margin:16px 0}
.fprc-table{border-collapse:collapse;width:100%;min-width:900px;background:#fff}
.fprc-table th{
  background:#EBF2F4;
  color:#083141;
  text-align:left;
  font-weight:700;
  font-size:0.85rem;
  padding:12px;
  border-bottom:1px solid #d5e4eb;
  white-space:nowrap;
}
.fprc-table td{
  padding:12px;
  border-bottom:1px solid #e3edf2;
  color:#083141;
  font-size:0.9rem;
  white-space:nowrap;
}
.fprc-table tr:last-child td{border-bottom:none}
.fprc-table .num{text-align:right;font-variant-numeric:tabular-nums}
.fprc-kpis{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:20px 0}
.fprc-kpi{
  border:1px solid #d5e4eb;
  background:#f8fafc;
  border-radius:8px;
  padding:14px 16px;
  margin-bottom:12px;
}
.fprc-kpi .k,.fprc-kpi .t{font-weight:600;color:#083141;font-size:0.85rem;margin-bottom:6px}
.fprc-kpi .v{font-weight:700;color:#083141;font-size:1.5rem;margin-top:4px;line-height:1.2}
.fprc-kpi-sub{font-size:0.85rem;color:#526b75;margin-top:6px;line-height:1.4}
.fprc-footnote{font-size:0.9rem;color:#526b75;line-height:1.5;margin-top:16px}
.fprc-divider{height:1px;background:#e3edf2;margin:20px 0}
.fprc-rowhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.fprc-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 10px;border-radius:999px;
  border:1px solid #d5e4eb;background:#f0f7fa;font-size:0.85rem;color:#083141;
}
.fprc-note{
  border:1px solid #d5e4eb;
  background:#f8fafc;
  border-radius:8px;
  padding:12px 16px;
  color:#083141;
  font-size:0.9rem;
  margin-top:16px;
  line-height:1.5;
}
.fprc-note strong{color:#083141;font-weight:700}
.fprc-printframe{width:0;height:0;border:0;position:absolute;left:-9999px;top:-9999px}

/* Charts */
.fprc-chart-container{
  border:1px solid #d5e4eb;
  background:#ffffff;
  border-radius:8px;
  padding:20px;
  margin:20px 0;
  box-shadow:0 2px 4px rgba(0,0,0,0.03);
}
.fprc-chart-title{
  font-weight:700;
  color:#083141;
  font-size:1.05rem;
  margin-bottom:16px;
}
.fprc-chart-canvas{
  width:100%;
  height:300px;
  display:block;
  max-width:100%;
}
@media (max-width:768px){.fprc-chart-canvas{height:250px}}
.fprc-chart-legend{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin-top:16px;
  justify-content:center;
}
.fprc-chart-legend-item{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:0.85rem;
  color:#526b75;
  font-weight:500;
}
.fprc-chart-legend-color{
  width:16px;
  height:16px;
  border-radius:4px;
  flex-shrink:0;
}
.fprc-charts-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  margin:20px 0;
}
@media (max-width:1024px){.fprc-charts-grid{grid-template-columns:1fr;gap:16px}}
.fprc-table .num{text-align:right;font-variant-numeric:tabular-nums}

/* Details/Summary styling for methodology */
details summary::-webkit-details-marker{display:none}
details summary::marker{display:none}
details[open] summary span:first-child{transform:rotate(90deg);display:inline-block}

/* Print */
@media print{
  body *{visibility:hidden}
  .fprc-noprint{display:none !important}
  .fprc-wrap{max-width:none;border:none;box-shadow:none;padding:20px}
  .fprc-card{box-shadow:none;border:1px solid #d5e4eb}
  .fprc-table{min-width:0}
  .fprc-chart-container{display:none !important}
  @page{size:A4; margin:12mm;}
}

@media (max-width:768px){
  .fprc-wrap{padding:16px;margin:16px auto 24px}
  .fprc-title{font-size:1.4rem}
  .fprc-card{padding:16px 18px;margin:16px 0}
  .fprc-step-title{font-size:1.1rem}
  .fprc-kpi .v{font-size:1.3rem}
  .fprc-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .fprc-table{font-size:0.85rem}
  .fprc-table th,.fprc-table td{padding:8px}
}
