/* ============================================================
   RESET + VARIABLES GENERALES (LIGHT MODE POR DEFECTO - YOGURT)
   ============================================================ */
:root {
    --brand-gradient: linear-gradient(135deg, #E6F4F8 0%, #F4F9FA 50%, #FFFFFF 100%);
    --bg-card: #FFFFFF;
    --bg-card-background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    --text-main: #2C3E50;
    --border-ui: #5A9EAC;
    --border-accordion: 1px solid #E2E8F0;
    --table-zebra: #F7FAFC;
    --bg-header-yogurt: #5A9EAC;
    --text-labels-fields: #4C6A75;
    --text-card-side-title: #1D3042;
    --text-indicator-muted: #2D3748;
    --text-placeholder-custom: #A0AEC0;
    --text-welcome-title: #1D3042;
    --bg-welcome-card: rgba(29, 48, 66, 0.06);
    --border-welcome-card: rgba(29, 48, 66, 0.3);
    --ui-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ============================================================
   🎯 NUEVO THEME: GRADIENTE CORPORATIVO (test2.sistramed)
   ============================================================ */
body.gradient-theme {
    /* El gradiente real de la captura: Azul oscuro -> Celeste -> Blanco */
    --brand-gradient: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%);
    --bg-card: #FFFFFF;
    --bg-card-background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
     --text-main: #1D3042;
    /*--text-main: #FFFFFF;*/
    --border-ui: #FFFFFF;
    /*--border-ui: #00727A;*/
    --border-accordion: 1px solid #CBD5E1;
    --table-zebra: #F1F5F9;
    /* Headers y elementos clave con el azul oscuro dominante */
    /*--bg-header-yogurt: #00727A;*/
    --text-labels-fields: #004D52;
    --text-card-side-title: #1D3042;
    --text-indicator-muted: #00727A;
    --text-placeholder-custom: #88A2AA;
    --text-welcome-title: #004D52;
    --bg-welcome-card: rgba(0, 114, 122, 0.05);
    --border-welcome-card: rgba(0, 114, 122, 0.3);
}

    /* Forzar que en el nuevo tema los botones principales tengan coherencia */
    body.gradient-theme .btn-principal {
        color: #00727A !important;
        background: #FFFFFF;
        border: 2px solid #FFFFFF;
    }

        body.gradient-theme .btn-principal:hover {
            background: #E6F3F5;
        }

    body.gradient-theme .btn-login {
        background: linear-gradient(135deg, #00939E 0%, #00727A 100%) !important;
        box-shadow: 0 4px 12px rgba(0, 114, 122, 0.2);
    }

        body.gradient-theme .btn-login:hover {
            background: #005A61 !important;
        }

/* ============================================================
   VARIACIONES EXCLUSIVAS PARA DARK MODE
   ============================================================ */
body.dark-mode {
    --brand-gradient: linear-gradient(180deg, #0F172A 0%, #1E293B 100%);
    --bg-card: #FFFFFF;
    --bg-card-background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    --text-main: #F8FAFC;
    --text-labels-fields: #E2E8F0;
    --border-ui: #5A9EAC;
    --table-zebra: #232E3F;
    /*--bg-header-yogurt: #5A9EAC;*/
    --text-placeholder-custom: #FFFFFF;
    --text-card-side-title: #FFFFFF;
    --text-indicator-muted: #CBD5E1;
    --text-welcome-title: #FFFFFF;
    --bg-welcome-card: rgba(255, 255, 255, 0.05);
    --border-welcome-card: rgba(255, 255, 255, 0.6);
    --border-accordion: 1px solid rgba(255, 255, 255, 0.4) !important;
}

    body.dark-mode .ui-input-outline,
    body.dark-mode .ui-input,
    body.dark-mode .field-value,
    body.dark-mode .inline-row input,
    body.dark-mode .inline-row-compact input,
    body.dark-mode .ui-select-custom:disabled,
    body.dark-mode .ui-field select:disabled {
        color: #FFFFFF !important;
        -webkit-text-fill-color: #FFFFFF !important;
        opacity: 1 !important;
        background-color: var(--table-zebra) !important;
        border-color: var(--border-accordion) !important;
    }

    body.dark-mode .spreadsheet-table tbody tr.row-selected {
        background-color: rgba(90, 158, 172, 0.25) !important;
        border-color: var(--bg-header-yogurt) !important;
        box-shadow: inset 4px 0 0 var(--bg-header-yogurt);
    }

        body.dark-mode .spreadsheet-table tbody tr.row-selected td {
            color: #FFFFFF !important;
            font-weight: 700;
            border-bottom-color: rgba(90, 158, 172, 0.3);
        }

html, body, .dashboard-card, input, select, td {
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

html, body {
    margin: 0;
    padding: 0;
    font-family: var(--ui-font);
    background: var(--brand-gradient) fixed;
    color: var(--text-main);
    min-height: 100vh;
}

body {
    padding-top: 90px;
    transition: padding-left 0.3s ease;
}

/* ============================================================
   HEADER & NAVEGACIÓN
   ============================================================ */
.site-header {
    width: 100%;
    background: var(--bg-header-yogurt) !important;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

.header-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    max-width: 1200px;
    margin: 0 auto;
}

.brand {
    font-weight: 700;
    font-size: 20px;
    color: #fff;
    text-decoration: none;
    font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", "Segoe UI Symbol", Inter, sans-serif !important;
}

.left-section {
    display: flex;
    align-items: center;
    gap: 15px;
}

.hamburger {
    display: block;
    background: transparent;
    border: none;
    font-size: 26px;
    color: #fff;
    cursor: pointer;
}

.hamburger-wrapper {
    position: relative;
}

.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9998;
    background: transparent;
}

/* ============================================================
   BOTONES & COMPONENTES INTERACTIVOS
   ============================================================ */
.btn-pill {
    padding: 8px 16px;
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none;
    transition: 0.2s ease;
}

.btn-principal {
    background: #fff;
    color: #FFFFFF;
    border: 2px solid #fff;
}

    .btn-principal:hover {
        background: #e6e6e6;
    }

.btn-secundario {
    background: transparent;
    color: #fff;
    border: 2px solid #fff;
}

    .btn-secundario:hover {
        background: rgba(255,255,255,0.2);
    }

.theme-toggle-wrapper {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-left: 15px !important;
}

.theme-toggle-label {
    color: #FFFFFF !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    user-select: none;
    white-space: nowrap !important;
}

.theme-toggle-btn-fixed {
    /*    background: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    color: #FFFFFF !important;
    padding: 6px 14px !important;
    border-radius: 20px !important;
    font-size: 13px !important;
    font-weight: 600 !important;    
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 32px !important;
    position: relative !important;
    z-index: 10005 !important;
    transition: all 0.2s ease;*/
    /* Usamos tu variable de texto principal (azul marino) */
    color: var(--text-main) !important;
    /* Fondo gris muy tenue para que resalte sobre el fondo blanco del sidebar */
    background: rgba(0, 0, 0, 0.05) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    padding: 6px 14px !important;
    border-radius: 20px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 32px !important;
    transition: all 0.2s ease;
    margin-bottom: 400px;
}

    .theme-toggle-btn-fixed.dark-mode {
    }

    .theme-toggle-btn-fixed:hover {
        /*background: rgba(255, 255, 255, 0.3) !important;*/
        background: rgba(0, 0, 0, 0.1) !important;
        transform: scale(1.02);
    }

/* Ajuste específico para cuando estás en Dark Mode */
body.dark-mode .theme-toggle-btn-fixed {
    color: #FFFFFF !important; /* Blanco en modo oscuro */
    background: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

    body.dark-mode .theme-toggle-btn-fixed:hover {
        background: rgba(255, 255, 255, 0.3) !important;
    }

/* ============================================================
   ESTRUCTURAS DE PÁGINAS (LOGIN & DASHBOARDS)
   ============================================================ */
.main-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 10px 24px 20px;
    box-sizing: border-box;
}

.landing {
    padding: 40px 20px;
}

.hero-actions {
    display: flex;
    gap: 16px;
    margin-top: 20px;
}

.site-footer {
    background: rgba(0,0,0,0.15);
    color: #fff;
    text-align: center;
    padding: 20px 10px;
    font-size: 14px;
    margin-top: 40px;
}
/* Login */
.login-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 120px 20px 40px;
}

.login-box {
    background: var(--bg-card) !important;
    border: 1px solid var(--border-ui);
    padding: 40px 35px;
    border-radius: 16px;
    width: 100%;
    max-width: 380px;
    margin: 0 auto;
    box-shadow: 0 6px 20px rgba(0,0,0,0.06);
    color: var(--text-main) !important;
}

.login-title {
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 25px;
}

.form-group {
    text-align: left;
    margin-bottom: 20px;
}

    .form-group label {
        font-size: 15px;
        font-weight: 600;
        margin-bottom: 6px;
        display: block;
    }

.login-input {
    width: 100%;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid var(--border-ui);
    background-color: var(--table-zebra);
    color: var(--text-main);
    font-size: 15px;
    outline: none;
    box-sizing: border-box;
}

.btn-login {
    width: 100%;
    padding: 12px 0;
    background: var(--bg-header-yogurt) !important;
    color: #FFFFFF !important;
    font-weight: 700;
    border: none;
    border-radius: 10px;
    font-size: 16px;
    cursor: pointer;
    margin-top: 10px;
    box-sizing: border-box;
}

    .btn-login:hover {
        background-color: #4A8996 !important;
    }

.login-message {
    margin-top: 15px;
    font-size: 14px;
    font-weight: 600;
}
/* Admin & Cards */
.admin-table {
    width: 100%;
    background: rgba(255,255,255,0.1);
    border-collapse: collapse;
    margin-top: 20px;
}

    .admin-table th, .admin-table td {
        padding: 12px;
        border-bottom: 1px solid rgba(255,255,255,0.2);
    }

.status.pending {
    color: yellow;
    font-weight: bold;
}

.status.approved {
    color: lightgreen;
    font-weight: bold;
}

.status.rejected {
    color: #ff6b6b;
    font-weight: bold;
}

.detail-card {
    background: rgba(255,255,255,0.15);
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 20px;
}

.welcome-options {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
    margin-top: 40px;
}

.welcome-card {
    width: 180px;
    height: 180px;
    background: var(--bg-welcome-card) !important;
    border: 2px solid var(--border-welcome-card) !important;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
    box-sizing: border-box;
}

    .welcome-card:hover {
        transform: translateY(-6px);
        background: rgba(90, 158, 172, 0.2) !important;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
        border-color: #fff !important;
    }

.welcome-card-image {
    width: 80px;
    height: 80px;
    object-fit: contain;
    margin-bottom: 12px;
}

.welcome-card-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-welcome-title) !important;
}

