/* ============================================================
   Zgodny BIP — Public Stylesheet
   WCAG 2.2 AA compliant
   ============================================================ */

/* ── Design Tokens ──────────────────────────────────── */
:root {
    --bip-navy:       #003366;
    --bip-navy-dark:  #002244;
    --bip-navy-rgb:   0, 51, 102;
    --bip-gold:       #C8A415;
    --bip-gold-light: #FFD700;
    --bip-blue:       #0056b3;
    --bip-blue-hover: #003d80;
    --bip-blue-rgb:   0, 86, 179;
    --bip-red:        #c0392b;

    --text:           #1a1a1a;
    --text-muted:     #555555;
    --text-light:     #ffffff;
    --bg:             #ffffff;
    --bg-alt:         #f5f5f5;
    --bg-soft:        #f8fafc;
    --bg-sidebar:     #f0f2f5;
    --border:         #d0d0d0;
    --border-light:   #e5e5e5;

    --bip-radius-xs:      4px;
    --bip-radius-sm:      8px;
    --bip-radius-md:      10px;
    --bip-radius-lg:      12px;
    --bip-radius-xl:      16px;
    --bip-radius-pill:    999px;

    --header-bg:                #f8fafc;
    --header-surface:           #eef3f8;
    --header-text:              #17324d;
    --header-text-muted:        #48627a;
    --header-border:            #d4deea;
    --header-search-bg:         #ffffff;
    --header-search-border:     #c5d3e1;
    --header-search-placeholder:#6d8093;
    --header-accent:            #0b5cab;
    --header-accent-hover:      #084a8a;
    --header-nav-hover-bg:      rgba(11, 92, 171, 0.08);
    --header-nav-active-bg:     rgba(11, 92, 171, 0.12);

    --font-base:      'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --font-size-base:  16px;
    --line-height:     1.6;
    --max-width:       1260px;
    --sidebar-w:       280px;

    --focus-color:     #005fcc;
    --focus-outline:   3px solid var(--focus-color);
}

[data-bip-palette="soft-gray"] {
    --bip-navy:       #2f6ea6;
    --bip-navy-dark:  #235887;
    --bip-navy-rgb:   47, 110, 166;
    --bip-gold:       #6b7280;
    --bip-gold-light: #9ca3af;
    --bip-blue:       #2b78c2;
    --bip-blue-hover: #1f5f9c;
    --bip-blue-rgb:   43, 120, 194;
    --text:           #1f2933;
    --text-muted:     #5b6470;
    --bg:             #ffffff;
    --bg-alt:         #f3f5f7;
    --bg-soft:        #f8fafc;
    --bg-sidebar:     #eef2f5;
    --border:         #d7dde4;
    --border-light:   #e7ebf0;
    --focus-color:    #2b78c2;
    --header-bg:                #f8fafc;
    --header-surface:           #eef3f7;
    --header-text:              #203448;
    --header-text-muted:        #5f7080;
    --header-border:            #d6e0ea;
    --header-search-bg:         #ffffff;
    --header-search-border:     #cad6e2;
    --header-search-placeholder:#6c7c8c;
    --header-accent:            #2b78c2;
    --header-accent-hover:      #1f5f9c;
    --header-nav-hover-bg:      rgba(43, 120, 194, 0.08);
    --header-nav-active-bg:     rgba(43, 120, 194, 0.14);
}

[data-bip-palette="slate"] {
    --bip-navy:       #24445f;
    --bip-navy-dark:  #183145;
    --bip-navy-rgb:   36, 68, 95;
    --bip-gold:       #c79d52;
    --bip-gold-light: #dec28f;
    --bip-blue:       #3e6787;
    --bip-blue-hover: #2c4f69;
    --bip-blue-rgb:   62, 103, 135;
    --text:           #182531;
    --text-muted:     #526271;
    --bg:             #fbfcfd;
    --bg-alt:         #eef3f7;
    --bg-soft:        #f7f9fb;
    --bg-sidebar:     #edf2f6;
    --border:         #cad5df;
    --border-light:   #dde5ec;
    --focus-color:    #2f5f84;
    --header-bg:                #f7f9fb;
    --header-surface:           #e9eef4;
    --header-text:              #22384c;
    --header-text-muted:        #5f7284;
    --header-border:            #d2dbe5;
    --header-search-bg:         #ffffff;
    --header-search-border:     #c2cfdb;
    --header-search-placeholder:#6d7d8d;
    --header-accent:            #3e6787;
    --header-accent-hover:      #2c4f69;
    --header-nav-hover-bg:      rgba(62, 103, 135, 0.08);
    --header-nav-active-bg:     rgba(62, 103, 135, 0.14);
}

[data-bip-radius="sharp"] {
    --bip-radius-xs: 0;
    --bip-radius-sm: 0;
    --bip-radius-md: 0;
    --bip-radius-lg: 0;
    --bip-radius-xl: 0;
    --bip-radius-pill: 0;
}

[data-bip-radius="sharp"] :where(
    .skip-link,
    .a11y-btn,
    .bip-header-search input,
    .bip-header-search button,
    .bip-nav-link,
    .bip-subnav,
    .bip-subnav-link,
    .bip-sidebar,
    .bip-content,
    .bip-sidebar-banner,
    .breadcrumbs,
    .page-intro,
    .page-list-item,
    .search-form input,
    .search-form button,
    .info-requests-filter,
    .info-requests-filter-field select,
    .info-requests-filter-submit,
    .info-requests-filter-reset,
    .info-requests-table-shell,
    .info-requests-status,
    .info-requests-empty-state,
    .search-hero-input-wrap input,
    .search-filter-group select,
    .search-filter-group input[type="date"],
    .search-result,
    .search-suggestions,
    .version-preview-button,
    .version-preview-dialog,
    .sitemap-tree-link,
    .sitemap-tree-link-secondary,
    .sitemap-tree-link-page,
    .category-hero-media,
    .authority-section-link,
    .authority-section-link-count,
    .authority-card-link,
    .authority-card-avatar,
    .authority-detail-avatar,
    .authority-empty-state,
    .authority-detail-hero,
    .authority-detail-media,
    .authority-detail-chip,
    .authority-detail-panel,
    .authority-contact-card,
    .authority-related-list a,
    .bip-home-panel,
    .bip-home-contact-item,
    .bip-home-contact-icon,
    .bip-home-info-item,
    .bip-home-info-pair,
    .bip-home-info-actions-top,
    .bip-home-info-button,
    .bip-home-card,
    .bip-home-card .card-icon,
    .bip-home-card-media,
    .bip-home-card-count,
    .category-subcategory-card
) {
    border-radius: 0 !important;
}

[data-bip-radius="sharp"] :where(
    .category-hero-media,
    .authority-section-link,
    .authority-section-link-count,
    .authority-card-link,
    .authority-card-avatar,
    .authority-detail-avatar,
    .authority-detail-hero,
    .authority-detail-media,
    .authority-detail-panel,
    .authority-contact-card,
    .authority-related-list a,
    .bip-home-panel,
    .bip-home-contact-item,
    .bip-home-contact-icon,
    .bip-home-info-item,
    .bip-home-info-pair,
    .bip-home-info-actions-top,
    .bip-home-info-button,
    .bip-home-card,
    .bip-home-card .card-icon,
    .bip-home-card-media,
    .bip-home-card-count
) {
    border-radius: 4px !important;
}

/* ── High-contrast mode ─────────────────────────────── */
[data-contrast="high"] {
    --text:        #000000;
    --text-muted:  #000000;
    --bg:          #ffffff;
    --bg-alt:      #ffffff;
    --bg-sidebar:  #ffffff;
    --border:      #000000;
    --border-light:#000000;
    --bip-navy:    #000000;
    --bip-blue:    #000000;
    --bip-blue-rgb: 0, 0, 0;
    --focus-color: #000000;
    --contrast-bg: #ffffff;
    --contrast-surface: #ffffff;
    --contrast-text: #000000;
    --contrast-border: #000000;
    --contrast-muted: #1a1a1a;
    --contrast-interactive-bg: #000000;
    --contrast-interactive-text: #ffffff;
    --contrast-interactive-border: #000000;
    --contrast-field-bg: #ffffff;
    --contrast-field-text: #000000;
    --contrast-field-border: #000000;
    --contrast-field-placeholder: #333333;
}

/* ── Dark mode ──────────────────────────────────────── */
[data-bip-theme="dark"] {
    --text:        #e0e0e0;
    --text-muted:  #b0b0b0;
    --text-light:  #ffffff;
    --bg:          #121212;
    --bg-alt:      #1e1e1e;
    --bg-sidebar:  #1a1a2e;
    --border:      #333333;
    --border-light:#2a2a2a;
    --bip-navy:    #1a3a5c;
    --bip-navy-dark:#0f2038;
    --bip-blue:    #93c5fd;
    --bip-blue-hover: #bfdbfe;
    --bip-blue-rgb: 147, 197, 253;
    --bg-soft:      #172033;
    --header-bg:                #102033;
    --header-surface:           #0d1a2c;
    --header-text:              #f8fafc;
    --header-text-muted:        #c8d3df;
    --header-border:            #22364d;
    --header-search-bg:         rgba(255,255,255,0.08);
    --header-search-border:     rgba(255,255,255,0.22);
    --header-search-placeholder:#a9b9ca;
    --header-accent:            #c8a415;
    --header-accent-hover:      #e0bd3f;
    --header-nav-hover-bg:      rgba(255,255,255,0.08);
    --header-nav-active-bg:     rgba(255,255,255,0.12);
}

[data-bip-theme="dark"][data-contrast="high"] {
    --text:        #ffffff;
    --text-muted:  #ffffff;
    --bg:          #000000;
    --bg-alt:      #000000;
    --bg-sidebar:  #000000;
    --border:      #ffffff;
    --border-light:#ffffff;
    --bip-navy:    #000000;
    --bip-navy-dark:#000000;
    --bip-blue:    #ffffff;
    --bip-blue-hover: #ffffff;
    --bip-blue-rgb: 255, 255, 255;
    --focus-color: #ffffff;
    --contrast-bg: #000000;
    --contrast-surface: #000000;
    --contrast-text: #ffffff;
    --contrast-border: #ffffff;
    --contrast-muted: #f5f5f5;
    --contrast-interactive-bg: #ffffff;
    --contrast-interactive-text: #000000;
    --contrast-interactive-border: #ffffff;
    --contrast-field-bg: #000000;
    --contrast-field-text: #ffffff;
    --contrast-field-border: #ffffff;
    --contrast-field-placeholder: #d9d9d9;
}

[data-bip-theme="dark"] body {
    background: var(--bg);
}

/* ── Reset & Base ───────────────────────────────────── */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    font-size: var(--font-size-base);
    scroll-behavior: auto;
}

body {
    margin: 0;
    font-family: var(--font-base);
    font-size: 1rem;
    line-height: var(--line-height);
    color: var(--text);
    background: linear-gradient(180deg, var(--bg) 0%, var(--bg-alt) 100%);
    -webkit-font-smoothing: antialiased;
}

/* ── Focus (WCAG) ───────────────────────────────────── */
:focus-visible {
    outline: var(--focus-outline);
    outline-offset: 2px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: var(--focus-outline);
    outline-offset: 2px;
}

.bip-key-pulse {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 100000;
    width: 44px;
    height: 44px;
    border: 3px solid var(--bip-blue);
    border-radius: 999px;
    pointer-events: none;
    box-shadow: 0 0 0 4px rgba(0, 85, 165, .14);
    opacity: .85;
    transform: translate(-50%, -50%) scale(.55);
    animation: bip-key-pulse .65s ease-out forwards;
}

.bip-key-pulse--pointer {
    width: 72px;
    height: 72px;
    border-width: 4px;
    box-shadow: 0 0 0 5px rgba(0, 85, 165, .16), 0 0 22px rgba(0, 85, 165, .22);
}

@keyframes bip-key-pulse {
    to {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.7);
    }
}

[data-bip-theme="dark"] .bip-key-pulse {
    border-color: #93c5fd;
    box-shadow: 0 0 0 4px rgba(147, 197, 253, .22);
}

[data-contrast="high"] .bip-key-pulse {
    border-color: var(--contrast-border, #000);
    box-shadow: 0 0 0 5px var(--contrast-bg, #fff);
}

@media (prefers-reduced-motion: reduce) {
    .bip-key-pulse {
        display: none;
        animation: none;
    }
}

/* ── Screen-reader only (visually hidden) ───────────── */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ── Skip to content (WCAG) ─────────────────────────── */
.skip-link {
    position: absolute;
    top: -100%;
    left: 16px;
    z-index: 10000;
    padding: 12px 24px;
    background: var(--bip-navy);
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    border-radius: 0 0 8px 8px;
    transition: top 0.2s;
}

.skip-link:focus {
    top: 0;
}

/* ── Accessibility toolbar ──────────────────────────── */
.a11y-toolbar {
    background: var(--header-surface);
    padding: 6px 0;
    border-bottom: 1px solid var(--header-border);
}

.a11y-toolbar .container {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.a11y-toolbar .a11y-official-link {
    margin-right: auto;
    font-weight: 700;
}

.a11y-extra {
    display: contents;
}

.a11y-btn.a11y-more-toggle {
    display: none;
}

.a11y-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    background: rgba(255,255,255,0.78);
    border: 1px solid var(--header-border);
    border-radius: 4px;
    color: var(--header-text);
    font-size: 0.8125rem;
    cursor: pointer;
    transition: background 0.15s;
    text-decoration: none;
    font-family: inherit;
    line-height: 1.4;
}

.a11y-btn:hover,
.a11y-btn:focus-visible {
    background: #ffffff;
}

.a11y-btn.active {
    background: var(--header-accent);
    color: #ffffff;
    border-color: var(--header-accent);
}

.a11y-btn i {
    font-size: 0.875rem;
}

[data-bip-theme="dark"] .a11y-toolbar {
    background: linear-gradient(180deg, #13253a 0%, #0d1a2c 100%);
    border-bottom-color: rgba(148, 163, 184, 0.22);
}

[data-bip-theme="dark"] .a11y-btn {
    background: rgba(255,255,255,0.08);
    border-color: rgba(148, 163, 184, 0.3);
    color: #e5edf5;
}

[data-bip-theme="dark"] .a11y-btn:hover,
[data-bip-theme="dark"] .a11y-btn:focus-visible {
    background: rgba(255,255,255,0.14);
    border-color: rgba(191, 219, 254, 0.45);
    color: #ffffff;
}

[data-bip-theme="dark"] .a11y-btn.active {
    background: var(--header-accent);
    border-color: var(--header-accent);
    color: #0f172a;
}

[data-bip-theme="dark"] .a11y-btn.active:hover,
[data-bip-theme="dark"] .a11y-btn.active:focus-visible {
    background: var(--header-accent-hover);
    border-color: var(--header-accent-hover);
    color: #0f172a;
}

[data-bip-theme="dark"] .megamenu-toggle {
    background: rgba(255,255,255,0.08);
    border-color: rgba(148, 163, 184, 0.3);
    color: #e5edf5;
}

[data-bip-theme="dark"] .megamenu-toggle:hover,
[data-bip-theme="dark"] .megamenu-toggle:focus-visible {
    background: rgba(255,255,255,0.14);
    border-color: rgba(191, 219, 254, 0.45);
    color: #ffffff;
}

[data-contrast="high"] .a11y-toolbar {
    background: var(--contrast-bg);
    border-bottom-color: var(--contrast-border);
}

[data-contrast="high"] .a11y-btn {
    background: transparent;
    border: 2px solid var(--contrast-border);
    color: var(--contrast-text);
}

@media (max-width: 640px) {
    .a11y-toolbar .container {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        justify-content: normal;
        align-items: center;
        gap: 6px;
    }

    .a11y-toolbar .a11y-official-link {
        margin-right: 0;
        justify-self: start;
    }

    .a11y-toolbar .a11y-accessibility-link {
        justify-self: end;
        max-width: 174px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .a11y-toolbar .a11y-more-toggle {
        display: inline-flex;
        justify-self: end;
    }

    .a11y-toolbar .a11y-extra {
        display: none;
        grid-column: 1 / -1;
        width: 100%;
        gap: 6px;
        flex-wrap: wrap;
        justify-content: flex-end;
        padding-top: 4px;
    }

    .a11y-toolbar.is-tools-open .a11y-extra {
        display: flex;
    }

    .a11y-toolbar.is-tools-open .container {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        flex-wrap: wrap;
    }

    .a11y-toolbar.is-tools-open .a11y-official-link {
        margin-right: auto;
    }

    .a11y-toolbar.is-tools-open .a11y-accessibility-link {
        max-width: none;
    }

    .a11y-toolbar.is-tools-open .a11y-extra {
        display: contents;
        width: auto;
        padding-top: 0;
    }
}

[data-contrast="high"] .a11y-btn:hover,
[data-contrast="high"] .a11y-btn:focus-visible,
[data-contrast="high"] .a11y-btn.active {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
    border-color: var(--contrast-interactive-border);
}

/* ── Container ──────────────────────────────────────── */
.container {
    width: 100%;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 18px;
}

.a11y-toolbar > .container,
.bip-header > .container,
.bip-nav > .container {
    max-width: calc(var(--max-width) + 48px);
}

/* ── BIP Header ─────────────────────────────────────── */
.bip-header {
    background: var(--header-bg);
    color: var(--header-text);
    padding: 0;
    border-bottom: 1px solid var(--header-border);
}

.bip-header-top {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 20px 0;
}

.bip-header-brand {
    display: flex;
    align-items: center;
    gap: 20px;
    min-width: 0;
    flex: 1 1 auto;
}

.bip-logo {
    display: flex;
    align-items: center;
    text-decoration: none;
    gap: 16px;
    min-width: 0;
}

.bip-logo img {
    width: 100px;
    height: auto;
    object-fit: contain;
    flex-shrink: 0;
}

.bip-logo-text {
    color: var(--header-text);
    min-width: 0;
}

.bip-logo-text h1 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
}

.bip-logo-text .bip-unit-name {
    font-size: 1rem;
    font-weight: 400;
    color: var(--header-text-muted);
    margin-top: 2px;
}

.bip-header-emblem {
    width: 88px;
    min-height: 88px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 18px;
    border-left: 1px solid var(--header-border);
    flex-shrink: 0;
}

.bip-header-emblem img {
    width: 72px;
    height: auto;
    max-height: 84px;
    display: block;
}

.bip-header-search {
    margin-left: auto;
    position: relative;
    width: 320px;
    flex-shrink: 0;
}

.bip-header-search input {
    width: 100%;
    padding: 10px 44px 10px 16px;
    border: 2px solid var(--header-search-border);
    border-radius: 8px;
    background: var(--header-search-bg);
    color: var(--header-text);
    font-size: 0.9375rem;
    font-family: inherit;
    outline: none;
    transition: border-color 0.2s, background 0.2s;
}

.bip-header-search input::placeholder {
    color: var(--header-search-placeholder);
}

.bip-header-search input:focus {
    border-color: var(--header-accent);
    background: #ffffff;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--header-accent) 24%, transparent);
}

.bip-header-search button {
    position: absolute;
    right: 4px;
    top: 4px;
    bottom: 4px;
    width: 36px;
    border: none;
    background: var(--header-accent);
    color: #ffffff;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
}

.bip-header-search button:hover {
    background: var(--header-accent-hover);
}

/* ── Main nav ───────────────────────────────────────── */
.bip-nav {
    background: var(--header-bg);
    border-top: 1px solid var(--header-border);
    border-bottom: 1px solid var(--header-border);
}

.bip-nav .container {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 0;
    overflow: visible;
    position: relative;
}

.bip-nav-item {
    position: relative;
    display: flex;
}

.bip-nav-item--utility {
    margin-left: auto;
}

.bip-nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 24px 14px;
    color: var(--header-text);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    white-space: nowrap;
    border-bottom: 4px solid transparent;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.bip-nav-link:hover,
.bip-nav-link:focus-visible,
.bip-nav-item:hover > .bip-nav-link,
.bip-nav-item:focus-within > .bip-nav-link {
    color: var(--header-text);
    background: rgba(var(--bip-navy-rgb), 0.04);
    border-bottom-color: rgba(var(--bip-navy-rgb), 0.22);
}

.bip-nav-link.active,
.bip-nav-item.is-active > .bip-nav-link {
    color: var(--header-text);
    border-bottom-color: var(--bip-red);
    background: transparent;
    font-weight: 500;
}

.bip-nav-link i {
    width: 20px;
    text-align: center;
    font-size: 1.08rem;
    opacity: 1;
    color: currentColor;
}

.bip-nav-link--separator {
    cursor: default;
    color: var(--header-text-muted);
}

.bip-nav-link--separator i {
    opacity: 0.55;
}

.bip-nav-item.has-children:hover > .bip-nav-link--separator,
.bip-nav-item.has-children:focus-within > .bip-nav-link--separator {
    background: var(--header-nav-hover-bg);
    border-bottom-color: rgba(var(--bip-navy-rgb), 0.22);
    color: var(--header-text);
}

.bip-nav-caret {
    font-size: 0.75rem;
    opacity: 0.7;
}

.bip-nav-item.has-children:hover .bip-nav-caret,
.bip-nav-item.has-children:focus-within .bip-nav-caret {
    transform: rotate(180deg);
}

.bip-subnav {
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    min-width: 240px;
    display: grid;
    gap: 4px;
    padding: 10px;
    border: 1px solid var(--border-light);
    border-radius: 0 0 14px 14px;
    background: var(--bg);
    box-shadow: 0 18px 40px rgba(var(--bip-navy-rgb), 0.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
    z-index: 20;
}

.bip-nav-item:hover .bip-subnav,
.bip-nav-item:focus-within .bip-subnav {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.bip-subnav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    color: var(--text);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
}

.bip-subnav-link:hover,
.bip-subnav-link:focus-visible,
.bip-subnav-link.active {
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
}

.bip-subnav-link i {
    width: 16px;
    text-align: center;
    color: var(--bip-navy);
}

.bip-subnav-separator {
    display: grid;
    gap: 4px;
    margin: 4px 0 2px;
    padding: 10px 12px 8px;
    border-top: 1px solid var(--border-light);
}

.bip-subnav-separator:first-child {
    margin-top: 0;
    padding-top: 6px;
    border-top: 0;
}

.bip-subnav-separator-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.bip-subnav-separator-text {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--text-muted);
}

[data-contrast="high"] .bip-header,
[data-contrast="high"] .bip-nav {
    background: var(--contrast-bg);
    color: var(--contrast-text);
    border-color: var(--contrast-border);
}

[data-contrast="high"] .bip-logo-text,
[data-contrast="high"] .bip-logo-text h1,
[data-contrast="high"] .bip-logo-text .bip-unit-name {
    color: var(--contrast-text);
}

[data-contrast="high"] .bip-header-emblem {
    border-left-color: var(--contrast-border);
}

[data-contrast="high"] .bip-header-search input {
    background: var(--contrast-field-bg);
    border: 2px solid var(--contrast-field-border);
    color: var(--contrast-field-text);
}

[data-contrast="high"] .bip-header-search input::placeholder {
    color: var(--contrast-field-placeholder);
}

[data-contrast="high"] .bip-header-search input:focus {
    border-color: var(--contrast-field-border);
    background: var(--contrast-field-bg);
}

[data-contrast="high"] .bip-header-search button {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
    border: 2px solid var(--contrast-interactive-border);
}

[data-contrast="high"] .bip-header-search button:hover,
[data-contrast="high"] .bip-header-search button:focus-visible {
    background: var(--contrast-bg);
    color: var(--contrast-text);
    border-color: var(--contrast-border);
}

[data-contrast="high"] .bip-nav {
    border-top: 2px solid var(--contrast-border);
}

[data-contrast="high"] .bip-nav-link {
    color: var(--contrast-text);
    border-bottom-color: transparent;
}

[data-contrast="high"] .bip-nav-link:hover,
[data-contrast="high"] .bip-nav-link:focus-visible,
[data-contrast="high"] .bip-nav-item:hover > .bip-nav-link,
[data-contrast="high"] .bip-nav-item:focus-within > .bip-nav-link,
[data-contrast="high"] .bip-nav-link.active,
[data-contrast="high"] .bip-nav-item.is-active > .bip-nav-link {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
    border-bottom-color: var(--contrast-interactive-border);
}

[data-contrast="high"] .bip-nav-link i,
[data-contrast="high"] .bip-nav-caret {
    color: inherit;
    opacity: 1;
}

[data-contrast="high"] .bip-subnav {
    background: var(--contrast-surface);
    border: 2px solid var(--contrast-border);
    box-shadow: none;
}

[data-contrast="high"] .bip-subnav-link {
    color: var(--contrast-text);
}

[data-contrast="high"] .bip-subnav-link:hover,
[data-contrast="high"] .bip-subnav-link:focus-visible,
[data-contrast="high"] .bip-subnav-link.active {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

[data-contrast="high"] .bip-subnav-link i {
    color: inherit;
}

/* ── Main layout: sidebar + content ─────────────────── */
.bip-main {
    display: flex;
    gap: 24px;
    min-height: calc(100vh - 280px);
    max-width: calc(var(--max-width) + 48px);
    margin: 24px auto 40px;
    padding: 0 20px;
    align-items: flex-start;
}

.bip-sidebar {
    width: var(--sidebar-w);
    flex-shrink: 0;
    background: #ffffff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    padding: 0;
    box-shadow: none;
    overflow: hidden;
}

.bip-sidebar-title {
    padding: 17px 16px;
    font-size: 0.8125rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0;
    line-height: 1.5;
    color: #001d50;
    background: #ffffff;
    border-bottom: 1px solid var(--border-light);
}

.bip-sidebar-title-description {
    padding: 0 24px 14px;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--text-muted);
}

.bip-sidebar-title-description--megamenu {
    padding: 0 0 14px;
}

[data-contrast="high"] .bip-sidebar {
    background: var(--contrast-bg);
    border: 2px solid var(--contrast-border);
    box-shadow: none;
}

[data-contrast="high"] .bip-sidebar-title {
    color: var(--contrast-text);
    background: var(--contrast-bg);
    border-bottom: 2px solid var(--contrast-border);
}

[data-contrast="high"] .bip-sidebar-title-description {
    color: var(--contrast-text);
}

.bip-sidebar-tree {
    display: grid;
    gap: 0;
}

.bip-sidebar-banners {
    display: grid;
    gap: 10px;
    padding: 16px 16px 16px;
}

.bip-sidebar-banners-top {
    padding: 16px 16px 20px;
}

.bip-sidebar-banner--sidebar {
    aspect-ratio: auto;
    min-height: 7rem;
    border-radius: var(--banner-radius, 18px);
    box-shadow: 0 8px 18px rgba(var(--bip-navy-rgb), 0.07);
}

.bip-sidebar-banner--sidebar .bip-sidebar-banner-body {
    flex: 1;
    padding: 14px 14px 13px;
    gap: 5px;
    align-content: start;
}

.bip-sidebar-banner--sidebar .bip-sidebar-banner-text {
    gap: 4px;
}

.bip-sidebar-banner--sidebar .bip-sidebar-banner-title {
    font-size: 0.9rem;
    line-height: 1.16;
}

.bip-sidebar-banner--sidebar .bip-sidebar-banner-subtitle {
    font-size: 0.75rem;
    line-height: 1.35;
}

.bip-sidebar-banner--sidebar .bip-sidebar-banner-link {
    margin-top: 4px;
    font-size: 0.75rem;
    gap: 6px;
    line-height: 1.2;
}

.bip-sidebar-banner--sidebar .bip-sidebar-banner-orb {
    display: none;
}

.bip-sidebar-banner--sidebar.has-image .bip-sidebar-banner-body {
    padding: 14px;
    align-content: end;
}

.bip-sidebar-banner--sidebar.banner-variant-01 .bip-sidebar-banner-body {
    padding: 14px 14px 13px;
    align-content: start;
}

.bip-sidebar-banner--sidebar.banner-variant-01 .bip-sidebar-banner-title::after {
    width: 34px;
    margin-top: 4px;
}

.bip-sidebar-banner--sidebar.banner-variant-01 .bip-sidebar-banner-subtitle {
    margin-top: 1px;
}

.bip-banner-strip {
    margin: 18px auto 0;
}

.bip-banner-strip-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.bip-banner-strip-grid .bip-sidebar-banner {
    height: 100%;
}

.bip-sidebar-banner {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: clip;
    border-radius: var(--banner-radius, 18px);
    border: 1px solid var(--border-light);
    background: var(--bg);
    text-decoration: none;
    color: var(--text);
    box-shadow: 0 12px 24px rgba(var(--bip-navy-rgb), 0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.bip-sidebar-banner.has-image {
    background: #081a2d;
    color: #fff;
}

.bip-sidebar-banner.is-color {
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
    border-color: rgba(var(--banner-text-rgb), 0.14);
    color: var(--banner-text);
}

.bip-sidebar-banner.is-color::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0));
}

.bip-sidebar-banner-orb {
    position: absolute;
    top: -28px;
    right: -12px;
    width: 132px;
    height: 132px;
    border-radius: 999px;
    background: rgba(255,255,255,0.16);
    filter: blur(8px);
}

.bip-sidebar-banner-media {
    display: block;
    aspect-ratio: 16 / 7;
    background: var(--bg-alt);
    position: relative;
}
.bip-sidebar-banner-media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(3, 12, 25, 0.05), rgba(3, 12, 25, 0.38));
}

