/* ============================================================
   Coopdelima — Sistema de diseño nuevo (Portal de Asociados)
   Basado en el handoff new-ui (tema "Fresca").
   Todas las clases van prefijadas con cd- para convivir con
   Bootstrap/Argon sin colisiones mientras se migra página a página.
   ============================================================ */

:root{
  /* Azul de marca oficial Coopdelima — anclado en #0e4272 (brand-700) */
  --cd-brand-900:#06223c;
  --cd-brand-800:#0a3157;
  --cd-brand-700:#0e4272; /* AZUL OFICIAL */
  --cd-brand-600:#15568f;
  --cd-brand-500:#1f6aac;
  --cd-brand-400:#4a89c2;
  --cd-brand-300:#82b0d7;
  --cd-brand-200:#b8d1e7;
  --cd-brand-100:#dce8f3;
  --cd-brand-50:#eef4fa;

  --cd-green-600:#3f8f2c;
  --cd-green-500:#4fa336;
  --cd-green-100:#e6f4dd;

  --cd-amber-500:#e08a3c;
  --cd-amber-100:#fbecd9;

  --cd-ink:#13263d;
  --cd-ink-2:#41566f;
  --cd-ink-3:#71839a;
  --cd-line:#e4ebf3;
  --cd-line-2:#eef3f8;

  --cd-danger:#c8453c;
  --cd-danger-100:#fbe6e4;
  --cd-warn:#d99214;
  --cd-warn-100:#fbf0d6;

  --cd-bg:#eef4fa;
  --cd-surface:#ffffff;
  --cd-surface-2:#f5f9fd;
  --cd-sidebar-bg:#ffffff;
  --cd-sidebar-ink:#52647c;
  --cd-sidebar-ink-active:#0e4272;
  --cd-sidebar-active-bg:#dce8f3;
  --cd-sidebar-border:#e9eef4;
  --cd-accent:#0e4272;        /* AZUL OFICIAL — color principal de la marca */
  --cd-accent-strong:#0a3157; /* azul más oscuro para estados activos/hover llenos */
  --cd-headerbar:#ffffff;
  --cd-header-ink:#13263d;

  --cd-r-sm:8px;
  --cd-r-md:12px;
  --cd-r-lg:18px;
  --cd-r-xl:24px;
  --cd-r-pill:999px;
  --cd-r-card:18px;
  --cd-shadow-sm:0 1px 2px rgba(15,51,96,.06), 0 1px 3px rgba(15,51,96,.05);
  --cd-shadow-md:0 4px 14px rgba(15,51,96,.08), 0 2px 6px rgba(15,51,96,.05);
  --cd-shadow-lg:0 18px 40px rgba(15,51,96,.14);

  --cd-sidebar-w:264px;
  --cd-sidebar-w-collapsed:82px;
}

/* ---------- Tipografía global ---------- */
body{
  font-family:"Nunito","Segoe UI",system-ui,sans-serif !important;
  background:var(--cd-bg);
  color:var(--cd-ink);
  -webkit-font-smoothing:antialiased;
}
.cd-num{ font-variant-numeric:tabular-nums; font-feature-settings:"tnum"; }

/* ============================================================
   SHELL
   ============================================================ */
.cd-app{ display:flex; min-height:100vh; align-items:stretch; }

/* Neutraliza el margin que Argon aplica a .main-content por el sidebar fijo */
.cd-app .main-content{ margin-left:0 !important; flex:1; min-width:0; }

/* ----- Sidebar ----- */
.cd-sidebar{
  width:var(--cd-sidebar-w);
  flex:0 0 var(--cd-sidebar-w);
  background:var(--cd-sidebar-bg);
  border-right:1px solid var(--cd-sidebar-border);
  display:flex; flex-direction:column;
  position:sticky; top:0; height:100vh;
  transition:width .28s cubic-bezier(.4,0,.2,1), flex-basis .28s cubic-bezier(.4,0,.2,1);
  z-index:1040;
}
.cd-app.cd-collapsed .cd-sidebar{ width:var(--cd-sidebar-w-collapsed); flex-basis:var(--cd-sidebar-w-collapsed); }

.cd-brand{
  display:flex; align-items:center; justify-content:center;
  padding:18px 16px 14px; min-height:78px;
}
.cd-brand img{ max-height:46px; width:auto; display:block; transition:max-height .2s; }
.cd-app.cd-collapsed .cd-brand img{ max-height:34px; }

/* colapsador en la línea divisoria, con indicador < / > */
.cd-collapse-handle{
  position:absolute; top:88px; right:-13px; z-index:1060;
  width:26px; height:26px; border-radius:50%;
  background:var(--cd-surface); border:1px solid var(--cd-line);
  color:var(--cd-accent-strong); display:grid; place-items:center;
  box-shadow:var(--cd-shadow-md); cursor:pointer; padding:0;
  transition:background .15s, color .15s, transform .15s;
}
.cd-collapse-handle:hover{ background:var(--cd-brand-50); color:var(--cd-accent-strong); transform:scale(1.08); }
.cd-collapse-handle svg{ width:16px; height:16px; stroke-width:3; }
.cd-collapse-handle .cd-chev-collapse{ display:block; }
.cd-collapse-handle .cd-chev-expand{ display:none; }
.cd-app.cd-collapsed .cd-collapse-handle .cd-chev-collapse{ display:none; }
.cd-app.cd-collapsed .cd-collapse-handle .cd-chev-expand{ display:block; }

.cd-nav{ display:flex; flex-direction:column; gap:4px; padding:8px 12px; overflow-y:auto; overflow-x:hidden; flex:1; }
.cd-nav-label{
  font-size:.66rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  color:var(--cd-sidebar-ink); opacity:.6; padding:14px 12px 6px; white-space:nowrap;
}
.cd-app.cd-collapsed .cd-nav-label{ opacity:0; height:10px; padding:6px 0; overflow:hidden; }

