:root{
  --paper:#F4F7F8; --card:#FFFFFF; --card2:#EDF2F4;
  --ink:#0C1B21; --ink2:#33474F; --muted:#61787F;
  --line:#D6E1E5; --line2:#E6EDEF;
  --acc:#0694A2; --acc-dark:#046570; --acc-soft:#E2F3F5;
  --ok:#1C6E4A; --ok-bg:#E9F4EE;
  --warn:#8A5A00; --warn-bg:#FBF3E2;
  --bad:#A82A1C; --bad-bg:#FBEDEA;
  --radius:8px;
  --f:"Segoe UI",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;
  --fm:"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f);font-size:15px;line-height:1.5}
a{color:var(--acc-dark);text-decoration:none}
a:hover{text-decoration:underline}
.mono,.num{font-family:var(--fm);font-variant-numeric:tabular-nums}

/* barra superior */
.top{background:#0C2A31;color:#DCE9EC;position:sticky;top:0;z-index:50;box-shadow:0 1px 0 rgba(0,0,0,.2)}
.top .in{max-width:1400px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-height:52px}
.top .marca{font-weight:700;letter-spacing:.03em;margin-right:18px;color:#fff;font-size:15px}
.top .marca small{display:block;font-weight:400;font-size:10px;letter-spacing:.16em;color:#7FB3BC;text-transform:uppercase}
.top .marca .ver{font-weight:400;font-size:11px;color:#7FB3BC;margin-left:7px;letter-spacing:0}
.top nav{display:flex;gap:2px;flex-wrap:wrap;flex:1}
.top nav a{color:#B9D2D7;padding:8px 13px;border-radius:6px;font-size:14px}
.top nav a:hover{background:rgba(255,255,255,.08);text-decoration:none;color:#fff}
.top nav a.on{background:var(--acc);color:#fff;font-weight:600}
.top .yo{font-size:12.5px;color:#9FC2C8;display:flex;align-items:center;gap:12px}
.top .yo b{color:#fff;font-weight:600}
.pill-n{background:var(--bad);color:#fff;border-radius:20px;padding:1px 7px;font-size:11px;font-weight:700;margin-left:5px}

.wrap{max-width:1400px;margin:0 auto;padding:24px 20px 70px}
h1{font-size:23px;margin:0 0 4px;letter-spacing:-.02em}
h2{font-size:17px;margin:0 0 12px;letter-spacing:-.01em}
h3{font-size:14px;margin:0 0 10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.lead{color:var(--ink2);margin:0 0 20px;max-width:80ch}
.cabecera{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px}
.card.tight{padding:0;overflow:hidden}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}

/* tarjetas de numero */
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.kpi .n{font-family:var(--fm);font-size:26px;font-weight:600;letter-spacing:-.02em;line-height:1.1}
.kpi .n.bad{color:var(--bad)} .kpi .n.ok{color:var(--ok)}
.kpi .l{font-size:13px;color:var(--ink2);margin-top:6px}
.kpi .h{font-size:11px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.06em}

/* pipeline */
.etapa{display:grid;grid-template-columns:190px 1fr 130px 60px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line2)}
.etapa:last-child{border-bottom:0}
.etapa .nom{font-size:14px}
.etapa .nom small{display:block;color:var(--muted);font-size:11px}
.etapa .track{background:var(--card2);height:20px;border-radius:4px;overflow:hidden}
.etapa .fill{height:100%;background:var(--acc);border-radius:0 4px 4px 0}
.etapa .m,.etapa .c{font-family:var(--fm);font-size:13px;text-align:right}
.etapa .c{color:var(--muted)}

/* tablas */
.tabla-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line2);vertical-align:top}
th{background:var(--card2);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:600;white-space:nowrap}
tbody tr:hover{background:#F7FBFC}
td.num{font-family:var(--fm);text-align:right;white-space:nowrap}
td.w{max-width:340px}
tr.vencida td{background:var(--bad-bg)}

/* etiquetas */
.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;white-space:nowrap;font-weight:600;letter-spacing:.02em}
.tag.eje1{background:#FBF3E2;color:#8A5A00}
.tag.eje2{background:#E9F4EE;color:#1C6E4A}
.tag.eje3{background:#E7EEFB;color:#2B4C8C}
.tag.eje4{background:#F3E9F7;color:#6B3A80}
.tag.dormida{background:#EDF2F4;color:#61787F}
.tag.ganada{background:var(--ok-bg);color:var(--ok)}
.tag.perdida{background:var(--bad-bg);color:var(--bad)}
.tag.abierta{background:var(--acc-soft);color:var(--acc-dark)}
.tag.gris{background:var(--card2);color:var(--muted)}
.tag.alerta{background:var(--bad-bg);color:var(--bad)}

/* formularios */
label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
input[type=text],input[type=password],input[type=date],input[type=number],input[type=email],select,textarea{
  width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font:inherit;
  background:#fff;color:var(--ink)}
textarea{min-height:74px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc);outline-offset:0;border-color:var(--acc)}
.campo{margin-bottom:12px}
.fila{display:flex;gap:12px;flex-wrap:wrap}
.fila>*{flex:1;min-width:150px}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;padding:9px 16px;border-radius:6px;
  font:inherit;font-weight:600;cursor:pointer}
.btn:hover{background:var(--acc-dark);text-decoration:none;color:#fff}
.btn.sec{background:#fff;color:var(--ink2);border:1px solid var(--line)}
.btn.sec:hover{background:var(--card2);color:var(--ink)}
.btn.peligro{background:#fff;color:var(--bad);border:1px solid #E9C4BE}
.btn.peligro:hover{background:var(--bad-bg);color:var(--bad)}
.btn.chico{padding:4px 10px;font-size:12px}

/* avisos */
.aviso{padding:11px 15px;border-radius:6px;margin-bottom:14px;font-size:14px;border:1px solid}
.aviso.ok{background:var(--ok-bg);border-color:#BCDECB;color:var(--ok)}
.aviso.error{background:var(--bad-bg);border-color:#EDC6C0;color:var(--bad)}
.aviso.info{background:var(--acc-soft);border-color:#B6DFE4;color:var(--acc-dark)}
.nota{font-size:12.5px;color:var(--muted);margin-top:8px}

/* filtros */
.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.filtros .campo{margin-bottom:0}
.filtros select,.filtros input{min-width:150px;width:auto}

/* login */
.login{max-width:380px;margin:9vh auto;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:32px 30px}
.login .marca{font-size:19px;font-weight:700;letter-spacing:-.01em}
.login .marca small{display:block;font-size:10.5px;letter-spacing:.16em;color:var(--muted);
  text-transform:uppercase;font-weight:600;margin-bottom:2px}
.login .rule{height:3px;width:48px;background:var(--acc);border-radius:2px;margin-bottom:16px}

/* linea de tiempo */
.evento{padding:10px 0;border-bottom:1px solid var(--line2)}
.evento:last-child{border-bottom:0}
.evento .meta{font-size:11.5px;color:var(--muted);margin-bottom:3px}
.evento .txt{font-size:14px;white-space:pre-wrap}

.pag{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:16px;font-size:13px}
.vacio{padding:26px;text-align:center;color:var(--muted);font-size:14px}
.recuadro{background:var(--card2);border-radius:6px;padding:12px 14px;font-size:13px;color:var(--ink2)}
dl.datos{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:13.5px}
dl.datos dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
dl.datos dd{margin:0}
@media(max-width:700px){
  .etapa{grid-template-columns:1fr 70px;gap:8px}
  .etapa .track{display:none}
}

/* casillas de verificacion en linea, para los filtros de reportes */
label.chk{display:inline-flex;align-items:center;gap:7px;text-transform:none;
  font-weight:400;font-size:13.5px;color:var(--ink2);margin:0;white-space:nowrap;cursor:pointer}
label.chk input{width:auto;margin:0;flex:none}
.campo.chk-campo{display:flex;align-items:flex-end;min-width:auto;padding-bottom:9px}
