/*
 * Tema GrupoCorzo
 * ----------------------------------------------------------------------------
 * 1. Tokens de la paleta (--gc-*): claro por defecto, oscuro según el sistema
 *    o forzado con <html data-bs-theme="dark">.
 * 2. Mapeo de los tokens a las variables de Bootstrap 5.3 (--bs-*).
 * 3. Ajustes de componentes de Bootstrap que no leen las variables globales.
 *
 * Para cambiar un color, edita solo los tokens de la sección 1.
 */

/* ===== 1. Tokens: paleta clara ===== */
:root,
[data-bs-theme=light] {
    color-scheme: light;

    --gc-primary: #BF1725;
    --gc-primary-rgb: 191, 23, 37;
    --gc-primary-contrast: #FFFFFF;
    --gc-secondary: #272C8C;
    --gc-secondary-rgb: 39, 44, 140;
    --gc-secondary-contrast: #FFFFFF;
    --gc-tertiary: #184A8C;
    --gc-tertiary-rgb: 24, 74, 140;
    --gc-tertiary-contrast: #FFFFFF;

    --gc-info: #184A8C;
    --gc-info-rgb: 24, 74, 140;
    --gc-success: #184A8C;
    --gc-success-rgb: 24, 74, 140;
    --gc-warning: #BF1725;
    --gc-warning-rgb: 191, 23, 37;
    --gc-error: #8C0D0D;
    --gc-error-rgb: 140, 13, 13;
    --gc-dark: #272C8C;
    --gc-dark-rgb: 39, 44, 140;

    --gc-background: #F2F2F2;
    --gc-background-rgb: 242, 242, 242;
    --gc-background-gray: #E6E6E6;
    --gc-surface: #FFFFFF;

    --gc-appbar-bg: #272C8C;
    --gc-appbar-text: #FFFFFF;

    --gc-drawer-bg: #FFFFFF;
    --gc-drawer-text: #272C8C;
    --gc-drawer-icon: #184A8C;

    --gc-text-primary: #272C8C;
    --gc-text-primary-rgb: 39, 44, 140;
    --gc-text-secondary: #184A8C;
    --gc-text-disabled: #8A8A8A;

    --gc-action-default: #184A8C;
    --gc-action-disabled: #AFAFAF;
    --gc-action-disabled-bg: #E6E6E6;

    --gc-divider: #D0D0D0;
    --gc-divider-light: #E6E6E6;
    --gc-hover-opacity: 0.08;

    --gc-table-lines: #D0D0D0;
    --gc-table-striped: #F7F7F7;
    --gc-table-hover: #E8EEF7;

    --gc-lines-default: #B8B8B8;
    --gc-lines-inputs: #8C0D0D;
}

/* ===== 1. Tokens: paleta oscura ===== */
/* Mismos valores en ambos bloques: el primero sigue al sistema operativo,
   el segundo permite forzar el modo con data-bs-theme="dark". */
@media (prefers-color-scheme: dark) {
    :root:not([data-bs-theme=light]) {
        color-scheme: dark;

        --gc-primary: #E33A48;
        --gc-primary-rgb: 227, 58, 72;
        --gc-primary-contrast: #FFFFFF;
        --gc-secondary: #7075D8;
        --gc-secondary-rgb: 112, 117, 216;
        --gc-secondary-contrast: #FFFFFF;
        --gc-tertiary: #4F86C6;
        --gc-tertiary-rgb: 79, 134, 198;
        --gc-tertiary-contrast: #FFFFFF;

        --gc-info: #4F86C6;
        --gc-info-rgb: 79, 134, 198;
        --gc-success: #4F86C6;
        --gc-success-rgb: 79, 134, 198;
        --gc-warning: #E33A48;
        --gc-warning-rgb: 227, 58, 72;
        --gc-error: #FF5A5F;
        --gc-error-rgb: 255, 90, 95;
        --gc-dark: #10134A;
        --gc-dark-rgb: 16, 19, 74;

        --gc-background: #121212;
        --gc-background-rgb: 18, 18, 18;
        --gc-background-gray: #1E1E1E;
        --gc-surface: #20245F;

        --gc-appbar-bg: #20245F;
        --gc-appbar-text: #FFFFFF;

        --gc-drawer-bg: #20245F;
        --gc-drawer-text: #FFFFFF;
        --gc-drawer-icon: #4F86C6;

        --gc-text-primary: #FFFFFF;
        --gc-text-primary-rgb: 255, 255, 255;
        --gc-text-secondary: #C6C8F2;
        --gc-text-disabled: #858585;

        --gc-action-default: #4F86C6;
        --gc-action-disabled: #6F6F6F;
        --gc-action-disabled-bg: #2A2A2A;

        --gc-divider: #3F447A;
        --gc-divider-light: #2D315F;
        --gc-hover-opacity: 0.12;

        --gc-table-lines: #3F447A;
        --gc-table-striped: #1E1E1E;
        --gc-table-hover: #292F6E;

        --gc-lines-default: #59609A;
        --gc-lines-inputs: #7075D8;
    }
}

