/*
  Estándar de botones IGIM Financiero Web
  ---------------------------------------
  Primario   → acción principal (Guardar, Consultar, Procesar, Ingresar)
  Secundario → acción alternativa neutra (Cancelar, Exportar, auxiliares)
  Contorno   → herramientas de barra (Columnas, paginación, refrescar)
  Peligro    → acciones de riesgo o recuperación
  Inverso    → menú lateral oscuro (Reintentar)
*/

:root {
    --igim-btn-height: 2.125rem;
    --igim-btn-height-sm: 1.875rem;
    --igim-btn-height-lg: 2.5rem;
    --igim-btn-padding-x: 1rem;
    --igim-btn-padding-x-sm: 0.75rem;
    --igim-btn-padding-x-lg: 1.25rem;
    --igim-btn-font-size: 0.875rem;
    --igim-btn-font-size-sm: 0.8125rem;
    --igim-btn-font-size-lg: 0.9375rem;
    --igim-btn-radius: 0.375rem;
    --igim-btn-font-weight: 600;
    --igim-btn-line-height: 1.25;
    --igim-btn-gap: 0.45rem;
    --igim-btn-primary-bg: var(--shell-dark, #0b4f8a);
    --igim-btn-primary-border: var(--shell-dark, #0b4f8a);
    --igim-btn-primary-text: #ffffff;
    --igim-btn-primary-hover-bg: var(--shell-sidebar-deep, #08365f);
    --igim-btn-primary-hover-border: var(--shell-sidebar-deep, #08365f);
    --igim-btn-secondary-bg: #ffffff;
    --igim-btn-secondary-border: #ced4da;
    --igim-btn-secondary-text: #495057;
    --igim-btn-secondary-hover-bg: #f8f9fa;
    --igim-btn-secondary-hover-border: #adb5bd;
    --igim-btn-outline-bg: #ffffff;
    --igim-btn-outline-border: #ced4da;
    --igim-btn-outline-text: #495057;
    --igim-btn-outline-hover-bg: #f8f9fa;
    --igim-btn-outline-hover-border: #adb5bd;
    --igim-btn-danger-text: #b42318;
    --igim-btn-danger-border: #f1aeb5;
    --igim-btn-danger-bg: #ffffff;
    --igim-btn-danger-hover-bg: #b42318;
    --igim-btn-danger-hover-border: #b42318;
    --igim-btn-danger-hover-text: #ffffff;
    --igim-btn-inverse-text: rgba(255, 255, 255, 0.92);
    --igim-btn-inverse-border: rgba(255, 255, 255, 0.55);
    --igim-btn-inverse-bg: transparent;
    --igim-btn-inverse-hover-bg: rgba(255, 255, 255, 0.12);
    --igim-btn-inverse-hover-border: rgba(255, 255, 255, 0.85);
    --igim-btn-disabled-opacity: 0.65;
    --igim-btn-focus-ring: 0 0 0 0.2rem color-mix(in srgb, var(--igim-ui-accent, #f58220) 28%, transparent);
}

/* Base */
.igim-btn,
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--igim-btn-gap);
    min-height: var(--igim-btn-height);
    padding: 0 var(--igim-btn-padding-x);
    border: 1px solid transparent;
    border-radius: var(--igim-btn-radius);
    font-family: inherit;
    font-size: var(--igim-btn-font-size);
    font-weight: var(--igim-btn-font-weight);
    line-height: var(--igim-btn-line-height);
    text-decoration: none;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.igim-btn:disabled,
.btn:disabled,
.igim-btn.disabled,
.btn.disabled {
    opacity: var(--igim-btn-disabled-opacity);
    cursor: not-allowed;
    pointer-events: none;
}

.igim-btn:focus,
.btn:focus {
    outline: none;
}

.igim-btn:focus-visible,
.btn:focus-visible {
    box-shadow: var(--igim-btn-focus-ring);
}

/* Tamaños */
.igim-btn--sm,
.btn-sm {
    min-height: var(--igim-btn-height-sm);
    padding: 0 var(--igim-btn-padding-x-sm);
    font-size: var(--igim-btn-font-size-sm);
}

.igim-btn--lg,
.btn-lg {
    min-height: var(--igim-btn-height-lg);
    padding: 0 var(--igim-btn-padding-x-lg);
    font-size: var(--igim-btn-font-size-lg);
}

.igim-btn--block,
.btn.w-100 {
    width: 100%;
}

/* Primario */
.igim-btn--primary,
.btn-primary {
    color: var(--igim-btn-primary-text) !important;
    background-color: var(--igim-btn-primary-bg) !important;
    border-color: var(--igim-btn-primary-border) !important;
}

.igim-btn--primary:hover:not(:disabled),
.btn-primary:hover:not(:disabled) {
    color: var(--igim-btn-primary-text) !important;
    background-color: var(--igim-btn-primary-hover-bg) !important;
    border-color: var(--igim-btn-primary-hover-border) !important;
}

.igim-btn--primary:active:not(:disabled),
.btn-primary:active:not(:disabled) {
    filter: brightness(0.96);
}

/* Secundario / contorno neutro */
.igim-btn--secondary,
.igim-btn--outline,
.btn-outline-secondary,
.btn-outline-primary {
    color: var(--igim-btn-outline-text) !important;
    background-color: var(--igim-btn-outline-bg) !important;
    border-color: var(--igim-btn-outline-border) !important;
}

.igim-btn--secondary:hover:not(:disabled),
.igim-btn--outline:hover:not(:disabled),
.btn-outline-secondary:hover:not(:disabled),
.btn-outline-primary:hover:not(:disabled) {
    color: var(--igim-btn-outline-text) !important;
    background-color: var(--igim-btn-outline-hover-bg) !important;
    border-color: var(--igim-btn-outline-hover-border) !important;
}

/* Peligro */
.igim-btn--danger,
.btn-outline-danger {
    color: var(--igim-btn-danger-text) !important;
    background-color: var(--igim-btn-danger-bg) !important;
    border-color: var(--igim-btn-danger-border) !important;
}

.igim-btn--danger:hover:not(:disabled),
.btn-outline-danger:hover:not(:disabled) {
    color: var(--igim-btn-danger-hover-text) !important;
    background-color: var(--igim-btn-danger-hover-bg) !important;
    border-color: var(--igim-btn-danger-hover-border) !important;
}

/* Menú lateral oscuro */
.igim-btn--inverse,
.app-sidebar .btn-outline-light,
.nav-menu-shell .btn-outline-light {
    color: var(--igim-btn-inverse-text) !important;
    background-color: var(--igim-btn-inverse-bg) !important;
    border-color: var(--igim-btn-inverse-border) !important;
}

.igim-btn--inverse:hover:not(:disabled),
.app-sidebar .btn-outline-light:hover:not(:disabled),
.nav-menu-shell .btn-outline-light:hover:not(:disabled) {
    color: #ffffff !important;
    background-color: var(--igim-btn-inverse-hover-bg) !important;
    border-color: var(--igim-btn-inverse-hover-border) !important;
}

/* Compatibilidad perfil (cambio fecha / contraseña) */
.perfil-boton {
    min-width: 7.5rem;
}

.perfil-boton-principal {
    color: var(--igim-btn-primary-text) !important;
    background: var(--igim-btn-primary-bg) !important;
    border-color: var(--igim-btn-primary-border) !important;
}

.perfil-boton-principal:hover:not(:disabled) {
    background: var(--igim-btn-primary-hover-bg) !important;
    border-color: var(--igim-btn-primary-hover-border) !important;
}

.perfil-boton-secundario {
    color: var(--igim-btn-outline-text) !important;
    background: var(--igim-btn-outline-bg) !important;
    border-color: var(--igim-btn-outline-border) !important;
}

.perfil-boton-secundario:hover:not(:disabled) {
    background: var(--igim-btn-outline-hover-bg) !important;
    border-color: var(--igim-btn-outline-hover-border) !important;
}

/* Login */
.login-submit,
.igim-aviso-inactividad-boton {
    color: var(--igim-btn-primary-text);
    background: var(--igim-btn-primary-bg);
    border: 1px solid var(--igim-btn-primary-border);
    border-radius: var(--igim-btn-radius);
    font-weight: var(--igim-btn-font-weight);
}

.login-submit:hover:not(:disabled),
.igim-aviso-inactividad-boton:hover {
    background: var(--igim-btn-primary-hover-bg);
    border-color: var(--igim-btn-primary-hover-border);
}

.login-submit:focus-visible,
.igim-aviso-inactividad-boton:focus-visible {
    box-shadow: var(--igim-btn-focus-ring);
}

/* Barras de herramientas de reportes */
.report-actions-menus .report-toolbar-btn,
.cartera-filter-actions .report-toolbar-btn,
.ccs-filter-actions .report-toolbar-btn,
.exportacion-excel-toolbar-actions .btn {
    min-height: var(--igim-btn-height);
    height: var(--igim-btn-height);
    padding: 0 0.85rem;
    font-size: var(--igim-btn-font-size);
    font-weight: var(--igim-btn-font-weight);
}

.report-actions-menus .report-toolbar-btn,
.cartera-filter-actions .report-toolbar-btn,
.ccs-filter-actions .report-toolbar-btn {
    min-width: 10.25rem;
}

.ccs-filter-actions .ccs-btn-visualizar {
    min-width: 6.75rem;
}

.report-actions-menus .report-toolbar-btn:focus,
.report-actions-menus .report-toolbar-btn:active:focus,
.cartera-filter-actions .report-toolbar-btn:focus,
.cartera-filter-actions .report-toolbar-btn:active:focus,
.ccs-filter-actions .report-toolbar-btn:focus,
.ccs-filter-actions .report-toolbar-btn:active:focus {
    outline: none;
    box-shadow: none;
}

.report-actions-menus .report-toolbar-btn:focus-visible,
.cartera-filter-actions .report-toolbar-btn:focus-visible,
.ccs-filter-actions .report-toolbar-btn:focus-visible {
    box-shadow: var(--igim-btn-focus-ring);
}

.report-actions-menus .report-toolbar-btn[aria-expanded="true"],
.cartera-filter-actions .report-toolbar-btn[aria-expanded="true"],
.ccs-filter-actions .report-toolbar-btn[aria-expanded="true"] {
    background-color: var(--igim-btn-outline-hover-bg) !important;
    border-color: var(--igim-btn-outline-hover-border) !important;
}

.report-actions-menus .report-toolbar-btn .bi:first-child,
.cartera-filter-actions .report-toolbar-btn .bi:first-child,
.ccs-filter-actions .report-toolbar-btn .bi:first-child {
    font-size: 1rem;
    flex-shrink: 0;
}

/* Grupo de acciones alineado a la derecha */
.igim-btn-group,
.perfil-acciones,
.exportacion-excel-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.perfil-acciones,
.exportacion-excel-toolbar-actions {
    justify-content: flex-end;
}
