/* Shared colors for Bootstrap components and the portal's own page layouts. */
:root {
    --portal-ink: #25344b;
    --portal-muted: #637186;
    --portal-line: #e0e6ee;
    --portal-surface: #f7f9fc;
    --portal-label: #516580;
    --portal-input-border: #d3dce7;
    --portal-canvas: rgb(247 249 252 / 97%);
    --portal-navbar: rgb(255 255 255 / 98%);
    --portal-photo-overlay: rgb(255 255 255 / 50%);
}

[data-bs-theme="dark"] {
    color-scheme: dark;
    --bs-body-bg: #1c2633;
    --bs-body-bg-rgb: 28, 38, 51;
    --bs-body-color: #e2e8f0;
    --bs-body-color-rgb: 226, 232, 240;
    --bs-secondary-color: #aebed0;
    --bs-secondary-color-rgb: 174, 190, 208;
    --bs-secondary-bg: #283545;
    --bs-secondary-bg-rgb: 40, 53, 69;
    --bs-tertiary-bg: #223040;
    --bs-tertiary-bg-rgb: 34, 48, 64;
    --bs-border-color: #405269;
    --bs-border-color-translucent: rgb(174 190 208 / 25%);
    --portal-ink: #e2e8f0;
    --portal-muted: #aebed0;
    --portal-line: #405269;
    --portal-surface: #223040;
    --portal-label: #bccce0;
    --portal-input-border: #526780;
    --portal-canvas: rgb(21 28 38 / 97%);
    --portal-navbar: rgb(21 28 38 / 98%);
    --portal-photo-overlay: rgb(10 16 25 / 88%);
}

[data-bs-theme="light"] { color-scheme: light; }

.portal-theme-control:not([hidden]) {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: .2rem .65rem;
    flex: 0 0 auto;
}
.portal-theme-control label { color: var(--portal-muted); }
.portal-theme-control .form-select {
    width: auto;
    min-width: 7rem;
    min-height: 44px;
    padding: .4rem 2.1rem .4rem .65rem;
    font-size: 1rem;
}
.portal-theme-control select:focus-visible {
    outline: 3px solid var(--bs-link-color);
    outline-offset: 2px;
}

/* Existing light utility classes describe neutral surfaces, not fixed colors. */
[data-bs-theme="dark"] .bg-white { background-color: var(--bs-body-bg) !important; }
[data-bs-theme="dark"] .bg-light { background-color: var(--portal-surface) !important; }
[data-bs-theme="dark"] .text-dark:not(.bg-warning, .bg-info, .text-bg-warning, .text-bg-info),
[data-bs-theme="dark"] .text-black { color: var(--portal-ink) !important; }
[data-bs-theme="dark"] .text-black-50 { color: var(--portal-muted) !important; }
[data-bs-theme="dark"] .text-secondary { color: var(--portal-muted) !important; }
[data-bs-theme="dark"] .text-primary { color: var(--bs-primary-text-emphasis) !important; }
[data-bs-theme="dark"] .text-success { color: var(--bs-success-text-emphasis) !important; }
[data-bs-theme="dark"] .text-danger { color: var(--bs-danger-text-emphasis) !important; }
[data-bs-theme="dark"] .border-light { border-color: var(--portal-line) !important; }
[data-bs-theme="dark"] .table-light {
    --bs-table-color: var(--portal-ink);
    --bs-table-bg: var(--portal-surface);
    --bs-table-border-color: var(--portal-line);
    --bs-table-striped-color: var(--portal-ink);
    --bs-table-striped-bg: var(--bs-secondary-bg);
    --bs-table-hover-color: var(--portal-ink);
    --bs-table-hover-bg: var(--bs-secondary-bg);
}
[data-bs-theme="dark"] .btn-outline-primary { --bs-btn-color: #9ec5fe; --bs-btn-border-color: #729bdd; }
[data-bs-theme="dark"] .btn-outline-secondary { --bs-btn-color: #c1ccda; --bs-btn-border-color: #8594a7; }
[data-bs-theme="dark"] .btn-outline-success { --bs-btn-color: #75d8aa; --bs-btn-border-color: #53aa83; }
[data-bs-theme="dark"] .btn-outline-danger { --bs-btn-color: #ffa0a9; --bs-btn-border-color: #d87580; }
[data-bs-theme="dark"] .btn-light {
    --bs-btn-color: var(--portal-ink);
    --bs-btn-bg: var(--bs-tertiary-bg);
    --bs-btn-border-color: var(--portal-line);
    --bs-btn-hover-color: var(--portal-ink);
    --bs-btn-hover-bg: var(--bs-secondary-bg);
    --bs-btn-hover-border-color: var(--portal-muted);
}

/* Transparent artwork; the dark variant changes only the dark lettering. */
.portal-logo-light { display: inline-block; }
.portal-logo-dark { display: none; }
[data-bs-theme="dark"] .portal-logo-light { display: none; }
[data-bs-theme="dark"] .portal-logo-dark { display: inline-block; }
@media (prefers-color-scheme: dark) {
    .maintenance-page .portal-logo-light { display: none; }
    .maintenance-page .portal-logo-dark { display: inline-block; }
}
[data-bs-theme="dark"] .leaflet-control-layers,
[data-bs-theme="dark"] .leaflet-bar a,
[data-bs-theme="dark"] .leaflet-popup-content-wrapper,
[data-bs-theme="dark"] .leaflet-popup-tip {
    background-color: var(--bs-body-bg);
    color: var(--portal-ink);
}

@media print {
    html[data-bs-theme] .portal-logo-light, .maintenance-page .portal-logo-light { display: inline-block; }
    html[data-bs-theme] .portal-logo-dark, .maintenance-page .portal-logo-dark { display: none; }
    .portal-theme-control { display: none !important; }
    body::before, body::after { display: none; }
    body { background: #fff !important; }
}
