/* Homogeneizacion visual de controles en la gestion de torneos.
   Se carga al final para normalizar botones y busquedas sin tocar logica. */

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) {
    --tournament-control-height: 2.25rem;
    --tournament-control-radius: .9rem;
    --tournament-control-padding-x: .82rem;
    --tournament-tabs-content-gap: 1rem;
}

/* Separacion estable entre la navegacion principal y el contenido de cada pestana. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .nav.nav-tabs.mb-3.torneo-main-tabs {
    margin-bottom: var(--tournament-tabs-content-gap) !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .torneo-main-tabs + .d-md-none.mb-3 {
    margin: 0 !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .panel-control-toolbar,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .torneo-ronda-toolbar,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-sport__toolbar,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-toolbar,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .torneo-comunicaciones-shell,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .incidencias-layout,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .datos-generales-grid {
    margin-top: 0 !important;
}

/* Retira de la interfaz las acciones legacy de Parejas. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) div.mt-2.d-flex.gap-2.flex-wrap:has(button[title="Reenganchar pareja eliminada de Grupo B"]),
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) div.mt-2.d-flex.gap-2.flex-wrap:has(button[title="TsbCobrar: Marcar pareja como pagada"]) {
    display: none !important;
    margin: 0 !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) button[title="Reenganchar pareja eliminada de Grupo B"],
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) button[title="TsbCobrar: Marcar pareja como pagada"] {
    display: none !important;
}

/* Botones de accion: igualar alto y radio al selector Grupo A / Grupo B. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .btn:not(.btn-close),
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .e-btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) button.tournament-action-button,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) button.clasificacion-chip,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) button.tournament-segmented-tab,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-toolbar-actions .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-action-group .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-vista-dropdown,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .torneo-ronda-actions .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .panel-control-actions .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .datos-generales-actions .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .incidencias-form-actions .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-toolbar-button,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-pay-action,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .participante-pay-button,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .mobile-action-btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .desktop-action-btn {
    align-items: center;
    border-radius: var(--tournament-control-radius) !important;
    display: inline-flex;
    justify-content: center;
    min-height: var(--tournament-control-height) !important;
    padding-block: .28rem !important;
    padding-inline: var(--tournament-control-padding-x) !important;
}

/* Desktop y mobile deben tener el mismo lenguaje: botones compactos, pero no comprimidos. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-toolbar-actions .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-vista-dropdown,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .torneo-ronda-actions .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .panel-control-actions .btn,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-toolbar-button,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-pay-action {
    height: var(--tournament-control-height) !important;
    line-height: 1 !important;
}

/* Ajuste final de mesas de ronda: alinear cabecera y fijar sombreado interno. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .ronda-mesa-card {
    --ronda-row-bg: #090909;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .ronda-mesa-header,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .ronda-header-actions {
    align-items: center !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .ronda-mesa-num {
    align-self: center;
    margin-left: 1.04rem;
    margin-top: 0 !important;
}

@media (max-width: 419.98px) {
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .ronda-mesa-num {
        margin-left: .92rem;
    }
}

/* Preservar el contenedor segmentado como una sola pastilla con esquinas externas coherentes. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-group-tabs,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tournament-segmented-tabs {
    border-radius: var(--tournament-control-radius) !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-group-tabs .clasificacion-chip,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tournament-segmented-tabs .tournament-segmented-tab {
    border-radius: 0 !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-group-tabs .clasificacion-chip:first-child,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tournament-segmented-tabs .tournament-segmented-tab:first-child {
    border-bottom-left-radius: var(--tournament-control-radius) !important;
    border-top-left-radius: var(--tournament-control-radius) !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-group-tabs .clasificacion-chip:last-child,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tournament-segmented-tabs .tournament-segmented-tab:last-child {
    border-bottom-right-radius: var(--tournament-control-radius) !important;
    border-top-right-radius: var(--tournament-control-radius) !important;
}

/* Busquedas y campos compactos de formulario: mismo alto/radio que los botones de grupo. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) input.form-control:not([type="checkbox"]):not([type="radio"]),
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) input[type="search"],
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .form-select,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .search-input,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .quick-search-input,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .torneo-search-input,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .participantes-search,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-search,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-search-shell,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-search-input,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .e-input-group,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .e-control-wrapper {
    border-radius: var(--tournament-control-radius) !important;
    min-height: var(--tournament-control-height) !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) input.form-control:not([type="checkbox"]):not([type="radio"]),
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) input[type="search"],
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .form-select,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-search-shell {
    padding-block: .28rem !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-search-shell {
    padding-inline: var(--tournament-control-padding-x) !important;
}

body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-search-input {
    border-radius: calc(var(--tournament-control-radius) - 2px) !important;
    min-height: calc(var(--tournament-control-height) - 2px) !important;
}

/* Textareas mantienen altura propia, pero adoptan el mismo redondeado para coherencia. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) textarea.form-control,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .torneo-comunicaciones-message,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .incidencias-descripcion {
    border-radius: var(--tournament-control-radius) !important;
}

/* Syncfusion: alinear input interno e iconos al alto normalizado. */
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .e-input-group .e-input,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .e-control-wrapper .e-input,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .e-input-group .e-input-group-icon,
body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .e-control-wrapper .e-input-group-icon {
    min-height: calc(var(--tournament-control-height) - 2px) !important;
}

@media (max-width: 767.98px) {
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) {
        --tournament-control-height: 2.25rem;
        --tournament-control-radius: .9rem;
        --tournament-control-padding-x: .78rem;
        --tournament-tabs-content-gap: 1rem;
    }

    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .btn:not(.btn-close),
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .e-btn,
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) button.tournament-action-button,
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-toolbar-actions .btn,
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .clasificacion-vista-dropdown,
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-pay-action,
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .participante-pay-button,
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .mobile-action-btn,
    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .desktop-action-btn {
        min-height: var(--tournament-control-height) !important;
    }

    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-operational-toolbar__actions {
        display: grid !important;
        gap: .35rem !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        width: 100% !important;
    }

    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-operational-toolbar__actions .btn {
        min-width: 0 !important;
        padding-inline: .28rem !important;
        width: 100% !important;
    }

    body:has(.nav.nav-tabs.mb-3.torneo-main-tabs) .tpg-operational-toolbar__actions .btn i {
        display: none !important;
    }
}