.welcome-title {
    font-size: 26px;
    font-weight: 600;
    margin-bottom: 25px;
    color: var(--text-welcome-title) !important;
    transition: color 0.3s ease;
}

.centered {
    text-align: center;
    width: 100%;
    display: block;
}

.clickable {
    cursor: pointer;
}
/* ============================================================
   MÓDULO AFILIADOS 
   ============================================================ */
.afiliados-layout {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 40px;
}

.afiliados-grid {
    display: grid;
    grid-template-columns: 1fr 240px;
    gap: 24px;
}

.grid-main-column, .grid-side-column {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

.dashboard-card {
    background: var(--bg-card) !important;
    color: var(--text-main) !important;
    border-radius: 19px !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
    margin-bottom: 16px !important;
    border: var(--border-accordion);
    padding: 20px !important;
    overflow: hidden !important;
}

    .dashboard-card:has(.card-header-toggle) {
        padding: 0 !important;
    }

    .dashboard-card.transparent-card {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        margin-bottom: 14px !important;
    }

    .dashboard-card.hidden-card {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
    }

        .dashboard-card.hidden-card .card-header-toggle {
            border-radius: 19px !important;
        }

.card-body-content {
    padding: 20px !important;
}

.card-header-toggle {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    cursor: pointer;
    background-color: var(--bg-header-yogurt) !important;
    margin: 0 !important;
    padding: 10px 20px !important;
    color: #FFFFFF !important;
    border-radius: 19px !important;
    transition: background-color 0.2s ease;
    box-sizing: border-box !important;
    height: 44px !important;
}

    .card-header-toggle h3 {
        margin: 0;
        font-size: 15px;
        font-weight: 600;
    }

.arrow-icon {
    font-size: 12px;
    margin-left: auto !important;
}
/* Sección Superior Afiliados */
.afiliados-top-section {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0px;
    box-sizing: border-box;
}

.afiliados-top-fullwidth {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0px;
    box-sizing: border-box;
}

    .afiliados-top-fullwidth * {
        box-sizing: border-box;
    }

.datatable-header {
    background-color: var(--bg-header-yogurt) !important;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    color: #FFFFFF !important;
    border-top-left-radius: 19px !important;
    border-top-right-radius: 19px !important;
    width: 100%;
    gap: 16px;
    box-sizing: border-box;
    margin-bottom: 0 !important;
    border-bottom: 1px solid var(--border-ui);
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.datatable-title {
    font-weight: 600;
    font-size: 16px;
}

.search-box {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-grow: 1;
    min-width: 0;
    max-width: 100% !important;
    width: 100% !important;
}

    .search-box input {
        background-color: rgba(255, 255, 255, 0.8);
        color: #2C3E50;
        border: 1px solid var(--border-ui);
        padding: 6px 12px;
        border-radius: 20px;
        font-size: 14px;
        flex-grow: 1;
        outline: none;
        height: 36px !important;
        min-width: 0;
        margin: 0;
        max-width: 100% !important;
        width: 100% !important;
    }

body.dark-mode .search-box input {
    background-color: var(--table-zebra);
    color: #FFFFFF !important;
    border: 1px solid var(--border-accordion);
}

.btn-buscar-pill {
    background-color: #E2F1F4;
    color: var(--bg-header-yogurt);
    border: none;
    border-radius: 999px;
    padding: 0 20px;
    height: 36px !important;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.2s ease;
    white-space: nowrap;
    flex-shrink: 0;
    box-sizing: border-box !important;
}

    .btn-buscar-pill:hover {
        background-color: var(--bg-header-yogurt);
        color: #FFFFFF !important;
    }

body.dark-mode .btn-buscar-pill {
    background-color: rgba(90, 158, 172, 0.2);
    color: #FFFFFF;
}

    body.dark-mode .btn-buscar-pill:hover {
        background-color: var(--bg-header-yogurt);
    }
/* Tabla Contenedor */
.table-responsive {
    width: 100%;
    border-radius: 0 0 19px 19px !important;
    max-height: 230px;
    overflow-y: auto;
    overflow-x: auto;
    background-color: var(--bg-card) !important;
    border: 1px solid var(--border-ui);
    border-top: none !important;
    display: block !important;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.datatable-header + .table-responsive {
    margin-top: -1px !important;
}

.spreadsheet-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px;
    box-sizing: border-box;
}

    .spreadsheet-table thead {
        position: sticky;
        top: 0;
        z-index: 10;
    }

        .spreadsheet-table thead th {
            background: var(--bg-header-yogurt) !important;
            color: #FFFFFF !important;
            font-weight: 700;
            font-size: 13px;
            text-align: left;
            border-bottom: 2px solid var(--border-ui);
            padding: 12px 14px;
            white-space: nowrap;
        }

    .spreadsheet-table th, .spreadsheet-table td {
        padding: 10px 14px;
        font-size: 13px;
        color: var(--text-main) !important;
        box-sizing: border-box;
        vertical-align: middle;
        border-bottom: 1px solid var(--border-ui);
        cursor: pointer;
        white-space: nowrap;
    }

    .spreadsheet-table tbody tr:nth-child(even) {
        background-color: var(--table-zebra);
    }

    .spreadsheet-table tbody tr.row-selected {
        background-color: #D6E7EC !important;
    }

        .spreadsheet-table tbody tr.row-selected td {
            color: var(--text-main) !important;
            font-weight: 600;
        }

    .spreadsheet-table td .field-value, .spreadsheet-table td input, .spreadsheet-table td .ui-field {
        margin: 0;
        padding: 0;
        display: inline-block;
    }

    .spreadsheet-table th:nth-child(1), .spreadsheet-table td:nth-child(1) {
        width: 10%;
        padding-left: 16px;
    }

    .spreadsheet-table th:nth-child(2), .spreadsheet-table td:nth-child(2) {
        width: 25%;
    }

    .spreadsheet-table th:nth-child(3), .spreadsheet-table td:nth-child(3) {
        width: 20%;
    }

    .spreadsheet-table th:nth-child(4), .spreadsheet-table td:nth-child(4) {
        width: 15%;
        text-align: left;
    }

    .spreadsheet-table th:nth-child(5), .spreadsheet-table td:nth-child(5),
    .spreadsheet-table th:nth-child(6), .spreadsheet-table td:nth-child(6),
    .spreadsheet-table th:nth-child(7), .spreadsheet-table td:nth-child(7) {
        width: 10%;
        text-align: center;
    }

.selected-indicator {
    margin-top: 14px;
    padding-top: 14px;
    font-size: 14px;
    color: var(--text-indicator-muted) !important;
    padding: 4px 0;
    transition: color 0.3s ease;
    display: block;
    line-height: 1.2;
}
/* Inputs Generales */
.ui-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

    .ui-field label {
        font-size: 13px;
        font-weight: 600;
        color: var(--text-labels-fields) !important;
        transition: color 0.3s ease;
    }

.ui-input, .ui-input-outline, .ui-select-custom, .field-value {
    border-radius: 20px;
    padding: 8px 16px;
    font-size: 13px;
    box-sizing: border-box !important;
    height: 36px;
}

.ui-input {
    border: 1px solid #CBD5E0;
    background-color: #F7FAFC;
    color: #4A5568;
    width: 100%;
}

.ui-input-outline, .inline-row-compact input, .inline-row input {
    border: 1px solid var(--border-ui);
    background: transparent;
    color: var(--text-main) !important;
    width: 100%;
}

    input.ui-input-outline::placeholder, .ui-field input::placeholder, .inline-row input::placeholder, .inline-row-compact input::placeholder {
        color: var(--text-placeholder-custom) !important;
        opacity: 1 !important;
    }

.pill-style, .pill-style-solid, .pill-style-full {
    background-color: var(--bg-header-yogurt) !important;
    color: #FFFFFF !important;
    font-weight: 600;
    border-radius: 20px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.pill-style {
    padding: 0 20px;
    width: auto;
}

.pill-style-solid {
    width: 100%;
}

.pill-style-full {
    display: flex;
    padding: 0 16px;
}

.pill-style-outline-figma {
    border: 1px solid var(--border-ui);
    color: var(--text-label);
    font-weight: 600;
    border-radius: 20px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
}

.inline-row {
    display: grid !important;
    grid-template-columns: 85px 1fr !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
}

.inline-row-compact {
    display: flex;
    flex-grow: 1;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    color: var(--text-labels-fields) !important;
}

.text-brand-label {
    color: var(--text-labels-fields) !important;
    font-weight: 600;
    font-size: 14px;
    min-width: 45px;
}

.label-fixed, .label-email-spacer {
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    color: var(--text-labels-fields) !important;
    font-weight: 600;
    font-size: 13px;
    text-align: left !important;
}

.ui-select-custom {
    width: 100%;
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%235A9EAC'><path d='M1 4l4 4 4-4z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
}
/* Grid Formularios */
.form-grid-personales {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

    .form-grid-personales > :nth-child(n+5) {
        grid-row: 2;
    }

.flex-contact-row {
    display: flex;
    gap: 24px;
}

.contact-inputs {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.form-row-contacto-base {
    display: flex;
    flex-direction: row;
    gap: 16px;
    width: 100%;
    align-items: center;
}

.contact-photo-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    min-width: 110px;
}

.photo-box-figma {
    /*    width: 90px;
    height: 100px;
    border-radius: 8px;
    border: 1px dashed var(--border-ui);
    overflow: hidden;*/
    width: 90px;
    height: 100px;
    border-radius: 8px;
    border: 1px dashed var(--border-ui);
    overflow: hidden;
    /* 🎨 Agrega un fondo sutil idéntico a tus campos deshabilitados para armar contraste */
    background-color: rgba(90, 158, 172, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

    .photo-box-figma img {
        /*        width: 100%;
        height: 100%;
        object-fit: cover;*/
        width: 100%;
        height: 100%;
        /* 🚀 LA CLAVE: contain evita que el SVG se recorte o se deforme en los extremos */
        object-fit: contain !important;
        /* Deja una pequeña luz de respiro alrededor del dibujo del afiliado/a */
        padding: 6px;
        box-sizing: border-box;
    }

/* Compatibilidad si estás en Modo Oscuro */
body.dark-mode .photo-box-figma {
    background-color: rgba(0, 0, 0, 0.2);
}

.baja-stamp-circle {
    position: absolute;
    bottom: -15px;
    background-color: #C53030;
    color: #FFFFFF;
    font-weight: 700;
    font-size: 10px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #FFFFFF;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

.no-photo {
    color: var(--text-labels-fields) !important;
    font-weight: 600;
}

.figma-inline-alignment {
    display: grid !important;
    grid-template-columns: repeat(3, auto) minmax(200px, 2fr) !important;
    gap: 24px !important;
    align-items: center !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

    .figma-inline-alignment .ui-field {
        grid-row: 1 !important;
        width: 100% !important;
    }

.form-grid-empresa {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px 24px;
}

.span-empresa {
    grid-column: 1;
    grid-row: 1;
}

.span-btn {
    grid-column: 2;
    grid-row: 1;
}

.grid-row-2-col-1 {
    grid-column: 1;
    grid-row: 2;
    max-width: 140px;
}

.grid-row-2-col-2 {
    grid-column: 1;
    grid-row: 2;
    margin-left: 164px;
    max-width: 140px;
}

.btn-action-outline-figma {
    border: 1px solid var(--border-ui);
    background: transparent;
    color: var(--text-labels-fields);
    border-radius: 20px;
    height: 36px;
    padding: 0 24px;
    cursor: pointer;
    font-weight: 600;
}

.size-doc {
    width: 140px;
}

.size-afi, .size-ingreso, .size-nacimiento {
    width: 120px;
}

.size-mini {
    width: 85px;
}

.size-civil {
    width: 100px;
}

.size-estado-select {
    width: 160px;
}

.size-date-input {
    max-width: 120px;
    width: 100%;
}

.size-state {
    width: 110px;
}

.no-title-bg {
    padding-top: 0 !important;
}

.side-card-title {
    color: var(--text-card-side-title) !important;
    transition: color 0.3s ease;
    font-size: 14px;
    font-weight: 600;
    text-align: center !important;
    margin-top: 14px !important;
    margin-bottom: 15px;
    border-bottom: 2px solid var(--border-ui);
    padding-bottom: 8px;
}

.side-actions-layout {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 5px;
}

.btn-side-action {
    background: transparent;
    border: 1px solid var(--text-labels-fields);
    color: var(--text-labels-fields) !important;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}

    .btn-side-action:hover {
        background-color: var(--bg-header-yogurt);
        color: #FFFFFF !important;
        border-color: var(--bg-header-yogurt);
    }

.carnet-status-container {
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.carnet-status-text {
    color: #5A9EAC;
    font-weight: 600;
    font-size: 15px;
}

.text-center-box {
    text-align: center;
}
/* ============================================================
   NUEVOS COMPONENTES DE USUARIO Y LOGOS (2026 REFACTOR)
   ============================================================ */
.brand-group {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: #fff;
}

.brand-text {
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 0.5px;
}

.brand-logo, .brand-flag {
    height: 28px;
    object-fit: contain;
}

.right-section {
    display: flex;
    align-items: center;
    gap: 20px;
}

.user-profile-wrapper {
    position: relative;
}

.user-trigger {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #FFFFFF;
    gap: 2px;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

    .user-trigger:hover {
        transform: scale(1.03);
        opacity: 0.9;
    }

.generic-user-icon {
    width: 24px;
    height: 24px;
}

.user-handle {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.2px;
}

.user-dropdown-menu {
    /*    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    background: var(--bg-card);
    border: 1px solid var(--border-ui);
    border-radius: 12px;
    padding: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    min-width: 200px;
    z-index: 10005;
    display: flex;
    flex-direction: column;
    gap: 8px;*/
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    border-radius: 12px;
    padding: 12px;
    min-width: 200px;
    z-index: 10005;
    display: flex;
    flex-direction: column;
    gap: 8px;
    /* 🎨 REPLICADO EXACTO DEL HEADER DE ATSA (Color base, gradiente y ruido) */
    background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    /* Borde sutil traslúcido y sombra profunda para que despegue del fondo */
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25) !important;
    color: #FFFFFF !important;
}

    .user-dropdown-menu .btn-dropdown-logout {
        background: rgba(255, 255, 255, 0.1) !important;
        border: 1px solid rgba(255, 255, 255, 0.15) !important;
        color: #FF8A8A !important; /* Rojo más claro/pastel para que contraste perfecto sobre el azul */
        font-weight: 600;
        font-size: 14px;
        display: flex;
        align-items: center;
        gap: 10px;
        cursor: pointer;
        padding: 10px;
        border-radius: 8px;
        transition: all 0.2s ease;
        width: 100%;
        text-align: left;
        box-sizing: border-box;
    }

        .user-dropdown-menu .btn-dropdown-logout:hover {
            background-color: rgba(197, 48, 48, 0.25) !important;
            color: #FFFFFF !important;
        }

.dropdown-greeting {
    /*    font-size: 14px;
    font-weight: 700;
    color: var(--text-main);
    text-align: center;
    padding-bottom: 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--border-accordion);*/
    font-size: 14px;
    font-weight: 700;
    color: #FFFFFF !important; /* Texto blanco para legibilidad total */
    text-align: center;
    padding-bottom: 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.btn-dropdown-logout {
    background: transparent;
    border: none;
    color: #C53030;
    font-weight: 600;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    padding: 10px;
    border-radius: 8px;
    transition: background-color 0.2s ease;
    width: 100%;
    text-align: left;
}

    .btn-dropdown-logout:hover {
        background-color: rgba(197, 48, 48, 0.1);
    }

.nav-mobile {
    position: absolute;
    top: 70px;
    left: 0;
    background: linear-gradient(90deg, #5A9EAC 0%, #5A9EAC 100%);
    padding: 20px;
    border-radius: 24px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
    z-index: 9999;
    min-width: 180px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 280px;
}

    .nav-mobile a, .nav-mobile button {
        color: #fff;
        text-decoration: none;
        font-weight: 600;
        background: transparent;
        border: none;
        text-align: left;
        padding: 10px 0;
        font-size: 16px;
    }

.nav-mobile-links {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.nav-mobile-footer {
    margin-top: auto;
    padding-top: 10px;
}

.nav-divider {
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    margin-bottom: 15px;
}

.theme-btn-centered {
    justify-content: center !important;
    width: 100%;
}
/* ============================================================
   RESPONSIVE DESKTOP (Min 901px)
   ============================================================ */
@media (min-width: 901px) {
    .d-mobile {
        display: none !important;
    }

    .d-mobile-only {
        display: none !important;
    }

    .menu-overlay, .nav-mobile {
        display: none !important;
    }

    body:has(.nav-desktop:not(.hidden-desktop)) {
        padding-left: 250px;
    }

    .nav-desktop {
        position: fixed;
        top: 75px;
        left: 0;
        width: 250px;
        height: calc(100vh - 75px);
        background: var(--bg-card);
        border-right: 1px solid var(--border-accordion);
        display: flex !important;
        flex-direction: column;
        padding: 24px 16px;
        gap: 8px;
        box-shadow: 4px 0 15px rgba(0,0,0,0.03);
        transition: transform 0.3s ease;
        z-index: 9995;
        overflow-y: auto;
        border-radius: 20px;
    }

        .nav-desktop.hidden-desktop {
            display: none !important;
            transform: translateX(-100%);
        }

        .nav-desktop a {
            color: var(--text-main);
            text-decoration: none;
            font-weight: 600;
            font-size: 15px;
            width: 100%;
            padding: 12px 16px;
            border-radius: 12px;
            transition: all 0.2s ease;
            box-sizing: border-box;
            display: block;
        }

            .nav-desktop a:hover {
                opacity: 0.8;
                background-color: var(--bg-header-yogurt);
                color: #FFFFFF !important;
                transform: translateX(4px);
            }

    .datatable-header {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 16px 20px !important;
        gap: 12px !important;
    }

    .datatable-title {
        width: 100%;
        text-align: left;
    }

    .search-box {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0;
    }

    .grid-side-column {
        padding-top: 0 !important;
        margin-top: 0 !important;
    }

    .afiliados-top-fullwidth {
        max-width: 1200px;
        margin: 0 auto;
        padding-left: 0px;
        padding-right: 0px;
    }

        .afiliados-top-fullwidth .dashboard-card.transparent-card {
            padding: 0 !important;
            margin-bottom: 14px !important;
        }

        .afiliados-top-fullwidth .datatable-header {
            padding-left: 20px !important;
            padding-right: 20px !important;
        }

        .afiliados-top-fullwidth .table-responsive {
            padding-left: 0 !important;
            padding-right: 0 !important;
            margin-bottom: 0 !important;
            padding-bottom: 0 !important;
        }

        .afiliados-top-fullwidth .selected-indicator {
            margin-top: 16px !important;
            margin-bottom: 8px !important;
        }

    .form-grid-personales {
        grid-template-columns: repeat(28, 1fr) !important;
    }

        .form-grid-personales > :nth-child(1) {
            grid-column: span 5;
        }

        .form-grid-personales > :nth-child(2) {
            grid-column: span 5;
        }

        .form-grid-personales > :nth-child(3) {
            grid-column: span 9;
        }

        .form-grid-personales > :nth-child(4) {
            grid-column: span 9;
        }

        /* Ingreso: Se mantiene limpio */
        .form-grid-personales > :nth-child(5) {
            grid-column: span 4;
            grid-row: 2;
        }

        /* Nacimiento: Se reduce un poco (De 4 a 3) */
        .form-grid-personales > :nth-child(6) {
            grid-column: span 3;
            grid-row: 2;
        }

        /* Edad: Se mantiene ideal para 2 dígitos */
        .form-grid-personales > :nth-child(7) {
            grid-column: span 3;
            grid-row: 2;
        }

        /* Género: Se reduce al mínimo (De 3 a 2) ya que es solo 1 letra */
        .form-grid-personales > :nth-child(8) {
            grid-column: span 2;
            grid-row: 2;
        }

        /* 🚀 E. Civil: ¡Gana el doble de espacio! (De 3 a 6) */
        .form-grid-personales > :nth-child(9) {
            grid-column: span 6;
            grid-row: 2;
        }

        /* Nacionalidad: Se ajusta sutilmente (De 5 a 5) para balancear */
        .form-grid-personales > :nth-child(10) {
            grid-column: span 5;
            grid-row: 2;
        }

        /* Profesión: Se reduce levemente (De 6 a 5) para compensar el espacio */
        .form-grid-personales > :nth-child(11) {
            grid-column: span 5;
            grid-row: 2;
        }

/*        .form-grid-personales > :nth-child(5) {
            grid-column: span 4;
            grid-row: 2;
        }

        .form-grid-personales > :nth-child(6) {
            grid-column: span 4;
            grid-row: 2;
        }

        .form-grid-personales > :nth-child(7) {
            grid-column: span 3;
            grid-row: 2;
        }

        .form-grid-personales > :nth-child(8) {
            grid-column: span 3;
            grid-row: 2;
        }

        .form-grid-personales > :nth-child(9) {
            grid-column: span 3;
            grid-row: 2;
        }

        .form-grid-personales > :nth-child(10) {
            grid-column: span 5;
            grid-row: 2;
        }

        .form-grid-personales > :nth-child(11) {
            grid-column: span 6;
            grid-row: 2;
        }*/


    .figma-inline-alignment {
        /* Definimos anchos fijos, compactos y perfectos para los primeros 3 */
        /* y dejamos que el 4to (Motivo) barra con el resto del ancho (1fr) */
        grid-template-columns: 190px 170px 170px 1fr !important;
        gap: 20px !important; /* Ajustamos levemente el espacio entre ellos */
    }

        /* Forzamos que los inputs internos de las fechas no se desborden de sus campos */
        .figma-inline-alignment .ui-field input {
            width: 100% !important;
        }

}
/* ============================================================
   RESPONSIVE MOBILE (Max 900px)
   ============================================================ */
@media (max-width: 900px) {
    .d-desktop {
        display: none !important;
    }

    .nav-desktop {
        display: none !important;
    }

    .right-section {
        gap: 12px;
    }

    .datatable-header {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 16px 20px !important;
        gap: 12px !important;
        height: auto !important;
    }

    .main-content {
        padding: 10px 16px 40px !important;
    }

    .left-section {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }

    .brand {
        font-size: 18px !important;
    }

    .theme-toggle-wrapper {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 3px !important;
        margin-left: 10px !important;
    }

    .theme-toggle-label {
        display: block !important;
        font-size: 10px !important;
        text-align: center !important;
        opacity: 0.9;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    .theme-toggle-btn-fixed {
        margin-left: 0 !important;
        padding: 2px 10px !important;
        font-size: 11px !important;
        height: 24px !important;
        width: auto !important;
    }

    .afiliados-top-fullwidth {
        padding-left: 0px !important;
        padding-right: 0px !important;
        margin-bottom: 0 !important;
    }

        .afiliados-top-fullwidth .datatable-header {
            justify-content: space-between !important;
            margin: 0 !important;
            padding-top: 10px !important;
            padding-bottom: 8px !important;
            line-height: 1 !important;
        }

        .afiliados-top-fullwidth .table-responsive {
            margin: 0 !important;
            padding-top: 0 !important;
            padding-bottom: 14px !important;
        }

        .afiliados-top-fullwidth > .dashboard-card, .afiliados-top-fullwidth > .dashboard-card.transparent-card {
            margin: 0 !important;
            padding: 0 !important;
        }

        .afiliados-top-fullwidth .selected-indicator, .afiliados-top-fullwidth .no-photo, .afiliados-top-fullwidth .search-box {
            margin-top: 6px !important;
            margin-bottom: 14px !important;
        }

    .afiliados-grid {
        grid-template-columns: 1fr !important;
        gap: 16px;
    }

    .form-grid-personales {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px 16px !important;
    }

        .form-grid-personales > :nth-child(n+5) {
            grid-row: auto !important;
        }

        .form-grid-personales .ui-field, .size-doc, .size-afi, .size-ingreso, .size-nacimiento, .size-mini, .size-civil {
            grid-column: span 1 !important;
            width: 100% !important;
            max-width: 100% !important;
        }

        .form-grid-personales > :nth-child(3), .form-grid-personales > :nth-child(4), .form-grid-personales > :nth-child(11) {
            grid-column: span 2 !important;
        }

    .flex-contact-row {
        flex-direction: column !important;
        gap: 20px;
    }

    .form-row-contacto-base {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px;
    }

    .size-estado-select {
        width: 100% !important;
    }

    .figma-inline-alignment {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

        .figma-inline-alignment .ui-field {
            grid-row: auto !important;
            width: 100% !important;
        }

    .size-date-input {
        max-width: 100% !important;
    }

    .form-grid-empresa {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
    }

    .span-empresa, .span-btn, .grid-row-2-col-1, .grid-row-2-col-2 {
        grid-column: auto !important;
        grid-row: auto !important;
        margin-left: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
    }
}

@media (max-width: 420px) {
    .afiliados-top-fullwidth .selected-indicator {
        margin-top: 8px !important;
        margin-bottom: 6px !important;
        font-size: 13px;
    }
}
/* 🎯 Fix: Campos "Pill" en Dark Mode y Paginador */
body.dark-mode .pill-style, body.dark-mode .pill-style-solid, body.dark-mode .pill-style-full {
    background-color: var(--table-zebra) !important;
    border: 1px solid var(--border-accordion) !important;
    color: #FFFFFF !important;
}

.btn-nav {
    background-color: transparent;
    color: var(--text-main);
    border: 1px solid var(--border-ui);
    border-radius: 20px;
    padding: 6px 18px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

    .btn-nav:hover:not(:disabled) {
        background-color: var(--bg-header-yogurt);
        color: #FFFFFF !important;
        border-color: var(--bg-header-yogurt);
    }

    .btn-nav:disabled {
        opacity: 0.4;
        cursor: not-allowed;
    }

body.dark-mode .btn-nav {
    border-color: var(--border-accordion);
}
/* ============================================================
   CORRECCIONES FINALES: SALUDO Y BOTÓN SIDEBAR
   ============================================================ */
/* 🎯 Fuerza el Saludo a color blanco en el Header Desktop */
.user-greeting {
    color: #FFFFFF !important;
    font-size: 15px;
    font-weight: 400 !important; /* Texto normal para el "Buenas noches," */
    display: flex;
    align-items: center;
}

.user-email-highlight {
    color: #FFFFFF !important;
    font-weight: 700 !important; /* Negrita exclusiva para el usuario */
    margin-left: 4px;
}
/* 🎯 Botón de Tema específico para la Sidebar Lateral */
.btn-tema-sidebar {
    background-color: var(--table-zebra);
    color: var(--text-main) !important;
    border: 1px solid var(--border-accordion);
    padding: 10px 16px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 20px !important;
}

    .btn-tema-sidebar:hover {
        background-color: var(--bg-header-yogurt);
        color: #FFFFFF !important;
    }
/* Que se adapte automáticamente si ya está en Modo Oscuro */
body.dark-mode .btn-tema-sidebar {
    background-color: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.2);
    color: #FFFFFF !important;
}
/*MODIFICACION 20260625*/
/* Panel del menú (si no existe, lo definimos) */
.menu-panel {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: 280px; /* ajustá ancho */
    max-width: 90vw;
    background: var(--bg-card);
    border-left: 1px solid var(--border-accordion);
    box-shadow: -8px 0 24px rgba(0,0,0,0.12);
    z-index: 10010;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow: auto; /* permite scrollear el contenido */
    box-sizing: border-box;
}
    /* Close button en la esquina superior */
    .menu-panel .close-btn {
        align-self: flex-end;
        background: transparent;
        border: none;
        font-size: 20px;
        cursor: pointer;
        color: var(--text-main);
    }
    /* Forzar que el contenido principal del menú sea scrollable y el footer quede visible */
    .menu-panel > div {
        flex: 1 1 auto; /* ocupa el espacio disponible */
        overflow: auto;
    }
/* Botón de tema: pegado al final del panel (sticky) */
.btn-tema-sidebar {
    align-self: stretch;
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--bg-header-yogurt);
    color: #fff;
    font-weight: 700;
    border: none;
    cursor: pointer;
    position: sticky;
    bottom: 12px; /* se queda visible al scrollear */
    z-index: 10020;
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}
/* Alternativa: si preferís que quede fijo en el fondo del panel */
.menu-panel .btn-tema-fixed {
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 20px;
}

/* 🎯 FIX: Capa transparente exclusiva para cerrar el menú de usuario */
.user-menu-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 10004; /* Debe estar un nivel debajo del menú de usuario (10005) */
    background: transparent;
    cursor: default;
}

/* 🎯 2. FIX: Color blanco para el botón de tema en modo Responsive */
@media (max-width: 900px) {
    .nav-mobile .theme-toggle-btn-fixed {
        color: #FFFFFF !important;
        border-color: rgba(255, 255, 255, 0.3) !important;
        background: rgba(0, 0, 0, 0.15) !important;
    }
}

/* 🎯 3. FIX: Ícono de usuario como círculo (Desktop) y Píldora (Mobile) */
.user-trigger {
    display: flex;
    flex-direction: row !important; /* Pone ícono y texto lado a lado */
    align-items: center;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.15); /* Fondo sutil */
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50px; /* Esto hace el efecto círculo/píldora */
    padding: 6px 14px;
    gap: 8px;
    cursor: pointer;
    color: #FFFFFF;
    transition: all 0.2s ease;
}

    .user-trigger:hover {
        background-color: rgba(255, 255, 255, 0.25);
        transform: scale(1.03);
    }

@media (min-width: 901px) {
    .user-trigger {
        padding: 8px; /* Ajuste para que sea un círculo perfecto en desktop */
    }

        .user-trigger .generic-user-icon {
            margin: 0; /* Centra el ícono */
        }
}

/* 🎯 5. FIX: Layout e imágenes de los íconos del NavBar */
.nav-desktop a, .nav-mobile-links a {
    display: flex !important;
    align-items: center;
    gap: 12px;
}

.nav-icon {
    width: 22px;
    height: 22px;
    object-fit: contain;
    flex-shrink: 0;
}

/* ============================================================
   🎨 SISTEMA GLOBAL DE TEXTURA Y GRADIENTES - V4
   ============================================================ */

:root {
    /* Textura de ruido orgánico */
    --noise-texture: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.25'/%3E%3C/svg%3E");
}

/* 1. FONDO DE PÁGINA PRINCIPAL (Tema Gradiente) */
body.gradient-theme {
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
}

/* 2. HEADER Y BORDES REDONDEADOS (24px en todos los temas) */
.site-header {
    border-bottom-left-radius: 24px !important;
    border-bottom-right-radius: 24px !important;
}

/* 3. TEXTURA PARA ELEMENTOS CLAROS (Barras laterales y tarjetas) */
.nav-desktop,
.nav-mobile,
.menu-panel,
.btn-principal {
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: multiply !important;
    background-attachment: fixed !important;
    background-size: cover,200px 200px !important;
    color: #FFFFFF !important;
}

/* 4. 🎯 HEADERS Y BOTONES EN TEMA GRADIENTE (Gradiente Turquesa + Textura) */
body.gradient-theme .site-header,
body.gradient-theme .card-header-toggle,
body.gradient-theme .datatable-header,
body.gradient-theme .btn-login,
body.gradient-theme .btn-buscar-pill,
body.gradient-theme .pill-style,
body.gradient-theme .pill-style-solid,
body.gradient-theme .pill-style-full,
body.gradient-theme .btn-tema-sidebar {
    /* Combinamos un gradiente oscuro-a-claro con el ruido */
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    color: #FFFFFF !important;
    border-color: transparent !important; /* Quitamos bordes sólidos para que luzca limpio */
}

/* 5. HEADERS Y BOTONES EN MODO LIGHT/DARK (Solo textura sobre el color sólido) */
body:not(.gradient-theme) .site-header,
body:not(.gradient-theme) .card-header-toggle,
body:not(.gradient-theme) .datatable-header,
body:not(.gradient-theme) .btn-login,
body:not(.gradient-theme) .btn-buscar-pill,
body:not(.gradient-theme) .pill-style,
body:not(.gradient-theme) .pill-style-solid,
body:not(.gradient-theme) .pill-style-full,
body:not(.gradient-theme) .btn-tema-sidebar {
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
}

/* 6. HOVERS CON MOVIMIENTO DE TEXTURA */
.btn-login:hover,
.btn-buscar-pill:hover,
.btn-tema-sidebar:hover,
.btn-principal:hover {
    background-position: 50px 50px !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
}

/* 7. FIX PARA MODO OSCURO (Evita negros sólidos) */
body.dark-mode .site-header,
body.dark-mode .card-header-toggle,
body.dark-mode .datatable-header,
body.dark-mode .btn-login,
body.dark-mode .btn-buscar-pill,
body.dark-mode .btn-tema-sidebar,
body.dark-mode .nav-desktop,
body.dark-mode .nav-mobile,
body.dark-mode .menu-panel {
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
}

/*ESTILO HEADER AL NAVBAR*/

/* Clase maestra para replicar el estilo del Header */
/*.navbar-style-replicado {*/
    /* Color base */
    /*background-color: #5A9EAC !important;*/
    /* Gradiente y Textura */
    /*background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;*/
    /* Aseguramos que el contenido resalte */
    /*color: #FFFFFF !important;
}*/

/* Aplicamos el estilo a los tres componentes del Navbar */
/*.nav-desktop,
.nav-mobile,
.menu-panel {*/
    /* Aquí llamamos al estilo que definimos arriba */
    /*background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    color: #FFFFFF !important;
}

    .nav-desktop a, .nav-mobile a, .nav-mobile button {
        color: #FFFFFF !important;
        font-weight: 600;
    }

.nav-desktop {*/
    /*border-right: 1px solid #FFFFFF !important;*/
/*}*/

/*ESTILO DEL HEADER EN BOTONES*/

/* Estandarización de botones con el estilo del Header */
/*.btn-principal,
.btn-secundario,
.btn-login,
.btn-buscar-pill,
.pill-style,
.pill-style-solid,
.pill-style-full,
.btn-tema-sidebar,
.btn-side-action,
.btn-nav {*/
    /* Mismo gradiente y textura que el Header */
    /*background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    color: #FFFFFF !important;
    --text-main: #FFFFFF !important;
}*/

    /* Efecto Hover unificado */
    /*.btn-principal:hover,
    .btn-secundario:hover,
    .btn-login:hover,
    .btn-buscar-pill:hover,
    .btn-tema-sidebar:hover,
    .btn-side-action:hover,
    .btn-nav:hover {
        background-color: #5A9EAC !important;
        background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
        background-blend-mode: color-burn !important;
        background-attachment: fixed !important;
        background-size: cover, 200px 200px !important;
        color: #FFFFFF !important;
        --text-main: #FFFFFF !important;
    }*/

/* Fuerza el texto blanco en el botón de toggle de tema */
/*.theme-toggle-btn-fixed,
.theme-toggle-label {
    color: #FFFFFF !important;
}*/

/* Asegurar que el texto sea blanco en cualquier estado */
/*.btn-principal *,
.btn-secundario *,
.btn-login *,
.btn-nav * {
    color: #FFFFFF !important;*/
    /* BUSCÁ Y ELIMINÁ ESTO EN TU CSS: */
    /*body.gradient-theme .btn-principal {
        color: #00727A !important;*/ /* <--- Esto es lo que rompe tu texto blanco */
        /*background: #FFFFFF;
    }*/
    /* Estandarización de botones */
    /*.btn-principal,
    .btn-secundario,
    .btn-login,
    .btn-buscar-pill,
    .pill-style,
    .pill-style-solid,
    .pill-style-full,
    .btn-tema-sidebar,
    .btn-side-action,
    .btn-nav {
        background-color: #5A9EAC !important;
        background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
        background-blend-mode: color-burn !important;
        background-attachment: fixed !important;
        background-size: cover, 200px 200px !important;*/
        /* FUERZA EL COLOR BLANCO */
        /*color: #FFFFFF !important;
        -webkit-text-fill-color: #FFFFFF !important;
        border: 1px solid rgba(255, 255, 255, 0.3) !important;
    }*/
        /* Asegurar que el texto sea blanco en cualquier estado */
        /*.btn-principal *,
        .btn-secundario *,
        .btn-login *,
        .btn-nav * {
            color: #FFFFFF !important;
        }
}*/

/* ============================================================
   ESTILO FINAL UNIFICADO PARA NAVBAR Y BOTONES
   ============================================================ */

/* 1. Navbar y Paneles */
/*.nav-desktop,
.nav-mobile,
.menu-panel {
    background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    color: #FFFFFF !important;
}

    .nav-desktop a,
    .nav-mobile a,
    .nav-mobile button {
        color: #FFFFFF !important;
        font-weight: 600;
    }*/

/* 1. Navbar, Paneles y Cabeceras de Tablas/Categorías */
.nav-desktop,
.nav-mobile,
.menu-panel,
.datatable-header,
.card-header-toggle,
.spreadsheet-table thead th {
    background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    color: #FFFFFF !important;
}

    /* Forzar color blanco en los textos de estas cabeceras (Cuidando de NO afectar al buscador) */
    .nav-desktop a,
    .nav-mobile a,
    .nav-mobile button,
    .datatable-header .datatable-title,
    .card-header-toggle h3,
    .card-header-toggle .arrow-icon {
        color: #FFFFFF !important;
        font-weight: 600;
    }

/* 2. Todos los Botones (Estilo Unificado) */
.btn-principal,
.btn-secundario,
.btn-login,
.btn-buscar-pill,
.pill-style,
.pill-style-solid,
.pill-style-full,
.btn-tema-sidebar,
.btn-side-action,
.btn-nav {
    background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

    /* Forzar color blanco en el texto interno del botón por si hubiera etiquetas <span> o <i> */
    .btn-principal *,
    .btn-secundario *,
    .btn-login *,
    .btn-nav *,
    .btn-buscar-pill *,
    .btn-tema-sidebar *,
    .pill-style *,
    .pill-style-solid *,
    .pill-style-full * {
        color: #FFFFFF !important;
        -webkit-text-fill-color: #FFFFFF !important;
    }

    /* 3. Hover unificado */
    .btn-principal:hover,
    .btn-secundario:hover,
    .btn-login:hover,
    .btn-buscar-pill:hover,
    .btn-tema-sidebar:hover,
    .btn-side-action:hover,
    .btn-nav:hover {
        filter: brightness(1.1);
        transform: translateY(-1px);
        cursor: pointer;
    }

/* 4. Force color blanco en el toggle de tema */
.theme-toggle-btn-fixed,
.theme-toggle-label {
    color: #FFFFFF !important;
}

/* ============================================================
   CORRECCIÓN DE FONDOS BLANCOS EN MODO OSCURO (AFILIADOS)
   ============================================================ */

/* 1. Aplicar el estilo texturizado del Navbar/Header a tarjetas y contenedores de tablas */
body.dark-mode .dashboard-card,
body.dark-mode .table-responsive {
    background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    color: #FFFFFF !important;
}

/* 2. Volver transparentes las filas de la tabla para dejar ver la textura de fondo */
body.dark-mode .spreadsheet-table tbody tr {
    background-color: transparent !important;
}

    /* 3. Suavizar el "Efecto Cebra" (filas pares) oscureciéndolas levemente sin tapar la textura */
    body.dark-mode .spreadsheet-table tbody tr:nth-child(even) {
        background-color: rgba(0, 0, 0, 0.25) !important;
    }

/* 4. Prevenir que la variable global siga inyectando blanco en otros componentes */
body.dark-mode {
    --bg-card: transparent !important;
}

    /* 5. Asegurar que los botones/etiquetas internas de las tarjetas oscuras se lean bien */
    body.dark-mode .dashboard-card label,
    body.dark-mode .dashboard-card .text-brand-label,
    body.dark-mode .dashboard-card .side-card-title {
        color: #FFFFFF !important;
    }

/* ============================================================
   AJUSTES FINALES: BORDES, TEXTOS Y TARJETAS (GRADIENT Y GENERAL)
   ============================================================ */

/* 1. Bordes azules para los campos, selectores y cajas en el Tema Gradient */
body.gradient-theme .ui-input-outline,
body.gradient-theme .ui-input,
body.gradient-theme .ui-select-custom,
body.gradient-theme .photo-box-figma,
body.gradient-theme .btn-side-action,
body.gradient-theme .pill-style-outline-figma {
    border: 1px solid #5A9EAC !important; /* Azul original del tema claro */
}

/* 2. Texto "Mostrando datos del afiliado..." en color NEGRO en el Tema Gradient */
body.gradient-theme .selected-indicator,
body.gradient-theme .selected-indicator * {
    color: #000000 !important;
}

/* 3. Quitar bordes blancos/grises de las tablas de categorías (Tarjetas) en TODOS los temas */
.dashboard-card,
.table-responsive,
.datatable-header {
    border: none !important;
}

/* Anular explícitamente el borde blanco que habíamos puesto antes en el Modo Oscuro para las tarjetas */
body.dark-mode .dashboard-card,
body.dark-mode .table-responsive {
    border: none !important;
}

/* ============================================================
   FONDO BLANCO REDONDEADO PARA EL LOGO (ATSA)
   ============================================================ */
.brand-logo {
    background-color: #FFFFFF !important; /* Relleno sólido blanco */
    border-radius: 50% !important; /* Convierte el cuadrado en un círculo perfecto */
    padding: 4px !important; /* Espacio blanco entre el logo y el borde */
    width: 36px !important; /* Forzamos ancho igual al... */
    height: 36px !important; /* ...alto para que no quede como un óvalo */
    object-fit: contain !important; /* Asegura que la imagen no se deforme */
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15) !important; /* Sombrita sutil para que despegue del fondo */
}

/* ============================================================
   1. UNIFICACIÓN GLOBAL DE CABECERA DE TABLAS (Escritorio y Base)
   ============================================================ */
/* Aseguramos que las columnas tengan EXACTAMENTE el mismo código que 
   el Header principal para que el color matchee al 100% */
.spreadsheet-table thead th {
    background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
    color: #FFFFFF !important;
    border-bottom: 2px solid rgba(255, 255, 255, 0.3) !important;
}

/* ============================================================
   ESTILO PLANO (SIN TEXTURA) PARA HEADERS Y TABLAS
   ============================================================ */

/* 1. Cabecera de la tabla: Color sólido sin ruido */
.spreadsheet-table thead tr,
.spreadsheet-table thead th {
    /*background-image: none !important;*/
    /*background-color: #00727A !important;*/
}

/* 2. Header general y paneles: Color sólido sin ruido */
.site-header,
.datatable-header,
.card-header-toggle,
.nav-desktop,
.nav-mobile,
.menu-panel {
    /*background-image: none !important;*/
    /*background-color: #00727A !important;*/
}

/* 3. Limpieza de elementos que pudieran heredar la textura */
.btn-login,
.btn-buscar-pill,
.btn-tema-sidebar {
    /*background-image: none !important;*/
    /*background-color: #00727A !important;*/

    
}

.table-responsive {
    background-image: none !important;
}

/* ============================================================
   EFECTO SOMBRA/GLOW INTERNO TENUE Y ELEGANTE (ESTILO MENÚ DE USUARIO)
   ============================================================ */
button,
.btn,
[class^="btn-"] {
    /* Transición lenta y súper fluida de 0.4 segundos */
    transition: background-color 0.4s ease-in-out, box-shadow 0.4s ease-in-out !important;
}

    button:hover,
    .btn:hover,
    [class^="btn-"]:hover {
        /* 1. Desactivamos la grilla/patrón ruidoso en el hover */
        background-image: none !important;
        background-blend-mode: normal !important;
        /* 2. Respetamos los bordes y padding de origen para que el tamaño NO cambie */
        filter: none !important;
        outline: none !important;
        /* 3. Sombreado interno ambiental sutil (oscurece un penique hacia adentro como el menú de usuario) */
        box-shadow: inset 0 0 12px rgba(0, 0, 0, 0.05) !important;
        /* 4. Bloqueo absoluto de saltos o escalados */
        transform: none !important;
    }

    button:active,
    .btn:active,
    [class^="btn-"]:active {
        /* Feedback estático al hacer clic sin alterar dimensiones */
        box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1) !important;
        transform: none !important;
    }

/* ============================================================
   SPINNER TESTIGO ULTRA BÁSICO Y LIVIANO
   ============================================================ */
.spinner-testigo {
    width: 24px;
    height: 24px;
    border: 3px solid rgba(90, 158, 172, 0.2); /* Fondo tenue usando tu color de UI */
    border-top: 3px solid #5A9EAC; /* El segmento que gira (color principal) */
    border-radius: 50%;
    animation: girarSpinner 0.8s linear infinite;
    display: inline-block;
    vertical-align: middle;
}

/* Animación fluida por hardware */
@keyframes girarSpinner {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Contenedor opcional por si querés centrarlo en pantallas de carga */
.loading-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 20px;
    color: var(--text-labels-fields);
    font-size: 14px;
}

.global-top-loader {
    position: fixed;
    top: 15px;
    right: 20px;
    background-color: rgba(29, 48, 66, 0.85); /* Tono corporativo traslúcido */
    padding: 6px 14px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 10015; /* 🚀 AJUSTADO: Ahora flota incluso sobre el Site-Header (10000) */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    pointer-events: none;
}

/* ============================================================
   SPLASH SCREEN INICIAL DE BLAZOR (MIESTRAS BAJA LOS .WASM)
   ============================================================ */
/*.initial-splash-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 16px;*/
    /* Usamos tu mismo gradiente corporativo de fondo */
    /*background: linear-gradient(135deg, #E6F4F8 0%, #F4F9FA 50%, #FFFFFF 100%) fixed;
    z-index: 99999;
}*/

/* Duplicamos la lógica de tu ruedita pero aislada para el index */
/*.initial-spinner-testigo {
    width: 32px;
    height: 32px;
    border: 3px solid rgba(90, 158, 172, 0.2);
    border-top: 3px solid #5A9EAC;
    border-radius: 50%;
    animation: girarSplashSpinner 0.8s linear infinite;
}

.initial-splash-text {
    font-family: "Inter", system-ui, sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #1D3042;*/ /* Tu color azul marino de etiquetas */
    /*margin: 0;
}*/

/* Animación nativa fluida */
/*@keyframes girarSplashSpinner {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}*/

/* Compatibilidad si estás en el tema Gradient por defecto en el body */
/*body.gradient-theme .initial-splash-container {
    background: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%) fixed;
}

body.gradient-theme .initial-splash-text {
    color: #FFFFFF;
}

body.gradient-theme .initial-spinner-testigo {
    border: 3px solid rgba(255, 255, 255, 0.2);
    border-top: 3px solid #FFFFFF;
}*/

/* ============================================================
   SPLASH SCREEN INICIAL DE BLAZOR (CON ESTILO IDÉNTICO AL HEADER)
   ============================================================ */
.initial-splash-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 16px;
    z-index: 99999;
    /* 🎨 REPLICADO EXACTO DEL HEADER DE ATSA: Color base, gradiente y textura */
    background-color: #5A9EAC !important;
    background-image: linear-gradient(135deg, #00727A 0%, #70B9C6 60%, #FFFFFF 100%), var(--noise-texture) !important;
    background-blend-mode: color-burn !important;
    background-attachment: fixed !important;
    background-size: cover, 200px 200px !important;
}

/* Ruedita blanca para que contraste perfecto sobre el fondo turquesa/azul */
.initial-spinner-testigo {
    width: 32px;
    height: 32px;
    border: 3px solid rgba(255, 255, 255, 0.2);
    border-top: 3px solid #FFFFFF;
    border-radius: 50%;
    animation: girarSplashSpinner 0.8s linear infinite;
}

/* Texto en blanco con tipografía Inter */
.initial-splash-text {
    font-family: "Inter", system-ui, sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #FFFFFF !important;
    margin: 0;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.15); /* Un pelín de sombra para el contraste */
}

/* Animación nativa fluida */
@keyframes girarSplashSpinner {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}