:root { --bs-primary: #123d2b; --bs-primary-rgb: 18,61,43; }
html { font-size: 16px; }
body { min-height: 100vh; display: flex; flex-direction: column; background: #f7f7ef; color: #203b2c; }
a { color: #24583c; }
.navbar-brand { color: #123d2b; }
.brand-logo { display: block; width: 260px; max-width: 100%; height: auto; }
.btn-primary { --bs-btn-bg: #123d2b; --bs-btn-border-color: #123d2b; --bs-btn-hover-bg: #0a291c; --bs-btn-hover-border-color: #0a291c; --bs-btn-active-bg: #0a291c; --bs-btn-active-border-color: #0a291c; }
.btn-outline-primary { --bs-btn-color: #123d2b; --bs-btn-border-color: #123d2b; --bs-btn-hover-bg: #123d2b; --bs-btn-hover-border-color: #123d2b; --bs-btn-active-bg: #0a291c; --bs-btn-active-border-color: #0a291c; }
.form-check-input:checked { background-color: #123d2b; border-color: #123d2b; }
.btn, .nav-link { min-height: 44px; }
.btn { display: inline-flex; align-items: center; justify-content: center; }
.form-control { min-height: 46px; }
.account-panel { max-width: 500px; padding: 1.5rem; background: white; border: 1px solid #dce5dd; border-radius: 16px; }
.reading-panel, .welcome { max-width: 760px; }
.eyebrow { color: #526f43; text-transform: uppercase; font-size: .8rem; letter-spacing: .12em; font-weight: 700; }
:focus-visible { outline: 3px solid #956e14; outline-offset: 3px; }
.skip-link { position: absolute; z-index: 100; background: white; padding: 1rem; }
@media (max-width: 575px) { .account-panel { padding: 1.25rem; } h1.display-4 { font-size: 2.4rem; } }
.preserve-lines { white-space: pre-wrap; overflow-wrap: anywhere; }
.validation-summary-valid, .field-validation-valid { display: none; }
[hidden] { display: none !important; }
body { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
.site-main { padding-top: 3rem; padding-bottom: max(3rem, env(safe-area-inset-bottom)); }
.row > *, .d-flex > * { min-width: 0; }
h1, h2, h3, .card p, .card a, .alert, .navbar-brand { overflow-wrap: anywhere; }
.btn { white-space: normal; }
.form-select, .navbar-toggler { min-height: 48px; }
.navbar-toggler { min-width: 48px; }
.form-control, .form-select { font-size: 1rem; }
textarea.form-control { min-height: 8rem; resize: vertical; }
summary { cursor: pointer; min-height: 44px; padding-block: .5rem; }
summary:focus-visible { border-radius: .25rem; }
.connection-banner, .update-banner { padding: 1rem; background: #fff3cd; color: #594400; border-bottom: 1px solid #e7d18e; }
.update-banner { background: #edf3ef; color: #23372f; border-color: #dce5dd; }
.copy-link { margin-top: .75rem; }
.field-validation-error, .validation-summary-errors { color: #a52632; }
.input-validation-error { border-color: #a52632; }
footer a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 575px) {
    .brand-logo { width: 215px; }
    .site-main { padding-top: 1.5rem; padding-bottom: max(2rem, env(safe-area-inset-bottom)); }
    h1 { font-size: 1.85rem; }
    .navbar-collapse { padding-block: .75rem; }
    .nav-link { padding: .75rem .25rem; }
    .navbar-nav .btn { width: 100%; }
    .account-panel { border-radius: 12px; }
    .card.p-4 { padding: 1.25rem !important; }
    .card form > .btn, .account-panel form > .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
