:root {
  --wdn-azul: #1b3a6b;
  --wdn-azul-2: #24508f;
  --wdn-naranja: #f28c28;
  --wdn-gris: #6b7280;
  --wdn-fondo: #f4f6fa;
  --wdn-borde: #e3e7ef;
  --bs-primary: #1b3a6b;
  --bs-primary-rgb: 27, 58, 107;
  --bs-link-color: #24508f;
  --bs-link-color-rgb: 36, 80, 143;
}
body { background: var(--wdn-fondo); color: #1f2937; font-size: .95rem; }
.btn-primary { --bs-btn-bg: var(--wdn-azul); --bs-btn-border-color: var(--wdn-azul);
  --bs-btn-hover-bg: var(--wdn-azul-2); --bs-btn-hover-border-color: var(--wdn-azul-2);
  --bs-btn-active-bg: #152e55; }
.btn-naranja { background: var(--wdn-naranja); color: #fff; border: none; }
.btn-naranja:hover { background: #dc7a1a; color: #fff; }
.text-naranja { color: var(--wdn-naranja) !important; }
.text-azul { color: var(--wdn-azul) !important; }

/* Barra lateral */
.sidebar { width: 240px; min-height: 100vh; background: var(--wdn-azul); position: fixed; top: 0; left: 0; z-index: 1030; }
.sidebar .marca { padding: 1.1rem 1.2rem; color: #fff; border-bottom: 1px solid rgba(255,255,255,.12); }
.sidebar .marca small { color: #cbd5e1; display: block; font-size: .72rem; letter-spacing: .02em; }
.sidebar .nav-link { color: #dbe4f3; padding: .6rem 1.2rem; display: flex; align-items: center; gap: .7rem; border-left: 3px solid transparent; }
.sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.06); }
.sidebar .nav-link.activo { color: #fff; background: rgba(255,255,255,.1); border-left-color: var(--wdn-naranja); font-weight: 600; }
.sidebar .seccion { color: #93a4c3; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; padding: 1rem 1.2rem .3rem; }
.contenido { margin-left: 240px; min-height: 100vh; }
.topbar { background: #fff; border-bottom: 1px solid var(--wdn-borde); padding: .7rem 1.5rem; position: sticky; top: 0; z-index: 1020; }
main { padding: 1.5rem; }
@media (max-width: 991.98px) {
  .sidebar { transform: translateX(-100%); transition: transform .2s; }
  .sidebar.abierta { transform: none; box-shadow: 0 0 40px rgba(0,0,0,.3); }
  .contenido { margin-left: 0; }
  main { padding: 1rem .75rem; }
}

/* Tarjetas */
.tarjeta { background: #fff; border: 1px solid var(--wdn-borde); border-radius: 12px; }
.tarjeta .tarjeta-titulo { font-weight: 600; color: var(--wdn-azul); padding: .9rem 1.1rem; border-bottom: 1px solid var(--wdn-borde); display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; }
.kpi { padding: 1rem 1.1rem; }
.kpi .etiqueta { color: var(--wdn-gris); font-size: .8rem; }
.kpi .valor { font-size: 1.55rem; font-weight: 700; color: #111827; line-height: 1.2; }
.kpi .detalle { font-size: .8rem; }
.kpi .icono { width: 42px; height: 42px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; }
.icono-azul { background: #e7eef9; color: var(--wdn-azul); }
.icono-naranja { background: #fdeedf; color: #c76a10; }
.icono-verde { background: #e3f5ea; color: #1f8a4c; }
.icono-gris { background: #eef0f3; color: #4b5563; }
.progress { height: .55rem; }
.progress-bar.bg-naranja { background: var(--wdn-naranja); }

/* Tablas */
.table-wdn { margin-bottom: 0; }
.table-wdn thead th { background: #f0f3f9; color: #374151; font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .02em; white-space: nowrap; border-bottom: 1px solid var(--wdn-borde); position: sticky; top: 0; z-index: 2; }
.table-wdn td, .table-wdn th { vertical-align: middle; }
.table-wdn tfoot td { background: #f0f3f9; font-weight: 700; }
.tabla-scroll { max-height: 68vh; overflow: auto; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.input-num { width: 78px; text-align: right; padding: .25rem .4rem; }
.input-dinero { width: 130px; text-align: right; }
tr.fila-movida { background: #fff8ec; }
td.negativo, span.negativo { color: #b91c1c; font-weight: 700; }
.fila-semana td { background: #f8fafc; font-weight: 600; }
.badge-ok { background: #e3f5ea; color: #1f8a4c; }
.badge-bajo { background: #fdecec; color: #b91c1c; }
.badge-medio { background: #fff4e5; color: #b45309; }

/* Login */
.login-fondo { min-height: 100vh; background: linear-gradient(135deg, #1b3a6b 0%, #24508f 55%, #f28c28 160%); display: flex; align-items: center; justify-content: center; padding: 1rem; }
.login-caja { width: 100%; max-width: 400px; background: #fff; border-radius: 16px; padding: 2rem; box-shadow: 0 25px 60px rgba(0,0,0,.25); }
.evidencia { border-left: 4px solid var(--wdn-naranja); }
@media print { .sidebar, .topbar, .no-imprimir { display: none !important; } .contenido { margin: 0; } }
