/* =====================================================================================================================
   DCID: CondorZen Concepts brand layer over Bootstrap 5.3.
   Field-manual utility: gunmetal rail, olive-drab actions, bronze from the CondorZen mark, cool paper ground.
   Type: Barlow Condensed (headings, the "stencilled placard" voice) + Public Sans (body; the USWDS face, so it
   reads as at home next to .mil and .gov tooling). Fonts are self-hosted: the CSP allows font-src 'self' only.
   No inline styles anywhere (CSP style-src 'self'): every visual lives in this file or a .razor.css.
   ===================================================================================================================== */

/* ---------- Fonts ---------- */
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 400; font-display: swap;
    src: url('fonts/public-sans-latin-400-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 400; font-display: swap;
    src: url('fonts/public-sans-latin-ext-400-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Public Sans'; font-style: italic; font-weight: 400; font-display: swap;
    src: url('fonts/public-sans-latin-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 600; font-display: swap;
    src: url('fonts/public-sans-latin-600-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 600; font-display: swap;
    src: url('fonts/public-sans-latin-ext-600-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 700; font-display: swap;
    src: url('fonts/public-sans-latin-700-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 700; font-display: swap;
    src: url('fonts/public-sans-latin-ext-700-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 500; font-display: swap;
    src: url('fonts/barlow-condensed-latin-500-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 500; font-display: swap;
    src: url('fonts/barlow-condensed-latin-ext-500-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 600; font-display: swap;
    src: url('fonts/barlow-condensed-latin-600-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 600; font-display: swap;
    src: url('fonts/barlow-condensed-latin-ext-600-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 700; font-display: swap;
    src: url('fonts/barlow-condensed-latin-700-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 700; font-display: swap;
    src: url('fonts/barlow-condensed-latin-ext-700-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Tokens ---------- */
:root {
    /* Core palette */
    --dcid-gunmetal: #1d2321;      /* rail, hero, dark surfaces */
    --dcid-gunmetal-2: #283029;    /* raised dark surface */
    --dcid-od: #4b5320;            /* olive drab: primary action (7.9:1 on white) */
    --dcid-od-dark: #3a4118;
    --dcid-od-tint: #eef0e2;
    --dcid-bronze: #9a6a36;        /* from the CondorZen eagle: rules, active marks (4.6:1 on white) */
    --dcid-bronze-light: #d4a571;  /* bronze on dark surfaces */
    --dcid-paper: #f3f4f1;         /* page ground: cool field-manual grey, not cream */
    --dcid-surface: #ffffff;
    --dcid-ink: #1f2421;
    --dcid-muted: #575f58;         /* 6.5:1 on paper */
    --dcid-line: #d5d9d2;
    --dcid-line-strong: #b9bfb5;
    --dcid-marking: #007a33;       /* the green UNCLASSIFIED banner colour */
    --dcid-danger: #9b1c1c;
    --dcid-caution: #8a5a00;

    --dcid-font-body: 'Public Sans', 'Segoe UI', system-ui, -apple-system, sans-serif;
    --dcid-font-display: 'Barlow Condensed', 'Arial Narrow', 'Segoe UI', sans-serif;

    --dcid-radius: 3px;
    --dcid-marking-h: 1.75rem;

    /* Bootstrap hooks */
    --bs-body-font-family: var(--dcid-font-body);
    --bs-body-font-size: 1rem;
    --bs-body-line-height: 1.55;
    --bs-body-color: var(--dcid-ink);
    --bs-body-bg: var(--dcid-paper);
    --bs-secondary-color: var(--dcid-muted);
    --bs-border-color: var(--dcid-line);
    --bs-border-radius: var(--dcid-radius);
    --bs-border-radius-sm: 2px;
    --bs-border-radius-lg: 4px;
    --bs-link-color: var(--dcid-od);
    --bs-link-color-rgb: 75, 83, 32;
    --bs-link-hover-color: var(--dcid-od-dark);
    --bs-link-hover-color-rgb: 58, 65, 24;
    --bs-primary: var(--dcid-od);
    --bs-primary-rgb: 75, 83, 32;
    --bs-focus-ring-color: rgba(154, 106, 54, 0.45);
    --bs-emphasis-color: var(--dcid-ink);
}

/* ---------- Base type ---------- */
html, body {
    font-family: var(--dcid-font-body);
    background: var(--dcid-paper);
    color: var(--dcid-ink);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .h1, .h2, .h3, .h4, h4, .dcid-display {
    font-family: var(--dcid-font-display);
    font-weight: 600;
    letter-spacing: 0.005em;
    line-height: 1.1;
    color: var(--dcid-ink);
}

h1, .h1 { font-size: 2.6rem; font-weight: 700; margin-bottom: 0.5rem; }
h2, .h2 { font-size: 1.85rem; }
h3, .h3 { font-size: 1.45rem; }
.h4, h4 { font-size: 1.3rem; }

/* h5/h6 stay in Public Sans: they label small things (requirement titles, legends). */
h5, h6, .h5, .h6 {
    font-family: var(--dcid-font-body);
    font-weight: 700;
    line-height: 1.3;
}
.h5, h5 { font-size: 1.05rem; }
.h6, h6 { font-size: 1rem; }

/* A short bronze rule under section headings: the one ornament, used to mark document structure. */
.content section > h2,
.content section > .card-body > h2 {
    padding-bottom: 0.4rem;
    margin-bottom: 0.9rem;
    border-bottom: 1px solid var(--dcid-line);
    position: relative;
}
.content section > h2::after,
.content section > .card-body > h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 2.5rem;
    height: 3px;
    background: var(--dcid-bronze);
}

p, li, dd { max-width: 75ch; }
.lead { font-size: 1.15rem; color: var(--dcid-muted); }
.text-muted { color: var(--dcid-muted) !important; }
.small, small { font-size: 0.875rem; }

a, .btn-link {
    color: var(--dcid-od);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}
a:hover, .btn-link:hover { color: var(--dcid-od-dark); text-decoration-thickness: 2px; }

hr { border-color: var(--dcid-line-strong); opacity: 1; }

/* ---------- Focus (always visible) ---------- */
:focus-visible {
    outline: 3px solid var(--dcid-bronze);
    outline-offset: 2px;
}
.btn:focus-visible, .btn:active:focus, .btn-link.nav-link:focus-visible,
.form-control:focus, .form-select:focus, .form-check-input:focus {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--dcid-bronze);
    outline: none;
}
.form-control:focus, .form-select:focus { border-color: var(--dcid-bronze); }
h1:focus { outline: none; }

/* ---------- Buttons ---------- */
.btn {
    --bs-btn-font-weight: 600;
    --bs-btn-border-radius: var(--dcid-radius);
    --bs-btn-padding-x: 1rem;
    letter-spacing: 0.01em;
}
.btn-lg { --bs-btn-padding-x: 1.4rem; --bs-btn-font-size: 1.05rem; }

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--dcid-od);
    --bs-btn-border-color: var(--dcid-od);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--dcid-od-dark);
    --bs-btn-hover-border-color: var(--dcid-od-dark);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #2f3513;
    --bs-btn-active-border-color: #2f3513;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #8b9067;
    --bs-btn-disabled-border-color: #8b9067;
}
.btn-outline-primary {
    --bs-btn-color: var(--dcid-od);
    --bs-btn-border-color: var(--dcid-od);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--dcid-od);
    --bs-btn-hover-border-color: var(--dcid-od);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--dcid-od-dark);
    --bs-btn-active-border-color: var(--dcid-od-dark);
    --bs-btn-disabled-color: #8b9067;
    --bs-btn-disabled-border-color: #b5b89e;
    background: var(--dcid-surface);
}
.btn-secondary {
    --bs-btn-bg: #4f5751;
    --bs-btn-border-color: #4f5751;
    --bs-btn-hover-bg: #3c433e;
    --bs-btn-hover-border-color: #3c433e;
}
.btn-outline-secondary {
    --bs-btn-color: #3c433e;
    --bs-btn-border-color: var(--dcid-line-strong);
    --bs-btn-hover-color: var(--dcid-ink);
    --bs-btn-hover-bg: #e4e7e1;
    --bs-btn-hover-border-color: #9aa197;
    background: var(--dcid-surface);
}
.btn-danger, .btn-outline-danger {
    --bs-btn-border-color: var(--dcid-danger);
}
.btn-danger { --bs-btn-bg: var(--dcid-danger); --bs-btn-hover-bg: #7c1616; --bs-btn-hover-border-color: #7c1616; }
.btn-outline-danger { --bs-btn-color: var(--dcid-danger); --bs-btn-hover-bg: var(--dcid-danger); --bs-btn-hover-border-color: var(--dcid-danger); }

/* ---------- Forms ---------- */
.form-control, .form-select {
    border-color: var(--dcid-line-strong);
    border-radius: var(--dcid-radius);
    background-color: var(--dcid-surface);
}
.form-label, legend.h6, fieldset > legend {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--dcid-ink);
}
.form-check-input { border-color: #868d84; }
.form-check-input:checked {
    background-color: var(--dcid-od);
    border-color: var(--dcid-od);
}
.darker-border-checkbox.form-check-input { border-color: #6f766d; }

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.valid.modified:not([type=checkbox]) { outline: 1px solid #2f7a3e; }
.invalid { outline: 1px solid var(--dcid-danger); }
.validation-message, .text-danger { color: var(--dcid-danger) !important; }

/* ---------- Cards, alerts, badges, tables ---------- */
.card {
    --bs-card-border-color: var(--dcid-line);
    --bs-card-border-radius: var(--dcid-radius);
    --bs-card-inner-border-radius: var(--dcid-radius);
    --bs-card-bg: var(--dcid-surface);
    box-shadow: none;
}

.alert { border-radius: var(--dcid-radius); border-width: 1px 1px 1px 4px; }
.alert-warning { --bs-alert-bg: #fbf3e2; --bs-alert-border-color: #c8952e; --bs-alert-color: #4d3600; }
.alert-secondary { --bs-alert-bg: #eceee9; --bs-alert-border-color: #9aa197; --bs-alert-color: #2e342f; }
.alert-danger { --bs-alert-bg: #f8e9e7; --bs-alert-border-color: var(--dcid-danger); --bs-alert-color: #5c1010; }
.alert-success { --bs-alert-bg: #e9f1e4; --bs-alert-border-color: #3d6b35; --bs-alert-color: #1f3a1b; }
.alert-info { --bs-alert-bg: #e8eef0; --bs-alert-border-color: #4c6f7a; --bs-alert-color: #1d343b; }

.badge {
    font-family: var(--dcid-font-body);
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    border-radius: 2px;
    padding: 0.32em 0.55em;
    vertical-align: 0.12em;
}
.text-bg-success { background-color: #3d6b35 !important; color: #fff !important; }
.text-bg-warning { background-color: #f1d9a6 !important; color: #4d3600 !important; }
.text-bg-danger { background-color: var(--dcid-danger) !important; color: #fff !important; }
.text-bg-secondary { background-color: #e1e4de !important; color: #2e342f !important; }
.text-bg-light { background-color: var(--dcid-surface) !important; color: var(--dcid-ink) !important; }

.table {
    --bs-table-bg: var(--dcid-surface);
    --bs-table-border-color: var(--dcid-line);
    --bs-table-striped-bg: #f7f8f5;
    --bs-table-hover-bg: var(--dcid-od-tint);
}
.table > thead th {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--dcid-muted);
    border-bottom: 2px solid var(--dcid-line-strong);
    background: #f7f8f5;
}

/* Sub-navigation (curate tabs, manage account) */
.nav-pills {
    --bs-nav-pills-border-radius: 0;
    --bs-nav-pills-link-active-bg: transparent;
    --bs-nav-pills-link-active-color: var(--dcid-ink);
    --bs-nav-link-color: var(--dcid-muted);
    --bs-nav-link-hover-color: var(--dcid-ink);
    border-bottom: 1px solid var(--dcid-line);
    gap: 0.25rem;
}
.nav-pills .nav-link {
    border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    padding: 0.5rem 0.75rem;
    font-weight: 600;
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
    border-bottom-color: var(--dcid-bronze);
}
.nav-pills.flex-column { border-bottom: 0; border-left: 1px solid var(--dcid-line); }
.nav-pills.flex-column .nav-link { border-bottom: 0; border-left: 3px solid transparent; margin: 0 0 0 -1px; }
.nav-pills.flex-column .nav-link.active { border-left-color: var(--dcid-bronze); background: var(--dcid-surface); }

.content {
    padding-top: 1.75rem;
    padding-bottom: 3rem;
}

/* ---------- Landing (anonymous "/") ---------- */
.dcid-hero {
    position: relative;
    overflow: hidden;
    background: var(--dcid-gunmetal);
    color: #e9ebe6;
    border-radius: var(--dcid-radius);
    padding: 3rem 2.5rem 2.75rem;
    margin-bottom: 2rem;
    isolation: isolate;
}
/* The CondorZen emblem as a large faded watermark: identity without a second logo competing with the headline. */
.dcid-hero::before {
    content: "";
    position: absolute;
    right: -4rem;
    top: 50%;
    width: 30rem;
    height: 30rem;
    transform: translateY(-50%);
    background: url('brand/condorzen-emblem-512.webp') no-repeat center / contain;
    opacity: 0.13;
    z-index: -1;
}
.dcid-hero::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--dcid-od) 0 60%, var(--dcid-bronze) 60% 100%);
}
.dcid-hero-mark {
    display: block;
    width: 13rem;
    height: auto;
    margin-bottom: 2rem;
}
.dcid-hero h1 {
    color: #fff;
    font-size: clamp(2.6rem, 5vw, 4.25rem);
    line-height: 1;
    max-width: 18ch;
    text-wrap: balance;
    margin-bottom: 1rem;
}
.dcid-hero-acronym {
    display: block;
    font-family: var(--dcid-font-display);
    font-weight: 600;
    font-size: 1.15rem;
    letter-spacing: 0.08em;
    color: var(--dcid-bronze-light);
    margin-bottom: 0.75rem;
}
.dcid-hero .lead {
    color: #c9cec6;
    max-width: 52ch;
    margin-bottom: 2rem;
}
.dcid-hero .btn-primary {
    --bs-btn-bg: #5d6728;
    --bs-btn-border-color: #77823a;
    --bs-btn-hover-bg: #6b7630;
    --bs-btn-hover-border-color: #8d9a47;
}
.dcid-hero-note {
    display: inline-block;
    margin-left: 1rem;
    font-size: 0.9rem;
    color: #aab1a7;
}

.dcid-landing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 1.5rem 2rem;
    margin-bottom: 2rem;
}
.dcid-landing-grid h2 {
    font-size: 1.35rem;
    margin-bottom: 0.4rem;
}
.dcid-landing-grid p { color: var(--dcid-muted); margin-bottom: 0; }
.dcid-landing-grid > div { border-top: 3px solid var(--dcid-od); padding-top: 0.9rem; }

.dcid-contract-list { list-style: none; padding: 0; margin: 0; }
.dcid-contract-list li { display: flex; gap: 0.6rem; align-items: baseline; color: var(--dcid-muted); margin-bottom: 0.2rem; }
.dcid-contract-list .dcid-code {
    font-family: var(--dcid-font-display);
    font-weight: 700;
    color: var(--dcid-ink);
    min-width: 2.5rem;
}

.dcid-fine-print {
    font-size: 0.85rem;
    color: var(--dcid-muted);
    border-top: 1px solid var(--dcid-line);
    padding-top: 1rem;
}

/* ---------- Page header (signed-in pages) ---------- */
.dcid-page-intro { color: var(--dcid-muted); margin-bottom: 1.5rem; }

/* ---------- Country picker ---------- */
.dcid-picker {
    background: var(--dcid-surface);
    border: 1px solid var(--dcid-line);
    border-radius: var(--dcid-radius);
    padding: 1.5rem;
    max-width: 48rem;
}
.dcid-country-list {
    max-height: 24rem;
    overflow-y: auto;
    background: #fafbf8;
    border-color: var(--dcid-line-strong) !important;
    border-radius: var(--dcid-radius) !important;
    padding: 0.25rem !important;
}
.dcid-country-list .form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.4rem 0.6rem 0.4rem 2.1rem;
    border-bottom: 1px solid #eceee9;
}
.dcid-country-list .form-check:last-child { border-bottom: 0; }
.dcid-country-list .form-check:has(.form-check-input:checked) { background: var(--dcid-od-tint); }
.dcid-country-list .form-check-input { margin-top: 0; flex: 0 0 auto; }
.dcid-country-list .form-check-label { flex: 1; cursor: pointer; }
.dcid-country-list .badge { margin-left: auto; }

.dcid-picker .form-check-inline {
    margin-right: 0.5rem;
    padding: 0.5rem 0.9rem 0.5rem 2.2rem;
    border: 1px solid var(--dcid-line-strong);
    border-radius: var(--dcid-radius);
    background: #fafbf8;
}
.dcid-picker .form-check-inline:has(.form-check-input:checked) {
    border-color: var(--dcid-od);
    background: var(--dcid-od-tint);
}

/* ---------- Country brief ---------- */
.dcid-brief-head {
    border-bottom: 1px solid var(--dcid-line-strong);
    padding-bottom: 1rem;
    margin-bottom: 1.25rem !important;
}
.dcid-brief-head h1 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.85rem;
    font-size: clamp(2.4rem, 4.5vw, 3.4rem);
    margin-bottom: 0.6rem;
}
/* The contract type as a stencilled tab: the one bold device on the brief. */
.dcid-contract-tag {
    display: inline-block;
    font-family: var(--dcid-font-display);
    font-weight: 700;
    font-size: 0.55em;
    letter-spacing: 0.1em;
    line-height: 1;
    color: #fff;
    background: var(--dcid-od);
    padding: 0.35em 0.6em 0.3em 0.7em;
    border-radius: 2px;
    border-left: 5px solid var(--dcid-bronze);
}
.dcid-brief-meta { color: var(--dcid-muted); }
.dcid-brief-meta .badge { vertical-align: 0.1em; }
.dcid-brief-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}
.dcid-brief-tools nav a {
    font-family: var(--dcid-font-display);
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.05em;
    text-decoration: none;
    border: 1px solid var(--dcid-line-strong);
    border-radius: 2px;
    padding: 0.15rem 0.55rem;
    background: var(--dcid-surface);
}
.dcid-brief-tools nav a:hover { border-color: var(--dcid-od); background: var(--dcid-od-tint); }

.dcid-plain-text { white-space: pre-line; }

/* Travel advisory: level carried by text; colour is only a cue. */
.dcid-advisory {
    border: 1px solid var(--dcid-line);
    border-left: 6px solid #6c757d;
    border-radius: var(--dcid-radius);
    padding: 0.75rem 1rem;
    background: var(--dcid-surface);
}
.dcid-advisory-1 { border-left-color: #2f6b3a; background: #f1f6ef; }
.dcid-advisory-2 { border-left-color: #a07a00; background: #fbf6e6; }
.dcid-advisory-3 { border-left-color: #b35900; background: #fcf0e4; }
.dcid-advisory-4 { border-left-color: #a4161a; background: #fbecea; }

/* Requirement cards: the left rule encodes mandatory vs optional (the badge carries the text). */
[data-testid='requirements'] article.card {
    border-left: 4px solid var(--dcid-line-strong);
}
[data-testid='requirements'] article.card:has(.text-bg-danger) {
    border-left-color: var(--dcid-danger);
}
[data-testid='requirements'] h3 {
    font-size: 1.3rem;
    color: var(--dcid-bronze);
    margin-top: 1.25rem;
}
.dcid-contract-note {
    border-left-color: var(--dcid-od) !important;
    border-left-width: 3px !important;
    background: var(--dcid-od-tint);
    padding: 0.5rem 0.75rem !important;
}

[data-testid='state-panel'] dt {
    font-weight: 700;
    font-size: 0.95rem;
    margin-top: 0.75rem;
}
[data-testid='state-panel'] dt:first-child { margin-top: 0; }

[data-testid='disclaimer'] {
    border-left: 4px solid var(--dcid-bronze);
    padding: 0.5rem 0.9rem;
    background: var(--dcid-surface);
}

[data-testid='checklist'] {
    background: var(--dcid-surface);
    border: 1px solid var(--dcid-line);
    border-radius: var(--dcid-radius);
    padding: 1.25rem 1.5rem;
}

/* ---------- Sign-in ---------- */
.dcid-signin {
    max-width: 30rem;
    background: var(--dcid-surface);
    border: 1px solid var(--dcid-line);
    border-top: 4px solid var(--dcid-od);
    border-radius: var(--dcid-radius);
    padding: 2rem;
    margin: 1rem 0 2rem;
}
.dcid-signin-emblem { width: 3.5rem; height: auto; margin-bottom: 0.75rem; }
.dcid-signin h1 { font-size: 2.1rem; }

/* ---------- Layout helpers (no style attributes: CSP) ---------- */
.dcid-w-24 { max-width: 24rem; }
.dcid-w-40 { max-width: 40rem; }
.dcid-w-48 { max-width: 48rem; }
.dcid-pre-wrap { white-space: pre-wrap; }

/* ---------- Blazor error boundary ---------- */
.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, var(--dcid-danger);
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
    border-radius: var(--dcid-radius);
}
.blazor-error-boundary::after { content: "An error has occurred."; }

/* ---------- Print: briefs get printed for travel folders ---------- */
@media print {
    html, body { background: #fff; }
    .dcid-marking { position: static !important; }
    .sidebar, .top-row, form button, .navbar-toggler, #blazor-error-ui { display: none !important; }
    .content { padding: 0 !important; }
    .card, .dcid-picker, [data-testid='checklist'] { break-inside: avoid; }
}

@media (max-width: 640.98px) {
    h1, .h1 { font-size: 2.1rem; }
    .dcid-hero { padding: 2rem 1.25rem 2.25rem; }
    .dcid-hero::before { width: 18rem; height: 18rem; right: -6rem; opacity: 0.1; }
    .dcid-hero-note { display: block; margin: 0.75rem 0 0; }
    .dcid-hero-acronym { font-size: 1rem; letter-spacing: 0.04em; }
    .dcid-picker { padding: 1rem; }
    .dcid-signin { padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Authenticator enrollment QR code ---------- */
.dcid-qr {
    display: block;
    width: 12rem;
    height: 12rem;
    margin: 0.5rem 0 1rem;
    image-rendering: pixelated;
    background: #fff;
    border-radius: var(--dcid-radius);
}

/* ---------- Markdown editor (MarkdownEditor component + js/markdown-editor.js) ---------- */
/* TipTap's own <style> injection is off (CSP: style-src 'self'); these are its required base rules. */
.ProseMirror { position: relative; word-wrap: break-word; white-space: pre-wrap; white-space: break-spaces;
    font-variant-ligatures: none; font-feature-settings: "liga" 0; }
.ProseMirror [contenteditable="false"] { white-space: normal; }
.ProseMirror [contenteditable="false"] [contenteditable="true"] { white-space: pre-wrap; }
.ProseMirror pre { white-space: pre-wrap; }
img.ProseMirror-separator { display: inline !important; border: none !important; margin: 0 !important;
    width: 0 !important; height: 0 !important; }
.ProseMirror-gapcursor { display: none; pointer-events: none; position: absolute; margin: 0; }
.ProseMirror-gapcursor:after { content: ""; display: block; position: absolute; top: -2px; width: 20px;
    border-top: 1px solid black; animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite; }
@keyframes ProseMirror-cursor-blink { to { visibility: hidden; } }
.ProseMirror-hideselection *::selection { background: transparent; }
.ProseMirror-hideselection * { caret-color: transparent; }
.ProseMirror-focused .ProseMirror-gapcursor { display: block; }

.dcid-md-toolbar { display: flex; flex-wrap: wrap; gap: 0.375rem; align-items: center; margin-bottom: 0.375rem; }
.dcid-md-toolbar[hidden] { display: none; }
.dcid-md-toolbar .btn { --bs-btn-font-weight: 500; min-width: 2.25rem; }
.dcid-md-toolbar .btn[aria-pressed="true"] { background-color: var(--dcid-od-tint); border-color: var(--dcid-od); color: var(--dcid-od-dark); }
.dcid-md-content { min-height: 7rem; max-height: 28rem; overflow-y: auto; cursor: text; }
.dcid-md-content:focus { border-color: var(--dcid-bronze); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--dcid-bronze); outline: none; }
.dcid-md-content > :first-child { margin-top: 0; }
.dcid-md-content > :last-child { margin-bottom: 0; }
.dcid-md-content p { margin-bottom: 0.5rem; }
.dcid-md-content ul, .dcid-md-content ol { padding-left: 1.5rem; margin-bottom: 0.5rem; }
.dcid-md-content h3 { font-size: 1.1rem; margin: 0.5rem 0 0.25rem; }
.dcid-md-content h4 { font-size: 1rem; margin: 0.5rem 0 0.25rem; }
.dcid-md-content blockquote { border-left: 3px solid var(--dcid-line-strong); padding-left: 0.75rem; color: var(--dcid-muted); margin: 0 0 0.5rem; }
.dcid-md-content a { color: var(--dcid-od-dark); text-decoration: underline; }
.dcid-md-count { text-align: right; margin-top: 0.125rem; }
