/*
 * Tema visual global de SGO Plus.
 *
 * Este archivo centraliza la identidad visual compartida por todas las vistas
 * y componentes. Los estilos de estructura y comportamiento permanecen en
 * app.css; los archivos de cada módulo deben contener únicamente ajustes
 * propios de ese módulo.
 */

:root {
    /* Tipografía */
    --sgo-tipografia: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --sgo-tamano-texto: 0.8125rem;
    --sgo-tamano-control: 0.8125rem;

    /* Identidad */
    --sgo-color-primario: #52657a;
    --sgo-color-primario-oscuro: #3e4e5d;

    /* Fondos */
    --sgo-color-sidebar: #17212b;
    --sgo-color-superficie: #f7f9fb;
    --sgo-color-tarjeta: #ffffff;

    /* Texto */
    --sgo-color-texto: #253247;
    --sgo-color-texto-secundario: #677687;
    --sgo-color-sidebar-secundario: #a7b2bd;

    /* Bordes y estados */
    --sgo-color-borde: #dce3ea;
    --sgo-color-exito: #2f7d62;
    --sgo-color-peligro: #b84a4a;
    --sgo-color-advertencia: #b7791f;

    /* Formas */
    --sgo-radio-pequeno: 0.5rem;
    --sgo-radio-medio: 0.75rem;
    --sgo-radio-grande: 0.85rem;

    /* Profundidad */
    --sgo-sombra-suave: 0 0.25rem 0.75rem rgba(15, 23, 42, 0.06);
    --sgo-sombra-elevada: 0 0.75rem 1.5rem rgba(15, 23, 42, 0.08);

    /* Movimiento */
    --sgo-transicion-rapida: 150ms ease;
    --sgo-transicion-normal: 200ms ease;

    /* Dimensiones globales */
    --sgo-ancho-sidebar: 21.25rem;
    --sgo-tamano-modulo: 0.6rem;
    --sgo-tamano-titulo-pagina: 0.875rem;

    /* Compatibilidad con los estilos estructurales existentes */
    --app-primary: var(--sgo-color-primario);
    --app-primary-dark: var(--sgo-color-primario-oscuro);
    --app-sidebar: var(--sgo-color-sidebar);
    --app-sidebar-muted: var(--sgo-color-sidebar-secundario);
    --app-surface: var(--sgo-color-superficie);
    --app-text: var(--sgo-color-texto);
    --app-sidebar-width: var(--sgo-ancho-sidebar);

    /* Integración con Bootstrap */
    --bs-font-sans-serif: var(--sgo-tipografia);
    --bs-body-font-family: var(--sgo-tipografia);
}

body,
button,
input,
select,
textarea {
    font-family: var(--sgo-tipografia);
}

body {
    font-size: var(--sgo-tamano-texto);
}

.btn,
.form-control,
.form-select,
.input-group-text,
.dropdown-menu,
.table,
.pagination,
.select2-container,
.dt-container,
.swal2-popup {
    font-size: var(--sgo-tamano-control);
}

.swal2-container {
    z-index: 20000 !important;
}

h1,
.h1 {
    font-size: 1.5rem;
}

h2,
.h2 {
    font-size: 1.25rem;
}

h3,
.h3 {
    font-size: 1.125rem;
}

h4,
.h4 {
    font-size: 1rem;
}

h5,
.h5,
.fs-5 {
    font-size: 0.9375rem !important;
}

h6,
.h6 {
    font-size: 0.8125rem;
}

.card {
    --bs-card-border-radius: var(--sgo-radio-medio);
    --bs-card-inner-border-radius: var(--sgo-radio-medio);
    border-radius: var(--sgo-radio-medio) !important;
}

.card > .card-header:first-child,
.card > .card-footer:last-child {
    border-radius: var(--sgo-radio-medio) !important;
}

.card > .card-footer {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
}

.app-sidebar {
    background-color: var(--sgo-color-sidebar) !important;
}

.app-module-name {
    font-size: var(--sgo-tamano-modulo);
}

.app-page-title {
    font-size: var(--sgo-tamano-titulo-pagina);
}

.modal .modal-content {
    max-width: 100%;
    border-radius: var(--sgo-radio-grande) !important;
}

/* Los formularios intermedios no deben romper el desplazamiento de Bootstrap. */
.modal-dialog-scrollable .modal-content > form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.modal-dialog-scrollable .modal-content > form > .modal-header,
.modal-dialog-scrollable .modal-content > form > .modal-footer {
    flex-shrink: 0;
}

.modal-dialog-scrollable .modal-content > form > .modal-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.modal .modal-body,
.modal .modal-body .row > * {
    min-width: 0;
}

.modal .table-responsive,
.modal .select2-container {
    max-width: 100%;
}

.modal .table-responsive {
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 991.98px) {
    .modal-dialog:not([class*="modal-fullscreen"]) {
        width: calc(100% - 1rem);
        max-width: none;
        margin: 0.5rem;
    }

    .modal-dialog-scrollable:not([class*="modal-fullscreen"]) {
        height: calc(100dvh - 1rem);
    }

    .modal-dialog-scrollable:not([class*="modal-fullscreen"]) .modal-content {
        max-height: calc(100dvh - 1rem);
    }
}

@media (max-width: 575.98px) {
    .modal-dialog:not([class*="modal-fullscreen"]) {
        width: 100%;
        min-height: 100dvh;
        margin: 0;
    }

    .modal-dialog-centered:not([class*="modal-fullscreen"]) {
        align-items: stretch;
    }

    .modal-dialog:not([class*="modal-fullscreen"]) .modal-content {
        min-height: 100dvh;
        border: 0;
        border-radius: 0;
    }

    .modal .modal-header,
    .modal .modal-body,
    .modal .modal-footer {
        padding: 0.85rem;
    }

    .modal .modal-footer {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .modal .modal-footer > * {
        width: 100%;
        margin: 0;
    }
}
