/* Main content cards must define both surface and text colors.
   Bootstrap's default white card surface cannot inherit the dark site's pale text.
   Scope to main so the intentionally light header dropdown keeps its own palette. */
main .card {
    --bs-card-bg: #0b1b2e;
    --bs-card-color: #edf5ff;
    --bs-card-title-color: #edf5ff;
    --bs-card-subtitle-color: #b9cce0;
    --bs-card-cap-bg: #10243e;
    --bs-card-cap-color: #edf5ff;
    --bs-card-border-color: #486180;
    --bs-body-color: #edf5ff;
    --bs-secondary-color: #b9cce0;
    --bs-secondary-color-rgb: 185, 204, 224;
    --bs-border-color: #486180;
    color: var(--bs-card-color);
    background-color: var(--bs-card-bg);
    border-color: var(--bs-card-border-color);
}
main .card :is(h1, h2, h3, h4, h5, h6, dt, dd, label, legend) {
    color: var(--bs-card-color);
}
main .card a:not(.btn):not(.button) { color: #7bddff; }
main .card a:not(.btn):not(.button):hover { color: #b9eeff; }
main .card .text-danger,
main .card .field-validation-error { color: #ffb4bd !important; }

/* All forms use Bootstrap card containers with a visible border. */
form.camsek-form-card {
    --bs-card-bg: #0b1b2e;
    --bs-card-color: #edf5ff;
    --bs-border-color: #486180;
    background-color: var(--bs-card-bg);
    color: var(--bs-card-color);
    border: 1px solid var(--bs-border-color) !important;
    border-radius: .75rem;
    padding: clamp(1rem, 3vw, 1.5rem);
    min-width: 0;
    margin-bottom: 1rem;
}
form.camsek-form-card.row,
form.camsek-form-card.d-flex { flex-direction: row; }
form.camsek-form-card[hidden] { display: none !important; }
/* Keep navigation actions and table-row actions compact. */
:is(.dropdown-menu, td) form.camsek-form-card {
    padding: .25rem;
    margin: 0;
    border-radius: .375rem;
}
form.camsek-form-card .text-danger,
form.camsek-form-card .field-validation-error { color: #ffb4bd !important; }
