/* ============================================================================
   AppSports — Premium Refresh (2026-08-13)
   Capa ADITIVA cargada al final. Eleva la paleta y los componentes del CPDS
   sin tocar ds.css/tokens.css/premium.css. Para revertir TODO: quitar el
   <link> de esta hoja en base.html. Usa las mismas variables del DS para
   propagar a Bootstrap y a todos los componentes.
   ============================================================================ */

/* ---------- 1 · Paleta refinada (tema claro) ---------- */
[data-bs-theme="light"] {
  /* Indigo premium más profundo y saturado, con acento violeta coherente */
  --color-primary:        #4f46e5;
  --color-primary-hover:  #4338ca;
  --color-primary-subtle: rgba(79, 70, 229, 0.08);
  --color-gradient:       linear-gradient(120deg, #6366f1 0%, #8b5cf6 100%);

  /* Semánticos con más cuerpo */
  --color-success:        #0f9d6b;
  --color-warning:        #c2620a;
  --color-danger:         #e11d48;
  --color-info:           #0e7ba6;

  /* Superficies: neutros slate (más finos que el gris plano) */
  --surface-body:   #eef1f6;
  --surface-card:   #ffffff;
  --surface-input:  #ffffff;
  --surface-hover:  #f1f4f9;
  --surface-nav:    linear-gradient(150deg, #4f46e5 0%, #7c3aed 55%, #8b5cf6 100%);

  --text-primary:   #0f172a;
  --text-secondary: #334155;
  --text-muted:     #64748b;
  --border-default: #e2e8f0;

  /* Puente CPDS */
  --cp-secondary: #8b5cf6;
}

/* ---------- 2 · Paleta refinada (tema oscuro) ---------- */
[data-bs-theme="dark"] {
  --color-primary:        #818cf8;
  --color-primary-hover:  #a5b4fc;
  --color-primary-subtle: rgba(129, 140, 248, 0.14);
  --color-gradient:       linear-gradient(120deg, #818cf8 0%, #a78bfa 100%);

  --surface-body:   #0b1120;
  --surface-card:   #131c31;
  --surface-input:  #0f1830;
  --surface-hover:  #1b2540;
  --surface-nav:    linear-gradient(150deg, #1e1b4b 0%, #312e81 60%, #4c1d95 100%);

  --text-primary:   #e6ebf5;
  --text-secondary: #b7c0d4;
  --text-muted:     #7c88a3;
  --border-default: #24304d;
  --cp-secondary: #a78bfa;
}

/* ---------- 3 · Profundidad: sombras premium en capas ---------- */
:root {
  --cp-shadow-sm: 0 1px 2px rgba(15,23,42,.05), 0 1px 3px rgba(15,23,42,.04);
  --cp-shadow-md: 0 2px 4px rgba(15,23,42,.05), 0 8px 20px -6px rgba(15,23,42,.12);
  --cp-shadow-lg: 0 4px 8px rgba(15,23,42,.06), 0 24px 48px -12px rgba(15,23,42,.22);
  --cp-radius: 14px; --cp-radius-card: 18px; --cp-radius-btn: 11px; --cp-radius-input: 11px;
}
[data-bs-theme="dark"] {
  --cp-shadow-sm: 0 1px 2px rgba(0,0,0,.4);
  --cp-shadow-md: 0 2px 4px rgba(0,0,0,.4), 0 10px 24px -8px rgba(0,0,0,.6);
  --cp-shadow-lg: 0 6px 12px rgba(0,0,0,.5), 0 28px 56px -14px rgba(0,0,0,.7);
}

/* ---------- 4 · Base ---------- */
body { background: var(--surface-body); color: var(--text-primary); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1,h2,h3,.h1,.h2,.h3,.card-title { letter-spacing: -0.015em; }
a { text-decoration: none; }

/* ---------- 5 · Tarjetas ---------- */
.card, .cp-card, .panel-card {
  border: 1px solid var(--border-default);
  border-radius: var(--cp-radius-card);
  box-shadow: var(--cp-shadow-sm);
  background: var(--surface-card);
  transition: box-shadow var(--cp-anim,200ms) ease, transform var(--cp-anim,200ms) ease, border-color var(--cp-anim,200ms) ease;
}
.card:hover, .cp-card:hover { box-shadow: var(--cp-shadow-md); }
.card-header { background: transparent; border-bottom: 1px solid var(--border-default); font-weight: 600; }

/* Tarjetas de métrica / KPI con acento superior */
.stat-card, .kpi-card, .metric-card { position: relative; overflow: hidden; }
.stat-card::before, .kpi-card::before, .metric-card::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: var(--color-gradient); opacity: .9;
}

/* ---------- 6 · Botones ---------- */
.btn { border-radius: var(--cp-radius-btn); font-weight: 600; letter-spacing: .01em; transition: transform var(--cp-anim-fast,150ms) ease, box-shadow var(--cp-anim-fast,150ms) ease, filter var(--cp-anim-fast,150ms) ease; }
.btn:active { transform: translateY(1px); }
.btn-primary {
  background: var(--color-gradient); border: none; color: #fff;
  box-shadow: 0 2px 8px -1px color-mix(in srgb, var(--color-primary) 55%, transparent);
}
.btn-primary:hover, .btn-primary:focus { filter: brightness(1.06); box-shadow: 0 4px 14px -2px color-mix(in srgb, var(--color-primary) 60%, transparent); color:#fff; }
.btn-outline-primary { border-color: color-mix(in srgb, var(--color-primary) 45%, transparent); color: var(--color-primary); }
.btn-outline-primary:hover { background: var(--color-primary-subtle); border-color: var(--color-primary); color: var(--color-primary); }

/* ---------- 7 · Inputs ---------- */
.form-control, .form-select {
  border-radius: var(--cp-radius-input); border-color: var(--border-default);
  background: var(--surface-input); transition: border-color var(--cp-anim-fast,150ms) ease, box-shadow var(--cp-anim-fast,150ms) ease;
}
.form-control:focus, .form-select:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 22%, transparent);
}
.form-label { font-weight: 600; color: var(--text-secondary); font-size: var(--fs-sm, .8rem); }

/* ---------- 8 · Navegación / sidebar ---------- */
.sidebar, .cp-sidebar, .app-sidebar, nav.sidebar {
  background: var(--surface-nav);
  box-shadow: var(--cp-shadow-lg);
}
.sidebar a, .cp-sidebar a, .app-sidebar a { border-radius: 10px; transition: background var(--cp-anim-fast,150ms) ease; }
.sidebar a.active, .cp-sidebar a.active, .app-sidebar a.active,
.sidebar a:hover, .cp-sidebar a:hover, .app-sidebar a:hover {
  background: rgba(255,255,255,.14); backdrop-filter: blur(2px);
}
.navbar { box-shadow: var(--cp-shadow-sm); }

/* ---------- 9 · Badges / chips / tablas ---------- */
.badge { border-radius: 8px; font-weight: 600; letter-spacing: .02em; }
.table { --bs-table-hover-bg: var(--surface-hover); }
.table > thead th { font-size: var(--fs-xs,.72rem); text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); font-weight: 700; border-bottom: 1px solid var(--border-default); }
.table > tbody tr { transition: background var(--cp-anim-fast,150ms) ease; }

/* ---------- 10 · Detalles finos ---------- */
::selection { background: color-mix(in srgb, var(--color-primary) 28%, transparent); }
* { scrollbar-color: color-mix(in srgb, var(--color-primary) 40%, transparent) transparent; }
.dropdown-menu { border-radius: 14px; border: 1px solid var(--border-default); box-shadow: var(--cp-shadow-md); }
.modal-content { border-radius: 18px; border: 1px solid var(--border-default); box-shadow: var(--cp-shadow-lg); }
