/* ---------------------------------------------------
    FSC PUBLIC PORTAL — SELF-DISCLOSURES INDEX
    Page additions on top of the shared list styles.
    Load AFTER fsc-portal.css and fsc-forms.css
    Bootstrap 5.3 | DataTables 2 | WCAG 2.1 AA
    Status colours pair text + icon (never colour only);
    text/background pairs ≥ 4.5:1, dots/borders ≥ 3:1.
----------------------------------------------------- */

:root {
    --fsc-tone-nfa-bg: #e3f3e9;
    --fsc-tone-nfa-fg: #1b6639;
    --fsc-tone-nfa-dot: #24834a;
    --fsc-tone-report-bg: #e8effa;
    --fsc-tone-report-fg: #0b3d82;
    --fsc-tone-report-dot: #2f5fa8;
}

/* ---------------------------------------------------
    Status tones specific to self-disclosures
----------------------------------------------------- */
.fsc-status--nfa {
    background-color: var(--fsc-tone-nfa-bg);
    color: var(--fsc-tone-nfa-fg);
}

.fsc-status--report {
    background-color: var(--fsc-tone-report-bg);
    color: var(--fsc-tone-report-fg);
}

.fsc-tone--nfa { background-color: var(--fsc-tone-nfa-dot); }
.fsc-tone--report { background-color: var(--fsc-tone-report-dot); }

.fsc-dtable td.fsc-col-status .fsc-status {
    white-space: nowrap;
}

/* ---------------------------------------------------
    Search card footer: dashed divider + blank-field note
----------------------------------------------------- */
.fsc-search--sd .fsc-search__foot {
    border-top: 1px dashed var(--fsc-dash);
}

.fsc-search__note {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
    color: var(--fsc-text-muted);
    font-size: .9rem;
}

    .fsc-search__note .bi {
        flex-shrink: 0;
        color: var(--fsc-navy);
    }

/* ---------------------------------------------------
    Laboratory cell: name + location line
----------------------------------------------------- */
.fsc-entity__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.fsc-entity__sub {
    margin-top: .1rem;
    color: var(--fsc-text-muted);
    font-size: .825rem;
    line-height: 1.35;
}

/* ---------------------------------------------------
    Column sizing
----------------------------------------------------- */
.fsc-dtable .fsc-col-lab { min-width: 14rem; }
.fsc-dtable .fsc-col-discipline { min-width: 11rem; }
.fsc-dtable .fsc-col-status { min-width: 10.5rem; }
.fsc-dtable .fsc-col-docs { min-width: 12rem; }

/* View (opens in a new window): icon leads the label, as in the mockup */
.fsc-btn-view .bi-box-arrow-up-right {
    font-size: .85rem;
}

