:root {
    color-scheme: light;
    --ac-bg: #f2f7fd;
    --ac-bg-muted: #eef4fb;
    --ac-bg-welcome: #f2f6fb;
    --ac-surface: #ffffff;
    --ac-surface-glass: rgba(255, 255, 255, 0.94);
    --ac-surface-translucent: rgba(255, 255, 255, 0.96);
    --ac-surface-soft: #f7fbff;
    --ac-surface-cool: #f6faff;
    --ac-surface-muted: #f8fbff;
    --ac-surface-row-even: #f9fcff;
    --ac-border: #d8e4f3;
    --ac-border-soft: #dbe5f1;
    --ac-border-subtle: #e3edf9;
    --ac-border-table: #e6effa;
    --ac-text: #15253b;
    --ac-text-strong: #132238;
    --ac-text-heading: #123252;
    --ac-text-table-heading: #33506f;
    --ac-text-code: #34506f;
    --ac-text-muted: #5f7896;
    --ac-text-muted-welcome: #5f7693;
    --ac-primary: #1a5fd2;
    --ac-primary-active-menu: #00609c;
    --ac-primary-alt: #1d5fd0;
    --ac-primary-start: #2a6ee5;
    --ac-primary-marker-start: #2a6de5;
    --ac-primary-strong: #154ea8;
    --ac-primary-strong-alt: #164fb4;
    --ac-primary-dark: #154da9;
    --ac-primary-soft: #e8f1ff;
    --ac-primary-soft-start: #eaf2ff;
    --ac-primary-soft-end: #dbe9ff;
    --ac-primary-soft-hover: #edf4ff;
    --ac-primary-soft-row: #edf5ff;
    --ac-primary-soft-row-alt: #ecf4ff;
    --ac-primary-soft-table: #eef5ff;
    --ac-primary-soft-panel: #f5f9ff;
    --ac-primary-soft-dashboard-end: #e4efff;
    --ac-primary-soft-dashboard-hover-start: #f1f8ff;
    --ac-primary-soft-dashboard-hover-end: #e9f3ff;
    --ac-primary-soft-campos-hover: #eef6ff;
    --ac-primary-soft-placeholder-end: #f1f6ff;
    --ac-primary-soft-strong: #e9f2ff;
    --ac-primary-soft-bullet: #e7f0ff;
    --ac-primary-border: #bcd0f2;
    --ac-primary-border-hover: #bfd3f0;
    --ac-primary-border-welcome: #b8cdf2;
    --ac-primary-border-bullet: #c9dcfb;
    --ac-focus: #0f6bb8;
    --ac-danger: #a32a2a;
    --ac-danger-soft: #fff4f4;
    --ac-danger-border: #efcbcb;
    --ac-danger-border-hover: #e7adad;
    --ac-success-start: #1f7a3f;
    --ac-success-end: #176433;
    --ac-success-border: #14572d;
    --ac-success-text: #f4fff8;
    --ac-shadow: 0 14px 32px rgba(15, 23, 42, 0.08);
    --ac-shadow-soft: 0 14px 28px rgba(15, 23, 42, 0.08);
    --ac-shadow-table: 0 14px 30px rgba(15, 23, 42, 0.08);
    --ac-shadow-topbar: 0 6px 14px rgba(15, 23, 42, 0.05);
    --ac-shadow-sidebar: 10px 0 28px rgba(15, 23, 42, 0.05);
    --ac-shadow-active: 0 9px 20px rgba(26, 95, 210, 0.2);
    --ac-shadow-button: 0 10px 20px rgba(26, 95, 210, 0.22);
    --ac-shadow-secondary-button: 0 6px 14px rgba(15, 23, 42, 0.06);
    --ac-shadow-login: 0 24px 48px rgba(15, 23, 42, 0.1);
    --ac-shadow-welcome: 0 18px 40px rgba(15, 23, 42, 0.06);
    --ac-gradient-blue-light: rgba(59, 130, 246, 0.12);
    --ac-gradient-blue-soft: rgba(29, 95, 210, 0.08);
    --ac-gradient-login-light: rgba(59, 130, 246, 0.14);
    --ac-gradient-login-soft: rgba(37, 99, 235, 0.1);
    --ac-border-dashed: #9cb6da;
    --ac-border-table-alt: #e4edf7;
    --ac-border-table-strong: #d4e3f8;

    --w-bg: var(--ac-bg-welcome);
    --w-surface: #fcfdff;
    --w-border: #d6e2f0;
    --w-text: var(--ac-text-strong);
    --w-muted: var(--ac-text-muted-welcome);
    --w-primary: var(--ac-primary-alt);
    --w-primary-strong: var(--ac-primary-strong-alt);
}

