body {
    min-height: 100vh;
}

.auth-card {
    max-width: 460px;
}

.card {
    border-radius: 1rem;
}

.table-dark {
    --bs-table-bg: #0b0f14;
}

.admin-body .navbar .nav-link.active {
    color: #ffc107;
    font-weight: 700;
}

.form-control,
.form-select {
    background-color: #101820;
    border-color: #38424d;
    color: #fff;
}

.form-control:focus,
.form-select:focus {
    background-color: #101820;
    color: #fff;
    border-color: #ffc107;
    box-shadow: 0 0 0 .25rem rgba(255, 193, 7, .15);
}

.form-control::placeholder {
    color: #8d98a5;
}

.modal {
    --bs-modal-border-radius: 1rem;
}

.badge {
    letter-spacing: .01em;
}


.table td,
.table th {
    vertical-align: middle;
}

.form-text {
    color: #9aa5b1 !important;
}

.btn {
    border-radius: .7rem;
}

.card-header:first-child {
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}


.fixture-card {
    background: linear-gradient(135deg, rgba(255, 193, 7, .06), rgba(255, 255, 255, .02));
}

.table-sm td,
.table-sm th {
    padding: .45rem .55rem;
}

.rounded-4 {
    border-radius: 1rem !important;
}


.debug-box {
    background: #081018;
    border: 1px solid #38424d;
    border-radius: .75rem;
    color: #d8e2ef;
    padding: 1rem;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: .875rem;
}


@media print {
    .navbar,
    .btn,
    .card-header,
    .alert {
        display: none !important;
    }

    body {
        background: #fff !important;
        color: #000 !important;
    }
}

.knockout-helper {
    background: rgba(255, 193, 7, .06);
}



.group-badge {
    letter-spacing: .02em;
}


.prediction-progress {
    height: 1.35rem;
    background-color: #101820;
    border: 1px solid #38424d;
}

.prediction-progress-small {
    height: .6rem;
    background-color: #101820;
    border: 1px solid #38424d;
}

.quick-filter-pills .btn {
    white-space: nowrap;
}


.prediction-lock-note {
    border-left: 4px solid #ffc107;
}


.stage-progress-box {
    background: rgba(255, 255, 255, .03);
}

.alert-info {
    --bs-alert-bg: rgba(13, 202, 240, .12);
    --bs-alert-border-color: rgba(13, 202, 240, .35);
    --bs-alert-color: #d8f6fb;
}


.summary-print-only {
    display: none;
}

@media print {
    .summary-print-only {
        display: block;
    }

    .card {
        break-inside: avoid;
    }

    .table {
        font-size: 11px;
    }
}


.reminder-panel {
    background: rgba(255, 193, 7, .06);
}


.log-diff {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .875rem;
}


.rules-box {
    background: rgba(255, 255, 255, .03);
}


.bulk-save-bar {
    position: sticky;
    top: .75rem;
    z-index: 10;
}

@media (max-width: 767.98px) {
    .bulk-save-bar {
        position: static;
    }
}


.penalty-input-hint {
    font-size: .8rem;
}


.score-detail-table td,
.score-detail-table th {
    vertical-align: middle;
}

@media print {
    .navbar,
    .btn,
    .bulk-save-bar {
        display: none !important;
    }

    body {
        background: #fff !important;
        color: #000 !important;
    }
}


.diagnostic-table td,
.diagnostic-table th {
    vertical-align: middle;
}

.diagnostic-table td:nth-child(4) {
    min-width: 280px;
}

@media print {
    .diagnostic-table {
        font-size: 11px;
    }
}


.league-code {
    letter-spacing: .08em;
    font-weight: 700;
}

.league-card {
    background: rgba(255, 255, 255, .03);
}


.prediction-scope-card {
    background: rgba(255, 193, 7, .06);
}


.general-disabled-note {
    background: rgba(255, 193, 7, .08);
    border: 1px solid rgba(255, 193, 7, .25);
}


.ux-tabs {
    gap: .5rem;
}

.ux-tabs .nav-link {
    border: 1px solid rgba(255,255,255,.14);
    color: rgba(255,255,255,.78);
    background: rgba(0,0,0,.22);
}

.ux-tabs .nav-link.active {
    background: #ffc107;
    color: #111;
    border-color: #ffc107;
    font-weight: 700;
}

.ux-focus-card {
    background: linear-gradient(135deg, rgba(255,193,7,.12), rgba(0,0,0,.35));
}

.admin-hub-card,
.league-card {
    transition: transform .12s ease, border-color .12s ease;
}

.admin-hub-card:hover,
.league-card:hover {
    transform: translateY(-2px);
    border-color: rgba(255,193,7,.55) !important;
}

@media (max-width: 767.98px) {
    .ux-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: .25rem;
    }

    .ux-tabs .nav-link {
        white-space: nowrap;
    }
}


.league-dashboard-row,
.league-stat-card {
    background: rgba(255, 255, 255, .025);
}

.league-progress-mini {
    height: 1.1rem;
}

