/* The character jacket — the citizen dashboard's file dress.
   Global rather than scoped on purpose: the jacket composes RenderFragment markup (field rows,
   inserts, mounted door cards), and a scoped .razor.css never reaches markup that arrives that
   way. Values follow the design's own measures; colour comes from the civic tokens so the sheet
   moves with the theme instead of pinning a second palette. */

.muni-jacket {
    position: relative;
    margin-top: var(--muni-space-4);
    --muni-jacket-rule: var(--mud-palette-divider);
}

/* A filled control needs a deeper green than the civic accent. --muni-green is #4a7c3f, and the
   paper text on it measures 4.14:1 -- under AA for the 10px type these buttons use, so the label
   would ship legible-looking and not actually legible. Derived from the same token rather than
   pinned to a hex, so it still moves with the theme. */
:root {
    --muni-jacket-green-deep: color-mix(in srgb, var(--muni-green) 74%, #0A1A0C);
}

/* ───────── index tabs. A sibling character is a sheet BEHIND this one, never another button. */
.muni-jacket__tabs {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    padding-left: 22px;
    position: relative;
    z-index: 3;
}

.muni-jacket__tab {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 15px 8px;
    background: var(--muni-paper-edge);
    border: 1px solid var(--muni-jacket-rule);
    border-bottom: 0;
    font-family: var(--muni-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    position: relative;
    top: 3px;
    cursor: pointer;
    box-shadow: inset 0 -6px 8px -6px rgba(26, 26, 26, .18);
}

/* The open tab is joined to the sheet: same stock, and its bottom border is painted out so the
   two read as one piece of paper rather than a tab sitting on a panel. */
.muni-jacket__tab--open {
    background: var(--muni-paper-soft);
    border-color: var(--muni-ink);
    border-bottom: 1px solid var(--muni-paper-soft);
    color: var(--muni-ink);
    top: 0;
    padding: 9px 17px;
    margin-bottom: -1px;
    z-index: 4;
    box-shadow: none;
    cursor: default;
}

.muni-jacket__tab:focus-visible {
    outline: 2px dashed var(--muni-ink);
    outline-offset: 2px;
}

.muni-jacket__tab-portrait {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    background: var(--muni-paper-edge);
    border: 1px solid var(--muni-ink);
    filter: grayscale(.5) contrast(.8);
}

.muni-jacket__tab--open .muni-jacket__tab-portrait {
    filter: none;
}

.muni-jacket__tab-star {
    color: var(--muni-brass);
}

/* A pip on a closed tab: that file has something waiting on it. Scoped to pending endorsement
   only -- the pending walk already happens per character, so it costs nothing, where a health or
   on-shift pip would each need another per-character load. */
.muni-jacket__tab-pip {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border-radius: 50%;
    background: var(--muni-stamp);
}

.muni-jacket__tab--add {
    margin-left: auto;
    background: transparent;
    border-style: dashed;
    color: var(--muni-green);
    top: 3px;
}

.muni-jacket__tab-glyph {
    font-size: 11px;
}

/* Past a handful of files the names truncate; the rail never wraps, never scrolls and never
   becomes a dropdown. */
.muni-jacket__tabs--many {
    padding-right: 22px;
}

.muni-jacket__tabs--many .muni-jacket__tab {
    padding: 7px 11px 8px;
    gap: 6px;
    min-width: 0;
}

.muni-jacket__tabs--many .muni-jacket__tab-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 108px;
}

.muni-jacket__tabs--many .muni-jacket__tab--open {
    padding: 9px 13px;
}

/* The add tab shrinks to its glyph but keeps its position. */
.muni-jacket__tabs--many .muni-jacket__tab-label--add {
    display: none;
}

.muni-jacket__tab--index {
    background: var(--muni-paper-soft);
    border-color: var(--muni-ink);
    border-style: dashed;
    color: var(--muni-ink);
    gap: 6px;
}

.muni-jacket__tab-count {
    color: var(--muni-stamp);
}

/* ───────── the contents sheet. A different object from the rail, which is why it holds thirty
   files where a tab rail cannot hold eight. */
.muni-jacket__index {
    border: 1px solid var(--muni-ink);
    background: var(--muni-paper);
    margin-top: -1px;
    position: relative;
    z-index: 1;
}

.muni-jacket__index-head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 8px 22px;
    border-bottom: 1px solid var(--muni-ink);
    background: var(--muni-paper-soft);
    font-family: var(--muni-mono);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 1.7px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
}

.muni-jacket__index-spacer {
    flex: 1;
}

