/* ═══════════════════════════════════════════════
   CréditoFácil — Sharp Yellow Square Design
   ═══════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --y:   #FFD000;
  --ydk: #E6BB00;
  --blk: #111111;
  --wht: #FFFFFF;
  --bg:  #F2F2F2;
  --g1:  #E8E8E8;
  --g2:  #CCCCCC;
  --g3:  #888888;
  --grn: #27AE60;
  --red: #E74C3C;
}

/* ── BASE ── */
body {
  font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
  background: var(--bg);
  color: var(--blk);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  line-height: 1.45;
}

/* ── LOADING SCREEN ── */
.loading-screen {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  transition: opacity .35s ease, visibility .35s ease;
}
.loading-screen.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.loading-inner {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.loading-logo {
  width: 64px;
  height: 64px;
  object-fit: contain;
}
.loading-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid var(--g1);
  border-top-color: var(--y);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
.loading-text {
  font-size: .9rem;
  color: var(--g3);
  font-weight: 500;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── HEADER ── */
header {
  background: var(--blk);
  border-bottom: 4px solid var(--y);
  padding: 0 1.5rem;
}
.logo-wrap {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-left: 1.5rem;
}
.logo-svg {
  width: 55px;
  height: 55px;
  flex: 0 0 55px;
  display: block;
  margin-top: 3px;
}
.header-inner {
  width: 100%;
  max-width: 100%;
  padding: 0;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2rem;
}
.logo { font-size: 1.5rem; font-weight: 900; color: var(--wht); letter-spacing: 2px; }
.logo span { color: var(--y); }
.step-ind { font-size: .75rem; font-weight: 800; color: var(--g3); letter-spacing: 1.5px; text-align: center; }

/* ── PROGRESS ── */
.prog-wrap { height: 5px; background: #333; }
.prog-fill  { height: 100%; background: var(--y); width: 0%; transition: width .4s ease; }

/* ── MAIN ── */
main { flex: 1; max-width: 1800px; width: 100%; margin: 0 3% 0 4%; padding: 2rem 1rem; }

/* ── STEPS ── */
.step { display: none; }
.step.active { display: block; animation: pop .25s ease; }
@keyframes pop { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

/* ── HERO ── */
.hero {
  background: var(--blk);
  border: 3px solid var(--blk);
  padding: 3rem 2.5rem;
}
.hero-tag {
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: 2px;
  color: var(--y);
  margin-bottom: 1rem;
}
.hero h1 {
  font-size: 2.8rem;
  font-weight: 900;
  color: var(--wht);
  line-height: 1.1;
  margin-bottom: .8rem;
}
.hero p { color: #aaa; font-size: 1rem; margin-bottom: 1.5rem; }
.trust-row { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.4rem; margin-top: -.3rem; }
.trust-pill { border: 1.5px solid rgba(255,255,255,.25); color: rgba(255,255,255,.75); padding: .28rem .75rem; font-size: .67rem; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }
.hero-note {
  margin: -1rem 0 1.6rem;
  color: #d7d7d7;
  font-size: .82rem;
  line-height: 1.6;
  max-width: 520px;
}
.check-list { list-style: none; margin-bottom: 2.5rem; }
.check-list li {
  color: var(--wht);
  font-size: 1rem;
  padding: .35rem 0 .35rem 1.6rem;
  position: relative;
}
.check-list li::before { content: '→'; position: absolute; left: 0; color: var(--y); font-weight: 900; }

/* ── Q BLOCKS ── */
.q-block {
  background: var(--wht);
  border: 3px solid var(--blk);
  padding: 1.8rem;
  margin-bottom: .8rem;
}
.q-meta {
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: 2.5px;
  color: var(--g3);
  text-transform: uppercase;
  margin-bottom: .5rem;
}
.q-block h2 {
  font-size: 1.25rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 1rem;
}
.q-hint { font-size: .82rem; color: var(--g3); margin-top: -.5rem; margin-bottom: .8rem; }

/* ── OPTION BUTTONS ── */
.opt-grid { display: grid; gap: .65rem; }
.opt-grid.field-error .opt { border-color: rgba(231,76,60,.75); background: #ffebe9; }
.cols-2   { grid-template-columns: repeat(2,1fr); }
.cols-3   { grid-template-columns: repeat(3,1fr); }
.cols-4   { grid-template-columns: repeat(4,1fr); }

.opt {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--blk);
  background: var(--bg);
  padding: .9rem .5rem;
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
  text-align: center;
  line-height: 1.3;
  border-radius: 0;
  transition: background .12s;
}
.opt:hover  { background: var(--y); border-color: var(--blk); }
.opt.sel    { background: var(--y); border: 2px solid var(--blk); }

.opt-lg         { padding: 1.2rem .5rem; font-size: .9rem; }
.opt-icon {
  width: 26px;
  height: 26px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  margin-bottom: .4rem;
  display: block;
}

/* ── INPUTS ── */
.input-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.inp-wrap label {
  display: block;
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .8px;
  margin-bottom: .4rem;
  line-height: 1.4;
}
.inp-wrap label small {
  display: block;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  font-size: .72rem;
  color: var(--g3);
}
.inp-wrap input {
  width: 100%;
  border: 1.5px solid var(--blk);
  background: var(--g1);
  padding: .85rem 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  outline: none;
  border-radius: 0;
  transition: border-color .12s, background .12s;
}
.inp-wrap input:focus { border-color: var(--y); border-width: 2px; background: var(--wht); }
.inp-wrap input.err   { border-color: var(--red); background: #fff5f5; }

/* ── RANGE SLIDERS (form inputs only) ── */
.inp-wrap input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 8px;
  background: var(--g1);
  border: 1px solid var(--blk);
  border-radius: 0;
  outline: none;
  cursor: pointer;
  margin: .6rem 0 .25rem;
  padding: 0;
  font-size: 1rem; /* reset */
  font-weight: 400;
}
.inp-wrap input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 24px;
  height: 24px;
  background: var(--y);
  border: 2px solid var(--blk);
  border-radius: 0;
  cursor: pointer;
}
.inp-wrap input[type="range"]::-moz-range-thumb {
  width: 24px;
  height: 24px;
  background: var(--y);
  border: 2px solid var(--blk);
  border-radius: 0;
  cursor: pointer;
  box-sizing: border-box;
}
.inp-wrap input[type="range"]:focus { border-color: var(--y); background: var(--g1); border-width: 2px; }
.inp-wrap input[type="range"]:focus::-webkit-slider-thumb { box-shadow: 0 0 0 3px rgba(255,208,0,.4); }
.slider-val-badge {
  display: inline-block;
  background: var(--y);
  color: var(--blk);
  font-size: .78rem;
  font-weight: 900;
  padding: .08rem .4rem;
  margin-left: .45rem;
  letter-spacing: 0;
  vertical-align: middle;
  font-family: inherit;
}
.slider-range-labels {
  display: flex;
  justify-content: space-between;
  font-size: .58rem;
  color: var(--g3);
  font-weight: 700;
  letter-spacing: .3px;
  margin-top: .1rem;
}

/* ── INLINE COUNTRY PICKER ── */
.cp-cell {
  display: flex;
}
.cp-cell .opt {
  flex: 1;
  width: 100%;
}
.cp-search.cp-inline {
  flex: 1;
  width: 100%;
  min-height: 44px;
  border: 1.5px solid var(--blk);
  background: var(--g1);
  padding: .5rem .75rem;
  font-size: .82rem;
  font-weight: 700;
  outline: none;
  font-family: inherit;
  box-sizing: border-box;
  border-radius: 0;
}
.cp-search.cp-inline:focus { border-color: var(--y); border-width: 2px; background: var(--wht); }
.cp-list {
  grid-template-columns: 1fr 1fr;
  border: 1.5px solid var(--blk);
  margin-top: .4rem;
  background: var(--wht);
  max-height: 220px;
  overflow-y: auto;
  scrollbar-width: thin;
}
.cp-item {
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .48rem .8rem;
  cursor: pointer;
  font-size: .8rem;
  font-weight: 600;
  border: none;
  border-bottom: 1px solid var(--g1);
  border-right: 1px solid var(--g1);
  background: var(--wht);
  text-align: left;
  font-family: inherit;
  transition: background .1s;
}
.cp-item:hover { background: var(--y); }
.cp-flag-img {
  width: 20px;
  height: 15px;
  object-fit: cover;
  vertical-align: middle;
  flex-shrink: 0;
  display: inline-block;
}
.cp-cell .opt {
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ── NAVIGATION ROW ── */
.nav-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 1.2rem;
}

/* ── BUTTONS ── */
.btn-main {
  background: var(--y);
  color: var(--blk);
  border: 2px solid var(--blk);
  padding: 1rem 2.8rem;
  font-size: .95rem;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 0;
  transition: background .12s, color .12s;
}
.btn-main:hover { background: var(--blk); color: var(--y); }

.btn-back {
  background: var(--wht);
  color: var(--blk);
  border: 1.5px solid var(--blk);
  padding: .9rem 2rem;
  font-size: .85rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 0;
  transition: background .12s;
}
.btn-back:hover { background: var(--g1); }

/* ── RESULTS ── */
.result-header { margin-bottom: .8rem; }
.result-header h2 { font-size: 1.5rem; font-weight: 900; text-transform: uppercase; }

.r-block {
  background: var(--wht);
  border: 3px solid var(--blk);
  padding: 1.6rem;
  margin-bottom: .55rem;
}
.result-disclaimer {
  font-size: .72rem;
  line-height: 1.5;
  color: #5a5a5a;
  background: #fff8e1;
  border: 1px solid #f1c40f;
  border-radius: 6px;
  padding: .8rem 1rem;
  margin-top: .6rem;
}
.result-disclaimer a {
  display: inline-block;
  margin-top: .3rem;
  color: var(--blk);
  text-decoration: underline;
  font-weight: 700;
}
.r-title {
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: 2.5px;
  color: var(--g3);
  text-transform: uppercase;
  border-bottom: 2px solid var(--y);
  padding-bottom: .35rem;
  margin-bottom: .85rem;
  display: inline-block;
}

.result-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  margin-bottom: 0;
}
.result-tab-btn {
  background: var(--blk);
  color: rgba(255,255,255,.5);
  border: none;
  border-right: 1.5px solid rgba(255,255,255,.12);
  padding: .75rem 1rem;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: background .12s, color .12s;
}
.result-tab-btn:last-child { border-right: none; }
.result-tab-btn:hover { color: var(--y); }
.result-tab-btn.active {
  background: var(--y);
  color: var(--blk);
}

.result-tab-panel { display: none; }
.result-tab-panel.active { display: block; }

/* Score */
.score-row { display: flex; align-items: center; gap: .9rem; margin-bottom: .72rem; }
.score-num {
  font-size: 3.4rem;
  font-weight: 900;
  background: var(--blk);
  color: var(--y);
  padding: .5rem 1.2rem;
  min-width: 110px;
  text-align: center;
  line-height: 1;
  transition: color .35s ease;
}
.score-tag { font-size: 1.4rem; font-weight: 900; text-transform: uppercase; margin-bottom: .3rem; }
.score-sub { font-size: .9rem; color: var(--g3); }
.score-context {
  background: var(--bg);
  border: 1.5px solid var(--blk);
  padding: .8rem 1rem;
  margin-bottom: .9rem;
}
.score-context-main {
  font-size: .82rem;
  font-weight: 700;
  margin-bottom: .35rem;
}
.score-context-sub {
  font-size: .76rem;
  color: var(--g3);
  line-height: 1.5;
}

/* Gauge */
.gauge-wrap { position: relative; padding-bottom: 1.6rem; }
.gauge-track { display: flex; height: 24px; border: 2px solid var(--blk); overflow: hidden; }
.gauge-needle {
  position: absolute;
  top: -4px;
  width: 3px;
  height: 26px;
  background: var(--blk);
  transform: translateX(-50%);
  transition: left .8s cubic-bezier(.68,-.55,.27,1.55);
  left: 50%;
}
.gauge-labs {
  display: flex;
  justify-content: space-between;
  font-size: .72rem;
  color: var(--g3);
  font-weight: 700;
  text-transform: uppercase;
  margin-top: .5rem;
}

/* Verdict */
.verdict { border-left-width: 6px !important; }
.verdict.approved { border-color: var(--grn) !important; }
.verdict.review   { border-color: var(--ydk) !important; }
.verdict.rejected { border-color: var(--red) !important; }
.v-title { font-size: 1.1rem; font-weight: 900; text-transform: uppercase; margin-bottom: .5rem; }
.v-text  { font-size: .95rem; line-height: 1.7; color: #333; }

/* Pay grid */
.pay-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: .65rem; }
.pay-item {
  background: var(--blk);
  padding: 1.2rem 1rem;
  text-align: center;
}
.pay-label { font-size: .7rem; color: #aaa; text-transform: uppercase; letter-spacing: .5px; margin-bottom: .4rem; }
.pay-value { font-size: 1.35rem; font-weight: 900; color: var(--y); }

/* Banks */
.banks-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.banks-title-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: .5rem;
  flex-wrap: wrap;
}

.banks-title-row .r-title {
  margin-bottom: 0;
}

.btn-regional-toggle {
  background: var(--y);
  color: var(--blk);
  border: 2px solid var(--blk);
  padding: .6rem 1.6rem;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 0;
  transition: background .12s, color .12s;
  white-space: nowrap;
}

.btn-regional-toggle:hover {
  background: var(--blk);
  color: var(--y);
}

.banks-regional-section {
  margin-top: 1.25rem;
  border-top: 3px solid var(--y);
  padding-top: 1rem;
}

.banks-regional-header {
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #fff;
  background: #333;
  padding: .4rem .7rem;
  margin-bottom: .75rem;
}

#onlineSection .banks-regional-header {
  background: #004481;
}

.bank-reco-board {
  border: 2px solid var(--blk);
  background: linear-gradient(180deg, #fffbe0 0%, #fff 100%);
  padding: .9rem;
}
.bank-reco-head {
  margin-bottom: .65rem;
}
.bank-reco-title {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: 1px;
  color: var(--blk);
}
.bank-reco-sub {
  font-size: .76rem;
  color: #444;
  margin-top: .2rem;
}
.bank-reco-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .55rem;
}
.bank-reco-card {
  border: 1.5px solid var(--blk);
  background: #fff;
  padding: .55rem .6rem;
}
.bank-reco-rank {
  font-size: .62rem;
  font-weight: 900;
  color: var(--g3);
  letter-spacing: .8px;
}
.bank-reco-name {
  font-size: .84rem;
  font-weight: 900;
  color: var(--blk);
  margin: .15rem 0;
}
.bank-reco-score {
  font-size: .95rem;
  font-weight: 900;
  color: #1f7f3a;
}
.bank-reco-prob {
  font-size: .7rem;
  color: #555;
  margin: .1rem 0 .35rem;
}
.bank-reco-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
}
.bank-reco-chips span {
  border: 1px solid var(--g2);
  background: var(--g1);
  color: #444;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .4px;
  padding: .15rem .25rem;
}
.bank-reco-foot {
  margin-top: .65rem;
  font-size: .72rem;
  color: #3f3f3f;
  line-height: 1.5;
}
.bank-item {
  background: #fff;
  border: 2px solid var(--blk);
  display: flex;
  flex-direction: column;
}
.bank-name {
  background: #fff;
  color: var(--blk);
  padding: .65rem .9rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  border-bottom: 1px solid var(--g2);
}
.bank-badge {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  background: #f5f5f5;
}
.bank-badge svg,
.bank-badge img {
  display: block;
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 0;
}
.bank-labels {
  min-width: 0;
  flex: 1;
}
.bank-short {
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--blk);
  line-height: 1.1;
}
.bank-full {
  font-size: .62rem;
  color: #888;
  line-height: 1.25;
  margin-top: .15rem;
}
.bank-prob-badge {
  flex-shrink: 0;
  font-size: .9rem;
  font-weight: 900;
  color: var(--blk);
  background: var(--y);
  border: 2px solid var(--blk);
  padding: .22rem .5rem;
  min-width: 48px;
  text-align: center;
}
.bank-info {
  padding: .35rem .9rem .45rem;
}
.bank-prob-meter {
  height: 6px;
  background: #eee;
}
.bank-prob-meter span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #e74c3c, #f1c40f 56%, #2ecc71);
}
.bank-prob-row {
  font-size: .75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin-bottom: .35rem;
}
.bank-rigor {
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
  border: 1px solid var(--g2);
  color: var(--g3);
  padding: .18rem .35rem;
}
.bank-prob-meter {
  height: 6px;
  background: var(--g1);
  border: 1px solid var(--g2);
  margin-bottom: .4rem;
}
.bank-prob-meter span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #e74c3c, #f1c40f 56%, #2ecc71);
}
.bank-fit-row {
  font-size: .72rem;
  color: #2b2b2b;
  margin-bottom: .25rem;
}
.bank-fit-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  margin-bottom: .45rem;
}
.bank-fit-chips span {
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .4px;
  color: #8a6d00;
  border: 1px solid #e8d58a;
  background: #fff7cf;
  padding: .12rem .28rem;
}
.bank-why {
  font-size: .74rem;
  line-height: 1.5;
  color: #3f3f3f;
  margin-bottom: .52rem;
}
.bank-fit-note {
  font-size: .7rem;
  line-height: 1.45;
  color: #5b5b5b;
  margin-bottom: .5rem;
}