.league-dashboard-row:hover,
.league-stat-card:hover {
    border-color: rgba(255, 193, 7, .55) !important;
}


.league-tab-section {
    background: rgba(255,255,255,.025);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 1rem;
    padding: 1rem;
}

.quick-action-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.league-progress-mini .progress-bar {
    font-size: .75rem;
}


.result-match-card {
    background: rgba(255,255,255,.025);
}

.result-match-card:hover {
    border-color: rgba(255,193,7,.55) !important;
}

.result-match-card .form-control,
.result-match-card .form-select {
    min-height: 42px;
}


.participants-status-table td,
.participants-status-table th {
    vertical-align: middle;
}

.participant-progress-cell {
    min-width: 180px;
}


.awards-inline-card input::placeholder {
    color: rgba(255,255,255,.35);
}


/* =========================================================
   v1.3.5 - Capa de accesibilidad visual y contraste
   Objetivo: mejorar lectura sobre fondo oscuro.
   ========================================================= */

:root {
    --pm-bg: #07111f;
    --pm-bg-soft: #0d1b2e;
    --pm-bg-card: #12243a;
    --pm-bg-card-2: #162b45;
    --pm-border: #35506d;
    --pm-border-strong: #4f6f92;

    --pm-text: #f6f9fc;
    --pm-text-soft: #d7e3ef;
    --pm-text-muted: #b7c8d9;
    --pm-text-disabled: #8fa4b8;

    --pm-warning: #ffd24a;
    --pm-warning-strong: #ffc107;
    --pm-warning-text: #241800;

    --pm-success: #37d67a;
    --pm-danger: #ff6b6b;
    --pm-info: #65d6ff;

    --pm-input-bg: #ffffff;
    --pm-input-text: #0b1420;
    --pm-input-border: #7d93aa;
}

/* Base */
html,
body {
    background: radial-gradient(circle at top, #10243c 0, var(--pm-bg) 38%, #050b14 100%) !important;
    color: var(--pm-text) !important;
    align-content:center;
    text-align: center;
}

body,
main,
.card,
.modal-content,
.dropdown-menu,
.table,
.form-label,
.form-text,
.nav-link,
p,
li,
td,
th,
span,
div {
    color: var(--pm-text);
}

.text-light-emphasis,
.text-muted,
.small.text-light-emphasis,
.card .text-light-emphasis,
.table .text-light-emphasis {
    color: var(--pm-text-muted) !important;
}

.text-warning {
    color: var(--pm-warning) !important;
}

.lead,
.fw-semibold,
.fw-bold,
h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--pm-text) !important;
}

/* Fondos y tarjetas */
.bg-black,
.bg-dark,
.card.bg-black,
.card.bg-dark,
.modal-content,
.dropdown-menu {
    background-color: var(--pm-bg-card) !important;
}

.card {
    border-color: var(--pm-border) !important;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .24);
}

.card-header,
.border-secondary {
    border-color: var(--pm-border) !important;
}

.card-header {
    background-color: var(--pm-bg-card-2) !important;
    color: var(--pm-text) !important;
}

.ux-focus-card {
    background:
        linear-gradient(135deg, rgba(255, 210, 74, .20), rgba(18, 36, 58, .98)),
        var(--pm-bg-card) !important;
    border-color: rgba(255, 210, 74, .55) !important;
}

/* Formularios */
.form-control,
.form-select,
input,
select,
textarea {
    background-color: var(--pm-input-bg) !important;
    color: var(--pm-input-text) !important;
    border-color: var(--pm-input-border) !important;
}

.form-control:focus,
.form-select:focus,
input:focus,
select:focus,
textarea:focus {
    background-color: #ffffff !important;
    color: #07111f !important;
    border-color: var(--pm-warning) !important;
    box-shadow: 0 0 0 .2rem rgba(255, 210, 74, .25) !important;
}

.form-control::placeholder,
textarea::placeholder {
    color: #607589 !important;
    opacity: 1;
}

.form-control:disabled,
.form-select:disabled,
input:disabled,
textarea:disabled {
    background-color: #dbe4ed !important;
    color: #5d7084 !important;
}

/* Tablas */
.table,
.table-dark {
    --bs-table-bg: var(--pm-bg-card);
    --bs-table-color: var(--pm-text);
    --bs-table-border-color: var(--pm-border);
    --bs-table-striped-bg: #18304d;
    --bs-table-striped-color: var(--pm-text);
    --bs-table-hover-bg: #203b5d;
    --bs-table-hover-color: #ffffff;
    background-color: var(--pm-bg-card) !important;
    color: var(--pm-text) !important;
}

.table thead th {
    background-color: #1b3554 !important;
    color: #ffffff !important;
    border-bottom-color: var(--pm-border-strong) !important;
}

.table td,
.table th {
    color: var(--pm-text) !important;
    border-color: var(--pm-border) !important;
}

.table code,
code {
    color: var(--pm-warning) !important;
    background: rgba(255, 210, 74, .12);
    border: 1px solid rgba(255, 210, 74, .25);
    padding: .12rem .35rem;
    border-radius: .35rem;
}

