/* ==========================================================================
   GymTracker Theme (Dark) — CONTRASTE + FIX SWITCHES
   ========================================================================== */

:root{
  --gt-bg:#0f172a; --gt-surface:#111827; --gt-surface-2:#0b1220;
  --gt-text:#e6eef9; --gt-text-strong:#ffffff; --gt-text-dim:#b6c2d6; --gt-text-muted:#cbd5e1;
  --gt-brand:#9ec5fe; --gt-brand-strong:#cfe1ff;
  --gt-border:#334155; --gt-border-strong:#475569;
  --gt-primary:#2563eb; --gt-primary-contrast:#ffffff;
  --gt-secondary:#64748b; --gt-secondary-contrast:#ffffff;
  --gt-success:#22c55e; --gt-success-contrast:#0b1220;
  --gt-danger:#ef4444; --gt-danger-contrast:#ffffff;
  --gt-warning:#f59e0b; --gt-warning-contrast:#0b1220;
  --gt-info:#38bdf8; --gt-info-contrast:#0b1220;
  --gt-navbar-bg:#0b1220; --gt-table-head:#1f2937; --gt-placeholder:#9aa8c0;
}
*{color-scheme:dark}

/* Body */
body.gt-body{background:var(--gt-bg);color:var(--gt-text)}

/* Navbar */
.gt-navbar{background:var(--gt-navbar-bg)!important;border-bottom:1px solid var(--gt-border)}
.gt-brand{color:var(--gt-text-strong)!important;font-weight:600}
.gt-link{color:var(--gt-text)!important}.gt-link:hover{color:var(--gt-brand-strong)!important}

/* Cards */
.card{background:var(--gt-surface)!important;border:1px solid var(--gt-border)!important;color:var(--gt-text)!important}
.card h1,.card h2,.card h3,.card h4,.card h5,.card h6{color:var(--gt-text-strong)!important}

/* Formularios */
.form-label{color:var(--gt-text)!important}
.form-control,.form-select{background-color:var(--gt-surface-2)!important;color:var(--gt-text)!important;border-color:var(--gt-border)!important}
.form-control::placeholder{color:var(--gt-placeholder)!important}
.form-select option{color:#0f172a}
.form-control:focus,.form-select:focus{border-color:#60a5fa!important;box-shadow:0 0 0 .2rem rgba(96,165,250,.25)!important}
input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.85}

/* === CHECKBOXES / SWITCHES (FIX) ========================================= */
/* ¡OJO! usar background-color (no background) para no borrar la imagen del switch */
.form-check-input{
  background-color:var(--gt-surface-2)!important;
  border-color:var(--gt-border)!important;
  box-shadow:none!important;
}
.form-check-input:focus{border-color:#60a5fa!important;box-shadow:0 0 0 .2rem rgba(96,165,250,.25)!important}

/* Estado marcado: color primario y mantiene el “knob” del switch de Bootstrap */
.form-check-input:checked{
  background-color:var(--gt-primary)!important;
  border-color:var(--gt-primary)!important;
}

/* Switch específico: respeta la imagen y mueve el knob al marcar */
.form-switch .form-check-input{
  width:3rem;height:1.5rem;
  background-position:left center;
  background-repeat:no-repeat;
}
.form-switch .form-check-input:checked{background-position:right center}

/* === TABLAS =============================================================== */
.table{--bs-table-bg:transparent!important;--bs-table-border-color:var(--gt-border)!important;color:var(--gt-text)!important}
.table thead th,.table thead td{background:var(--gt-table-head)!important;color:var(--gt-text-strong)!important;border-bottom:1px solid var(--gt-border)!important}
/* pisa el selector de Bootstrap */
.table > :not(caption) > * > *{color:var(--gt-text)!important;background-color:transparent}
.table-striped > tbody > tr:nth-of-type(odd) > *{background:rgba(148,163,184,.06)!important;color:var(--gt-text)!important}
.table-hover > tbody > tr:hover > *{background:rgba(148,163,184,.12)!important;color:var(--gt-text-strong)!important}
.table .text-muted, .table small.text-muted{color:var(--gt-text-dim)!important}

/* Botones */
.btn,.btn *{color:inherit}
.btn-primary{background:var(--gt-primary)!important;border-color:var(--gt-primary)!important;color:var(--gt-primary-contrast)!important}
.btn-secondary{background:var(--gt-secondary)!important;border-color:var(--gt-secondary)!important;color:var(--gt-secondary-contrast)!important}
.btn-success{background:var(--gt-success)!important;border-color:var(--gt-success)!important;color:var(--gt-success-contrast)!important}
.btn-danger{background:var(--gt-danger)!important;border-color:var(--gt-danger)!important;color:var(--gt-danger-contrast)!important}
.btn-warning{background:var(--gt-warning)!important;border-color:var(--gt-warning)!important;color:var(--gt-warning-contrast)!important}
.btn-info{background:var(--gt-info)!important;border-color:var(--gt-info)!important;color:var(--gt-info-contrast)!important}
.btn-outline-light,.gt-btn-outline{color:var(--gt-text)!important;border-color:var(--gt-border-strong)!important}
.btn-outline-light:hover,.gt-btn-outline:hover{background:#1f2937!important;color:var(--gt-text-strong)!important}

/* Badges / Alerts */
.badge{border:0;font-weight:600}
.badge.bg-primary,.badge.bg-secondary,.badge.bg-info,.badge.bg-danger{color:#fff!important}
.badge.bg-success,.badge.bg-warning{color:#0b1220!important}
.alert{color:var(--gt-text)!important;border-color:var(--gt-border)!important;background:rgba(148,163,184,.10)!important}

/* Links y textos utilitarios */
a{color:var(--gt-brand)!important} a:hover{color:var(--gt-brand-strong)!important}
.text-muted{color:var(--gt-text-dim)!important}
.text-plain{color:var(--gt-text)!important}.text-strong{color:var(--gt-text-strong)!important}.text-dim{color:var(--gt-text-dim)!important}
.gt-hr{border-top:1px solid var(--gt-border);opacity:1}

/* Fondos con texto forzado legible */
.bg-primary,.bg-info,.bg-secondary{color:#fff!important}
.bg-success,.bg-warning{color:#0b1220!important}

/* Dropdowns */
.dropdown-menu{background:var(--gt-surface)!important;border:1px solid var(--gt-border)!important;color:var(--gt-text)!important}
.dropdown-item{color:var(--gt-text)!important}
.dropdown-item:hover{background:#1f2937!important;color:var(--gt-text-strong)!important}

/* Chart.js */
canvas{background:transparent!important}
