:root{
  --rojo:#E20613; --rojo-osc:#b8050f; --gris:#808080; --gris-claro:#f4f4f5;
  --linea:#e3e3e6; --texto:#333333; --muted:#777; --ok:#1e9e54; --warn:#c77700;
  --bad:#c0271e; --card:#ffffff;
}
*{box-sizing:border-box}
body{margin:0;background:var(--gris-claro);color:var(--texto);
  font-family:"DM Sans","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;font-size:14px}
a{color:var(--rojo);text-decoration:none}
a:hover{text-decoration:underline}

/* Header */
header.top{background:#fff;border-bottom:3px solid var(--rojo);
  display:flex;align-items:center;gap:22px;padding:10px 24px;box-shadow:0 1px 4px rgba(0,0,0,.05)}
header.top img.logo{height:38px}
header.top nav{display:flex;gap:18px;margin-left:8px}
header.top nav a{color:var(--texto);font-weight:600;padding:6px 2px;border-bottom:2px solid transparent}
header.top nav a:hover{color:var(--rojo);text-decoration:none;border-bottom-color:var(--rojo)}
header.top .sp{flex:1}
header.top .user{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:10px}
.badge-rol{background:var(--rojo);color:#fff;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}

/* Layout */
.wrap{max-width:1500px;margin:0 auto;padding:22px 24px 60px}
h1{font-size:20px;margin:0 0 4px}
h2{font-size:16px;margin:24px 0 10px}
.muted{color:var(--muted)}

/* Cards / KPIs */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--linea);border-radius:12px;padding:14px}
.kpi .v{font-size:24px;font-weight:800;color:var(--rojo)}
.kpi .l{color:var(--muted);font-size:12px;margin-top:4px}
.card{background:var(--card);border:1px solid var(--linea);border-radius:12px;padding:18px;margin-bottom:16px}

/* Forms */
label{display:block;font-weight:600;font-size:13px;margin:10px 0 4px}
input,select,textarea{font:inherit;color:var(--texto);background:#fff;border:1px solid var(--linea);
  border-radius:8px;padding:8px 10px;width:100%;max-width:420px}
input[type=checkbox]{width:auto}
.row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}
button,.btn{cursor:pointer;border:0;border-radius:8px;padding:9px 16px;font-weight:700;font-size:13px;
  background:var(--rojo);color:#fff}
button:hover,.btn:hover{background:var(--rojo-osc);text-decoration:none}
button.sec,.btn.sec{background:#fff;color:var(--texto);border:1px solid var(--linea)}
button.sec:hover{background:var(--gris-claro)}
.filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.filtros input,.filtros select{width:auto;max-width:none}
label.chk{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--muted)}

/* Tabla */
table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--linea);vertical-align:top}
th{color:var(--muted);font-weight:700;position:sticky;top:0;background:#fafafa}
tr:hover td{background:#fcf4f4}
.badge{font-size:11px;padding:2px 8px;border-radius:999px;color:#fff;font-weight:700;white-space:nowrap;background:#556}
.b-caba{background:#c0271e}.b-pba{background:#7a1fa2}.b-santafe{background:#0e6f8c}
.b-sinai{background:#1f6feb}.b-cordoba{background:#0f766e}.b-mendoza{background:#9a3412}
.b-tucuman{background:#7c3aed}.b-entrerios{background:#b45309}.b-salta{background:#be123c}.b-neuquen{background:#0369a1}
.nuevo{background:var(--warn)}
.res{background:var(--gris)}
.pv{background:#b7791f}
.venc{background:#c0271e}
.monto{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.est-pendiente{color:var(--warn)}.est-revisado{color:#1763c2}.est-pagado{color:var(--ok)}
.est-en_disputa{color:var(--bad)}.est-ignorar{color:var(--muted)}.est-resuelta{color:var(--gris)}

/* Flash */
.flash{padding:10px 14px;border-radius:8px;margin-bottom:10px;font-weight:600}
.flash.ok{background:#e7f6ee;color:#176c3a;border:1px solid #b7e3c9}
.flash.error{background:#fdecec;color:#a3271f;border:1px solid #f3c2bf}
.empty{text-align:center;padding:50px;color:var(--muted)}

/* Login */
.login-wrap{max-width:380px;margin:8vh auto;background:#fff;border:1px solid var(--linea);
  border-radius:14px;padding:30px;box-shadow:0 6px 30px rgba(0,0,0,.08)}
.login-wrap img{height:46px;display:block;margin:0 auto 18px}
.login-wrap input{max-width:none}
.btn-ms{display:flex;align-items:center;justify-content:center;gap:10px;background:#2f2f2f;color:#fff;
  width:100%;padding:11px;border-radius:8px;font-weight:700;margin-top:6px}
.btn-ms:hover{background:#000;text-decoration:none}
.sep{display:flex;align-items:center;gap:10px;color:var(--muted);margin:18px 0;font-size:12px}
.sep::before,.sep::after{content:"";flex:1;height:1px;background:var(--linea)}