.bip-sidebar-banner-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.bip-sidebar-banner-body {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 6px;
    padding: 14px 16px 16px;
}

.bip-sidebar-banner.is-color .bip-sidebar-banner-body {
    flex: 1;
    align-content: end;
    padding: 18px;
}

.bip-sidebar-banner.has-image .bip-sidebar-banner-body {
    background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(4, 17, 33, 0.88));
}

.bip-sidebar-banner-title {
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.35;
}

.bip-sidebar-banner-subtitle {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--banner-subtitle, var(--text-muted));
}

.bip-sidebar-banner.has-image .bip-sidebar-banner-subtitle,
.bip-sidebar-banner.is-color .bip-sidebar-banner-subtitle {
    color: var(--banner-subtitle, rgb(var(--banner-text-rgb) / 0.82));
}

.bip-sidebar-banner-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--banner-link, var(--bip-blue));
    margin-top: 4px;
}

.bip-sidebar-banner.has-image .bip-sidebar-banner-link,
.bip-sidebar-banner.is-color .bip-sidebar-banner-link {
    color: var(--banner-link, var(--banner-text));
}

.bip-sidebar-banner:hover {
    border-color: var(--bip-blue);
    box-shadow: 0 18px 34px rgba(var(--bip-navy-rgb), 0.12);
    transform: translateY(-2px);
}

.bip-sidebar-banner:not(.bip-sidebar-banner--sidebar) {
    aspect-ratio: 16 / 6;
    min-height: 0;
    display: grid;
}

.bip-sidebar-banner.has-image:not(.bip-sidebar-banner--sidebar) {
    aspect-ratio: 16 / 6;
}

.bip-sidebar-banner.has-image .bip-sidebar-banner-media {
    position: absolute;
    inset: 0;
    height: 100%;
    aspect-ratio: auto;
}

.bip-sidebar-banner.has-image .bip-sidebar-banner-body {
    flex: 1;
    align-content: end;
    padding: 18px;
}

.bip-sidebar-banner-text {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.bip-sidebar-banner-link {
    align-self: start;
}

.bip-sidebar-banner.banner-tone-light:not(.has-image) {
    box-shadow: 0 10px 20px rgba(var(--bip-navy-rgb), 0.05);
}

.bip-sidebar-banner.banner-tone-light.is-color::before {
    background: linear-gradient(180deg, rgba(255,255,255,0.22), rgba(255,255,255,0.04));
}

.bip-sidebar-banner.banner-tone-dark.is-color::before {
    background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(0,0,0,0.14));
}

.bip-sidebar-banner.banner-variant-01 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-02 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-04 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-05 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-06 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-08 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-09 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-10 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-11 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-15 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-16 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-17 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-19 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-body {
    flex: 1;
}

.bip-sidebar-banner.banner-variant-01 .bip-sidebar-banner-body {
    align-content: center;
    padding: 18px 20px;
}

.bip-sidebar-banner--sidebar.banner-variant-01 .bip-sidebar-banner-body {
    align-content: start;
    padding: 14px 14px 13px;
}

.bip-sidebar-banner.banner-variant-01 .bip-sidebar-banner-title {
    line-height: 1.05;
}

.bip-sidebar-banner--sidebar.banner-variant-01 .bip-sidebar-banner-title {
    line-height: 1.16;
}

.bip-sidebar-banner.banner-variant-01 .bip-sidebar-banner-title::after {
    content: '';
    display: block;
    width: 72px;
    height: 2px;
    margin-top: 7px;
    border-radius: 999px;
    background: currentColor;
    opacity: 0.7;
}

.bip-sidebar-banner--sidebar.banner-variant-01 .bip-sidebar-banner-title::after {
    width: 34px;
    margin-top: 4px;
}

.bip-sidebar-banner--sidebar.banner-variant-01 .bip-sidebar-banner-subtitle {
    margin-top: 1px;
}

.bip-sidebar-banner.banner-variant-01 .bip-sidebar-banner-subtitle {
    margin-top: 6px;
}

.bip-sidebar-banner.banner-variant-02 {
    border-color: rgba(var(--banner-text-rgb), 0.18);
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
}

.bip-sidebar-banner.banner-variant-02 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-09 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-11 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-16 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-body {
    align-content: center;
}

.bip-sidebar-banner.banner-variant-03 {
    border-width: 2px;
    border-color: rgba(var(--banner-text-rgb), 0.22);
    box-shadow: inset 0 0 0 1px rgb(var(--banner-text-rgb) / 0.12);
}

.bip-sidebar-banner.banner-variant-03::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 6px;
    background: linear-gradient(180deg, rgb(var(--banner-text-rgb) / 0.52) 0%, var(--banner-text) 100%);
}

.bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-title,
.bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-subtitle {
    padding-left: 8px;
}

.bip-sidebar-banner.banner-variant-04 {
    background: radial-gradient(circle at top right, rgb(var(--banner-text-rgb) / 0.18), transparent 24%), linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
}

.bip-sidebar-banner.banner-variant-04 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-05 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-10 .bip-sidebar-banner-body,
.bip-sidebar-banner.banner-variant-19 .bip-sidebar-banner-body {
    align-content: center;
}

.bip-sidebar-banner.banner-variant-05 {
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
}

.bip-sidebar-banner.banner-variant-06 {
    border-color: rgba(var(--banner-text-rgb), 0.18);
}

.bip-sidebar-banner.banner-variant-06 .bip-sidebar-banner-link,
.bip-sidebar-banner.banner-variant-16 .bip-sidebar-banner-link {
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.bip-sidebar-banner.banner-variant-08 {
    border-style: dashed;
    border-color: rgba(var(--banner-text-rgb), 0.24);
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
}

.bip-sidebar-banner.banner-variant-08 .bip-sidebar-banner-body {
    align-content: center;
    justify-items: center;
    text-align: center;
}

.bip-sidebar-banner.banner-variant-09 {
    border-color: rgba(var(--banner-text-rgb), 0.18);
}

.bip-sidebar-banner.banner-variant-09::after {
    content: '';
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 10px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgb(var(--banner-text-rgb) / 0.45) 0%, var(--banner-text) 100%);
}

.bip-sidebar-banner.banner-variant-09 .bip-sidebar-banner-body {
    padding-bottom: 22px;
}

.bip-sidebar-banner.banner-variant-10 {
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
}

.bip-sidebar-banner.banner-variant-11 .bip-sidebar-banner-body {
    padding: 14px 16px;
}

.bip-sidebar-banner.banner-variant-12 {
    border-color: rgba(var(--banner-text-rgb), 0.18);
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
}

.bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-body {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    align-content: center;
}

.bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-text {
    grid-column: 2;
    min-width: 0;
}

.bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-body::before {
    content: '!';
    width: 34px;
    height: 34px;
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: rgb(var(--banner-text-rgb) / 0.14);
    font-size: 20px;
    font-weight: 900;
    color: var(--banner-text);
}

.bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-link {
    grid-column: 2;
    justify-self: start;
}

.bip-sidebar-banner.banner-variant-15 {
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
}

.bip-sidebar-banner.banner-variant-15 .bip-sidebar-banner-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
}

.bip-sidebar-banner.banner-variant-15 .bip-sidebar-banner-text {
    max-width: 180px;
}

.bip-sidebar-banner.banner-variant-16 {
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
    border-color: rgba(var(--banner-text-rgb), 0.18);
}

.bip-sidebar-banner.banner-variant-17 {
    border-color: rgba(var(--banner-text-rgb), 0.16);
}

.bip-sidebar-banner.banner-variant-17 .bip-sidebar-banner-body {
    align-content: center;
}

.bip-sidebar-banner.banner-variant-17 .bip-sidebar-banner-body::before {
    content: none;
}

.bip-sidebar-banner.banner-variant-17.has-image {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
    color: var(--banner-text);
}

.bip-sidebar-banner.banner-variant-17.has-image .bip-sidebar-banner-media {
    position: relative;
    inset: auto;
    width: 74px;
    height: 74px;
    aspect-ratio: 1;
    border-radius: 12px;
    overflow: hidden;
}

.bip-sidebar-banner.banner-variant-17.has-image .bip-sidebar-banner-media::after {
    background: linear-gradient(180deg, rgb(var(--banner-text-rgb) / 0.06), rgb(var(--banner-text-rgb) / 0.28));
}

.bip-sidebar-banner.banner-variant-17.has-image .bip-sidebar-banner-body {
    min-height: 0;
    padding: 0;
    background: none;
}

.bip-sidebar-banner.banner-variant-17.has-image .bip-sidebar-banner-subtitle {
    color: rgb(var(--banner-text-rgb) / 0.8);
}

.bip-sidebar-banner.banner-variant-17.has-image .bip-sidebar-banner-link {
    color: var(--banner-text);
}

.bip-sidebar-banner.banner-variant-19 {
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
}

.bip-sidebar-banner.banner-variant-20 {
    border-color: rgba(var(--banner-text-rgb), 0.18);
}

.bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-link {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: rgb(var(--banner-text-rgb) / 0.14);
    color: var(--banner-text);
    font-size: 0;
    margin-top: 0;
}

.bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-link i {
    font-size: 1rem;
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-02,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-03,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-06,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-08,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-09,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-11,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-12,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-16,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-17,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-20 {
    background: linear-gradient(155deg, var(--banner-bg) 0%, var(--banner-accent) 100%);
    border-color: rgba(var(--banner-text-rgb), 0.18);
    color: var(--banner-text);
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-02 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-06 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-08 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-09 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-11 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-16 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-17 .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-subtitle {
    color: rgb(var(--banner-text-rgb) / 0.82);
}

.sidebar-tree-item {
    display: grid;
    gap: 0;
}

.sidebar-tree-row {
    display: flex;
    align-items: stretch;
    gap: 0;
    padding-left: calc(var(--tree-depth, 0) * 10px);
    border-bottom: 1px solid var(--border-light);
}

.sidebar-tree-link {
    flex: 1;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 14px;
    align-items: center;
    gap: 10px;
    min-height: 56px;
    padding: 10px 14px;
    color: #002b63;
    text-decoration: none;
    font-size: 0.9375rem;
    font-weight: 500;
    border-left: 0;
    transition: background 0.15s, color 0.15s;
}

.sidebar-tree-link::after {
    content: "\f105";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #00367f;
    justify-self: end;
    font-size: 0.875rem;
}

[data-contrast="high"] .sidebar-tree-link {
    color: var(--contrast-text);
    border-left-color: transparent;
}

[data-contrast="high"] .sidebar-tree-link::after {
    color: inherit;
}

.sidebar-tree-link:hover,
.sidebar-tree-link:focus-visible {
    background: rgba(238, 246, 252, 0.5);
    color: #00367f;
    outline: 0;
}

.sidebar-tree-link:hover .tree-link-icon,
.sidebar-tree-link:focus-visible .tree-link-icon,
.sidebar-tree-link:hover::after,
.sidebar-tree-link:focus-visible::after {
    color: #00367f;
}

[data-contrast="high"] .sidebar-tree-link:hover,
[data-contrast="high"] .sidebar-tree-link:focus-visible {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
    border-left-color: var(--contrast-interactive-border);
}

.sidebar-tree-link.active {
    background: #eef6fc;
    color: #001d50;
}

.sidebar-tree-link.active .tree-link-name {
    font-weight: 700;
}

.sidebar-tree-link.active .tree-link-icon {
    color: #00367f;
}

.sidebar-tree-link.active::after {
    color: #00367f;
}

.sidebar-tree-heading {
    flex: 1;
    display: flex;
    gap: 10px;
    padding: 14px 24px 6px;
    color: var(--text-muted);
}

.sidebar-tree-heading .tree-link-name {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.sidebar-tree-heading .tree-link-description {
    font-size: 0.7rem;
    text-transform: none;
    letter-spacing: normal;
}

.megamenu-tree-heading {
    flex: 1;
    display: flex;
    gap: 10px;
    padding: 14px 0 6px;
    color: var(--text-muted);
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--border-light);
    background: none;
}

.megamenu-tree-heading .tree-link-name {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

[data-contrast="high"] .sidebar-tree-link.active {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
    border-left-color: var(--contrast-interactive-border);
    font-weight: inherit;
}

[data-contrast="high"] .sidebar-tree-link.active .tree-link-name,
[data-contrast="high"] .sidebar-tree-link.active .tree-link-icon {
    color: inherit;
    font-weight: inherit;
}

.tree-link-icon {
    width: 24px;
    text-align: center;
    color: #00367f;
    font-size: 0.875rem;
}

.bip-sidebar .tree-link-name {
    color: inherit;
}

[data-contrast="high"] .tree-link-icon,
[data-contrast="high"] .tree-link-description,
[data-contrast="high"] .sidebar-tree-count {
    color: inherit;
}

.tree-link-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.tree-link-name {
    min-width: 0;
    line-height: 1.35;
}

.tree-link-description {
    font-size: 0.75rem;
    color: var(--text-muted);
    line-height: 1.35;
}

.sidebar-tree-count {
    margin-left: auto;
    font-size: 0.75rem;
    background: var(--border-light);
    color: var(--text-muted);
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 600;
}

[data-contrast="high"] .sidebar-tree-count {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

[data-contrast="high"] .sidebar-tree-heading {
    color: var(--contrast-text);
}

[data-contrast="high"] .megamenu-tree-heading {
    color: var(--contrast-text);
    background: var(--contrast-surface);
    border-color: var(--contrast-border);
}

.sidebar-tree-toggle,
.megamenu-tree-toggle {
    width: 40px;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: 10px;
    flex-shrink: 0;
}

.sidebar-tree-toggle {
    border-left: 1px solid var(--border-light);
    border-radius: 0;
}

[data-contrast="high"] .sidebar-tree-toggle {
    color: var(--contrast-text);
    border: 1px solid var(--contrast-border);
}

.sidebar-tree-toggle:hover,
.megamenu-tree-toggle:hover,
.sidebar-tree-toggle:focus-visible,
.megamenu-tree-toggle:focus-visible {
    background: rgba(var(--bip-navy-rgb), 0.06);
}

[data-contrast="high"] .sidebar-tree-toggle:hover,
[data-contrast="high"] .sidebar-tree-toggle:focus-visible {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

.sidebar-tree-item.is-open > .sidebar-tree-row .sidebar-tree-toggle i,
.megamenu-tree-item.is-open > .megamenu-tree-row .megamenu-tree-toggle i {
    transform: rotate(180deg);
}

.sidebar-tree-toggle i,
.megamenu-tree-toggle i {
    transition: transform 0.16s ease;
}

.sidebar-tree-children,
.megamenu-tree-children {
    display: grid;
    gap: 0;
}

.sidebar-tree-children[hidden],
.megamenu-tree-children[hidden] {
    display: none;
}

/* ── Content area ───────────────────────────────────── */
.bip-content {
    flex: 1;
    min-width: 0;
    padding: 32px 40px;
    background: var(--bg);
    border: 1px solid var(--border-light);
    border-radius: 24px;
    box-shadow: 0 20px 44px rgba(var(--bip-navy-rgb), 0.08);
}

.bip-content--home {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

/* ── Breadcrumbs ────────────────────────────────────── */
.breadcrumbs {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.breadcrumbs a {
    color: var(--bip-blue);
    text-decoration: none;
}

.breadcrumbs a:hover {
    text-decoration: underline;
}

.breadcrumbs .sep {
    color: var(--border);
}

/* ── Page header ────────────────────────────────────── */
.page-title {
    margin: 0 0 8px;
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.25;
}

.page-intro {
    display: grid;
    gap: 6px;
    margin-bottom: 24px;
}

.page-intro-title-block {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.page-intro-title {
    margin-bottom: 0;
}

.page-intro-divider {
    width: 100%;
    max-width: 160px;
    height: 1px;
    border-radius: 999px;
    background: #8c8c8c;
}

[data-contrast="high"] .page-intro-divider {
    background: var(--contrast-border);
}

.page-intro-description {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.65;
}

.page-meta {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.page-meta i {
    margin-right: 4px;
    opacity: 0.7;
}

.page-document-card {
    border: 1px solid var(--border-light);
    border-radius: var(--bip-radius-lg);
    background: var(--surface);
    padding: 22px 26px;
}

/* ── Article content ────────────────────────────────── */
.article-body {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--text);
}

.page-document-card .article-body > :first-child {
    margin-top: 0;
}

.page-document-card .article-body > p:first-child {
    color: var(--bip-navy);
    font-weight: 600;
}

.article-body h2 {
    margin: 2rem 0 1rem;
    font-size: 1.175rem;
    font-weight: 700;
    color: var(--bip-navy);
    border-bottom: 2px solid var(--border-light);
    padding-bottom: 8px;
}

.article-body h3 {
    margin: 1.5rem 0 0.75rem;
    font-size: 1.125rem;
    font-weight: 600;
}

.article-body p {
    margin: 0 0 1rem;
}

.article-body ul, .article-body ol {
    margin: 0 0 1rem 1.5rem;
}

.article-body li {
    margin-bottom: 0.5rem;
}

.article-body a {
    color: var(--bip-blue);
    text-decoration: underline;
}

.article-body a:hover {
    color: var(--bip-blue-hover);
}

.article-body table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
}

.article-body th,
.article-body td {
    padding: 10px 14px;
    border: 1px solid var(--border);
    text-align: left;
}

.system-page-intro-block {
    margin-bottom: 28px;
}
.system-page-lead {
    margin: 0 0 24px;
    max-width: 860px;
    color: var(--text-muted);
    font-size: 1rem;
    line-height: 1.75;
}
.system-page-body {
    margin-bottom: 28px;
}
.system-page-body:last-child {
    margin-bottom: 0;
}

.article-body th {
    background: var(--bg-alt);
    font-weight: 600;
}

.page-section-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
}

.page-section-title i {
    color: var(--bip-blue);
}

.page-attachments {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--border-light);
}

/* ── Metryczka (page info card — required by law) ──── */
.metryczka {
    background: var(--bg-alt);
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 20px 24px;
    margin-top: 32px;
    font-size: 0.875rem;
}

.metryczka-title {
    font-weight: 700;
    font-size: 0.9375rem;
    margin-bottom: 12px;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 8px;
}

.metryczka-title i {
    color: var(--bip-navy);
}

.metryczka-grid {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 8px 16px;
}

.metryczka-label {
    font-weight: 600;
    color: var(--text-muted);
}

.metryczka-value {
    color: var(--text);
}

.metryczka-history {
    margin-top: 16px;
}

.metryczka-history-toggle {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--bip-blue);
}

.metryczka-history-table {
    margin-top: 12px;
}

.version-preview-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
    color: var(--bip-blue);
    font: inherit;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
}

.version-preview-button:hover {
    border-color: var(--bip-blue);
    background: var(--bg-alt);
}

.version-preview-button.is-active {
    border-color: var(--bip-blue);
    background: var(--bg-alt);
    box-shadow: 0 10px 20px rgba(0, 86, 179, 0.12);
}

.version-compare-first {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.version-inline-preview {
    margin-top: 20px;
    border: 1px solid var(--border-light);
    border-radius: 18px;
    overflow: hidden;
    background: linear-gradient(180deg, var(--bg-alt), var(--bg));
    box-shadow: 0 22px 50px rgba(15, 23, 42, 0.08);
}

.version-inline-preview-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border-light);
    background: var(--bg-alt);
}

.version-inline-preview-eyebrow {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bip-blue);
}

.version-inline-preview-title {
    font-size: 1rem;
    font-weight: 700;
    margin-top: 2px;
}

.version-inline-preview-meta {
    margin-top: 2px;
    font-size: 0.78rem;
    color: var(--text-muted);
    line-height: 1.6;
}

.version-inline-preview-details {
    display: grid;
    gap: 0;
    padding: 10px 18px;
    border-bottom: 1px solid var(--border-light);
    background: rgba(15, 23, 42, 0.02);
    margin: 0;
}

.version-inline-preview-detail-row {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 7px 0;
    border-bottom: 1px solid var(--border-light);
}

.version-inline-preview-detail-row[hidden] {
    display: none !important;
}

.version-inline-preview-detail-row:last-child {
    border-bottom: 0;
}

.version-inline-preview-detail-label {
    font-size: 0.84rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--text-muted);
    margin: 0;
}

.version-inline-preview-detail-value {
    font-size: 0.86rem;
    font-weight: 400;
    color: var(--text);
    line-height: 1.5;
    margin: 0;
}

.version-inline-preview-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.version-inline-preview-action {
    min-height: 40px;
}

.version-inline-preview-body {
    padding: 22px;
}

.version-inline-preview-body > :first-child {
    margin-top: 0;
}

[data-bip-theme="dark"] .version-preview-button {
    background: var(--bg-alt);
    border-color: var(--border);
}

[data-bip-theme="dark"] .version-preview-button.is-active {
    box-shadow: 0 18px 30px rgba(0, 0, 0, 0.24);
}

[data-bip-theme="dark"] .bip-sidebar,
[data-bip-theme="dark"] .bip-content {
    border-color: var(--border);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
}

[data-bip-theme="dark"] .bip-sidebar {
    background: var(--bg);
}

[data-bip-theme="dark"] .bip-sidebar-title {
    background: var(--bip-navy-dark);
    color: #ffffff;
}

[data-bip-theme="dark"] .sidebar-tree-row {
    border-bottom-color: var(--border);
}

[data-bip-theme="dark"] .sidebar-tree-link {
    color: rgba(255,255,255,0.88);
    background: var(--bg);
}

[data-bip-theme="dark"] .sidebar-tree-link::after,
[data-bip-theme="dark"] .sidebar-tree-link .tree-link-icon {
    color: #dbeafe;
}

[data-bip-theme="dark"] .sidebar-tree-link:hover,
[data-bip-theme="dark"] .sidebar-tree-link:focus-visible {
    background: var(--bg-alt);
    color: #ffffff;
}

[data-bip-theme="dark"] .sidebar-tree-link.active {
    background: rgba(147, 197, 253, 0.14);
    color: #ffffff;
}

[data-bip-theme="dark"] .sidebar-tree-link.active .tree-link-icon,
[data-bip-theme="dark"] .sidebar-tree-link.active::after {
    color: #ffffff;
}

[data-bip-theme="dark"] .bip-sidebar-banner {
    border-color: var(--border);
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.28);
}

[data-bip-theme="dark"] .bip-sidebar-banner:not(.is-color):not(.has-image) {
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.06));
    color: var(--text);
}

[data-bip-theme="dark"] .bip-sidebar-banner.has-image {
    background: #07111f;
}

[data-bip-theme="dark"] .bip-sidebar-banner:not(.is-color):not(.has-image) .bip-sidebar-banner-subtitle {
    color: var(--text-muted);
}

[data-bip-theme="dark"] .bip-sidebar-banner:not(.is-color):not(.has-image) .bip-sidebar-banner-link {
    color: var(--bip-blue);
}

[data-contrast="high"] .bip-sidebar-banner {
    border: 2px solid #000000;
    border-width: 2px;
    box-shadow: none;
    background: #ffffff;
    color: #000000;
    aspect-ratio: auto;
    text-shadow: none;
}

[data-contrast="high"] .bip-sidebar-banner.is-color,
[data-contrast="high"] .bip-sidebar-banner.has-image {
    background: #ffffff;
    color: #000000;
    aspect-ratio: auto;
}

