:root{
  --azul-900:#0b1f3a; --azul-800:#102a4c; --azul-700:#16395f;
  --cobre:#c98a3b; --cobre-claro:#e0a85a; --gris:#f4f6f9; --texto:#1d2733;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Segoe UI',system-ui,Arial,sans-serif;background:var(--gris);color:var(--texto)}

/* Barra superior */
.topbar{display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(120deg,var(--azul-900),var(--azul-700));
  color:#fff;padding:.55rem 1.2rem;border-bottom:3px solid var(--cobre)}
.marca{display:flex;align-items:center;gap:.7rem}
.logo{width:44px;height:44px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,var(--cobre-claro),var(--cobre));
  display:flex;align-items:center;justify-content:center;color:#26313d;
  font-weight:800;font-size:.95rem;border:2px solid #ffffff55;box-shadow:0 2px 6px #0006}
.marca .nombre{font-weight:700;font-size:1.12rem;letter-spacing:.3px;line-height:1}
.marca .sub{font-size:.7rem;opacity:.82;font-weight:400}
.topbar .derecha{display:flex;align-items:center;gap:1rem;font-size:.88rem}
.topbar select{padding:.3rem .5rem;border-radius:6px;border:1px solid #ffffff44;background:#0b1f3a;color:#fff}
.topbar .salir{color:#fff;background:#ffffff18;border:1px solid #ffffff55;padding:.32rem .75rem;border-radius:6px;cursor:pointer;font-size:.85rem}
.topbar .salir:hover{background:#ffffff30}

/* Estructura */
.contenedor{display:flex;min-height:calc(100vh - 110px)}
.menu{width:248px;background:#fff;border-right:1px solid #e3e8ef;padding:.8rem .6rem}
.menu h6{margin:.9rem .6rem .3rem;color:#7a8aa0;font-size:.68rem;text-transform:uppercase;letter-spacing:.6px}
.menu a{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border-radius:8px;
  color:var(--texto);text-decoration:none;font-size:.92rem;margin-bottom:.1rem}
.menu a:hover{background:var(--gris)}
.menu a.activo{background:var(--azul-700);color:#fff}
.menu a.proximo{color:#9aa7b8;cursor:default}
.menu a.proximo .tag{margin-left:auto;font-size:.6rem;background:#eef1f5;color:#8a98ab;padding:.08rem .4rem;border-radius:5px}
.menu .ico{width:1.2rem;text-align:center}

.principal{flex:1;padding:1.4rem 1.8rem}
h1{font-size:1.4rem;margin:.1rem 0 .3rem}
.subtitulo{color:#6b7a90;margin:0 0 1.2rem;font-size:.92rem}
.card{background:#fff;border:1px solid #e6eaf0;border-radius:12px;padding:1.2rem 1.4rem;box-shadow:0 1px 3px #0000000a;margin-bottom:1.2rem}
.fila-acciones{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:1rem}

/* Tablas */
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{padding:.6rem .7rem;text-align:left;border-bottom:1px solid #eef1f5}
th{background:var(--azul-800);color:#fff;font-weight:600}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tr:hover td{background:#fafbfd}
tfoot td{font-weight:700;border-top:2px solid var(--cobre);background:#fbf6ee}
.vacio{padding:1.4rem;text-align:center;color:#8190a3}

/* Botones / tarjetas de acceso */
.btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--cobre);color:#1c2530;
  text-decoration:none;font-weight:600;padding:.5rem .95rem;border-radius:8px;border:none;cursor:pointer;font-size:.9rem}
.btn:hover{background:var(--cobre-claro)}
.tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem}
.tarjeta{display:block;background:#fff;border:1px solid #e6eaf0;border-left:4px solid var(--cobre);
  border-radius:10px;padding:1rem 1.1rem;text-decoration:none;color:var(--texto);transition:.15s}
.tarjeta:hover{box-shadow:0 4px 14px #0000001a;transform:translateY(-2px)}
.tarjeta .t{font-weight:700;margin-bottom:.25rem}
.tarjeta .d{font-size:.82rem;color:#6b7a90}

/* Pie */
.pie{text-align:center;padding:.8rem;color:#8190a3;font-size:.8rem;background:#fff;border-top:1px solid #e6eaf0}
.pie a{color:var(--cobre);font-weight:600;text-decoration:none}
.pie a:hover{text-decoration:underline}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(120deg,var(--azul-900),var(--azul-700));padding:1rem}
.login-card{background:#fff;border-radius:16px;padding:2.2rem;width:370px;box-shadow:0 12px 40px #0006;border-top:4px solid var(--cobre)}
.login-card .logo{width:66px;height:66px;font-size:1.25rem;margin:0 auto .8rem}
.login-card h2{text-align:center;margin:.2rem 0;font-size:1.3rem}
.login-card p.sub{text-align:center;color:#8190a3;font-size:.82rem;margin:.15rem 0 1.3rem}
.campo{margin-bottom:.9rem}
.campo label{display:block;font-size:.82rem;margin-bottom:.25rem;color:#54627a}
.campo input{width:100%;padding:.6rem .7rem;border:1px solid #cfd8e3;border-radius:8px;font-size:.95rem}
.campo input:focus{outline:none;border-color:var(--cobre);box-shadow:0 0 0 3px #c98a3b33}
.login-card .btn{width:100%;justify-content:center;margin-top:.4rem;padding:.6rem}
.error{background:#fdecec;color:#b3261e;padding:.5rem .7rem;border-radius:8px;font-size:.85rem;margin-bottom:.8rem}
.login-pie{text-align:center;margin-top:1.2rem;font-size:.76rem;color:#9aa7b8}
.login-pie a{color:var(--cobre);text-decoration:none;font-weight:600}

/* Pestañas de nivel de informe */
.tabs{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap}
.tab{padding:.45rem .9rem;border-radius:8px 8px 0 0;background:#e9edf3;color:#54627a;
  text-decoration:none;font-size:.88rem;font-weight:600}
.tab:hover{background:#dde3ec}
.tab.activo{background:var(--azul-700);color:#fff}

/* Etiquetas (tipo de persona, estados) */
.badge{display:inline-block;padding:.12rem .5rem;border-radius:6px;font-size:.72rem;font-weight:600}
.badge.natural{background:#e7f0fb;color:#1f5fa8}
.badge.juridica{background:#f3ecfb;color:#7a3fb0}

/* Semáforo de alertas */
.alerta{display:inline-block;padding:.15rem .55rem;border-radius:20px;font-size:.74rem;font-weight:700}
.alerta.roja{background:#fde2e1;color:#c0322b}
.alerta.amarilla{background:#fdf3d6;color:#9a7a16}
.alerta.verde{background:#e2f5e6;color:#2e7d44}
.alerta.gris{background:#eef1f5;color:#7a8aa0}

/* Formularios */
.form-subir{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
input[type=file],input[type=date],select.campo-form{padding:.5rem;border:1px solid #cfd8e3;border-radius:8px;font-size:.92rem}
.aviso{background:#eef5ff;border:1px solid #cfe0fb;color:#2d5c9e;padding:.8rem 1rem;border-radius:10px;font-size:.9rem;margin-bottom:1rem}
.ok{background:#e9f8ee;border:1px solid #b9e6c6;color:#256e3c;padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem}
.mini{font-size:.8rem;color:#7a8aa0}
.acciones-fila{display:flex;gap:.4rem}
.btn-sec{background:#eef1f5;color:#36506e}
.btn-sec:hover{background:#e2e8f1}

/* Barra de búsqueda + imprimir en las consultas */
.toolbar-consulta{display:flex;align-items:center;gap:.8rem;margin-bottom:.8rem;flex-wrap:wrap}
.toolbar-consulta .busca{min-width:280px;flex:1;max-width:430px}
.toolbar-consulta .imprimir{margin-left:auto}

/* Al imprimir: solo el título y la tabla, sin menú ni botones */
@media print{
  .topbar,.menu,.pie,.tabs,.toolbar-consulta,.btn{display:none !important}
  .contenedor{display:block;min-height:0}
  .principal{padding:0}
  .card{box-shadow:none;border:none;padding:0 !important;margin:0}
  body{background:#fff}
  table{font-size:11px}
  th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  a{color:#000;text-decoration:none}
  h1{font-size:16px}
}
