:root{
  --navy:#0A1220;
  --teal:#00B298;
  --blue:#0876C6;
  --money:#10B981;
  --money-dark:#047857;
  --ice:#E4F7FD;
  --steel:#8296B2;
  --white:#ffffff;
  --soft:#F6FAFE;
  --ink:#101828;
  --muted:#5b6778;
  --line:#E5EEF6;
  --card:#ffffff;
  --grad:linear-gradient(135deg,var(--teal),var(--blue));
  --money-grad:linear-gradient(135deg,#00B298,#10B981,#0876C6);
  --shadow:0 24px 70px rgba(10,18,32,.12);
  --radius:26px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{
  margin:0;
  font-family:Inter, Arial, Helvetica, sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 85% 5%, rgba(0,178,152,.12), transparent 32%),
    radial-gradient(circle at 8% 20%, rgba(8,118,198,.08), transparent 28%),
    var(--white);
  line-height:1.55;
  overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
section[id]{scroll-margin-top:96px}
.wrap{width:min(1180px,92vw);margin:auto}
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.84);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(130,150,178,.18);
}
.nav-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:14px}
.brand-logo{width:44px;height:44px;position:relative;display:block}
.brand-logo img{width:100%;height:100%;object-fit:contain;display:block}
.brand-logo .mark{display:none}
.brand-logo.fallback .mark{display:block}
.mark{
  width:44px;height:44px;border-radius:15px;
  background:linear-gradient(145deg,#fff,#e9fbff);
  border:1px solid rgba(0,178,152,.22);
  box-shadow:0 10px 28px rgba(0,178,152,.12);
  position:relative;overflow:hidden;
}
.mark:before{
  content:"";position:absolute;inset:8px;
  border:4px solid var(--teal);
  border-right-color:transparent;border-top-color:transparent;
  border-radius:50%;transform:rotate(24deg);
}
.mark:after{
  content:"";position:absolute;right:9px;top:7px;width:8px;height:28px;border-radius:10px;
  background:linear-gradient(180deg,var(--teal),var(--blue));
  box-shadow:0 0 18px rgba(0,178,152,.35);
}
.brand-text strong{display:block;letter-spacing:.22em;font-weight:500;color:var(--navy)}
.brand-text span{font-size:12px;color:var(--steel)}
.nav-links{display:flex;align-items:center;gap:22px;color:#415066;font-size:14px;font-weight:650}
.nav-links a{padding:6px 2px;border-bottom:2px solid transparent;transition:.2s ease}
.nav-links a:hover{color:var(--blue);border-bottom-color:rgba(8,118,198,.28)}
.lang-switch{display:flex;gap:4px;margin-left:8px}
.lang-btn{
  padding:6px 10px;border-radius:8px;font-size:12px;font-weight:700;
  background:transparent;border:1px solid var(--line);color:var(--muted);
  cursor:pointer;transition:.2s ease;
}
.lang-btn:hover{border-color:var(--teal);color:var(--teal)}
.lang-btn.active{background:var(--teal);border-color:var(--teal);color:#fff}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  border:0;border-radius:15px;padding:14px 22px;
  background:var(--money-grad);color:#fff;font-weight:850;
  box-shadow:0 16px 38px rgba(16,185,129,.25);
  cursor:pointer;transition:.25s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 22px 50px rgba(16,185,129,.34)}
.btn.secondary{background:#fff;color:var(--navy);border:1px solid var(--line);box-shadow:none}
.hero{padding:84px 0 48px;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  color:var(--money-dark);background:rgba(16,185,129,.09);
  border:1px solid rgba(16,185,129,.18);border-radius:999px;
  padding:9px 13px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;font-size:12px;
}
.pulse{
  width:9px;height:9px;border-radius:50%;background:var(--money);
  box-shadow:0 0 0 0 rgba(16,185,129,.5);
  animation:pulse 1.8s infinite;
}
h1{font-size:clamp(42px,7vw,82px);line-height:.94;letter-spacing:-.055em;margin:24px 0 20px;color:var(--navy)}
h1 span{background:var(--money-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:clamp(18px,2.2vw,22px);color:#46556b;max-width:640px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:32px 0}
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}
.proof-card{
  background:rgba(255,255,255,.78);border:1px solid var(--line);
  border-radius:20px;padding:18px;box-shadow:0 12px 40px rgba(10,18,32,.06);
  transform:translateY(12px);opacity:0;animation:rise .8s forwards;
}
.proof-card:nth-child(2){animation-delay:.12s}.proof-card:nth-child(3){animation-delay:.24s}
.proof-card b{display:block;font-size:26px;color:var(--money-dark)}
.proof-card span{font-size:13px;color:var(--muted)}
.visual{
  min-height:560px;border-radius:36px;position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 50% 46%,rgba(0,178,152,.18),transparent 22%),
    linear-gradient(145deg,#ffffff,#f4fbff);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  padding:28px;
}
.arc{
  position:absolute;right:-80px;top:34px;width:430px;height:430px;border-radius:50%;
  border:18px solid rgba(0,178,152,.20);
  border-left-color:transparent;border-bottom-color:rgba(8,118,198,.25);
  transform:rotate(28deg);
  animation:slowspin 18s linear infinite;
}
.money-orb{
  width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff 0 5%,#c8fff0 6% 18%,#10b981 35%,#0876c6 82%);
  position:absolute;right:118px;top:120px;
  box-shadow:0 24px 80px rgba(16,185,129,.28), inset -20px -20px 50px rgba(10,18,32,.18);
  display:grid;place-items:center;
  animation:float 5s ease-in-out infinite;
}
.money-orb:before{content:"$";font-size:98px;color:#fff;font-weight:900;text-shadow:0 8px 28px rgba(0,0,0,.22)}
.loan-card{
  position:absolute;left:32px;right:32px;bottom:32px;
  background:rgba(10,18,32,.94);color:#fff;border-radius:26px;padding:24px;border:1px solid rgba(228,247,253,.12);
  box-shadow:0 24px 70px rgba(10,18,32,.26);
}
.loan-card h3{margin:0 0 14px;font-size:21px}
.bars{display:grid;gap:10px}
.bar{height:11px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.bar span{display:block;height:100%;border-radius:inherit;background:var(--money-grad);animation:grow 1.8s ease forwards}
.bar:nth-child(2) span{width:72%;animation-delay:.2s}.bar:nth-child(3) span{width:86%;animation-delay:.36s}.bar:nth-child(1) span{width:94%}
.metric-bubble{
  position:absolute;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 16px;
  box-shadow:0 16px 40px rgba(10,18,32,.10);
  min-width:150px;animation:float 6s ease-in-out infinite;
}
.metric-bubble b{display:block;color:var(--money-dark);font-size:22px}
.metric-bubble span{font-size:12px;color:var(--muted)}
.m1{left:32px;top:56px}.m2{right:44px;bottom:220px;animation-delay:.8s}.m3{left:72px;top:222px;animation-delay:1.3s}

section{padding:76px 0}
.section-title{max-width:760px;margin:0 auto 38px;text-align:center}
.section-title .tag{color:var(--teal);font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
h2{font-size:clamp(32px,4vw,52px);line-height:1.02;letter-spacing:-.035em;margin:10px 0;color:var(--navy)}
.section-title p{color:var(--muted);font-size:18px}

.cycle{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step{
  background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;
  box-shadow:0 18px 50px rgba(10,18,32,.06);
  position:relative;overflow:hidden;transition:.25s ease;
}
.step:hover{transform:translateY(-6px);box-shadow:0 26px 70px rgba(10,18,32,.10)}
.step:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--money-grad)}
.icon{
  width:48px;height:48px;border-radius:16px;display:grid;place-items:center;
  background:rgba(16,185,129,.09);color:var(--money-dark);font-size:24px;margin-bottom:18px;
}
.step h3{margin:0 0 8px;color:var(--navy)}
.step p{margin:0;color:var(--muted);font-size:15px}

.dark{
  background:var(--navy);color:#fff;position:relative;overflow:hidden;
}
.dark:before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 80% 20%,rgba(0,178,152,.18),transparent 28%),
             radial-gradient(circle at 20% 80%,rgba(8,118,198,.18),transparent 28%);
  pointer-events:none;
}
.dark .wrap{position:relative}
.dark h2{color:#fff}.dark .section-title p{color:#c7d6e8}
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.feature{
  background:rgba(255,255,255,.055);border:1px solid rgba(228,247,253,.15);
  border-radius:24px;padding:22px;min-height:190px;
  transition:.25s ease;
}
.feature:hover{background:rgba(255,255,255,.08);transform:translateY(-4px)}
.feature h3{margin:0 0 8px;color:#fff;font-size:18px}
.feature p{margin:0;color:#c7d6e8;font-size:14px}
.money-line{height:3px;width:48px;background:var(--money-grad);border-radius:99px;margin-bottom:16px}

.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:36px;align-items:center}
.panel{
  background:#fff;border:1px solid var(--line);border-radius:30px;padding:30px;box-shadow:var(--shadow);
}
.panel h3{font-size:30px;line-height:1.1;margin:0 0 18px;color:var(--navy)}
.list{display:grid;gap:14px;margin:20px 0 0;padding:0;list-style:none}
.list li{display:flex;gap:12px;align-items:flex-start;color:#475569}
.check{
  flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:rgba(16,185,129,.12);color:var(--money-dark);
  display:grid;place-items:center;font-weight:900;
}
.score-card{
  background:
    radial-gradient(circle at 80% 20%,rgba(16,185,129,.18),transparent 24%),
    linear-gradient(145deg,#0A1220,#10233b);
  color:#fff;border-radius:34px;padding:34px;min-height:420px;position:relative;overflow:hidden;
  box-shadow:var(--shadow);
}
.gauge{
  width:260px;
  margin:24px auto;
  position:relative;
}

.gauge-svg{
  width:100%;
  height:auto;
  display:block;
  overflow:visible;
}

.gauge-bg{
  fill:none;
  stroke:#1e2d3d;
  stroke-width:28;
  stroke-linecap:round;
}

.gauge-fill{
  fill:none;
  stroke-width:28;
  stroke-linecap:round;
  transition:stroke-dashoffset 1.5s cubic-bezier(.4,0,.2,1), stroke .5s ease;
}

.gauge-score-text{
  font-size:52px;
  font-weight:900;
  fill:#fff;
  text-anchor:middle;
  dominant-baseline:middle;
}

.gauge-score-label{
  font-size:13px;
  font-weight:700;
  fill:#8296B2;
  text-anchor:middle;
  letter-spacing:.1em;
}

.gauge-min, .gauge-max{
  font-size:11px;
  fill:#5b6778;
  font-weight:600;
}

.score-status-box{
  text-align:center;
  margin-top:20px;
  padding:10px 18px;
  border-radius:10px;
  background:rgba(16,185,129,.1);
  font-size:14px;
  font-weight:600;
}
.score-card p{color:#c7d6e8}
.score-title{margin:0;font-size:28px}
.score-good{color:#10B981}
.impact{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.impact-card{
  background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;text-align:center;
  box-shadow:0 18px 50px rgba(10,18,32,.06);
}
.impact-card b{display:block;font-size:38px;color:var(--money-dark)}
.impact-card span{color:var(--muted);font-size:14px}

.cta{
  padding:86px 0;background:
  linear-gradient(135deg,rgba(0,178,152,.08),rgba(8,118,198,.08)),
  #fff;
}
.cta-box{
  background:var(--navy);color:#fff;border-radius:36px;padding:46px;
  display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;
  position:relative;overflow:hidden;box-shadow:var(--shadow);
}
.cta-box:before{
  content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;
  border:18px solid rgba(0,178,152,.28);border-left-color:transparent;
}
.cta-box h2{color:#fff;margin:0 0 12px}.cta-box p{color:#c7d6e8;margin:0}
footer{background:#07101d;color:#c7d6e8;padding:34px 0;border-top:1px solid rgba(228,247,253,.12)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.footer-links{display:flex;gap:18px;flex-wrap:wrap;color:#dceaf2}
.brand-strong-light{color:#fff}

.reveal{opacity:0;transform:translateY(22px);transition:.75s ease}
.reveal.show{opacity:1;transform:none}

@keyframes pulse{70%{box-shadow:0 0 0 13px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes slowspin{to{transform:rotate(385deg)}}
@keyframes grow{from{width:0}}

@media(max-width:900px){
  .nav-links{display:none}
  .hero-grid,.split,.cta-box{grid-template-columns:1fr}
  .visual{min-height:500px}
  .cycle,.features,.impact,.proof{grid-template-columns:1fr 1fr}
  .cta-box{padding:32px}
}
@media(max-width:560px){
  .cycle,.features,.impact,.proof{grid-template-columns:1fr}
  h1{font-size:46px}
  .hero{padding-top:52px}
  .money-orb{right:40px;top:110px;width:170px;height:170px}
  .metric-bubble{display:none}
  .loan-card{left:18px;right:18px}
  .visual{padding:18px}
  .footer-inner{align-items:flex-start;flex-direction:column}
}

/* Dashboard Dinámico */
.dashboard-section {
  padding: 80px 0;
  background: linear-gradient(135deg, rgba(0,178,152,0.06) 0%, rgba(8,118,198,0.06) 100%);
}

.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin: 40px 0;
}

.metric-item {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(10,18,32,0.04);
}

.metric-item:hover {
  border-color: var(--teal);
  box-shadow: 0 8px 24px rgba(0,178,152,0.12);
  transform: translateY(-2px);
}

.metric-label {
  font-size: 12px;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  letter-spacing: 0.5px;
}

.metric-value {
  font-size: 28px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.2;
}

.metric-change {
  font-size: 12px;
  color: var(--teal);
  font-weight: 500;
}

/* Chart Container */
.chart-container {
  display: flex;
  gap: 32px;
  align-items: center;
  padding: 32px;
  background: var(--white);
  border-radius: 16px;
  border: 1px solid var(--line);
}

.pie-chart {
  flex: 0 0 auto;
}

.chart-legend {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
}

.legend-color {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  flex-shrink: 0;
}

.legend-label {
  color: var(--ink);
}

.legend-label strong {
  color: var(--navy);
}

/* Flujo de Aprobaciones */
.flujo-container {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  padding: 24px 0;
  scroll-behavior: smooth;
}

.flujo-paso {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: fit-content;
}

.flujo-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--white);
  border: 2px solid var(--line);
  transition: all 0.3s ease;
  position: relative;
}

.flujo-step[data-status="activo"] {
  border-color: var(--teal);
  background: rgba(0,178,152,0.08);
}

.flujo-step[data-status="completo"] {
  border-color: var(--money);
  background: rgba(16,185,129,0.08);
}

.step-number {
  font-size: 12px;
  font-weight: 700;
  color: var(--teal);
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,178,152,0.12);
  border-radius: 50%;
}

.step-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--navy);
  white-space: nowrap;
}

.step-count {
  font-size: 13px;
  font-weight: 700;
  color: var(--teal);
}

.flujo-connector {
  width: 32px;
  height: 2px;
  background: linear-gradient(90deg, var(--teal), transparent);
  position: relative;
}

.flujo-connector::after {
  content: '→';
  position: absolute;
  right: -8px;
  top: -9px;
  color: var(--teal);
  font-weight: bold;
}

@media (max-width: 768px) {
  .dashboard-grid {
    grid-template-columns: 1fr 1fr;
  }

  .chart-container {
    flex-direction: column;
    gap: 20px;
  }

  .metric-value {
    font-size: 24px;
  }
}

.dashboard-heading {
  margin: 40px 0 20px;
  color: var(--navy);
  font-size: 22px;
  font-weight: 600;
}

.dashboard-cartera {
  margin: 40px 0;
}

.dashboard-grid-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin: 60px 0;
}

@media (max-width: 900px) {
  .dashboard-grid-split {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}