[data-contrast="high"] .bip-sidebar-banner-orb,
[data-contrast="high"] .bip-sidebar-banner-media,
[data-contrast="high"] .bip-sidebar-banner-media::after,
[data-contrast="high"] .bip-sidebar-banner.is-color::before,
[data-contrast="high"] .bip-sidebar-banner.banner-variant-03::after,
[data-contrast="high"] .bip-sidebar-banner.banner-variant-09::after,
[data-contrast="high"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-body::before {
    display: none;
}

[data-contrast="high"] .bip-sidebar-banner-body {
    min-height: auto;
    align-content: start;
    gap: 10px;
    padding: 18px;
    background: transparent;
}

[data-contrast="high"] .bip-sidebar-banner.is-color .bip-sidebar-banner-body,
[data-contrast="high"] .bip-sidebar-banner.has-image .bip-sidebar-banner-body {
    min-height: auto;
    align-content: start;
    padding: 18px;
    background: transparent;
}

[data-contrast="high"] .bip-sidebar-banner-title,
[data-contrast="high"] .bip-sidebar-banner-subtitle,
[data-contrast="high"] .bip-sidebar-banner-link {
    display: block;
    color: #000000 !important;
}

[data-contrast="high"] .bip-sidebar-banner-link,
[data-contrast="high"] .bip-sidebar-banner-subtitle {
    color: #000000 !important;
    background: transparent !important;
}

[data-contrast="high"] .bip-sidebar-banner.is-color .bip-sidebar-banner-subtitle,
[data-contrast="high"] .bip-sidebar-banner.has-image .bip-sidebar-banner-subtitle,
[data-contrast="high"] .bip-sidebar-banner.is-color .bip-sidebar-banner-link,
[data-contrast="high"] .bip-sidebar-banner.has-image .bip-sidebar-banner-link {
    color: #000000 !important;
}

[data-contrast="high"] .bip-sidebar-banner-link {
    text-decoration: underline;
    text-underline-offset: 2px;
}

[data-contrast="high"] .bip-sidebar-banner-link i {
    color: inherit !important;
}

[data-contrast="high"] .bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-title,
[data-contrast="high"] .bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-subtitle {
    padding-left: 0;
}

[data-contrast="high"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-body {
    grid-template-columns: 1fr;
}

[data-contrast="high"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-text,
[data-contrast="high"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-link {
    grid-column: auto;
}

[data-contrast="high"] .bip-sidebar-banner.banner-variant-15 .bip-sidebar-banner-body,
[data-contrast="high"] .bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-body {
    display: grid;
    justify-content: start;
}

[data-contrast="high"] .bip-sidebar-banner.banner-variant-17.has-image {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
}

[data-contrast="high"] .bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-link {
    width: auto;
    height: auto;
    border-radius: 0;
    display: inline-flex;
    place-items: initial;
    padding: 0;
    margin-top: 4px;
    background: transparent !important;
    color: #000000 !important;
    font-size: inherit;
}

[data-contrast="high"] .bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-link i {
    font-size: inherit;
}

/* Simplified banner rendering for dark and high-contrast modes.
   In these accessibility modes we intentionally override per-banner colors
   and decorative media so every banner stays predictable and readable. */
[data-bip-theme="dark"] .bip-sidebar-banner {
    background: #1a2230 !important;
    border-color: rgba(255,255,255,0.16) !important;
    color: #eef2f7 !important;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.28);
    aspect-ratio: auto;
}

[data-bip-theme="dark"] .bip-sidebar-banner::before,
[data-bip-theme="dark"] .bip-sidebar-banner::after,
[data-bip-theme="dark"] .bip-sidebar-banner-orb,
[data-bip-theme="dark"] .bip-sidebar-banner-media,
[data-bip-theme="dark"] .bip-sidebar-banner-media::after,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-body::before {
    display: none !important;
}

[data-bip-theme="dark"] .bip-sidebar-banner-body,
[data-bip-theme="dark"] .bip-sidebar-banner.is-color .bip-sidebar-banner-body,
[data-bip-theme="dark"] .bip-sidebar-banner.has-image .bip-sidebar-banner-body {
    min-height: auto !important;
    align-content: start !important;
    padding: 18px !important;
    background: transparent !important;
    color: #eef2f7 !important;
}

[data-bip-theme="dark"] .bip-sidebar-banner-text,
[data-bip-theme="dark"] .bip-sidebar-banner-title {
    color: #eef2f7 !important;
}

[data-bip-theme="dark"] .bip-sidebar-banner-subtitle {
    color: #cbd5e1 !important;
}

[data-bip-theme="dark"] .bip-sidebar-banner-link,
[data-bip-theme="dark"] .bip-sidebar-banner.has-image .bip-sidebar-banner-link,
[data-bip-theme="dark"] .bip-sidebar-banner.is-color .bip-sidebar-banner-link {
    color: #93c5fd !important;
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-title,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-03 .bip-sidebar-banner-subtitle {
    padding-left: 0;
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-body {
    grid-template-columns: 1fr;
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-text,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-link {
    grid-column: auto;
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-15 .bip-sidebar-banner-body,
[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-body {
    display: grid;
    justify-content: start;
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-17.has-image {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-link {
    width: auto;
    height: auto;
    border-radius: 0;
    display: inline-flex;
    place-items: initial;
    padding: 0;
    margin-top: 4px;
    background: transparent !important;
    color: #93c5fd !important;
    font-size: inherit;
}

[data-bip-theme="dark"] .bip-sidebar-banner.banner-variant-20 .bip-sidebar-banner-link i {
    font-size: inherit;
}

/* When dark mode and high contrast are both active, use the dark high-contrast banner palette. */
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner.is-color,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner.has-image {
    background: #000000 !important;
    border: 2px solid #ffffff !important;
    color: #ffffff !important;
    --banner-text: #ffffff !important;
    --banner-subtitle: #ffffff !important;
    --banner-link: #ffffff !important;
    box-shadow: none !important;
}

[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner::before,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner::after,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner-orb,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner-media,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner-media::after,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner.banner-variant-03::after,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner.banner-variant-09::after,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner.banner-variant-12 .bip-sidebar-banner-body::before {
    display: none !important;
}

[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner-body,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner.is-color .bip-sidebar-banner-body,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner.has-image .bip-sidebar-banner-body {
    min-height: auto !important;
    align-content: start !important;
    padding: 18px !important;
    background: transparent !important;
    color: #ffffff !important;
}

[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner:link,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner:visited,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner:hover,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner:focus-visible,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner .bip-sidebar-banner-text,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner .bip-sidebar-banner-title,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner .bip-sidebar-banner-subtitle,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner .bip-sidebar-banner-link,
[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner .bip-sidebar-banner-link i {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

[data-bip-theme="dark"][data-contrast="high"] .bip-sidebar-banner .bip-sidebar-banner-link {
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: #ffffff !important;
}

[data-bip-theme="dark"] .version-inline-preview {
    border-color: var(--border);
}

[data-bip-theme="dark"] .version-inline-preview-header {
    border-bottom-color: var(--border);
}

[data-bip-theme="dark"] .version-inline-preview-eyebrow {
    color: #93c5fd;
}

[data-bip-theme="dark"] .version-inline-preview-details {
    border-bottom-color: var(--border);
    background: rgba(255, 255, 255, 0.02);
}

[data-bip-theme="dark"] .version-inline-preview-detail-row {
    border-bottom-color: var(--border);
}

/* ── Attachments list ───────────────────────────────── */
.attachments-list {
    list-style: none;
    padding: 0;
    margin: 16px 0 0;
}

.attachments-list li {
    padding: 0;
    margin-bottom: 8px;
}

.attachments-list a {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 10px;
    padding: 0 0 0 14px;
    background: var(--bg-alt);
    border: 1px solid var(--border-light);
    border-radius: 6px;
    color: var(--bip-blue);
    text-decoration: none;
    font-size: 0.9375rem;
    transition: background 0.15s, border-color 0.15s;
    width: 100%;
    min-height: 42px;
    overflow: hidden;
}

.attachments-list a:hover {
    background: var(--bg);
    border-color: var(--bip-blue);
}

.attachments-list .file-icon {
    font-size: 1.125rem;
    color: var(--bip-red);
}

.attachments-list .file-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text);
}

.attachments-list .file-size,
.attachments-list .file-type,
.attachments-list .file-download {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    padding: 0 14px;
    border-left: 1px solid var(--border-light);
    color: var(--text-muted);
}

.attachments-list .file-size,
.attachments-list .file-type {
    font-size: 0.8125rem;
    font-weight: 500;
}

.attachments-list .file-type {
    min-width: 64px;
    justify-content: center;
    color: var(--text);
}

.attachments-list .file-download {
    justify-content: center;
    color: var(--text);
    font-size: 0.95rem;
}

.attachments-list a:hover .file-download {
    color: var(--bip-blue);
}

.attachments-list .file-meta {
    color: var(--text-muted);
}

.page-document-card .attachments-list a {
    background: #fbfcfe;
    color: var(--text);
}

.page-document-card .attachments-list a:hover {
    background: #f8fbff;
    color: var(--text);
}

/* ── Category page cards ────────────────────────────── */
.category-section {
    margin: 28px 0 0;
}

.category-hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 0;
    color: var(--text);
    font-size: 0.9375rem;
    line-height: 1.4;
}

.category-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.category-section-head h2 {
    margin: 0;
    color: var(--text);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
}

.category-section-head h2::after {
    content: "";
    display: block;
    width: 34px;
    height: 2px;
    margin-top: 7px;
    border-radius: 999px;
    background: var(--text-muted);
}

.category-subcategory-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.category-subcategory-card {
    min-height: 78px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 15px 18px;
    border: 1px solid var(--border-light);
    border-radius: var(--bip-radius-lg);
    color: var(--bip-navy);
    text-decoration: none;
    background: var(--surface);
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease;
}

.category-subcategory-card:hover,
.category-subcategory-card:focus-visible {
    border-color: var(--bip-blue);
    box-shadow: 0 12px 28px rgba(var(--bip-navy-rgb), .08);
    color: var(--bip-navy);
    text-decoration: none;
    transform: translateY(-1px);
}

.category-subcategory-main {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.category-subcategory-title {
    color: var(--text);
    font-weight: 600;
    font-size: 0.9375rem;
    line-height: 1.32;
}

.category-subcategory-count {
    color: var(--text-muted);
    font-size: .8125rem;
}

.category-subcategory-arrow {
    color: var(--bip-blue);
    font-size: 1rem;
}

.page-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.category-entry-list {
    overflow: hidden;
    border: 1px solid var(--border-light);
    border-radius: var(--bip-radius-lg);
    background: var(--surface);
}

.page-list-item {
    padding: 0;
    border-bottom: 1px solid var(--border-light);
}

.page-list-item:last-child {
    border-bottom: 0;
}

.page-list-item:first-child {
    padding-top: 0;
}

.page-list-item a {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.34;
    color: var(--text);
    text-decoration: none;
}

.category-entry-link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    min-height: 76px;
    padding: 16px 20px;
    background: var(--surface);
    transition: background .16s ease, color .16s ease;
}

.category-entry-link:hover,
.category-entry-link:focus-visible {
    background: var(--bg-alt);
    text-decoration: none;
    color: var(--text);
}

.category-entry-link:hover .category-entry-title,
.category-entry-link:focus-visible .category-entry-title {
    color: var(--bip-blue-hover);
}

.category-entry-content {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.category-entry-title {
    color: var(--text);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.32;
}

.page-list-item .item-meta {
    font-size: 0.8125rem;
    color: var(--text-muted);
    margin-top: 0;
}

.category-entry-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 0;
    align-items: center;
}

.category-entry-meta span {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.category-entry-meta span + span::before {
    content: "";
    width: 1px;
    height: 13px;
    margin: 0 10px;
    background: var(--border-light);
}

.page-list-item .item-excerpt {
    max-width: min(100%, 118ch);
    font-size: 0.9375rem;
    color: var(--text-muted);
    margin-top: 10px;
    line-height: 1.58;
}

.category-entry-arrow {
    color: var(--bip-blue);
    font-size: 0.9375rem;
}

.category-entry-top {
    display: grid;
    gap: 6px;
    justify-items: start;
}

.category-list-summary {
    margin-top: 16px;
    color: var(--text-muted);
    font-size: .875rem;
}

.pinned-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── Search ─────────────────────────────────── */

/* Hero bar */
.search-hero {
    margin-bottom: 28px;
}

.search-hero-bar {
    display: flex;
    gap: 8px;
}

.search-hero-input-wrap {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
}

.search-hero-icon {
    position: absolute;
    left: 14px;
    color: var(--text-muted);
    font-size: 0.95rem;
    pointer-events: none;
}

.search-hero-input-wrap input {
    width: 100%;
    padding: 13px 36px 13px 40px;
    border: 2px solid var(--border);
    border-radius: 10px;
    font-size: 1.05rem;
    font-family: inherit;
    color: var(--text);
    background: var(--bg);
    transition: border-color .15s;
}

.search-hero-input-wrap input:focus {
    border-color: var(--bip-blue);
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--bip-blue-rgb, 37 99 235), .35);
}

.search-hero-clear {
    position: absolute;
    right: 10px;
    color: var(--text-muted);
    font-size: 0.85rem;
    padding: 4px 6px;
    border-radius: 4px;
    text-decoration: none;
}

.search-hero-clear:hover {
    background: var(--border-light);
    color: var(--text);
}

.search-hero button {
    padding: 13px 28px;
    background: var(--bip-navy);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s;
}

.search-hero button:hover {
    background: var(--bip-blue-hover);
}

/* Quick filters — always visible under search bar */
.search-quick-filters {
    display: flex;
    gap: 16px;
    margin-top: 14px;
    flex-wrap: wrap;
}

.search-quick-filters .search-filter-group {
    min-width: 0;
    flex: 1 1 180px;
}

/* Filters */
.search-filters {
    margin-top: 12px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg-muted, #fafafa);
}

.search-filters summary {
    padding: 10px 16px;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-muted);
    user-select: none;
    display: flex;
    align-items: center;
    gap: 6px;
}

.search-filters summary:hover {
    color: var(--text);
}

.search-filters[open] summary {
    border-bottom: 1px solid var(--border-light);
}

.search-filters-body {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px 16px;
    align-items: flex-end;
}

.search-filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 140px;
}

.search-filter-group label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.search-filter-group select,
.search-filter-group input[type="date"] {
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.875rem;
    font-family: inherit;
    color: var(--text);
    background: var(--bg);
}

.search-filter-actions {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    margin-left: auto;
}

/* Status bar */
.search-status {
    margin-bottom: 20px;
}

.search-status-text {
    color: var(--text-muted);
    font-size: 0.9375rem;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.search-time {
    font-size: 0.8125rem;
    color: var(--text-muted);
    opacity: .7;
}

.search-mode-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.search-mode-fuzzy {
    background: #fef3c7;
    color: #92400e;
}

/* Empty state */
.search-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--text-muted);
}

.search-empty i {
    font-size: 2.5rem;
    margin-bottom: 12px;
    opacity: .3;
}

.search-empty p {
    font-size: 1.0625rem;
    margin-bottom: 16px;
}

.search-tips {
    list-style: disc;
    text-align: left;
    display: inline-block;
    font-size: 0.875rem;
    color: var(--text-muted);
    line-height: 1.7;
}

.search-tips a {
    color: var(--bip-blue);
}

/* Results list */
.search-results {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: search-counter;
}

.search-result {
    padding: 18px 0;
    border-bottom: 1px solid var(--border-light);
}

.search-result:first-child {
    padding-top: 0;
}

.search-result-title {
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--bip-blue);
    text-decoration: none;
    display: inline-block;
    line-height: 1.35;
}

.search-result-title:hover {
    text-decoration: underline;
    color: var(--bip-blue-hover);
}

.search-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 5px;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.search-result-meta a {
    color: var(--text-muted);
    text-decoration: none;
}

.search-result-meta a:hover {
    color: var(--bip-blue);
}

.search-result-score {
    color: var(--bip-blue);
    font-weight: 600;
}

.search-result-snippet {
    margin-top: 6px;
    font-size: 0.9375rem;
    color: var(--text);
    line-height: 1.55;
}

.search-result-snippet mark {
    background: #fef08a;
    color: inherit;
    padding: 1px 2px;
    border-radius: 2px;
    font-weight: 600;
}

/* Pagination dots */
.pagination-dots {
    padding: 6px 4px;
    color: var(--text-muted);
}

/* Legacy compat */
.search-form {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
}

.search-form input {
    flex: 1;
    padding: 12px 16px;
    border: 2px solid var(--border);
    border-radius: 8px;
    font-size: 1rem;
    font-family: inherit;
    color: var(--text);
    background: var(--bg);
}

.search-form input:focus {
    border-color: var(--bip-blue);
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.3);
}

.search-form button {
    padding: 12px 24px;
    background: var(--bip-navy);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
}

.search-form button:hover {
    background: var(--bip-blue-hover);
}

.info-requests-filter {
    display: flex;
    align-items: end;
    gap: 14px;
    margin: 0 0 22px;
    padding: 18px 20px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--surface);
    flex-wrap: wrap;
}

.info-requests-filter-field {
    display: grid;
    gap: 8px;
    min-width: 220px;
}

.info-requests-filter-field label {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text);
}

.info-requests-filter-field select {
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    border-radius: 14px;
    border: 1px solid var(--border);
    background: var(--bg);
    color: var(--text);
    font: inherit;
}

.info-requests-filter-field select:focus {
    border-color: var(--bip-blue);
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.2);
}

.info-requests-filter-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

.info-requests-filter-submit,
.info-requests-filter-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border-radius: 14px;
    font-size: 0.98rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.info-requests-filter-submit {
    border: 1px solid var(--bip-navy);
    background: var(--bip-navy);
    color: #fff;
    cursor: pointer;
}

.info-requests-filter-submit:hover,
.info-requests-filter-submit:focus-visible {
    background: var(--bip-blue-hover);
    border-color: var(--bip-blue-hover);
}

.info-requests-filter-reset {
    border: 1px solid var(--border);
    background: var(--bg);
    color: var(--text);
}

.info-requests-filter-reset:hover,
.info-requests-filter-reset:focus-visible {
    border-color: var(--bip-blue);
    color: var(--bip-blue);
}

.info-requests-table-shell {
    border: 1px solid var(--border);
    border-radius: 18px;
    overflow: hidden;
    background: var(--surface);
}

.info-requests-table {
    width: 100%;
    border-collapse: collapse;
}

.info-requests-table thead th {
    padding: 14px 16px;
    text-align: left;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--text-muted);
    background: #f6f8fb;
    border-bottom: 1px solid var(--border);
}

.info-requests-table tbody tr {
    transition: background 0.18s ease;
}

.info-requests-table tbody tr:hover {
    background: #fafcff;
}

.info-requests-table td {
    padding: 14px 16px;
    vertical-align: top;
    border-bottom: 1px solid var(--border-light);
}

.info-requests-table tbody tr:last-child td {
    border-bottom: 0;
}

.info-requests-case {
    display: grid;
    gap: 6px;
}

.info-requests-case-link {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--bip-blue);
    text-decoration: none;
    line-height: 1.45;
}

.info-requests-case-link:hover,
.info-requests-case-link:focus-visible {
    color: var(--bip-blue-hover);
    text-decoration: underline;
}

.info-requests-case-summary {
    color: var(--text-muted);
    line-height: 1.5;
    max-width: none;
}

.info-requests-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text);
    white-space: nowrap;
}

.info-requests-case-details {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 4px;
    padding-top: 6px;
    color: var(--text-muted);
    font-size: 0.95rem;
}

.info-requests-case-details strong {
    color: var(--text);
    font-weight: 700;
}

.info-requests-case-status-wrap {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.info-requests-date i {
    color: var(--text-muted);
    font-size: 0.9rem;
}

.info-requests-date--muted {
    color: var(--text-muted);
}

.info-requests-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    border: 1px solid transparent;
}

.info-requests-status--pending,
.info-requests-status--extended {
    color: #8a5c00;
    background: rgba(245, 158, 11, 0.14);
    border-color: rgba(180, 118, 0, 0.22);
}

.info-requests-status--completed {
    color: #21603b;
    background: rgba(34, 197, 94, 0.14);
    border-color: rgba(33, 96, 59, 0.2);
}

.info-requests-status--refused {
    color: #9a3412;
    background: rgba(234, 88, 12, 0.14);
    border-color: rgba(154, 52, 18, 0.2);
}

.info-requests-status--redirected {
    color: #1d4ed8;
    background: rgba(59, 130, 246, 0.12);
    border-color: rgba(29, 78, 216, 0.18);
}

.info-requests-empty-state {
    display: grid;
    place-items: center;
    gap: 12px;
    min-height: 220px;
    padding: 40px 24px;
    border: 1px dashed var(--border);
    border-radius: 24px;
    color: var(--text-muted);
    text-align: center;
}

.info-requests-empty-state i {
    font-size: 2rem;
    opacity: 0.42;
}

[data-bip-theme="dark"] .info-requests-filter {
    border-color: rgba(255,255,255,0.08);
    background: rgba(15, 23, 42, 0.88);
}

[data-bip-theme="dark"] .info-requests-filter-field select,
[data-bip-theme="dark"] .info-requests-filter-reset {
    background: rgba(15, 23, 42, 0.92);
    border-color: rgba(255,255,255,0.12);
    color: var(--text);
}

[data-bip-theme="dark"] .info-requests-filter-submit {
    border-color: rgba(147, 197, 253, 0.22);
}

[data-bip-theme="dark"] .info-requests-table-shell {
    border-color: rgba(255,255,255,0.08);
    background: rgba(15, 23, 42, 0.88);
}

[data-bip-theme="dark"] .info-requests-table thead th {
    color: rgba(255,255,255,0.68);
    background: rgba(255,255,255,0.04);
    border-bottom-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .info-requests-table td {
    border-bottom-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .info-requests-table tbody tr:hover {
    background: rgba(255,255,255,0.03);
}

[data-bip-theme="dark"] .info-requests-case-link {
    color: #93c5fd;
}

[data-bip-theme="dark"] .info-requests-case-link:hover,
[data-bip-theme="dark"] .info-requests-case-link:focus-visible {
    color: #bfdbfe;
}

[data-bip-theme="dark"] .info-requests-date,
[data-bip-theme="dark"] .info-requests-case-summary,
[data-bip-theme="dark"] .info-requests-date--muted,
[data-bip-theme="dark"] .info-requests-case-details {
    color: rgba(255,255,255,0.8);
}

[data-bip-theme="dark"] .info-requests-case-details strong {
    color: #ffffff;
}

[data-bip-theme="dark"] .info-requests-date i {
    color: rgba(255,255,255,0.58);
}

[data-bip-theme="dark"] .info-requests-empty-state {
    border-color: rgba(255,255,255,0.14);
    color: rgba(255,255,255,0.72);
}

@media (max-width: 960px) {
    .info-requests-table thead {
        display: none;
    }

    .info-requests-table,
    .info-requests-table tbody,
    .info-requests-table tr,
    .info-requests-table td {
        display: block;
        width: 100%;
    }

    .info-requests-table tbody {
        display: grid;
        gap: 12px;
        padding: 12px;
    }

    .info-requests-table tbody tr {
        border: 1px solid var(--border);
        border-radius: 14px;
        padding: 14px;
        background: var(--surface);
    }

    .info-requests-table td {
        padding: 0;
        border: 0;
    }

    .info-requests-table td + td {
        margin-top: 12px;
    }

    .info-requests-case-details {
        display: grid;
        gap: 8px;
    }

    .info-requests-case-status-wrap {
        justify-content: flex-start;
    }

    .info-requests-table td::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 6px;
        font-size: 0.76rem;
        font-weight: 800;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: var(--text-muted);
    }

    [data-bip-theme="dark"] .info-requests-table tbody tr {
        border-color: rgba(255,255,255,0.08);
        background: rgba(15, 23, 42, 0.9);
    }
}

@media (max-width: 640px) {
    .info-requests-filter {
        padding: 18px;
    }

    .info-requests-filter-field,
    .info-requests-filter-actions,
    .info-requests-filter-submit,
    .info-requests-filter-reset {
        width: 100%;
    }
}

/* ── Sitemap ───────────────────────────────────────── */
.sitemap-tree {
    margin-top: 20px;
}

.sitemap-intro-card {
    padding: 22px 24px;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(237, 244, 251, 0.95), rgba(255, 255, 255, 0.98));
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
}

.sitemap-intro-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.sitemap-intro-separator {
    color: var(--text-muted);
}

.sitemap-tree-modern {
    display: grid;
    gap: 14px;
}

.sitemap-tree-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sitemap-tree-list-children {
    margin-top: 6px;
    padding-left: 28px;
}

.sitemap-tree-list-pages {
    margin-top: 10px;
    padding-left: 28px;
}

.sitemap-tree-item {
    margin-bottom: 10px;
}

.sitemap-category-card {
    padding: 18px 20px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--surface);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.sitemap-category-card-static {
    padding-top: 16px;
    padding-bottom: 16px;
}

.sitemap-category-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
}

.sitemap-category-title-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.sitemap-count-pill {
    margin-left: 0;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 999px;
    background: #eef5ff;
    color: var(--bip-blue);
    font-size: 0.84rem;
}

.sitemap-load-button,
.sitemap-more-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 16px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: #fff;
    color: var(--text);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.sitemap-load-button:hover,
.sitemap-load-button:focus-visible,
.sitemap-more-button:hover,
.sitemap-more-button:focus-visible {
    border-color: var(--bip-blue);
    color: var(--bip-blue);
    box-shadow: 0 10px 18px rgba(0, 86, 179, 0.12);
}

.sitemap-category-panel {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--border-light);
}

.sitemap-category-status {
    color: var(--text-muted);
    line-height: 1.6;
}

.sitemap-category-status.is-error {
    color: #b42318;
}

.sitemap-page-results {
    display: grid;
    gap: 8px;
}

.sitemap-page-date {
    margin-left: 28px;
    color: var(--text-muted);
    font-size: 0.84rem;
}

.sitemap-category-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.sitemap-category-progress {
    color: var(--text-muted);
    font-size: 0.9rem;
}

.sitemap-noscript-note {
    margin: 14px 0 0;
    color: var(--text-muted);
}

.sitemap-tree-item-child {
    margin-bottom: 6px;
}

.sitemap-tree-item-page {
    margin-bottom: 6px;
}

.sitemap-tree-divider-top {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}

.sitemap-tree-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--bip-blue);
    text-decoration: none;
    font-size: 1rem;
    line-height: 1.45;
}

.sitemap-tree-link:hover {
    color: var(--bip-blue-hover);
    text-decoration: underline;
}

.sitemap-tree-link i {
    width: 18px;
    text-align: center;
    color: var(--bip-blue);
}

.sitemap-tree-link-root {
    font-weight: 700;
    font-size: 1.05rem;
}

.sitemap-tree-link-page {
    color: var(--text-muted);
    font-size: 0.95rem;
}

.sitemap-tree-link-page:hover {
    color: var(--bip-blue);
}

.sitemap-tree-link-page i {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.sitemap-tree-link-secondary {
    color: var(--text);
}

.sitemap-tree-link-secondary i {
    color: var(--bip-blue);
}

.sitemap-tree-count {
    margin-left: 6px;
    color: var(--text-muted);
    font-weight: 600;
}

.search-highlight {
    background: #fff3cd;
    padding: 1px 3px;
    border-radius: 2px;
    font-weight: 600;
}

/* Scope badge */
.search-scope-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.6875rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: #dbeafe;
    color: #1e40af;
}

.search-mode-attachments {
    background: #e0e7ff;
    color: #3730a3;
}

/* Suggestions */
.search-suggestions {
    margin-top: 20px;
    text-align: left;
    display: inline-block;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    padding: 14px 20px;
}

.search-suggestions p {
    margin: 0 0 8px;
    font-size: 0.9375rem;
    color: var(--text);
}

.search-suggestions ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.search-suggestions li {
    padding: 4px 0;
    font-size: 0.9375rem;
}

.search-suggestions a {
    color: var(--bip-blue);
    text-decoration: none;
    font-weight: 500;
}

.search-suggestions a:hover {
    text-decoration: underline;
}

/* Matched attachments in results */
.search-result-attachments {
    margin-top: 6px;
    font-size: 0.875rem;
    color: var(--text-muted);
    line-height: 1.5;
}

.search-result-attachments i {
    color: var(--bip-blue);
    margin-right: 2px;
}

/* Dark mode */
[data-bip-theme="dark"] .search-hero-input-wrap input {
    background: var(--bg);
    color: var(--text);
    border-color: var(--border);
}

[data-bip-theme="dark"] .search-filters {
    background: var(--bg-muted, #1a1a2e);
    border-color: var(--border);
}

[data-bip-theme="dark"] .search-filter-group select,
[data-bip-theme="dark"] .search-filter-group input[type="date"] {
    background: var(--bg);
    color: var(--text);
    border-color: var(--border);
}

[data-bip-theme="dark"] .search-mode-fuzzy {
    background: rgba(251, 191, 36, .15);
    color: #fbbf24;
}

[data-bip-theme="dark"] .search-result-snippet mark {
    background: rgba(250, 204, 21, .25);
    color: #fef08a;
}

[data-bip-theme="dark"] .search-highlight {
    background: #664d03;
    color: #fff;
}

[data-bip-theme="dark"] .search-scope-badge {
    background: rgba(59, 130, 246, .15);
    color: #93c5fd;
}

[data-bip-theme="dark"] .search-mode-attachments {
    background: rgba(99, 102, 241, .15);
    color: #a5b4fc;
}

[data-bip-theme="dark"] .search-suggestions {
    background: rgba(14, 165, 233, .08);
    border-color: rgba(14, 165, 233, .25);
}

[data-bip-theme="dark"] .search-suggestions p {
    color: var(--text);
}

[data-bip-theme="dark"] .sitemap-tree-link {
    color: #cfe0ff;
}

[data-bip-theme="dark"] .sitemap-intro-card,
[data-bip-theme="dark"] .sitemap-category-card {
    border-color: rgba(255,255,255,0.1);
    background: rgba(15, 23, 42, 0.86);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.24);
}

[data-bip-theme="dark"] .sitemap-count-pill {
    background: rgba(147, 197, 253, 0.12);
    color: #bfdbfe;
}

[data-bip-theme="dark"] .sitemap-load-button,
[data-bip-theme="dark"] .sitemap-more-button {
    background: rgba(15, 23, 42, 0.96);
    border-color: rgba(255,255,255,0.12);
    color: #e7eefc;
}

[data-bip-theme="dark"] .sitemap-load-button:hover,
[data-bip-theme="dark"] .sitemap-load-button:focus-visible,
[data-bip-theme="dark"] .sitemap-more-button:hover,
[data-bip-theme="dark"] .sitemap-more-button:focus-visible {
    border-color: #93c5fd;
    color: #ffffff;
}

[data-bip-theme="dark"] .sitemap-category-panel,
[data-bip-theme="dark"] .sitemap-tree-divider-top {
    border-top-color: rgba(255,255,255,0.1);
}

[data-bip-theme="dark"] .sitemap-intro-separator,
[data-bip-theme="dark"] .sitemap-category-progress,
[data-bip-theme="dark"] .sitemap-page-date,
[data-bip-theme="dark"] .sitemap-noscript-note,
[data-bip-theme="dark"] .sitemap-category-status {
    color: rgba(231, 238, 252, 0.78);
}

[data-bip-theme="dark"] .sitemap-category-status.is-error {
    color: #fca5a5;
}

[data-bip-theme="dark"] .sitemap-tree-link:hover {
    color: #ffffff;
}

[data-bip-theme="dark"] .sitemap-tree-link i {
    color: #8fb4ff;
}

[data-bip-theme="dark"] .sitemap-tree-link-secondary {
    color: #e7eefc;
}

[data-bip-theme="dark"] .sitemap-tree-link-secondary i {
    color: #8fb4ff;
}

[data-bip-theme="dark"] .sitemap-tree-link-page {
    color: rgba(231, 238, 252, 0.82);
}

[data-bip-theme="dark"] .sitemap-tree-link-page:hover {
    color: #ffffff;
}

[data-bip-theme="dark"] .sitemap-tree-link-page i {
    color: rgba(143, 180, 255, 0.85);
}

[data-bip-theme="dark"] .sitemap-tree-count {
    color: rgba(231, 238, 252, 0.78);
}

[data-bip-theme="dark"] .sitemap-tree-divider-top {
    border-top-color: var(--border);
}

[data-bip-theme="dark"] .search-result-title {
    color: var(--bip-blue);
}

[data-bip-theme="dark"] .search-result {
    border-color: var(--border);
}

/* ── Search responsive ──────────────────────────────── */
@media (max-width: 640px) {
    .search-hero-bar {
        flex-direction: column;
    }

    .search-hero button {
        width: 100%;
        padding: 12px;
    }

    .search-quick-filters {
        flex-direction: column;
        gap: 10px;
    }

    .search-quick-filters .search-filter-group {
        flex: 1 1 100%;
    }

    .search-filters-body {
        flex-direction: column;
    }

    .search-filter-group {
        min-width: 0;
        width: 100%;
    }

    .search-filter-actions {
        margin-left: 0;
        width: 100%;
    }

    .search-filter-actions .btn {
        flex: 1;
    }

    .sitemap-tree-link {
        gap: 8px;
    }

    .sitemap-intro-card,
    .sitemap-category-card {
        padding: 18px;
    }

    .sitemap-category-head,
    .sitemap-category-title-wrap,
    .sitemap-category-footer,
    .sitemap-intro-meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .sitemap-load-button,
    .sitemap-more-button {
        width: 100%;
    }

    .sitemap-tree-list-children {
        padding-left: 22px;
    }

    .sitemap-tree-list-pages {
        padding-left: 22px;
    }

    .search-result-meta {
        gap: 6px 12px;
    }
}