.muni-jacket__index-search {
    padding: 10px 22px 4px;
}

.muni-jacket__index-find {
    width: 100%;
    padding: 7px 10px;
    border: 1px solid var(--muni-jacket-rule);
    background: var(--muni-paper-soft);
    font-family: var(--muni-mono);
    font-size: 9px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--muni-ink);
}

.muni-jacket__index-rows {
    padding: 6px 22px 14px;
}

.muni-jacket__index-row {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 7px 0;
    border-bottom: 1px dotted var(--muni-hair);
}

.muni-jacket__index-row:last-child {
    border-bottom: 0;
}

.muni-jacket__index-portrait {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border: 1px solid var(--muni-ink);
    background: var(--muni-paper-edge);
}

.muni-jacket__index-name {
    font-family: var(--muni-serif);
    font-size: 14px;
    font-weight: 700;
}

.muni-jacket__index-role {
    font-family: var(--muni-mono);
    font-size: 8px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
}

.muni-jacket__index-flags {
    margin-left: auto;
    display: flex;
    gap: 9px;
    align-items: center;
    font-family: var(--muni-mono);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.muni-jacket__index-star {
    color: var(--muni-brass);
}

.muni-jacket__index-waiting {
    color: var(--muni-stamp);
}

.muni-jacket__index-open {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    color: var(--muni-green);
    cursor: pointer;
}

/* ───────── the sheet */
.muni-jacket__sheet {
    border: 1px solid var(--muni-ink);
    background: var(--muni-paper);
    position: relative;
    z-index: 2;
    box-shadow:
        0 1px 0 var(--muni-paper-edge),
        3px 4px 0 -1px rgba(26, 26, 26, .07),
        6px 8px 0 -2px rgba(26, 26, 26, .05);
}

.muni-jacket__head {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 7px 22px;
    border-bottom: 1px solid var(--muni-ink);
    background: var(--muni-paper-soft);
    font-family: var(--muni-mono);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 1.7px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
}

.muni-jacket__head-strong {
    color: var(--muni-ink);
}

.muni-jacket__head-spacer {
    flex: 1;
}

/* The designation slot: one slot, two readings. Held is a mark and inert; not-held is the only
   control on the page that moves the star. */
.muni-jacket__designation {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    margin: -3px 0 -3px 4px;
    font: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
}

.muni-jacket__designation--held {
    color: var(--muni-brass);
    border: 1px solid var(--muni-brass);
    background: var(--muni-brass-soft);
}

.muni-jacket__designation--offer {
    color: var(--muni-green);
    border: 1px dashed var(--muni-green);
    background: var(--muni-green-soft);
    cursor: pointer;
}

.muni-jacket__designation--offer:hover:not(:disabled) {
    background: var(--muni-green);
    color: var(--muni-paper);
    border-style: solid;
}

.muni-jacket__designation--offer:disabled {
    opacity: .55;
    cursor: default;
}

.muni-jacket__body {
    display: flex;
}

.muni-jacket__main {
    flex: 1;
    min-width: 0;
}

/* ───────── section rules. A numeral, an italic serif title and a hairline — not a boxed header,
   which would be another card on a page whose whole diagnosis was too many cards. */
.muni-jacket__srule {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 0 26px;
    margin: 22px 0 13px;
}

.muni-jacket__srule-no {
    font-family: var(--muni-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2.4px;
    color: var(--muni-brass);
    flex: 0 0 auto;
}

.muni-jacket__srule-title {
    font-family: var(--muni-serif);
    font-size: 16px;
    font-weight: 700;
    font-style: italic;
    margin: 0;
    flex: 0 0 auto;
}

.muni-jacket__srule-line {
    flex: 1;
    border-bottom: 1px solid var(--muni-ink);
    transform: translateY(-1px);
}

.muni-jacket__srule-meta {
    font-family: var(--muni-mono);
    font-size: 8.5px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    flex: 0 0 auto;
}

/* ───────── §I personnel record */
.muni-jacket__record {
    display: flex;
    gap: 26px;
    padding: 24px 26px 6px;
    position: relative;
}

.muni-jacket__photo {
    width: 176px;
    flex: 0 0 176px;
    position: relative;
}

.muni-jacket__plate {
    display: block;
    width: 176px;
    height: 216px;
    object-fit: cover;
    border: 1px solid var(--muni-ink);
    background: var(--muni-paper-edge);
}

.muni-jacket__plate--none {
    background: var(--muni-paper-soft);
    border-style: dashed;
    border-color: var(--muni-jacket-rule);
    display: grid;
    place-items: center;
    text-align: center;
    font-family: var(--muni-mono);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    line-height: 1.7;
}

/* Photo corners — the portrait is MOUNTED, not bleeding. */
.muni-jacket__corner {
    position: absolute;
    width: 0;
    height: 0;
    border: 11px solid transparent;
}

.muni-jacket__corner--tl {
    top: -1px;
    left: -1px;
    border-top-color: var(--muni-ink-soft);
    border-left-color: var(--muni-ink-soft);
}

.muni-jacket__corner--tr {
    top: -1px;
    right: -1px;
    border-top-color: var(--muni-ink-soft);
    border-right-color: var(--muni-ink-soft);
}

.muni-jacket__corner--bl {
    top: 195px;
    left: -1px;
    border-bottom-color: var(--muni-ink-soft);
    border-left-color: var(--muni-ink-soft);
}

.muni-jacket__corner--br {
    top: 195px;
    right: -1px;
    border-bottom-color: var(--muni-ink-soft);
    border-right-color: var(--muni-ink-soft);
}

.muni-jacket__photo-caption {
    padding: 6px 0 0;
    font-family: var(--muni-mono);
    font-size: 8px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    line-height: 1.6;
}

.muni-jacket__photo-caption b {
    display: block;
    color: var(--muni-ink-soft);
    font-size: 8.5px;
}

/* The stamp. Struck over the print, its fill is the INK at low alpha rather than paper, so the
   portrait still reads through the impression. Mounted inside the photo column so it can never
   land on the field rows' right-aligned actions. */
.muni-jacket__stamp {
    position: absolute;
    top: 150px;
    left: 4px;
    z-index: 5;
    display: inline-block;
    font-family: var(--muni-mono);
    font-weight: 700;
    text-transform: uppercase;
    padding: 5px 11px 4px;
    letter-spacing: 3px;
    font-size: 12px;
    line-height: 1;
    border: 2px solid;
}

.muni-jacket__stamp small {
    display: block;
    font-size: 7px;
    letter-spacing: 1.4px;
    margin-top: 3px;
    opacity: .85;
    font-weight: 400;
}

.muni-jacket__stamp--verified {
    color: #1E7A46;
    border-color: #1E7A46;
    background: rgba(30, 122, 70, .18);
    transform: rotate(-6.5deg);
}

.muni-jacket__stamp--pending {
    color: #8A5A0C;
    border-color: #8A5A0C;
    border-style: dashed;
    background: rgba(219, 149, 38, .20);
    transform: rotate(-4.5deg);
}

/* The absence of an endorsement IS the mark — an empty impression, never a banner. */
.muni-jacket__stamp--void {
    color: #A83A22;
    border-color: #A83A22;
    border-style: dashed;
    background: rgba(217, 85, 63, .17);
    transform: rotate(-3deg);
}

.muni-jacket__recordbody {
    flex: 1;
    min-width: 0;
    padding-top: 2px;
}

.muni-jacket__kicker {
    font-family: var(--muni-mono);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: var(--muni-brass);
}

.muni-jacket__name {
    font-family: var(--muni-serif);
    font-size: 32px;
    font-weight: 700;
    margin: 3px 0 0;
    line-height: 1.06;
    letter-spacing: -.4px;
}

.muni-jacket__legal {
    font-family: var(--muni-mono);
    font-size: 10px;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    margin-top: 6px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--muni-ink);
}

/* ───────── §II / §III slots */
.muni-jacket__rail {
    padding: 0 26px;
}

.muni-jacket__insert-slot {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 0 26px;
}

.muni-jacket__handnote-slot {
    padding-top: 4px;
}

.muni-jacket__handnote {
    font-family: var(--muni-serif);
    font-style: italic;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--muni-ink-soft);
    margin: 0;
}