body.fi-body {
    background:
        radial-gradient(circle at 12% 8%, var(--ac-gradient-blue-light) 0, transparent 28%),
        radial-gradient(circle at 90% 12%, var(--ac-gradient-blue-soft) 0, transparent 30%),
        linear-gradient(180deg, var(--ac-surface-muted) 0%, var(--ac-bg) 100%);
    color: var(--ac-text);
}

.fi-main-ctn {
    margin-inline: auto;
    max-width: 1320px;
}

.fi-topbar,
.fi-topbar-ctn {
    background: var(--ac-surface-glass) !important;
    border-bottom: 1px solid var(--ac-border) !important;
    box-shadow: var(--ac-shadow-topbar);
}

.fi-sidebar {
    background: linear-gradient(180deg, var(--ac-surface) 0%, var(--ac-surface-cool) 100%) !important;
    border-inline-end: 1px solid var(--ac-border) !important;
    box-shadow: var(--ac-shadow-sidebar);
    width: 18rem !important;
}

.fi-sidebar-item {
    color: var(--ac-text-muted);
    margin-block: 0.18rem;
}

.fi-sidebar-item.fi-active,
.fi-sidebar-item.fi-sidebar-item-has-active-child-items {
    color: var(--ac-primary-dark) !important;
}

.fi-sidebar-item-btn,
.fi-sidebar-item-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 0.95rem;
    color: var(--ac-text-muted);
    display: flex;
    font-weight: 620;
    gap: 0.65rem;
    min-height: 44px;
    padding-inline: 0.85rem;
    transition: all 160ms ease;
}

.fi-sidebar-item-btn:hover,
.fi-sidebar-item-btn:focus-visible,
.fi-sidebar-item-button:hover,
.fi-sidebar-item-button:focus-visible {
    background: var(--ac-primary-soft);
    color: var(--ac-primary);
}

.fi-sidebar .fi-active > .fi-sidebar-item-btn,
.fi-sidebar .fi-active > .fi-sidebar-item-button,
.fi-sidebar .fi-sidebar-item-active > .fi-sidebar-item-button,
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn,
.fi-sidebar-item.fi-active > .fi-sidebar-item-button,
.fi-sidebar-item.fi-sidebar-item-has-active-child-items > .fi-sidebar-item-btn,
.fi-sidebar-item.fi-sidebar-item-has-active-child-items > .fi-sidebar-item-button,
.fi-sidebar .fi-sidebar-item-btn[aria-current='page'],
.fi-sidebar .fi-sidebar-item-btn[aria-current='true'] {
    background: var(--ac-primary-active-menu) !important;
    border-color: var(--ac-primary-active-menu) !important;
    box-shadow: var(--ac-shadow-active);
    color: var(--ac-surface) !important;
    font-weight: 700;
    position: relative;
}

.fi-sidebar .fi-active > .fi-sidebar-item-btn::before,
.fi-sidebar .fi-active > .fi-sidebar-item-button::before,
.fi-sidebar .fi-sidebar-item-active > .fi-sidebar-item-button::before,
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn::before,
.fi-sidebar-item.fi-active > .fi-sidebar-item-button::before,
.fi-sidebar-item.fi-sidebar-item-has-active-child-items > .fi-sidebar-item-btn::before,
.fi-sidebar-item.fi-sidebar-item-has-active-child-items > .fi-sidebar-item-button::before,
.fi-sidebar .fi-sidebar-item-btn[aria-current='page']::before,
.fi-sidebar .fi-sidebar-item-btn[aria-current='true']::before {
    background: linear-gradient(180deg, var(--ac-primary-marker-start) 0%, var(--ac-primary) 100%);
    border-radius: 999px;
    content: '';
    height: 66%;
    left: -0.45rem;
    position: absolute;
    top: 17%;
    width: 0.28rem;
}

