/* STRONG LMB 360 V20.11 — Gramática visual del Motor de Tasas
   Capa estrictamente visual: no modifica cálculos, store, sincronización ni aplicación de tasas. */

/* Ocultar residuos técnicos/diagnóstico dentro del Motor de Tasas */
#rate-apply-click-diagnostic-v1017,
#v1017-click-log,
[id*="diagnostic"][id*="rate"],
[id*="Diagnostico"][id*="rate"]{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Contenedor general del módulo cuando está activo */
body.strong-v2011-rate-engine-active main,
body.strong-v2011-rate-engine-active .app-main,
body.strong-v2011-rate-engine-active #app,
body.strong-v2011-rate-engine-active #main-content{
  background:var(--coop-cream, #f7f4ed);
}

/* Tarjetas del Motor de Tasas: consistencia, aire visual y jerarquía */
body.strong-v2011-rate-engine-active .card,
body.strong-v2011-rate-engine-active .strong-v924-card,
body.strong-v2011-rate-engine-active .rate-v928-preview-box,
body.strong-v2011-rate-engine-active .rate-v928-filter-card{
  border:1px solid rgba(15, 42, 69, .10) !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.96) !important;
  box-shadow:0 14px 34px rgba(15,42,69,.075) !important;
  overflow:hidden;
}

body.strong-v2011-rate-engine-active .card{
  margin-bottom:18px !important;
}

body.strong-v2011-rate-engine-active .card-title{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:14px !important;
  padding-bottom:12px !important;
  border-bottom:1px solid rgba(15,42,69,.08) !important;
  margin-bottom:14px !important;
}

body.strong-v2011-rate-engine-active .card-title h4,
body.strong-v2011-rate-engine-active h4{
  font-family:var(--font-display, Inter, system-ui, sans-serif) !important;
  color:var(--coop-deep, #10213f) !important;
  letter-spacing:-.015em !important;
  line-height:1.22 !important;
}

body.strong-v2011-rate-engine-active .card-title p,
body.strong-v2011-rate-engine-active p.small,
body.strong-v2011-rate-engine-active .small{
  color:var(--coop-graphite, #5f6b7a) !important;
  line-height:1.55 !important;
}

/* KPIs y resumen: valores legibles, sin desbordes */
body.strong-v2011-rate-engine-active .rate-v928-grid,
body.strong-v2011-rate-engine-active .rate-v928-horizon{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)) !important;
  gap:12px !important;
}

body.strong-v2011-rate-engine-active .rate-v928-kpi,
body.strong-v2011-rate-engine-active .kpi-card{
  min-width:0 !important;
  border:1px solid rgba(15,42,69,.09) !important;
  border-radius:14px !important;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,244,237,.72)) !important;
  padding:14px 15px !important;
  box-shadow:none !important;
}