.muni-jacket__handnote a {
    color: var(--muni-green);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.muni-jacket__quiet {
    font-family: var(--muni-serif);
    font-style: italic;
    font-size: 13px;
    color: var(--muni-ink-mute);
    margin: 0;
    padding: 0 26px;
}

.muni-insert .muni-jacket__quiet,
.muni-insert .muni-jacket__handnote {
    padding: 0;
}

/* ───────── sign-off foot */
.muni-jacket__foot {
    display: flex;
    align-items: flex-end;
    gap: 20px;
    margin: 24px 26px 0;
    padding: 12px 0 16px;
    border-top: 1px solid var(--muni-ink);
}

.muni-jacket__signature {
    flex: 1;
}

.muni-jacket__signature-line {
    border-bottom: 1px solid var(--muni-ink-soft);
    height: 26px;
}

.muni-jacket__signature-caption {
    font-family: var(--muni-mono);
    font-size: 7.5px;
    font-weight: 700;
    letter-spacing: 1.7px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    padding-top: 4px;
}

.muni-jacket__filed {
    text-align: right;
    font-family: var(--muni-mono);
    font-size: 8px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    line-height: 1.8;
}

.muni-jacket__filed b {
    color: var(--muni-ink-soft);
}

/* ───────── the docket margin. Annotations down the edge, separated by rules rather than cards.
   A block with no data is ABSENT, not zeroed. */
.muni-jacket__docket {
    width: 272px;
    flex: 0 0 272px;
    border-left: 1px solid var(--muni-ink);
    background: linear-gradient(90deg, rgba(26, 26, 26, .045), transparent 22px);
}

.muni-jacket__docket-block {
    padding: 14px 18px 15px 22px;
    border-bottom: 1px solid var(--muni-jacket-rule);
}

.muni-jacket__docket-block:last-child {
    border-bottom: 0;
}

.muni-jacket__docket-head {
    display: flex;
    font-family: var(--muni-mono);
    font-size: 7.5px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    margin-bottom: 8px;
}

.muni-jacket__docket-head span {
    margin-left: auto;
    color: var(--muni-brass);
}

.muni-jacket__docket-weather {
    display: flex;
    align-items: baseline;
    gap: 9px;
}

.muni-jacket__docket-temp {
    font-family: var(--muni-serif);
    font-size: 23px;
    font-weight: 700;
    line-height: 1;
}

.muni-jacket__docket-desc {
    font-family: var(--muni-serif);
    font-style: italic;
    font-size: 12px;
    color: var(--muni-ink-mute);
}

.muni-jacket__docket-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-family: var(--muni-mono);
    font-size: 8.5px;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    margin-top: 6px;
}