.fi-sidebar .fi-sidebar-item-icon {
    color: inherit;
}

.fi-sidebar-item.fi-active>.fi-sidebar-item-btn>.fi-sidebar-item-label{
    color: white !important;
}

.fi-section,
.fi-widget,
.fi-ta-ctn {
    background: var(--ac-surface) !important;
    border: 1px solid var(--ac-border) !important;
    border-radius: 1.15rem !important;
    box-shadow: var(--ac-shadow) !important;
}

/* Contenedor de widgets del dashboard */
.fi-wi-widget,
.fi-wi-table,
.fi-wi-table .fi-ta-ctn {
    background: var(--ac-surface) !important;
    border-radius: 1.1rem !important;
}

.fi-wi-table {
    border: 1px solid var(--ac-border) !important;
    box-shadow: var(--ac-shadow) !important;
    overflow: hidden;
}

.fi-section-header,
.fi-ta-header {
    background: linear-gradient(180deg, var(--ac-surface) 0%, var(--ac-surface-soft) 100%) !important;
    border-bottom: 1px solid var(--ac-border) !important;
    border-radius: 20px;
}

.fi-section-header-heading,
.fi-ta-header-heading {
    color: var(--ac-text);
    font-weight: 800;
    letter-spacing: -0.018em;
}

.fi-section-header-description,
.fi-ta-header-description {
    color: var(--ac-text-muted);
}