body.strong-v2011-rate-engine-active .rate-v928-kpi span,
body.strong-v2011-rate-engine-active .kpi-card span,
body.strong-v2011-rate-engine-active label{
  display:block;
  color:var(--coop-graphite, #5f6b7a) !important;
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.055em !important;
  text-transform:uppercase !important;
  margin-bottom:6px !important;
}

body.strong-v2011-rate-engine-active .rate-v928-kpi b,
body.strong-v2011-rate-engine-active .kpi-card strong{
  display:block;
  color:var(--coop-deep, #10213f) !important;
  font-size:clamp(18px, 2.15vw, 25px) !important;
  line-height:1.15 !important;
  letter-spacing:-.025em !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}

/* Formularios: altura uniforme, foco institucional y sin bordes improvisados */
body.strong-v2011-rate-engine-active input,
body.strong-v2011-rate-engine-active select,
body.strong-v2011-rate-engine-active textarea{
  min-height:42px !important;
  border:1px solid rgba(15,42,69,.16) !important;
  border-radius:12px !important;
  background:#fff !important;
  color:var(--coop-ink, #172033) !important;
  font-family:var(--font-body, Inter, system-ui, sans-serif) !important;
  font-size:13px !important;
  outline:none !important;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease !important;
}

body.strong-v2011-rate-engine-active input:focus,
body.strong-v2011-rate-engine-active select:focus,
body.strong-v2011-rate-engine-active textarea:focus{
  border-color:var(--coop-gold, #d4af37) !important;
  box-shadow:0 0 0 4px rgba(212,175,55,.16) !important;
}

/* Botones: estilo consistente, sin saltos ni tamaños mezclados */
body.strong-v2011-rate-engine-active .btn,
body.strong-v2011-rate-engine-active button.btn,
body.strong-v2011-rate-engine-active .btn-primary,
body.strong-v2011-rate-engine-active .btn-secondary,
body.strong-v2011-rate-engine-active .btn-ghost{
  border-radius:12px !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  min-height:40px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  white-space:nowrap !important;
}

/* Tablas: lectura ejecutiva y sin columnas aplastadas */
body.strong-v2011-rate-engine-active .data-table,
body.strong-v2011-rate-engine-active table{
  border-collapse:separate !important;
  border-spacing:0 !important;
  width:100% !important;
  background:#fff !important;
  border-radius:14px !important;
  overflow:hidden !important;
}

body.strong-v2011-rate-engine-active .data-table thead th,
body.strong-v2011-rate-engine-active table thead th{
  background:linear-gradient(180deg, rgba(16,33,63,.98), rgba(16,33,63,.92)) !important;
  color:#fff !important;
  font-size:10.5px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  padding:13px 12px !important;
  vertical-align:middle !important;
}

body.strong-v2011-rate-engine-active .data-table tbody td,
body.strong-v2011-rate-engine-active table tbody td{
  padding:13px 12px !important;
  font-size:12.5px !important;
  line-height:1.35 !important;
  vertical-align:top !important;
  border-bottom:1px solid rgba(15,42,69,.075) !important;
}

body.strong-v2011-rate-engine-active .data-table tbody tr:hover,
body.strong-v2011-rate-engine-active table tbody tr:hover{
  background:rgba(212,175,55,.055) !important;
}

/* Estados, badges y notas */
body.strong-v2011-rate-engine-active .badge,
body.strong-v2011-rate-engine-active .rate-v928-state{
  border-radius:999px !important;
  padding:6px 10px !important;
  font-size:10.5px !important;
  font-weight:900 !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
}

body.strong-v2011-rate-engine-active .rate-v928-note,
body.strong-v2011-rate-engine-active .rate-v928-ok,
body.strong-v2011-rate-engine-active .rate-v928-warnings{
  border-radius:14px !important;
  padding:12px 14px !important;
  line-height:1.55 !important;
  font-size:12.5px !important;
}

body.strong-v2011-rate-engine-active .rate-v928-note{
  background:rgba(15,42,69,.045) !important;
  color:var(--coop-graphite, #5f6b7a) !important;
  border:1px solid rgba(15,42,69,.08) !important;
}

body.strong-v2011-rate-engine-active .rate-v928-warnings{
  background:rgba(184,92,56,.08) !important;
  border:1px solid rgba(184,92,56,.18) !important;
  color:#7a341f !important;
}

/* Tarjetas de opciones del inicio */
body.strong-v2011-rate-engine-active [id^="mode-"]{
  border-radius:18px !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
body.strong-v2011-rate-engine-active [id^="mode-"]:hover{
  transform:translateY(-2px);
}

/* Respuesta móvil: evitar cortes y basura visual por desbordamiento */
@media (max-width: 860px){
  body.strong-v2011-rate-engine-active .card-title{
    flex-direction:column !important;
    align-items:stretch !important;
  }
  body.strong-v2011-rate-engine-active .btn,
  body.strong-v2011-rate-engine-active button.btn{
    width:100% !important;
  }
  body.strong-v2011-rate-engine-active .rate-v928-grid,
  body.strong-v2011-rate-engine-active .rate-v928-horizon{
    grid-template-columns:1fr !important;
  }
  body.strong-v2011-rate-engine-active .data-table,
  body.strong-v2011-rate-engine-active table{
    min-width:720px !important;
  }
}


/* V20.12 · strong-readable-heading (marcador de v18304 sin estilos propios):
   tipografía de encabezado legible, coherente con la gramática unificada. */
.strong-readable-heading{font-family:var(--font-display,inherit);letter-spacing:.01em;line-height:1.25;}
