/* ================================================================
   MICOVI RowLab — hoja de estilo
   Paleta extraída del logo oficial de MICOVI Sport Technology:
   dorado #F5C518 · azul #0E4F9A · rojo #C11E1E (colores de Colombia)
   ================================================================ */
:root{
  --dorado:#F5C518; --dorado-logo:#F0D050;
  --azul:#0E4F9A; --azul-claro:#2b7fd4;
  --rojo:#C11E1E; --verde:#4CAF50; --naranja:#FF9800;
  --fondo:#0A0A0A; --panel:#111318; --panel-2:#171a21;
  --borde:#2D3748; --texto:#E8EAED; --muted:#9AA3B2;
  --radio:12px;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--fondo); color:var(--texto);
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
  font-size:15px; line-height:1.55;
}
a{color:var(--dorado); text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 10px; line-height:1.25}
h1{font-size:26px} h2{font-size:20px} h3{font-size:16px}

/* ---------- Franja tricolor de marca ---------- */
.tricolor{height:3px;display:flex}
.tricolor i{flex:1}
.tricolor i:nth-child(1){background:var(--dorado)}
.tricolor i:nth-child(2){background:var(--azul)}
.tricolor i:nth-child(3){background:var(--rojo)}

/* ---------- Barra superior ---------- */
.topbar{
  background:#000; border-bottom:1px solid var(--borde);
  display:flex; align-items:center; gap:22px; padding:10px 22px;
  position:sticky; top:0; z-index:50;
}
.marca{display:flex; align-items:center; gap:11px}
.marca img{height:38px; width:auto; display:block}
.marca .txt{line-height:1.1}
.marca .n1{font-weight:800; font-size:18px; color:var(--dorado); letter-spacing:.3px}
.marca .n1 span{color:#fff}
.marca .n2{font-size:10px; color:var(--muted); letter-spacing:.6px}
.nav{display:flex; gap:4px; margin-left:auto; flex-wrap:wrap; align-items:center}
.nav a{
  color:var(--texto); padding:7px 13px; border-radius:8px; font-size:14px;
  text-decoration:none; transition:.15s;
}
.nav a:hover{background:#1c1f26; text-decoration:none}
.nav a.on{background:var(--dorado); color:#000; font-weight:700}
.usuario{
  display:flex; align-items:center; gap:9px; padding-left:16px;
  border-left:1px solid var(--borde); margin-left:8px;
}
.usuario .n{font-size:13px; font-weight:600}
.usuario .r{font-size:11px; color:var(--muted)}

/* ---------- Contenedor ---------- */
.wrap{max-width:1240px; margin:0 auto; padding:24px 22px 60px}

/* ---------- Tarjetas y paneles ---------- */
.panel{
  background:var(--panel); border:1px solid var(--borde);
  border-radius:var(--radio); padding:18px;
}
.grid{display:grid; gap:16px}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}

.kpi{
  background:var(--panel); border:1px solid var(--borde); border-radius:var(--radio);
  padding:16px; border-top:3px solid var(--dorado);
}
.kpi .v{font-size:30px; font-weight:800; line-height:1.1}
.kpi .l{font-size:11px; color:var(--muted); letter-spacing:.9px; text-transform:uppercase}
.kpi .s{font-size:12px; color:var(--muted); margin-top:3px}
.kpi.azul{border-top-color:var(--azul)}
.kpi.rojo{border-top-color:var(--rojo)}
.kpi.verde{border-top-color:var(--verde)}

/* ---------- Botones ---------- */
.btn{
  display:inline-block; background:var(--panel-2); color:var(--texto);
  border:1px solid var(--borde); border-radius:9px; padding:9px 16px;
  font-size:14px; cursor:pointer; text-decoration:none; transition:.15s;
  font-family:inherit;
}
.btn:hover{background:#232733; text-decoration:none}
.btn.pri{background:var(--dorado); color:#000; border-color:var(--dorado); font-weight:700}
.btn.pri:hover{background:#ffd633}
.btn.rojo{background:var(--rojo); color:#fff; border-color:var(--rojo)}
.btn.sm{padding:5px 11px; font-size:12.5px}
.btn:disabled{opacity:.45; cursor:not-allowed}

/* ---------- Formularios ---------- */
label{display:block; font-size:12.5px; color:var(--muted); margin:11px 0 5px}
input,select,textarea{
  width:100%; background:#0d0f14; color:var(--texto);
  border:1px solid var(--borde); border-radius:9px; padding:10px 12px;
  font-size:14px; font-family:inherit;
}
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--dorado); box-shadow:0 0 0 3px rgba(245,197,24,.14);
}
textarea{resize:vertical; min-height:78px}
.fila{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:0 16px}
.check{display:flex; align-items:flex-start; gap:9px; margin:14px 0}
.check input{width:auto; margin-top:3px}
.check label{margin:0; color:var(--texto); font-size:13.5px}

/* ---------- Tablas ---------- */
table{width:100%; border-collapse:collapse; font-size:14px}
th{
  text-align:left; color:var(--muted); font-size:11.5px; letter-spacing:.7px;
  text-transform:uppercase; padding:9px 10px; border-bottom:1px solid var(--borde);
  font-weight:600;
}
td{padding:10px; border-bottom:1px solid #1c2029}
tbody tr:hover{background:#15181f}
.tabla-wrap{overflow-x:auto}

/* ---------- Insignias ---------- */
.badge{
  display:inline-block; padding:3px 10px; border-radius:999px; font-size:11.5px;
  font-weight:700; letter-spacing:.3px;
}
.badge.n{background:rgba(245,197,24,.15); color:var(--dorado)}
.badge.ok{background:rgba(76,175,80,.16); color:var(--verde)}
.badge.warn{background:rgba(255,152,0,.16); color:var(--naranja)}
.badge.err{background:rgba(193,30,30,.18); color:#ff6b6b}
.badge.gris{background:#1c1f26; color:var(--muted)}

/* ---------- Mensajes ---------- */
.msg{padding:12px 16px; border-radius:10px; margin-bottom:16px; font-size:14px}
.msg.ok{background:rgba(76,175,80,.12); border:1px solid rgba(76,175,80,.4)}
.msg.error{background:rgba(193,30,30,.12); border:1px solid rgba(193,30,30,.45)}

/* ---------- Login con fotografía de fondo ---------- */
.login-bg{
  position:relative; min-height:100vh; display:flex;
  align-items:center; justify-content:center; padding:24px;
  background:#0A0A0A;   /* color de respaldo mientras carga la imagen */
  overflow:hidden;
}
/* Capa 1 — la fotografía */
.login-bg::before{
  content:""; position:absolute; inset:0;
  background-image:image-set(
      url("img/fondo-login.webp") type("image/webp"),
      url("img/fondo-login.jpg")  type("image/jpeg"));
  background-image:url("img/fondo-login.jpg");        /* respaldo */
  background-image:-webkit-image-set(
      url("img/fondo-login.webp") type("image/webp"),
      url("img/fondo-login.jpg")  type("image/jpeg"));
  background-size:cover; background-position:center;
  /* Acabado mate: se baja el contraste y la saturación para que la foto
     acompañe en vez de competir con el formulario */
  filter:saturate(.72) contrast(.92) brightness(.78);
  transform:scale(1.03);        /* evita bordes al aplicar el filtro */
  z-index:0;
}
/* Capa 2 — atenuación negra suave, más densa hacia el centro y los bordes
   para que el texto del formulario tenga contraste suficiente */
.login-bg::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(760px 620px at 50% 50%, rgba(0,0,0,.62) 0%, rgba(0,0,0,.40) 55%, rgba(0,0,0,.30) 100%),
    linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.28) 40%, rgba(0,0,0,.55) 100%);
}
.login-bg > *{ position:relative; z-index:2 }

.login-card{
  width:100%; max-width:410px;
  background:rgba(17,19,24,.82);            /* traslúcido sobre la foto */
  -webkit-backdrop-filter:blur(16px) saturate(1.1);
  backdrop-filter:blur(16px) saturate(1.1);
  border:1px solid rgba(255,255,255,.09); border-radius:16px; overflow:hidden;
  box-shadow:0 28px 70px rgba(0,0,0,.62);
}
.login-card .cuerpo{padding:30px 30px 34px}

/* Crédito de autoría: presente pero discreto, sin competir con la marca */
.creditos{
  display:flex; align-items:center; justify-content:center; gap:9px;
  margin-top:20px; padding-top:16px; border-top:1px solid rgba(255,255,255,.07);
}
.creditos span{font-size:10.5px; color:var(--muted); letter-spacing:.4px}
.creditos a{display:inline-flex; align-items:center; line-height:0}
.creditos img{
  height:22px; width:auto; display:block;
  opacity:.5; filter:grayscale(1); transition:opacity .2s ease, filter .2s ease;
}
.creditos a:hover img{opacity:1; filter:grayscale(0)}
.creditos a:focus-visible{outline:2px solid var(--dorado); outline-offset:4px; border-radius:4px}

/* El autorelleno del navegador impone su propio fondo claro y arruina el tema
   oscuro. No hay propiedad para desactivarlo: se tapa con una sombra interior
   y se fuerza el color del texto. */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--texto);
  -webkit-box-shadow:0 0 0 1000px #0d0f14 inset;
          box-shadow:0 0 0 1000px #0d0f14 inset;
  caret-color:var(--texto);
  transition:background-color 9999s ease-in-out 0s;   /* impide el destello inicial */
}

/* En pantallas pequeñas se sirve una versión más liviana de la foto */
@media (max-width:820px){
  .login-bg::before{ background-image:url("img/fondo-login-sm.webp") }
}
/* Si el usuario pide menos movimiento/efectos, se simplifica */
@media (prefers-reduced-transparency:reduce){
  .login-card{ background:var(--panel); backdrop-filter:none }
}
.login-logo{text-align:center; margin-bottom:22px}
.login-logo img{height:112px; width:auto}
.login-logo .t{font-size:23px; font-weight:800; color:var(--dorado); margin-top:12px}
.login-logo .t span{color:#fff}
.login-logo .s{font-size:11.5px; color:var(--muted); letter-spacing:.8px}

/* ---------- Barras y utilidades ---------- */
.barra{height:8px; background:#1c1f26; border-radius:99px; overflow:hidden}
.barra i{display:block; height:100%; background:var(--dorado)}
.muted{color:var(--muted)}
.small{font-size:12.5px}
.right{text-align:right}
.center{text-align:center}
.mt{margin-top:18px}
.flex{display:flex; gap:11px; align-items:center; flex-wrap:wrap}
.sep{border:0; border-top:1px solid var(--borde); margin:20px 0}
.breadcrumb{font-size:13px; color:var(--muted); margin-bottom:14px}
.vacio{text-align:center; padding:44px 20px; color:var(--muted)}
.vacio .ico{font-size:44px; opacity:.4; display:block; margin-bottom:10px}

/* Aviso legal / de alcance */
.aviso{
  border-left:3px solid var(--dorado); background:#15171d;
  padding:11px 15px; border-radius:0 9px 9px 0; font-size:12.5px; color:var(--muted);
}
