/* ============================================================
   Utilities Bunker — Salary Calculator (v2.1)
   File: /assets/css/modules/calculators/financialcalculators/salary-calculator.v2.1.css
   Purpose:
   - Tool-only layout and visual styling for Salary Calculator
   - Keeps UB Toolkit untouched
   - Mobile-first, responsive, accessible, 44x44 targets
   ============================================================ */

/* Local tool tokens */
:root{
  --salary-radius: 16px;
  --salary-gap: 14px;
  --salary-soft: rgba(0,0,0,.06);
  --salary-soft-2: rgba(0,0,0,.08);
  --salary-accent: rgba(249,58,19,.10);
  --salary-accent-2: rgba(249,58,19,.16);
}

html.ub-theme-dark:root{
  --salary-soft: rgba(255,255,255,.05);
  --salary-soft-2: rgba(255,255,255,.08);
  --salary-accent: rgba(249,58,19,.12);
  --salary-accent-2: rgba(249,58,19,.18);
}

/* Header */
.salary-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  flex-wrap:wrap;
}

.salary-title{
  margin:0;
  font-size:var(--ub-fs-5);
}

.salary-subtitle{
  margin:6px 0 0;
  max-width:72ch;
}

/* How to use */
.salary-steps{
  margin:0;
  padding-left:18px;
}

.salary-steps li + li{
  margin-top:6px;
}

/* Main hero split */
.salary-hero{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:var(--salary-gap);
  align-items:start;
}

@media (max-width: 980px){
  .salary-hero{
    grid-template-columns:1fr;
  }
}

/* Inner panels */
.salary-panel{
  background:var(--ub-surface-2);
  border:1px solid var(--ub-border);
  border-radius:var(--salary-radius);
  padding:12px;
}

.salary-panel--visual{
  background:
    linear-gradient(180deg, var(--salary-accent), transparent 35%),
    var(--ub-surface-2);
}

.salary-panel-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}

.salary-panel-kicker{
  font-size:clamp(13px, 1.2vw, 14px);
  font-weight:950;
  letter-spacing:.01em;
}

.salary-panel-sub{
  margin-top:2px;
  color:var(--ub-muted);
  font-size:12px;
}

.salary-status{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--ub-border);
  background:var(--ub-card-bg);
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}

/* KPI cards */
.salary-kpis{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
}

@media (max-width: 560px){
  .salary-kpis{
    grid-template-columns:1fr;
  }
}

.salary-kpi{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--ub-border);
  background:var(--ub-card-bg);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.salary-k{
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--ub-muted);
}

.salary-v{
  margin-top:4px;
  font-family:var(--ub-mono);
  font-size:clamp(16px, 1rem + .35vw, 20px);
  font-weight:950;
  line-height:1.2;
  overflow-wrap:anywhere;
}

/* Breakdown bars */
.salary-bars{
  margin-top:12px;
  display:grid;
  gap:10px;
}

.salary-bar-card{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--ub-border);
  background:var(--ub-card-bg);
}

.salary-bar-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
  flex-wrap:wrap;
  font-size:13px;
  font-weight:900;
}

.salary-bar-head strong{
  font-family:var(--ub-mono);
  font-size:13px;
  overflow-wrap:anywhere;
}

.salary-bar-track{
  position:relative;
  height:12px;
  border-radius:999px;
  background:var(--ub-surface-3);
  border:1px solid var(--ub-border);
  overflow:hidden;
}

.salary-bar-track > span{
  display:block;
  width:0%;
  height:100%;
  border-radius:999px;
  background:linear-gradient(92deg, var(--ub-btn-grad-a), var(--ub-btn-grad-b));
  box-shadow:0 0 12px var(--ub-btn-glow);
  transition:width .18s ease;
}

@media (prefers-reduced-motion: reduce){
  .salary-bar-track > span{
    transition:none;
  }
}

/* Mini stats */
.salary-mini-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:12px;
}

@media (max-width: 560px){
  .salary-mini-grid{
    grid-template-columns:1fr;
  }
}

.salary-mini{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--ub-border);
  background:var(--ub-card-bg);
}

.salary-mini-label{
  display:block;
  color:var(--ub-muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.salary-mini-value{
  display:block;
  margin-top:4px;
  font-family:var(--ub-mono);
  font-weight:950;
  font-size:14px;
  overflow-wrap:anywhere;
}

/* Money / suffix input helpers */
.salary-money-row,
.salary-suffix-row{
  position:relative;
  display:flex;
  align-items:center;
}

.salary-money-row input,
.salary-suffix-row input{
  width:100%;
}

.salary-money-prefix,
.salary-suffix{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  pointer-events:none;
  font-weight:950;
  color:var(--ub-muted);
  font-size:14px;
}

.salary-money-prefix{
  left:12px;
}

.salary-suffix{
  right:12px;
}

.salary-money-row input{
  padding-left:28px;
}

.salary-suffix-row input{
  padding-right:34px;
}

/* Rules and section headers */
.salary-rule{
  border:none;
  border-top:1px solid var(--ub-border);
  margin:14px 0;
}

.salary-section-title{
  margin:0 0 10px;
  font-size:var(--ub-fs-2);
  font-weight:950;
  letter-spacing:-0.01em;
}

/* Chips / presets / options */
.salary-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}

.salary-chip-row .ub-chip{
  min-height:44px;
}

.salary-chip-row--options{
  margin-top:14px;
}

/* Actions */
.salary-actions{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

/* Summary cards under outputs */
.salary-summary-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-top:12px;
}

@media (max-width: 640px){
  .salary-summary-grid{
    grid-template-columns:1fr;
  }
}

.salary-summary-card{
  padding:12px;
  border-radius:14px;
  border:1px solid var(--ub-border);
  background:var(--ub-card-bg);
}

.salary-summary-label{
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--ub-muted);
}

.salary-summary-value{
  margin-top:4px;
  font-family:var(--ub-mono);
  font-size:clamp(15px, .95rem + .25vw, 18px);
  font-weight:950;
  overflow-wrap:anywhere;
}

/* Show work */
.ub-work{
  font-family:var(--ub-mono);
  font-size:13px;
  line-height:1.58;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}

.salary-footnote{
  margin-top:10px;
  color:var(--ub-muted);
  font-size:12px;
}

/* Reference / FAQ */
.salary-reference-list{
  margin:0;
  padding-left:18px;
}

.salary-reference-list li + li{
  margin-top:6px;
}

.salary-faq-q{
  margin:12px 0 6px;
  font-size:var(--ub-fs-2);
  font-weight:900;
}

.salary-faq-a{
  margin:0 0 10px;
}

/* Rail helper */
.ub-btn--block{
  width:100%;
}

/* Better wrapping for long finance values */
.salary-kpi,
.salary-summary-card,
.salary-bar-card,
.salary-mini{
  min-width:0;
}

/* Collapsible focus enhancement */
.ub-collapsible summary{
  min-height:44px;
  display:flex;
  align-items:center;
}

.ub-collapsible summary:focus{
  outline:none;
  box-shadow:0 0 0 4px var(--ub-focus);
  border-radius:12px;
}

/* Mobile polish */
@media (max-width: 520px){
  .salary-panel{
    padding:10px;
  }

  .salary-bar-head{
    align-items:flex-start;
  }

  .salary-status{
    width:100%;
    justify-content:center;
  }

  .salary-head .ub-btn{
    width:100%;
  }
}