:root {
    /* Official Visigon website palette; see brand/README.md for provenance. */
    --visigon-forest: #122f27;
    --visigon-sage: #6b8e74;
    --visigon-olive: #426718;
    --visigon-paper: #fdfbfa;
    --bs-primary: var(--visigon-forest);
    --bs-primary-rgb: 18, 47, 39;
    --bs-primary-text-emphasis: var(--visigon-forest);
    --bs-primary-bg-subtle: #edf2ee;
    --bs-primary-border-subtle: #b7cabb;
    --bs-body-color: var(--visigon-forest);
    --bs-body-color-rgb: 18, 47, 39;
    --bs-body-bg: var(--visigon-paper);
    --bs-body-bg-rgb: 253, 251, 250;
    --bs-link-color: var(--visigon-olive);
    --bs-link-color-rgb: 66, 103, 24;
    --bs-link-hover-color: var(--visigon-forest);
    --bs-link-hover-color-rgb: 18, 47, 39;
    --bs-focus-ring-color: rgba(66, 103, 24, .3);
    --chart-actual: var(--visigon-forest);
    --chart-plan: var(--visigon-sage);
    --chart-forecast: var(--visigon-olive);
    --chart-cost: #667085;
    --chart-available: #b67912;
}
body { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
.app-header { background: var(--visigon-forest); border-bottom: 5px solid var(--visigon-sage); }
.app-header .navbar-brand { display: flex; flex-direction: column; align-items: flex-start; margin-right: .5rem; }
.navbar-brand img { display: block; width: 144px; height: auto; }
.brand-product { color: var(--visigon-paper); font-size: .7rem; letter-spacing: .15em; margin-left: 41px; }
.app-header .navbar { --bs-navbar-color: var(--visigon-paper); --bs-navbar-hover-color: #fff; --bs-navbar-active-color: #fff; }
.app-header .nav-link { font-size: .875rem; white-space: nowrap; border-bottom: 2px solid transparent; }
.app-header .nav-link:hover { background: rgba(107, 142, 116, .18); }
.app-header .nav-link.active { border-bottom-color: var(--visigon-sage); background: rgba(107, 142, 116, .25); }
.btn-primary, .btn-outline-primary {
    --bs-btn-border-color: var(--visigon-forest);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--visigon-olive);
    --bs-btn-hover-border-color: var(--visigon-olive);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--visigon-forest);
    --bs-btn-active-border-color: var(--visigon-forest);
    --bs-btn-disabled-border-color: var(--visigon-forest);
    --bs-btn-focus-shadow-rgb: 107, 142, 116;
}
.btn-primary { --bs-btn-bg: var(--visigon-forest); --bs-btn-disabled-bg: var(--visigon-forest); }
.btn-outline-primary { --bs-btn-color: var(--visigon-forest); --bs-btn-disabled-color: var(--visigon-forest); }
.form-control:focus, .form-select:focus { border-color: var(--visigon-olive); box-shadow: 0 0 0 .25rem rgba(66, 103, 24, .2); }
.form-check-input:checked { background-color: var(--visigon-olive); border-color: var(--visigon-olive); }
.form-check-input:focus { border-color: var(--visigon-olive); box-shadow: 0 0 0 .25rem rgba(66, 103, 24, .2); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--visigon-forest); }
.pagination { --bs-pagination-active-bg: var(--visigon-forest); --bs-pagination-active-border-color: var(--visigon-forest); }
.placeholder-panel { max-width: 70rem; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--visigon-olive); outline-offset: 3px; }
.app-header a:focus-visible, .app-header button:focus-visible { outline-color: var(--visigon-paper); }
@media (min-width: 1200px) { .app-header .navbar-expand-xl .navbar-nav .nav-link { padding-inline: .45rem; } }