[data-bs-theme=dark] {
    color-scheme: dark;

    --gc-primary: #E33A48;
    --gc-primary-rgb: 227, 58, 72;
    --gc-primary-contrast: #FFFFFF;
    --gc-secondary: #7075D8;
    --gc-secondary-rgb: 112, 117, 216;
    --gc-secondary-contrast: #FFFFFF;
    --gc-tertiary: #4F86C6;
    --gc-tertiary-rgb: 79, 134, 198;
    --gc-tertiary-contrast: #FFFFFF;

    --gc-info: #4F86C6;
    --gc-info-rgb: 79, 134, 198;
    --gc-success: #4F86C6;
    --gc-success-rgb: 79, 134, 198;
    --gc-warning: #E33A48;
    --gc-warning-rgb: 227, 58, 72;
    --gc-error: #FF5A5F;
    --gc-error-rgb: 255, 90, 95;
    --gc-dark: #10134A;
    --gc-dark-rgb: 16, 19, 74;

    --gc-background: #121212;
    --gc-background-rgb: 18, 18, 18;
    --gc-background-gray: #1E1E1E;
    --gc-surface: #20245F;

    --gc-appbar-bg: #20245F;
    --gc-appbar-text: #FFFFFF;

    --gc-drawer-bg: #20245F;
    --gc-drawer-text: #FFFFFF;
    --gc-drawer-icon: #4F86C6;

    --gc-text-primary: #FFFFFF;
    --gc-text-primary-rgb: 255, 255, 255;
    --gc-text-secondary: #C6C8F2;
    --gc-text-disabled: #858585;

    --gc-action-default: #4F86C6;
    --gc-action-disabled: #6F6F6F;
    --gc-action-disabled-bg: #2A2A2A;

    --gc-divider: #3F447A;
    --gc-divider-light: #2D315F;
    --gc-hover-opacity: 0.12;

    --gc-table-lines: #3F447A;
    --gc-table-striped: #1E1E1E;
    --gc-table-hover: #292F6E;

    --gc-lines-default: #59609A;
    --gc-lines-inputs: #7075D8;
}

/* ===== Tipografía ===== */
:root {
    --gc-font-family: "Roboto", sans-serif;
    --gc-font-size: 0.875rem;
    --gc-font-weight: 400;
    --gc-line-height: 1.5;
    --gc-letter-spacing: .00938em;
}