/* Preferred bank highlight */
.bank-item-preferred { border: 2px solid var(--y) !important; border-left: 4px solid var(--y) !important; background: #fffbe6 !important; }
.bank-item-preferred .bank-name { background: #fffbe6 !important; }
.bank-item-preferred .bank-short { color: var(--blk) !important; }
.bank-item-preferred .bank-full { color: #888 !important; }
.bank-preferred-tag {
  background: var(--blk);
  color: var(--y);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: 1px;
  padding: .12rem .32rem;
  margin-left: .4rem;
  vertical-align: middle;
}

/* Clickable bank cards */
.bank-item-clickable {
  cursor: pointer;
  transition: border-color .12s, box-shadow .12s;
}
.bank-item-clickable:hover {
  border-color: var(--y);
  box-shadow: 0 0 0 2px var(--y);
}
.bank-detail-cta {
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--g3);
  margin-top: .22rem;
  transition: color .1s;
}
.bank-item-clickable:hover .bank-detail-cta { color: var(--blk); }
.bank-item-active {
  border-color: var(--y) !important;
  border-bottom: none !important;
  box-shadow: none !important;
}
.bank-item-active .bank-detail-cta { color: var(--blk) !important; }
.bank-item-active .bank-name { background: #fffbe6 !important; }

/* ── Bank detail panel ── */
.bank-detail-panel { padding: 0; overflow: hidden; border: 2px solid var(--y); border-top: none; margin-top: calc(-1.25rem); }
.bd-topbar { padding: .5rem 1rem; text-align: right; background: var(--g1); border-bottom: 1px solid var(--g2); }
.bd-back {
  font-size: .78rem;
  font-weight: 700;
  color: var(--red);
  cursor: pointer;
  letter-spacing: .5px;
  transition: color .1s;
  text-transform: uppercase;
}
.bd-back:hover { color: #c0392b; }

.bd-section {
  padding: 1rem 1.1rem .9rem;
  border-bottom: 1px solid var(--g2);
}
.bd-section-last { border-bottom: none; }
.bd-section-title {
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--g3);
  background: var(--g1);
  border-left: 3px solid var(--y);
  border-bottom: 1px solid var(--g2);
  padding: .35rem .75rem;
  margin-bottom: .75rem;
  margin-left: -1.1rem;
  margin-right: -1.1rem;
  margin-top: -.2rem;
}

/* Offer grid */
.bd-offer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .6rem;
  margin-bottom: .6rem;
}
.bd-offer-cell {
  background: var(--g1);
  border: 1px solid var(--g2);
  padding: .7rem .75rem;
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.bd-offer-label {
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--g3);
}
.bd-offer-val {
  font-size: 1rem;
  font-weight: 900;
  color: var(--blk);
}
.bd-offer-note {
  font-size: .65rem;
  color: var(--g3);
  line-height: 1.5;
  margin-top: .2rem;
}

/* Advisor verdict */
.bd-verdict {
  font-size: .8rem;
  line-height: 1.55;
  color: #222;
  border-left: 3px solid var(--blk);
  padding: .45rem .65rem;
  margin-bottom: .65rem;
  background: var(--g1);
  font-weight: 600;
}

/* Ranked factors */
.bd-factors { display: flex; flex-direction: column; gap: 0; margin-bottom: .75rem; border: 1px solid var(--g2); }
.bd-factor-row {
  padding: .55rem .75rem;
  border-bottom: 1px solid var(--g2);
}
.bd-factor-row:last-child { border-bottom: none; }
.bd-factor-red    { border-left: 4px solid var(--red); }
.bd-factor-yellow { border-left: 4px solid #D4920A; }
.bd-factor-green  { border-left: 4px solid var(--grn); }
.bd-factor-role {
  font-size: .77rem;
  color: var(--blk);
  font-weight: 700;
  line-height: 1.4;
}
.bd-factor-desc {
  font-size: .7rem;
  color: #555;
  line-height: 1.4;
  margin-top: .1rem;
}

/* Probability block */
.bd-prob-block {
  padding: .55rem .85rem;
  background: var(--blk);
  display: inline-flex;
  align-items: center;
  gap: .5rem;
}
.bd-prob-label-text {
  font-size: .75rem;
  font-weight: 900;
  color: var(--wht);
  letter-spacing: .5px;
}
.bd-prob-range {
  font-size: .8rem;
  font-weight: 900;
  color: var(--y);
}

/* Actions */
.bd-actions { display: flex; flex-direction: column; gap: 0; margin-bottom: .6rem; border: 1px solid var(--g2); }
.bd-action-item {
  font-size: .77rem;
  line-height: 1.5;
  color: #222;
  padding: .45rem .75rem;
  border-bottom: 1px solid var(--g2);
  font-weight: 600;
}
.bd-action-item:last-child { border-bottom: none; }

/* Strategy note */
.bd-strategy {
  font-size: .73rem;
  line-height: 1.5;
  color: #444;
  padding: .5rem .7rem;
  border-left: 3px solid var(--blk);
  background: var(--g1);
  margin-top: .4rem;
}

/* Conditions */
.bd-conditions { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--g2); }
.bd-cond-row {
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  font-size: .75rem;
  line-height: 1.5;
  padding: .45rem .75rem;
  border-bottom: 1px solid var(--g2);
}
.bd-cond-row:last-child { border-bottom: none; }
.bd-cond-tag {
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .4px;
  text-transform: uppercase;
  padding: .15rem .4rem;
  flex-shrink: 0;
  margin-top: .1rem;
  white-space: nowrap;
}
.bd-cond-req  { background: #E74C3C; color: #fff; }
.bd-cond-opt  { background: #D4920A; color: #fff; }
.bd-cond-no   { background: var(--grn); color: #fff; }
.bd-cond-info { background: var(--g2); color: var(--blk); }
.bd-cond-label { font-weight: 700; color: var(--blk); flex-shrink: 0; }
.bd-cond-note  { color: #555; font-size: .7rem; }

/* Docs */
.bd-docs {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .85rem;
}
.bd-doc-item {
  font-size: .74rem;
  color: #333;
  line-height: 1.55;
}

/* Tips (legacy) */
.bd-tip {
  font-size: .74rem;
  line-height: 1.5;
  color: #333;
  padding: .4rem .55rem;
  border-left: 2px solid var(--g2);
  margin-bottom: .3rem;
  background: var(--g1);
}
.bd-tip:last-child { margin-bottom: 0; }

@media (max-width: 540px) {
  .bd-offer-grid { grid-template-columns: 1fr 1fr; }
}

.bank-improve-title {
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--blk);
  background: var(--y);
  padding: .3rem .6rem;
  margin: .75rem -.95rem .5rem;
}

.bank-improve-list {
  display: flex;
  flex-direction: column;
  gap: .45rem;
}

.bank-improve-item {
  font-size: .8rem;
  line-height: 1.55;
  color: #222;
  padding: .45rem .55rem;
  border-left: 3px solid var(--g2);
  background: #fafafa;
}

.bank-improve-item a { color: #0065A4; }


.bank-method-note {
  font-size: .8rem;
  line-height: 1.6;
  color: #3f3f3f;
  margin-bottom: .65rem;
}

.evidence-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: .32rem;
  margin-bottom: .75rem;
}

.ev-item {
  background: var(--bg);
  border: 1.5px solid var(--blk);
  padding: .4rem .55rem;
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: .45rem;
  align-items: start;
  font-size: .73rem;
  line-height: 1.45;
}

.ev-num {
  width: 22px;
  height: 22px;
  background: var(--blk);
  color: var(--y);
  font-size: .66rem;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.score-meaning-head {
  margin-bottom: .7rem;
}

.score-meaning-pill {
  display: inline-block;
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
  padding: .28rem .55rem;
  margin-bottom: .55rem;
}

.score-meaning-head p {
  font-size: .82rem;
  line-height: 1.55;
  color: #333;
}

.score-meaning-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
}

.sm-item {
  border: 1.5px solid var(--blk);
  padding: .55rem .6rem;
  background: var(--bg);
  display: flex;
  flex-direction: column;
  gap: .2rem;
}

.sm-item strong {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .4px;
}

.sm-item span {
  font-size: .76rem;
  line-height: 1.45;
  color: #454545;
}

.mortgage-split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
}

.ms-item {
  border: 1.5px solid var(--blk);
  padding: .62rem .68rem;
  background: var(--bg);
}

.ms-item.total {
  border-color: var(--blk);
  background: #fff;
}

.ms-lbl {
  font-size: .68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #666;
  margin-bottom: .25rem;
}

.ms-val {
  font-size: .88rem;
  font-weight: 900;
  color: var(--blk);
}

.ms-help {
  margin-top: .6rem;
}

.ms-gap {
  display: inline-block;
  font-size: .77rem;
  font-weight: 800;
  padding: .28rem .55rem;
}

.ms-gap.bad {
  color: #9f2721;
  background: #fff1f0;
  border: 1px solid #f0b3ae;
}

.ms-gap.good {
  color: #1f6a3d;
  background: #edf9f1;
  border: 1px solid #9dd7b4;
}

/* Tips */
.tips-block { background: var(--y) !important; }
.tips-block .r-title { color: var(--blk) !important; border-color: var(--ydk) !important; }
#tipsList { padding-left: 1.2rem; }
#tipsList li { margin-bottom: .6rem; font-size: .85rem; line-height: 1.6; }

/* ── RESULT HEADER ── */
.result-title-row { display: flex; justify-content: space-between; align-items: center; }
.btn-print {
  background: transparent;
  border: 2px solid var(--g2);
  color: var(--g3);
  padding: .45rem 1.1rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  cursor: pointer;
  font-family: inherit;
  transition: border-color .12s, color .12s;
}
.btn-print:hover { border-color: var(--blk); color: var(--blk); }

/* ── RESUME BANNER ── */
.resume-banner {
  background: var(--blk);
  color: var(--wht);
  padding: .85rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  border-bottom: 3px solid var(--y);
}
.resume-banner > span { flex: 1; font-size: .84rem; font-weight: 600; }
.btn-resume {
  background: var(--y);
  color: var(--blk);
  border: none;
  padding: .5rem 1.2rem;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  font-family: inherit;
}
.btn-dismiss {
  background: transparent;
  border: none;
  color: #666;
  font-size: 1.2rem;
  cursor: pointer;
  padding: .2rem .5rem;
  line-height: 1;
}

/* ── INLINE ERRORS ── */
.err-msg {
  background: #fff5f5;
  border: 1.5px solid rgba(231,76,60,.6);
  color: var(--red);
  padding: .45rem .85rem;
  font-size: .74rem;
  font-weight: 700;
  margin: .5rem .2rem;
  display: none;
}
.err-msg.visible { display: block; }
.err-msg ul { padding-left: 1.2rem; margin: 0; }
.err-msg li { margin-bottom: .25rem; }

/* ── SCORE FACTORS ── */
.r-title-sm {
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: 2px;
  color: var(--g3);
  text-transform: uppercase;
  margin-top: 1.6rem;
  margin-bottom: .9rem;
}
.factors-grid { display: flex; flex-direction: column; gap: .75rem; }
.factor-row {
  display: grid;
  grid-template-columns: 1fr 1fr 64px;
  align-items: center;
  gap: .75rem;
}
.factor-label { font-size: .82rem; font-weight: 700; letter-spacing: .2px; }
.factor-bar-wrap { background: var(--g1); height: 10px; }
.factor-bar { height: 100%; width: 0; transition: width .9s cubic-bezier(.4,0,.2,1); }
.factor-badge {
  font-size: .67rem;
  font-weight: 900;
  letter-spacing: .7px;
  text-align: center;
  padding: .3rem .35rem;
  color: #fff;
  text-transform: uppercase;
}
/* ── WHAT-IF SIMULATOR ── */
.wi-hint { font-size: .8rem; color: var(--g3); margin-bottom: 1rem; line-height: 1.5; }
.whatif-sliders { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-bottom: 1rem; }
.wi-field { display: flex; flex-direction: column; gap: .45rem; }
.wi-label {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.wi-val { background: var(--blk); color: var(--y); padding: .18rem .55rem; font-size: .78rem; font-weight: 900; }
.wi-range { width: 100%; accent-color: var(--y); cursor: pointer; }
.whatif-result {
  background: var(--blk);
  color: var(--wht);
  padding: 1.1rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
  text-align: center;
}
.wi-metric-lbl { font-size: .63rem; color: #aaa; text-transform: uppercase; letter-spacing: .5px; margin-bottom: .3rem; }
.wi-metric-val { font-size: 1.15rem; font-weight: 900; }

/* ── AMORTIZATION TABLE ── */
.amort-toggle {
  cursor: pointer;
  user-select: none;
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0 !important;
}
.amort-icon { font-size: .7rem; font-weight: 800; letter-spacing: .5px; color: var(--g3); }
.amort-table { width: 100%; border-collapse: collapse; font-size: .77rem; margin-top: .8rem; }
.amort-table th {
  background: var(--blk);
  color: var(--y);
  padding: .5rem .7rem;
  text-align: right;
  font-size: .62rem;
  letter-spacing: .8px;
  text-transform: uppercase;
  font-weight: 900;
}
.amort-table th:first-child { text-align: left; }
.amort-table td { padding: .42rem .7rem; text-align: right; border-bottom: 1px solid var(--g1); }
.amort-table td:first-child { text-align: left; font-weight: 700; }
.amort-table tfoot td { font-weight: 900; background: var(--g1); border-bottom: none; }
.amort-note  { font-size: .75rem; color: var(--g3); padding: .5rem 0; }
.amort-empty { font-size: .82rem; color: var(--g3); padding: .8rem 0; }

/* ── IMPROVEMENT PLAN ── */
.improvement-intro {
  font-size: 0.9rem;
  color: var(--g3);
  margin-bottom: 1rem;
  font-weight: 500;
}

/* ── IMPROVEMENT PLAN (new card system) ── */
.imp-intro-text {
  font-size: .83rem;
  color: var(--g3);
  margin: -.2rem 0 .9rem;
  line-height: 1.5;
}

.imp-plan-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.imp-card {
  padding: 1rem;
  border-radius: .25rem;
}

.imp-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .8rem;
  margin-bottom: .45rem;
}

.imp-card-title {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .92rem;
  font-weight: 700;
  color: var(--blk);
  flex: 1;
}

.imp-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.5rem;
  background: var(--blk);
  color: var(--y);
  font-size: .72rem;
  font-weight: 900;
  border-radius: .15rem;
  flex-shrink: 0;
}

.imp-priority-badge {
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .6px;
  text-transform: uppercase;
  padding: .25rem .55rem;
  color: #fff;
  border-radius: .15rem;
  white-space: nowrap;
  flex-shrink: 0;
}

.imp-headline {
  font-size: 1.05rem;
  font-weight: 900;
  color: var(--blk);
  margin-bottom: .4rem;
  letter-spacing: -.01em;
}

.imp-card-desc {
  font-size: .83rem;
  color: var(--g3);
  line-height: 1.5;
  margin-bottom: .75rem;
}

.imp-outcomes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: .4rem .8rem;
  background: rgba(0,0,0,.04);
  border-radius: .2rem;
  padding: .55rem .7rem;
  margin-bottom: .65rem;
}

.imp-outcome-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .4rem;
  font-size: .8rem;
}

.imp-outcome-label {
  color: var(--g3);
  font-weight: 600;
}

.imp-outcome-value {
  font-weight: 800;
  color: var(--blk);
}

.imp-outcome-value.imp-pos { color: #1a7e3d; }
.imp-outcome-value.imp-neg { color: #c0392b; }

.imp-steps-wrap {
  margin-bottom: .6rem;
}

.imp-steps-toggle {
  font-size: .77rem;
  font-weight: 700;
  letter-spacing: .4px;
  cursor: pointer;
  color: var(--g3);
  user-select: none;
}

.imp-steps-toggle:hover { color: var(--blk); }

.imp-steps-list {
  margin: .45rem 0 0 1.1rem;
  padding: 0;
  font-size: .82rem;
  color: var(--blk);
  line-height: 1.6;
}

.imp-effort-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .78rem;
  gap: .5rem;
}

.imp-effort-txt { color: var(--g3); }
.imp-effort-txt strong { color: var(--blk); }

.imp-effort-badge {
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .5px;
  text-transform: uppercase;
  padding: .2rem .5rem;
  color: #fff;
  border-radius: .15rem;
}

/* ── LOAN CAPACITY SUMMARY ── */
.capacity-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
  margin-bottom: .85rem;
}

.capacity-summary-item {
  background: var(--wht);
  border: 2px solid var(--blk);
  padding: .7rem .8rem;
}

.capacity-summary-label {
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: 1.1px;
  color: var(--g3);
  text-transform: uppercase;
  margin-bottom: .3rem;
}

.capacity-summary-value {
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--blk);
  line-height: 1.2;
}

.capacity-summary-help {
  margin-top: .32rem;
  font-size: .78rem;
  line-height: 1.45;
  color: #555;
}

/* ── PAYMENT SIMULATIONS ── */
.payment-sim-intro {
  font-size: .84rem;
  color: #444;
  line-height: 1.55;
  margin-bottom: .7rem;
}

.payment-sim-highlight {
  background: var(--g1);
  border: 2px solid var(--blk);
  padding: .65rem .75rem;
  margin-bottom: .7rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .5rem;
  font-size: .8rem;
}
.sim-hl-label {
  display: block;
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--g3);
  margin-bottom: .2rem;
}
.sim-hl-val {
  font-size: .92rem;
  font-weight: 900;
  color: var(--blk);
}

