/* ===== RAZ Design System Variables ===== */
:root {
    --raz-primary: #0F5591;
    --raz-primary-dark: #0a3d6e;
    --raz-primary-darker: #083050;
    --raz-secondary: #00ABD3;
    --raz-secondary-light: #33c4e0;
    --raz-danger: #dc3545;
    --raz-success: #28a745;

    --raz-navbar-height: 52px;
    --raz-sidebar-width: 230px;

    --raz-sidebar-hover: rgba(255, 255, 255, 0.08);
    --raz-sidebar-active-bg: rgba(0, 0, 0, 0.18);
    --raz-sidebar-active-border: var(--raz-secondary);
    --raz-sidebar-item-height: 48px;
    --raz-sidebar-font-size: 13px;

    --raz-dropdown-bg: #0d4a80;
    --raz-dropdown-hover: rgba(255, 255, 255, 0.1);
    --raz-dropdown-border: rgba(255, 255, 255, 0.08);
    --raz-dropdown-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    --raz-dropdown-radius: 6px;

    --raz-transition-fast: 0.15s ease;
    --raz-transition-normal: 0.25s ease;

    --raz-text-primary: #1a1a2e;
    --raz-text-muted: #6c757d;
    --raz-bg-content: #f0f2f5;
}

html {
  font-size: 14px;
}
a {
    text-decoration: none;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

html {
  position: relative;
  min-height: 100%;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.bg-raz-primary-blue {
    background-color: var(--raz-primary);
}
.bg-raz-secondary-blue {
    background-color: var(--raz-secondary);
}
.bg-raz-success {
    background-color: var(--raz-success) !important;
}
.bg-raz-danger {
    background-color: var(--raz-danger) !important;
}
.bg-disabled {
    background-color: grey !important;
}

.text-color-primary {
    color: var(--raz-primary);
}

.text-color-secondary {
    color: var(--raz-secondary);
}

.hover-bg-raz-primary-blue:hover {
    background-color: var(--raz-dropdown-hover);
}

.circle-icon-container {
    border-radius: 100%;
}
.navbar-raz-width {
    width: calc(100vw - 60px);
}

.toast-variant.success {
    background: var(--raz-success);
}

.toast-variant.error {
    background: var(--raz-danger);
}

.disabled-nostyle {
    pointer-events: none;
}

.flex {
    display: flex;
}

@media (max-width: 576px) {
    .flex-column-mobile {
        flex-direction: column;
    }
    .flex-self-end-mobile {
        align-self: flex-end
    }
    .flex-self-start-mobile {
        align-self: flex-start
    }
    .mb-2-mobile {
        margin-bottom: 10px !important;
    }
    .align-items-auto-mobile {
        align-items: initial !important;
    }
}

@media (min-width: 576px) {
    .w-fit-content-desk {
        width: fit-content !important;
    }
}

#swal2-html-container {
    margin: 0 !important;
}

.select2-container--open {
    z-index: 99999999999999;
}

@media (min-width: 1400px) {
    .container {
        max-width: 100% !important;
    }
}

/* Evitar overflow horizontal en mobile */
@media (max-width: 575.98px) {
    body {
        overflow-x: hidden;
    }

    /* Container sin padding excesivo en mobile */
    .container {
        padding-left: 12px;
        padding-right: 12px;
    }

    /* Modales: ancho completo en mobile, scroll interno */
    .modal-dialog {
        margin: 8px;
        max-width: calc(100vw - 16px) !important;
    }
    .modal-dialog.modal-lg {
        max-width: calc(100vw - 16px) !important;
    }
    .modal-body {
        padding: 16px !important;
        max-height: calc(100vh - 140px);
        overflow-y: auto;
    }
    .modal-header {
        padding: 12px 16px !important;
    }
    /* Título del modal compacto */
    .modal-title.fs-4 {
        font-size: 1.1rem !important;
    }

    /* SweetAlert2: ancho completo en mobile */
    .swal2-popup {
        width: calc(100vw - 24px) !important;
        max-width: none !important;
        padding: 20px 16px !important;
    }
    .swal2-html-container {
        max-height: calc(100vh - 200px);
        overflow-y: auto;
    }

    /* Botones en formularios dentro de modales */
    .swal2-actions {
        flex-direction: column !important;
        gap: 8px !important;
        width: 100%;
    }
    .swal2-actions button {
        width: 100% !important;
        min-height: 48px !important;
        font-size: 15px !important;
    }

    /* primary-button y secondary-button con área táctil suficiente */
    .primary-button,
    .secondary-button {
        min-height: 44px;
    }

    /* Paginación bootstrap: links más grandes */
    .pagination .page-link {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* Ajustes extra para asegurar que los popups de SweetAlert2 se vean bien desde clientes de correo / webviews móviles */
@media (max-width: 575.98px) {
    .swal2-popup {
        width: calc(100vw - 24px) !important;
        max-width: 480px !important;
        box-sizing: border-box !important;
        top: 4vh !important;
        margin: 0 auto !important;
        padding: 12px !important;
        max-height: 90vh !important;
        overflow-y: auto !important;
        border-radius: 6px !important;
    }

    /* Forzar que el contenedor se posicione en el eje vertical al inicio para evitar que el popup quede desalineado */
    .swal2-container {
        align-items: flex-start !important;
        padding-top: 6vh !important;
    }

    .swal2-html-container {
        max-height: calc(100vh - 160px) !important;
        overflow-y: auto !important;
    }
}
