/**
 * Phyzioline shared pagination — used by Bootstrap 5 Paginator views
 * Loaded on public site + dashboard so every .links() call inherits the look.
 */
.phy-pagination {
    --phy-page-brand: #02767f;
    --phy-page-brand-dark: #015c63;
    --phy-page-border: #dbe3ea;
    --phy-page-muted: #64748b;
    --phy-page-surface: #ffffff;
    width: 100%;
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
}

.phy-pagination__desktop {
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.phy-pagination__summary {
    color: var(--phy-page-muted);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
}

.phy-pagination__summary strong {
    color: #0f172a;
    font-weight: 700;
}

.phy-pagination__list.pagination {
    --bs-pagination-padding-x: 0;
    --bs-pagination-padding-y: 0;
    --bs-pagination-font-size: 0.9rem;
    --bs-pagination-color: var(--phy-page-brand);
    --bs-pagination-bg: var(--phy-page-surface);
    --bs-pagination-border-width: 1px;
    --bs-pagination-border-color: var(--phy-page-border);
    --bs-pagination-border-radius: 12px;
    --bs-pagination-hover-color: #fff;
    --bs-pagination-hover-bg: var(--phy-page-brand);
    --bs-pagination-hover-border-color: var(--phy-page-brand);
    --bs-pagination-focus-color: #fff;
    --bs-pagination-focus-bg: var(--phy-page-brand);
    --bs-pagination-focus-box-shadow: 0 0 0 3px rgba(2, 118, 127, 0.2);
    --bs-pagination-active-color: #fff;
    --bs-pagination-active-bg: var(--phy-page-brand);
    --bs-pagination-active-border-color: var(--phy-page-brand);
    --bs-pagination-disabled-color: #94a3b8;
    --bs-pagination-disabled-bg: #f8fafc;
    --bs-pagination-disabled-border-color: var(--phy-page-border);
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
}

.phy-pagination__list .page-item {
    margin: 0;
}

.phy-pagination__list .page-link {
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px !important;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.phy-pagination__list .page-item:not(.disabled):not(.active) .page-link:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(2, 118, 127, 0.18);
}

.phy-pagination__list .page-item.active .page-link {
    box-shadow: 0 8px 18px rgba(2, 118, 127, 0.28);
}

.phy-pagination__list .page-item.disabled .page-link {
    box-shadow: none;
    opacity: 0.75;
}

.phy-pagination__list .page-link i {
    font-size: 1rem;
    line-height: 1;
}

.phy-pagination__ellipsis {
    letter-spacing: 0.08em;
}

.phy-pagination__mobile {
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.phy-pagination__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 42px;
    padding: 8px 14px;
    border-radius: 12px;
    border: 1px solid var(--phy-page-border);
    background: var(--phy-page-surface);
    color: var(--phy-page-brand);
    font-size: 0.875rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

a.phy-pagination__btn:hover {
    background: var(--phy-page-brand);
    border-color: var(--phy-page-brand);
    color: #fff;
}

.phy-pagination__btn.is-disabled {
    color: #94a3b8;
    background: #f8fafc;
    pointer-events: none;
}

.phy-pagination__mobile-status {
    font-size: 0.875rem;
    font-weight: 700;
    color: #0f172a;
    background: #f1f5f9;
    border-radius: 999px;
    padding: 6px 12px;
    white-space: nowrap;
}

/* Fallback for pages that still render raw Bootstrap pagination without wrapper */
nav:not(.phy-pagination) > .d-none.d-sm-flex .pagination,
.pagination-wrapper .pagination,
.pagination-wrapper-fix .pagination {
    --bs-pagination-color: #02767f;
    --bs-pagination-hover-color: #fff;
    --bs-pagination-hover-bg: #02767f;
    --bs-pagination-hover-border-color: #02767f;
    --bs-pagination-focus-color: #fff;
    --bs-pagination-focus-bg: #02767f;
    --bs-pagination-focus-box-shadow: 0 0 0 3px rgba(2, 118, 127, 0.2);
    --bs-pagination-active-color: #fff;
    --bs-pagination-active-bg: #02767f;
    --bs-pagination-active-border-color: #02767f;
    gap: 6px;
}

nav:not(.phy-pagination) > .d-none.d-sm-flex .pagination .page-link,
.pagination-wrapper .pagination .page-link,
.pagination-wrapper-fix .pagination .page-link {
    min-width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px !important;
    font-weight: 700;
}

.pagination-wrapper {
    margin-top: 2rem;
    display: flex;
    justify-content: center;
    width: 100%;
}

.pagination-wrapper .phy-pagination {
    max-width: 100%;
}

@media (max-width: 575.98px) {
    .phy-pagination__btn {
        flex: 1 1 0;
        min-width: 0;
    }
}