.muni-jacket__docket-row b {
    margin-left: auto;
    color: var(--muni-ink-soft);
}

.muni-jacket__docket-figure {
    font-family: var(--muni-serif);
    font-size: 21px;
    font-weight: 700;
    color: var(--muni-stamp);
    line-height: 1;
}

.muni-jacket__docket-figure small {
    font-family: var(--muni-mono);
    font-size: 11px;
    font-weight: 400;
    color: var(--muni-ink-mute);
}

.muni-jacket__docket-note {
    margin-top: 8px;
    font-family: var(--muni-mono);
    font-size: 7.5px;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
}

.muni-jacket__docket-handle {
    font-family: var(--muni-serif);
    font-size: 15px;
    font-weight: 700;
    color: var(--muni-green);
}

.muni-jacket__docket-link,
.muni-jacket__docket-action {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 9px;
    background: none;
    border: 0;
    padding: 0;
    font-family: var(--muni-mono);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--muni-green);
    text-decoration: none;
    cursor: pointer;
}

.muni-jacket__docket-link:hover,
.muni-jacket__docket-action:hover {
    color: var(--muni-brass);
}

.muni-jacket__docket-glyph {
    color: var(--muni-brass);
    width: 13px;
}

.muni-jacket__docket-sibling {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 6px 0;
    border-bottom: 1px dotted var(--muni-hair);
}

.muni-jacket__docket-sibling:last-of-type {
    border-bottom: 0;
}

.muni-jacket__docket-portrait {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border: 1px solid var(--muni-ink);
    background: var(--muni-paper-edge);
}

