:root{
  --tinta:#14181c; --tinta-2:#4b5560; --tinta-3:#7b8590;
  --fondo:#f5f6f7; --tarjeta:#fff; --linea:#e2e5e8; --linea-2:#eef0f2;
  --acento:#027590; --acento-2:#02b1c4; --acento-suave:#e6f5f8;
  --ok:#1a7f4b; --ok-suave:#e5f4ec; --ojo:#9a6200; --ojo-suave:#fdf3dc; --mal:#b42318; --mal-suave:#fdeceb;
  --radio:8px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--tinta);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1,h2,h3{margin:0;line-height:1.2;font-weight:650}
h1{font-size:22px} h2{font-size:18px} h3{font-size:15px}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--acento)}
.cargando{padding:48px;text-align:center;color:var(--tinta-3)}
.oculto{display:none!important}

/* cabecera */
.cab{background:#fff;border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:5}
.cab-in{max-width:1180px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.marca{font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}
.marca i{width:26px;height:26px;border-radius:6px;background:var(--acento);color:#fff;display:grid;place-items:center;font-style:normal;font-size:13px}
.marca small{font-weight:500;color:var(--tinta-3)}
.yo{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--tinta-2)}
.yo b{color:var(--tinta)}
.rol{font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:99px;background:var(--acento-suave);color:var(--acento)}
.dev{background:var(--ojo-suave);color:var(--ojo);font-size:12.5px;text-align:center;padding:6px 12px;border-bottom:1px solid #f0e0b0}
nav.tabs{max-width:1180px;margin:0 auto;padding:0 16px;display:flex;gap:2px;overflow-x:auto}
nav.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 12px;color:var(--tinta-2);cursor:pointer;white-space:nowrap;font-weight:550}
nav.tabs button:hover{color:var(--tinta)}
nav.tabs button[aria-selected=true]{color:var(--acento);border-bottom-color:var(--acento)}

main{max-width:1180px;margin:0 auto;padding:20px 16px 64px}
.titulo-vista{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.titulo-vista p{color:var(--tinta-2);font-size:14px;margin-top:2px}

/* tarjetas y tablas */
.tarjeta{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);padding:16px}
.tarjeta + .tarjeta{margin-top:14px}
.rejilla{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:16px}
.kpi{background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio);padding:12px 14px}
.kpi span{display:block;font-size:12px;color:var(--tinta-3)}
.kpi b{font-size:22px;font-weight:650;letter-spacing:-.01em}
.kpi em{font-style:normal;font-size:12px;color:var(--tinta-3)}
.tabla-caja{overflow-x:auto;background:var(--tarjeta);border:1px solid var(--linea);border-radius:var(--radio)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--linea-2);vertical-align:top}
th{font-size:12px;font-weight:600;color:var(--tinta-3);text-transform:uppercase;letter-spacing:.04em;background:#fafbfb;white-space:nowrap}
tr:last-child td{border-bottom:0}
td select{min-width:150px}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tbody tr.clic{cursor:pointer}
tbody tr.clic:hover{background:#fafbfb}
.sub{display:block;font-size:12px;color:var(--tinta-3)}

/* etiquetas */
.chip{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;white-space:nowrap}
.chip.ok{background:var(--ok-suave);color:var(--ok)}
.chip.ojo{background:var(--ojo-suave);color:var(--ojo)}
.chip.mal{background:var(--mal-suave);color:var(--mal)}
.chip.gris{background:var(--linea-2);color:var(--tinta-2)}
.chip.ejemplo{background:#fff;border:1px dashed var(--tinta-3);color:var(--tinta-3);font-weight:500}

/* formularios */
label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}
input[type=text],input[type=password],input[type=search],select,textarea{width:100%;padding:9px 11px;border:1px solid #cdd2d7;border-radius:6px;background:#fff}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--acento-2);outline-offset:1px}
.campo{margin-bottom:14px}
.ayuda{font-size:12px;color:var(--tinta-3);margin-top:3px}
.contador.pasado{color:var(--mal)}
.fila{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.fila > .campo{flex:1 1 180px;margin-bottom:0}
.btn{background:var(--acento);color:#fff;border:0;border-radius:6px;padding:9px 16px;font-weight:600;cursor:pointer}
.btn:hover{background:#01607a}
.btn:disabled{background:#9ab8c0;cursor:default}
.btn.sec{background:#fff;color:var(--tinta);border:1px solid #cdd2d7}
.btn.sec:hover{background:#f3f4f5}
.btn.chico{padding:5px 10px;font-size:13px}
.error{color:var(--mal);font-size:14px;margin-top:8px}
.exito{color:var(--ok);font-size:14px;margin-top:8px}

/* login */
.login{max-width:380px;margin:12vh auto 0;padding:0 16px}
.login .tarjeta{padding:24px}
.login h1{margin-bottom:4px}
.login p.sub1{color:var(--tinta-2);margin-bottom:18px;font-size:14px}

/* subida y veredicto */
.dos{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:820px){.dos{grid-template-columns:1fr}}
.zona{border:1.5px dashed #b9c0c7;border-radius:8px;padding:16px;text-align:center;color:var(--tinta-2);cursor:pointer;background:#fafbfb}
.zona:hover{border-color:var(--acento)}
.vista-previa{max-width:100%;max-height:260px;border-radius:6px;margin-top:10px;border:1px solid var(--linea)}
.veredicto{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:8px;margin-bottom:14px}
.veredicto.cumple{background:var(--ok-suave)} .veredicto.revisar{background:var(--ojo-suave)} .veredicto.no_cumple{background:var(--mal-suave)}
.veredicto b{font-size:18px;display:block}
.veredicto.cumple b{color:var(--ok)} .veredicto.revisar b{color:var(--ojo)} .veredicto.no_cumple b{color:var(--mal)}
.hallazgo{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--linea-2)}
.hallazgo:last-child{border-bottom:0}
.hallazgo .punto{flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;margin-top:1px}
.punto.cumple{background:var(--ok-suave);color:var(--ok)} .punto.aviso{background:var(--ojo-suave);color:var(--ojo)}
.punto.no_cumple{background:var(--mal-suave);color:var(--mal)} .punto.no_aplica{background:var(--linea-2);color:var(--tinta-3)}
.hallazgo b{font-weight:600}
.hallazgo p{font-size:13px;color:var(--tinta-2)}

/* equipo */
.asesor-card{display:grid;gap:12px;grid-template-columns:200px repeat(4,minmax(0,1fr));align-items:start}
@media(max-width:900px){.asesor-card{grid-template-columns:1fr 1fr}}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--acento-suave);color:var(--acento);display:inline-grid;place-items:center;font-weight:700;margin-right:8px;vertical-align:middle}
.dato span{display:block;font-size:12px;color:var(--tinta-3)}
.dato b{font-size:17px}
.barra{height:6px;background:var(--linea-2);border-radius:99px;overflow:hidden;margin-top:5px}
.barra i{display:block;height:100%;background:var(--acento-2)}
.barra.baja i{background:#d9822b}
.embudo{display:flex;gap:2px;margin-top:6px;height:18px}
.embudo i{flex:1;border-radius:3px;font-style:normal;font-size:11px;color:#fff;display:grid;place-items:center;min-width:6px}
.alertas{grid-column:1/-1;margin-top:2px}
.alertas span{display:inline-block;margin:2px 6px 2px 0;font-size:12.5px;color:var(--mal);background:var(--mal-suave);padding:2px 8px;border-radius:99px}
.serie{display:flex;gap:3px;align-items:flex-end;height:30px}
.serie i{width:14px;background:var(--acento-2);border-radius:2px 2px 0 0;min-height:2px;position:relative}

/* panel lateral */
.velo{position:fixed;inset:0;background:rgba(20,24,28,.35);z-index:20}
.panel{position:fixed;top:0;right:0;bottom:0;width:min(520px,100%);background:#fff;z-index:21;overflow-y:auto;padding:20px;box-shadow:-8px 0 30px rgba(0,0,0,.12)}
.panel header{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px}
.nota{padding:8px 0;border-bottom:1px solid var(--linea-2);font-size:14px}
.nota small{display:block;color:var(--tinta-3);font-size:12px}
.vacio{padding:28px;text-align:center;color:var(--tinta-3)}
.avisobox{background:var(--ojo-suave);color:#5e3d00;border-radius:8px;padding:10px 12px;font-size:13.5px;margin-bottom:14px}
.avisobox.info{background:var(--acento-suave);color:#064d5e}
.clavebox{font-family:ui-monospace,Consolas,monospace;background:#f1f3f4;padding:8px 10px;border-radius:6px;display:inline-block;margin-top:6px;user-select:all}
.seg{display:inline-flex;border:1px solid #cdd2d7;border-radius:6px;overflow:hidden}
.seg button{border:0;background:#fff;padding:6px 12px;cursor:pointer;font-size:13px}
.seg button[aria-pressed=true]{background:var(--acento);color:#fff}
.sr{position:absolute;left:-9999px}