/* ── Changelog table ────────────────────────────────── */
.changelog-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.changelog-table th,
.changelog-table td {
    padding: 10px 14px;
    text-align: left;
    border-bottom: 1px solid var(--border-light);
    font-size: 0.9375rem;
}

.changelog-table th {
    font-weight: 700;
    color: var(--text-muted);
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 2px solid var(--border);
}

.changelog-table tr:hover td {
    background: var(--bg-alt);
}

.changelog-table th:nth-child(1),
.changelog-table td:nth-child(1) {
    width: 130px;
}

.changelog-table th:nth-child(2),
.changelog-table td:nth-child(2) {
    width: 140px;
}

.changelog-table th:nth-child(4),
.changelog-table td:nth-child(4) {
    width: 150px;
}

.changelog-table td:nth-child(3),
.changelog-table td:nth-child(5) {
    overflow-wrap: anywhere;
}

.action-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.6875rem;
    font-weight: 600;
    white-space: nowrap;
}

.action-badge.create  { background: #d4edda; color: #155724; }
.action-badge.update  { background: #cce5ff; color: #003d80; }
.action-badge.publish { background: #d4edda; color: #155724; }
.action-badge.delete  { background: #f8d7da; color: #721c24; }

/* ── Footer ─────────────────────────────────────────── */
.bip-footer {
    background: #f7f9fc;
    color: #172033;
    padding: 0;
    margin-top: 48px;
    font-size: 0.875rem;
    border-top: 1px solid var(--border-light);
}

.bip-footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 32px;
    padding: 34px 0 30px;
}

.bip-footer h3 {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #0b2341;
    margin: 0 0 12px;
}

.bip-footer-toggle {
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    text-align: left;
}

.bip-footer-toggle-icon {
    display: none;
}

.bip-footer h3.bip-footer-subheading {
    margin-top: 20px;
}

.bip-footer a {
    color: #172033;
    text-decoration: none;
}

.bip-footer a:hover {
    color: var(--bip-blue);
    text-decoration: underline;
}

.bip-footer-iod {
    color: #172033;
}

.bip-footer-cookie-note {
    margin: 0;
    padding: 14px 0;
    border-top: 1px solid var(--border-light);
    font-size: 0.8125rem;
    line-height: 1.6;
    color: var(--text-muted);
    text-align: left;
}

.bip-footer-bottom {
    margin: 0 calc(50% - 50vw);
    padding: 22px calc(50vw - 50%);
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.82);
    background: #0b2d50;
}

.bip-footer-bottom a {
    color: rgba(255,255,255,0.82);
}

.bip-footer-bottom a:hover,
.bip-footer-bottom a:focus-visible {
    color: #ffffff;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.bip-made-by {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    text-decoration: none;
}

.bip-footer-bottom .zgodna-footer-logo img {
    display: block;
    width: 76px;
    height: auto;
}

.bip-footer-bottom .zgodna-footer-logo img.zgodna-footer-logo-dark {
    display: none;
}

[data-bip-theme="dark"] .bip-footer {
    background: var(--header-bg);
    color: rgba(255,255,255,0.8);
    border-top: 1px solid var(--header-border);
}

[data-bip-theme="dark"] .bip-footer h3 {
    color: var(--header-accent);
}

[data-bip-theme="dark"] .bip-footer,
[data-bip-theme="dark"] .bip-footer p,
[data-bip-theme="dark"] .bip-footer strong,
[data-bip-theme="dark"] .bip-footer-iod,
[data-bip-theme="dark"] .bip-footer-toggle {
    color: rgba(255,255,255,0.82);
}

[data-bip-theme="dark"] .bip-footer a {
    color: #dbeafe;
}

[data-bip-theme="dark"] .bip-footer a:hover,
[data-bip-theme="dark"] .bip-footer a:focus-visible {
    color: #ffffff;
    text-decoration: underline;
}

[data-bip-theme="dark"] .bip-footer-cookie-note {
    border-top-color: rgba(148, 163, 184, 0.2);
    color: rgba(255,255,255,0.68);
}

[data-contrast="high"] .bip-footer {
    background: var(--contrast-bg);
    color: var(--contrast-text);
    border-top: 2px solid var(--contrast-border);
}

[data-contrast="high"] .bip-footer h3,
[data-contrast="high"] .bip-footer h3.bip-footer-subheading {
    color: var(--contrast-text);
}

[data-contrast="high"] .bip-footer,
[data-contrast="high"] .bip-footer p,
[data-contrast="high"] .bip-footer li,
[data-contrast="high"] .bip-footer strong,
[data-contrast="high"] .bip-footer-iod,
[data-contrast="high"] .bip-footer-cookie-note,
[data-contrast="high"] .bip-footer-bottom {
    color: var(--contrast-text);
}

[data-contrast="high"] .bip-footer a,
[data-contrast="high"] .bip-footer-bottom a {
    color: var(--contrast-text);
    text-decoration: underline;
    text-underline-offset: 2px;
}

[data-contrast="high"] .bip-footer a:hover,
[data-contrast="high"] .bip-footer a:focus-visible,
[data-contrast="high"] .bip-footer-bottom a:hover,
[data-contrast="high"] .bip-footer-bottom a:focus-visible {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

[data-contrast="high"] .bip-footer-bottom {
    background: var(--contrast-bg);
    color: var(--contrast-text);
    border-top: 2px solid var(--contrast-border);
}

[data-contrast="high"]:not([data-bip-theme="dark"]) .bip-footer-bottom .zgodna-footer-logo img.zgodna-footer-logo-light {
    display: none;
}

[data-contrast="high"]:not([data-bip-theme="dark"]) .bip-footer-bottom .zgodna-footer-logo img.zgodna-footer-logo-dark {
    display: block;
}

/* ── Homepage cards ─────────────────────────────────── */
.bip-home-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin: 32px 0;
}

.bip-home-contact-section {
    margin: 28px 0 36px;
}

.bip-content--home .bip-home-contact-section {
    margin-top: 0;
}

.bip-home-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 20px;
    align-items: stretch;
}

.bip-home-panel {
    background: #ffffff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    padding: 24px;
    box-shadow: none;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.bip-home-panel-primary {
    background: #ffffff;
}

.bip-home-panel-header {
    margin-bottom: 14px;
}

.bip-home-panel-eyebrow {
    display: inline-block;
    margin-bottom: 8px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bip-blue);
}

.bip-home-section-title {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.25;
    color: var(--text);
}

.bip-home-index-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin: 34px 0 18px;
}

.bip-home-index-header p {
    margin: 6px 0 0;
    color: var(--text-muted);
    line-height: 1.45;
}

.bip-home-index-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--bip-navy);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.bip-home-index-link:hover,
.bip-home-index-link:focus-visible {
    color: var(--bip-blue);
    text-decoration: underline;
}

.bip-home-panel-intro {
    margin: 8px 0 0;
    color: var(--text-muted);
    line-height: 1.55;
    font-size: 0.9375rem;
}

.bip-home-panel-title {
    margin: 12px 0 0;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--text);
}

.bip-home-panel-title-line {
    display: block;
}

.bip-home-contact-list {
    display: grid;
    gap: 2px;
    align-content: start;
}

.bip-home-contact-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
}

.bip-home-contact-item--full {
    grid-column: 1 / -1;
}

.bip-home-contact-item--half {
    padding: 0;
    border-bottom: none;
}

.bip-home-contact-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
}

.bip-home-contact-item:last-child {
    border-bottom: none;
}

.bip-home-contact-icon {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
    font-size: 1.05rem;
}

.bip-home-contact-content {
    min-width: 0;
}

.bip-home-contact-label,
.bip-home-info-label {
    display: block;
    margin-bottom: 2px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.bip-home-contact-value {
    display: block;
    color: var(--text);
    text-decoration: none;
    font-size: 0.9375rem;
    line-height: 1.45;
    word-break: break-word;
}

.bip-home-contact-item--half .bip-home-contact-value {
    font-size: 0.875rem;
    line-height: 1.35;
    font-weight: 500;
}

a.bip-home-contact-value:hover {
    color: var(--bip-blue);
    text-decoration: underline;
}

.bip-home-info-list {
    display: grid;
    gap: 0;
    align-content: start;
}

.bip-home-info-item {
    display: block;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
}

.bip-home-info-item--full:last-child {
    border-bottom: none;
}

.bip-home-info-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
}

.bip-home-info-item--half {
    padding: 0;
    border-bottom: none;
}

.bip-home-info-content {
    min-width: 0;
}

.bip-home-info-value {
    display: block;
    color: var(--text);
    line-height: 1.45;
    font-size: 0.9375rem;
    word-break: break-word;
}

.bip-home-info-value-text {
    white-space: pre-line;
    line-height: 1.08;
}

.bip-home-info-item--multiline .bip-home-info-value {
    line-height: 1.08;
}

.bip-home-info-item--multiline .bip-home-info-label {
    margin-bottom: 10px;
}

.bip-home-info-actions {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.bip-home-info-actions-top {
    margin-top: 0;
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--border-light);
}

.bip-home-info-button {
    flex: 1 1 220px;
    justify-content: center;
}

.bip-home-card {
    position: relative;
    background: #ffffff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    min-height: 118px;
    padding: 22px 54px 22px 24px;
    text-decoration: none;
    color: var(--text);
    transition: border-color 0.2s, box-shadow 0.2s;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 18px;
    row-gap: 6px;
    align-items: center;
    overflow: hidden;
}

.bip-home-card:hover {
    border-color: var(--bip-blue);
    box-shadow: 0 4px 14px rgba(var(--bip-navy-rgb), 0.08);
}

.bip-home-card::after {
    content: "\f105";
    position: absolute;
    right: 22px;
    top: 50%;
    transform: translateY(-50%);
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: var(--bip-navy);
    font-size: 1.25rem;
    line-height: 1;
}

.bip-home-card .card-icon {
    grid-row: 1 / 3;
    width: 58px;
    height: 58px;
    border-radius: 999px;
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin: 0;
}

.bip-home-card-media {
    grid-column: 1 / -1;
    margin: -22px -54px 10px -24px;
    aspect-ratio: 16 / 5;
    background: linear-gradient(135deg, rgba(var(--bip-navy-rgb), 0.14), rgba(var(--bip-blue-rgb), 0.1));
    overflow: hidden;
}

.bip-home-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.bip-home-card h3 {
    grid-column: 2;
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--text);
    line-height: 1.35;
}

.bip-home-card p {
    grid-column: 2;
    margin: 0;
    font-size: 0.875rem;
    color: var(--text-muted);
    line-height: 1.5;
}

.bip-home-card--no-description {
    grid-template-rows: 1fr;
}

.bip-home-card--no-description .card-icon {
    grid-row: 1;
}

.bip-home-card--no-description h3 {
    grid-row: 1;
    align-self: center;
}

.bip-home-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

.bip-home-card-count {
    font-size: 0.8125rem;
    color: var(--bip-blue);
}

.category-hero {
    display: grid;
    gap: 20px;
    margin-bottom: 28px;
}

.category-hero.has-image {
    grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
    align-items: stretch;
}

.category-hero-media {
    border-radius: 18px;
    overflow: hidden;
    min-height: 180px;
    background: linear-gradient(135deg, rgba(var(--bip-navy-rgb), 0.18), rgba(var(--bip-blue-rgb), 0.12));
    box-shadow: 0 18px 40px rgba(var(--bip-navy-rgb), 0.12);
}

.category-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.category-hero-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
}

.category-hero-title-block {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.category-hero-title {
    margin-bottom: 0;
}

.category-hero-divider {
    width: 100%;
    max-width: 160px;
    height: 3px;
    border-radius: 999px;
    background: var(--bip-gold);
}

[data-contrast="high"] .category-hero-divider {
    background: var(--contrast-border);
}

.category-hero-description {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.65;
}

.authority-section-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 28px;
}

.authority-section-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 1px solid var(--border-light);
    border-radius: 999px;
    background: var(--bg);
    color: var(--text);
    text-decoration: none;
    font-weight: 600;
    transition: border-color 0.18s ease, background 0.18s ease;
}

.authority-section-link:hover,
.authority-section-link:focus-visible {
    border-color: var(--bip-blue);
    background: var(--bg-alt);
}

.authority-section-link.is-active {
    border-color: rgba(var(--bip-blue-rgb), 0.28);
    background: linear-gradient(180deg, rgba(var(--bip-blue-rgb), 0.08), rgba(var(--bip-navy-rgb), 0.03));
    color: var(--bip-navy);
}

.authority-section-link-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
    font-size: 0.8125rem;
}

.authority-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.authority-card {
    min-width: 0;
}

.authority-card-link {
    display: grid;
    height: 100%;
    grid-template-columns: minmax(132px, 156px) minmax(0, 1fr);
    text-decoration: none;
    color: inherit;
    background: var(--bg);
    border: 1px solid var(--border-light);
    border-radius: 22px;
    overflow: hidden;
    box-shadow: none;
    transition: transform 0.18s ease, border-color 0.18s ease;
}

.authority-card-link--no-media {
    grid-template-columns: minmax(0, 1fr);
}

.authority-card-link:hover,
.authority-card-link:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(var(--bip-blue-rgb), 0.35);
    box-shadow: none;
}

.authority-card-media {
    min-height: 100%;
    background: linear-gradient(135deg, rgba(var(--bip-navy-rgb), 0.16), rgba(var(--bip-blue-rgb), 0.08));
    display: grid;
    place-items: center;
    overflow: hidden;
}

.authority-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.authority-card-avatar,
.authority-detail-avatar {
    width: 112px;
    height: 112px;
    border-radius: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--bip-navy-rgb), 0.12);
    color: var(--bip-navy);
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.authority-card-body {
    display: grid;
    gap: 12px;
    padding: 18px 18px 18px 16px;
}

.authority-card-link--no-media .authority-card-body {
    padding: 24px;
}

.authority-card-topline {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.authority-card-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(var(--bip-blue-rgb), 0.1);
    color: var(--bip-blue);
    font-size: 0.75rem;
    font-weight: 700;
}

.authority-card-role {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.authority-card-title {
    margin: 0;
    font-size: 1.05rem;
    color: var(--text);
}

.authority-card-excerpt {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.6;
}

.authority-card-excerpt p {
    margin: 0;
}

.authority-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: auto;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.authority-card-cta {
    font-weight: 700;
    color: var(--bip-blue);
}

.authority-empty-state {
    display: grid;
    place-items: center;
    gap: 10px;
    min-height: 220px;
    padding: 32px 20px;
    border: 1px dashed var(--border-light);
    border-radius: 18px;
    color: var(--text-muted);
    text-align: center;
}

.authority-empty-state i {
    font-size: 2rem;
    opacity: 0.55;
}

.authority-detail-shell {
    display: grid;
    gap: 24px;
}

.authority-detail-hero {
    display: grid;
    grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
    padding: 24px;
    border: 1px solid var(--border-light);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(var(--bip-navy-rgb), 0.04), rgba(var(--bip-blue-rgb), 0.02));
}

.authority-detail-hero--no-media {
    grid-template-columns: minmax(0, 1fr);
}

.authority-detail-media {
    min-height: 260px;
    border-radius: 22px;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(var(--bip-navy-rgb), 0.16), rgba(var(--bip-blue-rgb), 0.08));
    display: grid;
    place-items: center;
}

.authority-detail-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.authority-detail-content {
    display: grid;
    align-content: center;
    gap: 14px;
}

.authority-detail-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.authority-detail-chip {
    display: inline-flex;
    align-items: center;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
    font-size: 0.8125rem;
    font-weight: 700;
}

.authority-detail-chip.is-featured {
    background: rgba(var(--bip-blue-rgb), 0.1);
    color: var(--bip-blue);
}

.authority-detail-title {
    margin-bottom: 0;
}

.authority-detail-role {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-muted);
}

.authority-detail-excerpt {
    margin: 0;
    color: var(--text);
    line-height: 1.7;
    font-size: 1rem;
}

.authority-detail-excerpt p:first-child {
    margin-top: 0;
}

.authority-detail-excerpt p:last-child {
    margin-bottom: 0;
}

.authority-detail-stack {
    display: grid;
    gap: 20px;
}

.authority-detail-panel {
    padding: 22px;
    border: 1px solid var(--border-light);
    border-radius: 22px;
    background: var(--bg);
    box-shadow: none;
}

.authority-detail-panel-wide {
    width: 100%;
}

.authority-detail-panel h3 {
    margin: 0 0 16px;
    font-size: 1rem;
    color: var(--text);
}

.authority-detail-body > :last-child {
    margin-bottom: 0;
}

.authority-contact-list {
    display: grid;
    gap: 16px;
    margin: 0;
}

.authority-contact-list div {
    display: grid;
    gap: 4px;
}