.muni-jacket__docket-who {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.muni-jacket__docket-name {
    font-family: var(--muni-serif);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
}

.muni-jacket__docket-role {
    font-family: var(--muni-mono);
    font-size: 7.5px;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
    margin-top: 2px;
}

.muni-jacket__docket-open {
    margin-left: auto;
    flex: 0 0 auto;
    background: none;
    border: 0;
    padding: 0;
    font-family: var(--muni-mono);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: var(--muni-green);
    cursor: pointer;
}

/* ───────── the endorsement slip. The input is the loudest thing on it, deliberately: in the
   panel this replaces it was row 10 of 11, styled identically to every other ledger row, which is
   most of why nobody could find it. */
.muni-endorsement__prose {
    font-size: 13px;
    line-height: 1.6;
    color: #4A3A20;
    margin: 0 0 12px;
}

.muni-endorsement__prose--quiet {
    font-style: italic;
    color: #7A5C2E;
}

.muni-endorsement__steps {
    margin: 8px 0 0;
    padding-left: 19px;
    font-family: var(--muni-serif);
    font-size: 13px;
    line-height: 1.65;
    color: #4A3A20;
}

.muni-endorsement__step {
    margin-bottom: 12px;
}

.muni-endorsement__step b {
    display: block;
    font-size: 14.5px;
}

.muni-endorsement__step--done {
    opacity: .75;
}

.muni-endorsement__stepnote {
    display: block;
    font-family: var(--muni-sans);
    font-size: 12.5px;
    color: #5C4726;
    margin-top: 2px;
}

.muni-endorsement__namerow {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}

.muni-endorsement__hint {
    font-family: var(--muni-mono);
    font-size: 8px;
    letter-spacing: 1.3px;
    text-transform: uppercase;
    color: #7A5C2E;
    font-style: normal;
}

.muni-endorsement__box {
    display: flex;
    margin-top: 9px;
    max-width: 420px;
}

.muni-endorsement__input {
    flex: 1;
    min-width: 0;
    padding: 11px 13px;
    border: 2px solid var(--muni-green);
    border-right: 0;
    background: var(--muni-paper);
    font-family: var(--muni-mono);
    font-size: 17px;
    letter-spacing: 5px;
    color: var(--muni-ink);
}

.muni-endorsement__input::placeholder {
    font-size: 12px;
    letter-spacing: 1.4px;
    color: var(--muni-ink-mute);
}

.muni-endorsement__submit {
    flex: 0 0 auto;
    padding: 0 18px;
    border: 2px solid var(--muni-jacket-green-deep);
    background: var(--muni-jacket-green-deep);
    color: var(--muni-paper);
    font-family: var(--muni-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    cursor: pointer;
}

.muni-endorsement__submit:disabled {
    opacity: .5;
    cursor: default;
}

.muni-endorsement__expiry {
    display: block;
    margin-top: 6px;
    font-family: var(--muni-mono);
    font-size: 8.5px;
    letter-spacing: 1.3px;
    text-transform: uppercase;
    color: #7A5C2E;
}

/* ───────── the blank application: no file yet, so the page IS the form rather than a jacket. */
.muni-blankfile {
    border: 1px solid var(--muni-ink);
    background: var(--muni-paper);
    position: relative;
    box-shadow: 3px 4px 0 -1px rgba(26, 26, 26, .07);
}

.muni-blankfile__head {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 7px 26px;
    border-bottom: 1px solid var(--muni-ink);
    background: var(--muni-paper-soft);
    font-family: var(--muni-mono);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 1.7px;
    text-transform: uppercase;
    color: var(--muni-ink-mute);
}

.muni-blankfile__head b {
    color: var(--muni-ink);
}

.muni-blankfile__head-spacer {
    flex: 1;
}

.muni-blankfile__body {
    padding: 26px 30px 28px;
    max-width: 760px;
}

.muni-blankfile__title {
    font-family: var(--muni-serif);
    font-size: 30px;
    font-weight: 700;
    margin: 0;
    line-height: 1.1;
}

.muni-blankfile__lede {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--muni-ink-soft);
    margin: 9px 0 0;
}

/* The four entitlements as ruled lines with an unticked box each — a form waiting to be filled
   in, which is what the state actually is. */
.muni-blankfile__entitlements {
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--muni-ink);
}

.muni-blankfile__entitlements li {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 8px 0 7px;
    border-bottom: 1px dotted var(--muni-hair);
    font-size: 13.5px;
}

.muni-blankfile__sec {
    font-family: var(--muni-mono);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 1.6px;
    color: var(--muni-brass);
    flex: 0 0 26px;
}

.muni-blankfile__box {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
    border: 1px solid var(--muni-jacket-rule);
    margin-left: auto;
}

.muni-blankfile__cta {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 20px;
    padding: 9px 16px;
    background: var(--muni-jacket-green-deep);
    color: var(--muni-paper);
    border: 1px solid var(--muni-ink);
    font-family: var(--muni-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

.muni-blankfile__cta:hover {
    background: var(--muni-ink);
}

/* ───────── narrow. The docket has no second column to sit in, so it becomes a band under the
   sheet rather than a squeezed rail. */
@media (max-width: 1100px) {
    .muni-jacket__body {
        flex-direction: column;
    }

    .muni-jacket__docket {
        width: auto;
        flex: 1 1 auto;
        border-left: 0;
        border-top: 1px solid var(--muni-ink);
        background: none;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }

    .muni-jacket__docket-block {
        border-bottom: 1px solid var(--muni-jacket-rule);
    }
}
