
:root{
  --kv-primary:#0d6efd;
  --kv-primary-2:#2d7eff;
  --kv-gradient: linear-gradient(135deg, #e8f1ff, #ffffff);
  --kv-bg:#f6f9ff;
  --kv-card:#ffffff;
  --kv-text:#0b1b3a;
  --kv-muted:#5b6b88;
  --kv-border:#e2eafc;
  --kv-accent:#e7f1ff;
  --kv-success:#12b886;
  --kv-danger:#fa5252;
}
html,body{height:100%;}
body{
  background: var(--kv-bg);
  color: var(--kv-text);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, Helvetica, sans-serif;
}
/* NAVBAR */
.navbar{
  backdrop-filter: saturate(180%) blur(6px);
}
.navbar .nav-link.active{
  color: var(--kv-primary);
  font-weight: 600;
}
/* HERO */
.hero{
  border-radius: 18px;
  background: radial-gradient(1200px 400px at 10% 0%, rgba(13,110,253,.05), transparent),
              var(--kv-gradient);
  border: 1px solid var(--kv-border);
  position: relative;
  overflow: hidden;
}
.hero::after{
  content:"";
  position:absolute;
  right:-80px; top:-80px;
  width:240px; height:240px;
  background: radial-gradient(closest-side, rgba(13,110,253,.18), transparent);
  filter: blur(8px);
}
/* CARDS */
.kv-card{
  border-radius: 14px;
  border: 1px solid var(--kv-border);
  background: var(--kv-card);
  box-shadow: 0 10px 20px rgba(13,110,253,0.06);
}
.kv-card:hover{
  transform: translateY(-1px);
  transition: transform .18s ease;
}
/* BADGES & STAT */
.kv-badge{
  background: var(--kv-accent);
  color: var(--kv-text);
  border:1px solid #cfe2ff;
  font-weight:600;
}
.kv-stat .value{
  font-weight:800;
  font-size: clamp(1.4rem, 2vw, 1.9rem);
}
/* TABLES */
.table thead th{
  position: sticky; top:0;
  background:#f0f6ff;
  z-index:1;
}
.table-hover tbody tr:hover{background:#f7fbff;}
/* BUTTONS */
.btn-primary{
  background: linear-gradient(180deg, var(--kv-primary), var(--kv-primary-2));
  border: none;
  box-shadow: 0 6px 14px rgba(13,110,253,0.25);
}
.btn-primary:hover{filter:brightness(1.05);}
.btn-soft{
  background:#eef5ff;
  border:1px solid var(--kv-border);
  color: var(--kv-text);
}
/* FORM */
.kv-prefix{max-width:130px;}
.kv-number{letter-spacing:.03em;}
.input-group-text{background:#f0f6ff;}
/* FOOTER */
footer{border-top:1px solid var(--kv-border);}
.store-badges img{height:48px;}
/* UTIL */
.kv-pill{
  background:#f0f6ff;
  border:1px solid var(--kv-border);
  padding:.35rem .65rem;
  border-radius:999px;
  font-size:.85rem;
}
/* Animations */
.fade-in{animation:fade .5s ease both;}
@keyframes fade{from{opacity:0; transform:translateY(6px);}to{opacity:1; transform:none;}}
/* Equal height columns on lg+ */
@media(min-width:992px){
  .kv-cols-3 > .col{display:flex;}
  .kv-cols-3 .kv-card{width:100%;}
}