.fi-ta-table {
    border-collapse: separate;
    border-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.fi-ta-header-cell,
.fi-ta-summary-header-cell {
    background: linear-gradient(180deg, var(--ac-surface-soft) 0%, var(--ac-primary-soft-table) 100%) !important;
    border-right: 1px solid var(--ac-border-subtle) !important;
    border-bottom: 1px solid var(--ac-border) !important;
    padding: 0.95rem 1rem;
}

.fi-ta-cell {
    border-right: 1px solid var(--ac-border-subtle) !important;
    color: var(--ac-text) !important;
    padding: 0.95rem 1rem;
}

.fi-ta-cell:last-child,
.fi-ta-header-cell:last-child,
.fi-ta-summary-header-cell:last-child {
    border-right: none !important;
}

.fi-ta-row {
    background: var(--ac-surface) !important;
    transition: background-color 150ms ease;
}

.fi-ta-row:nth-child(even) {
    background: var(--ac-surface-row-even) !important;
}

.fi-ta-row:hover {
    background: linear-gradient(180deg, var(--ac-surface-cool) 0%, var(--ac-primary-soft-row) 100%) !important;
}

.fi-ta-row .fi-ta-cell:first-child {
    font-weight: 620;
}

/* Ajuste específico tabla del dashboard */
.tabla-excel-dashboard {
    border: 1px solid var(--ac-border) !important;
    border-radius: 1rem !important;
    overflow: hidden;
    box-shadow: var(--ac-shadow-soft) !important;
}

.tabla-excel-dashboard .fi-ta-header {
    background: linear-gradient(180deg, var(--ac-surface) 0%, var(--ac-primary-soft-panel) 100%) !important;
    border-bottom: 1px solid var(--ac-border) !important;
}

.tabla-excel-dashboard .fi-ta-header-heading {
    color: var(--ac-text-heading) !important;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.015em;
}

.tabla-excel-dashboard .fi-ta-header-cell,
.tabla-excel-dashboard .fi-ta-summary-header-cell {
    background: linear-gradient(180deg, var(--ac-primary-soft-row) 0%, var(--ac-primary-soft-dashboard-end) 100%) !important;
    border-bottom: 1px solid var(--ac-border-table-strong) !important;
}

.tabla-excel-dashboard .fi-ta-header-cell-label {
    color: var(--ac-text-table-heading) !important;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.tabla-excel-dashboard .fi-ta-row {
    background: var(--ac-surface) !important;
}

.tabla-excel-dashboard .fi-ta-row:nth-child(even) {
    background: var(--ac-surface-soft) !important;
}

.tabla-excel-dashboard .fi-ta-row:hover {
    background: linear-gradient(180deg, var(--ac-primary-soft-dashboard-hover-start) 0%, var(--ac-primary-soft-dashboard-hover-end) 100%) !important;
}

.tabla-excel-dashboard .fi-ta-cell {
    border-bottom: 1px solid var(--ac-border-table) !important;
}

/* Dashboard table: forzar mismo estilo moderno que el resto */
.fi-wi-table .fi-ta-ctn,
.fi-wi-table .admin-table-modern {
    border: 1px solid var(--ac-border) !important;
    border-radius: 1.05rem !important;
    box-shadow: var(--ac-shadow-table) !important;
    overflow: hidden;
}

.fi-wi-table .fi-ta-table {
    border-collapse: separate;
    border-spacing: 0;
}

.fi-wi-table .fi-ta-header,
.fi-wi-table .admin-table-modern .fi-ta-header {
    background: linear-gradient(180deg, var(--ac-surface) 0%, var(--ac-surface-soft) 100%) !important;
    border-bottom: 1px solid var(--ac-border) !important;
}

.fi-wi-table .fi-ta-header-cell,
.fi-wi-table .fi-ta-summary-header-cell,
.fi-wi-table .admin-table-modern .fi-ta-header-cell,
.fi-wi-table .admin-table-modern .fi-ta-summary-header-cell {
    background: linear-gradient(180deg, var(--ac-surface-soft) 0%, var(--ac-primary-soft-table) 100%) !important;
    border-right: 1px solid var(--ac-border-subtle) !important;
    border-bottom: 1px solid var(--ac-border) !important;
}

.fi-wi-table .fi-ta-cell,
.fi-wi-table .admin-table-modern .fi-ta-cell {
    border-right: 1px solid var(--ac-border-subtle) !important;
    border-bottom: 1px solid var(--ac-border-table) !important;
    color: var(--ac-text) !important;
}

.fi-wi-table .fi-ta-cell:last-child,
.fi-wi-table .fi-ta-header-cell:last-child,
.fi-wi-table .fi-ta-summary-header-cell:last-child {
    border-right: none !important;
}

.fi-wi-table .fi-ta-row,
.fi-wi-table .admin-table-modern .fi-ta-row {
    background: var(--ac-surface) !important;
}

.fi-wi-table .fi-ta-row:nth-child(even),
.fi-wi-table .admin-table-modern .fi-ta-row:nth-child(even) {
    background: var(--ac-surface-row-even) !important;
}

.fi-wi-table .fi-ta-row:hover,
.fi-wi-table .admin-table-modern .fi-ta-row:hover {
    background: linear-gradient(180deg, var(--ac-surface-cool) 0%, var(--ac-primary-soft-row-alt) 100%) !important;
}

.fi-badge {
    border-radius: 999px;
    font-weight: 700;
}

.fi-btn {
    border-radius: 0.92rem;
    font-weight: 700;
    min-height: 40px;
}

.fi-btn.admin-action-button {
    align-items: center;
    border-radius: 0.95rem;
    display: inline-flex;
    font-weight: 700;
    gap: 0.5rem;
    justify-content: center;
    min-height: 44px;
    padding-inline: 1rem;
}

.fi-btn.admin-action-button:disabled,
.fi-btn.admin-action-button[aria-disabled='true'] {
    cursor: not-allowed;
    opacity: 0.72;
}

.fi-btn-color-primary {
    background: linear-gradient(180deg, var(--ac-primary-start) 0%, var(--ac-primary) 100%) !important;
    border-color: var(--ac-primary-strong) !important;
    color: var(--ac-surface-soft) !important;
    box-shadow: var(--ac-shadow-button);
}

.fi-btn-color-primary:hover {
    filter: brightness(1.02);
    transform: translateY(-1px);
}

.fi-btn:not(.fi-btn-color-primary):not(.fi-color-primary):not([color='primary']) {
    background: var(--ac-surface) !important;
    border: 1px solid var(--ac-border) !important;
    box-shadow: var(--ac-shadow-secondary-button) !important;
    color: var(--ac-text) !important;
}

.fi-btn:not(.fi-btn-color-primary):not(.fi-color-primary):not([color='primary']):hover {
    background: var(--ac-surface-soft) !important;
    border-color: var(--ac-primary-border-hover) !important;
}

.fi-btn-color-danger {
    background: var(--ac-surface) !important;
    border: 1px solid var(--ac-danger-border) !important;
    color: var(--ac-danger) !important;
}

.fi-btn-color-danger:hover {
    background: var(--ac-danger-soft) !important;
    border-color: var(--ac-danger-border-hover) !important;
}

.fi-btn.admin-action-button,
.fi-btn.admin-action-button:not(.fi-btn-color-primary):not(.fi-color-primary):not([color='primary']),
.fi-btn.admin-action-button.fi-btn-color-danger,
.fi-btn.admin-action-button:hover,
.fi-btn.admin-action-button:focus-visible {
    background: #035f9b !important;
    border-color: #035f9b !important;
    color: #ffffff !important;
    margin: 10px 0px;
}

.fi-input-wrp,
.fi-select-input,
.fi-select-input-ctn,
.fi-input,
.fi-fo-field-wrp .choices__inner {
    background: var(--ac-surface) !important;
    border-color: var(--ac-border) !important;
    border-radius: 0.95rem;
}

.fi-input-wrp:focus-within,
.fi-select-input:focus,
.fi-input:focus,
.fi-select-input-ctn:focus-within,
.fi-btn:focus-visible,
.fi-sidebar-item-btn:focus-visible,
.fi-sidebar-item-button:focus-visible {
    outline: 2px solid var(--ac-focus);
    outline-offset: 2px;
}

.fi-pagination {
    background: linear-gradient(180deg, var(--ac-surface) 0%, var(--ac-surface-muted) 100%) !important;
    border-top: 1px solid var(--ac-border) !important;
}

.fi-pagination-item[aria-current='page'] {
    background: var(--ac-primary) !important;
    color: var(--ac-surface) !important;
}

.fi-simple-layout {
    background:
        radial-gradient(circle at 15% 10%, var(--ac-gradient-login-light) 0, transparent 28%),
        radial-gradient(circle at 85% 15%, var(--ac-gradient-login-soft) 0, transparent 26%),
        linear-gradient(180deg, var(--ac-surface-soft) 0%, var(--ac-bg-muted) 100%);
}

.fi-simple-main {
    padding: 1.1rem;
}

.fi-simple-main-ctn,
.fi-simple-main .fi-section {
    background: var(--ac-surface-translucent) !important;
    border: 1px solid var(--ac-border) !important;
    border-radius: 1.2rem !important;
    box-shadow: var(--ac-shadow-login) !important;
}

.tabla-excel-campos .fi-ta-table thead {
    background: linear-gradient(180deg, var(--ac-success-start) 0%, var(--ac-success-end) 100%) !important;
}

.tabla-excel-campos .fi-ta-header-cell {
    border-bottom: 1px solid var(--ac-success-border) !important;
}

.tabla-excel-campos .fi-ta-header-cell-label {
    color: var(--ac-success-text) !important;
    letter-spacing: 0.05em;
}

.tabla-excel-campos .fi-ta-cell {
    border-right: 1px solid var(--ac-border-table-alt) !important;
    border-bottom: 1px solid var(--ac-border-table-alt) !important;
}

.tabla-excel-campos .fi-ta-row:nth-child(even) {
    background: var(--ac-surface-row-even) !important;
}

.tabla-excel-campos .fi-ta-row:hover {
    background: var(--ac-primary-soft-campos-hover) !important;
}

.admin-kpi-grid {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: 0.75rem;
}

.reporte-iframe-placeholder {
    align-items: center;
    background: linear-gradient(180deg, var(--ac-surface-muted) 0%, var(--ac-primary-soft-placeholder-end) 100%);
    border: 1px dashed var(--ac-border-dashed);
    border-radius: 1rem;
    color: var(--ac-text-muted);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    justify-content: center;
    min-height: 440px;
    padding: 1.5rem;
    text-align: center;
}

.reporte-iframe-placeholder code {
    background: var(--ac-surface);
    border: 1px solid var(--ac-border-soft);
    border-radius: 0.75rem;
    color: var(--ac-text-code);
    display: inline-block;
    font-size: 0.84rem;
    padding: 0.7rem 0.9rem;
}

@media (max-width: 1024px) {
    .fi-main-ctn {
        max-width: 100%;
    }

    .fi-sidebar {
        width: auto !important;
    }

    .admin-kpi-grid {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Pagina inicial */
.welcome-page * {
    box-sizing: border-box;
}

.welcome-page {
    margin: 0;
    min-height: 100vh;
    background: radial-gradient(circle at 15% 15%, var(--ac-primary-soft-strong) 0%, transparent 40%), linear-gradient(180deg, var(--ac-surface-muted) 0%, var(--w-bg) 100%);
    color: var(--w-text);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

.welcome-shell {
    margin: 0 auto;
    max-width: 1040px;
    padding: 2.25rem 1rem 2rem;
}

.welcome-topbar {
    display: flex;
    justify-content: flex-end;
    gap: 0.65rem;
    margin-bottom: 1.25rem;
}

.welcome-link {
    border: 1px solid var(--w-border);
    border-radius: 0.8rem;
    color: var(--w-text);
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 650;
    padding: 0.5rem 0.85rem;
    text-decoration: none;
    transition: border-color 160ms ease, background-color 160ms ease;
}

.welcome-link:hover,
.welcome-link:focus-visible {
    background: var(--ac-primary-soft-hover);
    border-color: var(--ac-primary-border-welcome);
    outline: none;
}

.welcome-link.primary {
    background: linear-gradient(180deg, var(--ac-primary-start) 0%, var(--w-primary) 100%);
    border-color: var(--w-primary-strong);
    color: var(--ac-surface-muted);
}

.welcome-card {
    background: var(--w-surface);
    border: 1px solid var(--w-border);
    border-radius: 1.15rem;
    box-shadow: var(--ac-shadow-welcome);
    padding: 1.35rem;
}

.welcome-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1.35fr 1fr;
}

.welcome-page h1 {
    font-size: clamp(1.55rem, 1.2rem + 1.2vw, 2.1rem);
    letter-spacing: -0.02em;
    line-height: 1.15;
    margin: 0;
}

.welcome-subtitle {
    color: var(--w-muted);
    line-height: 1.55;
    margin: 0.75rem 0 0;
    max-width: 62ch;
}

.welcome-list {
    display: grid;
    gap: 0.8rem;
    margin: 1.15rem 0 0;
    padding: 0;
}

.welcome-list li {
    align-items: flex-start;
    display: flex;
    gap: 0.6rem;
    list-style: none;
}

.welcome-bullet {
    background: var(--ac-primary-soft-bullet);
    border: 1px solid var(--ac-primary-border-bullet);
    border-radius: 999px;
    color: var(--w-primary);
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 700;
    margin-top: 0.15rem;
    padding: 0.1rem 0.45rem;
}

.welcome-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1.2rem;
}

.welcome-kpi {
    border: 1px solid var(--w-border);
    border-radius: 0.95rem;
    padding: 0.85rem 0.9rem;
}

.welcome-kpi + .welcome-kpi {
    margin-top: 0.7rem;
}

.welcome-kpi-label {
    color: var(--w-muted);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    margin: 0;
    text-transform: uppercase;
}

.welcome-kpi-value {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0.35rem 0 0;
}

@media (max-width: 900px) {
    .welcome-grid {
        grid-template-columns: 1fr;
    }

    .welcome-shell {
        padding-top: 1rem;
    }
}
