body {
    padding-top: 70px;
}

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

/* ===== Button contrast overrides (WCAG AA) ===== */
/* Bootstrap btn-warning uses #ffc107 with light text → fails contrast.
   Use deeper amber so white text stays readable. */
.btn-warning {
    color: #fff;
    background-color: #d97706;
    border-color: #d97706;
}
.btn-warning:hover,
.btn-warning:focus,
.btn-warning.focus {
    color: #fff;
    background-color: #b45309;
    border-color: #a3470a;
    box-shadow: 0 0 0 0.2rem rgba(217, 119, 6, 0.35);
}
.btn-warning:not(:disabled):not(.disabled):active,
.btn-warning:not(:disabled):not(.disabled).active,
.show > .btn-warning.dropdown-toggle {
    color: #fff;
    background-color: #a3470a;
    border-color: #92410a;
}

.btn-outline-warning {
    color: #b45309;
    border-color: #d97706;
}
.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning.focus {
    color: #fff;
    background-color: #d97706;
    border-color: #d97706;
    box-shadow: 0 0 0 0.2rem rgba(217, 119, 6, 0.35);
}
.btn-outline-warning:not(:disabled):not(.disabled):active,
.btn-outline-warning:not(:disabled):not(.disabled).active,
.show > .btn-outline-warning.dropdown-toggle {
    color: #fff;
    background-color: #b45309;
    border-color: #b45309;
}

/* ===== Page header polish (BS5 utility shim for BS4) ===== */
/* gap-*, flex-md-*, ms-*, me-* aren't in BS4 — emulate via CSS gap */
.page-header {
    flex-wrap: wrap;
    gap: 0.75rem;
    row-gap: 0.75rem;
}
.page-header h2 {
    margin-bottom: 0;
    flex: 0 0 auto;
}
.page-header-actions {
    gap: 0.5rem;
    row-gap: 0.5rem;
    flex-wrap: wrap;
}
.page-header-actions .btn {
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.page-header-actions .btn > i {
    line-height: 1;
}

/* ===== Badge readability fixes ===== */
/* BS4 .badge.bg-info inherits dark text → cyan-on-cyan. Force light text. */
.badge.bg-info,
.badge.bg-primary,
.badge.bg-success,
.badge.bg-danger,
.badge.bg-secondary,
.badge.bg-dark {
    color: #fff;
}
.badge.bg-info {
    background-color: #0e7490 !important;
}
.badge.bg-warning {
    color: #212529;
}
/* Event-link badges: add subtle padding + hover */
a.badge {
    transition: filter 0.15s ease, transform 0.15s ease;
}
a.badge:hover {
    filter: brightness(1.1);
    text-decoration: none;
}

/* Action button group inside table cells: keep consistent inline spacing */
td > .d-flex.gap-1 {
    gap: 0.25rem;
}

/* ===== btn-info contrast (cyan #17a2b8 + white text fails WCAG AA) ===== */
.btn-info {
    color: #fff;
    background-color: #0e7490;
    border-color: #0e7490;
}
.btn-info:hover,
.btn-info:focus,
.btn-info.focus {
    color: #fff;
    background-color: #155e75;
    border-color: #134e63;
    box-shadow: 0 0 0 0.2rem rgba(14, 116, 144, 0.35);
}
.btn-info:not(:disabled):not(.disabled):active,
.btn-info:not(:disabled):not(.disabled).active,
.show > .btn-info.dropdown-toggle {
    color: #fff;
    background-color: #134e63;
    border-color: #134e63;
}

.btn-outline-info {
    color: #0e7490;
    border-color: #0e7490;
}
.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-outline-info.focus {
    color: #fff;
    background-color: #0e7490;
    border-color: #0e7490;
    box-shadow: 0 0 0 0.2rem rgba(14, 116, 144, 0.35);
}
.btn-outline-info:not(:disabled):not(.disabled):active,
.btn-outline-info:not(:disabled):not(.disabled).active,
.show > .btn-outline-info.dropdown-toggle {
    color: #fff;
    background-color: #134e63;
    border-color: #134e63;
}

/* ===== btn-outline-light: gray text on white fails contrast ===== */
.btn-outline-light {
    color: #495057;
    border-color: #ced4da;
}
.btn-outline-light:hover {
    color: #212529;
    background-color: #f8f9fa;
    border-color: #adb5bd;
}

/* ===== Table-responsive: kill phantom horizontal scrollbar on desktop ===== */
/* BS4 .table-responsive forces overflow-x: auto always, causing a 1-2px
   ghost scroll when content fits. Only enable scroll on tablet/mobile. */
@media (min-width: 992px) {
    .table-responsive {
        overflow-x: visible;
    }
}

/* ===== Pagination polish ===== */
.pagination {
    gap: 0.25rem;
    flex-wrap: wrap;
}
.pagination .page-link {
    border-radius: 0.25rem;
    border: 1px solid #dee2e6;
    color: #0e7490;
}
.pagination .page-item.active .page-link {
    background-color: #0e7490;
    border-color: #0e7490;
    color: #fff;
}
.pagination .page-link:hover {
    background-color: #f1f5f9;
    color: #134e63;
}


/* Мобильная адаптация */
@media (max-width: 575.98px) {
    .page-header {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 0.75rem;
    }

    .page-header h2 {
        font-size: 1.25rem;
    }

    .page-header-actions {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .page-header-actions .btn {
        font-size: 0.8rem;
        padding: 0.25rem 0.5rem;
    }

    .card-header .d-flex {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .btn-group.flex-wrap .btn {
        font-size: 0.75rem;
        padding: 0.2rem 0.4rem;
    }

    .badge.fs-5 {
        font-size: 0.85rem !important;
    }

    .badge.fs-6 {
        font-size: 0.75rem !important;
    }

    h2 {
        font-size: 1.3rem;
    }

    h3 {
        font-size: 1.15rem;
    }

    h4 {
        font-size: 1.05rem;
    }

    .form-control, .form-select {
        font-size: 0.9rem;
    }

    .card-body {
        padding: 0.75rem;
    }

    .table {
        font-size: 0.85rem;
    }

    .table th, .table td {
        padding: 0.4rem 0.3rem;
    }

    .col-md-3 .card h3 {
        font-size: 1.5rem;
    }

    .col-md-3 .card h5 {
        font-size: 0.8rem;
    }

    .display-4 {
        font-size: 1.8rem;
    }

    .card-footer .btn-group .btn {
        font-size: 0.7rem;
        padding: 0.2rem 0.35rem;
    }

    .card-footer .btn-group {
        flex-wrap: wrap;
    }

    .table .btn-group .btn {
        font-size: 0.7rem;
        padding: 0.15rem 0.3rem;
    }
}