/* ---------------------------------------------------
    Responsive
----------------------------------------------------- */
@media (max-width: 767.98px) {
    .fsc-search__note {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .fsc-dtable .fsc-col-lab { min-width: 0; }

    .fsc-entity {
        gap: .6rem;
    }

    .fsc-entity__avatar {
        width: 32px;
        height: 32px;
    }
}

/* ---------------------------------------------------
    Forced colours / print
----------------------------------------------------- */
@media (forced-colors: active) {
    .fsc-search--sd .fsc-search__foot {
        border-top-color: CanvasText;
    }
}

@media print {
    .fsc-search__note {
        display: none !important;
    }
}
@media (max-width: 767.98px) {
    .fsc-hero.fsc-hero--list {
        padding: 2.25rem 0 7rem;
    }
}
/* ===================================================
    SELF-DISCLOSURE — DETAILS PAGE
    Append this block to the end of self-disclosure.css.
    Load order: fsc-portal.css → fsc-forms.css → self-disclosure.css
    Bootstrap 5.3 | Bootstrap Icons | WCAG 2.1 AA
    - All text/background pairs ≥ 4.5:1; borders, markers and icons that convey state ≥ 3:1.
    - State is never colour-only: every status carries an icon and its text.
    - Status tones (--fsc-tone-*) come from fsc-forms.css, so a status looks the same
      on the index and details pages.
=================================================== */

/* ---------------------------------------------------
    Hero (detail variant)
----------------------------------------------------- */
.fsc-hero.fsc-hero--list {
    padding: 3.5rem 0 8rem;
}
.fsc-hero--detail {
    padding: 2.25rem 0 7rem;
}

    .fsc-hero--detail .fsc-hero__title {
        margin: 0;
        overflow-wrap: anywhere;
    }

    .fsc-hero--detail .fsc-hero__row {
        align-items: center;
    }

    .fsc-hero--detail .fsc-eyebrow {
        margin-bottom: .5rem;
    }

.fsc-backlink {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 36px;
    margin: 0 0 .75rem -.375rem;
    padding: .25rem .375rem;
    border-radius: var(--fsc-radius-sm, 6px);
    color: #ffffff;
    font-size: .95rem;
    font-weight: 500;
    text-decoration: none;
}

    .fsc-backlink:hover {
        color: #ffffff;
        text-decoration: underline;
        text-underline-offset: 3px;
    }

    .fsc-backlink:focus-visible {
        outline: 3px solid #ffffff;
        outline-offset: 2px;
    }

    .fsc-backlink .bi {
        transition: transform .15s ease;
    }

    .fsc-backlink:hover .bi {
        transform: translateX(-3px);
    }

/* Summary chips under the title */
.fsc-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .625rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.fsc-hero-chip {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 36px;
    padding: .35rem .9rem;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 999px;
    background-color: rgba(255, 255, 255, .06);
    color: #ffffff;
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.3;
}

    .fsc-hero-chip .fsc-svg,
    .fsc-hero-chip .bi {
        flex-shrink: 0;
        width: 1.05rem;
        height: 1.05rem;
        font-size: 1rem;
    }

/* Status chip is solid so it reads first; light tones keep ≥ 4.5:1 text */
.fsc-hero-chip--pending {
    background-color: var(--fsc-tone-pending-bg);
    border-color: var(--fsc-tone-pending-bg);
    color: var(--fsc-tone-pending-fg);
}

.fsc-hero-chip--investigation {
    background-color: var(--fsc-tone-investigation-bg);
    border-color: var(--fsc-tone-investigation-bg);
    color: var(--fsc-tone-investigation-fg);
}

.fsc-hero-chip--tabled {
    background-color: var(--fsc-tone-tabled-bg);
    border-color: var(--fsc-tone-tabled-bg);
    color: var(--fsc-tone-tabled-fg);
}

.fsc-hero-chip--dismissed {
    background-color: var(--fsc-tone-dismissed-bg);
    border-color: var(--fsc-tone-dismissed-bg);
    color: var(--fsc-tone-dismissed-fg);
}

.fsc-hero-chip--closed {
    background-color: var(--fsc-tone-closed-bg);
    border-color: var(--fsc-tone-closed-bg);
    color: var(--fsc-tone-closed-fg);
}

.fsc-hero-chip--other {
    background-color: var(--fsc-tone-other-bg);
    border-color: var(--fsc-tone-other-bg);
    color: var(--fsc-tone-other-fg);
}

.fsc-hero-chip[class*="fsc-hero-chip--"] {
    font-weight: 600;
}

/* ---------------------------------------------------
    Detail card + sections
----------------------------------------------------- */
.fsc-detail {
    background-color: #ffffff;
    border: 1px solid var(--fsc-border, #dde3ec);
    border-radius: var(--fsc-radius-lg, 16px);
    box-shadow: var(--fsc-shadow, 0 10px 30px rgba(10, 35, 80, .08));
}

.fsc-dsection {
    padding: 2rem 2.5rem;
    border-bottom: 1px solid var(--fsc-border, #dde3ec);
}

    .fsc-dsection:last-child {
        border-bottom: 0;
    }

.fsc-dsection__head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

    /* Heading text always sits beside its icon; only the count badge wraps below */
    .fsc-dsection__head > div {
        flex: 1 1 0;
        min-width: 0;
    }

.fsc-dsection__icon,
.fsc-fact__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--fsc-radius, 10px);
    background-color: var(--fsc-navy-100, #e8effa);
    color: var(--fsc-navy, #004085);
    font-size: 1.15rem;
}

.fsc-dsection__title {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.3;
}

.fsc-dsection__sub {
    margin: .1rem 0 0;
    color: var(--fsc-text-muted, #545f71);
    font-size: .95rem;
}

.fsc-count {
    flex-shrink: 0;
    padding: .25rem .8rem;
    border-radius: 999px;
    background-color: var(--fsc-navy-100, #e8effa);
    color: var(--fsc-navy-900, #002a59);
    font-size: .9rem;
    font-weight: 700;
    white-space: nowrap;
}

/* ---------------------------------------------------
    Overview facts (description list)
    24-column grid: case number / status / date in thirds,
    then laboratory 10 · discipline 7 · panel 7 (as in the mockup)
----------------------------------------------------- */
.fsc-facts {
    display: grid;
    grid-template-columns: repeat(24, minmax(0, 1fr));
    gap: 1.5rem;
    margin: 0;
}

/* dt and dd are direct children of each group <div> (valid dl); the icon sits inside
   the dt and is positioned into a left gutter */
.fsc-fact {
    grid-column: span 8;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    min-height: 92px;
    padding: 1.25rem 1.5rem;
    background-color: var(--fsc-surface-alt, #f7f9fc);
    border: 1px solid var(--fsc-border, #dde3ec);
    border-radius: var(--fsc-radius, 10px);
}

.fsc-fact--wide {
    grid-column: span 10;
    background-color: #ffffff;
}

.fsc-fact--mid {
    grid-column: span 7;
    background-color: #ffffff;
}

.fsc-fact--icon {
    padding-left: calc(1.5rem + 44px + 1rem);
}

    .fsc-fact--icon .fsc-fact__icon {
        position: absolute;
        top: 50%;
        left: 1.5rem;
        transform: translateY(-50%);
    }

.fsc-fact dt {
    margin: 0 0 .3rem;
    color: var(--fsc-text-muted, #545f71);
    font-size: .925rem;
    font-weight: 600;
}

.fsc-fact dd {
    margin: 0;
    overflow-wrap: anywhere;
}

.fsc-fact__value {
    color: var(--fsc-text, #1b2433);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
}

    .fsc-fact__value .fsc-muted {
        font-size: 1rem;
        font-weight: 500;
    }

.fsc-fact__plain {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-height: 40px;
    font-size: 1.05rem;
}

    .fsc-fact__plain .bi {
        color: var(--fsc-text-muted, #545f71);
        font-size: 1.15rem;
    }

/* Toned status icon tile */
.fsc-fact__icon--pending {
    background-color: var(--fsc-tone-pending-bg);
    color: var(--fsc-tone-pending-fg);
}

.fsc-fact__icon--investigation {
    background-color: var(--fsc-tone-investigation-bg);
    color: var(--fsc-tone-investigation-fg);
}

.fsc-fact__icon--tabled {
    background-color: var(--fsc-tone-tabled-bg);
    color: var(--fsc-tone-tabled-fg);
}

.fsc-fact__icon--dismissed {
    background-color: var(--fsc-tone-dismissed-bg);
    color: var(--fsc-tone-dismissed-fg);
}

.fsc-fact__icon--closed {
    background-color: var(--fsc-tone-closed-bg);
    color: var(--fsc-tone-closed-fg);
}

.fsc-fact__icon--other {
    background-color: var(--fsc-tone-other-bg);
    color: var(--fsc-tone-other-fg);
}

.fsc-status--lg {
    padding: .25rem .75rem;
    font-size: .95rem;
}

/* Laboratory */
.fsc-detail .fsc-entity {
    gap: 1rem;
}

.fsc-detail .fsc-entity__avatar {
    width: 48px;
    height: 48px;
    font-size: .95rem;
}

.fsc-entity__text {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    flex: 1 1 auto;
    min-width: 0;
}

.fsc-entity__link,
.fsc-detail .fsc-entity__name {
    color: var(--fsc-navy, #004085);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.35;
}

/* Name left, arrow pushed to the card's right edge (mockup) */
.fsc-entity__link {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    padding: .125rem 0;
    border-radius: 4px;
    text-decoration: none;
}

    .fsc-entity__link > span {
        text-decoration: underline;
        text-decoration-color: rgba(0, 64, 133, .45);
        text-underline-offset: 4px;
    }

    .fsc-entity__link .bi {
        flex-shrink: 0;
        margin-top: .2rem;
        transition: transform .15s ease;
    }

    .fsc-entity__link:hover {
        color: var(--fsc-navy-900, #002a59);
    }

        .fsc-entity__link:hover > span {
            text-decoration-color: currentColor;
        }

        .fsc-entity__link:hover .bi {
            transform: translateX(3px);
        }

    .fsc-entity__link:focus-visible {
        outline: 3px solid var(--fsc-focus-light, #4c9aff);
        outline-offset: 3px;
    }

.fsc-entity__alias {
    color: var(--fsc-text-muted, #545f71);
    font-size: .9rem;
}

/* Discipline tags (with icon) */
.fsc-tag--icon {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .35rem .75rem;
    background-color: var(--fsc-navy-100, #e8effa);
    color: var(--fsc-navy-900, #002a59);
    font-size: 1rem;
    font-weight: 500;
}

    .fsc-tag--icon .fsc-svg {
        flex-shrink: 0;
        width: 1.1rem;
        height: 1.1rem;
    }

/* ---------------------------------------------------
    Review progress (ordered list, aria-current="step")
----------------------------------------------------- */
.fsc-progress {
    --marker: 44px;
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fsc-progress__step {
    position: relative;
    display: flex;
    align-items: center;
    gap: .9rem;
    flex: 1 1 0;
    min-width: 0;
    padding-right: 1.5rem;
}

    .fsc-progress__step:last-child {
        flex: 0 1 auto;
        padding-right: 0;
    }

    /* Connector line after each step (except last) */
    .fsc-progress__step:not(:last-child)::after {
        content: "";
        flex: 1 1 auto;
        min-width: 1.5rem;
        height: 2px;
        margin-left: .75rem;
        background-color: #c3cad6;
        border-radius: 2px;
    }

    .fsc-progress__step.is-done:not(:last-child)::after {
        background-color: var(--fsc-navy, #004085);
        opacity: .45;
    }

.fsc-progress__marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--marker);
    height: var(--marker);
    border: 2px solid #8d97a8;
    border-radius: 50%;
    background-color: #ffffff;
    color: var(--fsc-text-muted, #545f71);
    font-weight: 700;
}

.is-done .fsc-progress__marker {
    background-color: var(--fsc-navy, #004085);
    border-color: var(--fsc-navy, #004085);
    color: #ffffff;
}

.is-current .fsc-progress__marker {
    border-color: var(--fsc-navy, #004085);
    color: var(--fsc-navy, #004085);
    box-shadow: 0 0 0 5px var(--fsc-navy-100, #e8effa);
}

.fsc-progress__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.fsc-progress__title {
    color: var(--fsc-text, #1b2433);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.3;
}

.is-todo .fsc-progress__title {
    color: var(--fsc-text-muted, #545f71);
}

.fsc-progress__detail {
    color: var(--fsc-text-muted, #545f71);
    font-size: .95rem;
}

/* Final step takes the status tone (marker fill + soft ring) */
.is-final .fsc-progress__marker {
    box-shadow: 0 0 0 5px var(--final-ring, #d6e2f4);
}

.is-final.fsc-progress__step--closed {
    --final-ring: #c6e6d2;
}

.is-final.fsc-progress__step--dismissed {
    --final-ring: #f6d3cf;
}

.is-final.fsc-progress__step--other {
    --final-ring: #d6e2f4;
}

.is-final.fsc-progress__step--closed .fsc-progress__marker {
    background-color: var(--fsc-tone-closed-fg);
    border-color: var(--fsc-tone-closed-fg);
}

.is-final.fsc-progress__step--dismissed .fsc-progress__marker {
    background-color: var(--fsc-tone-dismissed-fg);
    border-color: var(--fsc-tone-dismissed-fg);
}

.is-final.fsc-progress__step--other .fsc-progress__marker {
    background-color: var(--fsc-navy, #004085);
    border-color: var(--fsc-navy, #004085);
}

/* Previous statuses */
.fsc-history {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px dashed var(--fsc-border, #dde3ec);
}

.fsc-history__title {
    margin: 0 0 .75rem;
    color: var(--fsc-text-muted, #545f71);
    font-size: .95rem;
    font-weight: 700;
}

.fsc-history__list {
    display: grid;
    gap: .6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

    .fsc-history__list li {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .4rem .75rem;
    }

.fsc-history__date {
    color: var(--fsc-text, #1b2433);
    font-size: .925rem;
    font-weight: 600;
}

.fsc-history__panel {
    color: var(--fsc-text-muted, #545f71);
    font-size: .925rem;
}

/* ---------------------------------------------------
    Document table
----------------------------------------------------- */
.fsc-docs {
    border: 1px solid var(--fsc-border, #dde3ec);
    border-radius: var(--fsc-radius, 10px);
    overflow: hidden;
}

.fsc-docs__table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

    .fsc-docs__table thead th {
        padding: .9rem 1.5rem;
        background-color: var(--fsc-surface-alt, #f7f9fc);
        border-bottom: 1px solid var(--fsc-border, #dde3ec);
        color: var(--fsc-text, #1b2433);
        font-size: .9rem;
        font-weight: 700;
        text-align: left;
    }

    .fsc-docs__table tbody > tr > * {
        padding: 1rem 1.5rem;
        border-bottom: 1px solid var(--fsc-row-divider, #e7ebf1);
        font-size: 1rem;
        font-weight: 400;
        text-align: left;
        vertical-align: middle;
    }

    .fsc-docs__table tbody > tr:last-child > * {
        border-bottom: 0;
    }

    .fsc-docs__table tbody > tr:hover > * {
        background-color: var(--fsc-surface-alt, #f7f9fc);
    }

.fsc-docs__name {
    width: 40%;
}

    .fsc-docs__name > * {
        vertical-align: middle;
    }

    .fsc-docs__name a {
        color: var(--fsc-navy, #004085);
        font-weight: 600;
        text-decoration: underline;
        text-decoration-color: rgba(0, 64, 133, .45);
        text-underline-offset: 4px;
        overflow-wrap: anywhere;
    }

        .fsc-docs__name a:hover {
            color: var(--fsc-navy-900, #002a59);
            text-decoration-color: currentColor;
        }

        .fsc-docs__name a:focus-visible {
            outline: 3px solid var(--fsc-focus-light, #4c9aff);
            outline-offset: 2px;
            border-radius: 4px;
        }

.fsc-docs__fileicon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    margin-right: .9rem;
    border-radius: var(--fsc-radius-sm, 8px);
    background-color: var(--fsc-navy-100, #e8effa);
    color: var(--fsc-navy, #004085);
    font-size: 1.1rem;
}

.fsc-docs__fileicon--pdf {
    background-color: var(--fsc-tone-dismissed-bg, #fdecea);
    color: var(--fsc-tone-dismissed-fg, #a11d14);
}

.fsc-docs__fileicon--word {
    background-color: var(--fsc-tone-other-bg, #e8effa);
    color: var(--fsc-tone-other-fg, #0b3d82);
}

.fsc-docs__fileicon--sheet {
    background-color: var(--fsc-tone-closed-bg, #e3f3e9);
    color: var(--fsc-tone-closed-fg, #1b6639);
}

.fsc-docs__date {
    white-space: nowrap;
}

    .fsc-docs__date .bi {
        margin-right: .4rem;
        color: var(--fsc-text-muted, #545f71);
    }

.fsc-docs__type abbr {
    text-decoration: none;
    cursor: help;
}

.fsc-docs__actions {
    text-align: right !important;
    white-space: nowrap;
}

.fsc-docs__label {
    display: none;
}

.fsc-btn-doc {
    --bs-btn-padding-x: 1rem;
    --bs-btn-padding-y: .45rem;
    --bs-btn-font-size: .95rem;
    --bs-btn-font-weight: 600;
    --bs-btn-color: var(--fsc-navy, #004085);
    --bs-btn-bg: #ffffff;
    --bs-btn-border-color: var(--fsc-border-input, #8d97a8);
    --bs-btn-hover-color: var(--fsc-navy, #004085);
    --bs-btn-hover-bg: var(--fsc-navy-100, #e8effa);
    --bs-btn-hover-border-color: var(--fsc-navy, #004085);
    --bs-btn-active-color: var(--fsc-navy-900, #002a59);
    --bs-btn-active-bg: #d6e2f4;
    --bs-btn-active-border-color: var(--fsc-navy, #004085);
    --bs-btn-border-radius: 8px;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 40px;
}

    .fsc-btn-doc + .fsc-btn-doc {
        margin-left: .5rem;
    }

    .fsc-btn-doc:focus-visible {
        outline: 3px solid var(--fsc-focus-light, #4c9aff);
        outline-offset: 2px;
        box-shadow: none;
    }

/* Empty state (images/self-disclosure-docs-empty.svg) */
.fsc-docs-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 2rem 1rem;
    border: 1.5px dashed var(--fsc-dash, #aeb7c5);
    border-radius: var(--fsc-radius, 10px);
    text-align: center;
}

    .fsc-docs-empty p {
        margin: 0;
        color: var(--fsc-text-muted, #545f71);
    }

/* ---------------------------------------------------
    Responsive
----------------------------------------------------- */
@media (max-width: 1199.98px) {
    /* Facts: the three key tiles stay in thirds; laboratory gets its own row,
       discipline + panel share the next */
    .fsc-fact--wide {
        grid-column: span 24;
    }

    .fsc-fact--mid {
        grid-column: span 12;
    }
}

@media (max-width: 991.98px) {
    .fsc-dsection {
        padding: 1.75rem 1.5rem;
    }

    .fsc-hero--detail .fsc-hero__actions {
        width: auto;
    }

    /* Progress: vertical list with a connector between markers */
    .fsc-progress {
        flex-direction: column;
        gap: 0;
    }

    .fsc-progress__step {
        align-items: flex-start;
        padding: 0 0 1.5rem;
    }

        .fsc-progress__step:last-child {
            padding-bottom: 0;
        }

        .fsc-progress__step:not(:last-child)::after {
            position: absolute;
            top: calc(var(--marker) + .375rem);
            bottom: .375rem;
            left: calc(var(--marker) / 2 - 1px);
            width: 2px;
            height: auto;
            min-width: 0;
            margin: 0;
        }

    .fsc-progress__text {
        padding-top: .45rem;
    }

    /* Document rows become stacked cards; ARIA roles on the markup keep table semantics */
    .fsc-docs {
        border: 0;
        border-radius: 0;
        overflow: visible;
    }

    .fsc-docs__table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
    }

    .fsc-docs__table,
    .fsc-docs__table tbody {
        display: block;
    }

        .fsc-docs__table tbody > tr {
            display: grid;
            grid-template-columns: auto 1fr;
            gap: .5rem 1.5rem;
            margin-bottom: 1rem;
            padding: 1rem 1.1rem;
            border: 1px solid var(--fsc-border, #dde3ec);
            border-radius: var(--fsc-radius, 10px);
        }

            .fsc-docs__table tbody > tr:last-child {
                margin-bottom: 0;
            }

            .fsc-docs__table tbody > tr > * {
                display: block;
                padding: 0;
                border: 0;
            }

            .fsc-docs__table tbody > tr:hover > * {
                background-color: transparent;
            }

    .fsc-docs__name {
        grid-column: 1 / -1;
        display: flex !important;
        align-items: center;
        width: auto;
    }

    .fsc-docs__label {
        display: block;
        margin-bottom: .1rem;
        color: var(--fsc-text-muted, #545f71);
        font-size: .8rem;
        font-weight: 700;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .fsc-docs__actions {
        grid-column: 1 / -1;
        display: flex !important;
        gap: .5rem;
        margin-top: .5rem;
        text-align: left !important;
    }

        .fsc-docs__actions .fsc-btn-doc {
            flex: 1 1 0;
            justify-content: center;
        }

    .fsc-btn-doc + .fsc-btn-doc {
        margin-left: 0;
    }
}

@media (max-width: 767.98px) {
    .fsc-hero--detail {
        padding: 1.5rem 0 6rem;
    }

        .fsc-hero--detail .fsc-hero__actions,
        .fsc-hero--detail .fsc-hero__actions > .btn {
            width: 100%;
            justify-content: center;
        }

    .fsc-hero-meta {
        gap: .5rem;
        margin-top: 1.1rem;
    }

    .fsc-hero-chip {
        font-size: .9rem;
    }

    .fsc-dsection {
        padding: 1.5rem 1rem;
    }

    .fsc-dsection__head {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: .75rem;
        margin-bottom: 1.25rem;
    }

    .fsc-dsection__icon {
        width: 40px;
        height: 40px;
    }

    .fsc-dsection__title {
        font-size: 1.15rem;
    }

    /* Text fills the row beside the icon, which pushes the count badge onto its own line */
    .fsc-dsection__head > div {
        flex-basis: calc(100% - 40px - .75rem);
    }

    .fsc-count {
        margin-left: calc(40px + .75rem);
    }

    .fsc-facts {
        gap: .875rem;
    }

    .fsc-fact,
    .fsc-fact--wide,
    .fsc-fact--mid {
        grid-column: 1 / -1;
    }

    .fsc-fact {
        min-height: 0;
        padding: 1rem;
    }

    .fsc-fact--icon {
        padding-left: calc(1rem + 44px + .875rem);
    }

        .fsc-fact--icon .fsc-fact__icon {
            left: 1rem;
        }
}

@media (max-width: 575.98px) {
    .fsc-detail .fsc-entity__avatar {
        width: 40px;
        height: 40px;
        font-size: .85rem;
    }

    /* Docs: stacked Date / Type side by side, buttons full width */
    .fsc-docs__table tbody > tr {
        padding: .875rem;
    }
}

/* 320px / 400% zoom (WCAG 1.4.10 Reflow): buttons stack, nothing scrolls sideways */
@media (max-width: 359.98px) {
    .fsc-docs__actions {
        flex-direction: column;
    }

    .fsc-hero-chip {
        max-width: 100%;
    }
}

/* ---------------------------------------------------
    Preferences & modes
----------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .fsc-backlink .bi,
    .fsc-entity__link .bi {
        transition: none;
    }
}

@media (forced-colors: active) {
    .fsc-hero-chip,
    .fsc-count,
    .fsc-dsection__icon,
    .fsc-fact__icon,
    .fsc-docs__fileicon,
    .fsc-tag--icon {
        border: 1px solid CanvasText;
    }

    .fsc-progress__marker {
        forced-color-adjust: none;
        border-color: CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }

    .is-done .fsc-progress__marker,
    .is-final .fsc-progress__marker {
        background-color: Highlight;
        border-color: Highlight;
        color: HighlightText;
    }

    .fsc-progress__step:not(:last-child)::after {
        background-color: CanvasText;
        opacity: 1;
    }
}

/* Export to PDF uses the browser's print → Save as PDF */
@media print {
    .fsc-header,
    .fsc-footer,
    .fsc-backlink,
    .fsc-hero__actions,
    .fsc-docs__actions,
    .fsc-skip {
        display: none !important;
    }

    .fsc-hero--detail {
        padding: 0 0 1rem;
        background: none !important;
        color: #000000;
    }

        .fsc-hero--detail .fsc-hero__title,
        .fsc-hero--detail .fsc-eyebrow {
            color: #000000 !important;
        }

    .fsc-hero-chip {
        border-color: #666666;
        color: #000000;
    }

    .fsc-main__body--overlap {
        margin-top: 0 !important;
    }

    .fsc-detail {
        border: 0;
        box-shadow: none;
    }

    .fsc-dsection {
        padding: 1rem 0;
        break-inside: avoid;
    }

    .fsc-docs__name a::after {
        content: " (" attr(href) ")";
        color: #444444;
        font-size: .8rem;
        font-weight: 400;
    }

    * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}