/* ===== 2. Mapeo a Bootstrap ===== */
:root,
[data-bs-theme] {
    --bs-primary: var(--gc-primary);
    --bs-primary-rgb: var(--gc-primary-rgb);
    --bs-secondary: var(--gc-secondary);
    --bs-secondary-rgb: var(--gc-secondary-rgb);
    --bs-info: var(--gc-info);
    --bs-info-rgb: var(--gc-info-rgb);
    --bs-success: var(--gc-success);
    --bs-success-rgb: var(--gc-success-rgb);
    --bs-warning: var(--gc-warning);
    --bs-warning-rgb: var(--gc-warning-rgb);
    --bs-danger: var(--gc-error);
    --bs-danger-rgb: var(--gc-error-rgb);
    --bs-dark: var(--gc-dark);
    --bs-dark-rgb: var(--gc-dark-rgb);

    --bs-body-font-family: var(--gc-font-family);
    --bs-body-font-size: var(--gc-font-size);
    --bs-body-font-weight: var(--gc-font-weight);
    --bs-body-line-height: var(--gc-line-height);

    --bs-body-bg: var(--gc-background);
    --bs-body-bg-rgb: var(--gc-background-rgb);
    --bs-body-color: var(--gc-text-primary);
    --bs-body-color-rgb: var(--gc-text-primary-rgb);
    --bs-emphasis-color: var(--gc-text-primary);
    --bs-heading-color: var(--gc-text-primary);
    --bs-secondary-color: var(--gc-text-secondary);
    --bs-secondary-bg: var(--gc-background-gray);
    --bs-tertiary-bg: var(--gc-surface);

    --bs-border-color: var(--gc-divider);
    --bs-border-color-translucent: var(--gc-divider-light);

    --bs-link-color: var(--gc-tertiary);
    --bs-link-color-rgb: var(--gc-tertiary-rgb);
    --bs-link-hover-color: var(--gc-primary);
    --bs-link-hover-color-rgb: var(--gc-primary-rgb);

    --bs-focus-ring-color: rgba(var(--gc-primary-rgb), .25);
}

body {
    letter-spacing: var(--gc-letter-spacing);
}

/* ===== 3. Componentes ===== */

/* Botones: Bootstrap compila los colores de .btn-* en cada clase. */
.btn-primary {
    --bs-btn-color: var(--gc-primary-contrast);
    --bs-btn-bg: var(--gc-primary);
    --bs-btn-border-color: var(--gc-primary);
    --bs-btn-hover-color: var(--gc-primary-contrast);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gc-primary) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--gc-primary) 85%, black);
    --bs-btn-active-color: var(--gc-primary-contrast);
    --bs-btn-active-bg: color-mix(in srgb, var(--gc-primary) 75%, black);
    --bs-btn-active-border-color: color-mix(in srgb, var(--gc-primary) 75%, black);
    --bs-btn-disabled-color: var(--gc-action-disabled);
    --bs-btn-disabled-bg: var(--gc-action-disabled-bg);
    --bs-btn-disabled-border-color: var(--gc-action-disabled-bg);
    --bs-btn-focus-shadow-rgb: var(--gc-primary-rgb);
}

.btn-secondary {
    --bs-btn-color: var(--gc-secondary-contrast);
    --bs-btn-bg: var(--gc-secondary);
    --bs-btn-border-color: var(--gc-secondary);
    --bs-btn-hover-color: var(--gc-secondary-contrast);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gc-secondary) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--gc-secondary) 85%, black);
    --bs-btn-active-color: var(--gc-secondary-contrast);
    --bs-btn-active-bg: color-mix(in srgb, var(--gc-secondary) 75%, black);
    --bs-btn-active-border-color: color-mix(in srgb, var(--gc-secondary) 75%, black);
    --bs-btn-disabled-color: var(--gc-action-disabled);
    --bs-btn-disabled-bg: var(--gc-action-disabled-bg);
    --bs-btn-disabled-border-color: var(--gc-action-disabled-bg);
    --bs-btn-focus-shadow-rgb: var(--gc-secondary-rgb);
}

/* Terciario, éxito e información comparten el azul #184A8C. */
.btn-tertiary,
.btn-info,
.btn-success {
    --bs-btn-color: var(--gc-tertiary-contrast);
    --bs-btn-bg: var(--gc-tertiary);
    --bs-btn-border-color: var(--gc-tertiary);
    --bs-btn-hover-color: var(--gc-tertiary-contrast);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gc-tertiary) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--gc-tertiary) 85%, black);
    --bs-btn-active-color: var(--gc-tertiary-contrast);
    --bs-btn-active-bg: color-mix(in srgb, var(--gc-tertiary) 75%, black);
    --bs-btn-active-border-color: color-mix(in srgb, var(--gc-tertiary) 75%, black);
    --bs-btn-disabled-color: var(--gc-action-disabled);
    --bs-btn-disabled-bg: var(--gc-action-disabled-bg);
    --bs-btn-disabled-border-color: var(--gc-action-disabled-bg);
    --bs-btn-focus-shadow-rgb: var(--gc-tertiary-rgb);
}