.authority-contact-list dt {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.authority-contact-list dd {
    margin: 0;
    color: var(--text);
    line-height: 1.55;
}

.authority-contact-list a {
    color: var(--bip-blue);
}

.authority-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.authority-contact-column {
    display: grid;
    gap: 14px;
    align-content: start;
}

.authority-contact-card {
    display: grid;
    gap: 8px;
    padding: 16px 18px;
    border: 1px solid var(--border-light);
    border-radius: 16px;
    background: var(--bg-alt);
}

.authority-contact-card-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.authority-contact-card-value {
    color: var(--text);
    line-height: 1.55;
    font-size: 1rem;
    word-break: break-word;
}

.authority-contact-card-value a {
    color: var(--bip-blue);
}

.authority-contact-card-value-multiline {
    white-space: pre-line;
}

.authority-contact-empty {
    margin: 0;
    color: var(--text-muted);
}

.authority-related-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.authority-related-list a {
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    border: 1px solid var(--border-light);
    border-radius: 16px;
    background: var(--bg-alt);
    color: var(--text);
    text-decoration: none;
}

.authority-related-list a:hover,
.authority-related-list a:focus-visible {
    border-color: var(--bip-blue);
}

.authority-related-list span {
    color: var(--text-muted);
    font-size: 0.875rem;
}

@media (max-width: 860px) {
    .category-hero.has-image {
        grid-template-columns: 1fr;
    }

    .authority-card-link {
        grid-template-columns: 1fr;
    }

    .authority-card-media {
        aspect-ratio: 4 / 3;
        min-height: 0;
    }

    .authority-card-body {
        padding: 18px 18px 20px;
    }

    .category-hero-media {
        min-height: 150px;
    }

    .authority-detail-hero {
        grid-template-columns: 1fr;
    }

    .authority-detail-media {
        min-height: 220px;
    }

    .authority-contact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .page-document-card {
        padding: 18px 16px;
        border-radius: var(--bip-radius-md);
    }

    .page-meta {
        gap: 10px 14px;
    }

    .attachments-list a {
        grid-template-columns: auto minmax(0, 1fr) auto;
        padding-left: 12px;
    }

    .attachments-list .file-size {
        display: none;
    }

    .attachments-list .file-type,
    .attachments-list .file-download {
        min-height: 40px;
        padding: 0 10px;
    }

    .attachments-list .file-type {
        min-width: 52px;
    }

    .authority-contact-grid {
        grid-template-columns: 1fr;
    }

    .category-section {
        margin-top: 22px;
    }

    .category-section-head {
        margin-bottom: 14px;
    }

    .category-subcategory-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .category-subcategory-card {
        min-height: 80px;
        padding: 16px;
    }

    .page-list-item {
        padding: 0;
    }

    .category-entry-link {
        min-height: 72px;
        padding: 15px 16px;
    }

    .category-entry-title {
        font-size: 1rem;
    }
}

[data-bip-theme="dark"] .breadcrumbs {
    color: rgba(255,255,255,0.72);
}

[data-bip-theme="dark"] .breadcrumbs a,
[data-bip-theme="dark"] .page-meta a,
[data-bip-theme="dark"] .article-body a,
[data-bip-theme="dark"] .metryczka-history-toggle,
[data-bip-theme="dark"] .attachments-list a,
[data-bip-theme="dark"] .page-list-item a {
    color: #93c5fd;
}

[data-bip-theme="dark"] .breadcrumbs a:hover,
[data-bip-theme="dark"] .page-meta a:hover,
[data-bip-theme="dark"] .article-body a:hover,
[data-bip-theme="dark"] .attachments-list a:hover,
[data-bip-theme="dark"] .page-list-item a:hover {
    color: #bfdbfe;
}

[data-bip-theme="dark"] .breadcrumbs .sep,
[data-bip-theme="dark"] .breadcrumbs span,
[data-bip-theme="dark"] .page-meta {
    color: rgba(255,255,255,0.72);
}

[data-bip-theme="dark"] .page-meta i {
    color: rgba(255,255,255,0.62);
}

[data-bip-theme="dark"] .page-document-card {
    background: rgba(15, 23, 42, .82);
    border-color: rgba(148, 163, 184, .28);
}

[data-bip-theme="dark"] .article-body {
    color: rgba(255,255,255,0.9);
}

[data-bip-theme="dark"] .page-document-card .article-body > p:first-child {
    color: #dbeafe;
}

[data-bip-theme="dark"] .article-body h2 {
    color: #93c5fd;
    border-bottom-color: rgba(255,255,255,0.14);
}

[data-bip-theme="dark"] .article-body h3 {
    color: #dbeafe;
}

[data-bip-theme="dark"] .article-body th {
    background: rgba(255,255,255,0.05);
}

[data-bip-theme="dark"] .page-attachments {
    border-top-color: rgba(148, 163, 184, .22);
}

[data-bip-theme="dark"] .page-section-title,
[data-bip-theme="dark"] .page-section-title i {
    color: #e5e7eb;
}

[data-bip-theme="dark"] .metryczka {
    background: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .recruitment-print-button,
[data-bip-theme="dark"] .recruitment-metadata,
[data-bip-theme="dark"] .recruitment-bip-metadata {
    background: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .recruitment-bip-metadata header,
[data-bip-theme="dark"] .recruitment-bip-metadata dl > div {
    border-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .recruitment-bip-metadata h2,
[data-bip-theme="dark"] .recruitment-bip-metadata dd,
[data-bip-theme="dark"] .recruitment-print-button {
    color: #e5e7eb;
}

[data-bip-theme="dark"] .metryczka-title i {
    color: #93c5fd;
}

[data-bip-theme="dark"] .attachments-list a {
    background: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .page-document-card .attachments-list a {
    background: rgba(15, 23, 42, .68);
    color: #e5e7eb;
}

[data-bip-theme="dark"] .attachments-list .file-name,
[data-bip-theme="dark"] .attachments-list .file-type,
[data-bip-theme="dark"] .attachments-list .file-download {
    color: #e5e7eb;
}

[data-bip-theme="dark"] .attachments-list .file-size,
[data-bip-theme="dark"] .attachments-list .file-type,
[data-bip-theme="dark"] .attachments-list .file-download {
    border-left-color: rgba(148, 163, 184, .22);
}

[data-bip-theme="dark"] .attachments-list a:hover {
    background: rgba(255,255,255,0.05);
    border-color: rgba(147,197,253,0.45);
}

[data-bip-theme="dark"] .bip-nav-link--separator {
    color: var(--header-text-muted);
}

[data-bip-theme="dark"] .bip-subnav-separator {
    border-top-color: rgba(255,255,255,0.1);
}

[data-bip-theme="dark"] .bip-subnav-separator-label,
[data-bip-theme="dark"] .bip-subnav-separator-text,
[data-bip-theme="dark"] .megamenu-link--separator,
[data-bip-theme="dark"] .megamenu-subseparator-label,
[data-bip-theme="dark"] .megamenu-subseparator-text {
    color: rgba(255,255,255,0.72);
}

[data-bip-theme="dark"] .megamenu-link--separator {
    border-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .page-list-item {
    border-bottom-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .category-section-head {
    border-bottom-color: rgba(255,255,255,0.1);
}

[data-bip-theme="dark"] .category-hero-stats,
[data-bip-theme="dark"] .category-section-head h2,
[data-bip-theme="dark"] .category-subcategory-title,
[data-bip-theme="dark"] .page-list-item a {
    color: #f8fafc;
}

[data-bip-theme="dark"] .category-section-head h2::after {
    background: rgba(255,255,255,0.5);
}

[data-bip-theme="dark"] .category-subcategory-card {
    background: rgba(15, 23, 42, 0.82);
    border-color: rgba(255,255,255,0.1);
    color: #f8fafc;
}

[data-bip-theme="dark"] .category-entry-list {
    background: rgba(15, 23, 42, 0.82);
    border-color: rgba(255,255,255,0.1);
}

[data-bip-theme="dark"] .category-entry-link {
    background: transparent;
}

[data-bip-theme="dark"] .category-entry-link:hover,
[data-bip-theme="dark"] .category-entry-link:focus-visible {
    background: rgba(255,255,255,0.045);
}

[data-bip-theme="dark"] .category-subcategory-card:hover,
[data-bip-theme="dark"] .category-subcategory-card:focus-visible {
    border-color: rgba(147,197,253,0.6);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

[data-bip-theme="dark"] .category-subcategory-count,
[data-bip-theme="dark"] .category-list-summary,
[data-bip-theme="dark"] .page-list-item .item-meta {
    color: rgba(255,255,255,0.72);
}

[data-bip-theme="dark"] .page-list-item .item-meta i {
    color: rgba(255,255,255,0.62);
}

[data-bip-theme="dark"] .category-entry-meta span + span::before {
    background: rgba(255,255,255,0.16);
}

[data-bip-theme="dark"] .page-list-item .item-excerpt {
    color: rgba(255,255,255,0.86);
}

[data-bip-theme="dark"] .pinned-badge {
    background: rgba(147,197,253,0.16);
    color: #dbeafe;
}

[data-bip-theme="dark"] .bip-home-card {
    border-color: rgba(255,255,255,0.1);
    background: rgba(15, 23, 42, 0.82);
}

[data-bip-theme="dark"] .bip-home-card:hover {
    border-color: rgba(147, 197, 253, 0.6);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

[data-bip-theme="dark"] .bip-home-card .card-icon {
    background: rgba(147, 197, 253, 0.16);
    color: #dbeafe;
}

[data-bip-theme="dark"] .bip-home-card::after {
    color: #dbeafe;
}

[data-bip-theme="dark"] .bip-home-card-media,
[data-bip-theme="dark"] .category-hero-media {
    background: linear-gradient(135deg, rgba(30, 41, 59, 0.9), rgba(15, 23, 42, 0.72));
}

[data-bip-theme="dark"] .bip-home-card-count {
    color: #93c5fd;
}

[data-bip-theme="dark"] .category-hero-description {
    color: rgba(255,255,255,0.72);
}

[data-bip-theme="dark"] .authority-section-link {
    background: rgba(15, 23, 42, 0.82);
    border-color: rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.9);
}

[data-bip-theme="dark"] .authority-section-link:hover,
[data-bip-theme="dark"] .authority-section-link:focus-visible,
[data-bip-theme="dark"] .authority-section-link.is-active {
    border-color: rgba(147, 197, 253, 0.5);
    background: rgba(30, 41, 59, 0.9);
    color: #dbeafe;
}

[data-bip-theme="dark"] .authority-section-link-count,
[data-bip-theme="dark"] .authority-detail-chip {
    background: rgba(147, 197, 253, 0.16);
    color: #dbeafe;
}

[data-bip-theme="dark"] .authority-card-link,
[data-bip-theme="dark"] .authority-detail-panel,
[data-bip-theme="dark"] .authority-detail-hero,
[data-bip-theme="dark"] .authority-related-list a {
    border-color: rgba(255,255,255,0.1);
    background: rgba(15, 23, 42, 0.82);
}

[data-bip-theme="dark"] .authority-contact-card {
    border-color: rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.03);
}

[data-bip-theme="dark"] .authority-card-avatar,
[data-bip-theme="dark"] .authority-detail-avatar {
    background: rgba(147, 197, 253, 0.14);
    color: #dbeafe;
}

[data-bip-theme="dark"] .authority-card-title,
[data-bip-theme="dark"] .authority-detail-title,
[data-bip-theme="dark"] .authority-detail-panel h3,
[data-bip-theme="dark"] .authority-contact-list dd,
[data-bip-theme="dark"] .authority-related-list a {
    color: rgba(255,255,255,0.92);
}

[data-bip-theme="dark"] .authority-card-excerpt,
[data-bip-theme="dark"] .authority-card-meta,
[data-bip-theme="dark"] .authority-card-role,
[data-bip-theme="dark"] .authority-detail-role,
[data-bip-theme="dark"] .authority-related-list span,
[data-bip-theme="dark"] .authority-empty-state {
    color: rgba(255,255,255,0.72);
}

[data-bip-theme="dark"] .authority-card-badge,
[data-bip-theme="dark"] .authority-detail-chip.is-featured {
    background: rgba(147, 197, 253, 0.16);
    color: #bfdbfe;
}

[data-bip-theme="dark"] .authority-empty-state {
    border-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .category-hero-divider {
    background: #93c5fd;
}

[data-bip-theme="dark"] .page-intro-divider {
    background: rgba(255,255,255,0.34);
}

[data-bip-theme="dark"] .bip-home-panel {
    border-color: var(--border);
    background: rgba(255,255,255,0.03);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.22);
}

[data-bip-theme="dark"] .bip-home-panel-primary {
    background: linear-gradient(180deg, rgba(147, 197, 253, 0.08), rgba(255,255,255,0.03));
}

[data-bip-theme="dark"] .bip-home-panel-eyebrow {
    color: #93c5fd;
}

[data-bip-theme="dark"] .bip-home-contact-item {
    border-bottom-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .bip-home-contact-icon {
    background: rgba(147, 197, 253, 0.18);
    color: #dbeafe;
}

[data-bip-theme="dark"] .bip-home-info-item,
[data-bip-theme="dark"] .bip-home-info-pair {
    border-bottom-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] .bip-home-info-actions-top {
    border-bottom-color: rgba(255,255,255,0.08);
}

[data-bip-theme="dark"] a.bip-home-contact-value:hover {
    color: #93c5fd;
}

/* ── Pagination ─────────────────────────────────────── */
.pagination {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 24px;
    justify-content: center;
}

.pagination a,
.pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.875rem;
    text-decoration: none;
    color: var(--text);
    transition: background 0.15s, border-color 0.15s;
}

.pagination a:hover {
    background: var(--bg-alt);
    border-color: var(--bip-blue);
}

.pagination .active {
    background: var(--bip-navy);
    color: #fff;
    border-color: var(--bip-navy);
}

/* ── Buttons ────────────────────────────────────────── */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    line-height: 1.4;
}

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

.btn-primary:hover {
    background: var(--bip-blue-hover);
    border-color: var(--bip-blue-hover);
}

.btn-secondary {
    background: var(--bg);
    color: var(--text);
    border-color: var(--border);
}

.btn-secondary:hover {
    background: var(--bg-alt);
    border-color: var(--text-muted);
}

.btn-outline {
    background: transparent;
    color: var(--bip-navy);
    border-color: currentColor;
}

.btn-outline:hover,
.btn-outline:focus-visible {
    background: rgba(var(--bip-navy-rgb, 0, 51, 102), 0.08);
    color: var(--bip-blue-hover);
    border-color: var(--bip-blue-hover);
}

[data-bip-theme="dark"] .btn-outline {
    color: #dbeafe;
    border-color: rgba(147,197,253,0.42);
}

[data-bip-theme="dark"] .btn-outline:hover,
[data-bip-theme="dark"] .btn-outline:focus-visible {
    background: rgba(147,197,253,0.12);
    color: #f8fafc;
    border-color: #93c5fd;
}

[data-contrast="high"] .btn-outline {
    background: var(--contrast-surface);
    color: var(--contrast-text);
    border: 2px solid var(--contrast-border);
}

[data-contrast="high"] .btn-outline:hover,
[data-contrast="high"] .btn-outline:focus-visible {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
    border-color: var(--contrast-interactive-border);
}

.btn-sm {
    padding: 6px 12px;
    font-size: 0.8125rem;
}

/* ── Alerts ─────────────────────────────────────────── */
.alert {
    padding: 14px 20px;
    border-radius: 8px;
    font-size: 0.9375rem;
    margin-bottom: 20px;
    border: 1px solid transparent;
}

.alert-info    { background: #e8f4f8; color: #0c5460; border-color: #bee5eb; }
.alert-success { background: #d4edda; color: #155724; border-color: #c3e6cb; }
.alert-error   { background: #f8d7da; color: #721c24; border-color: #f5c6cb; }

/* ── Megamenu toggle (hidden on desktop, in a11y toolbar) ── */
.megamenu-toggle {
    display: none;
    background: rgba(255,255,255,0.78);
    color: var(--header-text);
    border-color: var(--header-border);
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 0.8125rem;
}

.megamenu-toggle:hover,
.megamenu-toggle:focus-visible {
    background: #fff;
    color: var(--header-text);
    border-color: var(--header-border);
}

.megamenu-toggle:focus-visible {
    outline: 3px solid var(--focus-color);
    outline-offset: 2px;
}

/* ── Megamenu overlay ───────────────────────────────── */
.megamenu-overlay {
    position: fixed;
    inset: 0;
    z-index: 9000;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(4px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.megamenu-overlay.open {
    opacity: 1;
    visibility: visible;
}

.megamenu-panel {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    max-width: 480px;
    height: 100%;
    background: var(--bg);
    box-shadow: -8px 0 40px rgba(0,0,0,0.25);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.megamenu-overlay.open .megamenu-panel {
    transform: translateX(0);
}

.megamenu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: var(--bip-navy);
    color: #fff;
    flex-shrink: 0;
}

.megamenu-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.0625rem;
    font-weight: 700;
}

.megamenu-brand img {
    border-radius: 6px;
}

.megamenu-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: rgba(255,255,255,0.12);
    border: none;
    border-radius: 8px;
    color: #fff;
    font-size: 1.125rem;
    cursor: pointer;
    transition: background 0.15s;
}

.megamenu-close:hover {
    background: rgba(255,255,255,0.2);
}

.megamenu-search {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 12px 20px 0;
    padding: 12px 16px;
    background: var(--bg-alt);
    border: 1px solid var(--border-light);
    border-radius: 10px;
}

.megamenu-search i {
    color: var(--text-muted);
    font-size: 0.875rem;
    flex-shrink: 0;
}

.megamenu-search input {
    flex: 1;
    border: none;
    background: transparent;
    font-size: 0.9375rem;
    font-family: inherit;
    color: var(--text);
    outline: none;
}

.megamenu-search input:focus-visible {
    box-shadow: 0 0 0 3px var(--focus-color);
    border-radius: 4px;
}

.megamenu-search input::placeholder {
    color: var(--text-muted);
}

.megamenu-nav {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0 20px;
    -webkit-overflow-scrolling: touch;
}

.megamenu-section {
    padding: 12px 20px 0;
}

.megamenu-section-title {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border-light);
}

.megamenu-links {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.megamenu-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--text);
    font-size: 0.9375rem;
    font-weight: 500;
    transition: background 0.15s;
}

.megamenu-link:hover,
.megamenu-link:focus-visible {
    background: var(--bg-alt);
}

.megamenu-link.active {
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
}

.megamenu-link--separator {
    cursor: default;
    color: var(--text-muted);
    background: transparent;
    border: 1px dashed var(--border-light);
}

.megamenu-link i {
    width: 20px;
    text-align: center;
    color: var(--bip-navy);
    font-size: 0.9375rem;
}

.megamenu-link-group {
    display: grid;
    gap: 6px;
}

.megamenu-sublinks {
    display: grid;
    gap: 2px;
    margin: -2px 0 2px 24px;
    padding-left: 16px;
    border-left: 1px solid var(--border-light);
}

.megamenu-sublink {
    padding: 10px 12px;
    font-size: 0.875rem;
}

.megamenu-subseparator {
    display: grid;
    gap: 4px;
    margin: 6px 0 4px;
    padding: 6px 12px;
}

.megamenu-subseparator-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.megamenu-subseparator-text {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--text-muted);
}

/* ── Megamenu category tree ─────────────────────────── */
.megamenu-tree {
    display: grid;
    gap: 10px;
}

.megamenu-tree-item {
    display: grid;
    gap: 8px;
}

.megamenu-tree-row {
    display: flex;
    align-items: stretch;
    gap: 8px;
    padding-left: calc(var(--tree-depth, 0) * 18px);
}

.megamenu-tree-link {
    flex: 1;
    display: flex;
    gap: 12px;
    padding: 14px;
    border-radius: 12px;
    background: var(--bg-alt);
    border: 1px solid var(--border-light);
    text-decoration: none;
    color: var(--text);
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}

.megamenu-tree-link:hover,
.megamenu-tree-link:focus-visible {
    border-color: var(--bip-navy);
    box-shadow: 0 2px 8px rgba(var(--bip-navy-rgb), 0.12);
}

.megamenu-tree-link.active {
    border-color: var(--bip-navy);
    background: rgba(var(--bip-navy-rgb), 0.06);
}

.megamenu-tree-link .tree-link-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(var(--bip-navy-rgb), 0.1);
    color: var(--bip-navy);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    flex-shrink: 0;
}

.megamenu-tree-link .tree-link-name {
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text);
}
[data-bip-theme="dark"] .system-page-lead {
    color: var(--text-muted);
}

.accessibility-declaration {
    max-width: 920px;
}

.accessibility-section {
    margin-bottom: 28px;
    padding: 22px 24px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg-alt);
}

.accessibility-section:last-child {
    margin-bottom: 0;
}

.accessibility-section h3 {
    margin-top: 0;
    margin-bottom: 14px;
    font-size: 1.125rem;
}

.accessibility-subsection {
    margin-top: 18px;
}

.accessibility-subsection h4 {
    margin: 0 0 10px;
    font-size: 1rem;
}

[data-bip-theme="dark"] .accessibility-section {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
}

.megamenu-tree-count {
    margin-left: auto;
    align-self: center;
    font-size: 0.6875rem;
    color: var(--text-muted);
}

.megamenu-banners {
    display: grid;
    gap: 10px;
}

.megamenu-tree-tail {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
}

.megamenu-banners .bip-sidebar-banner--sidebar {
    min-height: 6.5rem;
    box-shadow: 0 10px 22px rgba(var(--bip-navy-rgb), 0.08);
}

.megamenu-footer {
    padding: 14px 20px;
    border-top: 1px solid var(--border-light);
    font-size: 0.75rem;
    color: var(--text-muted);
    text-align: center;
    flex-shrink: 0;
}

/* ── Dark mode: megamenu ────────────────────────────── */
[data-bip-theme="dark"] .megamenu-panel {
    background: var(--bg);
    box-shadow: -8px 0 40px rgba(0,0,0,0.6);
}

[data-bip-theme="dark"] .megamenu-tree-link {
    background: var(--bg-alt);
    border-color: var(--border);
}

[data-bip-theme="dark"] .bip-sidebar-title-description,
[data-bip-theme="dark"] .megamenu-tree-heading {
    color: rgba(255,255,255,0.78);
}

[data-bip-theme="dark"] .sidebar-tree-heading {
    color: rgba(255,255,255,0.5);
}

[data-bip-theme="dark"] .megamenu-tree-heading {
    border-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .megamenu-tree-link:hover {
    border-color: #4a7aa8;
}

[data-bip-theme="dark"] .megamenu-banners .bip-sidebar-banner--sidebar {
    box-shadow: 0 12px 26px rgba(0,0,0,0.28);
}

[data-bip-theme="dark"] .megamenu-tree-tail {
    border-top-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .megamenu-tree-link .tree-link-icon {
    background: rgba(100,160,220,0.15);
    color: #7bb8e0;
}

[data-bip-theme="dark"] .sidebar-tree-toggle,
[data-bip-theme="dark"] .megamenu-tree-toggle {
    color: var(--text-muted);
}

[data-bip-theme="dark"] .megamenu-close {
    background: rgba(255,255,255,0.1);
}

/* ── High-contrast: megamenu ────────────────────────── */
[data-contrast="high"] .megamenu-tree-link {
    border: 2px solid var(--contrast-border);
    background: var(--contrast-surface);
    color: var(--contrast-text);
}

[data-contrast="high"] .megamenu-tree-link .tree-link-icon {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

[data-contrast="high"] .megamenu-link:hover {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

/* ── Body lock when megamenu open ───────────────────── */
body.megamenu-open {
    overflow: hidden;
}

/* ── Responsive ─────────────────────────────────────── */
@media (max-width: 992px) {
    .megamenu-toggle {
        display: inline-flex;
    }

    .bip-header-brand {
        width: 100%;
        justify-content: space-between;
    }

    .bip-logo {
        gap: 12px;
        flex: 1 1 auto;
    }

    .bip-logo-text h1 {
        font-size: 1.0625rem;
    }

    .bip-logo-text .bip-unit-name {
        font-size: 0.9375rem;
    }

    .bip-header-emblem {
        width: 72px;
        min-height: 72px;
        padding-left: 14px;
    }

    .bip-header-emblem img {
        width: 56px;
        max-height: 66px;
    }

    .a11y-sitemap-link,
    .a11y-accessibility-link {
        display: none;
    }

    .bip-nav {
        display: none;
    }

    .bip-sidebar {
        display: none;
    }

    .bip-main {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
        gap: 16px;
        margin: 16px auto 28px;
        padding: 0 12px;
    }

    .bip-content {
        flex: 0 1 auto;
        padding: 24px 20px;
        border-radius: 20px;
    }

    .bip-content--home {
        padding: 0;
        border-radius: 0;
    }

    .bip-home-contact-grid {
        grid-template-columns: 1fr;
    }

    .bip-banner-strip-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bip-footer-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .bip-header-top {
        flex-wrap: wrap;
    }

    .bip-header-search {
        display: none;
    }

    .metryczka-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .bip-header-brand {
        align-items: center;
        gap: 14px;
    }

    .bip-logo {
        align-items: center;
    }

    .bip-header-emblem {
        width: 64px;
        min-height: 64px;
        padding-left: 12px;
    }

    .bip-header-emblem img {
        width: 48px;
        max-height: 56px;
    }

    .megamenu-panel {
        max-width: 100%;
    }

    .bip-home-grid {
        grid-template-columns: 1fr;
    }

    .bip-home-panel {
        padding: 20px;
        border-radius: 16px;
    }

    .bip-home-contact-list {
        gap: 0;
    }

    .bip-home-contact-pair {
        grid-template-columns: 1fr;
        row-gap: 12px;
    }

    .bip-home-info-pair {
        grid-template-columns: 1fr;
        row-gap: 12px;
    }

    .bip-home-contact-item {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 10px;
        align-items: start;
    }

    .bip-home-contact-icon {
        width: 34px;
        height: 34px;
        margin-top: 2px;
    }

    .a11y-toolbar .container {
        justify-content: center;
    }

    .bip-footer-bottom {
        flex-direction: row;
        justify-content: center;
        gap: 8px;
        text-align: center;
    }

    .bip-footer-grid {
        grid-template-columns: 1fr;
        gap: 0;
        padding: 12px 0;
    }

    .bip-footer-section {
        border-bottom: 1px solid var(--border-light);
    }

    .bip-footer-section:last-child {
        border-bottom: 0;
    }

    .bip-footer h3.bip-footer-heading {
        margin: 0;
    }

    .bip-footer-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        min-height: 52px;
        cursor: pointer;
    }

    .bip-footer-toggle-icon {
        display: inline-flex;
        font-size: 0.875rem;
        transition: transform 0.16s ease;
    }

    .bip-footer-toggle[aria-expanded="true"] .bip-footer-toggle-icon {
        transform: rotate(180deg);
    }

    .bip-footer-panel {
        padding: 0 0 18px;
    }

    .bip-footer-panel[hidden] {
        display: none;
    }

    .bip-footer h3.bip-footer-subheading {
        margin-top: 18px;
        margin-bottom: 10px;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 14px;
    }

    .a11y-toolbar {
        padding: 8px 0;
    }

    .a11y-toolbar .container {
        gap: 6px;
    }

    .a11y-btn {
        padding: 6px 10px;
        font-size: 0.75rem;
    }

    .a11y-btn i {
        font-size: 0.8125rem;
    }

    .megamenu-toggle {
        padding-inline: 16px;
        font-size: 0.875rem;
    }

    .bip-header-top {
        padding: 16px 0;
    }

    .bip-header-brand {
        align-items: flex-start;
        gap: 12px;
    }

    .bip-logo {
        gap: 10px;
        align-items: flex-start;
    }

    .bip-logo img {
        width: 78px;
    }

    .bip-logo-text h1 {
        font-size: 0.9rem;
        line-height: 1.05;
    }

    .bip-logo-text .bip-unit-name {
        font-size: 0.76rem;
        line-height: 1.35;
        margin-top: 4px;
    }

    .bip-header-emblem {
        width: 52px;
        min-height: 52px;
        padding-left: 10px;
        align-self: center;
    }

    .bip-header-emblem img {
        width: 38px;
        max-height: 46px;
    }
}

@media (max-width: 380px) {
    .a11y-btn {
        padding: 6px 8px;
        font-size: 0.6875rem;
    }

    .megamenu-toggle {
        padding-inline: 14px;
    }

    .bip-logo img {
        width: 70px;
    }

    .bip-logo-text h1 {
        font-size: 0.82rem;
    }

    .bip-logo-text .bip-unit-name {
        font-size: 0.72rem;
    }

    .bip-header-emblem {
        width: 46px;
        min-height: 46px;
        padding-left: 8px;
    }

    .bip-header-emblem img {
        width: 32px;
        max-height: 40px;
    }
}
    .page-title {
        font-size: 1.375rem;
    }

    .bip-main {
        margin-top: 22px;
        padding: 0 8px;
    }

    .bip-content {
        padding: 22px 20px;
        border-radius: 16px;
    }

    .bip-content--home {
        padding: 0;
        border-radius: 0;
    }

    .version-inline-preview-header,
    .version-inline-preview-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .version-inline-preview-details {
        padding: 10px 16px;
    }

    .version-inline-preview-detail-row {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .version-inline-preview {
        border-radius: 14px;
    }

    .version-inline-preview-body {
        padding: 16px;
    }
}

/* ── Print ──────────────────────────────────────────── */
@media print {
    .a11y-toolbar,
    .bip-nav,
    .bip-sidebar,
    .bip-footer,
    .skip-link,
    .search-form,
    .search-hero,
    .recruitment-print-button,
    .pagination {
        display: none !important;
    }

    .bip-main {
        display: block;
    }

    .bip-content {
        padding: 0;
    }

    .bip-header {
        background: none;
        color: #000;
        border-bottom: 2px solid #000;
    }

    .metryczka {
        border: 1px solid #000;
    }

    body {
        font-size: 12pt;
        color: #000;
    }

    a {
        color: #000;
        text-decoration: underline;
    }

    @page {
        margin: 14mm;
    }

    .recruitment-detail {
        display: block;
        color: #000;
        font-size: 11pt;
        line-height: 1.45;
    }

    .recruitment-detail .breadcrumbs {
        display: none;
    }

    .recruitment-detail-header {
        display: block;
        padding: 0 0 10mm;
        border: 0;
        border-bottom: 2px solid #000;
        border-radius: 0;
        background: #fff;
    }

    .recruitment-detail-header h1 {
        margin: 0;
        color: #000;
        font-size: 20pt;
        font-weight: 700;
        line-height: 1.2;
    }

    .recruitment-detail-header p {
        color: #333;
    }

    .recruitment-kicker {
        color: #000 !important;
        font-size: 9pt;
        letter-spacing: 0.06em;
    }

    .recruitment-detail-actions {
        margin-top: 6mm;
        justify-content: flex-start;
    }

    .recruitment-detail-actions .badge {
        display: inline-block;
        padding: 2mm 4mm;
        border: 1px solid #000;
        border-radius: 0;
        background: #fff !important;
        color: #000 !important;
        font-size: 9pt;
    }

    .recruitment-grid {
        display: block;
        margin-top: 8mm;
    }

    .recruitment-detail .article-body {
        color: #000;
    }

    .recruitment-detail .article-body h2 {
        margin: 8mm 0 3mm;
        padding-bottom: 2mm;
        border-bottom: 1px solid #999;
        color: #000;
        font-size: 14pt;
        font-weight: 700;
        page-break-after: avoid;
    }

    .recruitment-detail .article-body p,
    .recruitment-detail .article-body li {
        color: #000;
    }

    .recruitment-metadata,
    .recruitment-bip-metadata,
    .recruitment-result-box,
    .recruitment-timeline-item {
        position: static;
        margin-top: 8mm;
        padding: 0;
        border: 1px solid #999;
        border-radius: 0;
        background: #fff;
        box-shadow: none;
        page-break-inside: avoid;
    }

    .recruitment-metadata h2,
    .recruitment-bip-metadata h2 {
        margin: 0;
        padding: 4mm;
        border-bottom: 1px solid #999;
        color: #000;
        font-size: 13pt;
        font-weight: 700;
    }

    .recruitment-bip-metadata header {
        padding: 0;
        border-bottom: 0;
    }

    .recruitment-metadata dl,
    .recruitment-bip-metadata dl {
        display: grid;
        grid-template-columns: 45mm minmax(0, 1fr);
        margin: 0;
        padding: 0;
    }

    .recruitment-metadata dt,
    .recruitment-metadata dd,
    .recruitment-bip-metadata dt,
    .recruitment-bip-metadata dd {
        margin: 0;
        padding: 3mm 4mm;
        border-bottom: 1px solid #ddd;
        color: #000;
        font-size: 10pt;
        letter-spacing: 0;
        text-transform: none;
    }

    .recruitment-metadata dt,
    .recruitment-bip-metadata dt {
        border-right: 1px solid #ddd;
        font-weight: 700;
    }

    .recruitment-bip-metadata dl > div {
        display: contents;
        padding: 0;
        border: 0;
    }

    .recruitment-bip-metadata dd {
        margin-top: 0;
    }

    .recruitment-timeline,
    .recruitment-result-box {
        page-break-inside: avoid;
    }
}

/* ── PDF Export Button ─────────────────────────────── */
.page-actions-bar {
    display: flex;
    gap: 8px;
    margin: 24px 0 0;
    flex-wrap: wrap;
}
.page-actions-bar .btn-page-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: .8125rem;
    font-weight: 500;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg);
    color: var(--text);
    cursor: pointer;
    text-decoration: none;
    transition: background .15s, border-color .15s;
}
.page-actions-bar .btn-page-action:hover {
    background: var(--bip-navy);
    color: #fff;
    border-color: var(--bip-navy);
}
.page-actions-bar .btn-page-action i {
    font-size: .875rem;
}

.recruitment-print-document {
    display: none;
}

[data-bip-theme="dark"] .page-actions-bar .btn-page-action {
    background: #1e293b;
    color: #e2e8f0;
    border-color: #334155;
}
[data-bip-theme="dark"] .page-actions-bar .btn-page-action:hover {
    background: #334155;
    color: #fff;
    border-color: #475569;
}
@media print {
    .page-actions-bar { display: none; }
}

@media print {
    @page {
        size: A4 portrait;
        margin: 14mm;
    }

    html,
    body {
        background: #fff !important;
        color: #000 !important;
        font-family: Arial, Helvetica, sans-serif !important;
        font-size: 10.5pt !important;
        line-height: 1.35 !important;
    }

    .a11y-toolbar,
    .bip-header,
    .bip-nav,
    .bip-sidebar,
    .bip-banner-strip,
    .megamenu-overlay,
    .bip-footer,
    .skip-link,
    .recruitment-detail > :not(.recruitment-print-document) {
        display: none !important;
    }

    .bip-main,
    .bip-content {
        display: block !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .recruitment-detail {
        display: block !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .recruitment-print-document {
        display: block !important;
        color: #000 !important;
    }

    .recruitment-print-header {
        margin: 0 0 8mm;
        padding: 0 0 5mm;
        border-bottom: 2px solid #000;
    }

    .recruitment-print-header p {
        margin: 0 0 2mm;
        color: #333 !important;
        font-size: 9pt;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }

    .recruitment-print-header h1 {
        margin: 0 0 2mm;
        color: #000 !important;
        font-size: 18pt !important;
        font-weight: 700 !important;
        line-height: 1.18 !important;
    }

    .recruitment-print-header div {
        color: #000 !important;
        font-size: 10pt;
        font-weight: 700;
    }

    .recruitment-print-document h2 {
        margin: 7mm 0 3mm !important;
        color: #000 !important;
        font-size: 13pt !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        page-break-after: avoid;
    }

    .recruitment-print-document table {
        width: 100% !important;
        margin: 0 0 5mm !important;
        border-collapse: collapse !important;
        border: 1px solid #666 !important;
        page-break-inside: avoid;
    }

    .recruitment-print-document th,
    .recruitment-print-document td {
        padding: 2.5mm 3mm !important;
        border: 1px solid #999 !important;
        color: #000 !important;
        font-size: 10pt !important;
        line-height: 1.35 !important;
        text-align: left !important;
        vertical-align: top !important;
    }

    .recruitment-print-document th {
        width: 42mm;
        background: #f2f2f2 !important;
        font-weight: 700 !important;
    }

    .recruitment-print-document thead th {
        width: auto;
    }

    .recruitment-print-richtext {
        margin: 0 0 5mm !important;
        color: #000 !important;
    }

    .recruitment-print-richtext p,
    .recruitment-print-richtext ul,
    .recruitment-print-richtext ol {
        margin: 0 0 3mm !important;
        color: #000 !important;
    }

    .recruitment-print-richtext li {
        margin: 0 0 1.5mm !important;
        color: #000 !important;
    }

    .recruitment-print-richtext * {
        color: #000 !important;
        background: transparent !important;
        box-shadow: none !important;
    }
}

/* ── Reduced motion (WCAG 2.3.3) ───────────────────── */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ── Resident Panel Public ────────────────────────────── */
.resident-category-page,
.resident-case-detail {
    max-width: 960px;
}
.resident-panel-header,
.resident-category-header {
    text-align: center;
    margin-bottom: 2rem;
}
.resident-panel-header h1,
.resident-category-header h1 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--navy, #1e3a5f);
}
.resident-panel-header p,
.resident-category-header p {
    color: var(--text-muted);
    font-size: 0.95rem;
}
.resident-cat-icon-large {
    font-size: 2rem;
    display: block;
    margin-bottom: 0.5rem;
    color: var(--resident-category-color, var(--bip-blue, #3b82f6));
}

/* Tiles grid */
.resident-tiles {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}
.resident-tiles li {
    display: flex;
}
.resident-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1.5rem 1rem;
    border-radius: 12px;
    border: 2px solid var(--border-color, #e5e7eb);
    text-decoration: none;
    color: var(--text, #1f2937);
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;
    width: 100%;
    min-height: 140px;
    background: var(--bg, #fff);
}
.resident-tile:hover,
.resident-tile:focus-visible {
    border-color: var(--tile-color, #3b82f6);
    box-shadow: 0 4px 16px rgba(0,0,0,.08);
    transform: translateY(-2px);
}
.resident-tile:focus-visible {
    outline: 3px solid var(--tile-color, #3b82f6);
    outline-offset: 2px;
}
.resident-tile-icon {
    font-size: 2rem;
    color: var(--tile-color, #3b82f6);
    margin-bottom: 0.75rem;
}
.resident-tile-title {
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.3;
    color: inherit;
}
.resident-tile-desc {
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-top: 0.375rem;
    line-height: 1.4;
}

/* Cases list */
.resident-cases-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.resident-case-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-radius: 10px;
    border: 1px solid var(--border-color, #e5e7eb);
    text-decoration: none;
    color: var(--text, #1f2937);
    background: var(--bg, #fff);
    transition: border-color 0.2s, box-shadow 0.15s;
}
.resident-case-card:hover,
.resident-case-card:focus-visible {
    border-color: var(--accent-blue, #3b82f6);
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.resident-case-card:focus-visible {
    outline: 3px solid var(--accent-blue, #3b82f6);
    outline-offset: 2px;
}
.resident-case-card-title {
    font-weight: 600;
    font-size: 0.95rem;
    flex: 1;
    color: inherit;
}
.resident-case-card-desc {
    font-size: 0.8rem;
    color: var(--text-muted);
    flex: 2;
}
.resident-case-card-arrow {
    color: var(--text-muted);
    font-size: 0.8rem;
}

/* Case detail */
.resident-case-header {
    margin-bottom: 1.5rem;
}
.resident-case-header h1 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--navy, #1e3a5f);
}
.resident-case-subtitle {
    color: var(--text-muted);
    font-size: 0.95rem;
    margin-top: 0.25rem;
}
.resident-case-sections {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.resident-case-section {
    background: var(--bg, #fff);
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
}
.resident-case-section h2 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--navy, #1e3a5f);
}
.resident-case-section h2 i {
    color: var(--accent-blue, #3b82f6);
    font-size: 0.95rem;
}
.resident-case-content {
    line-height: 1.7;
    font-size: 0.9rem;
}
.resident-case-epuap {
    text-align: center;
    padding: 1.5rem;
    background: var(--accent-light-bg, #eff6ff);
    border-color: var(--accent-blue, #3b82f6);
}
.resident-case-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.resident-case-links a {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0;
    text-decoration: none;
    color: var(--accent-blue, #3b82f6);
    font-weight: 500;
}
.resident-case-links a:hover {
    text-decoration: underline;
}
.resident-case-back {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color, #e5e7eb);
}
.resident-empty {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--text-muted);
    font-size: 1rem;
}

.resident-case-generator-cta {
    background: #f2f9ec;
    border-color: #b8df9d;
}
.resident-required-docs {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.resident-required-docs li {
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    padding: .85rem 1rem;
    display: grid;
    gap: .25rem;
}
.resident-required-badge {
    display: inline-flex;
    width: max-content;
    border-radius: 999px;
    background: #eef8e6;
    color: #447a19;
    font-size: .75rem;
    font-weight: 700;
    padding: .16rem .5rem;
}
.resident-generator-body {
    min-height: 100vh;
    background: #edf2f7;
}
.resident-generator-shell {
    min-height: 100vh;
}
.resident-form-app {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 232px minmax(794px, 1fr) 320px;
    background: #edf2f7;
}
.resident-form-mobile-header {
    display: none;
}
.resident-mobile-panel {
    display: none;
}
.resident-form-kicker {
    margin: 0 0 .4rem;
    color: #579923;
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}
.resident-form-mobile-header h1 {
    margin: 0;
    font-size: 1.55rem;
    color: var(--navy, #1e3a5f);
}
.resident-form-docs {
    margin: 24px 0 0;
    padding: 22px 0 0;
    border-top: 1px solid #dfe7f0;
}
.resident-form-docs h3 {
    margin: 0 0 1rem;
    color: #1f2933;
    font-size: 1.12rem;
}
.resident-form-docs ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .6rem;
}
.resident-form-docs li {
    display: block;
    padding: 1rem;
    border: 1px solid #d9e3ef;
    border-radius: 10px;
    background: #fff;
}
.resident-form-docs li strong {
    display: block;
    margin-bottom: .55rem;
    color: #263241;
    line-height: 1.25;
}
.resident-form-docs li span {
    display: inline-flex;
    width: auto;
    margin: 0 0 .55rem;
    border-radius: 999px;
    background: #eef8e6;
    color: #447a19;
    padding: .1rem .45rem;
    font-size: .72rem;
    font-style: normal;
    font-weight: 700;
}
.resident-form-docs li em {
    display: block;
    color: var(--text-muted);
    font-style: normal;
    font-size: .88rem;
    line-height: 1.45;
}
.resident-form-docs li a {
    display: inline-flex;
    margin-top: .7rem;
    width: max-content;
    color: #1f6aa5;
    font-weight: 800;
}
.resident-form-thumbs {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 22px 16px;
    border-right: 1px solid #d6dee8;
    background: #fff;
    overflow-y: auto;
}
.resident-form-side-title {
    display: grid;
    gap: .35rem;
    padding-bottom: .5rem;
}
.resident-form-side-title strong {
    color: #1f2933;
    font-size: 1.05rem;
}
.resident-form-side-title span {
    display: block;
    width: auto;
    aspect-ratio: auto;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #667085;
    font-size: .92rem;
    font-weight: 600;
    text-align: left;
}
.resident-form-thumb-list {
    display: grid;
    gap: .9rem;
}
.resident-form-thumbs a {
    border: 1px solid #d1dae6;
    border-radius: 10px;
    background: #fff;
    padding: .75rem;
    color: var(--text, #1f2937);
    text-align: center;
    text-decoration: none;
    font-size: .8rem;
    font-weight: 700;
}
.resident-form-thumbs a span {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1.41;
    margin: 0 auto .35rem;
    border: 1px solid #c7d2df;
    border-radius: 3px;
    background:
        linear-gradient(#d8dde5 0 0) 16px 18px / calc(100% - 32px) 6px no-repeat,
        linear-gradient(#d8dde5 0 0) 16px 42px / calc(100% - 32px) 6px no-repeat,
        linear-gradient(#d8dde5 0 0) 16px 66px / 58% 6px no-repeat,
        linear-gradient(#fff, #f7fafc);
}
.resident-form-thumbs a:first-child {
    border-color: #1f6aa5;
    box-shadow: 0 0 0 3px rgba(31, 106, 165, .14);
}
.resident-form-document {
    min-width: 0;
    padding: 44px 36px;
    overflow-x: auto;
}
.resident-form-canvas {
    display: grid;
    gap: 24px;
    justify-items: center;
}
.resident-form-sheet {
    position: relative;
    width: 794px;
    height: 1123px;
    margin: 0;
    background: #fff;
    border: 1px solid #cbd6e2;
    box-shadow: 0 18px 42px rgba(31, 42, 55, .08);
    overflow: hidden;
}
.resident-form-static {
    position: absolute;
    left: 56px;
    right: 56px;
    top: 68px;
    color: #303b4a;
}
.resident-form-letterhead {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 1.25rem;
    align-items: center;
    padding-bottom: 24px;
    margin-bottom: 48px;
    border-bottom: 1px solid #e1e7ee;
}
.resident-form-logo-placeholder {
    width: 126px;
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed #c8d4e2;
    border-radius: 10px;
    color: #667085;
    font-weight: 800;
}
.resident-form-letterhead strong,
.resident-form-letterhead span {
    display: block;
    color: #475467;
    line-height: 1.35;
}
.resident-form-static h2 {
    margin: 0 0 36px;
    text-align: center;
    color: #1f2933;
    font-size: 1.72rem;
    line-height: 1.2;
}
.resident-form-static p {
    margin: 0;
    color: #3f4b5c;
    font-size: 1rem;
    line-height: 1.5;
}
.resident-form-field {
    position: absolute;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
    overflow: hidden;
}
.resident-form-field label {
    display: block;
    margin-bottom: 6px;
    color: #334155;
    font-size: .82rem;
    font-weight: 800;
}
.resident-form-field input:not([type="checkbox"]),
.resident-form-field select,
.resident-form-field textarea {
    width: 100%;
    min-height: 40px;
    border: 1px solid #b8d2eb;
    border-radius: 7px;
    padding: 9px 12px;
    background: #fff;
    color: #1f2937;
    font: inherit;
}
.resident-form-field input:not([type="checkbox"]):focus,
.resident-form-field select:focus,
.resident-form-field textarea:focus,
.resident-form-field input:not([type="checkbox"]):focus-visible,
.resident-form-field select:focus-visible,
.resident-form-field textarea:focus-visible {
    border-color: #2b78c2;
    outline: none;
    box-shadow: inset 0 0 0 2px #2b78c2, 0 0 0 3px rgba(43, 120, 194, .16);
}
.resident-form-field textarea {
    height: calc(100% - 28px);
    resize: none;
}
.resident-form-field small {
    display: block;
    margin-top: 4px;
    color: #637083;
    font-size: .72rem;
}
.resident-public-table {
    width: 100%;
    height: 100%;
    border-collapse: collapse;
    background: #fff;
    text-align: center;
    font-weight: 800;
}
.resident-public-table td {
    border: 1px solid #222;
    padding: 6px;
}
.resident-public-help {
    color: #4b5563;
    font-size: .86rem;
    line-height: 1.45;
}
.resident-public-signature {
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    border-bottom: 1px solid #111;
    color: #4b5563;
    font-size: .75rem;
}
.resident-public-checkbox {
    display: flex !important;
    align-items: center;
    gap: .55rem;
    height: 100%;
}
.resident-public-checkbox input {
    width: 20px;
    height: 20px;
}
.resident-form-notice {
    position: absolute;
    left: 56px;
    right: 56px;
    bottom: 42px;
    color: #596579;
    font-size: .72rem;
    line-height: 1.35;
}
.resident-form-guide {
    position: sticky;
    top: 0;
    height: 100vh;
    padding: 28px;
    border-left: 1px solid #d6dee8;
    background: #fff;
    overflow-y: auto;
}
.resident-form-guide h2 {
    margin: 0 0 18px;
    color: #1f2933;
    font-size: 1.45rem;
    line-height: 1.2;
}
.resident-form-guide ol {
    counter-reset: resident-step;
    list-style: none;
    margin: 0;
    padding: 16px;
    border: 1px solid #dfe7f0;
    border-radius: 10px;
    background: #f8fafc;
    color: #667085;
    font-size: .95rem;
    line-height: 1.55;
}
.resident-form-guide ol > li {
    counter-increment: resident-step;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}
.resident-form-guide ol > li + li {
    margin-top: 12px;
}
.resident-form-guide ol > li::before {
    content: counter(resident-step);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: #eaf3fb;
    color: #1f6aa5;
    font-size: .82rem;
    font-weight: 900;
}
.resident-form-guide-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid #dfe7f0;
}
.resident-form-guide-actions .btn {
    min-height: 46px;
    justify-content: center;
    width: 100%;
    padding-inline: .9rem;
}
.resident-incomplete-modal[hidden] {
    display: none;
}
.resident-incomplete-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(20, 31, 45, .46);
}
.resident-incomplete-modal-card {
    width: min(520px, 100%);
    border: 1px solid #d9e3ef;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(20, 31, 45, .24);
    padding: 24px;
}
.resident-incomplete-modal-card h2 {
    margin: 0 0 .7rem;
    color: #1f2933;
    font-size: 1.45rem;
    line-height: 1.2;
}
.resident-incomplete-modal-card p {
    margin: 0;
    color: #667085;
    line-height: 1.55;
}
.resident-incomplete-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: .75rem;
    margin-top: 1.4rem;
}
.resident-incomplete-modal-actions .btn {
    min-height: 46px;
    justify-content: center;
}
.resident-form-field [aria-invalid="true"],
.resident-mobile-field [aria-invalid="true"] {
    border-color: #d95f2a !important;
    box-shadow: inset 0 0 0 2px rgba(217, 95, 42, .2), 0 0 0 3px rgba(217, 95, 42, .12) !important;
}
.resident-modal-open {
    overflow: hidden;
}
@media (max-width: 1180px) {
    .resident-form-app {
        grid-template-columns: 128px minmax(0, 1fr);
    }
    .resident-form-guide {
        grid-column: 1 / -1;
        position: static;
        height: auto;
        border-left: 0;
        border-top: 1px solid #d6dee8;
    }
}
@media (max-width: 900px) {
    .resident-form-app {
        display: block;
    }
    .resident-form-mobile-header {
        display: block;
        margin-bottom: 1rem;
    }
    .resident-form-mobile-header > div {
        min-width: 0;
    }
    .resident-form-thumbs {
        display: none;
    }
    .resident-form-document {
        padding: 24px 16px;
        overflow-x: visible;
    }
    .resident-mobile-panel {
        display: grid;
        gap: 18px;
        border: 1px solid #d9e3ef;
        border-radius: 12px;
        background: #fff;
        padding: 18px;
    }
    .resident-mobile-panel-head {
        display: grid;
        gap: .45rem;
    }
    .resident-mobile-panel-head h2 {
        margin: 0;
        color: #1f2933;
        font-size: 1.35rem;
        line-height: 1.2;
    }
    .resident-mobile-panel-head p {
        margin: 0;
        color: #667085;
        line-height: 1.45;
    }
    .resident-mobile-actionbar {
        position: sticky;
        top: 0;
        z-index: 8;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .75rem;
        padding: 10px 0;
        background: #fff;
    }
    .resident-mobile-actionbar .btn {
        min-height: 48px;
        justify-content: center;
        width: 100%;
    }
    .resident-mobile-fields {
        display: grid;
        gap: 16px;
        min-width: 0;
        margin: 0;
        padding: 0;
        border: 0;
    }
    .resident-mobile-field {
        display: grid;
        gap: 7px;
    }
    .resident-mobile-field label {
        color: #334155;
        font-weight: 800;
    }
    .resident-mobile-field input:not([type="checkbox"]),
    .resident-mobile-field select,
    .resident-mobile-field textarea {
        width: 100%;
        min-height: 48px;
        border: 1px solid #b8d2eb;
        border-radius: 8px;
        padding: 11px 13px;
        background: #fff;
        color: #1f2937;
        font: inherit;
    }
    .resident-mobile-field textarea {
        min-height: 130px;
        resize: vertical;
    }
    .resident-mobile-field input:not([type="checkbox"]):focus,
    .resident-mobile-field select:focus,
    .resident-mobile-field textarea:focus,
    .resident-mobile-field input:not([type="checkbox"]):focus-visible,
    .resident-mobile-field select:focus-visible,
    .resident-mobile-field textarea:focus-visible {
        border-color: #2b78c2;
        outline: none;
        box-shadow: inset 0 0 0 2px #2b78c2, 0 0 0 3px rgba(43, 120, 194, .16);
    }
    .resident-mobile-field small {
        color: #667085;
        font-size: .86rem;
    }
    .resident-mobile-preview-toggle {
        border-top: 1px solid #dfe7f0;
        padding-top: 12px;
    }
    .resident-mobile-preview-toggle summary {
        cursor: pointer;
        color: #1f6aa5;
        font-weight: 900;
    }
    .resident-form-canvas {
        display: none;
        margin-top: 18px;
        overflow-x: auto;
        justify-items: start;
    }
    .resident-form-document.is-mobile-preview-open .resident-form-canvas {
        display: grid;
    }
    .resident-form-guide {
        padding: 22px 16px;
        border-top: 0;
        background: transparent;
    }
    .resident-form-guide h2,
    .resident-form-guide-actions,
    .resident-form-guide ol {
        display: none;
    }
    .resident-form-docs {
        margin: 0;
        padding: 18px;
        border: 1px solid #d9e3ef;
        border-radius: 12px;
        background: #fff;
    }
    .resident-form-docs h3 {
        font-size: 1.2rem;
    }
    .resident-form-sheet {
        transform-origin: top left;
    }
    .resident-incomplete-modal-actions {
        display: grid;
    }
    .resident-incomplete-modal-actions .btn {
        width: 100%;
    }
}
@media (max-width: 840px) {
    .resident-form-document {
        overflow-x: auto;
    }
}

/* ── Procurements Public ─────────────────────────────── */
.procurement-intro {
    margin-bottom: 24px;
}

.procurement-platform {
    display: grid;
    gap: 16px;
}

.procurement-platform-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
}

.procurement-platform-hero h2 {
    margin: 0 0 8px;
    color: var(--text);
    font-size: 1.375rem;
    line-height: 1.14;
}

.procurement-platform-hero p {
    max-width: 720px;
    margin: 0;
    color: var(--text-muted);
    font-size: 15px;
    line-height: 1.55;
}

.procurement-platform-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: flex-end;
}

.procurement-platform-action {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: 9px;
    padding: 0 14px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg);
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
}

.procurement-platform-action:hover,
.procurement-platform-action:focus-visible {
    border-color: rgba(var(--bip-navy-rgb), 0.28);
    background: var(--bg-alt);
}

.procurement-platform-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.procurement-platform-stats div {
    min-height: 88px;
    padding: 14px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg);
}

.procurement-platform-stats span {
    display: block;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
}

.procurement-platform-stats strong {
    display: block;
    margin-top: 8px;
    color: var(--text);
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1;
}

.procurement-platform-stats p {
    margin: 8px 0 0;
    color: var(--text-muted);
    font-size: 12px;
    line-height: 1.35;
}

.procurement-platform-filter {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 190px 190px auto;
    gap: 10px;
    align-items: end;
    padding: 12px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg);
}

.procurement-platform-filter-actions {
    display: flex;
    gap: 8px;
    align-items: end;
}

.procurement-platform-field {
    display: grid;
    gap: 7px;
}

.procurement-platform-field label {
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
}

.procurement-platform-field input,
.procurement-platform-field select {
    width: 100%;
    min-height: 42px;
    padding: 9px 11px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg);
    color: var(--text);
    font: inherit;
}

.procurement-platform-filter-btn,
.procurement-platform-reset-btn,
.procurement-platform-view {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 14px;
    border: 1px solid var(--bip-blue);
    border-radius: 10px;
    background: var(--bip-blue);
    color: #fff;
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.procurement-platform-reset-btn {
    width: 42px;
    padding: 0;
    border-color: var(--border-light);
    background: var(--bg);
    color: var(--text);
}

.procurement-platform-filter-btn:hover,
.procurement-platform-filter-btn:focus-visible,
.procurement-platform-view:hover,
.procurement-platform-view:focus-visible {
    background: var(--bip-navy);
    border-color: var(--bip-navy);
}

.procurement-platform-filter-btn,
.procurement-platform-filter-btn i,
.procurement-platform-view,
.procurement-platform-view i {
    color: #fff;
}

.procurement-platform-reset-btn:hover,
.procurement-platform-reset-btn:focus-visible {
    border-color: rgba(var(--bip-navy-rgb), 0.28);
    background: var(--bg-alt);
}

.procurement-platform-list {
    display: grid;
    gap: 12px;
}

.procurement-platform-card {
    display: grid;
    grid-template-columns: 1fr 210px 170px auto;
    gap: 16px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg);
}

.procurement-platform-card-main {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.procurement-platform-icon {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-blue);
    font-size: 1rem;
}

.procurement-platform-card h3 {
    margin: 0;
    color: var(--text);
    font-size: 17px;
    line-height: 1.3;
}

.procurement-platform-card p {
    margin: 6px 0 0;
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.45;
}

.procurement-platform-pill {
    display: inline-flex;
    width: fit-content;
    min-height: 30px;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    padding: 0 10px;
    border: 1px solid rgba(var(--bip-navy-rgb), 0.14);
    border-radius: 999px;
    background: rgba(var(--bip-navy-rgb), 0.06);
    color: var(--bip-navy);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.procurement-platform-pill.is-open {
    border-color: #15803d;
    background: #dcfce7;
    color: #166534;
}

.procurement-platform-pill.is-today {
    border-color: #a16207;
    background: #fef3c7;
    color: #854d0e;
}

.procurement-platform-pill.is-resolved {
    border-color: #1d4ed8;
    background: #dbeafe;
    color: #1e40af;
}

.procurement-platform-pill.is-cancelled {
    border-color: #dc2626;
    background: #fee2e2;
    color: #991b1b;
}

.procurement-platform-card-term span,
.procurement-platform-card-budget span {
    display: block;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.procurement-platform-card-term strong,
.procurement-platform-card-budget strong {
    display: block;
    margin-top: 5px;
    color: var(--text);
    font-size: 15px;
    line-height: 1.35;
}

.procurement-platform-card-term p {
    margin-top: 4px;
}

.procurement-list {
    display: grid;
    gap: 14px;
}

.procurement-card {
    display: grid;
    gap: 8px;
    padding: 20px 22px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg);
    color: var(--text);
    text-decoration: none;
    transition: border-color 0.18s ease, background 0.18s ease;
}

.procurement-card:hover,
.procurement-card:focus-visible {
    border-color: rgba(var(--bip-navy-rgb), 0.35);
    background: var(--bg-alt);
}

.procurement-status {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.3;
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
}

.procurement-status.is-open {
    background: #dcfce7;
    color: #166534;
}

.procurement-status.is-closed {
    background: #fef3c7;
    color: #92400e;
}

.procurement-status.is-resolved {
    background: #dbeafe;
    color: #1e40af;
}

.procurement-status.is-cancelled {
    background: #fee2e2;
    color: #991b1b;
}

.procurement-card-title {
    color: var(--text);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.35;
}

.procurement-card-desc {
    color: var(--text-muted);
    line-height: 1.55;
}

.procurement-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    color: var(--text-muted);
    font-size: 0.875rem;
}

.recruitment-list {
    display: grid;
    gap: 18px;
}

.recruitment-list-items {
    display: grid;
    gap: 12px;
}

.recruitment-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(210px, 280px);
    gap: 22px;
    align-items: center;
    min-height: 116px;
    padding: 18px 22px 18px 28px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
    color: var(--text);
    text-decoration: none;
    overflow: hidden;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.recruitment-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #64748b;
}

.recruitment-card.is-published::before,
.recruitment-status.is-published,
.recruitment-legend i.is-published {
    --recruitment-accent: #16a34a;
}

.recruitment-card.is-closed::before,
.recruitment-status.is-closed,
.recruitment-legend i.is-closed {
    --recruitment-accent: #f59e0b;
}

.recruitment-card.is-resolved::before,
.recruitment-status.is-resolved,
.recruitment-legend i.is-resolved {
    --recruitment-accent: #2563eb;
}

.recruitment-card.is-cancelled::before,
.recruitment-status.is-cancelled,
.recruitment-legend i.is-cancelled {
    --recruitment-accent: #6b7280;
}

.recruitment-card::before,
.recruitment-legend i {
    background: var(--recruitment-accent, #64748b);
}

.recruitment-card:hover,
.recruitment-card:focus-visible {
    border-color: rgba(var(--bip-navy-rgb), 0.24);
    background: #f8fbff;
    transform: translateY(-1px);
}

.recruitment-card-icon {
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(var(--bip-navy-rgb), 0.08);
    color: var(--bip-navy);
}

.recruitment-card-body {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.recruitment-card-body strong {
    color: var(--text);
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.35;
}

.recruitment-card-body > span {
    color: var(--text-muted);
    line-height: 1.45;
}

.recruitment-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 34px;
    margin-top: 8px;
}

.recruitment-card-meta > span {
    position: relative;
    display: grid;
    gap: 3px;
    min-width: 190px;
}

.recruitment-card-meta > span + span::before {
    content: "";
    position: absolute;
    left: -17px;
    top: 2px;
    bottom: 2px;
    width: 1px;
    background: var(--border-light);
}

.recruitment-card small,
.recruitment-card-date small,
.recruitment-legend small {
    color: var(--text-muted);
    font-size: .8125rem;
    line-height: 1.35;
}

.recruitment-card b {
    color: var(--text);
    font-size: .9375rem;
    line-height: 1.35;
}

.recruitment-card-aside {
    display: grid;
    gap: 16px;
    justify-items: stretch;
}

.recruitment-status {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border: 1px solid var(--recruitment-accent, #64748b);
    border-radius: 6px;
    background: color-mix(in srgb, var(--recruitment-accent, #64748b) 10%, #ffffff);
    color: var(--recruitment-accent, #64748b);
    font-weight: 700;
    text-align: center;
}

.recruitment-card-date {
    display: grid;
    gap: 4px;
}

.recruitment-legend {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding: 14px 18px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
}

.recruitment-legend span {
    position: relative;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 4px 10px;
    align-items: center;
}

.recruitment-legend span + span {
    padding-left: 18px;
}

.recruitment-legend span + span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 1px;
    background: var(--border-light);
}

.recruitment-legend i {
    grid-row: span 2;
    width: 14px;
    height: 14px;
    border-radius: 999px;
}

.recruitment-legend strong {
    color: var(--bip-navy);
    font-size: .875rem;
    line-height: 1.2;
}

[data-bip-theme="dark"] .recruitment-card,
[data-bip-theme="dark"] .recruitment-legend {
    background: #111827;
    border-color: #334155;
}

[data-bip-theme="dark"] .recruitment-card:hover,
[data-bip-theme="dark"] .recruitment-card:focus-visible {
    background: #162235;
    border-color: #475569;
}

[data-bip-theme="dark"] .recruitment-card-body strong,
[data-bip-theme="dark"] .recruitment-card b,
[data-bip-theme="dark"] .recruitment-legend strong {
    color: #f8fafc;
}

[data-bip-theme="dark"] .recruitment-card-body > span,
[data-bip-theme="dark"] .recruitment-card small,
[data-bip-theme="dark"] .recruitment-card-date small,
[data-bip-theme="dark"] .recruitment-legend small {
    color: #cbd5e1;
}

[data-bip-theme="dark"] .recruitment-card-meta > span + span::before,
[data-bip-theme="dark"] .recruitment-legend span + span::before {
    background: #334155;
}

[data-bip-theme="dark"] .recruitment-status {
    background: color-mix(in srgb, var(--recruitment-accent, #64748b) 18%, #111827);
}

.recruitment-detail {
    display: grid;
    gap: 22px;
}

.recruitment-detail-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: start;
    padding: 22px;
    border: 1px solid var(--border-light);
    border-radius: 14px;
    background: var(--bg);
}

.recruitment-detail-header h1 {
    margin: 0;
    color: var(--text);
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.25;
}

.recruitment-detail-header p {
    margin: 8px 0 0;
    color: var(--text-muted);
}

.recruitment-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
    align-items: center;
}

.recruitment-print-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg);
    color: var(--text);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.recruitment-print-button:hover,
.recruitment-print-button:focus-visible {
    border-color: var(--bip-navy);
    color: var(--bip-navy);
}

.recruitment-kicker {
    margin: 0 0 8px !important;
    color: var(--bip-navy);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.recruitment-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
    gap: 20px;
    align-items: start;
}

.recruitment-detail .article-body {
    min-width: 0;
}

.recruitment-detail .article-body h2 {
    margin: 1.5rem 0 0.65rem;
    font-size: 1.15rem;
    font-weight: 600;
}

.recruitment-detail .article-body h2:first-child {
    margin-top: 0;
}

.recruitment-result-box {
    margin-top: 22px;
    padding: 18px;
    border: 1px solid #bbf7d0;
    border-radius: 12px;
    background: #f0fdf4;
}

.recruitment-timeline {
    display: grid;
    gap: 14px;
    margin-top: 26px;
}

.recruitment-timeline h2 {
    margin-bottom: 0.35rem !important;
}

.recruitment-timeline-item {
    display: grid;
    grid-template-columns: minmax(110px, 150px) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 16px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg);
}

.recruitment-timeline-date {
    color: var(--text-muted);
    font-size: 0.86rem;
    font-weight: 600;
}

.recruitment-timeline-content {
    min-width: 0;
}

.recruitment-timeline-content > span {
    display: inline-flex;
    margin-bottom: 6px;
    color: var(--bip-navy);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.recruitment-timeline-content h3 {
    margin: 0 0 8px;
    color: var(--text);
    font-size: 1rem;
    font-weight: 600;
}

.recruitment-timeline-content dl {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 4px 10px;
    margin: 12px 0 0;
    padding-top: 10px;
    border-top: 1px solid var(--border-light);
    color: var(--text-muted);
    font-size: 0.84rem;
}

.recruitment-timeline-content dt,
.recruitment-timeline-content dd {
    margin: 0;
}

.recruitment-timeline-content dt {
    font-weight: 600;
}

.recruitment-metadata {
    position: sticky;
    top: 16px;
    padding: 18px;
    border: 1px solid var(--border-light);
    border-radius: 14px;
    background: var(--bg-alt);
}

.recruitment-metadata h2 {
    font-size: 1.1rem;
    font-weight: 600;
}

.recruitment-metadata dl {
    display: grid;
    gap: 0;
    margin: 0;
}

.recruitment-metadata dt,
.recruitment-metadata dd {
    margin: 0;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
}

.recruitment-metadata dt {
    color: var(--text-muted);
    font-size: 0.82rem;
    font-weight: 600;
}

.recruitment-metadata dd {
    color: var(--text);
}

.recruitment-bip-metadata {
    overflow: hidden;
    border: 1px solid var(--border-light);
    border-radius: 14px;
    background: var(--bg);
}

.recruitment-bip-metadata header {
    padding: 16px 18px;
    border-bottom: 1px solid var(--border-light);
}

.recruitment-bip-metadata h2 {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    color: var(--text);
    font-size: 1.05rem;
    font-weight: 600;
}

.recruitment-bip-metadata h2 i {
    color: var(--bip-navy);
}

.recruitment-bip-metadata dl {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 16px 18px;
}

.recruitment-bip-metadata dl > div {
    min-width: 0;
    padding: 0 16px;
    border-left: 1px solid var(--border-light);
}

.recruitment-bip-metadata dl > div:first-child {
    padding-left: 0;
    border-left: 0;
}

.recruitment-bip-metadata dt,
.recruitment-bip-metadata dd {
    margin: 0;
}

.recruitment-bip-metadata dt {
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.recruitment-bip-metadata dd {
    margin-top: 5px;
    color: var(--text);
    font-size: 0.95rem;
    overflow-wrap: anywhere;
}

.procurement-detail {
    display: grid;
    gap: 20px;
}

.procurement-detail-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
    gap: 20px;
    align-items: start;
    padding: 22px;
    border: 1px solid var(--border-light);
    border-radius: 16px;
    background: var(--bg);
}

.procurement-detail-platform {
    gap: 18px;
}

.procurement-detail-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: end;
}

.procurement-detail-reference {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.procurement-detail-hero h2 {
    margin: 10px 0 0;
    color: var(--text);
    font-size: 1.375rem;
    line-height: 1.14;
}

.procurement-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.procurement-detail-action {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 14px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg);
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
}

.procurement-detail-action:hover,
.procurement-detail-action:focus-visible {
    border-color: rgba(var(--bip-navy-rgb), 0.28);
    background: var(--bg-alt);
}

.procurement-detail-action.is-submit {
    border-color: #15803d;
    background: #15803d;
    color: #fff;
}

.procurement-detail-action.is-submit:hover,
.procurement-detail-action.is-submit:focus-visible {
    border-color: #166534;
    background: #166534;
}

.procurement-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 20px;
    align-items: start;
}

.procurement-detail-main,
.procurement-detail-side {
    display: grid;
    gap: 16px;
}

.procurement-detail-panel,
.procurement-side-card {
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg);
}

.procurement-detail-panel {
    overflow: hidden;
}

.procurement-detail-panel-head {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    padding: 18px;
    border-bottom: 1px solid var(--border-light);
}

.procurement-detail-panel-head h3,
.procurement-side-card h3 {
    margin: 0;
    color: var(--text);
    font-size: 18px;
    line-height: 1.25;
}

.procurement-detail-copy {
    padding: 18px;
    color: var(--text);
    font-size: 16px;
    line-height: 1.7;
}

.procurement-detail-docs {
    display: grid;
    gap: 9px;
    margin: 0;
    padding: 18px;
    list-style: none;
}

.procurement-detail-docs li {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 54px;
    padding: 10px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg-alt);
}

.procurement-detail-docs > li > i {
    color: #b91c1c;
    font-size: 17px;
}

.procurement-detail-docs a {
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
}

.procurement-detail-docs a:hover,
.procurement-detail-docs a:focus-visible {
    color: var(--bip-blue);
    text-decoration: underline;
}

.procurement-detail-docs span {
    display: block;
    margin-top: 3px;
    overflow-wrap: anywhere;
    color: var(--text-muted);
    font-size: 12px;
    line-height: 1.35;
}

.procurement-detail-panel > .procurement-empty {
    margin: 0;
    padding: 18px;
}

.procurement-deadline-box {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--border-light);
    border-left: 4px solid var(--bip-blue);
    border-radius: 12px;
    background: #f8fbff;
    color: var(--text);
}

.procurement-deadline-box > span {
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
}

.procurement-deadline-box > strong {
    color: var(--text);
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.18;
}

.procurement-countdown {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.procurement-countdown div {
    display: grid;
    min-height: 58px;
    place-items: center;
    padding: 8px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg-alt);
    text-align: center;
}

.procurement-countdown b {
    color: var(--text);
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1;
}

.procurement-countdown small {
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 600;
}

.procurement-side-card {
    padding: 18px;
}

.procurement-side-meta {
    display: grid;
    margin: 14px 0 0;
}

.procurement-side-meta div {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border-light);
}

.procurement-side-meta div:last-child {
    border-bottom: 0;
}

.procurement-side-meta dt {
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
}

.procurement-side-meta dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}

.procurement-lead {
    color: var(--text-muted);
    line-height: 1.65;
}

.procurement-metrics {
    display: grid;
    gap: 10px;
    margin: 0;
}

.procurement-metrics div {
    padding: 12px 14px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg-alt);
}

.procurement-metrics dt {
    margin-bottom: 2px;
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.procurement-metrics dd {
    margin: 0;
    color: var(--text);
    font-weight: 600;
}

.procurement-section {
    padding: 22px;
    border: 1px solid var(--border-light);
    border-radius: 16px;
    background: var(--bg);
}

.procurement-section h3 {
    margin: 0 0 14px;
    font-size: 1rem;
}

.procurement-section-heading {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 16px;
}

.procurement-section-heading h3 {
    margin-bottom: 4px;
}

.procurement-section-heading p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.55;
}

.procurement-file-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.procurement-file-list li {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg-alt);
}

.procurement-file-list a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--bip-blue);
    font-weight: 600;
    text-decoration: none;
}

.procurement-file-list a:hover {
    text-decoration: underline;
}

.procurement-file-meta {
    overflow-wrap: anywhere;
    color: var(--text-muted);
    font-size: 0.75rem;
}

.procurement-qa-list {
    display: grid;
    gap: 12px;
}

.procurement-qa-item {
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg-alt);
    overflow: hidden;
}

.procurement-qa-item summary {
    display: grid;
    grid-template-columns: minmax(180px, 260px) minmax(0, 1fr) auto;
    gap: 8px 14px;
    align-items: center;
    min-height: 64px;
    padding: 14px 16px;
    color: var(--text);
    cursor: pointer;
    list-style: none;
}

.procurement-qa-item summary::-webkit-details-marker {
    display: none;
}

.procurement-qa-item summary:focus-visible {
    outline: 3px solid rgba(var(--bip-navy-rgb), 0.18);
    outline-offset: -3px;
}

.procurement-qa-title,
.procurement-qa-preview {
    min-width: 0;
}

.procurement-qa-title {
    display: block;
    font-weight: 600;
    line-height: 1.25;
}

.procurement-qa-preview {
    display: block;
    margin-top: 4px;
    color: var(--text-muted);
    font-size: 0.92rem;
    line-height: 1.45;
}

.procurement-qa-toggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--bip-blue);
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
}

.procurement-qa-toggle i {
    color: var(--bip-blue);
    transition: transform 0.18s ease;
}

.procurement-qa-toggle-close,
.procurement-qa-item[open] .procurement-qa-toggle-open {
    display: none;
}

.procurement-qa-item[open] .procurement-qa-toggle-close {
    display: inline;
}

.procurement-qa-item[open] .procurement-qa-preview {
    visibility: hidden;
}

.procurement-qa-item[open] .procurement-qa-toggle i {
    transform: rotate(180deg);
}

.procurement-qa-content {
    display: grid;
    gap: 14px;
    padding: 0 16px 16px;
}

.procurement-question-text p {
    margin: 6px 0 0;
}

.procurement-answer {
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
}

.procurement-answer div {
    margin-top: 6px;
}

.procurement-answer-attachments {
    display: grid;
    gap: 8px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.procurement-answer-attachments li {
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg-soft);
}

.procurement-answer-attachments a {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    color: var(--bip-blue);
    font-weight: 600;
    text-decoration: none;
}

.procurement-answer-attachments span {
    color: var(--text-muted);
    font-size: 0.875rem;
}

.procurement-result {
    border-color: rgba(var(--bip-navy-rgb), 0.18);
    background: linear-gradient(180deg, rgba(var(--bip-navy-rgb), 0.035), var(--bg));
}

.procurement-result-summary {
    margin: 0 0 16px;
    color: var(--text);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.55;
}

.procurement-result-offer {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 18px;
}

.procurement-result-offer div {
    padding: 12px 14px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg-alt);
}

.procurement-result-offer dt {
    margin-bottom: 3px;
    color: var(--text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.procurement-result-offer dd {
    margin: 0;
    color: var(--text);
    font-weight: 600;
    overflow-wrap: anywhere;
}

.procurement-result-content {
    padding-top: 16px;
    border-top: 1px solid var(--border-light);
}

.procurement-empty,
.procurement-empty-state {
    color: var(--text-muted);
}

.procurement-empty-state {
    display: grid;
    place-items: center;
    gap: 10px;
    min-height: 180px;
    padding: 28px 20px;
    border: 1px dashed var(--border-light);
    border-radius: 14px;
    text-align: center;
}

.procurement-empty-state i {
    font-size: 2rem;
    opacity: 0.55;
}

.procurement-offer-form {
    display: grid;
    gap: 18px;
}

.procurement-honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.procurement-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.procurement-field,
.procurement-field-full {
    display: grid;
    gap: 7px;
}

.procurement-field-full {
    grid-column: 1 / -1;
}

.procurement-field label {
    color: var(--text);
    font-weight: 600;
}

.procurement-field input,
.procurement-field textarea,
.procurement-field select {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
    color: var(--text);
    font: inherit;
}

.procurement-field textarea {
    min-height: 132px;
    resize: vertical;
}

.procurement-field input:focus-visible,
.procurement-field textarea:focus-visible,
.procurement-field select:focus-visible {
    outline: 3px solid rgba(var(--bip-navy-rgb), 0.18);
    border-color: var(--bip-navy);
}

.procurement-gus-lookup-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.procurement-gus-lookup-btn {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid #15803d;
    border-radius: 8px;
    background: #ecfdf5;
    color: #166534;
    font: inherit;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}

.procurement-gus-lookup-btn:hover,
.procurement-gus-lookup-btn:focus-visible {
    background: #dcfce7;
    outline: 3px solid rgba(21, 128, 61, 0.18);
}

.procurement-gus-lookup-btn:disabled {
    opacity: 0.7;
    cursor: wait;
}

.procurement-field-hint {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.8125rem;
    line-height: 1.45;
}

.procurement-toast {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1200;
    max-width: min(420px, calc(100vw - 36px));
    padding: 14px 16px;
    border: 1px solid var(--border-light);
    border-left: 5px solid #64748b;
    border-radius: 8px;
    background: var(--bg);
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.18);
    color: var(--text);
    font-weight: 700;
    line-height: 1.35;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.procurement-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.procurement-toast.is-success {
    border-left-color: #15803d;
}

.procurement-toast.is-error {
    border-left-color: #b42318;
}

.procurement-form-actions {
    display: flex;
    justify-content: flex-start;
}

.procurement-offer-panel {
    padding: 0;
    overflow: hidden;
}

.procurement-offer-summary {
    display: flex;
    gap: 18px;
    align-items: center;
    justify-content: space-between;
    padding: 20px 22px;
    cursor: pointer;
    list-style: none;
}

.procurement-offer-summary::-webkit-details-marker {
    display: none;
}

.procurement-offer-summary:focus-visible {
    outline: 3px solid rgba(var(--bip-navy-rgb), 0.18);
    outline-offset: -3px;
}

.procurement-offer-summary strong {
    display: block;
    margin-top: 8px;
    color: var(--text);
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.2;
}

.procurement-offer-summary small {
    display: block;
    margin-top: 6px;
    color: var(--text-muted);
    font-size: 0.92rem;
    line-height: 1.45;
}

.procurement-offer-toggle {
    display: inline-flex;
    min-width: 160px;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 13px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg);
    color: var(--text);
    font-weight: 600;
    white-space: nowrap;
}

.procurement-offer-toggle i {
    color: var(--bip-blue);
    transition: transform 0.18s ease;
}

.procurement-offer-toggle-close,
.procurement-offer-panel[open] .procurement-offer-toggle-open {
    display: none;
}

.procurement-offer-panel[open] .procurement-offer-toggle-close {
    display: inline;
}

.procurement-offer-panel[open] .procurement-offer-toggle i {
    transform: rotate(180deg);
}

.procurement-offer-panel > .procurement-empty {
    margin: 0 22px 22px;
    padding-top: 14px;
    border-top: 1px solid var(--border-light);
    line-height: 1.6;
}

.procurement-offer-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 16px;
    padding: 0 22px 22px;
}

.procurement-submit-btn {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    gap: 9px;
    padding: 11px 18px;
    border: 1px solid #15803d;
    border-radius: 8px;
    background: #15803d;
    color: #fff;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.procurement-submit-btn:hover,
.procurement-submit-btn:focus-visible {
    background: #166534;
    border-color: #166534;
}

.procurement-invitation-gate {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    max-width: 920px;
    margin: 30px auto;
    padding: 28px;
}

.procurement-invitation-gate-icon {
    display: grid;
    width: 72px;
    height: 72px;
    place-items: center;
    border-radius: 18px;
    background: #eaf6df;
    color: #2f7d20;
    font-size: 1.65rem;
}

.procurement-invitation-gate h2 {
    margin: 0 0 8px;
    color: var(--text);
    font-size: 1.375rem;
    font-weight: 600;
}

.procurement-invitation-gate p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.6;
}

.procurement-invitation-form {
    display: grid;
    gap: 8px;
    margin-top: 18px;
}

.procurement-invitation-form label {
    color: var(--text);
    font-weight: 600;
}

.procurement-invitation-password-row {
    display: flex;
    gap: 12px;
    align-items: stretch;
}

.procurement-invitation-password-row input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
    color: var(--text);
    font: inherit;
}

.procurement-invitation-password-row input:focus-visible {
    outline: 3px solid rgba(var(--bip-navy-rgb), 0.18);
    border-color: var(--bip-navy);
}

.procurement-submit-btn-secondary {
    border-color: var(--bip-navy);
    background: var(--bip-navy);
}

.procurement-submit-btn-secondary:hover,
.procurement-submit-btn-secondary:focus-visible {
    border-color: var(--bip-blue);
    background: var(--bip-blue);
}

.procurement-question-box {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--border-light);
}

.procurement-question-summary {
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: space-between;
    min-height: 58px;
    padding: 13px 14px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg-alt);
    color: var(--text);
    cursor: pointer;
    list-style: none;
}

.procurement-question-summary::-webkit-details-marker {
    display: none;
}

.procurement-question-summary:focus-visible {
    outline: 3px solid rgba(var(--bip-navy-rgb), 0.18);
    outline-offset: -3px;
}

.procurement-question-summary strong {
    display: block;
    line-height: 1.25;
}

.procurement-question-summary small {
    display: block;
    margin-top: 4px;
    color: var(--text-muted);
    font-size: 0.86rem;
    line-height: 1.45;
}

.procurement-question-toggle {
    display: inline-flex;
    min-width: 82px;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    color: var(--bip-blue);
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    white-space: nowrap;
}

.procurement-question-toggle i {
    transition: transform 0.18s ease;
}

.procurement-question-toggle-close,
.procurement-question-box[open] .procurement-question-toggle-open {
    display: none;
}

.procurement-question-box[open] .procurement-question-toggle-close {
    display: inline;
}

.procurement-question-box[open] .procurement-question-toggle i {
    transform: rotate(180deg);
}

.procurement-question-box[open] .procurement-question-summary {
    margin-bottom: 18px;
}

.procurement-question-form {
    display: grid;
    gap: 18px;
}

.procurement-captcha {
    max-width: 520px;
}

.procurement-captcha .captcha-block {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 14px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: rgba(var(--bip-blue-rgb), 0.05);
}

.procurement-captcha .captcha-label {
    margin: 0;
    color: var(--text);
    font-weight: 600;
}

.procurement-captcha .captcha-math-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.procurement-captcha .captcha-math-question {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 10px;
    background: var(--bg);
    border: 1px solid var(--border-light);
    color: var(--text);
    font-weight: 600;
}

.procurement-captcha .captcha-input {
    width: 140px;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg);
    color: var(--text);
    font: inherit;
}