/* Botones */
.btn-warning {
    background-color: var(--pm-warning) !important;
    border-color: var(--pm-warning) !important;
    color: var(--pm-warning-text) !important;
    font-weight: 700;
}

.btn-warning:hover,
.btn-warning:focus {
    background-color: #ffe07a !important;
    border-color: #ffe07a !important;
    color: #111 !important;
}

.btn-outline-light {
    color: #ffffff !important;
    border-color: #c7d6e5 !important;
}

.btn-outline-light:hover,
.btn-outline-light:focus {
    background-color: #f4f8fc !important;
    color: #07111f !important;
    border-color: #f4f8fc !important;
}

.btn-outline-warning {
    color: var(--pm-warning) !important;
    border-color: var(--pm-warning) !important;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus {
    background-color: var(--pm-warning) !important;
    color: var(--pm-warning-text) !important;
}

/* Badges */
.badge {
    font-weight: 700;
    letter-spacing: .01em;
}

.text-bg-secondary {
    background-color: #445f7b !important;
    color: #ffffff !important;
}

.text-bg-warning {
    background-color: var(--pm-warning) !important;
    color: var(--pm-warning-text) !important;
}

.text-bg-success {
    background-color: #1f9e5a !important;
    color: #ffffff !important;
}

.text-bg-danger {
    background-color: #d64242 !important;
    color: #ffffff !important;
}

.text-bg-info {
    background-color: #167ea3 !important;
    color: #ffffff !important;
}

.text-bg-light {
    background-color: #eef5fb !important;
    color: #07111f !important;
}

/* Alertas */
.alert {
    border-width: 1px;
    font-weight: 500;
}

.alert-warning {
    background-color: #fff1bd !important;
    border-color: #ffd24a !important;
    color: #2a1b00 !important;
}

.alert-warning *,
.alert-warning .alert-link {
    color: #2a1b00 !important;
}

.alert-danger {
    background-color: #ffe1e1 !important;
    border-color: #ff8f8f !important;
    color: #3a0000 !important;
}

.alert-danger * {
    color: #3a0000 !important;
}

.alert-success {
    background-color: #dff8ea !important;
    border-color: #37d67a !important;
    color: #033918 !important;
}

.alert-success * {
    color: #033918 !important;
}

.alert-info,
.alert-secondary {
    background-color: #dbeaf8 !important;
    border-color: #8fb4d8 !important;
    color: #071b31 !important;
}

.alert-info *,
.alert-secondary * {
    color: #071b31 !important;
}

/* Navegación */
.navbar,
.navbar.bg-black,
.navbar.bg-dark {
    background-color: #07111f !important;
    border-bottom: 1px solid var(--pm-border);
}

.navbar .nav-link,
.navbar-brand,
.navbar a {
    color: #f6f9fc !important;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: var(--pm-warning) !important;
}

.ux-tabs .nav-link,
.nav-pills .nav-link {
    color: var(--pm-text-soft) !important;
    border-color: var(--pm-border) !important;
    background: #10243a !important;
}

.ux-tabs .nav-link:hover,
.nav-pills .nav-link:hover {
    color: #ffffff !important;
    background: #1d395a !important;
}

.ux-tabs .nav-link.active,
.nav-pills .nav-link.active {
    background: var(--pm-warning) !important;
    color: var(--pm-warning-text) !important;
    border-color: var(--pm-warning) !important;
}

/* Progreso */
.progress,
.prediction-progress {
    background-color: #31465f !important;
    border: 1px solid #4d6682;
}

.progress-bar {
    background-color: var(--pm-warning) !important;
    color: var(--pm-warning-text) !important;
    font-weight: 800;
}

/* Bloques específicos */
.stage-progress-box,
.rules-box,
.league-dashboard-row,
.league-stat-card,
.result-match-card,
.league-tab-section {
    background-color: rgba(255, 255, 255, .045) !important;
    border-color: var(--pm-border) !important;
    color: var(--pm-text) !important;
}

.stage-progress-box:hover,
.rules-box:hover,
.league-dashboard-row:hover,
.league-stat-card:hover,
.result-match-card:hover,
.league-tab-section:hover {
    border-color: rgba(255, 210, 74, .65) !important;
}

/* Enlaces */
a {
    color: #8bd6ff;
}

a:hover {
    color: #c5ecff;
}

.card a:not(.btn),
.table a:not(.btn) {
    color: #9fddff;
    text-decoration-thickness: .08em;
}

.card a:not(.btn):hover,
.table a:not(.btn):hover {
    color: #d8f3ff;
}

/* Listas y desplegables */
.dropdown-item {
    color: var(--pm-text) !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: #1d395a !important;
    color: #ffffff !important;
}

/* Utilidades de impresión: mantener legible */
@media print {
    body,
    .card,
    .table {
        background: #ffffff !important;
        color: #000000 !important;
    }

    .table td,
    .table th,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    p,
    div,
    span {
        color: #000000 !important;
    }
}
