/* Accessible Bootstrap token overrides: stronger contrast without changing component structure. */
:root {
    --bs-link-color: #0a58ca;
    --bs-link-color-rgb: 10, 88, 202;
    --bs-link-hover-color: #084298;
    --bs-link-hover-color-rgb: 8, 66, 152;
    --bs-secondary-color: #595f64;
    --bs-danger-text-emphasis: #842029;
}
code {
    color: #a61e4d;
}

.text-muted,
.text-body-secondary,
.link-secondary,
.site-footer {
    color: #595f64 !important;
}

.site-footer a {
    color: #495057;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.site-footer a:hover,
.site-footer a:focus-visible {
    color: #212529;
    text-decoration-thickness: 0.12em;
}

.btn-outline-primary {
    --bs-btn-color: #0a58ca;
    --bs-btn-border-color: #0a58ca;
    --bs-btn-hover-bg: #0a58ca;
    --bs-btn-hover-border-color: #0a58ca;
    --bs-btn-active-bg: #084298;
    --bs-btn-active-border-color: #084298;
    --bs-btn-disabled-color: #526f91;
    --bs-btn-disabled-border-color: #526f91;
}

.btn-outline-secondary {
    --bs-btn-color: #565e64;
    --bs-btn-border-color: #565e64;
    --bs-btn-hover-bg: #565e64;
    --bs-btn-hover-border-color: #565e64;
    --bs-btn-active-bg: #41464b;
    --bs-btn-active-border-color: #41464b;
}

.btn-outline-info {
    --bs-btn-color: #087990;
    --bs-btn-border-color: #087990;
    --bs-btn-hover-bg: #087990;
    --bs-btn-hover-border-color: #087990;
    --bs-btn-active-bg: #055160;
    --bs-btn-active-border-color: #055160;
}

.invalid-feedback {
    color: #b02a37;
}

/* SurveyJS content must reflow with long labels and user-defined text spacing. */
.sd-action-bar:not(.sd-formbox__group) {
    flex-wrap: wrap;
}

.sd-action-bar__item,
.sd-action-bar__item-content,
.sd-action-bar .sd-action,
.sd-action__content,
.sd-action__title,
.sv-title-actions {
    max-width: 100%;
    min-width: 0;
}

.sd-question__header,
.sv-title-actions {
    flex-wrap: wrap;
}

.sd-action-bar .sd-action,
.sd-action__title,
.badge.text-wrap {
    overflow-wrap: anywhere;
    white-space: normal;
}

/* An empty live notification target should not create a blank card strip. */
.notification-list:empty {
    display: none;
}

/* Keep complete chart data available without letting long equivalents dominate the page. */
.chart-equivalent-region {
    max-height: 24rem;
}

/* SurveyJS owns error markup/ARIA; inset feedback even for framed roster panels. */
.registration-survey .sd-question__erbox--below-question {
    width: auto;
    margin: .75rem 1rem 1rem;
}