.procurement-captcha .captcha-input:focus-visible {
    outline: 3px solid rgba(var(--bip-navy-rgb), 0.18);
    border-color: var(--bip-navy);
}

.procurement-captcha .captcha-note {
    color: var(--text-muted);
    font-size: 0.8125rem;
    line-height: 1.45;
}

.procurement-form-block {
    display: grid;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid var(--border-light);
}

.procurement-form-block:first-of-type {
    padding-top: 0;
    border-top: 0;
}

.procurement-form-block h4,
.procurement-offer-note h4 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--text);
    font-size: 1rem;
    line-height: 1.3;
}

.procurement-checkbox {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 12px;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: var(--bg-alt);
    color: var(--text);
    line-height: 1.45;
}

.procurement-checkbox input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--bip-blue);
}

.procurement-statements {
    display: grid;
    gap: 14px;
}

.procurement-statements .procurement-checkbox {
    min-height: 76px;
    align-items: center;
}

.procurement-statements .procurement-checkbox input {
    flex: 0 0 18px;
    margin-top: 0;
}

.procurement-statements .procurement-checkbox span {
    min-width: 0;
}

.procurement-rodo {
    font-size: 0.86rem;
}

.procurement-vat-help {
    color: var(--text-muted);
    font-size: 0.86rem;
}

