/* Bootstrap keeps ownership of layout and component behavior. */
body { font-family: var(--welsi-body); color: var(--welsi-ink); background-color: #fff; line-height: 1.65; -webkit-font-smoothing: antialiased; }
.main-content :where(h1, h2, h3) { text-wrap: balance; }
.main-content :where(img, video) { max-width: 100%; }
.main-content .btn { --bs-btn-border-radius: .35rem; font-family: var(--welsi-body); font-weight: 600; letter-spacing: 0; text-shadow: none; transition: background-color .18s, color .18s, border-color .18s; }
.main-content .btn:hover { transform: none; }
.main-content .btn-primary {
    --bs-btn-bg: var(--welsi-deep); --bs-btn-border-color: var(--welsi-deep);
    --bs-btn-hover-bg: #28552b; --bs-btn-hover-border-color: #28552b;
    --bs-btn-active-bg: #142c14; --bs-btn-active-border-color: #142c14;
    --bs-btn-disabled-bg: var(--welsi-deep); --bs-btn-disabled-border-color: var(--welsi-deep);
    --bs-btn-focus-shadow-rgb: 83, 123, 47;
}
.main-content .btn-outline-primary {
    --bs-btn-color: var(--welsi-deep); --bs-btn-border-color: var(--welsi-deep);
    --bs-btn-hover-bg: var(--welsi-deep); --bs-btn-hover-border-color: var(--welsi-deep); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--welsi-deep); --bs-btn-active-border-color: var(--welsi-deep);
    --bs-btn-focus-shadow-rgb: 83, 123, 47;
}
.main-content :is(.form-control, .form-select) { border-color: var(--welsi-line); border-radius: .35rem; font-family: var(--welsi-body); min-height: 2.65rem; }
.main-content :is(.form-control, .form-select):focus { border-color: var(--welsi-fern); box-shadow: 0 0 0 .2rem rgba(83, 123, 47, .13); }
.main-content .form-control:disabled { background-color: #edf1ec; }
.main-content .form-check-input:checked { background-color: var(--welsi-deep); border-color: var(--welsi-deep); }
.main-content .form-label { font-weight: 600; font-size: .88rem; }
.main-content .card { --bs-card-border-color: var(--welsi-line); --bs-card-border-radius: .6rem; }
.main-content .table { --bs-table-color: var(--welsi-ink); --bs-table-border-color: var(--welsi-line); --bs-table-striped-bg: #f4f7f3; --bs-table-hover-bg: #edf3e9; font-size: .92rem; }
.main-content .table > thead { font-size: .75rem; letter-spacing: .035em; }
.main-content .table > :not(caption) > * > * { padding: .85rem; }
.main-content .pagination { --bs-pagination-color: var(--welsi-deep); --bs-pagination-active-bg: var(--welsi-deep); --bs-pagination-active-border-color: var(--welsi-deep); --bs-pagination-hover-color: var(--welsi-deep); --bs-pagination-focus-color: var(--welsi-deep); }
.main-content .accordion { --bs-accordion-border-color: var(--welsi-line); --bs-accordion-active-bg: var(--welsi-paper); --bs-accordion-active-color: var(--welsi-deep); --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem rgba(83,123,47,.16); }
.modal-content { border: 1px solid var(--welsi-line); border-radius: .65rem; }
.modal-header { padding: 1.3rem 1.5rem; background: var(--welsi-paper); border-bottom-color: var(--welsi-line); }
.modal-title { font-family: var(--welsi-body); font-weight: 600; }
/* Member and staff screens share the public site's surfaces and type. */
.main-content :is(.admin-dashboard, .admin-shell, .forum-shell) { background: var(--welsi-paper); }
.main-content :is(.dash-title, .page-title, .profile-card h2, .forum-hero h1) { font-family: var(--welsi-display); font-weight: 500; letter-spacing: -.035em; }
.main-content :is(.stat-card, .nav-card, .profile-card, .forum-sidebar-card, .forum-post-card, .forum-panel) { border: 1px solid var(--welsi-line); border-radius: .6rem; box-shadow: 0 3px 12px rgba(20, 44, 20, .035); background: #fff; }
.main-content :is(.stat-card, .nav-card, .profile-card, .forum-post-card):hover { transform: none; }
.main-content .stat-value { font-family: var(--welsi-display); color: var(--welsi-deep); }
.main-content .admin-hero { background: var(--welsi-deep); border-bottom: 4px solid var(--welsi-accent); padding-block: clamp(2.25rem, 4vw, 3.5rem); }
.main-content .admin-hero .hero-title { color: #fff; font: 500 clamp(2.5rem, 4vw, 4rem)/1.1 var(--welsi-display); letter-spacing: -.035em; }
.main-content .admin-hero .chip { border-radius: 4px; background: #ffffff17; border: 1px solid #ffffff30; font-size: .75rem; }
.main-content .nav-card-icon { border-radius: .5rem; box-shadow: none; }
.main-content .btn-welsi { border-radius: .35rem; background: var(--welsi-deep); box-shadow: none; }
.main-content .btn-welsi:hover { background: #28552b; }
.application-page { padding-block: 3rem; }
.application-page > h1 { font: 500 clamp(2.4rem, 4vw, 3.75rem)/1.12 var(--welsi-display); color: var(--welsi-deep); letter-spacing: -.035em; }
.application-page #membershipForm { padding-block: 2rem; border: 1px solid var(--welsi-line); border-radius: .6rem; background: #fff; }
.application-page :is(.form-control, .form-select) { font-family: var(--welsi-body); border-color: var(--welsi-line); border-radius: 4px; }
.main-content .forum-hero { border-radius: .5rem; box-shadow: none; border-bottom: 4px solid var(--welsi-accent); }
.main-content :is(.nav-card-title, .forum-post-title) { font-family: var(--welsi-body); font-weight: 600; }
.main-content :where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--welsi-fern); outline-offset: 3px; }
.site-header :where(a, button):focus-visible, .site-footer a:focus-visible { outline: 3px solid var(--welsi-accent); outline-offset: 4px; }
@media (max-width: 575.98px) {
    .main-content :is(.table-responsive, .tab-content) { max-width: 100%; }
    .main-content .modal-dialog { margin: .6rem; }
}