.cd-nav-item{
  display:flex; align-items:center; gap:13px;
  padding:11px 13px; border-radius:var(--cd-r-md);
  color:var(--cd-sidebar-ink) !important; font-weight:700; font-size:.95rem;
  border:none; background:transparent; width:100%; text-align:left;
  transition:background .15s, color .15s; position:relative; text-decoration:none;
}
.cd-nav-item i,.cd-nav-item svg{ width:22px; min-width:22px; text-align:center; font-size:1.05rem; flex:0 0 22px; }
.cd-nav-item:hover,.cd-nav-item:focus{ background:var(--cd-accent); color:#fff !important; text-decoration:none; outline:none; }
.cd-nav-item:hover .cd-alert,.cd-nav-item:focus .cd-alert{ color:#fff; }
.cd-nav-item.cd-active{ background:var(--cd-accent); color:#fff !important; }
.cd-nav-item.cd-active .cd-alert{ color:#fff; }
.cd-nav-item.cd-active::before{
  content:""; position:absolute; left:-12px; top:18%; bottom:18%;
  width:4px; border-radius:0 4px 4px 0; background:#fff;
}
.cd-nav-item .cd-lbl{ white-space:nowrap; overflow:hidden; }
.cd-nav-item .cd-alert{ color:var(--cd-warn); margin-left:auto; font-size:.85rem; }
.cd-app.cd-collapsed .cd-nav-item{ justify-content:center; padding:11px 0; }
.cd-app.cd-collapsed .cd-nav-item .cd-lbl,
.cd-app.cd-collapsed .cd-nav-item .cd-alert{ display:none; }

/* submenú admin */
.cd-subnav{ display:flex; flex-direction:column; gap:2px; padding:2px 0 6px 0; }
.cd-subnav a{
  display:block; padding:9px 13px 9px 48px; border-radius:var(--cd-r-md);
  color:var(--cd-sidebar-ink) !important; font-weight:600; font-size:.88rem; text-decoration:none;
}
.cd-subnav a:hover,.cd-subnav a:focus{ background:var(--cd-accent); color:#fff !important; outline:none; }
.cd-app.cd-collapsed .cd-subnav{ display:none; }
.cd-caret{ margin-left:auto; transition:transform .2s; }
.cd-nav-item[aria-expanded="true"] .cd-caret{ transform:rotate(180deg); }

/* tooltip al estar colapsado */
.cd-app.cd-collapsed .cd-nav-item[data-tip]:hover::after{
  content:attr(data-tip); position:absolute; left:calc(100% + 14px); top:50%;
  transform:translateY(-50%); background:var(--cd-ink); color:#fff; padding:6px 11px;
  border-radius:8px; font-size:.8rem; white-space:nowrap; z-index:1080; box-shadow:var(--cd-shadow-md);
}

/* ----- Main / topbar ----- */
.cd-main{ flex:1; min-width:0; display:flex; flex-direction:column; }

.cd-topbar{
  position:sticky; top:0; z-index:1030;
  background:rgba(255,255,255,.55);
  backdrop-filter:saturate(1.5) blur(14px);
  -webkit-backdrop-filter:saturate(1.5) blur(14px);
  border-bottom:1px solid var(--cd-line);
  display:flex; align-items:center; gap:16px;
  padding:0 clamp(14px,1.6vw,22px); height:60px;
}
.cd-icon-btn{
  width:42px; height:42px; border-radius:var(--cd-r-md); border:1px solid var(--cd-line);
  background:var(--cd-surface); color:var(--cd-ink-2); display:grid; place-items:center;
  transition:background .15s, border-color .15s; cursor:pointer; flex:0 0 auto;
}
.cd-icon-btn:hover,.cd-icon-btn:focus{ background:var(--cd-accent); border-color:var(--cd-accent); color:#fff; outline:none; }
.cd-icon-btn i{ font-size:1.05rem; }

.cd-crumb{ display:flex; flex-direction:column; line-height:1.1; min-width:0; }
.cd-crumb .cd-c-sub{ font-size:.72rem; font-weight:800; color:var(--cd-ink-3); text-transform:uppercase; letter-spacing:.06em; }
.cd-crumb .cd-c-title{ font-size:1.18rem; font-weight:800; color:var(--cd-header-ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cd-crumb a{ color:inherit; }

.cd-spacer{ flex:1; }

.cd-greet{ text-align:right; line-height:1.15; display:none; }
.cd-greet .cd-g-hi{ font-size:.74rem; color:var(--cd-ink-3); font-weight:700; white-space:nowrap; }
.cd-greet .cd-g-name{ font-size:.96rem; font-weight:800; color:var(--cd-header-ink); white-space:nowrap; }
@media(min-width:820px){ .cd-greet{ display:block; } }

.cd-user{ position:relative; }
.cd-avatar{
  width:46px; height:46px; border-radius:var(--cd-r-pill);
  background:linear-gradient(135deg,var(--cd-brand-500),var(--cd-brand-700));
  color:#fff; display:grid; place-items:center; font-weight:800; font-size:1rem;
  box-shadow:var(--cd-shadow-sm); border:2px solid var(--cd-surface); cursor:pointer; overflow:hidden;
}
.cd-avatar img{ width:100%; height:100%; object-fit:cover; }
.cd-user-menu{
  position:absolute; right:0; top:calc(100% + 10px); min-width:210px;
  background:var(--cd-surface); border:1px solid var(--cd-line); border-radius:var(--cd-r-md);
  box-shadow:var(--cd-shadow-lg); padding:8px; z-index:1090; display:none;
}
.cd-user-menu.cd-open{ display:block; }
.cd-user-menu .cd-um-head{ padding:8px 12px 10px; border-bottom:1px solid var(--cd-line-2); margin-bottom:6px; }
.cd-user-menu .cd-um-head .nm{ font-weight:800; color:var(--cd-ink); font-size:.92rem; }
.cd-user-menu .cd-um-head .sb{ font-size:.76rem; color:var(--cd-ink-3); font-weight:600; }
.cd-user-menu a,.cd-user-menu button{
  display:flex; align-items:center; gap:11px; width:100%; text-align:left;
  padding:10px 12px; border-radius:var(--cd-r-sm); border:none; background:transparent;
  color:var(--cd-ink-2) !important; font-weight:700; font-size:.9rem; text-decoration:none; cursor:pointer;
}
.cd-user-menu a:hover,.cd-user-menu a:focus,
.cd-user-menu button:hover,.cd-user-menu button:focus{ background:var(--cd-accent); color:#fff !important; outline:none; }
.cd-user-menu .cd-um-logout{ color:var(--cd-danger) !important; }
.cd-user-menu .cd-um-logout:hover,.cd-user-menu .cd-um-logout:focus{ background:var(--cd-danger); color:#fff !important; }
.cd-user-menu i{ width:18px; text-align:center; }

.cd-footer{
  padding:16px clamp(14px,1.6vw,22px); color:var(--cd-ink-3); font-size:.82rem;
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-top:1px solid var(--cd-line); background:var(--cd-surface);
}
.cd-footer a{ color:var(--cd-ink-3); font-weight:700; }
.cd-footer a:hover{ color:var(--cd-accent-strong); }

/* contenedor de contenido nuevo (para páginas convertidas) */
.cd-content{ padding:22px clamp(14px,1.8vw,24px); flex:1; max-width:1720px; width:100%; margin:0 auto; }
.cd-page-head{ margin-bottom:22px; }
.cd-back-link{ display:inline-flex; align-items:center; gap:7px; color:var(--cd-ink-3); font-weight:700; font-size:.85rem; margin-bottom:10px; text-decoration:none; }
.cd-back-link:hover{ color:var(--cd-accent-strong); text-decoration:none; }
.cd-back-link i{ font-size:.8rem; }
.cd-page-head h1{ font-size:clamp(1.4rem,3vw,1.9rem); font-weight:800; color:var(--cd-ink); letter-spacing:-.01em; margin:0; }
.cd-page-head p{ margin:6px 0 0; color:var(--cd-ink-2); font-weight:600; }

/* mobile */
.cd-menu-mobile{ display:none; }
.scrim{ display:none; position:fixed; inset:0; background:rgba(15,38,61,.45); z-index:1035; }
.scrim.cd-show{ display:block; }
/* Con el drawer abierto se bloquea el scroll del fondo */
body.cd-no-scroll{ overflow:hidden; }
/* Botón de cerrar: solo aplica al drawer móvil */
.cd-menu-close{ display:none; }
@media(max-width:991px){
  .cd-menu-close{
    display:inline-grid; place-items:center; position:absolute; top:12px; right:12px;
    width:36px; height:36px; border:1px solid var(--cd-line); border-radius:10px;
    background:var(--cd-surface); color:var(--cd-ink-2); cursor:pointer; z-index:2;
  }
  .cd-menu-close:hover{ color:var(--cd-accent-strong); }
  .cd-sidebar{ position:fixed; left:0; top:0; transform:translateX(-100%); box-shadow:var(--cd-shadow-lg); }
  .cd-app.cd-mobile-open .cd-sidebar{ transform:translateX(0); }
  .cd-collapse-handle{ display:none; }
  .cd-menu-mobile{ display:grid; }
  .cd-menu-desktop{ display:none; }
  .cd-app.cd-collapsed .cd-sidebar{ width:var(--cd-sidebar-w); flex-basis:var(--cd-sidebar-w); }
  .cd-app.cd-collapsed .cd-nav-item{ justify-content:flex-start; padding:11px 13px; }
  .cd-app.cd-collapsed .cd-nav-item .cd-lbl{ display:inline; }
}

/* ============================================================
   SWEETALERT2 CON LOS BOTONES DE LA PLATAFORMA
   ============================================================
   SweetAlert trae su propio morado y su propia tipografía. Se normaliza aquí,
   una sola vez, en vez de pasar confirmButtonColor en cada Swal.fire: hay 28
   llamadas repartidas por las vistas y basta que una se olvide para que salga
   el morado. El !important es necesario porque la librería aplica el color
   como estilo EN LÍNEA, que de otro modo le gana a la hoja. */
.swal2-popup{ font-family:inherit; border-radius:var(--cd-r-card); }
.swal2-popup .swal2-title{ color:var(--cd-ink); font-weight:800; }
.swal2-popup .swal2-html-container{ color:var(--cd-ink-2); }
.swal2-popup .swal2-styled{
  font-family:inherit; font-weight:800; font-size:.95rem; padding:11px 20px;
  border-radius:var(--cd-r-md); border:1.5px solid transparent; transition:.15s;
  box-shadow:none !important;
}
/* El relleno va SOLO en :hover. SweetAlert enfoca el boton de confirmar al
   abrir, asi que incluir :focus lo mostraba ya relleno —como si el cursor
   estuviera encima— hasta que se hiciera clic en otra parte. El foco de teclado
   se marca con el anillo de :focus-visible de mas abajo. */
.swal2-popup .swal2-styled.swal2-confirm{ background:transparent !important; color:var(--cd-accent) !important; border-color:var(--cd-accent) !important; }
.swal2-popup .swal2-styled.swal2-confirm:hover{ background:var(--cd-accent) !important; color:#fff !important; }
.swal2-popup .swal2-styled.swal2-cancel{ background:transparent !important; color:var(--cd-ink-2) !important; border-color:var(--cd-line) !important; }
.swal2-popup .swal2-styled.swal2-cancel:hover{ background:var(--cd-ink-2) !important; color:#fff !important; border-color:var(--cd-ink-2) !important; }
.swal2-popup .swal2-styled.swal2-deny{ background:transparent !important; color:var(--cd-danger) !important; border-color:var(--cd-danger) !important; }
.swal2-popup .swal2-styled.swal2-deny:hover{ background:var(--cd-danger) !important; color:#fff !important; }
.swal2-popup .swal2-styled:focus-visible{ outline:none; box-shadow:0 0 0 4px var(--cd-brand-100) !important; }
.swal2-popup .swal2-input,.swal2-popup .swal2-select,.swal2-popup .swal2-textarea{
  font-family:inherit; border:1.5px solid var(--cd-line); border-radius:var(--cd-r-md);
  box-shadow:none; font-weight:600; color:var(--cd-ink);
}
.swal2-popup .swal2-input:focus,.swal2-popup .swal2-select:focus{ border-color:var(--cd-brand-400); box-shadow:0 0 0 4px var(--cd-brand-100); }

/* ============================================================
   COMPONENTES DE CONTENIDO (cd-)
   ============================================================ */
.cd-card{ background:var(--cd-surface); border:1px solid var(--cd-line); border-radius:var(--cd-r-card); box-shadow:var(--cd-shadow-sm); }
.cd-card.cd-pad{ padding:22px; }
.cd-card-head{ display:flex; align-items:center; gap:12px; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--cd-line-2); }
.cd-card-head h3{ font-size:1.06rem; font-weight:800; color:var(--cd-ink); margin:0; }
.cd-card-body{ padding:22px; }

.cd-grid{ display:grid; gap:18px; }
.cd-g-2{ grid-template-columns:repeat(2,1fr); }
.cd-g-3{ grid-template-columns:repeat(3,1fr); }
.cd-g-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:980px){ .cd-g-4{ grid-template-columns:repeat(2,1fr);} .cd-g-3{ grid-template-columns:1fr 1fr;} }
@media(max-width:680px){ .cd-g-2,.cd-g-3,.cd-g-4{ grid-template-columns:1fr; } }

.cd-stat{ background:var(--cd-surface); border:1px solid var(--cd-line); border-radius:var(--cd-r-card); padding:20px; box-shadow:var(--cd-shadow-sm); display:flex; flex-direction:column; gap:6px; }
.cd-stat .cd-ico{ width:46px; height:46px; border-radius:13px; display:grid; place-items:center; margin-bottom:6px; font-size:1.2rem; }
.cd-stat .cd-s-label{ font-size:.82rem; color:var(--cd-ink-3); font-weight:700; }
.cd-stat .cd-s-value{ font-size:1.7rem; font-weight:800; letter-spacing:-.02em; color:var(--cd-ink); }
.cd-ico.blue{ background:var(--cd-brand-100); color:var(--cd-brand-700); }
.cd-ico.green{ background:var(--cd-green-100); color:var(--cd-green-600); }
.cd-ico.amber{ background:var(--cd-amber-100); color:var(--cd-amber-500); }
.cd-ico.violet{ background:#ede9fb; color:#6d52c9; }

/* badges */
.cd-badge{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; padding:4px 11px; border-radius:var(--cd-r-pill); font-size:.76rem; font-weight:800; }
.cd-badge.ok{ background:var(--cd-green-100); color:var(--cd-green-600); }
.cd-badge.info{ background:var(--cd-brand-100); color:var(--cd-brand-700); }
.cd-badge.warn{ background:var(--cd-warn-100); color:var(--cd-warn); }
.cd-badge.danger{ background:var(--cd-danger-100); color:var(--cd-danger); }

/* botones — estilo OUTLINE: transparentes y se llenan del color al hover/focus */
.cd-btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:11px 20px; border-radius:var(--cd-r-md); font-weight:800; font-size:.95rem; border:1.5px solid transparent; background:transparent; transition:.15s; white-space:nowrap; cursor:pointer; text-decoration:none; }
.cd-btn:hover{ text-decoration:none; }
.cd-btn:focus-visible{ outline:none; box-shadow:0 0 0 4px var(--cd-brand-100); }

/* Acciones azules (lo predeterminado): outline azul oficial -> se llena al hover/focus */
.cd-btn.cd-primary{ background:transparent; color:var(--cd-accent); border-color:var(--cd-accent); }
.cd-btn.cd-primary:hover,.cd-btn.cd-primary:focus{ background:var(--cd-accent); color:#fff; border-color:var(--cd-accent); }

/* Acciones de eliminar/peligro: outline rojo -> se llena de rojo al hover/focus */
.cd-btn.cd-danger{ background:transparent; color:var(--cd-danger); border-color:var(--cd-danger); }
.cd-btn.cd-danger:hover,.cd-btn.cd-danger:focus{ background:var(--cd-danger); color:#fff; border-color:var(--cd-danger); }
.cd-btn.cd-danger:focus-visible{ box-shadow:0 0 0 4px var(--cd-danger-100); }

/* Secundario neutro (cancelar/volver): outline gris -> azul al hover */
.cd-btn.cd-ghost{ background:transparent; border-color:var(--cd-line); color:var(--cd-ink-2); }
.cd-btn.cd-ghost:hover,.cd-btn.cd-ghost:focus{ border-color:var(--cd-accent); color:#fff; background:var(--cd-accent); }

/* Soft: variante azul tenue (también se intensifica al hover) */
.cd-btn.cd-soft{ background:var(--cd-brand-100); color:var(--cd-brand-700); border-color:transparent; }
.cd-btn.cd-soft:hover,.cd-btn.cd-soft:focus{ background:var(--cd-accent); color:#fff; }

.cd-btn.cd-lg{ padding:14px 26px; font-size:1.02rem; }
.cd-btn.cd-block{ width:100%; }
.cd-btn:disabled{ opacity:.5; cursor:not-allowed; }

/* tabs (chips) */
.cd-tabs{ display:flex; gap:8px; flex-wrap:wrap; }
.cd-tab{ display:inline-flex; align-items:center; gap:9px; padding:12px 18px; border-radius:var(--cd-r-md); font-weight:800; font-size:.92rem; color:var(--cd-ink-2); background:var(--cd-surface); border:1px solid var(--cd-line); transition:.15s; text-decoration:none; cursor:pointer; }
.cd-tab:hover,.cd-tab:focus{ background:var(--cd-accent); border-color:var(--cd-accent); color:#fff; text-decoration:none; outline:none; }
.cd-tab.cd-active, .cd-tab.active{ background:var(--cd-accent); color:#fff; border-color:var(--cd-accent); box-shadow:var(--cd-shadow-sm); }

/* tablas */
.cd-table-wrap{ overflow-x:auto; border-radius:var(--cd-r-md); }
table.cd-tbl{ width:100%; border-collapse:collapse; }
table.cd-tbl thead th{ background:var(--cd-surface-2); color:var(--cd-ink-2); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; text-align:left; padding:13px 14px; border-bottom:1px solid var(--cd-line); white-space:nowrap; }
table.cd-tbl tbody td{ padding:14px; border-bottom:1px solid var(--cd-line-2); font-weight:600; color:var(--cd-ink); font-size:.92rem; }
table.cd-tbl tbody tr:hover{ background:var(--cd-surface-2); }
table.cd-tbl .r{ text-align:right; }
table.cd-tbl tfoot td{ padding:14px; font-weight:800; color:var(--cd-ink); background:var(--cd-brand-50); border-top:2px solid var(--cd-brand-200); }
.cd-pos{ color:var(--cd-green-600); } .cd-neg{ color:var(--cd-danger); } .cd-muted{ color:var(--cd-ink-3); }
.cd-link{ color:var(--cd-accent-strong); font-weight:700; text-decoration:none; }
.cd-link:hover{ color:var(--cd-accent); text-decoration:underline; }
.cd-icon-action{ display:inline-grid; place-items:center; width:34px; height:34px; border-radius:8px; border:1.5px solid var(--cd-line); color:var(--cd-accent); background:transparent; margin:0 2px; text-decoration:none; transition:.15s; }
.cd-icon-action:hover,.cd-icon-action:focus{ background:var(--cd-accent); border-color:var(--cd-accent); color:#fff; }
.cd-icon-action.danger{ color:var(--cd-danger); }
.cd-icon-action.danger:hover,.cd-icon-action.danger:focus{ background:var(--cd-danger); border-color:var(--cd-danger); color:#fff; }

/* formularios */
.cd-field{ display:flex; flex-direction:column; gap:7px; margin-bottom:14px; }
.cd-field label{ font-size:.84rem; font-weight:800; color:var(--cd-ink-2); }
.cd-field label .req{ color:var(--cd-danger); }
.cd-field .hint{ font-size:.78rem; color:var(--cd-ink-3); font-weight:600; }
.cd-input,.cd-select,textarea.cd-input{ width:100%; padding:13px 14px; border-radius:var(--cd-r-md); border:1.5px solid var(--cd-line); background:var(--cd-surface); color:var(--cd-ink); font-family:inherit; font-size:.95rem; font-weight:600; transition:.15s; }
.cd-input::placeholder{ color:var(--cd-ink-3); font-weight:600; }
.cd-input:focus,.cd-select:focus,textarea.cd-input:focus{ outline:none; border-color:var(--cd-brand-400); box-shadow:0 0 0 4px var(--cd-brand-100); }
.cd-input:disabled,.cd-input.locked{ background:var(--cd-surface-2); color:var(--cd-ink-2); cursor:not-allowed; }
.cd-form-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:4px 20px; }
.cd-form-grid.three{ grid-template-columns:repeat(3,1fr); }
@media(max-width:760px){ .cd-form-grid,.cd-form-grid.three{ grid-template-columns:1fr; } }
.cd-span-2{ grid-column:span 2; }
@media(max-width:760px){ .cd-span-2{ grid-column:auto; } }
.cd-form-section{ display:flex; align-items:center; gap:11px; margin:28px 0 16px; padding-bottom:12px; border-bottom:2px solid var(--cd-brand-100); }
.cd-form-section .n{ width:30px; height:30px; border-radius:9px; background:var(--cd-brand-100); color:var(--cd-brand-700); display:grid; place-items:center; font-weight:800; font-size:.9rem; flex:0 0 30px; }
.cd-form-section h3{ font-size:1.04rem; font-weight:800; color:var(--cd-ink); margin:0; }

.cd-dropzone{ border:2.5px dashed var(--cd-brand-200); border-radius:var(--cd-r-lg); background:var(--cd-brand-50); padding:34px; text-align:center; color:var(--cd-ink-2); display:flex; flex-direction:column; align-items:center; gap:10px; transition:.15s; }
.cd-dropzone:hover{ border-color:var(--cd-brand-400); background:var(--cd-brand-100); }
.cd-dropzone i{ font-size:2rem; color:var(--cd-brand-500); }

/* ---- Subida de archivos estándar (arrastrar y soltar) ---- */
.cd-file-drop{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  border:2.5px dashed var(--cd-brand-200); border-radius:var(--cd-r-lg); background:var(--cd-brand-50);
  padding:26px 18px; text-align:center; color:var(--cd-ink-2); cursor:pointer; transition:.15s; width:100%; margin:2px 0; }
.cd-file-drop:hover, .cd-file-drop.cd-dragover{ border-color:var(--cd-brand-400); background:var(--cd-brand-100); }
.cd-file-drop i{ font-size:1.9rem; color:var(--cd-brand-500); }
.cd-file-drop .cd-file-text{ font-weight:700; font-size:.9rem; }
.cd-file-drop .cd-file-name{ font-weight:800; color:var(--cd-accent-strong); font-size:.85rem; word-break:break-all; }
.cd-file-drop input[type=file]{ display:none !important; }

.cd-divider{ height:1px; background:var(--cd-line); margin:22px 0; border:none; }

/* ============================================================
   AUTO-SKIN LEGACY — vistas admin crear/editar aún no migradas
   (banner azul viejo + card.bg-secondary). Las moderniza sin tocar el blade.
   ============================================================ */
.main-content .header.d-flex.align-items-center{ display:none !important; }
.container-fluid.mt--7{ margin-top:22px !important; }
.card.bg-secondary{ background:var(--cd-surface) !important; border:1px solid var(--cd-line) !important;
  border-radius:var(--cd-r-card) !important; box-shadow:var(--cd-shadow-sm) !important; }
.card.bg-secondary > .card-header{ background:transparent !important; border:none !important; padding:18px 22px 4px; }
.card.bg-secondary > .card-header h3{ font-weight:800; color:var(--cd-ink); }
.card.bg-secondary .card-header .btn-outline-primary{
  display:inline-grid; place-items:center; width:40px; height:40px; padding:0; border-radius:var(--cd-r-md);
  background:transparent; border:1.5px solid var(--cd-line); color:var(--cd-accent); transition:.15s; }
.card.bg-secondary .card-header .btn-outline-primary:hover,
.card.bg-secondary .card-header .btn-outline-primary:focus{ background:var(--cd-accent); border-color:var(--cd-accent); color:#fff; }
.card.bg-secondary .form-control{ padding:11px 13px; border-radius:var(--cd-r-md); border:1.5px solid var(--cd-line);
  background:var(--cd-surface); color:var(--cd-ink); font-weight:600; font-size:.92rem; height:auto; transition:.15s; }
.card.bg-secondary .form-control:focus{ outline:none; border-color:var(--cd-brand-400); box-shadow:0 0 0 4px var(--cd-brand-100); }
.card.bg-secondary .form-control[readonly], .card.bg-secondary .form-control:disabled{ background:var(--cd-surface-2); color:var(--cd-ink-2); }
.card.bg-secondary strong{ color:var(--cd-ink-2); font-weight:800; }
.card.bg-secondary .card-body .btn-outline-primary,
.card.bg-secondary .card-body .btn-primary{ background:transparent; color:var(--cd-accent); border:1.5px solid var(--cd-accent);
  border-radius:var(--cd-r-md); font-weight:800; padding:10px 24px; transition:.15s; }
.card.bg-secondary .card-body .btn-outline-primary:hover,
.card.bg-secondary .card-body .btn-primary:hover,
.card.bg-secondary .card-body .btn-outline-primary:focus,
.card.bg-secondary .card-body .btn-primary:focus{ background:var(--cd-accent); border-color:var(--cd-accent); color:#fff; }
.card.bg-secondary .btn-outline-danger,
.card.bg-secondary .btn-danger{ background:transparent; color:var(--cd-danger); border:1.5px solid var(--cd-danger);
  border-radius:var(--cd-r-md); font-weight:800; transition:.15s; }
.card.bg-secondary .btn-outline-danger:hover,.card.bg-secondary .btn-danger:hover,
.card.bg-secondary .btn-outline-danger:focus,.card.bg-secondary .btn-danger:focus{ background:var(--cd-danger); border-color:var(--cd-danger); color:#fff; }
.card.bg-secondary .alert-danger{ background:var(--cd-danger-100); color:var(--cd-danger); border:none; border-radius:var(--cd-r-md); }
.card.bg-secondary .alert-success{ background:var(--cd-green-100); color:var(--cd-green-600); border:none; border-radius:var(--cd-r-md); }

/* ============================================================
   FORM SKIN — reestiliza formularios Bootstrap/Form:: existentes
   (para páginas migradas sin reescribir todo el markup)
   ============================================================ */
.cd-form-skin .titulo-azul{ background:linear-gradient(135deg,var(--cd-brand-700),var(--cd-brand-900)); border-radius:var(--cd-r-md); margin:0 0 18px; }
.cd-form-skin .titulo-azul h4{ color:#fff; font-weight:800; font-size:1rem; margin:0; padding:13px 16px; text-transform:uppercase; letter-spacing:.02em; }
.cd-form-skin strong{ color:var(--cd-ink-2); font-weight:800; }
.cd-form-skin .form-control{ width:100%; padding:11px 13px; border-radius:var(--cd-r-md); border:1.5px solid var(--cd-line);
    background:var(--cd-surface); color:var(--cd-ink); font-weight:600; font-size:.92rem; height:auto; transition:.15s; }
.cd-form-skin .form-control:focus{ outline:none; border-color:var(--cd-brand-400); box-shadow:0 0 0 4px var(--cd-brand-100); }
.cd-form-skin .form-control[readonly], .cd-form-skin .form-control:disabled{ background:var(--cd-surface-2); color:var(--cd-ink-2); }
.cd-form-skin select.form-control{ appearance:auto; }
.cd-form-skin textarea.form-control{ min-height:90px; }
.cd-form-skin .btn-outline-primary, .cd-form-skin .btn-primary{ display:inline-flex; align-items:center; gap:8px;
    background:transparent; color:var(--cd-accent); border:1.5px solid var(--cd-accent); border-radius:var(--cd-r-md); font-weight:800; padding:10px 24px; transition:.15s; }
.cd-form-skin .btn-outline-primary:hover, .cd-form-skin .btn-primary:hover,
.cd-form-skin .btn-outline-primary:focus, .cd-form-skin .btn-primary:focus{ background:var(--cd-accent); border-color:var(--cd-accent); color:#fff; }
.cd-form-skin .btn-outline-primary:disabled{ opacity:.45; cursor:not-allowed; }
.cd-form-skin .btn-sm{ padding:6px 12px; font-size:.82rem; }
.cd-form-skin .btn-danger, .cd-form-skin .btn-outline-danger{ background:transparent; border:1.5px solid var(--cd-danger); color:var(--cd-danger); border-radius:var(--cd-r-md); font-weight:800; transition:.15s; }
.cd-form-skin .btn-danger:hover, .cd-form-skin .btn-outline-danger:hover,
.cd-form-skin .btn-danger:focus, .cd-form-skin .btn-outline-danger:focus{ background:var(--cd-danger); border-color:var(--cd-danger); color:#fff; }
.cd-form-skin .dropzone{ border:2.5px dashed var(--cd-brand-200); border-radius:var(--cd-r-lg); background:var(--cd-brand-50); color:var(--cd-ink-2); min-height:140px; }
.cd-form-skin .dropzone:hover{ border-color:var(--cd-brand-400); background:var(--cd-brand-100); }
.cd-form-skin .alert{ border-radius:var(--cd-r-md); font-weight:700; border:none; }
.cd-form-skin .alert-danger{ background:var(--cd-danger-100); color:var(--cd-danger); }
.cd-form-skin .alert-success{ background:var(--cd-green-100); color:var(--cd-green-600); }
.cd-form-skin hr{ border:none; border-top:1px solid var(--cd-line); margin:18px 0; }
.cd-form-skin table{ width:100%; border-collapse:collapse; }
.cd-form-skin table thead th{ background:var(--cd-surface-2); color:var(--cd-ink-2); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:12px; border-bottom:1px solid var(--cd-line); }
.cd-form-skin table tbody td{ padding:11px 12px; border-bottom:1px solid var(--cd-line-2); font-weight:600; font-size:.9rem; color:var(--cd-ink); }
.cd-form-skin .badge{ border-radius:var(--cd-r-pill); padding:5px 12px; font-weight:800; font-size:.74rem; }

/* ============================================================
   DATATABLES (tema global, para páginas que lo usan)
   ============================================================ */
.dataTables_wrapper{ font-weight:600; }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select{
  border:1.5px solid var(--cd-line) !important; border-radius:var(--cd-r-sm); padding:7px 10px;
  font-weight:600; color:var(--cd-ink); background:var(--cd-surface);
}
.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus{ outline:none; border-color:var(--cd-brand-400); box-shadow:0 0 0 4px var(--cd-brand-100); }
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label{ color:var(--cd-ink-3); font-weight:700; font-size:.85rem; }
table.dataTable{ border-collapse:collapse !important; }
table.dataTable thead th{
  background:var(--cd-surface-2); color:var(--cd-ink-2) !important; font-size:.72rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--cd-line) !important; padding:13px 14px;
}
table.dataTable tbody td{ font-weight:600; color:var(--cd-ink); font-size:.9rem; border-bottom:1px solid var(--cd-line-2); padding:12px 14px; }
table.dataTable tbody tr:hover{ background:var(--cd-surface-2); }
.dataTables_wrapper .pagination .page-link{ color:var(--cd-accent-strong); border-radius:8px; margin:0 2px; border:1px solid var(--cd-line); font-weight:700; }
.dataTables_wrapper .pagination .page-item.active .page-link{ background:var(--cd-accent); border-color:var(--cd-accent); color:#fff; }
.dataTables_wrapper .pagination .page-link:hover{ background:var(--cd-brand-50); }

/* ============================================================
   PANEL DE ADMINISTRACIÓN (tarjetas)
   ============================================================ */
.cd-admin-section{ margin-bottom:28px; }
.cd-admin-section-head{ display:flex; align-items:center; gap:10px; margin:0 0 14px; }
.cd-admin-section-head .n{ width:30px; height:30px; border-radius:9px; background:var(--cd-brand-100); color:var(--cd-brand-700);
  display:grid; place-items:center; font-weight:800; font-size:.9rem; flex:0 0 30px; }
.cd-admin-section-head h2{ font-size:1.08rem; font-weight:800; color:var(--cd-ink); margin:0; }
.cd-admin-section-head .sub{ font-size:.82rem; color:var(--cd-ink-3); font-weight:600; }

.cd-admin-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(250px,1fr)); gap:16px; }
.cd-admin-card{ position:relative; display:flex; gap:14px; align-items:flex-start; background:var(--cd-surface); border:1px solid var(--cd-line);
  border-radius:var(--cd-r-card); box-shadow:var(--cd-shadow-sm); padding:18px; text-decoration:none; transition:.18s; }
.cd-new-badge{ position:absolute; top:12px; right:12px; min-width:34px; height:22px; padding:0 8px; display:inline-flex; align-items:center; gap:4px;
  justify-content:center; border-radius:999px; background:var(--cd-danger); color:#fff; font-size:.72rem; font-weight:800; line-height:1; box-shadow:0 2px 7px rgba(214,69,69,.4); }
.cd-new-badge.zero{ background:var(--cd-green-100); color:var(--cd-green-600); box-shadow:none; }
.cd-admin-card:hover{ box-shadow:var(--cd-shadow-md); transform:translateY(-3px); border-color:var(--cd-brand-200); text-decoration:none; }
.cd-admin-card .cd-ico{ width:46px; height:46px; border-radius:13px; display:grid; place-items:center; font-size:1.25rem; flex:0 0 46px; }
.cd-admin-card h4{ font-size:1rem; font-weight:800; color:var(--cd-ink); margin:0 0 3px; }
.cd-admin-card p{ font-size:.84rem; color:var(--cd-ink-2); font-weight:600; margin:0; line-height:1.4; }
.cd-admin-card .cd-arrow{ margin-left:auto; color:var(--cd-ink-3); align-self:center; }
.cd-admin-card:hover .cd-arrow{ color:var(--cd-accent-strong); }

/* Botón expandir gráfica + modal fullscreen */
.cd-chart-expand{ position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:10px; border:1px solid var(--cd-line);
  background:var(--cd-surface); color:var(--cd-ink-2); display:inline-grid; place-items:center; cursor:pointer; transition:.15s; z-index:2; }
.cd-chart-expand:hover{ background:var(--cd-brand-100); color:var(--cd-accent-strong); border-color:var(--cd-brand-300); }
.cd-chart-modal{ position:fixed; inset:0; background:rgba(15,30,55,.55); backdrop-filter:blur(3px); z-index:1080; display:flex; align-items:center; justify-content:center; padding:24px; }
.cd-chart-modal-inner{ background:var(--cd-surface); border-radius:var(--cd-r-card); box-shadow:var(--cd-shadow-lg, 0 20px 60px rgba(0,0,0,.3)); width:min(1100px, 96vw); height:min(82vh, 820px); display:flex; flex-direction:column; overflow:hidden; }
.cd-chart-modal-head{ display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--cd-line); }
.cd-chart-modal-head h3{ margin:0; font-weight:800; color:var(--cd-ink); font-size:1.15rem; }
.cd-chart-modal-close{ width:36px; height:36px; border-radius:10px; border:1px solid var(--cd-line); background:var(--cd-surface); color:var(--cd-ink-2); font-size:1.3rem; line-height:1; cursor:pointer; transition:.15s; }
.cd-chart-modal-close:hover{ background:var(--cd-danger-100); color:var(--cd-danger); border-color:var(--cd-danger); }
.cd-chart-modal-body{ flex:1; padding:20px; position:relative; min-height:0; }

/* Opciones de votación */
.cd-vote-list{ display:flex; flex-direction:column; gap:10px; max-width:680px; margin:0 auto; }
.cd-vote-option{ display:flex; align-items:center; gap:12px; padding:14px 18px; border:1px solid var(--cd-line); border-radius:var(--cd-r-md);
  cursor:pointer; transition:.15s; font-weight:600; color:var(--cd-ink); margin:0; }
.cd-vote-option:hover{ border-color:var(--cd-brand-300); background:var(--cd-brand-100); }
.cd-vote-option input{ width:18px; height:18px; accent-color:var(--cd-accent); }

/* ============================================================
   NOTICIAS / NEWS
   ============================================================ */
.cd-news-card{ border:1px solid var(--cd-line); border-radius:var(--cd-r-card); overflow:hidden; background:var(--cd-surface); box-shadow:var(--cd-shadow-sm); display:flex; flex-direction:column; transition:.18s; }
.cd-news-card:hover{ box-shadow:var(--cd-shadow-md); transform:translateY(-3px); }
.cd-news-card .cd-thumb{ width:100%; aspect-ratio:16/9; object-fit:cover; background:var(--cd-brand-100); }
.cd-news-card .cd-body{ padding:18px; display:flex; flex-direction:column; gap:8px; flex:1; }
.cd-news-card .cd-body h4{ font-size:1.02rem; font-weight:800; color:var(--cd-ink); margin:0; }
.cd-news-card .cd-date{ font-size:.76rem; color:var(--cd-ink-3); font-weight:700; margin-top:auto; }
.cd-news-hero{ border-radius:var(--cd-r-xl); overflow:hidden; box-shadow:var(--cd-shadow-md); background:var(--cd-surface); }
.cd-news-hero img{ width:100%; display:block; }

/* ============================================================
   SIMULADOR
   ============================================================ */
.cd-range{ -webkit-appearance:none; appearance:none; width:100%; height:8px; border-radius:6px; background:var(--cd-brand-100); outline:none; }
.cd-range::-webkit-slider-thumb{ -webkit-appearance:none; width:26px; height:26px; border-radius:50%; background:var(--cd-accent); border:4px solid #fff; box-shadow:var(--cd-shadow-md); cursor:pointer; }
.cd-range::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:var(--cd-accent); border:4px solid #fff; box-shadow:var(--cd-shadow-md); cursor:pointer; }
.cd-metas{ display:grid; grid-template-columns:1fr 1fr; gap:2px 26px; }
.cd-metas .meta{ display:flex; flex-direction:column; padding:9px 0; }
.cd-metas .k{ font-size:.72rem; color:var(--cd-ink-3); font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.cd-metas .v{ font-size:1rem; color:var(--cd-ink); font-weight:800; }
.cd-sim-result{ background:linear-gradient(150deg,var(--cd-brand-700),var(--cd-brand-900)); color:#fff; border-radius:var(--cd-r-card); padding:26px; box-shadow:var(--cd-shadow-lg); }
.cd-sim-result .big{ font-size:2.4rem; font-weight:800; letter-spacing:-.02em; }
.cd-sim-result .lbl{ opacity:.82; font-weight:700; font-size:.86rem; text-transform:uppercase; letter-spacing:.05em; }
.cd-sim-row{ display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.16); font-weight:700; }
.cd-sim-row:last-child{ border-bottom:none; }

/* ============================================================
   LOGIN (guest)
   ============================================================ */
.cd-auth-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
  background:linear-gradient(135deg,var(--cd-brand-800) 0%, var(--cd-brand-900) 55%, #0a2647 100%); position:relative; overflow:hidden; }
.cd-auth-wrap::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 20% 20%, rgba(47,143,214,.35), transparent 45%),
             radial-gradient(circle at 85% 80%, rgba(27,154,166,.30), transparent 45%); }
.cd-auth-card{ position:relative; width:100%; max-width:430px; background:var(--cd-surface); border-radius:var(--cd-r-xl); box-shadow:var(--cd-shadow-lg); padding:38px 34px; }
.cd-auth-logo{ text-align:center; margin-bottom:8px; }
.cd-auth-logo img{ max-height:64px; width:auto; }
.cd-auth-title{ text-align:center; font-weight:800; color:var(--cd-ink); font-size:1.25rem; margin:10px 0 2px; }
.cd-auth-sub{ text-align:center; color:var(--cd-ink-3); font-weight:600; font-size:.9rem; margin-bottom:24px; }
.cd-input-group{ position:relative; }
.cd-input-group > i{ position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--cd-ink-3); }
.cd-input-group .cd-input{ padding-left:44px; }
.cd-input-group .cd-has-eye{ padding-right:46px; }
.cd-input-eye{ position:absolute; right:6px; top:50%; transform:translateY(-50%); width:34px; height:34px; border:none; background:transparent; color:var(--cd-ink-3); display:grid; place-items:center; cursor:pointer; border-radius:8px; }
.cd-input-eye:hover{ color:var(--cd-accent-strong); background:var(--cd-surface-2); }
.cd-auth-foot{ text-align:center; margin-top:18px; }
.cd-auth-foot a{ color:var(--cd-accent-strong); font-weight:700; font-size:.88rem; }
.cd-checkbox{ display:flex; align-items:center; gap:9px; color:var(--cd-ink-2); font-weight:600; font-size:.9rem; }

/* alertas */
.cd-alert-box{ padding:12px 15px; border-radius:var(--cd-r-md); font-weight:700; font-size:.88rem; display:flex; gap:10px; align-items:flex-start; margin-bottom:16px; }
.cd-alert-box.err{ background:var(--cd-danger-100); color:var(--cd-danger); }
.cd-alert-box.ok{ background:var(--cd-green-100); color:var(--cd-green-600); }

/* ============================================================
   OVERRIDE GLOBAL DE BOTONES BOOTSTRAP/ARGON
   Patrón outline (transparente -> se llena del color al hover/focus).
   Azul oficial #0e4272 para acciones normales, rojo para eliminar.
   Carga al final => gana sobre Argon sin tocar cada vista.
   ============================================================ */
.btn-primary,.btn-outline-primary,
.btn-info,.btn-outline-info{
  background-color:transparent !important; background-image:none !important;
  color:var(--cd-accent) !important; border:1.5px solid var(--cd-accent) !important;
  box-shadow:none !important; transition:.15s !important; font-weight:700;
}
.btn-primary:hover,.btn-outline-primary:hover,.btn-info:hover,.btn-outline-info:hover,
.btn-primary:focus,.btn-outline-primary:focus,.btn-info:focus,.btn-outline-info:focus,
.btn-primary:active,.btn-outline-primary:active,
.show > .btn-primary.dropdown-toggle{
  background-color:var(--cd-accent) !important; color:#fff !important;
  border-color:var(--cd-accent) !important; box-shadow:none !important;
}
.btn-primary:focus-visible,.btn-outline-primary:focus-visible{ box-shadow:0 0 0 4px var(--cd-brand-100) !important; }

.btn-danger,.btn-outline-danger{
  background-color:transparent !important; background-image:none !important;
  color:var(--cd-danger) !important; border:1.5px solid var(--cd-danger) !important;
  box-shadow:none !important; transition:.15s !important; font-weight:700;
}
.btn-danger:hover,.btn-outline-danger:hover,
.btn-danger:focus,.btn-outline-danger:focus,
.btn-danger:active,.btn-outline-danger:active{
  background-color:var(--cd-danger) !important; color:#fff !important; border-color:var(--cd-danger) !important;
}
.btn-danger:focus-visible,.btn-outline-danger:focus-visible{ box-shadow:0 0 0 4px var(--cd-danger-100) !important; }

.btn-success,.btn-outline-success{
  background-color:transparent !important; background-image:none !important;
  color:var(--cd-green-600) !important; border:1.5px solid var(--cd-green-600) !important;
  box-shadow:none !important; transition:.15s !important; font-weight:700;
}
.btn-success:hover,.btn-outline-success:hover,
.btn-success:focus,.btn-outline-success:focus,
.btn-success:active,.btn-outline-success:active{
  background-color:var(--cd-green-600) !important; color:#fff !important; border-color:var(--cd-green-600) !important;
}

.btn[disabled],.btn:disabled{ opacity:.5 !important; cursor:not-allowed !important; }

/* Acentos de marca varios */
a{ color:var(--cd-accent-strong); }
a:hover{ color:var(--cd-accent); }
.text-primary{ color:var(--cd-accent) !important; }
.bg-primary{ background-color:var(--cd-accent) !important; }
.badge-primary{ background-color:var(--cd-accent) !important; color:#fff !important; }

/* ============================================================
   REFUERZO RESPONSIVE — tablet y celular (100%)
   ============================================================ */
/* Tablet y abajo */
@media(max-width:991px){
  .cd-content{ padding:18px 14px; }
  .cd-topbar{ height:auto; min-height:58px; padding:8px 14px; gap:10px; flex-wrap:wrap; }
  .cd-crumb .cd-c-title{ font-size:1.02rem; }
  .cd-card-head{ flex-wrap:wrap; gap:10px; padding:16px; }
  .cd-card-body,.cd-card.cd-pad{ padding:16px; }
}
/* Celular */
@media(max-width:640px){
  .cd-content{ padding:14px 12px; }
  .cd-topbar{ gap:8px; padding:8px 12px; }
  .cd-icon-btn{ width:40px; height:40px; }
  .cd-avatar{ width:40px; height:40px; }
  .cd-crumb .cd-c-sub{ font-size:.66rem; }
  .cd-crumb .cd-c-title{ font-size:.98rem; }
  .cd-page-head h1{ font-size:1.3rem; }

  /* Tablas: scroll horizontal seguro en cualquier tabla */
  .cd-table-wrap,.table-responsive,.dataTables_wrapper{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table.cd-tbl tbody td,table.cd-tbl thead th{ padding:11px 12px; }

  /* Acciones: que se acomoden y no desborden */
  .cd-card-head{ align-items:flex-start; }
  .cd-tabs{ gap:6px; }
  .cd-tab{ padding:10px 14px; font-size:.86rem; }

  /* Botones: full-width cómodo en celular y permiten apilarse */
  .cd-btn{ padding:11px 16px; }
  .cd-btn-row{ display:flex; flex-direction:column; gap:10px; }
  .cd-btn-row .cd-btn{ width:100%; }

  /* Modales de gráfica ocupan casi toda la pantalla */
  .cd-chart-modal{ padding:10px; }
  .cd-chart-modal-inner{ width:100%; height:90vh; }

  /* Login cómodo en móvil */
  .cd-auth-card{ padding:28px 20px; }

  /* Simulador en una columna */
  .cd-metas{ grid-template-columns:1fr; }
  .cd-sim-result .big{ font-size:2rem; }

  /* DataTables: controles apilados y legibles */
  .dataTables_wrapper .dataTables_filter,
  .dataTables_wrapper .dataTables_length{ float:none; text-align:left; margin-bottom:8px; }
  .dataTables_wrapper .dataTables_filter input{ width:100%; }
}
/* Evita desbordes horizontales globales en móvil */
@media(max-width:991px){
  html,body{ max-width:100%; overflow-x:hidden; }
  .container-fluid{ padding-left:14px; padding-right:14px; }
  /* Cualquier tabla "desnuda" (sin contenedor de scroll) se vuelve desplazable
     para que las columnas NO queden recortadas por el overflow-x:hidden del body */
  .main-content table:not(.dataTable):not(.cd-tbl){
    display:block; width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;
  }
  .table-responsive{ -webkit-overflow-scrolling:touch; }
}
