/* Shared readability and interaction rules, loaded after the regional theme. */
:root {
    --fs-xs: .8125rem;
    --fs-sm: .9375rem;
    --fs-md: 1rem;
}
html { font-size: 16px; }
body { line-height: 1.6; }
p, li, td, th, span, div { font-size: inherit; }
.table th, .table td { font-size: .9375rem; }
.form-control, .form-select { font-size: 1rem; min-height: 44px; }
.form-label, label, .btn, .nav-link { font-size: .9375rem; }
.btn, .icon-btn, .navbar-toggler { min-height: 44px; }
.icon-btn, .navbar-toggler { min-width: 44px; }
.form-control::placeholder { color: #b9c5d6; opacity: 1; }
.form-text { color: #d0d9e6; font-size: .875rem; }
.photo-edit-badge { pointer-events: none; }
.profile-photo-picker:has(+ input:focus-visible) { outline: 3px solid var(--gold-2); outline-offset: 4px; }
.field-validation-error, .validation-summary-errors { color: #ffb4b4 !important; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible {
    outline: 3px solid var(--gold-2);
    outline-offset: 4px;
}
[id] { scroll-margin-top: 8rem; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 2000; padding: .75rem 1rem; background: #f1d295; color: #081120; border-radius: .5rem; }
.skip-link:focus { top: 1rem; }
.navbar .nav-link[aria-current="page"] { color: var(--gold-2); background: rgba(212,166,77,.13); border-radius: .6rem; text-decoration: underline; text-underline-offset: .4em; }
.navbar-brand { min-width: 0; white-space: normal; }
.password-field { display: flex; gap: .5rem; align-items: stretch; }
.password-field .form-control { min-width: 0; }
.password-field button { flex-shrink: 0; }
.profile-section-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.profile-section-nav a { display: flex; gap: .5rem; align-items: center; padding: .65rem .8rem; border: 1px solid var(--glass-border); border-radius: .75rem; color: var(--text); text-decoration: none; }
.profile-section-nav a:hover { background: rgba(212,166,77,.13); }
.profile-section-nav small { color: var(--gold-2); }
.profile-save-bar { position: sticky; bottom: .5rem; z-index: 1010; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem; background: #132743; border: 1px solid var(--glass-border); border-radius: 1rem; box-shadow: 0 -4px 20px rgba(0,0,0,.25); }
.profile-save-bar p { margin: 0; }
.member-mobile-list { display: none; }
.event-period-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.quick-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.5rem; }
@media (max-width: 767.98px) {
    .members-desktop-table { display: none; }
    .member-mobile-list { display: grid; gap: .75rem; }
    .member-mobile-card { padding: 1rem; border: 1px solid var(--glass-border); border-radius: 1rem; background: rgba(255,255,255,.04); overflow-wrap: anywhere; }
    .member-mobile-card .btn { width: 100%; margin-top: .75rem; }
    .profile-section-nav { flex-wrap: nowrap; overflow-x: auto; padding: .25rem .25rem .75rem; }
    .profile-section-nav a { flex-shrink: 0; flex-direction: column; align-items: flex-start; }
    .profile-save-bar .btn { width: 100%; }
    .brand-title { font-size: .8rem; }
    .brand-subtitle { font-size: .7rem; }
    .navbar-brand { gap: .5rem !important; }
    .glass-nav { margin: .25rem; padding-inline: .25rem; }
    .glass-nav > .container { padding-inline: .4rem; }
}
@media (max-width: 1199.98px) {
    .navbar-collapse .navbar-nav { align-items: stretch !important; padding-block: .75rem; }
    .navbar-collapse .nav-link { padding: .75rem !important; }
    .navbar-collapse .dropdown-menu { position: static; }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .navbar-expand-xl .brand-title { font-size: .8rem; }
    .navbar-expand-xl .brand-logo { width: 42px; height: 42px; }
    .navbar-expand-xl .navbar-nav { column-gap: .25rem !important; }
}