.procurement-vat-help summary {
    width: fit-content;
    color: var(--bip-blue);
    font-weight: 600;
    cursor: pointer;
}

.procurement-vat-help ul {
    display: grid;
    gap: 6px;
    margin: 8px 0 0;
    padding-left: 20px;
}

.procurement-file-dropzone {
    display: grid;
    place-items: center;
    gap: 8px;
    min-height: 112px;
    padding: 20px;
    border: 2px dashed rgba(var(--bip-navy-rgb), 0.28);
    border-radius: 12px;
    background: var(--bg-alt);
    color: var(--text-muted);
    text-align: center;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease;
}

.procurement-file-dropzone i {
    color: var(--bip-blue);
    font-size: 1.65rem;
}

.procurement-file-dropzone strong {
    color: var(--text-muted);
    font-weight: 600;
}

.procurement-file-dropzone span {
    font-size: 0.86rem;
}

.procurement-file-dropzone:hover,
.procurement-file-dropzone:focus-within,
.procurement-file-dropzone.is-dragover {
    border-color: var(--bip-blue);
    background: rgba(var(--bip-navy-rgb), 0.05);
}

.procurement-selected-files {
    display: grid;
    gap: 8px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

.procurement-selected-files li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    background: var(--bg);
    color: var(--text);
    font-size: 0.9rem;
}

.procurement-selected-files li::before {
    content: '\f15b';
    font-family: 'Font Awesome 6 Free';
    font-weight: 600;
    color: var(--bip-blue);
}

.procurement-selected-files li > span {
    min-width: 0;
    flex: 1;
    overflow-wrap: anywhere;
}

.procurement-selected-file-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid rgba(181, 37, 37, 0.25);
    border-radius: 8px;
    background: rgba(181, 37, 37, 0.08);
    color: #b52525;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
}

.procurement-selected-file-remove:hover,
.procurement-selected-file-remove:focus-visible {
    background: rgba(181, 37, 37, 0.14);
}

.procurement-offer-aside {
    display: grid;
    align-content: start;
    gap: 12px;
}

.procurement-offer-aside .procurement-deadline-box p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.45;
}

.procurement-offer-note {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    background: var(--bg-alt);
}

.procurement-offer-note p {
    margin: 0;
    color: var(--text-muted);
    line-height: 1.45;
}

.procurement-offer-note dl {
    display: grid;
    gap: 0;
    margin: 0;
}

.procurement-offer-note dl div {
    display: grid;
    grid-template-columns: minmax(80px, 1fr) minmax(0, 1fr);
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--border-light);
}

.procurement-offer-note dl div:last-child {
    border-bottom: 0;
}

.procurement-offer-note dt {
    color: var(--text-muted);
    font-size: 0.82rem;
    font-weight: 600;
}

.procurement-offer-note dd {
    margin: 0;
    color: var(--text);
    font-size: 0.86rem;
    font-weight: 600;
}

.procurement-receipt {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    padding: 20px;
    border: 1px solid #bbf7d0;
    border-radius: 16px;
    background: #f0fdf4;
    color: #14532d;
}

.procurement-receipt-icon {
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: #dcfce7;
    color: #15803d;
    font-size: 1.4rem;
}

.procurement-receipt h3 {
    margin: 0 0 6px;
    color: #14532d;
}

.procurement-receipt p {
    margin: 0 0 14px;
}

.procurement-receipt dl {
    display: grid;
    gap: 8px;
    margin: 0;
}

.procurement-receipt dl div {
    display: grid;
    grid-template-columns: minmax(120px, 180px) minmax(0, 1fr);
    gap: 10px;
}

.procurement-receipt dt {
    font-weight: 600;
}

.procurement-receipt dd {
    margin: 0;
    overflow-wrap: anywhere;
}

.procurement-platform h2,
.procurement-detail h2,
.procurement-detail-panel-head h3,
.procurement-side-card h3,
.procurement-section h3,
.procurement-question-summary strong,
.procurement-form-block h4,
.procurement-offer-note h4,
.procurement-receipt h3 {
    font-weight: 600;
}

.procurement-platform,
.procurement-detail {
    font-size: 1rem;
}

.procurement-platform-hero h2,
.procurement-detail-hero h2,
.procurement-offer-summary strong,
.procurement-invitation-gate h2 {
    font-size: 1.375rem;
    font-weight: 600;
    line-height: 1.25;
}

.procurement-detail-panel-head h3,
.procurement-side-card h3,
.procurement-section h3,
.procurement-form-block h4,
.procurement-offer-note h4,
.procurement-receipt h3 {
    font-size: 1rem;
    line-height: 1.35;
}

.procurement-offer-form,
.procurement-offer-layout,
.procurement-offer-aside {
    font-size: 1rem;
}

.procurement-offer-summary strong {
    font-size: 1.25rem;
}

.procurement-offer-summary small,
.procurement-field-hint,
.procurement-offer-aside .procurement-deadline-box p,
.procurement-offer-note p {
    font-size: 0.95rem;
}

.procurement-field label,
.procurement-invitation-form label,
.procurement-captcha .captcha-label {
    font-size: 0.95rem;
    font-weight: 600;
}

.procurement-field input,
.procurement-field textarea,
.procurement-field select,
.procurement-invitation-password-row input {
    font-size: 1rem;
    font-weight: 400;
}

.procurement-deadline-box > span,
.procurement-offer-note dt,
.procurement-offer-note dd,
.procurement-captcha .captcha-note {
    font-weight: 600;
}

.procurement-deadline-box > strong {
    font-size: 1.15rem;
    font-weight: 600;
}

.procurement-offer-toggle {
    font-size: 1rem;
    font-weight: 600;
}

.procurement-offer-note dl div {
    grid-template-columns: minmax(90px, 0.9fr) minmax(0, 1fr);
}

.procurement-platform-card h3,
.procurement-card-title,
.procurement-result-summary,
.procurement-qa-title,
.procurement-field label,
.procurement-platform-field label,
.procurement-side-meta dd,
.procurement-metrics dd,
.procurement-result-offer dd,
.procurement-offer-note dd,
.procurement-file-list a,
.procurement-detail-docs a,
.procurement-answer-attachments a,
.procurement-checkbox,
.procurement-submit-btn,
.procurement-detail-action,
.procurement-platform-action,
.procurement-platform-filter-btn,
.procurement-platform-view,
.procurement-offer-toggle,
.procurement-question-toggle,
.procurement-invitation-form label,
.procurement-receipt dt {
    font-weight: 600;
}

.procurement-detail-copy,
.procurement-question-text,
.procurement-answer,
.procurement-receipt p {
    font-weight: 400;
}

[data-bip-theme="dark"] .procurement-card,
[data-bip-theme="dark"] .procurement-platform-action,
[data-bip-theme="dark"] .procurement-platform-stats div,
[data-bip-theme="dark"] .procurement-platform-filter,
[data-bip-theme="dark"] .procurement-platform-field input,
[data-bip-theme="dark"] .procurement-platform-field select,
[data-bip-theme="dark"] .procurement-platform-reset-btn,
[data-bip-theme="dark"] .procurement-platform-card,
[data-bip-theme="dark"] .procurement-detail-header,
[data-bip-theme="dark"] .procurement-detail-action,
[data-bip-theme="dark"] .procurement-detail-panel,
[data-bip-theme="dark"] .procurement-side-card,
[data-bip-theme="dark"] .procurement-detail-docs li,
[data-bip-theme="dark"] .procurement-deadline-box,
[data-bip-theme="dark"] .procurement-countdown div,
[data-bip-theme="dark"] .procurement-offer-toggle,
[data-bip-theme="dark"] .procurement-question-summary,
[data-bip-theme="dark"] .procurement-checkbox,
[data-bip-theme="dark"] .procurement-file-dropzone,
[data-bip-theme="dark"] .procurement-selected-files li,
[data-bip-theme="dark"] .procurement-offer-note,
[data-bip-theme="dark"] .procurement-invitation-password-row input,
[data-bip-theme="dark"] .procurement-section {
    border-color: rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.03);
}

[data-bip-theme="dark"] .procurement-invitation-gate-icon {
    background: rgba(132, 204, 22, 0.14);
    color: #bef264;
}

[data-bip-theme="dark"] .procurement-card:hover,
[data-bip-theme="dark"] .procurement-card:focus-visible {
    border-color: rgba(147, 197, 253, 0.5);
    background: rgba(255,255,255,0.06);
}

[data-bip-theme="dark"] .procurement-platform-pill {
    border-color: #334155;
    background: #172033;
    color: #dbeafe;
}

[data-bip-theme="dark"] .procurement-platform-pill.is-open {
    border-color: #22c55e;
    background: #12331f;
    color: #bbf7d0;
}

[data-bip-theme="dark"] .procurement-platform-pill.is-today {
    border-color: #f59e0b;
    background: #3b2507;
    color: #fde68a;
}

[data-bip-theme="dark"] .procurement-platform-pill.is-closed {
    border-color: #315982;
    background: #10233d;
    color: #dbeafe;
}

[data-bip-theme="dark"] .procurement-platform-pill.is-resolved {
    border-color: #60a5fa;
    background: #10233d;
    color: #bfdbfe;
}

[data-bip-theme="dark"] .procurement-platform-pill.is-cancelled {
    border-color: #ef4444;
    background: #3a1117;
    color: #fecaca;
}

[data-bip-theme="dark"] .procurement-platform-filter-btn,
[data-bip-theme="dark"] .procurement-platform-view {
    border-color: #2563eb;
    background: #1d4ed8;
    color: #ffffff;
}

[data-bip-theme="dark"] .procurement-platform-filter-btn:hover,
[data-bip-theme="dark"] .procurement-platform-filter-btn:focus-visible,
[data-bip-theme="dark"] .procurement-platform-view:hover,
[data-bip-theme="dark"] .procurement-platform-view:focus-visible {
    border-color: #60a5fa;
    background: #2563eb;
    color: #ffffff;
}

[data-bip-theme="dark"] .procurement-platform-reset-btn {
    border-color: #475569;
    background: #1f2937;
    color: #f8fafc;
}

[data-bip-theme="dark"] .procurement-card-title,
[data-bip-theme="dark"] .procurement-platform-hero h2,
[data-bip-theme="dark"] .procurement-platform-action,
[data-bip-theme="dark"] .procurement-platform-reset-btn,
[data-bip-theme="dark"] .procurement-platform-stats strong,
[data-bip-theme="dark"] .procurement-platform-field label,
[data-bip-theme="dark"] .procurement-platform-field input,
[data-bip-theme="dark"] .procurement-platform-field select,
[data-bip-theme="dark"] .procurement-platform-card h3,
[data-bip-theme="dark"] .procurement-platform-card-term strong,
[data-bip-theme="dark"] .procurement-platform-card-budget strong,
[data-bip-theme="dark"] .procurement-detail-hero h2,
[data-bip-theme="dark"] .procurement-detail-action,
[data-bip-theme="dark"] .procurement-detail-panel-head h3,
[data-bip-theme="dark"] .procurement-side-card h3,
[data-bip-theme="dark"] .procurement-detail-copy,
[data-bip-theme="dark"] .procurement-detail-docs a,
[data-bip-theme="dark"] .procurement-deadline-box > strong,
[data-bip-theme="dark"] .procurement-countdown b,
[data-bip-theme="dark"] .procurement-side-meta dd,
[data-bip-theme="dark"] .procurement-metrics dd,
[data-bip-theme="dark"] .procurement-section h3,
[data-bip-theme="dark"] .procurement-qa-item summary,
[data-bip-theme="dark"] .procurement-offer-summary strong,
[data-bip-theme="dark"] .procurement-offer-toggle,
[data-bip-theme="dark"] .procurement-question-summary,
[data-bip-theme="dark"] .procurement-form-block h4,
[data-bip-theme="dark"] .procurement-offer-note h4,
[data-bip-theme="dark"] .procurement-checkbox,
[data-bip-theme="dark"] .procurement-file-dropzone strong,
[data-bip-theme="dark"] .procurement-selected-files li,
[data-bip-theme="dark"] .procurement-offer-note dd,
[data-bip-theme="dark"] .procurement-invitation-gate h2,
[data-bip-theme="dark"] .procurement-invitation-form label,
[data-bip-theme="dark"] .procurement-invitation-password-row input,
[data-bip-theme="dark"] .procurement-result-summary,
[data-bip-theme="dark"] .procurement-result-offer dd {
    color: #f8fafc;
}

[data-bip-theme="dark"] .procurement-card-desc,
[data-bip-theme="dark"] .procurement-card-meta,
[data-bip-theme="dark"] .procurement-platform-hero p,
[data-bip-theme="dark"] .procurement-platform-stats span,
[data-bip-theme="dark"] .procurement-platform-stats p,
[data-bip-theme="dark"] .procurement-platform-card p,
[data-bip-theme="dark"] .procurement-platform-card-term span,
[data-bip-theme="dark"] .procurement-platform-card-budget span,
[data-bip-theme="dark"] .procurement-detail-reference,
[data-bip-theme="dark"] .procurement-lead,
[data-bip-theme="dark"] .procurement-detail-docs span,
[data-bip-theme="dark"] .procurement-deadline-box > span,
[data-bip-theme="dark"] .procurement-countdown small,
[data-bip-theme="dark"] .procurement-side-meta dt,
[data-bip-theme="dark"] .procurement-qa-preview,
[data-bip-theme="dark"] .procurement-metrics dt,
[data-bip-theme="dark"] .procurement-file-meta,
[data-bip-theme="dark"] .procurement-result-offer dt,
[data-bip-theme="dark"] .procurement-empty,
[data-bip-theme="dark"] .procurement-empty-state,
[data-bip-theme="dark"] .procurement-offer-summary small,
[data-bip-theme="dark"] .procurement-question-summary small,
[data-bip-theme="dark"] .procurement-offer-aside .procurement-deadline-box p,
[data-bip-theme="dark"] .procurement-offer-note p,
[data-bip-theme="dark"] .procurement-offer-note dt,
[data-bip-theme="dark"] .procurement-vat-help {
    color: rgba(255,255,255,0.74);
}