.btn-danger {
    --bs-btn-color: #FFFFFF;
    --bs-btn-bg: var(--gc-error);
    --bs-btn-border-color: var(--gc-error);
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-hover-bg: color-mix(in srgb, var(--gc-error) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--gc-error) 85%, black);
    --bs-btn-active-color: #FFFFFF;
    --bs-btn-active-bg: color-mix(in srgb, var(--gc-error) 75%, black);
    --bs-btn-active-border-color: color-mix(in srgb, var(--gc-error) 75%, black);
    --bs-btn-focus-shadow-rgb: var(--gc-error-rgb);
}

.btn-warning {
    --bs-btn-color: var(--gc-primary-contrast);
    --bs-btn-bg: var(--gc-warning);
    --bs-btn-border-color: var(--gc-warning);
    --bs-btn-hover-color: var(--gc-primary-contrast);
    --bs-btn-hover-bg: color-mix(in srgb, var(--gc-warning) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--gc-warning) 85%, black);
    --bs-btn-active-color: var(--gc-primary-contrast);
    --bs-btn-active-bg: color-mix(in srgb, var(--gc-warning) 75%, black);
    --bs-btn-active-border-color: color-mix(in srgb, var(--gc-warning) 75%, black);
    --bs-btn-focus-shadow-rgb: var(--gc-warning-rgb);
}

.btn-outline-primary {
    --bs-btn-color: var(--gc-primary);
    --bs-btn-border-color: var(--gc-primary);
    --bs-btn-hover-color: var(--gc-primary-contrast);
    --bs-btn-hover-bg: var(--gc-primary);
    --bs-btn-hover-border-color: var(--gc-primary);
    --bs-btn-active-color: var(--gc-primary-contrast);
    --bs-btn-active-bg: var(--gc-primary);
    --bs-btn-active-border-color: var(--gc-primary);
    --bs-btn-focus-shadow-rgb: var(--gc-primary-rgb);
}

.btn-outline-secondary {
    --bs-btn-color: var(--gc-secondary);
    --bs-btn-border-color: var(--gc-secondary);
    --bs-btn-hover-color: var(--gc-secondary-contrast);
    --bs-btn-hover-bg: var(--gc-secondary);
    --bs-btn-hover-border-color: var(--gc-secondary);
    --bs-btn-active-color: var(--gc-secondary-contrast);
    --bs-btn-active-bg: var(--gc-secondary);
    --bs-btn-active-border-color: var(--gc-secondary);
    --bs-btn-focus-shadow-rgb: var(--gc-secondary-rgb);
}

/* Utilidades para el color terciario (Bootstrap no lo trae). */
.text-tertiary {
    color: var(--gc-tertiary) !important;
}

.bg-tertiary {
    background-color: var(--gc-tertiary) !important;
    color: var(--gc-tertiary-contrast) !important;
}

/* Superficies */
.card,
.modal-content,
.dropdown-menu,
.list-group-item {
    --bs-card-bg: var(--gc-surface);
    --bs-modal-bg: var(--gc-surface);
    --bs-dropdown-bg: var(--gc-surface);
    --bs-list-group-bg: var(--gc-surface);
    --bs-card-border-color: var(--gc-divider-light);
}

/* Tablas */
.table {
    --bs-table-bg: var(--gc-surface);
    --bs-table-color: var(--gc-text-primary);
    --bs-table-border-color: var(--gc-table-lines);
    --bs-table-striped-bg: var(--gc-table-striped);
    --bs-table-striped-color: var(--gc-text-primary);
    --bs-table-hover-bg: var(--gc-table-hover);
    --bs-table-hover-color: var(--gc-text-primary);
}

/* Formularios */
.form-control,
.form-select {
    background-color: var(--gc-surface);
    color: var(--gc-text-primary);
    border-color: var(--gc-lines-default);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--gc-lines-inputs);
    box-shadow: 0 0 0 .25rem rgba(var(--gc-primary-rgb), .25);
}

.form-control:disabled,
.form-select:disabled {
    background-color: var(--gc-action-disabled-bg);
    color: var(--gc-text-disabled);
}

.form-check-input:checked {
    background-color: var(--gc-primary);
    border-color: var(--gc-primary);
}

hr {
    color: var(--gc-divider);
}
