/*
  22Zero Report theme — derived from 22zero.org's actual brand marks:
  navy + gold + maroon, Bebas Neue display / Source Sans 3 body.
  Applied as Bootstrap 5 CSS-variable overrides (bootstrap.min.css loads first).
*/

:root {
    --report-navy: #0a2540;
    --report-navy-light: #14355a;
    --report-gold: #fec40d;
    --report-maroon: #a71000;
    --report-maroon-dark: #7c0c00;
    --report-charcoal: #272727;
    --report-cream: #f7f4ee;
    --report-steel: #5b6672;

    --bs-body-font-family: 'Source Sans 3', system-ui, -apple-system, sans-serif;
    --bs-body-color: var(--report-charcoal);
    --bs-body-bg: var(--report-cream);
    --bs-emphasis-color: var(--report-navy);
    --bs-secondary-color: var(--report-steel);
    --bs-border-color: #ddd6c9;

    --bs-primary: var(--report-maroon);
    --bs-primary-rgb: 167, 16, 0;
    --bs-link-color: var(--report-maroon);
    --bs-link-color-rgb: 167, 16, 0;
    --bs-link-hover-color: var(--report-maroon-dark);
    --bs-link-hover-color-rgb: 124, 12, 0;
}

html, body {
    font-family: var(--bs-body-font-family);
}

h1, h2, h3, .display-heading {
    font-family: 'Bebas Neue', var(--bs-body-font-family);
    letter-spacing: 0.03em;
    color: var(--report-navy);
}

h1 {
    text-transform: uppercase;
    font-size: 2.75rem;
}

a, .btn-link {
    color: var(--bs-link-color);
}

a:hover, .btn-link:hover {
    color: var(--bs-link-hover-color);
}

.btn-primary {
    color: #fff;
    background-color: var(--report-maroon);
    border-color: var(--report-maroon);
}

.btn-primary:hover, .btn-primary:active {
    background-color: var(--report-maroon-dark) !important;
    border-color: var(--report-maroon-dark) !important;
}

.btn-outline-primary {
    color: var(--report-maroon);
    border-color: var(--report-maroon);
}

.btn-outline-primary:hover {
    background-color: var(--report-maroon);
    border-color: var(--report-maroon);
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem var(--report-cream), 0 0 0 0.25rem var(--report-gold);
}

.form-control:focus, .form-select:focus {
    border-color: var(--report-gold);
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #2f7a3d;
}

.invalid {
    outline: 1px solid var(--report-maroon);
}

.validation-message {
    color: var(--report-maroon);
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, var(--report-maroon-dark);
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

/* Floating labels sit on top of the placeholder text until the field is focused or filled —
   with real hint text (not just a single space) in the placeholder, that collides with the
   label at narrower widths (e.g. "Credentials (optional)" over "License, badge, or certification
   number"). Keep the hint hidden until focus, when the label has already shrunk out of the way. */
.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: transparent;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    color: var(--bs-secondary-color);
    text-align: start;
}

/* Auth pages: centered card with the brand's signature gold accent bar. */
.auth-card {
    max-width: 460px;
    margin: 2.5rem auto;
    background: #fff;
    border: 1px solid var(--bs-border-color);
    border-left: 4px solid var(--report-gold);
    border-radius: 0.5rem;
    padding: 2rem 2rem 1.5rem;
    box-shadow: 0 1px 3px rgba(10, 37, 64, 0.08);
}

.auth-card h1, .auth-card h2 {
    font-size: 1.75rem;
    margin-bottom: 0.25rem;
}