.sim-section-label {
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--g3);
  background: var(--g1);
  border: 1px solid var(--g2);
  border-bottom: none;
  padding: .38rem .65rem;
  margin-bottom: 0;
}

.payment-sim-table-wrap {
  overflow-x: auto;
  border: 2px solid var(--blk);
}

.payment-sim-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 460px;
  font-size: .76rem;
}

.payment-sim-table th {
  background: var(--blk);
  color: var(--y);
  padding: .5rem .55rem;
  font-size: .62rem;
  letter-spacing: .7px;
  text-transform: uppercase;
  text-align: right;
}

.payment-sim-table th:first-child,
.payment-sim-table td:first-child {
  text-align: left;
}

.payment-sim-table td {
  padding: .45rem .55rem;
  border-bottom: 1px solid var(--g1);
  text-align: right;
  color: #222;
}

.payment-sim-table tbody tr:nth-child(odd) {
  background: #fcfcfc;
}
.sim-row-ref td { background: #fffbe6 !important; font-weight: 700; }
.sim-ref-badge {
  display: inline-block;
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .8px;
  background: var(--y);
  color: var(--blk);
  padding: .05rem .3rem;
  vertical-align: middle;
  margin-left: .3rem;
}
.sim-td-num { font-variant-numeric: tabular-nums; }

.sim-analysis {
  margin-top: .8rem;
  border: 1.5px solid var(--blk);
  background: var(--wht);
}
.sim-insight {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .6rem .75rem;
  border-bottom: 1px solid var(--g1);
  font-size: .78rem;
  line-height: 1.5;
  color: #333;
}
.sim-insight:last-child { border-bottom: none; }
.sim-insight-icon {
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: .05rem;
}

/* ── Simulation: visual bar chart ── */
.sim-visual {
  border: 2px solid var(--blk);
  background: var(--wht);
  margin-bottom: .7rem;
}
.sim-visual-hdr {
  background: var(--blk);
  color: rgba(255,255,255,.6);
  padding: .42rem .75rem;
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sim-legend {
  display: flex;
  align-items: center;
  gap: .25rem;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: rgba(255,255,255,.55);
}
.sim-legend-swatch {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sim-legend-pin {
  display: inline-block;
  width: 2px; height: 10px;
  background: #E67E22;
  border-radius: 1px;
  flex-shrink: 0;
}
.sim-visual-body { padding: .7rem .75rem .4rem; }

.sim-bar-group {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .5rem;
}
.sim-bar-glabel {
  font-size: .72rem;
  font-weight: 900;
  color: var(--blk);
  min-width: 24px;
  flex-shrink: 0;
}
.sim-bar-stack { flex: 1; display: flex; flex-direction: column; gap: .18rem; }
.sim-bar-row { display: flex; align-items: center; gap: .32rem; }
.sim-bar-type {
  font-size: .52rem;
  font-weight: 900;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--g3);
  min-width: 28px;
  flex-shrink: 0;
}
.sim-bar-track {
  flex: 1;
  height: 13px;
  background: var(--g1);
  position: relative;
}
.sim-bar-fill { height: 100%; min-width: 2px; }
.sim-bar-thresh {
  position: absolute;
  top: -2px; bottom: -2px;
  width: 1.5px;
  opacity: .75;
}
.sim-bar-stress-pin {
  position: absolute;
  top: -3px; bottom: -3px;
  width: 2px;
  background: #E67E22;
  opacity: .85;
}
.sim-bar-val {
  font-size: .67rem;
  font-weight: 700;
  color: #333;
  min-width: 85px;
  text-align: right;
  white-space: nowrap;
  flex-shrink: 0;
}
.sim-axis {
  display: flex;
  justify-content: space-between;
  margin-left: 60px;
  margin-right: 88px;
  padding-top: .25rem;
  border-top: 1px solid var(--g2);
  font-size: .58rem;
  color: var(--g3);
  margin-top: .2rem;
}

/* ── Simulation: Euribor scenario cards ── */
.sim-scenarios-pad { padding: .65rem .65rem .5rem; }
.sim-scenarios {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
}
.sim-scenario { border: 2px solid; padding: .6rem .7rem; }
.sim-scenario-green  { border-color: #27AE60; background: #f2fcf6; }
.sim-scenario-yellow { border-color: #F39C12; background: #fffdf2; }
.sim-scenario-red    { border-color: var(--red); background: #fff5f5; }

/* Payment simulation table */
.sim-table { border: 1px solid var(--g2); }
.sim-row {
  display: grid;
  grid-template-columns: 1.4fr 1.2fr 1.2fr 1.2fr;
  gap: 0;
  border-bottom: 1px solid var(--g2);
  padding: .55rem .75rem;
  font-size: .78rem;
  align-items: center;
}
.sim-row:last-child { border-bottom: none; }
.sim-header {
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--g3);
  background: var(--g1);
  padding: .35rem .75rem;
}
.sim-row-active { background: #fffbe6; border-left: 3px solid var(--y); }
.sim-monthly { font-size: 1rem; font-weight: 900; color: var(--blk); }
.sim-current-tag {
  font-size: .5rem;
  font-weight: 900;
  background: var(--y);
  color: var(--blk);
  padding: .1rem .3rem;
  letter-spacing: .5px;
  vertical-align: middle;
  margin-left: .3rem;
}
/* ── UPGRADED PAYMENT SIM TABLE (sim2) ── */
.sim2-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .4rem;
  margin-bottom: .65rem;
}
.sim2-pill {
  font-size: .72rem;
  color: #555;
  background: #f4f4f4;
  border: 1px solid #e2e2e2;
  padding: .22rem .6rem;
}
.sim2-hint { font-size: .62rem; color: #bbb; font-style: italic; }
.sim2-table {
  border: 1.5px solid var(--blk);
  margin-bottom: .6rem;
  overflow: hidden;
}
.sim2-head {
  display: grid;
  grid-template-columns: var(--sim2-cols, 68px 1fr 72px 72px);
  background: var(--blk);
  color: var(--y);
  font-size: .57rem;
  font-weight: 900;
  letter-spacing: .08em;
  padding: .38rem .65rem;
  gap: .5rem;
  align-items: center;
}
.sim2-row {
  display: grid;
  grid-template-columns: var(--sim2-cols, 68px 1fr 72px 72px);
  gap: .5rem;
  padding: .55rem .65rem;
  border-bottom: 1px solid #ebebeb;
  align-items: center;
  cursor: pointer;
  transition: background .1s;
}
.sim2-row:last-child { border-bottom: none; }
.sim2-row:hover { background: #f7f7f7; }
.sim2-active { background: #fffbe6 !important; border-left: 3px solid var(--y); }
.sim2-active:hover { background: #fff5cc !important; }
.sim2-c-plazo { display: flex; flex-direction: column; gap: 1px; }
.sim2-ynum { font-size: 1.05rem; font-weight: 900; color: #111; line-height: 1; }
.sim2-ylbl { font-size: .58rem; color: #aaa; font-weight: 600; }
.sim2-cur-tag {
  display: inline-block;
  font-size: .48rem; font-weight: 900;
  background: var(--y); color: #111;
  padding: .1rem .28rem; letter-spacing: .04em;
  margin-top: 2px;
}
.sim2-c-cuota { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sim2-mnum { font-size: .9rem; font-weight: 900; color: #111; white-space: nowrap; }
.sim2-mnum small { font-size: .62rem; font-weight: 600; color: #999; }
.sim2-bar { height: 4px; background: #e8e8e8; overflow: hidden; }
.sim2-bar-f { height: 100%; background: var(--blk); transition: width .35s; }
.sim2-c-dti { display: flex; align-items: center; }
.sim2-dti-b {
  display: inline-flex; flex-direction: column; align-items: center;
  color: #fff; padding: .2rem .38rem; min-width: 44px; text-align: center;
}
.sim2-dti-p { font-size: .8rem; font-weight: 900; line-height: 1.1; }
.sim2-dti-l { font-size: .48rem; font-weight: 800; letter-spacing: .05em; opacity: .9; }
.sim2-c-int { display: flex; flex-direction: column; gap: 1px; }
.sim2-ipct { font-size: .9rem; font-weight: 900; line-height: 1; }
.sim2-iamt { font-size: .6rem; color: #aaa; }
.sim2-save { font-size: .78rem; font-weight: 900; color: #27ae60; }
.sim2-base { font-size: .7rem; color: #ccc; font-style: italic; }
.sim2-insight {
  font-size: .75rem;
  color: #555;
  background: #f7f7f7;
  border-left: 3px solid var(--y);
  padding: .55rem .75rem;
  line-height: 1.6;
}
.sim2-insight strong { color: #111; }

.sim-sc-label {
  font-size: .57rem;
  font-weight: 900;
  letter-spacing: .7px;
  text-transform: uppercase;
  margin-bottom: .18rem;
}
.sim-scenario-green  .sim-sc-label { color: #27AE60; }
.sim-scenario-yellow .sim-sc-label { color: #E67E22; }
.sim-scenario-red    .sim-sc-label { color: var(--red); }
.sim-sc-euribor {
  font-size: .62rem;
  color: var(--g3);
  margin-bottom: .3rem;
}
.sim-sc-payment {
  font-size: 1.4rem;
  font-weight: 900;
  color: var(--blk);
  line-height: 1;
  margin-bottom: .25rem;
}
.sim-sc-unit { font-size: .72rem; font-weight: 400; color: var(--g3); }
.sim-sc-footer {
  display: flex;
  justify-content: space-between;
  font-size: .62rem;
  color: var(--g3);
  border-top: 1px solid var(--g2);
  padding-top: .2rem;
  margin-top: .05rem;
  gap: .4rem;
  flex-wrap: wrap;
}
.sim-scenario-green  .sim-sc-footer { border-color: #c3e6cb; }
.sim-scenario-yellow .sim-sc-footer { border-color: #fde8a0; }
.sim-scenario-red    .sim-sc-footer { border-color: #f5c6cb; }

.payment-sim-note {
  margin-top: .55rem;
  font-size: .75rem;
  color: var(--g3);
  line-height: 1.45;
}

/* ── DOWNLOAD / PRINT BUTTON ── */
.btn-print {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--blk);
  background: var(--wht);
  color: var(--blk);
  font: inherit;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .5px;
  padding: .45rem .8rem;
  border-radius: 6px;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.btn-print:hover { background: var(--blk); color: var(--wht); }
.result-header-bar .btn-print { align-self: center; margin: 0 .55rem; flex: 0 0 auto; }

/* Elements that only appear in the printed / PDF output */
.print-only { display: none; }
.print-report-header {
  margin: 0 0 1rem;
  padding-bottom: .6rem;
  border-bottom: 2px solid #000;
  font-size: 13pt;
}
.print-report-header .print-report-sub { font-size: 9pt; color: #444; }

/* ── ACCESSIBILITY / SEO HELPERS ── */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ── NOSCRIPT FALLBACK ── */
.noscript-content {
  max-width: 720px;
  margin: 2rem auto;
  padding: 1.5rem;
  background: #fff8e1;
  border: 1.5px solid #f1c40f;
  border-radius: 8px;
  color: #333;
  font-family: Inter, sans-serif;
  text-align: center;
}
.noscript-content h2 { margin: 0 0 .5rem; font-size: 1.3rem; }
.noscript-content p  { margin: .4rem 0; font-size: .95rem; }
.noscript-content a  { color: var(--blk); text-decoration: underline; }

/* ── PRINT ── */
@media print {
  header, footer, .prog-wrap, .resume-banner,
  .nav-row, .no-print, .btn-print,
  .calc-form, #resultsPlaceholder { display: none !important; }
  .print-only { display: block !important; }
  body { background: white; color: black; font-size: 11pt; }
  main { max-width: 100%; padding: 0; }
  .calc-layout { display: block; }
  .calc-results { position: static; max-height: none; overflow: visible; }
  #resultsContent { display: block !important; border: none; }
  .result-tab-panel { display: block !important; }
  .r-block { border: 1px solid #ccc !important; box-shadow: none; page-break-inside: avoid; }
  #amortTable { display: block !important; }
  .amort-table { font-size: 9pt; }
  .result-header-bar { background: white !important; color: black !important; border-bottom: 1px solid #ccc; }
}

/* ── SEO CONTENT (intro + FAQ) ── */
.seo-content {
  max-width: 820px;
  margin: 2.5rem auto 0;
  padding: 0 1rem 1.5rem;
  color: var(--blk);
}
.seo-content h2 {
  font-size: 1.15rem;
  font-weight: 900;
  text-transform: uppercase;
  margin-bottom: .8rem;
}
.seo-content h3 {
  font-size: 1rem;
  font-weight: 800;
  margin: 1.6rem 0 .8rem;
}
.seo-content p {
  font-size: .88rem;
  line-height: 1.55;
  color: var(--g3);
  margin-bottom: .8rem;
}
.seo-content details {
  border: 1.5px solid var(--blk);
  padding: .6rem .8rem;
  margin-bottom: .5rem;
  background: var(--wht);
}
.seo-content summary {
  font-weight: 700;
  font-size: .85rem;
  cursor: pointer;
}
.seo-content details p {
  margin-top: .5rem;
  margin-bottom: 0;
}

/* ── FOOTER ── */
footer {
  background: var(--blk);
  color: #666;
  text-align: center;
  padding: 1rem;
  font-size: .72rem;
  letter-spacing: .5px;
  margin-top: 2rem;
}

#step-0 > .hero { max-width: 820px; margin: 0 auto; }

/* ── TWO-PANEL CALCULATOR ── */
.calc-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  align-items: start;
}
.calc-form {
  background: var(--wht);
  border: 1.5px solid var(--blk);
  overflow: hidden;
  border-radius: 0;
}
/* ── FORM MODE TOGGLE ── */
.form-mode-bar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1.5px solid var(--blk);
}
.form-mode-btn {
  background: var(--blk);
  color: rgba(255,255,255,.55);
  border: none;
  border-right: 2px solid rgba(255,255,255,.15);
  padding: .75rem 1rem;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: background .12s, color .12s;
}
.form-mode-btn:last-child { border-right: none; }
.form-mode-btn.active {
  background: var(--y);
  color: var(--blk);
}
.form-mode-label {
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
  display: block;
  line-height: 1.2;
}
.form-mode-sub {
  font-size: .62rem;
  font-weight: 600;
  opacity: .7;
  display: block;
  margin-top: .1rem;
}
.form-mode-btn.active .form-mode-sub { opacity: .65; }
.mode-prem-tag {
  display: inline-block;
  background: #f5c518;
  color: #1a1100;
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .07em;
  padding: .1rem .35rem;
  vertical-align: middle;
  margin-left: 4px;
  line-height: 1.4;
}
.form-mode-btn.active .mode-prem-tag { background: #1a1100; color: #f5c518; }

/* ── PROFILE SECTION ── */
.profile-section { padding: .75rem 1rem .65rem; }
.profile-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
}
.profile-label-group {
  display: flex;
  align-items: center;
  gap: 5px;
}
.profile-icon-svg { color: #555; flex-shrink: 0; }
.profile-title {
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .09em;
  color: #444;
  text-transform: uppercase;
}
.profile-info { margin-top: .3rem; min-height: 1rem; }
.profile-saved-on { font-size: .72rem; color: #888; }
.profile-empty {
  font-size: .72rem;
  color: #bbb;
  font-style: italic;
}
.profile-actions { display: flex; gap: .4rem; flex-shrink: 0; }
.btn-profile {
  font-size: .66rem;
  font-weight: 800;
  padding: .28rem .7rem;
  border: 1.5px solid #555;
  background: #fff;
  color: #555;
  cursor: pointer;
  letter-spacing: .05em;
  text-transform: uppercase;
  font-family: inherit;
  transition: background .12s, color .12s, border-color .12s;
}
.btn-profile:hover { background: #555; color: #fff; }
.btn-profile-save {
  border-color: #111;
  background: #111;
  color: #fff;
}
.btn-profile-save:hover { background: #333; border-color: #333; }

/* Usage counter */
.usage-counter {
  display: flex;
  align-items: center;
  font-size: .78rem;
  font-weight: 700;
  color: #555;
  margin-bottom: .6rem;
  gap: 2px;
}
.usage-counter.uc-warn { color: #c0392b; }
.usage-counter.uc-empty { color: #c0392b; font-weight: 800; }
.uc-num {
  font-size: 1.1rem;
  font-weight: 900;
  color: var(--b, #1a56db);
  margin-right: 1px;
}
.uc-warn .uc-num { color: #c0392b; }
.btn-uc-upgrade {
  background: none;
  border: none;
  color: var(--b, #1a56db);
  font-weight: 900;
  font-size: .78rem;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  margin-left: 4px;
  font-family: inherit;
}

/* Locked CALCULAR button */
.btn-main.btn-calc-locked {
  background: #444;
  opacity: .85;
}
.btn-main.btn-calc-locked:hover { opacity: 1; background: #222; }

/* Required star */
.req-star {
  color: var(--blk);
  font-weight: 900;
  font-size: 1rem;
  line-height: 1;
  margin-left: .3rem;
  vertical-align: middle;
}

/* MÁS PRECISO extra fields — hidden by default */
.preciso-only { display: none; }
.mode-preciso .preciso-only { display: block; }

.cf-header {
  background: var(--blk);
  color: var(--wht);
  padding: .62rem 1.4rem;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.btn-ghost {
  background: transparent;
  border: 1.5px solid rgba(255,255,255,.3);
  color: rgba(255,255,255,.7);
  padding: .3rem .8rem;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: 1px;
  cursor: pointer;
  font-family: inherit;
  text-transform: uppercase;
}
.btn-ghost:hover { border-color: var(--y); color: var(--y); }
.form-section {
  padding: 1.6rem 1.6rem;
  border-bottom: 2px solid var(--g1);
}
.form-section:last-of-type { border-bottom: none; }
.fs-title {
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: 2.5px;
  color: var(--g3);
  text-transform: uppercase;
  margin-bottom: .85rem;
  padding-bottom: .35rem;
  border-bottom: 2px solid var(--y);
  display: inline-block;
}
.form-sub { margin-top: .75rem; }
.fs-sub {
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: 1.5px;
  color: var(--g3);
  text-transform: uppercase;
  margin-bottom: .45rem;
  display: flex;
  align-items: center;
  gap: .45rem;
}
.mt-sm { margin-top: 1.1rem; }
/* smaller opt buttons inside form */
.calc-form .opt {
  padding: .72rem .5rem;
  min-height: 44px;
  font-size: .8rem;
  border-radius: 0;
}
.calc-form .opt-lg { padding: .85rem .4rem; font-size: .8rem; }
.calc-form .opt-icon { width: 20px; height: 20px; }

.field-help {
  font-size: .76rem;
  color: #555;
  line-height: 1.5;
  margin: -.15rem 0 .6rem;
}
/* Info tooltip */
.info-btn {
  background: var(--blk);
  color: var(--y);
  border: none;
  width: 17px;
  height: 17px;
  border-radius: 0;
  font-size: .68rem;
  font-weight: 900;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.info-box {
  background: #fffbe6;
  border: 1.5px solid var(--y);
  color: #555;
  padding: .55rem .8rem;
  font-size: .76rem;
  line-height: 1.5;
  margin-bottom: .5rem;
  display: none;
}
.info-box.open { display: block; }
/* Scenarios */
.scenarios-row {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  align-items: center;
  margin-bottom: .75rem;
}

/* ── BENCHMARK ──────────────────────────────────────── */
.bm-intro {
  font-size: .83rem;
  color: var(--g3);
  margin: -.2rem 0 1rem;
  line-height: 1.5;
}

.bm-rows {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.bm-row {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  border: 2px solid var(--blk);
  background: #fff;
  padding: .75rem 1rem;
}

.bm-row-label {
  font-size: .63rem;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--g3);
  min-width: 120px;
  flex-shrink: 0;
}

.bm-row-body {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex: 1;
  min-width: 0;
}

.bm-svg-wrap {
  flex: 1;
  min-width: 0;
}

.bm-row-stats {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .3rem;
  flex-shrink: 0;
  min-width: 110px;
}

.bm-big {
  font-size: 1.6rem;
  font-weight: 900;
  color: var(--blk);
  line-height: 1;
  white-space: nowrap;
}

.bm-small {
  font-size: .7rem;
  color: var(--g3);
  white-space: nowrap;
}

.bm-pct-bar {
  height: 7px;
  width: 100%;
  background: var(--g1);
  border: 1px solid var(--g2);
  overflow: hidden;
}

.bm-pct-fill {
  height: 100%;
  background: var(--y);
  transition: width .6s ease;
}

.bm-pct-label {
  font-size: .68rem;
  color: var(--g3);
  font-weight: 700;
  white-space: nowrap;
}
/* ── MORTGAGE READINESS CHECKLIST ── */
.mrc-overall {
  border: 2px solid var(--blk);
  padding: .85rem .95rem;
  margin: -.1rem 0 .85rem;
}
.mrc-overall-main {
  font-size: .95rem;
  font-weight: 900;
  letter-spacing: .4px;
  margin-bottom: .2rem;
}
.mrc-overall-sub {
  font-size: .79rem;
  color: #444;
  line-height: 1.4;
}
.mrc-overall.mrc-ready { background: #eaf7ef; }
.mrc-overall.mrc-needs { background: #fff7e8; }
.mrc-overall.mrc-critical { background: #fdecec; }

.mrc-list {
  display: grid;
  gap: .65rem;
}
.mrc-row {
  background: var(--wht);
  border: 1.5px solid var(--g2);
  border-left-width: 4px;
  padding: .75rem .8rem;
}
.mrc-row.mrc-ready { border-left-color: #2ecc71; }
.mrc-row.mrc-needs { border-left-color: #f39c12; }
.mrc-row.mrc-critical { border-left-color: #e74c3c; }

.mrc-row-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .6rem;
  margin-bottom: .35rem;
}
.mrc-row-title {
  font-size: .88rem;
  font-weight: 800;
  color: var(--blk);
}
.mrc-status-chip {
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .5px;
  text-transform: uppercase;
  background: var(--blk);
  color: var(--y);
  padding: .23rem .45rem;
  white-space: nowrap;
}
.mrc-row-detail {
  font-size: .8rem;
  color: #333;
  line-height: 1.45;
}
.mrc-row-list {
  margin: .45rem 0 0 1rem;
  padding: 0;
  color: var(--g3);
  font-size: .77rem;
  line-height: 1.5;
}

@media (max-width: 540px) {
  .bm-row { flex-wrap: wrap; }
  .bm-big  { font-size: 1.1rem; }
  .mrc-row-head { flex-direction: column; align-items: flex-start; }
}
.scenarios-label { font-size: .58rem; font-weight: 900; letter-spacing: 1.5px; color: var(--g3); text-transform: uppercase; }
.scenario-btn {
  background: var(--g1);
  border: 1.5px solid var(--g2);
  color: var(--blk);
  padding: .22rem .6rem;
  font-size: .68rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: background .1s;
}
.scenario-btn:hover { background: var(--y); border-color: var(--blk); }
.btn-full { width: 100%; }

.mortgage-extra {
  margin-top: .75rem;
  border-top: 2px dashed var(--g2);
  padding-top: .8rem;
}

.guarantee-grid .opt {
  min-height: 46px;
}

/* ── RESULTS PANEL ── */
.calc-results {
  position: sticky;
  top: 1rem;
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
  scrollbar-width: thin;
}
.results-ph {
  background: var(--wht);
  border: 1.5px solid var(--blk);
  padding: 3.5rem 2rem;
  text-align: center;
}
.ph-arrow { font-size: 3rem; color: var(--g2); margin-bottom: 1rem; font-weight: 900; }
.ph-title { font-size: 1rem; font-weight: 900; text-transform: uppercase; letter-spacing: .5px; color: var(--g3); margin-bottom: .5rem; }
.results-ph p { font-size: .84rem; color: var(--g3); line-height: 1.6; }

/* ── RESULTS CONTENT — unified card (mirrors .calc-form) ── */
#resultsContent {
  background: var(--wht);
  border: 1.5px solid var(--blk);
  overflow: hidden;
}
#resultsContent .result-tab-panel > .r-block {
  border: none;
  margin-bottom: 0;
  background: var(--wht);
  border-top: 2px solid var(--g1);
}
#resultsContent .result-tab-panel > .r-block:first-child {
  border-top: none;
}
#resultsContent .btn-print {
  background: transparent;
  border: none;
  border-left: 1.5px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.5);
  padding: .75rem 1.4rem;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: 1.2px;
  flex-shrink: 0;
  cursor: pointer;
  font-family: inherit;
  text-transform: uppercase;
  transition: color .12s;
}
#resultsContent .btn-print:hover {
  color: var(--y);
}

.result-header-bar {
  background: var(--blk);
  display: flex;
  align-items: stretch;
  border-bottom: 1.5px solid rgba(255,255,255,.12);
}
.result-header-bar .result-tabs {
  flex: 1;
  display: flex;
  margin-bottom: 0;
  grid-template-columns: none;
}

/* ── BOOST BLOCK ── */
.boost-block {
  background: var(--blk);
  padding: 1.1rem 1.3rem;
  margin-bottom: .8rem;
}
.boost-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.boost-label { font-size: .6rem; font-weight: 900; letter-spacing: 2px; color: var(--g3); text-transform: uppercase; }
.boost-target { font-size: .95rem; font-weight: 900; }
.boost-gap { color: #ccc; font-size: .82rem; margin-bottom: .5rem; line-height: 1.5; }
.boost-gap strong { color: var(--y); }
.boost-list { list-style: none; padding: 0; }
.boost-list li {
  color: var(--wht);
  font-size: .8rem;
  padding: .3rem 0 .3rem 1.2rem;
  position: relative;
  border-top: 1px solid rgba(255,255,255,.1);
  line-height: 1.5;
}
.boost-list li::before { content: '→'; position: absolute; left: 0; color: var(--y); font-weight: 900; }
.boost-list li:first-child { border-top: none; }

/* ── RESPONSIVE ── */
@media (max-width: 960px) {
  .calc-layout { grid-template-columns: 1fr; }
  .calc-results { position: static; max-height: none; overflow-y: visible; }
  .result-header-bar { justify-content: flex-start; }
}

/* ── Enhanced Advisor Analysis Styles ── */

/* Verdict classes - yellow based */
.bd-verdict.verdict-good { border-left-color: var(--y); background: #fffbe6; }
.bd-verdict.verdict-maybe { border-left-color: #e6c200; background: #fff9e6; }
.bd-verdict.verdict-weak { border-left-color: var(--red); background: #fdedec; }
.bd-verdict.verdict-reject { border-left-color: var(--red); background: #fdedec; }

/* Score gap visualization */
.bd-score-gap { margin-bottom: 1rem; }
.bd-gap-header { font-size: .85rem; color: var(--blk); margin-bottom: .5rem; }
.bd-gap-bar { height: 12px; background: var(--g1); border: 1px solid var(--g2); position: relative; margin-bottom: .3rem; }
.bd-gap-progress { height: 100%; background: linear-gradient(90deg, var(--red), #f1c40f, var(--grn)); transition: width .3s; }
.bd-gap-marker { position: absolute; top: -3px; width: 2px; height: 18px; background: var(--blk); }
.bd-gap-labels { display: flex; justify-content: space-between; font-size: .65rem; color: var(--g3); font-weight: 700; }
.bd-score-ok { font-size: .85rem; color: var(--blk); font-weight: 700; padding: .5rem; background: var(--y); border-left: 3px solid var(--blk); margin-bottom: 1rem; }

/* Factor bars (v2) */
.bd-factors-v2 { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 1rem; }
.bd-factor-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: .25rem; }
.bd-factor-name { font-size: .75rem; font-weight: 700; color: var(--blk); }
.bd-factor-value { font-size: .8rem; font-weight: 900; }
.bd-factor-track { height: 8px; background: var(--g1); border: 1px solid var(--g2); position: relative; }
.bd-factor-fill { height: 100%; transition: width .3s; }
.bd-factor-target { position: absolute; top: -2px; width: 3px; height: 12px; background: var(--blk); }
.bd-factor-status { font-size: .65rem; font-weight: 700; margin-top: .2rem; }
.bd-factor-status.good { color: var(--blk); font-weight: 800; }
.bd-factor-status.warning { color: #b8860b; }
.bd-factor-status.bad { color: var(--red); }

/* Probability badge */
.bd-prob-badge { font-size: .7rem; font-weight: 900; padding: .25rem .5rem; margin-left: .5rem; }
.bd-prob-badge.prob-good { background: var(--blk); color: var(--y); }
.bd-prob-badge.prob-mid { background: #d4a000; color: #fff; }
.bd-prob-badge.prob-low { background: var(--red); color: #fff; }
.bd-prob-badge.prob-reject { background: var(--red); color: #fff; }

/* Prioritized action cards */
.bd-action-card { border: 1px solid var(--g2); margin-bottom: .6rem; }
.bd-action-priority { font-size: .58rem; font-weight: 900; letter-spacing: 1px; padding: .25rem .6rem; color: #fff; }
.act-critical .bd-action-priority { background: var(--red); }
.act-high .bd-action-priority { background: #d4a000; }
.act-medium .bd-action-priority { background: var(--blk); }
.act-quick .bd-action-priority { background: var(--y); color: var(--blk) !important; }
.bd-action-main { display: grid; grid-template-columns: 45px 1fr 120px; gap: .75rem; padding: .6rem; align-items: start; }
.bd-action-icon { font-size: 1.5rem; text-align: center; line-height: 1; }
.bd-action-title { font-size: .85rem; font-weight: 700; color: var(--blk); line-height: 1.4; margin-bottom: .25rem; }
.bd-action-detail { font-size: .72rem; color: #555; line-height: 1.4; }
.bd-action-options { display: flex; gap: .4rem; margin-top: .4rem; flex-wrap: wrap; }
.bd-opt-btn { font-size: .65rem; padding: .3rem .5rem; background: var(--y); border: 1px solid var(--blk); color: var(--blk); font-weight: 700; cursor: pointer; transition: all .1s; }
.bd-opt-btn:hover { background: var(--blk); color: var(--y); }
.bd-action-meta { text-align: right; }
.bd-action-impact { font-size: .75rem; font-weight: 900; color: var(--blk); margin-bottom: .2rem; }
.bd-action-time { font-size: .65rem; color: var(--g3); }
.bd-no-actions { padding: .75rem; background: var(--y); border-left: 3px solid var(--blk); font-size: .85rem; color: var(--blk); font-weight: 700; }

/* Document grid */
.bd-docs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.bd-doc-col-title { font-size: .7rem; font-weight: 900; letter-spacing: 1px; color: var(--g3); margin-bottom: .5rem; padding-bottom: .25rem; border-bottom: 2px solid var(--g2); }
.bd-doc-col.required .bd-doc-col-title { color: var(--red); border-color: var(--red); }
.bd-doc-col.conditional .bd-doc-col-title { color: var(--blk); border-color: var(--y); }
.bd-doc-item { font-size: .75rem; color: #333; padding: .35rem 0; border-bottom: 1px solid var(--g1); line-height: 1.4; }
.bd-doc-item:last-child { border-bottom: none; }
.bd-doc-item.required { font-weight: 600; }
.bd-doc-empty { font-size: .7rem; color: var(--g3); font-style: italic; padding: .5rem 0; }

/* What-If Simulator */
.bd-whatif-intro { font-size: .75rem; color: #555; margin-bottom: .75rem; }
.bd-scenarios-table { border: 1px solid var(--g2); }
.bd-scenario-header { display: grid; grid-template-columns: 1.2fr 1fr .7fr .9fr 70px; gap: .5rem; padding: .4rem .6rem; background: var(--g1); font-size: .6rem; font-weight: 900; letter-spacing: .5px; color: var(--g3); text-transform: uppercase; border-bottom: 1px solid var(--g2); }
.bd-scenario-row { display: grid; grid-template-columns: 1.2fr 1fr .7fr .9fr 70px; gap: .5rem; padding: .5rem .6rem; align-items: center; font-size: .75rem; border-bottom: 1px solid var(--g2); }
.bd-scenario-row:last-child { border-bottom: none; }
.bd-scenario-row.pass { background: #fffbe6; }
.bd-scenario-row.fail { background: #fdedec; }
.bd-scenario-name { font-weight: 700; color: var(--blk); }
.bd-scenario-dti { font-weight: 700; }
.bd-scenario-row.pass .bd-scenario-dti { color: var(--blk); font-weight: 700; }
.bd-scenario-row.fail .bd-scenario-dti { color: var(--red); }
.bd-scenario-btn { font-size: .65rem; padding: .3rem .5rem; background: var(--blk); color: var(--y); border: none; font-weight: 700; cursor: pointer; }
.bd-scenario-btn:hover { background: var(--y); color: var(--blk); }
.bd-whatif-note { font-size: .65rem; color: var(--g3); margin-top: .5rem; font-style: italic; }

@media (max-width: 600px) {
  .hero h1 { font-size: 1.8rem; }
  .hero    { padding: 2rem 1.2rem; }
  .cols-3, .cols-4 { grid-template-columns: repeat(2,1fr); }
  .cols-2 { grid-template-columns: 1fr; }
  .capacity-summary { grid-template-columns: 1fr; }
  .payment-sim-highlight { grid-template-columns: 1fr 1fr; }
  .sim-scenarios { grid-template-columns: 1fr; }
  .sim-axis { margin-left: 55px; margin-right: 0; }
  .input-row { grid-template-columns: 1fr; }
  .pay-grid  { grid-template-columns: repeat(2,1fr); }
  .banks-list { flex-direction: column; }
  .bank-reco-grid { grid-template-columns: 1fr; }
  .nav-row   { flex-direction: column-reverse; }
  .logo { font-size: 1.15rem; letter-spacing: 1.3px; }
  .btn-main, .btn-back { width: 100%; text-align: center; }
  .whatif-sliders { grid-template-columns: 1fr; }
  .score-meaning-grid { grid-template-columns: 1fr; }
  .mortgage-split-grid { grid-template-columns: 1fr; }
  .factor-row { grid-template-columns: 1fr 1fr; gap: .4rem; }
  .factor-label { grid-column: 1 / -1; margin-bottom: -.2rem; }
  .result-title-row { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .result-tabs { grid-template-columns: 1fr; }
  .resume-banner { flex-direction: column; align-items: flex-start; gap: .6rem; }
  .amort-table { font-size: .68rem; }
  .amort-table th, .amort-table td { padding: .35rem .4rem; }
}

/* ── LOGIN WALL MODAL ── */
.login-wall-overlay {
  position: fixed;
  inset: 0;
  background: rgba(180,180,180,0.7);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}
.login-wall-box {
  background: #ffffff;
  border-radius: 0;
  padding: 2.5rem 2.5rem 2rem;
  max-width: 400px;
  width: 90%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}
.login-wall-logo {
  width: 64px;
  height: 64px;
  mix-blend-mode: multiply;
  margin-bottom: 1rem;
}
.login-wall-title {
  font-size: 1.5rem;
  font-weight: 900;
  margin: 0 0 0.75rem;
  color: #111;
}
.login-wall-msg {
  color: #555;
  margin-bottom: 1.75rem;
  line-height: 1.6;
  font-size: 0.95rem;
}
#loginWallGoogleBtn {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
}
.login-wall-sub {
  font-size: 0.78rem;
  color: #aaa;
  margin: 0;
}

/* ── PREMIUM WALL MODAL ── */
.pw-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,20,40,0.75);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 1rem;
}
.pw-box {
  background: #fff;
  border-radius: 0;
  padding: 2.25rem 2.25rem 1.75rem;
  max-width: 520px;
  width: 100%;
  text-align: center;
  box-shadow: 0 24px 80px rgba(0,0,0,0.3);
  position: relative;
}
.pw-close {
  position: absolute;
  top: 1rem; right: 1rem;
  background: none;
  border: none;
  font-size: 1.25rem;
  color: #aaa;
  cursor: pointer;
  line-height: 1;
  padding: .25rem .4rem;
}
.pw-close:hover { color: #333; }
.pw-used-badge {
  display: inline-block;
  background: #fff0f0;
  color: var(--red);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: .06em;
  padding: .3rem .75rem;
  border-radius: 99px;
  margin: .6rem 0 .9rem;
}
.pw-title {
  font-size: 1.45rem;
  font-weight: 900;
  margin: 0 0 .6rem;
  color: #111;
}
.pw-msg {
  color: #555;
  font-size: 0.92rem;
  line-height: 1.6;
  margin: 0 0 1.1rem;
}
.pw-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.6rem;
  text-align: left;
  display: inline-block;
}
.pw-features li {
  font-size: 0.88rem;
  color: #444;
  margin-bottom: .35rem;
}
.pw-check {
  color: #27ae60;
  font-weight: 900;
  margin-right: .4rem;
}
.pw-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .9rem;
  margin-bottom: 1.1rem;
}
.pw-card {
  border: 2px solid #e5e5e5;
  border-radius: 0;
  padding: 1.25rem 1rem 1.1rem;
  position: relative;
  transition: border-color .2s;
  display: flex;
  flex-direction: column;
}
.pw-price-spacer {
  visibility: hidden;
  pointer-events: none;
}
.pw-card:hover { border-color: #bbb; }
.pw-card-featured {
  border-color: var(--b, #1a56db);
  background: #f0f5ff;
}
.pw-save-tag {
  position: absolute;
  top: -.7rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--b, #1a56db);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: .07em;
  padding: .2rem .65rem;
  border-radius: 99px;
  white-space: nowrap;
}
.pw-plan-label {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: .08em;
  color: #888;
  margin-bottom: .4rem;
}
.pw-original-price {
  font-size: 1rem;
  font-weight: 700;
  color: #999;
  text-decoration: line-through;
  text-decoration-color: #c0392b;
  text-decoration-thickness: 2px;
  margin-bottom: .2rem;
}
.pw-plan-price {
  font-size: 2.4rem;
  font-weight: 900;
  color: #111;
  line-height: 1;
  margin-bottom: .15rem;
}
.pw-dec { font-size: 1.4rem; }
.pw-cur { font-size: 1.1rem; font-weight: 700; color: #555; }
.pw-plan-period { font-size: 0.8rem; color: #888; margin-bottom: .9rem; }
.pw-plan-equiv { font-size: 0.75rem; color: #666; margin-bottom: .9rem; line-height: 1.4; }
.btn-pw-outline {
  margin-top: auto;
  width: 100%;
  padding: .6rem .5rem;
  border: 2px solid #333;
  background: #fff;
  color: #333;
  font-weight: 800;
  font-size: .82rem;
  letter-spacing: .04em;
  cursor: pointer;
  transition: background .18s, color .18s;
}
.btn-pw-outline:hover { background: #333; color: #fff; }
.btn-pw-main {
  margin-top: auto;
  width: 100%;
  padding: .65rem .5rem;
  border: none;
  background: var(--b, #1a56db);
  color: #fff;
  font-weight: 800;
  font-size: .82rem;
  letter-spacing: .04em;
  cursor: pointer;
  transition: opacity .18s;
}
.btn-pw-main:hover { opacity: .88; }
.pw-footer {
  font-size: 0.75rem;
  color: #bbb;
  margin: 0;
}
.pw-support {
  font-size: 0.75rem;
  color: #888;
  margin: 0.5rem 0 0;
  text-align: center;
}
.pw-support a { color: inherit; text-decoration: underline; }
@media (max-width: 440px) {
  .pw-box { padding: 2rem 1.25rem 1.5rem; }
  .pw-cards { grid-template-columns: 1fr; }
  .pw-save-tag { top: -.65rem; }
}

/* ── AUTH & LOGIN STYLES ── */
.header-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  justify-self: flex-end;
  margin-left: auto;
}

.login-section {
  display: flex;
  align-items: center;
}

.user-section {
  display: flex;
  align-items: center;
  gap: .75rem;
}

.premium-crown {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f5c518;
  color: #1a1100;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .38rem .75rem .38rem .6rem;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background .15s;
}
.premium-crown:hover { background: #e6b800; }
.crown-svg {
  width: 18px;
  height: 13px;
  fill: #1a1100;
  flex-shrink: 0;
  display: block;
}

/* ── PREMIUM ACCOUNT MODAL ── */
.pam-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,20,40,0.7);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 1rem;
}
.pam-box {
  background: #fff;
  max-width: 400px;
  width: 100%;
  padding: 2rem 2rem 1.75rem;
  position: relative;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
}
.pam-close {
  position: absolute;
  top: .9rem; right: .9rem;
  background: none;
  border: none;
  font-size: 1.1rem;
  color: #aaa;
  cursor: pointer;
  padding: .2rem .35rem;
  line-height: 1;
}
.pam-close:hover { color: #333; }
.pam-header {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #f5c518;
  color: #1a1100;
  font-size: 0.85rem;
  font-weight: 900;
  letter-spacing: .1em;
  padding: .4rem .8rem .4rem .65rem;
  margin-bottom: 1.1rem;
}
.pam-crown-svg {
  width: 20px;
  height: 14px;
  fill: #1a1100;
  display: block;
  flex-shrink: 0;
}
.pam-thanks {
  font-size: 1.15rem;
  font-weight: 900;
  color: #111;
  margin: 0 0 1.25rem;
}
.pam-details {
  border-top: 1.5px solid #eee;
  border-bottom: 1.5px solid #eee;
  margin-bottom: 1rem;
  padding: .25rem 0;
}
.pam-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: .55rem 0;
  border-bottom: 1px solid #f2f2f2;
  gap: 1rem;
}
.pam-row:last-child { border-bottom: none; }
.pam-lbl {
  font-size: .8rem;
  font-weight: 700;
  color: #888;
  text-transform: uppercase;
  letter-spacing: .05em;
  flex-shrink: 0;
}
.pam-val {
  font-size: .88rem;
  font-weight: 700;
  color: #111;
  text-align: right;
}
.pam-note {
  font-size: .78rem;
  color: #888;
  margin: 0 0 1.4rem;
  line-height: 1.5;
}
.pam-actions {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.btn-pam-cancel {
  width: 100%;
  padding: .65rem;
  border: 2px solid #555;
  background: #fff;
  color: #333;
  font-weight: 800;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.btn-pam-cancel:hover { background: #333; color: #fff; border-color: #333; }
.btn-pam-delete {
  width: 100%;
  padding: .65rem;
  border: 2px solid #e74c3c;
  background: #fff;
  color: #e74c3c;
  font-weight: 800;
  font-size: .82rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.btn-pam-delete:hover { background: #e74c3c; color: #fff; }

/* ── PROFILE MANAGER MODAL ── */
.prm-box { max-width: 430px; }
.prm-list {
  max-height: 240px;
  overflow-y: auto;
  margin: .75rem -2rem 0;
  padding: 0 2rem;
  border-top: 1.5px solid #eee;
  border-bottom: 1.5px solid #eee;
}
.prm-empty {
  padding: 1.6rem 0;
  text-align: center;
  font-size: .82rem;
  color: #bbb;
  font-style: italic;
}
.prm-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .6rem 0;
  border-bottom: 1px solid #f2f2f2;
  gap: .75rem;
}
.prm-item:last-child { border-bottom: none; }
.prm-item-info { flex: 1; min-width: 0; }
.prm-item-name {
  display: block;
  font-weight: 800;
  font-size: .88rem;
  color: #111;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.prm-item-date { display: block; font-size: .7rem; color: #aaa; margin-top: .1rem; }
.prm-item-actions { display: flex; gap: .4rem; flex-shrink: 0; }
.btn-prm-load {
  font-size: .7rem;
  font-weight: 800;
  padding: .28rem .65rem;
  background: #111;
  color: #fff;
  border: none;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-family: inherit;
}
.btn-prm-load:hover { background: #333; }
.btn-prm-del {
  font-size: .8rem;
  padding: .28rem .45rem;
  background: none;
  color: #ccc;
  border: 1.5px solid #ddd;
  cursor: pointer;
  line-height: 1;
  font-family: inherit;
}
.btn-prm-del:hover { border-color: #e74c3c; color: #e74c3c; }
.prm-save-area { margin-top: .85rem; }
.prm-name-form { margin-bottom: .5rem; }
.prm-name-input {
  width: 100%;
  border: 1.5px solid #ccc;
  padding: .5rem .65rem;
  font-size: .85rem;
  font-family: inherit;
  margin-bottom: .5rem;
  box-sizing: border-box;
  outline: none;
}
.prm-name-input:focus { border-color: #111; }
.prm-dup-warn {
  background: #fff8e1;
  border: 1.5px solid #f5c518;
  padding: .55rem .7rem;
  margin-bottom: .5rem;
  font-size: .78rem;
  color: #7a5500;
}
.prm-dup-warn p { margin: 0 0 .4rem; font-weight: 700; }
.prm-dup-btns { display: flex; gap: .4rem; }
.btn-prm-overwrite {
  font-size: .7rem; font-weight: 800; padding: .28rem .65rem;
  background: #111; color: #fff; border: none;
  cursor: pointer; text-transform: uppercase; font-family: inherit;
}
.btn-prm-overwrite:hover { background: #333; }
.btn-prm-copy {
  font-size: .7rem; font-weight: 800; padding: .28rem .65rem;
  background: #fff; color: #555; border: 1.5px solid #555;
  cursor: pointer; text-transform: uppercase; font-family: inherit;
}
.btn-prm-copy:hover { background: #555; color: #fff; }
.prm-name-btns { display: flex; gap: .5rem; }
.btn-prm-confirm {
  flex: 1; padding: .5rem;
  background: #111; color: #fff; border: none;
  font-weight: 800; font-size: .78rem; letter-spacing: .04em;
  text-transform: uppercase; cursor: pointer; font-family: inherit;
}
.btn-prm-confirm:hover { background: #333; }
.btn-prm-cancel-name {
  padding: .5rem .75rem;
  background: none; border: 1.5px solid #ccc; color: #888;
  font-size: .78rem; cursor: pointer; font-family: inherit;
}
.btn-prm-cancel-name:hover { border-color: #888; color: #555; }
.btn-prm-new {
  width: 100%; padding: .6rem;
  background: none; border: 1.5px dashed #ccc; color: #888;
  font-weight: 800; font-size: .78rem; letter-spacing: .04em;
  text-transform: uppercase; cursor: pointer; font-family: inherit;
  transition: border-color .15s, color .15s;
}
.btn-prm-new:hover { border-color: #555; color: #333; }

.btn-logout {
  font-size: .7rem;
  padding: .4rem .8rem;
  background: var(--g1);
  border: 1px solid var(--g2);
  color: var(--g3);
  font-weight: 700;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .5px;
}

.btn-logout:hover {
  background: var(--red);
  color: #fff;
  border-color: var(--red);
}


.btn-upgrade {
  font-size: .82rem;
  padding: .55rem 1.2rem;
  background: var(--blk);
  color: var(--y);
  border: none;
  font-weight: 900;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.btn-upgrade:hover {
  background: var(--y);
  color: var(--blk);
}

/* Premium-locked features */
.premium-only {
  position: relative;
}

.premium-only.locked::after {
  content: 'PREMIUM';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: 1px;
  color: var(--g3);
  border: 2px dashed var(--g2);
}

/* Monetization Banner */
.premium-banner {
  background: var(--blk);
  color: var(--y);
  padding: 1.25rem;
  margin: 1rem 0;
  text-align: center;
}

.premium-banner h3 {
  font-size: 1.1rem;
  font-weight: 900;
  margin-bottom: .5rem;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.premium-banner p {
  font-size: .85rem;
  margin-bottom: 1rem;
  opacity: .9;
}

.premium-banner .btn-premium {
  font-size: .9rem;
  padding: .75rem 1.5rem;
  background: var(--y);
  color: var(--blk);
  border: none;
  font-weight: 900;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.premium-banner .btn-premium:hover {
  background: #fff;
}

/* Lead tracking notice */
.lead-notice {
  font-size: .65rem;
  color: var(--g3);
  text-align: center;
  padding: .5rem;
  border-top: 1px solid var(--g1);
  margin-top: 1rem;
}

@media (max-width: 600px) {
  .header-actions {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--wht);
    border-top: 2px solid var(--blk);
    padding: .75rem;
    justify-content: center;
    z-index: 1000;
  }
  
  
  main {
    padding-bottom: 70px;
  }
}

/* ── GDPR Cookie Banner ────────────────────────────────────── */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--blk);
  color: #fff;
  z-index: 9999;
  display: flex;
  justify-content: center;
  box-shadow: 0 -3px 16px rgba(0,0,0,.35);
}
.cookie-inner {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex-wrap: wrap;
  max-width: 900px;
  width: 100%;
  padding: .85rem 1.2rem;
}
.cookie-text {
  flex: 1;
  font-size: .78rem;
  line-height: 1.5;
  color: #ccc;
}
.cookie-text strong { color: #fff; }
.cookie-text a { color: var(--y); text-decoration: underline; }
.cookie-actions { display: flex; gap: .6rem; flex-shrink: 0; }
.cookie-btn {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  padding: .45rem 1rem;
  border: none;
  cursor: pointer;
}
.cookie-accept { background: var(--y); color: #111; }
.cookie-accept:hover { background: #f0c000; }
.cookie-reject { background: transparent; color: #aaa; border: 1px solid #555; }
.cookie-reject:hover { color: #fff; border-color: #999; }

/* ── Oferta Comparison Panel ───────────────────────────────── */
.sim2-oferta-panel {
  border: 1.5px solid var(--blk);
  margin-top: .6rem;
  overflow: hidden;
}
.sim2-oferta-head {
  background: var(--blk);
  color: var(--y);
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .08em;
  padding: .4rem .7rem;
}
.sim2-oferta-head small { opacity: .75; font-weight: 600; }
.sim2-oferta-body {
  display: flex;
  align-items: center;
  gap: 0;
  background: #fff;
}
.sim2-oferta-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: .7rem .9rem;
}
.sim2-oferta-div {
  font-size: .75rem;
  font-weight: 900;
  color: #ccc;
  padding: 0 .5rem;
  flex-shrink: 0;
}
.sim2-oferta-lbl { font-size: .6rem; font-weight: 700; letter-spacing: .06em; color: #999; text-transform: uppercase; }
.sim2-oferta-rate { font-size: .8rem; font-weight: 800; color: #333; }
.sim2-oferta-cuota { font-size: 1rem; font-weight: 900; color: #111; }
.sim2-oferta-diff { font-size: .72rem; font-weight: 700; margin-top: 2px; }
.sim2-oferta-more { color: #e74c3c; }
.sim2-oferta-less { color: #27ae60; }
.sim2-oferta-verdict {
  font-size: .72rem;
  font-weight: 700;
  padding: .45rem .9rem;
  border-top: 1px solid #eee;
}
.sim2-oferta-bad  { background: #fff5f5; color: #c0392b; }
.sim2-oferta-good { background: #f0fff4; color: #1e8449; }
.sim2-oferta-ok   { background: #fffbe6; color: #856404; }

/* ── Fixed vs Variable vs Mixed ───────────────────────────── */
.mtc-note { font-size: .72rem; color: #999; margin-bottom: .75rem; }
.mtc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
  margin-bottom: .6rem;
}
@media (max-width: 560px) { .mtc-grid { grid-template-columns: 1fr; } }
.mtc-card {
  border: 1.5px solid var(--blk);
  padding: .7rem .8rem;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.mtc-name { font-size: .6rem; font-weight: 900; letter-spacing: .08em; color: #111; }
.mtc-rate { font-size: 1.1rem; font-weight: 900; color: #111; line-height: 1.1; }
.mtc-rate small { font-size: .58rem; font-weight: 600; color: #aaa; }
.mtc-monthly { font-size: .88rem; font-weight: 800; color: #333; }
.mtc-monthly small { font-size: .6rem; color: #aaa; font-weight: 600; }
.mtc-interest { font-size: .65rem; color: #777; margin-top: 2px; }
.mtc-risk-row { margin-top: 4px; }
.mtc-risk { font-size: .58rem; font-weight: 900; letter-spacing: .07em; padding: .15rem .4rem; }
.mtc-risk-low  { background: #e8f8f0; color: #1e8449; }
.mtc-risk-mid  { background: #fff8e1; color: #856404; }
.mtc-risk-high { background: #fff0f0; color: #c0392b; }
.mtc-desc { font-size: .62rem; color: #888; line-height: 1.45; margin-top: 4px; }
.mtc-disclaimer { font-size: .65rem; color: #aaa; font-style: italic; }

/* ── Purchase Cost Calculator ─────────────────────────────── */
.pcc-table { margin-bottom: .5rem; }
.pcc-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: .38rem .5rem;
  font-size: .78rem;
  border-bottom: 1px solid #f0f0f0;
  gap: 1rem;
}
.pcc-row:last-child { border-bottom: none; }
.pcc-prop { font-weight: 700; font-size: .82rem; background: #f9f9f9; }
.pcc-cost { color: #c0392b; font-weight: 700; white-space: nowrap; }
.pcc-section-lbl {
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .1em;
  color: #999;
  background: #f4f4f4;
  padding: .28rem .5rem;
  margin-top: .25rem;
}
.pcc-subtotal {
  font-weight: 800;
  background: #f9f9f9;
  border-top: 2px solid #e0e0e0;
  border-bottom: 2px solid #e0e0e0;
}
.pcc-total {
  font-weight: 900;
  font-size: .88rem;
  background: var(--blk);
  color: var(--y);
  padding: .55rem .5rem;
}
.pcc-total span:last-child { font-size: 1rem; }
.pcc-note { font-size: .65rem; color: #aaa; font-style: italic; margin-top: .4rem; }

/* ── Extra Payment Simulator ──────────────────────────────── */
.ep-slider-wrap { margin-bottom: .75rem; }
.ep-results {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
  margin-bottom: .5rem;
}
@media (max-width: 480px) { .ep-results { grid-template-columns: 1fr 1fr; } }
.ep-stat {
  border: 1.5px solid var(--blk);
  padding: .6rem .7rem;
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: flex-start;
}
.ep-val { font-size: 1.05rem; font-weight: 900; color: #111; line-height: 1; }
.ep-lbl { font-size: .52rem; font-weight: 800; letter-spacing: .07em; color: #aaa; }
.ep-note { font-size: .68rem; color: #999; border-left: 3px solid var(--y); padding: .35rem .6rem; background: #fffbe6; }

/* ── Score Improvement Tips ───────────────────────────────── */
.simpr-list { margin-bottom: .5rem; }
.simpr-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .55rem .5rem;
  border-bottom: 1px solid #f0f0f0;
}
.simpr-row:last-child { border-bottom: none; }
.simpr-rank {
  width: 22px;
  height: 22px;
  background: var(--blk);
  color: var(--y);
  font-size: .68rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.simpr-body { flex: 1; min-width: 0; }
.simpr-area { font-size: .65rem; font-weight: 900; letter-spacing: .06em; color: #111; margin-bottom: 2px; }
.simpr-tip { font-size: .7rem; color: #666; line-height: 1.45; }
.simpr-gain {
  font-size: .95rem;
  font-weight: 900;
  color: #27ae60;
  white-space: nowrap;
  text-align: right;
  flex-shrink: 0;
}
.simpr-gain small { font-size: .55rem; font-weight: 700; color: #aaa; display: block; text-align: right; }
.simpr-note { font-size: .65rem; color: #aaa; font-style: italic; }