[data-bip-theme="dark"] .procurement-metrics div,
[data-bip-theme="dark"] .procurement-file-list li,
[data-bip-theme="dark"] .procurement-qa-item,
[data-bip-theme="dark"] .procurement-result-offer div {
    border-color: rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.04);
}

[data-bip-theme="dark"] .procurement-answer,
[data-bip-theme="dark"] .procurement-detail-panel-head,
[data-bip-theme="dark"] .procurement-side-meta div,
[data-bip-theme="dark"] .procurement-form-block,
[data-bip-theme="dark"] .procurement-offer-note dl div,
[data-bip-theme="dark"] .procurement-result-content {
    border-top-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .procurement-offer-note dl div {
    border-bottom-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .procurement-side-meta div {
    border-bottom-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .procurement-detail-panel-head {
    border-bottom-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .procurement-result {
    background: rgba(255,255,255,0.03);
}

[data-bip-theme="dark"] .procurement-question-box {
    border-top-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .procurement-file-list a {
    color: #dbeafe;
}

[data-bip-theme="dark"] .procurement-field label {
    color: #f8fafc;
}

[data-bip-theme="dark"] .procurement-field input,
[data-bip-theme="dark"] .procurement-field textarea,
[data-bip-theme="dark"] .procurement-field select {
    border-color: rgba(255,255,255,0.16);
    background: rgba(255,255,255,0.04);
    color: #f8fafc;
}

[data-bip-theme="dark"] .procurement-section-heading p,
[data-bip-theme="dark"] .procurement-field-hint {
    color: rgba(255,255,255,0.74);
}

[data-bip-theme="dark"] .procurement-captcha .captcha-block {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.16);
}

[data-bip-theme="dark"] .procurement-captcha .captcha-math-question,
[data-bip-theme="dark"] .procurement-captcha .captcha-input {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.16);
    color: #f8fafc;
}

[data-bip-theme="dark"] .procurement-captcha .captcha-note {
    color: rgba(255,255,255,0.74);
}

[data-bip-theme="dark"] .procurement-receipt {
    border-color: rgba(34, 197, 94, 0.38);
    background: rgba(22, 101, 52, 0.22);
    color: #dcfce7;
}

[data-bip-theme="dark"] .procurement-receipt h3 {
    color: #f0fdf4;
}

[data-contrast="high"] .procurement-card,
[data-contrast="high"] .procurement-platform-action,
[data-contrast="high"] .procurement-platform-stats div,
[data-contrast="high"] .procurement-platform-filter,
[data-contrast="high"] .procurement-platform-field input,
[data-contrast="high"] .procurement-platform-field select,
[data-contrast="high"] .procurement-platform-reset-btn,
[data-contrast="high"] .procurement-platform-card,
[data-contrast="high"] .procurement-detail-header,
[data-contrast="high"] .procurement-detail-action,
[data-contrast="high"] .procurement-detail-panel,
[data-contrast="high"] .procurement-side-card,
[data-contrast="high"] .procurement-detail-docs li,
[data-contrast="high"] .procurement-deadline-box,
[data-contrast="high"] .procurement-countdown div,
[data-contrast="high"] .procurement-offer-toggle,
[data-contrast="high"] .procurement-question-summary,
[data-contrast="high"] .procurement-checkbox,
[data-contrast="high"] .procurement-file-dropzone,
[data-contrast="high"] .procurement-selected-files li,
[data-contrast="high"] .procurement-offer-note,
[data-contrast="high"] .procurement-section,
[data-contrast="high"] .procurement-metrics div,
[data-contrast="high"] .procurement-file-list li,
[data-contrast="high"] .procurement-qa-item,
[data-contrast="high"] .procurement-result-offer div,
[data-contrast="high"] .procurement-empty-state,
[data-contrast="high"] .procurement-field input,
[data-contrast="high"] .procurement-field textarea,
[data-contrast="high"] .procurement-field select,
[data-contrast="high"] .procurement-receipt {
    border-color: var(--contrast-border);
    background: var(--contrast-bg);
    color: var(--contrast-text);
    box-shadow: none;
}

[data-contrast="high"] .recruitment-print-button,
[data-contrast="high"] .recruitment-metadata,
[data-contrast="high"] .recruitment-bip-metadata {
    border-color: var(--contrast-border);
    background: var(--contrast-bg);
    color: var(--contrast-text);
    box-shadow: none;
}

[data-contrast="high"] .recruitment-bip-metadata header,
[data-contrast="high"] .recruitment-bip-metadata dl > div {
    border-color: var(--contrast-border);
}

[data-contrast="high"] .procurement-status {
    border: 2px solid var(--contrast-border);
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

[data-contrast="high"] .procurement-platform-pill,
[data-contrast="high"] .procurement-platform-filter-btn,
[data-contrast="high"] .procurement-platform-reset-btn,
[data-contrast="high"] .procurement-platform-view {
    border-color: var(--contrast-interactive-border);
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

[data-contrast="high"] .procurement-card-title,
[data-contrast="high"] .procurement-platform-hero h2,
[data-contrast="high"] .procurement-platform-action,
[data-contrast="high"] .procurement-platform-reset-btn,
[data-contrast="high"] .procurement-platform-stats strong,
[data-contrast="high"] .procurement-platform-field label,
[data-contrast="high"] .procurement-platform-card h3,
[data-contrast="high"] .procurement-platform-card-term strong,
[data-contrast="high"] .procurement-platform-card-budget strong,
[data-contrast="high"] .procurement-detail-hero h2,
[data-contrast="high"] .procurement-detail-action,
[data-contrast="high"] .procurement-detail-panel-head h3,
[data-contrast="high"] .procurement-side-card h3,
[data-contrast="high"] .procurement-detail-docs a,
[data-contrast="high"] .procurement-deadline-box > strong,
[data-contrast="high"] .procurement-countdown b,
[data-contrast="high"] .procurement-side-meta dd,
[data-contrast="high"] .procurement-metrics dd,
[data-contrast="high"] .procurement-section h3,
[data-contrast="high"] .procurement-qa-item summary,
[data-contrast="high"] .procurement-offer-summary strong,
[data-contrast="high"] .procurement-offer-toggle,
[data-contrast="high"] .procurement-question-summary,
[data-contrast="high"] .procurement-form-block h4,
[data-contrast="high"] .procurement-offer-note h4,
[data-contrast="high"] .procurement-checkbox,
[data-contrast="high"] .procurement-file-dropzone strong,
[data-contrast="high"] .procurement-selected-files li,
[data-contrast="high"] .procurement-offer-note dd,
[data-contrast="high"] .procurement-invitation-gate h2,
[data-contrast="high"] .procurement-invitation-form label,
[data-contrast="high"] .procurement-invitation-password-row input,
[data-contrast="high"] .procurement-result-summary,
[data-contrast="high"] .procurement-result-offer dd,
[data-contrast="high"] .procurement-file-list a {
    color: var(--contrast-link);
}

[data-contrast="high"] .procurement-card-desc,
[data-contrast="high"] .procurement-card-meta,
[data-contrast="high"] .procurement-platform-hero p,
[data-contrast="high"] .procurement-platform-stats span,
[data-contrast="high"] .procurement-platform-stats p,
[data-contrast="high"] .procurement-platform-card p,
[data-contrast="high"] .procurement-platform-card-term span,
[data-contrast="high"] .procurement-platform-card-budget span,
[data-contrast="high"] .procurement-detail-reference,
[data-contrast="high"] .procurement-lead,
[data-contrast="high"] .procurement-detail-copy,
[data-contrast="high"] .procurement-detail-docs span,
[data-contrast="high"] .procurement-deadline-box > span,
[data-contrast="high"] .procurement-countdown small,
[data-contrast="high"] .procurement-side-meta dt,
[data-contrast="high"] .procurement-qa-preview,
[data-contrast="high"] .procurement-metrics dt,
[data-contrast="high"] .procurement-file-meta,
[data-contrast="high"] .procurement-result-offer dt,
[data-contrast="high"] .procurement-empty,
[data-contrast="high"] .procurement-empty-state,
[data-contrast="high"] .procurement-section-heading p,
[data-contrast="high"] .procurement-field-hint,
[data-contrast="high"] .procurement-offer-summary small,
[data-contrast="high"] .procurement-question-summary small,
[data-contrast="high"] .procurement-offer-aside .procurement-deadline-box p,
[data-contrast="high"] .procurement-offer-note p,
[data-contrast="high"] .procurement-offer-note dt,
[data-contrast="high"] .procurement-invitation-gate p,
[data-contrast="high"] .procurement-vat-help {
    color: var(--contrast-text);
}

[data-contrast="high"] .procurement-submit-btn {
    border-color: var(--contrast-interactive-border);
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
}

@media (max-width: 900px) {
    .procurement-detail-hero,
    .procurement-detail-layout {
        grid-template-columns: 1fr;
    }

    .procurement-detail-actions {
        justify-content: flex-start;
    }

    .procurement-invitation-gate {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .procurement-platform {
        gap: 16px;
    }

    .procurement-detail-hero,
    .procurement-detail-layout {
        grid-template-columns: 1fr;
    }

    .procurement-detail-hero {
        align-items: start;
    }

    .procurement-detail-hero h2 {
        font-size: 1.375rem;
    }

    .procurement-detail-actions,
    .procurement-detail-action {
        width: 100%;
    }

    .procurement-detail-actions {
        justify-content: stretch;
    }

    .procurement-invitation-gate {
        padding: 20px;
    }

    .procurement-invitation-password-row {
        flex-direction: column;
    }

    .procurement-detail-action {
        justify-content: center;
    }

    .procurement-detail-panel-head {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px;
    }

    .procurement-detail-copy,
    .procurement-detail-docs,
    .procurement-side-card {
        padding: 16px;
    }

    .procurement-detail-docs li {
        grid-template-columns: 30px minmax(0, 1fr) auto;
    }

    .procurement-offer-summary,
    .procurement-offer-layout {
        grid-template-columns: 1fr;
    }

    .procurement-offer-summary {
        display: grid;
        padding: 18px;
    }

    .procurement-offer-toggle {
        width: 100%;
    }

    .procurement-offer-layout {
        padding: 0 18px 18px;
    }

    .procurement-offer-note dl div {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .procurement-question-summary {
        display: grid;
        grid-template-columns: 1fr;
    }

    .procurement-question-toggle {
        width: 100%;
        justify-content: flex-start;
    }

    .procurement-qa-item summary {
        grid-template-columns: 1fr auto;
    }

    .procurement-qa-preview {
        grid-column: 1 / -1;
    }

    .procurement-side-meta div {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .procurement-platform-hero,
    .procurement-platform-filter,
    .procurement-platform-card {
        grid-template-columns: 1fr;
    }

    .procurement-platform-actions,
    .procurement-platform-filter-btn,
    .procurement-platform-filter-actions,
    .procurement-platform-view {
        width: 100%;
    }

    .procurement-platform-filter-actions {
        align-items: stretch;
    }

    .procurement-platform-filter-btn {
        flex: 1 1 auto;
    }

    .procurement-platform-action {
        flex: 1 1 100%;
        justify-content: center;
    }

    .procurement-platform-stats {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .procurement-platform-stats div,
    .procurement-platform-card {
        padding: 16px;
    }

    .procurement-platform-card-main {
        grid-template-columns: 1fr;
    }

    .procurement-platform-icon {
        width: 48px;
        height: 48px;
    }

    .procurement-list {
        gap: 12px;
    }

    .procurement-card,
    .procurement-detail-header,
    .procurement-section {
        padding: 18px;
        border-radius: 14px;
    }

    .procurement-detail-header {
        grid-template-columns: 1fr;
    }

    .procurement-metrics {
        gap: 8px;
    }

    .procurement-card-meta {
        display: grid;
        gap: 6px;
    }

    .procurement-section-heading,
    .procurement-form-grid,
    .procurement-gus-lookup-field,
    .procurement-result-offer,
    .procurement-receipt,
    .procurement-receipt dl div {
        grid-template-columns: 1fr;
    }

    .procurement-section-heading {
        display: grid;
    }
}

/* Dark mode overrides */
[data-bip-theme="dark"] .resident-panel-header h1,
[data-bip-theme="dark"] .resident-category-header h1,
[data-bip-theme="dark"] .resident-case-header h1 {
    color: #dbeafe;
}

[data-bip-theme="dark"] .resident-panel-header p,
[data-bip-theme="dark"] .resident-category-header p,
[data-bip-theme="dark"] .resident-case-subtitle,
[data-bip-theme="dark"] .resident-tile-desc,
[data-bip-theme="dark"] .resident-case-card-desc,
[data-bip-theme="dark"] .resident-case-card-arrow,
[data-bip-theme="dark"] .resident-empty {
    color: rgba(255,255,255,0.78);
}

[data-bip-theme="dark"] .resident-tile {
    background: rgba(255,255,255,0.03);
    border-color: rgba(147,197,253,0.24);
    color: var(--text);
}

[data-bip-theme="dark"] .resident-tile-title,
[data-bip-theme="dark"] .resident-case-card-title,
[data-bip-theme="dark"] .resident-case-content,
[data-bip-theme="dark"] .resident-case-section p,
[data-bip-theme="dark"] .resident-case-section strong {
    color: #f8fafc;
}

[data-bip-theme="dark"] .resident-tile:hover,
[data-bip-theme="dark"] .resident-tile:focus-visible {
    box-shadow: 0 10px 28px rgba(0,0,0,0.32);
}
[data-bip-theme="dark"] .resident-case-section {
    background: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.12);
}

[data-bip-theme="dark"] .resident-case-section h2 {
    color: #dbeafe;
}
[data-bip-theme="dark"] .resident-case-epuap {
    background: rgba(147,197,253,0.08);
    border-color: rgba(147,197,253,0.45);
}
[data-bip-theme="dark"] .resident-case-card {
    background: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.12);
    color: var(--text);
}

[data-bip-theme="dark"] .resident-tile-icon,
[data-bip-theme="dark"] .resident-cat-icon-large,
[data-bip-theme="dark"] .resident-case-section h2 i,
[data-bip-theme="dark"] .resident-case-links a,
[data-bip-theme="dark"] .resident-case-card-arrow {
    color: #93c5fd;
}

[data-bip-theme="dark"] .resident-case-back {
    border-top-color: rgba(255,255,255,0.12);
}

/* High contrast */
[data-contrast="high"] .resident-panel-header h1,
[data-contrast="high"] .resident-category-header h1,
[data-contrast="high"] .resident-case-header h1,
[data-contrast="high"] .resident-tile-title,
[data-contrast="high"] .resident-case-card-title,
[data-contrast="high"] .resident-case-content,
[data-contrast="high"] .resident-case-section h2,
[data-contrast="high"] .resident-case-links a,
[data-contrast="high"] .resident-case-section p,
[data-contrast="high"] .resident-case-section strong,
[data-contrast="high"] .resident-panel-header p,
[data-contrast="high"] .resident-category-header p,
[data-contrast="high"] .resident-case-subtitle,
[data-contrast="high"] .resident-tile-desc,
[data-contrast="high"] .resident-case-card-desc,
[data-contrast="high"] .resident-case-card-arrow,
[data-contrast="high"] .resident-empty {
    color: var(--contrast-text);
}

[data-contrast="high"] .resident-tile {
    background: var(--contrast-surface);
    color: var(--contrast-text);
    border-color: var(--contrast-border);
    border-width: 3px;
}
[data-contrast="high"] .resident-case-card {
    background: var(--contrast-surface);
    color: var(--contrast-text);
    border-color: var(--contrast-border);
    border-width: 2px;
}
[data-contrast="high"] .resident-case-section,
[data-contrast="high"] .resident-case-epuap {
    background: var(--contrast-surface);
    border-color: var(--contrast-border);
}

[data-contrast="high"] .resident-tile-icon,
[data-contrast="high"] .resident-cat-icon-large,
[data-contrast="high"] .resident-case-section h2 i,
[data-contrast="high"] .resident-case-links a,
[data-contrast="high"] .resident-case-card-arrow {
    color: var(--contrast-text);
}

[data-contrast="high"] .resident-tile:hover,
[data-contrast="high"] .resident-tile:focus-visible,
[data-contrast="high"] .resident-case-card:hover,
[data-contrast="high"] .resident-case-card:focus-visible {
    background: var(--contrast-interactive-bg);
    color: var(--contrast-interactive-text);
    border-color: var(--contrast-interactive-border);
    box-shadow: none;
}

[data-contrast="high"] .resident-tile:hover .resident-tile-title,
[data-contrast="high"] .resident-tile:hover .resident-tile-desc,
[data-contrast="high"] .resident-tile:hover .resident-tile-icon,
[data-contrast="high"] .resident-tile:focus-visible .resident-tile-title,
[data-contrast="high"] .resident-tile:focus-visible .resident-tile-desc,
[data-contrast="high"] .resident-tile:focus-visible .resident-tile-icon,
[data-contrast="high"] .resident-case-card:hover .resident-case-card-title,
[data-contrast="high"] .resident-case-card:hover .resident-case-card-desc,
[data-contrast="high"] .resident-case-card:hover .resident-case-card-arrow,
[data-contrast="high"] .resident-case-card:focus-visible .resident-case-card-title,
[data-contrast="high"] .resident-case-card:focus-visible .resident-case-card-desc,
[data-contrast="high"] .resident-case-card:focus-visible .resident-case-card-arrow {
    color: var(--contrast-interactive-text);
}

[data-contrast="high"] .resident-case-back {
    border-top-color: var(--contrast-border);
}

@media (max-width: 640px) {
    .recruitment-card,
    .recruitment-detail-header,
    .recruitment-grid,
    .recruitment-bip-metadata dl,
    .recruitment-timeline-item {
        grid-template-columns: 1fr;
    }

    .recruitment-detail-actions {
        justify-content: flex-start;
    }

    .recruitment-card {
        align-items: flex-start;
        min-height: 0;
        gap: 14px;
        padding: 14px 16px 14px 18px;
        border-radius: 8px;
    }

    .recruitment-card-body {
        gap: 2px;
    }

    .recruitment-card-body strong {
        font-size: 1rem;
        line-height: 1.28;
    }

    .recruitment-card-body > span {
        font-size: .9375rem;
        line-height: 1.35;
    }

    .recruitment-card-aside {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 12px;
        align-items: center;
        justify-items: start;
        width: 100%;
    }

    .recruitment-card-meta {
        display: grid;
        gap: 8px;
        margin-top: 10px;
    }

    .recruitment-card-meta > span {
        min-width: 0;
    }

    .recruitment-card small,
    .recruitment-card-date small,
    .recruitment-legend small {
        font-size: .75rem;
    }

    .recruitment-card b {
        font-size: .875rem;
    }

    .recruitment-status {
        min-height: 34px;
        padding: 0 12px;
        font-size: .875rem;
    }

    .recruitment-card-meta > span + span::before {
        display: none;
    }

    .recruitment-legend {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .recruitment-legend span + span {
        padding-left: 0;
        padding-top: 12px;
    }

    .recruitment-legend span + span::before {
        top: 0;
        bottom: auto;
        right: 0;
        width: auto;
        height: 1px;
    }

    .recruitment-metadata {
        position: static;
    }

    .recruitment-bip-metadata dl > div {
        padding: 12px 0;
        border-left: 0;
        border-top: 1px solid var(--border-light);
    }

    .recruitment-bip-metadata dl > div:first-child {
        padding-top: 0;
        border-top: 0;
    }

    .resident-tiles {
        grid-template-columns: 1fr;
        gap: 0.625rem;
    }

    .resident-tile {
        align-items: flex-start;
        text-align: left;
        padding: 0.875rem 1rem;
        min-height: 0;
    }

    .resident-tile-icon {
        font-size: 1.5rem;
        margin-bottom: 0.5rem;
    }

    .resident-tile-title {
        font-size: 0.95rem;
        line-height: 1.25;
    }

    .resident-tile-desc {
        font-size: 0.8125rem;
        line-height: 1.35;
        margin-top: 0.25rem;
    }

    .resident-case-card {
        flex-wrap: wrap;
    }
    .resident-case-card-desc {
        flex-basis: 100%;
    }
}

@media (max-width: 420px) {
    .recruitment-card-aside {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .recruitment-status {
        width: 100%;
    }
}

/* Public appearance integration for newer public modules */
.env-register-hero,
.env-register-filter,
.env-register-card,
.env-register-list-table-wrap,
.env-register-table-wrap,
.env-register-meta-box,
.env-register-empty,
.env-register-print,
.env-register-button.secondary,
.env-register-pagination a,
.env-register-pagination span,
.env-filter-head-badge,
.env-subject-block,
.env-related-item,
.env-electronic-link,
.env-link-actions a,
.env-link-actions button,
.env-public-area-map {
    border-color: var(--border-light) !important;
    background: var(--bg) !important;
    color: var(--text) !important;
}

.env-filter-field input,
.env-filter-field select {
    border-color: var(--border-light) !important;
    background-color: var(--bg) !important;
    color: var(--text) !important;
}

.env-standalone-unit-hero {
    background: var(--bg-alt) !important;
}

.env-standalone-unit-hero-placeholder,
.env-register-card-icon,
.env-register-list-table th,
.env-register-table .env-col-no,
.env-register-table .env-col-label,
.env-register-list-table tr:nth-child(even) td,
.env-register-list-table tr.env-click-row:hover td,
.env-filter-head-badge,
.env-register-pagination .disabled,
.env-subject-block,
.env-related-item,
.env-electronic-link {
    background: var(--bg-soft) !important;
}

.env-register-title,
.env-standalone-unit-hero h1,
.env-standalone-unit-hero .env-standalone-subtitle,
.env-standalone-unit-hero p,
.env-filter-head-title,
.env-filter-field label,
.env-register-results-head strong,
.env-register-list-table .env-card-no,
.env-register-list-table .env-card-name,
.env-register-list-table .env-card-row-link,
.env-register-table .env-col-label,
.env-register-table .env-col-value,
.env-subject-block > strong,
.env-related-item,
.env-related-item strong,
.env-link-actions a,
.env-link-actions button,
.env-register-meta-box h2,
.env-register-button.secondary {
    color: var(--text) !important;
}

.env-register-lead,
.env-register-breadcrumb,
.env-register-breadcrumb a,
.env-register-kicker,
.env-filter-head-subtitle,
.env-register-filter-note,
.env-register-card p,
.env-register-card-meta,
.env-register-results-head,
.env-register-list-table .env-card-muted,
.env-register-table .env-col-no,
.env-related-item span,
.env-link-text,
.env-attachment-list small,
.env-register-meta-item strong,
.env-register-empty,
.env-register-empty p,
.env-public-area-map-caption {
    color: var(--text-muted) !important;
}

.env-filter-head-title i,
.env-standalone-unit-hero-placeholder,
.env-register-card-icon,
.env-register-list-table .env-row-open-icon {
    color: var(--bip-blue) !important;
}

.env-register-button,
.env-register-pagination .active,
.env-register-list-table tr.env-click-row:hover .env-row-open-icon {
    border-color: var(--bip-blue) !important;
    background: var(--bip-blue) !important;
    color: #ffffff !important;
}

[data-bip-theme="dark"] .pdwd-main .env-register-button,
[data-bip-theme="dark"] .pdwd-main .env-register-pagination .active,
[data-bip-theme="dark"] .pdwd-main .env-register-list-table tr.env-click-row:hover .env-row-open-icon {
    border-color: #3b82f6 !important;
    background: #2563eb !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

[data-bip-theme="dark"] .pdwd-main .env-register-button.secondary,
[data-bip-theme="dark"] .pdwd-main .env-register-button-clear {
    border-color: #303a46 !important;
    background: #14181d !important;
    color: #f8fafc !important;
}

[data-bip-theme="dark"] .pdwd-main .env-register-button.secondary:hover,
[data-bip-theme="dark"] .pdwd-main .env-register-button.secondary:focus-visible {
    border-color: #4b5563 !important;
    background: #1b2430 !important;
    color: #ffffff !important;
}

.env-register-card:hover,
.env-link-actions a:hover,
.env-link-actions button:hover {
    border-color: rgba(var(--bip-navy-rgb), 0.32) !important;
    background: var(--bg-alt) !important;
}

.env-filter-head,
.env-register-list-table th,
.env-register-list-table td,
.env-register-table th,
.env-register-table td,
.env-register-meta-item {
    border-color: var(--border-light) !important;
}

.env-filter-field select {
    background-image:
        linear-gradient(45deg, transparent 50%, var(--bip-blue) 50%),
        linear-gradient(135deg, var(--bip-blue) 50%, transparent 50%) !important;
    background-position:
        calc(100% - 20px) 50%,
        calc(100% - 14px) 50% !important;
    background-size: 6px 6px, 6px 6px !important;
    background-repeat: no-repeat !important;
}

.env-filter-field input:focus,
.env-filter-field select:focus {
    outline-color: rgba(var(--bip-navy-rgb), 0.22) !important;
}

.bip-content > .env-register-shell--index {
    gap: 28px;
    padding-top: 0;
}

.bip-content > .env-register-shell--index .env-register-hero {
    padding: 4px 0 28px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--border-light) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.bip-content > .env-register-shell--index .env-register-filter {
    padding: 28px !important;
    border: 1px solid var(--border-light) !important;
    border-radius: var(--bip-radius-xl) !important;
    background: linear-gradient(180deg, var(--bg), var(--bg-soft)) !important;
    box-shadow: none !important;
}

.bip-content > .env-register-shell--index .env-filter-head {
    padding-bottom: 20px;
    margin-bottom: 2px;
}

.bip-content > .env-register-shell--index .env-filter-head-badge {
    box-shadow: none;
}

.bip-content > .env-register-shell--index .env-filter-actions {
    grid-column: span 2 !important;
    justify-content: flex-end;
}

.bip-content > .env-register-shell--index .env-filter-actions .env-register-button {
    flex: 0 0 auto;
    min-width: 150px;
}

.bip-content > .env-register-shell--index .env-filter-actions .env-register-button-icon {
    width: 52px;
    min-width: 52px;
    padding: 0 !important;
    font-size: 1.05rem;
}

.bip-content > .env-register-shell--index .env-filter-actions .env-register-button-clear.is-active {
    border-color: var(--bip-blue) !important;
    background: var(--bip-blue) !important;
    color: #ffffff !important;
}

[data-bip-theme="dark"] .bip-content > .env-register-shell--index .env-filter-actions .env-register-button-clear.is-active,
[data-bip-theme="dark"] .pdwd-main .env-register-button-clear.is-active {
    border-color: #303a46 !important;
    background: #14181d !important;
    color: #ffffff !important;
}

.bip-content > .env-register-shell--index .env-filter-actions .env-register-button-clear.is-disabled {
    border-color: var(--border-light) !important;
    background: var(--bg-alt) !important;
    color: var(--text-muted) !important;
    cursor: not-allowed;
    opacity: 0.58;
    box-shadow: none !important;
}

.env-register-breadcrumb {
    gap: 6px !important;
    margin-bottom: 20px !important;
    color: var(--text-muted) !important;
    font-size: 0.8125rem !important;
}

.env-register-breadcrumb a {
    color: var(--bip-blue) !important;
    text-decoration: none !important;
}

.env-register-breadcrumb a:hover {
    text-decoration: underline !important;
}

.env-register-breadcrumb .sep {
    color: var(--border) !important;
}

.bip-content > .env-register-shell--index .env-register-title {
    margin: 0 0 8px !important;
    font-size: 1.375rem !important;
    font-weight: 600 !important;
    line-height: 1.14 !important;
}

.bip-content > .env-register-shell--index .env-register-lead {
    max-width: 720px !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
}

@media (max-width: 640px) {
    .bip-content > .env-register-shell--index .env-register-hero {
        padding: 0 0 22px !important;
    }

    .bip-content > .env-register-shell--index .env-register-filter {
        padding: 22px 18px !important;
    }
}

[data-bip-radius="sharp"] :where(
    [class^="env-"],
    [class*=" env-"],
    [class^="procurement-"],
    [class*=" procurement-"],
    [class^="recruitment-"],
    [class*=" recruitment-"],
    [class^="resident-"],
    [class*=" resident-"],
    [class^="authority-"],
    [class*=" authority-"],
    [class^="sitemap-"],
    [class*=" sitemap-"],
    [class^="search-"],
    [class*=" search-"],
    [class^="info-requests-"],
    [class*=" info-requests-"],
    [class^="bip-home-"],
    [class*=" bip-home-"],
    .bip-header-search input,
    .bip-header-search button,
    .bip-nav-link,
    .bip-subnav,
    .bip-subnav-link,
    .bip-sidebar,
    .bip-content,
    .bip-sidebar-banner,
    .breadcrumbs,
    .page-intro,
    .page-list-item,
    .page-actions-bar .btn-page-action,
    .attachments-list a,
    .version-preview-button,
    .version-preview-dialog,
    .a11y-btn
) {
    border-radius: 0 !important;
}
