/**
 * Overrides de AdminLTE, Bootstrap, Select2, intl-tel-input. Uses design tokens.
 */

/* Layout app (AdminLTE) */
.app-content-header {
    padding: 0.5rem 0 !important;
}

.app-main {
    padding-top: 0 !important;
}

/*
 * Admin shell: viewport fijo; título/filtros fijos; la tabla llena el resto
 * y hace scroll interno (sin scroll de página completa).
 */
html:has(.app-wrapper.admin-shell),
body:has(.app-wrapper.admin-shell) {
    height: 100%;
    overflow: hidden !important;
}

.app-wrapper.admin-shell {
    height: 100dvh !important;
    max-height: 100dvh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
    grid-template-rows: min-content 1fr !important;
    grid-template-areas:
        "lte-app-sidebar lte-app-header"
        "lte-app-sidebar lte-app-main" !important;
}

/* Sidebar: marca fija + menú con scroll propio */
.app-wrapper.admin-shell .app-sidebar {
    align-self: stretch;
    height: 100% !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}

.app-wrapper.admin-shell .app-sidebar .sidebar-brand {
    flex: 0 0 auto;
}

.app-wrapper.admin-shell .app-sidebar .sidebar-wrapper {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}

.app-wrapper.admin-shell .app-main {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    padding-bottom: 0 !important;
}

.app-wrapper.admin-shell .app-content-header {
    flex: 0 0 auto;
}

.app-wrapper.admin-shell .app-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
}

.app-wrapper.admin-shell .app-content > .container-fluid {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.app-wrapper.admin-shell .admin-content-row {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap !important;
    overflow: hidden;
    --bs-gutter-y: 0.5rem;
}

/* Formularios / páginas sin tabla fill: scroll vertical del contenido */
.app-wrapper.admin-shell .admin-content-row:not(:has(.admin-fill-main)) {
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: 0.75rem;
}

.app-wrapper.admin-shell .admin-content-row > [class*="col-"],
.app-wrapper.admin-shell .admin-content-row > .card {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
}

.app-wrapper.admin-shell .admin-fill-main {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.app-wrapper.admin-shell .admin-fill-main > .card {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    margin-bottom: 0 !important;
}

.app-wrapper.admin-shell #table-container {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.app-wrapper.admin-shell #table-container > .table-responsive {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto !important;
}

.app-wrapper.admin-shell #table-container > .card-body.table-responsive {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto !important;
}

.app-wrapper.admin-shell #table-container > #payout-items-table {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.app-wrapper.admin-shell #payout-items-table > .table-responsive {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto !important;
}

.app-wrapper.admin-shell #payout-items-table > .card-footer {
    flex: 0 0 auto;
}

.app-wrapper.admin-shell #table-container > .card-footer {
    flex: 0 0 auto;
}

.app-wrapper.admin-shell .admin-fill-main > .card > .table-responsive,
.app-wrapper.admin-shell .admin-fill-main > .card > .card-body.table-responsive {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto !important;
}

.app-wrapper.admin-shell .admin-fill-main > .card > .card-footer {
    flex: 0 0 auto;
}

.app-wrapper.admin-shell .admin-fill-main > .card > .card-header,
.app-wrapper.admin-shell .admin-fill-main > .card > .admin-fill-chrome {
    flex: 0 0 auto;
}

.app-wrapper.admin-shell .admin-fill-main > .card > .admin-fill-scroll,
.app-wrapper.admin-shell .admin-fill-main > .card > #table-container.admin-fill-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
}

.app-wrapper.admin-shell .admin-fill-main > .card > .admin-fill-scroll > .table-responsive,
.app-wrapper.admin-shell #table-container.admin-fill-scroll > .table-responsive {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto !important;
}

h3.mb-2.mt-1 {
    margin-top: 0 !important;
}

/* Select2 tema Bootstrap 5 */
.select2-container--bootstrap-5.select2-container--open .select2-selection {
    box-shadow: none !important;
    border-color: var(--border-form) !important;
}

/* intl-tel-input */
#id_phone {
    display: none;
}

.iti {
    width: 100%;
}

.iti input {
    width: 100%;
}

.iti__country-list {
    z-index: 1055 !important;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type=number] {
    -moz-appearance: textfield;
}

.is-invalid-wrapper {
    border: 1px solid var(--color-danger);
    border-radius: var(--radius-md);
}

.is-invalid-wrapper .iti__flag-container {
    height: 100%;
}

/* Modal (Bootstrap) */
.modal-backdrop {
    background-color: var(--text-primary);
}

.modal-backdrop.show {
    opacity: 0.75;
}
