/* /Components/Layout/MainLayout.razor.rz.scp.css */
.shell[b-hv7rtr8xl7] {
    display: grid;
    grid-template-columns: 236px minmax(0, 1fr);
    min-height: 100vh;
}

/* ---- sidebar ---- */

.sidebar[b-hv7rtr8xl7] {
    background: #000;
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
}

.brand[b-hv7rtr8xl7] {
    padding: 22px 20px 26px;
    border-bottom: 1px solid var(--ihs-sidebar-rule);
    display: flex;
    align-items: center;
    gap: 11px;
}
.brand img[b-hv7rtr8xl7] { display: block; flex: none; }

/* gap: 0 on purpose — the script's ascenders supply the optical spacing. */
.labels[b-hv7rtr8xl7] { display: flex; flex-direction: column; gap: 0; min-width: 0; }

.signature[b-hv7rtr8xl7] {
    font-family: var(--drew-signature);
    font-size: 24px;
    line-height: 31px;
    font-weight: 400;
    color: var(--ihs-blue);
    letter-spacing: .01em;
}
.org[b-hv7rtr8xl7] {
    font-size: 10px;
    color: var(--ihs-ink-muted);
    text-transform: uppercase;
    letter-spacing: .14em;
}

.section[b-hv7rtr8xl7] { padding-top: 18px; }
.section-label[b-hv7rtr8xl7] {
    font-size: 10px;
    color: var(--ihs-sidebar-label);
    text-transform: uppercase;
    letter-spacing: .16em;
    padding: 0 20px 9px;
}

.foot[b-hv7rtr8xl7] {
    margin-top: auto;
    padding: 16px 20px 20px;
    border-top: 1px solid var(--ihs-sidebar-rule);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.user[b-hv7rtr8xl7] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    background: none;
    border: 0;
    padding: 0;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}
.user:hover .name[b-hv7rtr8xl7] { color: #fff; }
.avatar[b-hv7rtr8xl7] {
    flex: none;
    width: 24px;
    height: 24px;
    background: #292929;
    color: var(--ihs-nav-link);
    font-size: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.who[b-hv7rtr8xl7] { display: flex; flex-direction: column; min-width: 0; }
.name[b-hv7rtr8xl7] {
    font-size: 12px;
    color: var(--ihs-nav-link);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.role[b-hv7rtr8xl7] {
    font-size: 10px;
    color: var(--ihs-sidebar-label);
    text-transform: uppercase;
    letter-spacing: .1em;
}

/* ---- main column ---- */

.main[b-hv7rtr8xl7] { display: flex; flex-direction: column; min-width: 0; }

.topbar[b-hv7rtr8xl7] {
    height: 56px;
    background: #fff;
    border-bottom: 1px solid var(--ihs-border);
    padding: 0 32px;
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 20px;
}

.crumb[b-hv7rtr8xl7] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--ihs-ink-muted);
}
.spacer[b-hv7rtr8xl7] { flex: 1; }
.search[b-hv7rtr8xl7] { width: 280px; flex: none; }
.date[b-hv7rtr8xl7] { font-size: 12px; color: var(--ihs-ink-muted); }

.sync[b-hv7rtr8xl7] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--ihs-ink-muted);
}
.sync .dot[b-hv7rtr8xl7] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: block;
    flex: none;
}
.sync .dot.ok[b-hv7rtr8xl7] { background: var(--ihs-success); }
.sync .dot.stale[b-hv7rtr8xl7] { background: var(--ihs-warning); }
.sync .dot.failed[b-hv7rtr8xl7] { background: var(--ihs-danger); }

.content[b-hv7rtr8xl7] {
    padding: 32px;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}
/* /Components/Layout/NavItem.razor.rz.scp.css */
.nav-item[b-f364cesbyb] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 20px;
    font-size: 14px;
    color: var(--ihs-nav-link);
    background: transparent;
    border-left: 2px solid transparent;
    cursor: pointer;
    text-decoration: none;
}
.nav-item:hover[b-f364cesbyb] { background: var(--ihs-sidebar-hover); color: var(--ihs-nav-link); }

.nav-item.active[b-f364cesbyb] {
    color: #fff;
    background: var(--ihs-sidebar-active);
    border-left-color: var(--ihs-blue);
}

.label[b-f364cesbyb] { flex: 1; min-width: 0; }

.count[b-f364cesbyb] {
    flex: none;
    font-size: 11px;
    line-height: 17px;
}
.count.neutral[b-f364cesbyb] { color: var(--ihs-ink-muted); }
.count.attention[b-f364cesbyb] { color: var(--ihs-warning); }
.count.danger[b-f364cesbyb] { color: var(--ihs-danger); }
.count.badge[b-f364cesbyb] {
    background: var(--ihs-blue);
    color: #fff;
    border-radius: 9px;
    padding: 1px 7px;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-x6gfk0eno0],
.components-reconnect-repeated-attempt-visible[b-x6gfk0eno0],
.components-reconnect-failed-visible[b-x6gfk0eno0],
.components-pause-visible[b-x6gfk0eno0],
.components-resume-failed-visible[b-x6gfk0eno0],
.components-rejoining-animation[b-x6gfk0eno0] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-x6gfk0eno0],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-x6gfk0eno0],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-x6gfk0eno0],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-x6gfk0eno0],
#components-reconnect-modal.components-reconnect-retrying[b-x6gfk0eno0],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-x6gfk0eno0],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-x6gfk0eno0],
#components-reconnect-modal.components-reconnect-failed[b-x6gfk0eno0],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-x6gfk0eno0] {
    display: block;
}


#components-reconnect-modal[b-x6gfk0eno0] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-x6gfk0eno0 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-x6gfk0eno0 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-x6gfk0eno0 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-x6gfk0eno0]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-x6gfk0eno0 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-x6gfk0eno0 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-x6gfk0eno0 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-x6gfk0eno0 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-x6gfk0eno0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-x6gfk0eno0] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-x6gfk0eno0] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-x6gfk0eno0] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-x6gfk0eno0] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-x6gfk0eno0] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-x6gfk0eno0] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-x6gfk0eno0 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-x6gfk0eno0] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-x6gfk0eno0 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/AccountNamingPage.razor.rz.scp.css */
/* /Components/Pages/ArchivedAccounts.razor.rz.scp.css */
/* One row per decision, not per row of data — the reason and the actor are the point, so
   they get as much width as the name does. */
.arow[b-xoz7wvxlcj] {
    display: grid;
    grid-template-columns: 1fr 1.4fr auto auto 16px;
    gap: 14px;
    align-items: baseline;
    padding: 8px 0;
    border-top: 1px solid var(--ihs-rule-inner);
}
.arow:first-of-type[b-xoz7wvxlcj] { border-top: 0; }

.arow .who a[b-xoz7wvxlcj] { font-weight: 500; }
.arow .kind[b-xoz7wvxlcj] { margin-left: 8px; font-size: 11px; color: var(--muted, #6c6d74); }
.arow .why[b-xoz7wvxlcj] { font-size: 13px; }
.arow .when[b-xoz7wvxlcj], .arow .deals[b-xoz7wvxlcj] { color: var(--muted, #6c6d74); white-space: nowrap; }
.arow .arrow[b-xoz7wvxlcj] { color: var(--ihs-nav-link); text-decoration: none; }
.arow .arrow:hover[b-xoz7wvxlcj] { color: var(--ihs-blue); }

.mono[b-xoz7wvxlcj] { font-variant-numeric: tabular-nums; font-family: var(--mono, ui-monospace, monospace); }
.small[b-xoz7wvxlcj] { font-size: 12px; }
/* /Components/Pages/BillingAdmin.razor.rz.scp.css */
.counts[b-czq9ys5uyc] { display: flex; align-items: center; gap: 14px; }
.counts label[b-czq9ys5uyc] { font-size: 12px; display: flex; align-items: center; gap: 7px; }
.grow[b-czq9ys5uyc] { flex: 1; }

/* One row per ACCOUNT, not per Vivien site — the sites are the small print beneath the name,
   because "CIS billed $88k" is the fact and "from eight places" is how. */
.brow[b-czq9ys5uyc] {
    display: grid;
    grid-template-columns: 1fr auto 8rem;
    gap: 14px;
    align-items: baseline;
    padding: 9px 0;
    border-top: 1px solid var(--ihs-rule-inner);
}
.brow:first-of-type[b-czq9ys5uyc] { border-top: 0; }

/* The finding is coloured; "cannot tell" is not, because it is unfinished admin rather than
   money at risk and colouring both the same would teach the reader to skim past one. */
.brow.gap[b-czq9ys5uyc] { background: var(--ihs-danger-row); }
.brow.gap .amount[b-czq9ys5uyc] { font-weight: 600; color: var(--ihs-danger-ink); }

.brow .who a[b-czq9ys5uyc] { font-weight: 500; }
.brow .sites[b-czq9ys5uyc] { color: var(--muted, #6c6d74); margin-top: 3px; }
.brow .amount[b-czq9ys5uyc] { font-variant-numeric: tabular-nums; }
.brow .verdict[b-czq9ys5uyc] { text-align: right; }
.small[b-czq9ys5uyc] { font-size: 11px; }
/* /Components/Pages/Briefing/BoardTab.razor.rz.scp.css */
.legend[b-f4exein9ev] {
    display: flex;
    gap: 20px;
    font-size: 12px;
    color: var(--ihs-ink-muted);
    margin-bottom: 16px;
}
.legend span[b-f4exein9ev] { display: flex; align-items: center; gap: 7px; }

.sw[b-f4exein9ev] { width: 10px; height: 10px; display: block; flex: none; }
.sw.within[b-f4exein9ev] { background: var(--ihs-success); }
.sw.past[b-f4exein9ev] { background: var(--ihs-warning); }
.sw.flagged[b-f4exein9ev] { background: var(--ihs-danger); }
.sw.held[b-f4exein9ev] { background: #d8d8d8; }

/* Columns are derived from the children, not counted here. The count was hardcoded at 6 while
   the milestone list it mirrors is generated from the vocabulary, so adding the delivery lane
   would have silently overflowed the grid — the same class of drift that once made a whole
   pursuit invisible when the column list and the state list disagreed. */
.board[b-f4exein9ev] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

/* Delivery is not another milestone: the deal is over and the work has started. Separated by a
   rule rather than by colour, because it is a different KIND of column, not a hotter one. */
.column.signed[b-f4exein9ev] {
    border-left: 1px solid var(--ihs-rule-outer);
    padding-left: 12px;
}

.column[b-f4exein9ev] { display: flex; flex-direction: column; gap: 8px; min-width: 0; }

.col-head[b-f4exein9ev] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--ihs-border);
}
.name[b-f4exein9ev] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
}
.count[b-f4exein9ev] { font-size: 12px; color: var(--ihs-nav-link); }

.card[b-f4exein9ev] {
    padding: 11px 12px;
    cursor: pointer;
}
.card.within[b-f4exein9ev] { border-left: 2px solid var(--ihs-success); }
.card.past[b-f4exein9ev] { border-left: 2px solid var(--ihs-warning); }
.card.flagged[b-f4exein9ev] { border-left: 2px solid var(--ihs-danger); }
.card.held[b-f4exein9ev] { border-left: 2px solid #d8d8d8; }

.title[b-f4exein9ev] {
    font-size: 13px;
    line-height: 19px;
    color: var(--ihs-ink-heading);
    overflow-wrap: anywhere;
}
.meta[b-f4exein9ev] {
    font-size: 11px;
    color: var(--ihs-ink-muted);
    margin-top: 4px;
    display: flex;
    gap: 6px;
    align-items: baseline;
}
/* `ours` is the only one that carries colour. The board is scanned for what IHS owes, and
   giving every owner a badge of its own would make the thing being looked for harder to see. */
.owner[b-f4exein9ev] {
    font-size: 10px;
    letter-spacing: .03em;
    text-transform: uppercase;
    padding: 1px 5px;
    border-radius: 3px;
    background: var(--ihs-bg-muted);
    color: var(--ihs-ink-muted);
    flex: 0 0 auto;
}
.owner.ours[b-f4exein9ev] { background: #fde7e9; color: var(--ihs-danger-ink); font-weight: 600; }

/* Two lines, then clipped: a next step long enough to need three is a paragraph, and the
   card is a pointer to the deal rather than a replacement for reading it. */
.nextstep[b-f4exein9ev] {
    font-size: 11px;
    line-height: 15px;
    color: var(--ihs-ink-body);
    margin-top: 5px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.attention[b-f4exein9ev] {
    font-size: 11px;
    color: var(--ihs-danger-ink);
    margin-top: 4px;
}

.col-empty[b-f4exein9ev] { font-size: 12px; color: var(--ihs-nav-link); padding: 4px 0; }

.footer[b-f4exein9ev] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    margin-top: 20px;
    font-size: 14px;
    line-height: 21px;
    color: var(--ihs-ink-muted);
    text-wrap: pretty;
}

/* The gates behind the next step: still there, deliberately quieter. They are real work and
   they are not the answer to "what do I do about this today". */
.gatehint[b-f4exein9ev] {
    font-size: 10px;
    color: var(--ihs-ink-muted);
    margin-top: 3px;
}
/* /Components/Pages/Briefing/BriefingTab.razor.rz.scp.css */
.grid[b-rs1ym5jfzw] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: start;
}

.col[b-rs1ym5jfzw] { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.rail[b-rs1ym5jfzw] { display: flex; flex-direction: column; gap: 20px; }

.note[b-rs1ym5jfzw] {
    display: flex;
    gap: 22px;
    padding: 26px 30px;
}

.prose[b-rs1ym5jfzw] { min-width: 0; }
.prose p[b-rs1ym5jfzw] {
    font-size: 20px;
    line-height: 31px;
    font-weight: 400;
    color: var(--ihs-ink-heading);
    text-wrap: pretty;
    margin: 0 0 16px;
}
.prose p:last-of-type[b-rs1ym5jfzw] { margin-bottom: 0; }

.sign[b-rs1ym5jfzw] {
    display: flex;
    align-items: baseline;
    gap: 14px;
    margin-top: 20px;
}
.sign .rule[b-rs1ym5jfzw] {
    width: 34px;
    height: 1px;
    background: var(--ihs-border);
    align-self: center;
    flex: none;
}
.sign .hand[b-rs1ym5jfzw] {
    font-family: var(--drew-signature);
    font-size: 29px;
    line-height: 34px;
    color: var(--ihs-blue);
}
.sign .meta[b-rs1ym5jfzw] { font-size: 13px; color: var(--ihs-ink-muted); }

.since .entry[b-rs1ym5jfzw] {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.since .entry:first-of-type[b-rs1ym5jfzw] { padding-top: 16px; }
.since .entry:last-of-type[b-rs1ym5jfzw] { border-bottom: 0; }

.time[b-rs1ym5jfzw] { font-size: 12px; color: var(--ihs-nav-link); }
.headline[b-rs1ym5jfzw] {
    font-size: 15px;
    line-height: 23px;
    color: var(--ihs-ink-heading);
    margin-bottom: 8px;
    text-wrap: pretty;
}

.foot[b-rs1ym5jfzw] { padding-top: 14px; border-top: 1px solid var(--ihs-rule-inner); }
.foot a[b-rs1ym5jfzw] { font-size: 13px; }

/* Q68 — signed engagements and the gates they are waiting on. Rows, not cards: this is a
   list of tasks somebody works down, and the visual weight belongs on the unmet gate rather
   than on the account name, which the reader already knows. */
.engagements[b-rs1ym5jfzw] { margin-top: 18px; }
.eng[b-rs1ym5jfzw] {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
    text-decoration: none;
    color: inherit;
}
.eng:first-of-type[b-rs1ym5jfzw] { padding-top: 16px; }
.eng:last-of-type[b-rs1ym5jfzw] { border-bottom: 0; }
.eng:hover .name[b-rs1ym5jfzw] { color: var(--ihs-blue); }

.eng-head[b-rs1ym5jfzw] { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.eng .name[b-rs1ym5jfzw] { font-size: 14px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.eng .gates[b-rs1ym5jfzw] { font-size: 12px; color: var(--ihs-ink-muted); flex: 0 0 auto; }

.eng .unmet[b-rs1ym5jfzw] {
    font-size: 12px;
    line-height: 18px;
    color: var(--ihs-danger-ink);
    margin-top: 4px;
    text-wrap: pretty;
}
/* Every gate met and still gated is not a warning — it is a decision nobody has taken. */
.eng .ready[b-rs1ym5jfzw] { font-size: 12px; color: var(--ihs-blue); margin-top: 4px; }

/* What the account is waiting for, ahead of the checklist. */
.eng .engnext[b-rs1ym5jfzw] {
    font-size: 13px;
    line-height: 19px;
    color: var(--ihs-ink-heading);
    margin-top: 4px;
    text-wrap: pretty;
}
.eng .unmet.dim[b-rs1ym5jfzw] { color: var(--ihs-ink-muted); font-size: 11px; margin-top: 3px; }
/* /Components/Pages/Briefing/CalendarRail.razor.rz.scp.css */
.panel-caption[b-9l1n7zi7mj] { margin-bottom: 12px; }

.empty[b-9l1n7zi7mj] { margin-bottom: 12px; }

.gap[b-9l1n7zi7mj] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    text-wrap: pretty;
}

/* ---- on the calendar ---- */

.events[b-9l1n7zi7mj] { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }

.event[b-9l1n7zi7mj] { display: flex; gap: 10px; align-items: baseline; font-size: 13px; }

/* A held meeting is evidence and an upcoming one is not (§4.16), so they do not read
   the same. Weight rather than colour: the rail already carries enough colour. */
.event.ahead .when[b-9l1n7zi7mj] { color: var(--ihs-ink-muted); }
.event.held  .when[b-9l1n7zi7mj] { color: var(--ihs-ink); font-weight: 600; }

.when[b-9l1n7zi7mj] { min-width: 58px; font-size: 12px; }
.when .time[b-9l1n7zi7mj] { display: block; color: var(--ihs-ink-muted); font-size: 11px; }

.what[b-9l1n7zi7mj] { min-width: 0; }
.subject[b-9l1n7zi7mj] { line-height: 18px; text-wrap: pretty; }
.subject a[b-9l1n7zi7mj] { color: inherit; }

.sub[b-9l1n7zi7mj] {
    font-size: 11px;
    color: var(--ihs-ink-muted);
    margin-top: 2px;
    overflow-wrap: anywhere;
}

/* ---- what I could not see ---- */

.gaps[b-9l1n7zi7mj] { display: flex; flex-direction: column; gap: 10px; margin-bottom: 12px; }

.gap-row[b-9l1n7zi7mj] { font-size: 13px; }
.gap-row > a[b-9l1n7zi7mj] { font-weight: 600; }
.gap-row .sub[b-9l1n7zi7mj] {
    font-size: 12px;
    line-height: 18px;
    color: var(--ihs-ink-muted);
    text-wrap: pretty;
}
/* /Components/Pages/Briefing/MetricsTab.razor.rz.scp.css */
.stats[b-ws1yq9yl4s] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}
.stat[b-ws1yq9yl4s] { padding: 20px; }

.value[b-ws1yq9yl4s] {
    font-size: 45px;
    line-height: 54px;
    font-weight: 400;
    color: var(--ihs-ink-heading);
    margin: 6px 0 4px;
}
.value.good[b-ws1yq9yl4s] { color: var(--ihs-blue); }
.value.caution[b-ws1yq9yl4s] { color: var(--ihs-warning); }

.stat .foot[b-ws1yq9yl4s] { font-size: 12px; color: var(--ihs-ink-muted); }

.lower[b-ws1yq9yl4s] {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}
.side[b-ws1yq9yl4s] { display: flex; flex-direction: column; gap: 20px; }

.bar-row[b-ws1yq9yl4s] { margin: 16px 0; }
.bar-label[b-ws1yq9yl4s] {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: 14px;
    color: var(--ihs-ink-heading);
    margin-bottom: 6px;
}
.bar-label span:last-child[b-ws1yq9yl4s] { font-size: 13px; color: var(--ihs-ink-muted); }

.track[b-ws1yq9yl4s] { height: 8px; background: var(--ihs-bg-muted); }
.fill[b-ws1yq9yl4s] { height: 8px; background: var(--ihs-blue); }
.fill.danger[b-ws1yq9yl4s] { background: var(--ihs-danger); }

.tier[b-ws1yq9yl4s] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22px;
    align-items: center;
    gap: 12px;
    margin: 10px 0;
}
.tier-bar[b-ws1yq9yl4s] {
    grid-row: 1;
    grid-column: 1;
    height: 22px;
    min-width: 0;
}
.tier-label[b-ws1yq9yl4s] {
    grid-row: 1;
    grid-column: 1;
    font-size: 13px;
    color: var(--ihs-ink-heading);
    padding-left: 8px;
    z-index: 1;
}
.tier-count[b-ws1yq9yl4s] {
    grid-column: 2;
    text-align: right;
    font-size: 13px;
    color: var(--ihs-ink-muted);
}

.kv[b-ws1yq9yl4s] {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ihs-border);
    font-size: 13px;
    color: var(--ihs-ink-heading);
}
.kv:last-of-type[b-ws1yq9yl4s] { border-bottom: 0; }
.kv .amber[b-ws1yq9yl4s] { color: var(--ihs-warning-ink); }

.panel-caption[b-ws1yq9yl4s] { margin-bottom: 4px; }
/* /Components/Pages/Briefing/TriageTab.razor.rz.scp.css */
.grid[b-w1jk2p9paw] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 316px;
    gap: 20px;
    align-items: start;
}

.col[b-w1jk2p9paw] { min-width: 0; }
.rail[b-w1jk2p9paw] { display: flex; flex-direction: column; gap: 20px; }

h2[b-w1jk2p9paw] { font-size: 20px; font-weight: 500; }
.note[b-w1jk2p9paw] {
    font-size: 13px;
    color: var(--ihs-ink-muted);
    margin: 4px 0 16px;
}

.notice[b-w1jk2p9paw] {
    background: var(--ihs-success-wash);
    border: 1px solid #cfe9da;
    padding: 11px 16px;
    font-size: 13px;
    color: var(--ihs-success-ink);
    margin-bottom: 12px;
}

.cards[b-w1jk2p9paw] { display: flex; flex-direction: column; gap: 12px; }

.decision[b-w1jk2p9paw] { padding: 18px 20px; }

.kind-row[b-w1jk2p9paw] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.kind[b-w1jk2p9paw] {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
}

.title[b-w1jk2p9paw] {
    font-size: 16px;
    line-height: 24px;
    color: var(--ihs-ink-heading);
    text-wrap: pretty;
}
.why[b-w1jk2p9paw] {
    font-size: 14px;
    line-height: 21px;
    color: var(--ihs-ink-muted);
    margin: 8px 0 12px;
    text-wrap: pretty;
}

.actions[b-w1jk2p9paw] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
}
.rest[b-w1jk2p9paw] {
    font-size: 12px;
    color: var(--ihs-nav-link);
    margin-left: 6px;
}

.bulk[b-w1jk2p9paw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 20px;
    font-size: 14px;
    color: var(--ihs-ink-muted);
}

.rail-panel[b-w1jk2p9paw] { padding: 18px 20px; }
.rail-panel .panel-caption[b-w1jk2p9paw] { margin-bottom: 6px; }

.silence[b-w1jk2p9paw] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.silence:last-of-type[b-w1jk2p9paw] { border-bottom: 0; }

.org[b-w1jk2p9paw] {
    font-size: 14px;
    color: var(--ihs-ink-heading);
    overflow-wrap: anywhere;
}
.reason[b-w1jk2p9paw] {
    grid-column: 1;
    font-size: 12px;
    color: var(--ihs-ink-muted);
}
.days[b-w1jk2p9paw] {
    grid-row: 1 / span 2;
    grid-column: 2;
    align-self: center;
    font-size: 13px;
    color: var(--ihs-ink-muted);
}
.days.past[b-w1jk2p9paw] { color: var(--ihs-warning); }
.days.flagged[b-w1jk2p9paw] { color: var(--ihs-danger); }
.days.held[b-w1jk2p9paw] { color: var(--ihs-nav-link); }
/* /Components/Pages/CalendarAdmin.razor.rz.scp.css */
/* Same status idiom as the CMS screen: the one question the report list cannot answer is
   whether anything runs this WITHOUT the button, and the flag's state is that answer. */
.status[b-etxcnvq9fo] { border-left: 2px solid var(--ihs-border); }
.status.ok[b-etxcnvq9fo] { border-left-color: var(--ihs-ok, #2e7d51); }
.status.stale[b-etxcnvq9fo] { border-left-color: var(--ihs-warning-ink); }

.statline[b-etxcnvq9fo] { display: flex; align-items: center; gap: 9px; font-size: 14px; }
.statline .dot[b-etxcnvq9fo] {
    width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto;
    background: var(--ihs-ink-muted);
}
.statline .dot.ok[b-etxcnvq9fo] { background: var(--ihs-ok, #2e7d51); }
.statline .dot.stale[b-etxcnvq9fo] { background: var(--ihs-warning-ink); }

.statdetail[b-etxcnvq9fo] {
    display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; padding-left: 18px;
    font-size: 12px; color: var(--ihs-ink-muted);
}
.staterr[b-etxcnvq9fo] { margin-top: 7px; font-size: 12px; color: var(--ihs-danger-ink); }

.run[b-etxcnvq9fo] {
    margin-top: 4px; padding: 7px 16px; font-size: 13px; cursor: pointer;
    background: var(--ihs-accent); color: var(--ihs-accent-contrast, #fff);
    border: none; border-radius: 4px;
}
.run:disabled[b-etxcnvq9fo] { opacity: .6; cursor: default; }

.row[b-etxcnvq9fo] {
    display: flex; gap: 10px; align-items: baseline; padding: 6px 0;
    font-size: 12.5px; border-top: 1px solid var(--ihs-rule-inner);
}
.row .chip[b-etxcnvq9fo] { flex: 0 0 auto; }
.row.footer[b-etxcnvq9fo] { color: var(--ihs-ink-muted); }
/* /Components/Pages/CmsDataAdmin.razor.rz.scp.css */
/* The status panel answers the one question the vintage list cannot: is the checking still
   working. "CMS has published nothing new" and "the check has been failing for a fortnight"
   look identical from the stored data alone, and only one of them is a problem. */
.status[b-wq3qm0ts8z] { border-left: 2px solid var(--ihs-border); }
.status.ok[b-wq3qm0ts8z] { border-left-color: var(--ihs-ok, #2e7d51); }
.status.stale[b-wq3qm0ts8z] { border-left-color: var(--ihs-warning-ink); }
.status.failed[b-wq3qm0ts8z] { border-left-color: var(--ihs-danger); background: var(--ihs-danger-row); }

.statline[b-wq3qm0ts8z] {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 14px;
}
.statline .dot[b-wq3qm0ts8z] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: 0 0 auto;
    background: var(--ihs-ink-muted);
}
.statline .dot.ok[b-wq3qm0ts8z] { background: var(--ihs-ok, #2e7d51); }
.statline .dot.stale[b-wq3qm0ts8z] { background: var(--ihs-warning-ink); }
.statline .dot.failed[b-wq3qm0ts8z] { background: var(--ihs-danger); }

.statdetail[b-wq3qm0ts8z] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 5px;
    padding-left: 18px;
    font-size: 12px;
    color: var(--ihs-ink-muted);
}
.staterr[b-wq3qm0ts8z] {
    margin-top: 7px;
    padding-left: 18px;
    font-size: 12px;
    color: var(--ihs-danger-ink);
}

.vrow[b-wq3qm0ts8z] {
    display: grid;
    grid-template-columns: 190px 120px 90px 90px minmax(0, 1fr) 170px;
    gap: 10px;
    align-items: baseline;
    padding: 7px 0;
    font-size: 12.5px;
}
.vrow.head[b-wq3qm0ts8z] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.vrow.head span:nth-child(2)[b-wq3qm0ts8z], .vrow.head span:nth-child(3)[b-wq3qm0ts8z],
.vrow.head span:nth-child(4)[b-wq3qm0ts8z] { text-align: right; }
.vrow.body[b-wq3qm0ts8z] { border-top: 1px solid var(--ihs-rule-inner); }
/* The release new pricing will use. Everything else is kept for the deals pinned to it. */
.vrow.current[b-wq3qm0ts8z] { background: var(--ihs-bg-muted); }
.vrow .tnum[b-wq3qm0ts8z] { text-align: right; }
.vrow .dim[b-wq3qm0ts8z] { color: var(--ihs-ink-muted); font-size: 11.5px; }
.vrow .src[b-wq3qm0ts8z] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vrow .chip[b-wq3qm0ts8z] { margin-left: 6px; }

/* A parse warning is not a failure — the vintage loaded — but it must stay attached to the
   row it belongs to rather than scrolling away with the status. */
.vnote[b-wq3qm0ts8z] {
    font-size: 11.5px;
    color: var(--ihs-warning-ink);
    padding: 0 0 6px 4px;
}

.pinrow[b-wq3qm0ts8z] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 160px 150px;
    gap: 10px;
    align-items: baseline;
    padding: 6px 0;
    font-size: 12.5px;
    border-top: 1px solid var(--ihs-rule-inner);
}
.pinrow .dim[b-wq3qm0ts8z] { color: var(--ihs-ink-muted); }

@media (max-width: 1000px) {
    .vrow[b-wq3qm0ts8z], .pinrow[b-wq3qm0ts8z] { grid-template-columns: 1fr 1fr; }
    .vrow.head[b-wq3qm0ts8z] { display: none; }
}
/* /Components/Pages/CompanyMapAdmin.razor.rz.scp.css */
.counts[b-a8nc15rtni] {
    display: flex;
    align-items: baseline;
    gap: 22px;
    padding: 14px 20px;
    margin-bottom: 20px;
    font-size: 13px;
    color: var(--ihs-ink-muted);
}
.counts strong[b-a8nc15rtni] { color: var(--ihs-ink-heading); font-size: 16px; margin-right: 4px; }
.counts .grow[b-a8nc15rtni] { flex: 1; }
.counts .only[b-a8nc15rtni] { display: flex; align-items: center; gap: 6px; cursor: pointer; }

.maprow[b-a8nc15rtni] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 70px 92px 300px 130px;
    gap: 14px;
    align-items: baseline;
    padding: 8px 0;
    font-size: 13px;
}
.maprow.head[b-a8nc15rtni] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    padding-bottom: 4px;
}
.maprow.body[b-a8nc15rtni] { border-top: 1px solid var(--ihs-rule-inner); }

/* Unlinked is the expected state for most rows today, so it is quiet — a page of warnings
   is a page nobody reads. */
.maprow.unlinked .cname[b-a8nc15rtni] { color: var(--ihs-ink-muted); }

.cname[b-a8nc15rtni] { overflow-wrap: anywhere; }
.dim[b-a8nc15rtni] { color: var(--ihs-ink-muted); }
.tnum[b-a8nc15rtni] { text-align: right; }
.pick select[b-a8nc15rtni] { width: 100%; font-size: 13px; padding: 4px 6px; }

@media (max-width: 1000px) {
    .maprow[b-a8nc15rtni] { grid-template-columns: minmax(0, 1fr) 92px 120px; }
    .maprow span:nth-child(2)[b-a8nc15rtni] { display: none; }
    .maprow .pick[b-a8nc15rtni] { grid-column: 1 / -1; }
    .maprow.head[b-a8nc15rtni] { display: none; }
}

/* Q102: the reasoning behind a proposal, under the name it is about. Quiet — it is working,
   not a claim — until the domain is one two different clients share, which is the one case a
   person must not skim past. */
.evidence[b-a8nc15rtni] {
    margin-top: 3px;
    font-size: 11px;
    line-height: 1.4;
    color: var(--muted, #6c6d74);
    max-width: 52ch;
}
.evidence.contested[b-a8nc15rtni] { color: var(--ihs-danger-ink); }
/* /Components/Pages/Correspondents.razor.rz.scp.css */
.counts[b-93mxpuoixg] {
    display: flex;
    align-items: baseline;
    gap: 22px;
    padding: 14px 20px;
    margin-bottom: 20px;
    font-size: 13px;
    color: var(--ihs-ink-muted);
}
.counts strong[b-93mxpuoixg] { color: var(--ihs-ink-heading); font-size: 16px; margin-right: 4px; }
.counts .grow[b-93mxpuoixg] { flex: 1; }

.corrow[b-93mxpuoixg] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px 70px 100px minmax(0, 1.6fr);
    gap: 14px;
    align-items: baseline;
    padding: 10px 0;
    font-size: 13px;
}
.corrow.head[b-93mxpuoixg] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    padding-bottom: 4px;
}
.corrow.body[b-93mxpuoixg] { border-top: 1px solid var(--ihs-rule-inner); }

.dim[b-93mxpuoixg] { color: var(--ihs-ink-muted); }
.mono[b-93mxpuoixg] { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.tnum[b-93mxpuoixg] { text-align: right; }

.act[b-93mxpuoixg] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.act .nm[b-93mxpuoixg] { font-size: 12px; padding: 3px 6px; min-width: 150px; }
.act select[b-93mxpuoixg] { font-size: 12px; padding: 3px 6px; }
.act .btn[b-93mxpuoixg] { font-size: 12px; padding: 4px 10px; }
/* Saying no is a real answer and belongs on the row, but it is not the one being
   encouraged — the whole screen exists to get accounts adjudicated, not dismissed. */
.act .btn.quiet[b-93mxpuoixg] { opacity: .75; }

@media (max-width: 1200px) {
    .corrow[b-93mxpuoixg] { grid-template-columns: minmax(0, 1fr) 90px; }
    .corrow span:nth-child(2)[b-93mxpuoixg], .corrow span:nth-child(4)[b-93mxpuoixg] { display: none; }
    .corrow .act[b-93mxpuoixg] { grid-column: 1 / -1; }
    .corrow.head[b-93mxpuoixg] { display: none; }
}
/* /Components/Pages/Coverage.razor.rz.scp.css */
.read[b-gh1ip55rvl] {
    display: flex;
    gap: 18px;
    margin-bottom: 20px;
}
.read p[b-gh1ip55rvl] {
    font-size: 16px;
    line-height: 26px;
    color: var(--ihs-ink-heading);
    text-wrap: pretty;
}
.read .sign[b-gh1ip55rvl] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}
.read .rule[b-gh1ip55rvl] { width: 34px; height: 1px; background: var(--ihs-border); flex: none; }
.read .meta[b-gh1ip55rvl] { font-size: 12px; color: var(--ihs-ink-muted); }

.grid[b-gh1ip55rvl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 316px;
    gap: 20px;
    align-items: start;
}
.col[b-gh1ip55rvl] { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.rail[b-gh1ip55rvl] { display: flex; flex-direction: column; gap: 20px; }

.block-head[b-gh1ip55rvl] { padding: 18px 20px 14px; border-bottom: 1px solid var(--ihs-border); }
.explain[b-gh1ip55rvl] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    margin-top: 8px;
    max-width: 820px;
    text-wrap: pretty;
}

.scroll[b-gh1ip55rvl] { overflow-x: auto; }

.cov-row[b-gh1ip55rvl] {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) 90px 84px 96px minmax(0, 1fr);
    gap: 16px;
    min-width: 880px;
    align-items: center;
    padding: 12px 20px;
}
.cov-head[b-gh1ip55rvl] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
}
.cov-row.body[b-gh1ip55rvl] { border-bottom: 1px solid var(--ihs-rule-inner); }
.cov-row.body.at-risk[b-gh1ip55rvl] { background: var(--ihs-danger-row); }

.lname[b-gh1ip55rvl] { min-width: 0; font-size: 14px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.ldetail[b-gh1ip55rvl] { font-size: 11px; color: var(--ihs-nav-link); margin-top: 3px; }

.count[b-gh1ip55rvl] { font-size: 14px; }
.count.zero[b-gh1ip55rvl] { color: var(--ihs-danger-ink); }
.count.thin[b-gh1ip55rvl] { color: var(--ihs-warning-ink); }
.count.ok[b-gh1ip55rvl] { color: var(--ihs-success-ink); }

.pad[b-gh1ip55rvl] { padding: 16px 20px; }

.miss[b-gh1ip55rvl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.miss:last-of-type[b-gh1ip55rvl] { border-bottom: 0; }
.mtitle[b-gh1ip55rvl] { font-size: 14px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.mdetail[b-gh1ip55rvl] { font-size: 12px; color: var(--ihs-ink-muted); margin-top: 3px; }

.req-row[b-gh1ip55rvl] {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) 84px 84px minmax(0, 1.4fr);
    gap: 16px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
    font-size: 13px;
}
.req-head[b-gh1ip55rvl] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
    margin-top: 14px;
}
.rneed[b-gh1ip55rvl] { color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.req-row .zero[b-gh1ip55rvl] { color: var(--ihs-danger-ink); }
.rgap[b-gh1ip55rvl] { color: var(--ihs-ink-muted); text-wrap: pretty; }

/* ---- rail ---- */

.rail-panel[b-gh1ip55rvl] { padding: 18px 20px; }
.rail-panel .panel-caption[b-gh1ip55rvl] { margin-bottom: 10px; }

.exp[b-gh1ip55rvl] { padding: 10px 0; border-bottom: 1px solid var(--ihs-rule-inner); }
.exp:last-of-type[b-gh1ip55rvl] { border-bottom: 0; }
.erow[b-gh1ip55rvl] { display: flex; justify-content: space-between; gap: 12px; }
.ecred[b-gh1ip55rvl] { font-size: 13px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.edays[b-gh1ip55rvl] { font-size: 13px; color: var(--ihs-ink-muted); white-space: nowrap; }
.edays.soon[b-gh1ip55rvl] { color: var(--ihs-warning); }
.edays.urgent[b-gh1ip55rvl] { color: var(--ihs-danger); }
.ewho[b-gh1ip55rvl] { font-size: 12px; color: var(--ihs-ink-muted); margin-top: 2px; }
.eimpact[b-gh1ip55rvl] {
    font-size: 12px;
    line-height: 18px;
    color: var(--ihs-ink-muted);
    margin-top: 4px;
    text-wrap: pretty;
}
.eimpact.bad[b-gh1ip55rvl] { color: var(--ihs-danger-ink); }

.wont[b-gh1ip55rvl] {
    margin: 0;
    padding-left: 18px;
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
}
.wont li[b-gh1ip55rvl] { margin-bottom: 10px; text-wrap: pretty; }
.wont li:last-child[b-gh1ip55rvl] { margin-bottom: 0; }

.cohort[b-gh1ip55rvl] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
    font-size: 13px;
    color: var(--ihs-ink-heading);
}
.cohort:last-of-type[b-gh1ip55rvl] { border-bottom: 0; margin-bottom: 12px; }
.cohort span:last-child[b-gh1ip55rvl] { color: var(--ihs-ink-muted); }
/* /Components/Pages/Deal.razor.rz.scp.css */
.back[b-y3c35n755d] {
    font-size: 13px;
    display: inline-block;
    margin-bottom: 14px;
}

.identity[b-y3c35n755d] {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 22px 26px;
    margin-bottom: 20px;
}
.who[b-y3c35n755d] { flex: 1; min-width: 0; }
.identity h1[b-y3c35n755d] { font-size: 36px; line-height: 44px; overflow-wrap: anywhere; }

.ident[b-y3c35n755d] {
    font-size: 13px;
    color: var(--ihs-ink-muted);
    margin-top: 6px;
    overflow-wrap: anywhere;
}
.chips[b-y3c35n755d] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.acts[b-y3c35n755d] { display: flex; gap: 8px; flex: none; }

.read[b-y3c35n755d] {
    display: flex;
    gap: 18px;
    margin-bottom: 20px;
}
.read p[b-y3c35n755d] {
    font-size: 16px;
    line-height: 26px;
    color: var(--ihs-ink-heading);
    text-wrap: pretty;
}
.read .sign[b-y3c35n755d] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}
.read .rule[b-y3c35n755d] { width: 34px; height: 1px; background: var(--ihs-border); flex: none; }
.read .meta[b-y3c35n755d] { font-size: 12px; color: var(--ihs-ink-muted); }

/* ---- pipeline: where this deal stands, read in stages ----
   Positional, not chronological: every milestone appears, including the ones this deal
   never reached, because a skipped milestone is a signal of its own. Owner is carried by
   colour and an arrow so "what am I waiting on" is scannable without reading a word. */

.pipeline[b-y3c35n755d] { overflow-x: auto; margin-bottom: 20px; }

.stops[b-y3c35n755d] {
    display: flex;
    gap: 0;
    list-style: none;
    margin: 18px 0 0;
    padding: 0;
    min-width: 760px;
}

.stop[b-y3c35n755d] {
    flex: 1;
    min-width: 0;
    position: relative;
    padding: 0 10px 0 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

/* the connector, drawn behind the dot rather than as a border on the row */
.stop[b-y3c35n755d]::before {
    content: "";
    position: absolute;
    left: 5px;
    right: 0;
    top: 4px;
    height: 2px;
    background: #e4e4e4;
}
.stop:last-child[b-y3c35n755d]::before { right: calc(100% - 6px); }
.stop.visited[b-y3c35n755d]::before,
.stop.current[b-y3c35n755d]::before { background: var(--ihs-blue-tint); }

.stop .dot[b-y3c35n755d] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #d0d0d0;
    position: relative;
    z-index: 1;
    margin-bottom: 5px;
}
.stop.visited .dot[b-y3c35n755d] { border-color: var(--ihs-blue-tint); background: var(--ihs-blue-tint); }
.stop.current .dot[b-y3c35n755d] {
    border-color: var(--ihs-blue);
    background: var(--ihs-blue);
    width: 15px;
    height: 15px;
    margin: -2px 0 3px -2px;
    box-shadow: 0 0 0 4px rgba(0, 153, 255, .15);
}
/* a skipped stop is hollow and dashed — visibly not merely "later" */
.stop.skipped .dot[b-y3c35n755d] { border-style: dashed; }

.stop-label[b-y3c35n755d] {
    font-size: 12.5px;
    color: var(--ihs-ink-heading);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.stop.current .stop-label[b-y3c35n755d] { font-weight: 600; }
.stop.skipped .stop-label[b-y3c35n755d] { color: #a8a8a8; }

.stop-owner[b-y3c35n755d] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    white-space: nowrap;
}
.stop.owner-client .stop-owner[b-y3c35n755d] { color: #9b5b14; }
.stop.owner-ihs .stop-owner[b-y3c35n755d] { color: #0f5f66; }

.stop-days[b-y3c35n755d] {
    font-size: 11px;
    color: var(--ihs-nav-link);
    white-space: nowrap;
}
.stop.current .stop-days[b-y3c35n755d] { color: var(--ihs-ink-heading); }

.stop-detail[b-y3c35n755d] {
    font-size: 10px;
    color: var(--ihs-nav-link);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* When this milestone last heard anything. Wraps to two lines rather than being clipped: the
   stops share the row's width equally, and "last activity 19 Apr 2024 · 847 d ago" does not fit
   one line in a seventh of it. The day count is deliberately quieter than the date — the date is
   the fact, the age is context. */
.stop-activity[b-y3c35n755d] {
    font-size: 10px;
    line-height: 1.35;
    color: var(--ihs-ink-muted);
    padding-right: 8px;
}
.stop.current .stop-activity[b-y3c35n755d] { color: var(--ihs-ink-heading); }
.stop-activity.dim[b-y3c35n755d] { opacity: .7; font-style: italic; }

/* ---- time horizon ---- */

.horizon[b-y3c35n755d] { overflow-x: auto; margin-bottom: 20px; }

.segments[b-y3c35n755d] {
    display: flex;
    gap: 3px;
    align-items: flex-end;
    min-width: 900px;
    margin-top: 16px;
}
.seg[b-y3c35n755d] { min-width: 0; }

.seg-label[b-y3c35n755d] {
    font-size: 12px;
    color: var(--ihs-ink-heading);
    margin-bottom: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.seg-label .days[b-y3c35n755d] { color: var(--ihs-nav-link); }

.bar[b-y3c35n755d] { height: 10px; }
.bar.past[b-y3c35n755d] { background: var(--ihs-blue-tint); }
.bar.current[b-y3c35n755d] { height: 14px; background: var(--ihs-blue); }
.bar.held[b-y3c35n755d] { background: #d8d8d8; }

.seg .cap[b-y3c35n755d] {
    font-size: 10px;
    color: var(--ihs-nav-link);
    margin-top: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- dossier ---- */

.dossier[b-y3c35n755d] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: start;
}
.side[b-y3c35n755d] { display: flex; flex-direction: column; gap: 20px; min-width: 0; }

.field[b-y3c35n755d] {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.field:last-of-type[b-y3c35n755d] { border-bottom: 0; }

.flabel[b-y3c35n755d] { font-size: 13px; color: var(--ihs-ink-muted); }
.fvalue[b-y3c35n755d] {
    font-size: 14px;
    color: var(--ihs-ink-heading);
    min-width: 0;
    overflow-wrap: anywhere;
}
.fvalue .v[b-y3c35n755d] { margin-right: 8px; }
.fsignal[b-y3c35n755d] {
    font-size: 11px;
    line-height: 18px;
    color: var(--ihs-ink-muted);
    margin-top: 4px;
}
.tell[b-y3c35n755d] {
    color: var(--ihs-blue);
    font-size: 13px;
    margin-left: 8px;
    cursor: pointer;
}

.person[b-y3c35n755d] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.person:last-of-type[b-y3c35n755d] { border-bottom: 0; }
.pname[b-y3c35n755d] { font-size: 14px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.pname .chip[b-y3c35n755d] { margin-left: 8px; }
.pmeta[b-y3c35n755d] { font-size: 12px; color: var(--ihs-ink-muted); white-space: nowrap; }

.tran[b-y3c35n755d] {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 10px 14px;
    padding: 9px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
    font-size: 13px;
}
.tran:last-of-type[b-y3c35n755d] { border-bottom: 0; }
.tdate[b-y3c35n755d] { font-size: 12px; color: var(--ihs-ink-muted); }
.from[b-y3c35n755d] { color: var(--ihs-nav-link); }
.to[b-y3c35n755d] { color: var(--ihs-ink-heading); }
.tsignal[b-y3c35n755d] {
    font-size: 11px;
    line-height: 18px;
    color: var(--ihs-ink-muted);
    margin-top: 3px;
}

.note-warning[b-y3c35n755d] { margin-top: 14px; }

.chain[b-y3c35n755d] { margin: 14px 0; }
.chain-head[b-y3c35n755d] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
    margin-bottom: 6px;
}
.chain-head.open[b-y3c35n755d] { color: #0680d2; }

.arow[b-y3c35n755d] {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 10px;
    padding: 4px 0;
    font-size: 13px;
}
.adate[b-y3c35n755d] { font-size: 12px; color: var(--ihs-nav-link); }
.afile[b-y3c35n755d] { color: var(--ihs-ink-muted); overflow-wrap: anywhere; }

/* The intake row carries a third column the artifact chains do not: whether this is the form we
   sent or the form that came back, and a link to what Drew read out of it. */
.intakerow[b-y3c35n755d] { grid-template-columns: 84px minmax(0, 1fr) auto; align-items: baseline; }
.intaketags[b-y3c35n755d] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.intaketags .chip[b-y3c35n755d] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 1px 5px;
    border: 1px solid var(--ihs-rule);
    border-radius: 2px;
    color: var(--ihs-ink-muted);
    white-space: nowrap;
}
.intaketags a[b-y3c35n755d] { font-size: 12px; white-space: nowrap; }

@media (max-width: 700px) {
    /* Stack rather than squeeze: the filename is the part worth the width. */
    .intakerow[b-y3c35n755d] { grid-template-columns: 84px minmax(0, 1fr); }
    .intaketags[b-y3c35n755d] { grid-column: 2; justify-content: flex-start; }
}

.silence[b-y3c35n755d] {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 9px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
    font-size: 13px;
    color: var(--ihs-ink-muted);
}
.silence:last-of-type[b-y3c35n755d] { border-bottom: 0; }
.sdays.mid[b-y3c35n755d] { color: var(--ihs-warning-ink); }
.sdays.long[b-y3c35n755d] { color: var(--ihs-danger-ink); }

/* The account is one click from the deal. Underline on hover only: the heading should
   read as a heading first and a link second. */
.orglink[b-y3c35n755d] { color: inherit; text-decoration: none; }
.orglink:hover[b-y3c35n755d] { text-decoration: underline; }

/* The correspondence list. Date and direction are fixed-width so the eye can scan the
   subjects, which are the part worth reading. */
.msgline[b-y3c35n755d] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 5px 0;
    border-top: 1px solid var(--ihs-rule, #e4e4e8);
    font-size: 13px;
}
.msgline:first-of-type[b-y3c35n755d] { border-top: none; }
.msgline .when[b-y3c35n755d] { flex: 0 0 82px; color: var(--ihs-ink-muted, #6c6d74); font-size: 12px; }
.msgline .dir[b-y3c35n755d] { flex: 0 0 12px; color: var(--ihs-ink-muted, #6c6d74); }
.msgline .grow[b-y3c35n755d] { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.msgline .track[b-y3c35n755d] { flex: 0 0 84px; text-align: right; font-size: 11px; }

/* Two lines of the message under its subject. Clamped rather than truncated on one line: a
   sentence that wraps once reads as prose, where an ellipsis mid-first-line reads as a fragment.
   -webkit-line-clamp is the only cross-browser way to bound by LINES rather than characters, and
   the box model it needs is why display is -webkit-box here. */
.msgline .msgbody[b-y3c35n755d] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.45;
    color: var(--ihs-ink-muted, #6c6d74);
}

/* What the message carried. One line per attachment rather than a wrapping run of them: a
   counterparty's filename is long and arbitrary, and two on one line truncate each other. */
.msgline .msgfiles[b-y3c35n755d] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 4px;
}
.msgline .msgfile[b-y3c35n755d] {
    display: flex;
    align-items: baseline;
    gap: 5px;
    font-size: 12px;
    min-width: 0;
}
.msgline .msgfile .clip[b-y3c35n755d] { flex: none; font-size: 10px; opacity: .75; }

/* An unidentified document is work waiting for a person, so it reads as a prompt rather than a
   label — amber, and a link straight to where the kind is set. */
.msgline .msgfile .unid[b-y3c35n755d] {
    flex: none;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-warning-ink, #9b5b14);
    border: 1px dashed var(--ihs-warning-ink, #9b5b14);
    border-radius: 2px;
    padding: 0 4px;
    white-space: nowrap;
    text-decoration: none;
}
.panel-caption.split[b-y3c35n755d] { display: flex; justify-content: space-between; gap: 12px; }
.dim[b-y3c35n755d] { color: var(--ihs-ink-muted, #6c6d74); }

/* Where the deal went. Its own line under the chips rather than a chip of its own:
   naming what is being delivered does not fit in one, and truncating it would defeat
   the point of using a name instead of an id. */
/* The bound SharePoint folder. Teal like the other outward links, and the arrow says it leaves
   Drew — a folder link opens SharePoint, which is a different place. */
.spfolder[b-y3c35n755d] { font-size: 13px; color: var(--ihs-teal, #0f5f66); overflow-wrap: anywhere; }
.spfolder .ext[b-y3c35n755d] { font-size: 10px; opacity: .8; }

.delivers[b-y3c35n755d] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 12px;
    margin-top: 12px;
    font-size: 13px;
}
.delivers .dlabel[b-y3c35n755d] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
}

/* ---- Q75: where this account came from ---- */

.delivers .lead[b-y3c35n755d] { font-size: 13px; }
.delivers .lead-who[b-y3c35n755d] { font-size: 13px; }
/* A text button, because "set it" sits inside a sentence rather than beside one. */
.btn.link[b-y3c35n755d] {
    background: none;
    border: none;
    padding: 0;
    font-size: 13px;
    color: var(--ihs-teal, #0f5f66);
    text-decoration: underline;
    cursor: pointer;
}

.setlead[b-y3c35n755d] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    margin-top: 10px;
    padding: 12px;
    background: var(--ihs-bg-muted);
    border-radius: 4px;
}
/* minmax(0, …) rather than a bare width: a `1fr`-ish flex child has an automatic minimum
   of min-content, and one long unbroken option string widens it past the panel. Recorded
   in SESSION-STATE from the proposal page, which shipped without it. */
.setlead label[b-y3c35n755d] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.setlead label.grow[b-y3c35n755d] { flex: 1 1 180px; }
.setlead .flabel[b-y3c35n755d] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
}
.setlead input[b-y3c35n755d], .setlead select[b-y3c35n755d] {
    font: inherit;
    font-size: 13px;
    padding: 5px 7px;
    max-width: 100%;
    border: 1px solid var(--ihs-border);
    border-radius: 3px;
}

/* ---- Q76: the cast, grouped by phase ---- */

.castphase + .castphase[b-y3c35n755d] { margin-top: 12px; }
.cphase[b-y3c35n755d] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
    padding-bottom: 4px;
    border-bottom: 1px solid var(--ihs-rule-inner);
    margin-bottom: 6px;
}
.castrow[b-y3c35n755d] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 8px;
    padding: 4px 0;
    font-size: 13px;
}
.castrow .dim[b-y3c35n755d] { color: var(--ihs-ink-muted); font-size: 12px; }

/* ---- stage correction ---- */

.notice[b-y3c35n755d] {
    background: var(--ihs-success-wash);
    border: 1px solid #cfe9da;
    padding: 11px 16px;
    font-size: 13px;
    color: var(--ihs-success-ink);
    margin-bottom: 16px;
}
.notice.bad[b-y3c35n755d] {
    background: var(--ihs-warning-note-bg);
    border-color: var(--ihs-warning);
    color: var(--ihs-danger-ink);
}

.correct[b-y3c35n755d] { margin-bottom: 20px; }
.correct .lede[b-y3c35n755d] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    max-width: 76ch;
    margin-bottom: 14px;
}
.correct .row[b-y3c35n755d] {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
}
.correct label[b-y3c35n755d] { display: flex; flex-direction: column; gap: 5px; }
.correct label.grow[b-y3c35n755d] { flex: 1; min-width: 260px; }
.correct .flabel[b-y3c35n755d] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
}
.correct select[b-y3c35n755d],
.correct input[b-y3c35n755d] {
    font-family: inherit;
    font-size: 13px;
    color: var(--ihs-ink);
    border: 1px solid var(--ihs-border);
    border-radius: var(--ihs-radius-input);
    padding: 6px 10px;
    background: #fff;
}
.correct .consequence[b-y3c35n755d] {
    margin-top: 12px;
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-warning-note-ink);
    background: var(--ihs-warning-note-bg);
    border-left: 2px solid var(--ihs-warning);
    padding: 10px 14px;
    max-width: 88ch;
}

/* ---- cards answerable on the deal itself ----
   Same shape as the account page's panel, so a card looks the same wherever it is met. */

.deal-cards[b-y3c35n755d] { margin-bottom: 20px; }

.cardline[b-y3c35n755d] {
    display: flex;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid var(--ihs-rule, #e4e4e8);
    font-size: 13px;
}
.cardline:first-of-type[b-y3c35n755d] { border-top: none; }

.cardline .kind[b-y3c35n755d] {
    flex: 0 0 132px;
    font-size: 11px;
    color: var(--ihs-ink-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    padding-top: 2px;
}

.cardline .cardbody[b-y3c35n755d] { flex: 1; min-width: 0; }
.cardline .evidence[b-y3c35n755d] { color: var(--ihs-ink-muted); }

/* ---- what they asked for ----
   The intake row and the forecast in one list: they were two panels saying overlapping
   things. Service line first, drillable to the studies underneath. */

.intake[b-y3c35n755d] { margin-bottom: 20px; }

.sl[b-y3c35n755d] {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) 90px 90px 130px;
    gap: 12px;
    align-items: baseline;
    padding: 9px 0;
    font-size: 13px;
}
.sl.head[b-y3c35n755d] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    padding-bottom: 4px;
}
.sl.head span:nth-child(3)[b-y3c35n755d], .sl.head span:nth-child(4)[b-y3c35n755d] { text-align: right; }
.sl.body[b-y3c35n755d] { border-top: 1px solid var(--ihs-rule-inner); cursor: pointer; }
.sl.body:hover[b-y3c35n755d] { background: var(--ihs-bg-muted); }
.sl .caret[b-y3c35n755d] { color: var(--ihs-ink-muted); font-size: 11px; }
.sl .slname[b-y3c35n755d] { color: var(--ihs-ink-heading); }
.sl .slname .chip[b-y3c35n755d] { margin-left: 8px; }
.sl .tnum[b-y3c35n755d] { text-align: right; }
.sl .dim[b-y3c35n755d] { color: var(--ihs-ink-muted); }

/* The studies under a service line. Indented under the caret so the hierarchy is legible
   without a border doing the work. */
.studies[b-y3c35n755d] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 96px 96px 78px 88px 200px;
    gap: 12px;
    align-items: baseline;
    padding: 6px 0 6px 30px;
    font-size: 12px;
}
.studies.head[b-y3c35n755d] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    background: var(--ihs-bg-muted);
}
.studies.head span:nth-child(4)[b-y3c35n755d], .studies.head span:nth-child(5)[b-y3c35n755d] { text-align: right; }
.studies.body[b-y3c35n755d] { border-top: 1px solid var(--ihs-rule-inner); }

/* A row the client left blank is a DECLINE (Q39), dimmed but never hidden: what they did
   not ask for is half of what a proposal has to get right. */
.studies.unstated .sdesc[b-y3c35n755d] { color: var(--ihs-ink-muted); }
.studies .sdesc[b-y3c35n755d] { overflow-wrap: anywhere; }
.studies .tnum[b-y3c35n755d] { text-align: right; }

/* Q81: the CPT on an overread row is the study being overread, not what IHS bills. Stacked
   under the code rather than beside it because the column is 96px and the caveat matters more
   than keeping the row one line high. */
.studies .modetag[b-y3c35n755d] {
    display: block;
    margin-top: 2px;
    font-family: var(--ihs-font);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-accent, #9a5b00);
    border: 1px solid currentColor;
    border-radius: 2px;
    padding: 0 3px;
    width: fit-content;
    cursor: help;
}
.studies .task[b-y3c35n755d] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.studies .dim[b-y3c35n755d] { color: var(--ihs-ink-muted); }

@media (max-width: 900px) {
    .sl[b-y3c35n755d] { grid-template-columns: 18px minmax(0, 1fr) 76px 76px; }
    .sl .slnote[b-y3c35n755d], .sl.head span:nth-child(5)[b-y3c35n755d] { display: none; }
    .studies[b-y3c35n755d] { grid-template-columns: minmax(0, 1fr) 70px 78px; }
    .studies span:nth-child(2)[b-y3c35n755d], .studies span:nth-child(3)[b-y3c35n755d], .studies span:nth-child(6)[b-y3c35n755d] { display: none; }
}

/* ---- go-live and the forecast (Q47) ---- */

.golive[b-y3c35n755d] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 20px;
    margin-bottom: 20px;
    background: var(--ihs-bg-muted);
    font-size: 13px;
}
.golive .glabel[b-y3c35n755d] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
}
.golive .gvalue[b-y3c35n755d] { color: var(--ihs-ink-heading); font-weight: 600; }
.golive .gdate[b-y3c35n755d] { font-size: 13px; padding: 3px 6px; }
.golive .pencil[b-y3c35n755d] { border: 0; background: none; cursor: pointer; color: var(--ihs-blue); }

.reanchor[b-y3c35n755d] { margin-bottom: 20px; }
.reanchor p[b-y3c35n755d] { font-size: 14px; margin-bottom: 10px; }

.forecast[b-y3c35n755d] { overflow: hidden; margin-bottom: 20px; }
.forecast .note[b-y3c35n755d] {
    font-size: 13px;
    color: var(--ihs-ink-muted);
    margin: 6px 0 12px;
    max-width: 68ch;
}
.forecast .scroller[b-y3c35n755d] { overflow-x: auto; }
.forecast .grid[b-y3c35n755d] { border-collapse: collapse; font-size: 12px; width: 100%; }
.forecast .grid th[b-y3c35n755d],
.forecast .grid td[b-y3c35n755d] {
    padding: 6px 8px;
    border-bottom: 1px solid var(--ihs-rule-inner);
    white-space: nowrap;
    text-align: left;
}
.forecast .grid th[b-y3c35n755d] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    font-weight: 500;
}
.forecast .grid .num[b-y3c35n755d] { text-align: right; }
/* The study name stays put while the months scroll — the row is meaningless without it. */
.forecast .grid .stick[b-y3c35n755d] {
    position: sticky;
    left: 0;
    background: var(--ihs-bg);
    text-align: left;
    min-width: 210px;
}
.forecast .was[b-y3c35n755d] {
    display: block;
    font-size: 11px;
    color: var(--ihs-warning-ink);
}
.forecast .vol[b-y3c35n755d] { width: 72px; text-align: right; font-size: 12px; padding: 3px 5px; }
.forecast .dim[b-y3c35n755d] { color: var(--ihs-ink-muted); }

/* Q68 — the team's own reading of an internal message, on the message. Distinguished from the
   excerpt above it because they are different kinds of thing: one is what somebody typed, the
   other is what a model made of it, and blurring that is how inference starts reading as fact. */
.msgintel[b-y3c35n755d] {
    display: block;
    font-size: 12px;
    line-height: 17px;
    color: var(--ihs-ink-body);
    margin-top: 4px;
    padding-left: 8px;
    border-left: 2px solid #8661c5;
}
.msgintel .tag[b-y3c35n755d] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #5b2e91;
    margin-right: 6px;
}

.teamnotes .note[b-y3c35n755d] {
    padding: 10px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.teamnotes .note:last-of-type[b-y3c35n755d] { border-bottom: 0; }
.teamnotes .claim[b-y3c35n755d] {
    font-size: 14px;
    line-height: 20px;
    color: var(--ihs-ink-heading);
    text-wrap: pretty;
}
/* The quote is the evidence, so it is legible rather than decorative — a reader checking a
   claim should not have to squint at the thing they are checking it against. */
.teamnotes .quote[b-y3c35n755d] {
    font-size: 12px;
    line-height: 18px;
    color: var(--ihs-ink-muted);
    margin-top: 3px;
    font-style: italic;
}

/* ---- Q79: the amendment surface. Only rendered on pursuit.kind = 'amendment'. ---- */
.amendment .purpose[b-y3c35n755d] { margin-bottom: 14px; }
.amendment .purpose p[b-y3c35n755d] { margin: 4px 0 0; font-size: 13.5px; line-height: 1.55; max-width: 76ch; }
.amendment .nlabel[b-y3c35n755d] {
    display: block; font-size: 10.5px; text-transform: uppercase;
    letter-spacing: .05em; color: var(--ihs-ink-muted);
}
.amendment .motionrow[b-y3c35n755d] {
    display: flex; flex-wrap: wrap; gap: 16px 22px; align-items: flex-end;
    padding-top: 10px; border-top: 1px solid var(--ihs-rule-inner);
}
.amendment .motionrow label[b-y3c35n755d] {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em;
    color: var(--ihs-ink-muted);
}
.amendment .motionrow .fixed[b-y3c35n755d] {
    font-size: 13px; text-transform: none; letter-spacing: 0; color: var(--ihs-ink-heading);
}
.amendment .motionrow select[b-y3c35n755d] { font-size: 12px; padding: 4px 6px; }
.amendment .motionrow .grow[b-y3c35n755d] { flex: 1; }
.amendment .notice[b-y3c35n755d] { margin: 12px 0; font-size: 12.5px; }

.amendment .proposals[b-y3c35n755d] { margin-top: 14px; }
.amendment .proposal[b-y3c35n755d] {
    border: 1px solid var(--ihs-rule-inner); border-radius: 4px;
    padding: 10px 12px; margin-top: 8px;
}
.amendment .proposal .pmain[b-y3c35n755d] { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
.amendment .proposal .quote[b-y3c35n755d] {
    margin-top: 5px; font-size: 11.5px; font-style: italic; color: var(--ihs-ink-muted);
}
.amendment .proposal .pact[b-y3c35n755d] {
    display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-top: 9px;
}
.amendment .proposal .pact label[b-y3c35n755d] {
    display: flex; flex-direction: column; gap: 3px;
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.amendment .proposal .pact input[b-y3c35n755d] { font-size: 12px; padding: 4px 6px; }
.amendment .proposal .pact .num[b-y3c35n755d] { width: 96px; text-align: right; }
.amendment .proposal .pact .narrow[b-y3c35n755d] { width: 62px; }
/* /Components/Pages/DealDocuments.razor.rz.scp.css */
/* The Documents tab. Same two-column shell as the proposal and PSA surfaces so all three read as
   siblings — but no form, because nothing here is generated. */
.panel[b-p06hyzpc1h] { margin-bottom: 20px; }
.lede[b-p06hyzpc1h] { margin: 0 0 18px; max-width: 70ch; color: var(--ihs-ink-muted); line-height: 1.5; }

/* minmax(0, 1fr), not 1fr: a 1fr track's automatic minimum is min-content, so one long unbroken
   filename widens the track past the viewport and takes the whole page with it. That is exactly how
   the proposal tab first shipped broken. */
.cols[b-p06hyzpc1h] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: start;
}
.main[b-p06hyzpc1h] { min-width: 0; }

.rail[b-p06hyzpc1h] { position: sticky; top: 12px; }
.rail .panel[b-p06hyzpc1h] { padding: 14px 16px; }

@media (max-width: 1100px) {
    .cols[b-p06hyzpc1h] { grid-template-columns: minmax(0, 1fr); }
    .rail[b-p06hyzpc1h] { position: static; }
}

/* ---- one document ---- */
.drow[b-p06hyzpc1h] {
    padding: 9px 0;
    border-top: 1px solid var(--ihs-rule);
    min-width: 0;
}
.drow:first-of-type[b-p06hyzpc1h] { border-top: none; }

.dhead[b-p06hyzpc1h] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    min-width: 0;
}
.dwhen[b-p06hyzpc1h] { font-size: 11px; color: var(--ihs-ink-muted); flex: none; }

/* A counterparty's filename is arbitrary and often very long. Wrap it rather than letting it set the
   column width. */
.dname[b-p06hyzpc1h] {
    font-size: 13px;
    min-width: 0;
    flex: 1 1 260px;
    overflow-wrap: anywhere;
}

.dtags[b-p06hyzpc1h] { display: flex; gap: 5px; flex-wrap: wrap; flex: none; }

.chip[b-p06hyzpc1h] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 1px 5px;
    border: 1px solid var(--ihs-rule);
    border-radius: 2px;
    color: var(--ihs-ink-muted);
    white-space: nowrap;
}
.chip.filed[b-p06hyzpc1h] { border-color: var(--ihs-teal); color: var(--ihs-teal); }
.chip.by[b-p06hyzpc1h] { border-style: dashed; }

/* Held but never read. Amber and solid rather than dashed: this is a standing fact about the file,
   not a pending task, and it must not be mistakable for the neutral chips beside it. */
.chip.unscreened[b-p06hyzpc1h] {
    border-color: var(--ihs-warning-ink, #9b5b14);
    color: var(--ihs-warning-ink, #9b5b14);
    cursor: help;
}

.dacts[b-p06hyzpc1h] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 6px;
    font-size: 12px;
}
.dacts select[b-p06hyzpc1h] { font-size: 12px; padding: 3px 5px; max-width: 220px; }
.dacts a[b-p06hyzpc1h] { color: var(--ihs-teal); }
.dacts .sp[b-p06hyzpc1h] { white-space: nowrap; }

/* Not a link, and should not look like one: there is nothing to download. */
.nobytes[b-p06hyzpc1h] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    cursor: help;
}

/* ---- the add-a-document rail ---- */
.rail label[b-p06hyzpc1h] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 10px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.rail select[b-p06hyzpc1h] {
    font-size: 13px;
    padding: 5px 7px;
    width: 100%;
    box-sizing: border-box;   /* or padding pushes it past its own cell */
}
.rail input[type=file][b-p06hyzpc1h] { font-size: 12px; width: 100%; margin: 6px 0 10px; }

.btn.wide[b-p06hyzpc1h] { width: 100%; }
.btn.dense[b-p06hyzpc1h] { padding: 4px 9px; font-size: 12px; }

.docnote[b-p06hyzpc1h] {
    font-size: 11px;
    line-height: 1.5;
    color: var(--ihs-ink-muted);
    margin: 6px 0 0;
    overflow-wrap: anywhere;
}
.docnote.dim[b-p06hyzpc1h] { opacity: .8; }
.docnote.warn[b-p06hyzpc1h], .warn[b-p06hyzpc1h] { color: var(--ihs-amber, #a15c00); }

.ok[b-p06hyzpc1h] { color: var(--ihs-teal); }
.err[b-p06hyzpc1h] { color: var(--ihs-red, #a11); }
.empty[b-p06hyzpc1h] { color: var(--ihs-ink-muted); font-size: 13px; }
/* /Components/Pages/DealIntake.razor.rz.scp.css */
/* The Intake tab. Same two-column shell as the proposal, PSA and Documents surfaces so all four read
   as siblings. */
.panel[b-haumt9fpao] { margin-bottom: 20px; }

/* minmax(0, 1fr), not 1fr: a 1fr track's automatic minimum is min-content, so the verbatim
   extracted-text block — one long unbroken string in the worst case — would widen the track past the
   viewport and take the page with it. That is how the proposal tab first shipped broken. */
.intake-layout[b-haumt9fpao] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: start;
}
.intake-main[b-haumt9fpao] { min-width: 0; }

.intake-rail[b-haumt9fpao] { position: sticky; top: 12px; }
.intake-rail .panel[b-haumt9fpao] { padding: 14px 16px; }

@media (max-width: 1100px) {
    .intake-layout[b-haumt9fpao] { grid-template-columns: minmax(0, 1fr); }
    .intake-rail[b-haumt9fpao] { position: static; }
}

/* ---- the form's header ---- */
.identity[b-haumt9fpao] { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.identity h1[b-haumt9fpao] { margin: 0 0 4px; font-size: 20px; }
.who[b-haumt9fpao] { min-width: 0; }
.ident[b-haumt9fpao] { font-size: 12px; color: var(--ihs-ink-muted); overflow-wrap: anywhere; }
.chips[b-haumt9fpao] { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 8px; }
.totals[b-haumt9fpao] { text-align: right; flex: none; }
.totals .big[b-haumt9fpao] { font-size: 26px; line-height: 1.1; color: var(--ihs-ink-heading); }
.totals .cap[b-haumt9fpao] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}

/* ---- the study rows ---- */
.studies[b-haumt9fpao] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 88px 90px 90px;
    gap: 10px;
    padding: 5px 0;
    font-size: 13px;
    align-items: baseline;
}
.studies.head[b-haumt9fpao] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-rule);
    padding-bottom: 5px;
}
.studies.body[b-haumt9fpao] { border-top: 1px solid var(--ihs-rule-inner, #f0f0f2); }
/* A row the client left blank is the client declining, not a gap in the reading (Q39) — dimmed so it
   reads as an answer rather than an omission. */
.studies.body.unstated[b-haumt9fpao] { color: var(--ihs-ink-muted); }
.sdesc[b-haumt9fpao] { overflow-wrap: anywhere; }

/* Q81: on this tab there is no Vivien study-type column to correct the impression, so the CPT
   cell has to carry the caveat itself — the code is the study being OVERREAD, not what is
   billed. Stacked under the code because the column is 88px and the caveat outranks keeping
   the row one line high. */
.studies .modetag[b-haumt9fpao] {
    display: block;
    margin-top: 2px;
    font-family: var(--ihs-font);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #9a5b00;
    border: 1px solid currentColor;
    border-radius: 2px;
    padding: 0 3px;
    width: fit-content;
    cursor: help;
}

/* The same fact in words, next to the panel heading — a chip tells you the mode, a sentence
   tells you what it means, and the two together are what stop 200 reading as 200 CCTAs. */
.panel-caption .modenote[b-haumt9fpao] {
    margin-left: 10px;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    color: #9a5b00;
}
.vol[b-haumt9fpao] { text-align: right; }

.raw[b-haumt9fpao] {
    white-space: pre-wrap;      /* <pre> does not wrap, and this is arbitrary client text */
    overflow-wrap: anywhere;
    max-height: 340px;
    overflow-y: auto;
    font-size: 11.5px;
    line-height: 1.5;
    background: var(--ihs-bg-muted);
    padding: 10px 12px;
    margin: 0;
}
.note[b-haumt9fpao] { font-size: 12px; color: var(--ihs-ink-muted); margin: 0 0 10px; line-height: 1.5; }

/* ---- the forms-received rail ---- */
.formrow[b-haumt9fpao] {
    padding: 9px 0;
    border-top: 1px solid var(--ihs-rule);
    min-width: 0;
}
.formrow:first-of-type[b-haumt9fpao] { border-top: none; }
/* The form currently shown on the left. A left edge rather than a fill: the chips already carry
   direction and read-state, and a fill would fight them. */
.formrow.on[b-haumt9fpao] { box-shadow: inset 3px 0 0 var(--ihs-blue); padding-left: 9px; }

.formrow-head[b-haumt9fpao] { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.formrow-head .mono[b-haumt9fpao] { font-size: 11px; color: var(--ihs-ink-muted); }
.formrow-name[b-haumt9fpao] { font-size: 12.5px; margin-top: 3px; overflow-wrap: anywhere; }
.formrow-acts[b-haumt9fpao] { margin-top: 3px; font-size: 12px; }
.formrow-acts a[b-haumt9fpao] { color: var(--ihs-teal); }

.formrow-head .chip[b-haumt9fpao] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 1px 5px;
    border: 1px solid var(--ihs-rule);
    border-radius: 2px;
    color: var(--ihs-ink-muted);
    white-space: nowrap;
    background: none;
}
.formrow-head .chip.blue[b-haumt9fpao] { border-color: #0680d2; color: #0680d2; }

.docnote[b-haumt9fpao] {
    font-size: 11px;
    line-height: 1.5;
    color: var(--ihs-ink-muted);
    margin: 8px 0 0;
}
.empty[b-haumt9fpao] { color: var(--ihs-ink-muted); font-size: 13px; line-height: 1.55; }
.empty.small[b-haumt9fpao] { font-size: 12px; }
.dim[b-haumt9fpao] { color: var(--ihs-ink-muted); }
/* /Components/Pages/DealPricing.razor.rz.scp.css */
.page-head[b-am3dcdfw2g] { display: flex; align-items: flex-start; gap: 16px; }

/* Each section is its own card.
   Without this the panels stack flush — overview, basis, rate card and fee build-up ran
   together as one continuous slab divided by hairlines, so four separate things read as one
   long form. 20px is the gap the deal page already uses between its panels, so a card is
   spaced the same wherever it is met. */
.panel[b-am3dcdfw2g] { margin-bottom: 20px; }
.notice[b-am3dcdfw2g] { margin-bottom: 20px; }

/* Every computed number on the page rests on these four values, so they sit together at the
   top rather than being scattered through the grid. */
.basisrow[b-am3dcdfw2g] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 16px;
    padding: 4px 0 8px;
}
.basisrow label[b-am3dcdfw2g] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.basisrow .grow[b-am3dcdfw2g] { flex: 1; }
.basisrow select[b-am3dcdfw2g], .basisrow input[b-am3dcdfw2g] { font-size: 13px; padding: 5px 7px; }
.basisrow .num[b-am3dcdfw2g] { width: 92px; text-align: right; }
.basisrow .money[b-am3dcdfw2g] { width: 110px; }
.basisrow .pair[b-am3dcdfw2g] { display: flex; gap: 6px; }
/* The release is shown, not chosen: it moves only through Recompute, which is the act that
   also reprices — one decision, one control. */
.basisrow .fixed[b-am3dcdfw2g] {
    font-size: 13px;
    padding: 5px 0;
    color: var(--ihs-ink-heading);
    text-transform: none;
    letter-spacing: 0;
}
.caption-note.warn[b-am3dcdfw2g] { color: var(--ihs-warning-ink); }

.scroller[b-am3dcdfw2g] { overflow-x: auto; }
.grid[b-am3dcdfw2g] { border-collapse: collapse; font-size: 12px; width: 100%; }
.grid th[b-am3dcdfw2g], .grid td[b-am3dcdfw2g] {
    padding: 5px 7px;
    border-bottom: 1px solid var(--ihs-rule-inner);
    white-space: nowrap;
    vertical-align: top;
}
.grid th[b-am3dcdfw2g] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--ihs-ink-muted);
    font-weight: 500;
    text-align: left;
}
.grid th.num[b-am3dcdfw2g], .grid td.num[b-am3dcdfw2g] { text-align: right; }

/* The study name stays put while the money scrolls — a row of figures without it is
   unreadable, the same reason the forecast grid sticks its first column. */
.grid .stick[b-am3dcdfw2g] {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--ihs-bg);
    min-width: 250px;
    max-width: 250px;
    white-space: normal;
}
.grid .tname[b-am3dcdfw2g] { display: block; }
.grid .cpt[b-am3dcdfw2g] { display: block; font-size: 10.5px; }
.grid .warnline[b-am3dcdfw2g] {
    display: block;
    font-size: 10.5px;
    color: var(--ihs-warning-ink);
    margin-top: 2px;
}

.grid tr.off[b-am3dcdfw2g] { opacity: .5; }

.grid .method[b-am3dcdfw2g] { font-size: 11px; padding: 2px 4px; }
/* A negotiated line should be visible as one while scanning the column, before any label
   is read. */
.grid .method.over[b-am3dcdfw2g] { color: var(--ihs-warning-ink); font-weight: 600; }

.grid .vol[b-am3dcdfw2g] {
    width: 74px;
    box-sizing: border-box;
    text-align: right;
    font-size: 12px;
    font-family: var(--ihs-font-mono);
    padding: 3px 5px;
    border: 1px solid transparent;
    background: transparent;
}
.grid .vol:hover[b-am3dcdfw2g], .grid .vol:focus[b-am3dcdfw2g] { border-color: var(--ihs-border); background: #fff; }
.grid .vol:focus[b-am3dcdfw2g] { outline: none; border-color: var(--ihs-blue); }
.grid .computed[b-am3dcdfw2g] { color: var(--ihs-ink-heading); }

.grid .compare .peek[b-am3dcdfw2g] {
    background: none;
    border: 0;
    padding: 2px 4px;
    font-size: 11px;
    color: var(--ihs-ink-muted);
    cursor: pointer;
    border-radius: 3px;
}
.grid .compare .peek:hover[b-am3dcdfw2g] { background: var(--ihs-bg-muted); color: var(--ihs-blue); }
.grid .compare .n[b-am3dcdfw2g] { font-size: 9.5px; opacity: .7; margin-left: 3px; }

/* Margin bands. Quiet — a colour that shouts turns a working number into a verdict. */
.grid .thin[b-am3dcdfw2g] { color: var(--ihs-danger-ink); }
.grid .fat[b-am3dcdfw2g] { color: var(--ihs-ok, #2e7d51); }

.grid .rowact .src[b-am3dcdfw2g] { font-size: 10px; }

.grid tr.peers td[b-am3dcdfw2g] { background: var(--ihs-bg-muted); white-space: normal; }
.peerhead[b-am3dcdfw2g] {
    font-size: 11.5px;
    color: var(--ihs-ink-muted);
    padding: 4px 0 7px;
    max-width: 780px;
    line-height: 1.5;
}
.peerrow[b-am3dcdfw2g] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 90px 110px 160px;
    gap: 10px;
    align-items: baseline;
    padding: 3px 0;
    font-size: 12px;
}
.peerrow.self[b-am3dcdfw2g] { font-weight: 600; }
.peerrow .pname[b-am3dcdfw2g] { overflow: hidden; text-overflow: ellipsis; }
.peerrow .tnum[b-am3dcdfw2g] { text-align: right; }

.grid tr.total td[b-am3dcdfw2g] {
    border-top: 2px solid var(--ihs-border);
    border-bottom: 0;
    font-weight: 600;
    color: var(--ihs-ink-heading);
}

.unmapped[b-am3dcdfw2g] {
    font-size: 12.5px;
    padding: 4px 0;
    border-top: 1px solid var(--ihs-rule-inner);
    color: var(--ihs-ink-muted);
}

/* ---- overview: the deal in six numbers ---- */
.tiles[b-am3dcdfw2g] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 1px;
    background: var(--ihs-rule-inner);
    border: 1px solid var(--ihs-rule-inner);
    margin: 6px 0 10px;
}
.tile[b-am3dcdfw2g] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 13px;
    background: var(--ihs-bg);
}
.tile .tlabel[b-am3dcdfw2g] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--ihs-ink-muted);
}
.tile .tvalue[b-am3dcdfw2g] {
    font-size: 21px;
    font-weight: 600;
    color: var(--ihs-ink-heading);
    line-height: 1.15;
}
/* The bands are the same thresholds the rate card uses, so a percentage means the same
   thing wherever it appears on the page. */
.tile .tvalue.thin[b-am3dcdfw2g] { color: var(--ihs-danger-ink); }
.tile .tvalue.fat[b-am3dcdfw2g] { color: var(--ihs-ok, #2e7d51); }
.tile .tnote[b-am3dcdfw2g] {
    font-size: 11px;
    color: var(--ihs-ink-muted);
    line-height: 1.45;
}

.grid .vol.narrow[b-am3dcdfw2g] { width: 56px; }
.grid .peryear[b-am3dcdfw2g] { font-size: 9.5px; font-weight: 400; opacity: .65; }

/* ---- management fee build-up ---- */
.feerow[b-am3dcdfw2g] {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) 96px 110px 106px minmax(0, 1.5fr);
    gap: 10px;
    align-items: center;
    padding: 5px 0;
    font-size: 12.5px;
}
.feerow.head[b-am3dcdfw2g] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
/* The three amount columns are right-aligned in the header too, or the labels sit over
   nothing. */
.feerow.head span:nth-child(2)[b-am3dcdfw2g],
.feerow.head span:nth-child(3)[b-am3dcdfw2g],
.feerow.head span:nth-child(4)[b-am3dcdfw2g] { text-align: right; }

/* A row Drew computes from the rate card, so an edit to it will be overwritten by the
   update button — said quietly on the row rather than discovered afterwards. */
.feerow.computed .flabel[b-am3dcdfw2g] { color: var(--ihs-ink-heading); }
.feerow .fromvol[b-am3dcdfw2g] {
    display: inline-block;
    margin-left: 7px;
    padding: 1px 6px;
    border-radius: 9px;
    background: var(--ihs-bg-muted);
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.feerow.body[b-am3dcdfw2g] { border-top: 1px solid var(--ihs-rule-inner); }
.feerow .flabel[b-am3dcdfw2g] { line-height: 1.35; }
.feerow .num[b-am3dcdfw2g] { text-align: right; }

/* The amount inputs.
   `.vol` is styled under `.grid .vol` for the rate-card table, and these rows are a CSS
   grid rather than a table — so they inherited nothing and rendered at the browser's
   default input width, overflowing their columns and printing the notes on top of the
   Imager COGS figures. They fill their own column instead. */
.feerow .vol[b-am3dcdfw2g] {
    width: 100%;
    box-sizing: border-box;
    text-align: right;
    font-size: 12px;
    font-family: var(--ihs-font-mono);
    padding: 3px 6px;
    border: 1px solid transparent;
    background: transparent;
}
.feerow .vol:hover[b-am3dcdfw2g], .feerow .vol:focus[b-am3dcdfw2g] { border-color: var(--ihs-border); background: #fff; }
.feerow .vol:focus[b-am3dcdfw2g] { outline: none; border-color: var(--ihs-blue); }
.feerow .bucket[b-am3dcdfw2g] { font-size: 11.5px; padding: 3px 5px; width: 100%; }
/* The working behind a number is the thing that makes it defensible a year later, so it
   gets real width rather than a tooltip. */
.feerow .working[b-am3dcdfw2g] {
    width: 100%;
    font-size: 11.5px;
    padding: 3px 6px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--ihs-ink-muted);
}
.feerow .working:hover[b-am3dcdfw2g], .feerow .working:focus[b-am3dcdfw2g] {
    border-color: var(--ihs-border);
    background: #fff;
    color: var(--ihs-ink);
}
.feerow .working:focus[b-am3dcdfw2g] { outline: none; border-color: var(--ihs-blue); }
.feerow.total[b-am3dcdfw2g] {
    border-top: 2px solid var(--ihs-border);
    font-weight: 600;
    color: var(--ihs-ink-heading);
}
.feerow.total .dim[b-am3dcdfw2g] { font-weight: 400; font-size: 11.5px; }

.feefoot[b-am3dcdfw2g] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--ihs-rule-inner);
    font-size: 12.5px;
    color: var(--ihs-ink-muted);
    line-height: 1.5;
}
.feefoot span[b-am3dcdfw2g] { flex: 1; }

@media (max-width: 900px) {
    .feerow[b-am3dcdfw2g] { grid-template-columns: 1fr 1fr; }
    .feerow.head[b-am3dcdfw2g] { display: none; }
}

/* The rate card and the fee build-up, one at a time.
   Lighter than the Overview/Pricing strip above it — a sub-tab should read as a division
   within this page rather than compete with the deal's own navigation, so it carries no
   underline rule and sits on a filled pill instead. */
.subtabs[b-am3dcdfw2g] {
    display: flex;
    gap: 8px;
    margin: 0 0 20px;
}
.subtabs a[b-am3dcdfw2g] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px 15px;
    border: 1px solid var(--ihs-rule-inner);
    background: var(--ihs-bg);
    font-size: 13px;
    color: var(--ihs-ink-muted);
    text-decoration: none;
}
.subtabs a:hover[b-am3dcdfw2g] { color: var(--ihs-ink-heading); border-color: var(--ihs-border); }
.subtabs a.on[b-am3dcdfw2g] {
    color: var(--ihs-ink-heading);
    font-weight: 600;
    border-color: var(--ihs-blue);
    box-shadow: inset 0 -2px 0 var(--ihs-blue);
}
/* The state of each surface, so the choice is informed before it is made. */
.subtabs .sub[b-am3dcdfw2g] {
    font-size: 10.5px;
    font-weight: 400;
    color: var(--ihs-ink-muted);
}


/* A dollar sign on the editable columns.
   A number input cannot contain one, so the cell carries it. `:has()` rather than a class
   on every cell: the money inputs are exactly "a .vol that is not the volume count", and
   stating that once is better than tagging fourteen cells and missing one. Read-only cells
   are not matched — their text already carries the symbol. */
.grid td.num:has(input.vol:not(.narrow))[b-am3dcdfw2g]::before,
.feerow .num:has(input.vol)[b-am3dcdfw2g]::before {
    content: "$";
    color: var(--ihs-ink-muted);
    font-size: 11px;
    margin-right: 1px;
}
/* /Components/Pages/DealProposal.razor.rz.scp.css */
/* The proposal surface.
   Same card rhythm as the pricing tab — 20px between panels — so a card is spaced the same
   wherever it is met. */
.panel[b-rupmxg17nc] { margin-bottom: 20px; }
.notice[b-rupmxg17nc] { margin-bottom: 20px; }
.page-head[b-rupmxg17nc] { display: flex; align-items: flex-start; gap: 16px; }

/* ---- the two-column shell ----
   Review on the left, the documents rail on the right. `minmax(0, 1fr)` and not `1fr`: a grid
   track sized `1fr` has an automatic minimum of min-content, so one long unbroken string — a
   filename, a URL, a paragraph with no spaces — widens the track past the viewport and takes the
   whole page with it. That is what made the text run off the page. */
.proposal-layout[b-rupmxg17nc] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: start;
}
.proposal-main[b-rupmxg17nc] { min-width: 0; }

.proposal-rail[b-rupmxg17nc] { position: sticky; top: 12px; }
.proposal-rail .panel[b-rupmxg17nc] { padding: 14px 16px; }

@media (max-width: 1100px) {
    /* One column below the width where a 300px rail leaves the review too narrow to read. */
    .proposal-layout[b-rupmxg17nc] { grid-template-columns: minmax(0, 1fr); }
    .proposal-rail[b-rupmxg17nc] { position: static; }
}

/* ---- the generation form ---- */
.formgrid[b-rupmxg17nc] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 14px 16px;
    padding: 4px 0 10px;
}
.formgrid label[b-rupmxg17nc] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.formgrid select[b-rupmxg17nc],
.formgrid input[b-rupmxg17nc] {
    font-size: 13px;
    padding: 5px 7px;
    width: 100%;
    box-sizing: border-box;   /* or padding pushes an input past its own grid cell */
    max-width: 100%;
}
.formgrid .hint[b-rupmxg17nc] {
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ihs-ink-muted);
    line-height: 1.4;
}

.toggles[b-rupmxg17nc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    padding: 10px 0 4px;
    border-top: 1px solid var(--ihs-border);
}
.toggles .tlabel[b-rupmxg17nc] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--ihs-ink-muted);
}
.toggles .chk[b-rupmxg17nc] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12.5px;
    color: var(--ihs-ink-heading);
}
.toggles .chk input[b-rupmxg17nc] { margin: 0; }

.acts[b-rupmxg17nc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding-top: 10px;
}
.acts .dim[b-rupmxg17nc] {
    font-size: 11.5px;
    color: var(--ihs-ink-muted);
    line-height: 1.45;
    flex: 1 1 240px;
    min-width: 0;
}

.warn-panel[b-rupmxg17nc] { border-left: 2px solid var(--ihs-warning); }
.caption-note.warn[b-rupmxg17nc] { color: var(--ihs-warning-ink); }

/* ---- section review ---- */
.section.approved[b-rupmxg17nc] { border-left: 2px solid var(--ihs-ok, #2e7d51); }

/* The overflow fix that matters most.
   A <pre> does not wrap by default, so one composed paragraph — several hundred characters with no
   newline in it — rendered as a single line that pushed the page sideways. `pre-wrap` keeps the
   blank-line paragraph breaks the composer returns while wrapping the long lines, and
   `overflow-wrap: anywhere` catches the pathological case of a long unbroken token. */
.section-text[b-rupmxg17nc] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    margin: 6px 0 0;
    padding: 10px 12px;
    background: var(--ihs-bg-muted);
    border-radius: 3px;
    font-family: var(--ihs-font);
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--ihs-ink-heading);
    max-width: 100%;
}
.section-text.dim[b-rupmxg17nc] { color: var(--ihs-ink-muted); background: transparent; }

.section-edit[b-rupmxg17nc] {
    width: 100%;
    box-sizing: border-box;
    margin: 6px 0 0;
    padding: 10px 12px;
    font-family: var(--ihs-font);
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--ihs-ink-heading);
    border: 1px solid var(--ihs-border);
    border-radius: 3px;
    resize: vertical;
}
.section-edit:focus[b-rupmxg17nc] { outline: none; border-color: var(--ihs-blue); }

.doc-note[b-rupmxg17nc] {
    margin: 8px 0 0;
    font-size: 11.5px;
    color: var(--ihs-ink-muted);
}

/* ---- the built document ---- */
.filerow[b-rupmxg17nc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 4px 0 2px;
}
.filerow .mono[b-rupmxg17nc] {
    font-family: var(--ihs-font-mono);
    font-size: 11.5px;
    color: var(--ihs-ink-heading);
    overflow-wrap: anywhere;   /* the filename carries the client name and the title */
    min-width: 0;
}

/* ---- the documents rail ---- */
.docver[b-rupmxg17nc] {
    padding: 10px 0;
    border-top: 1px solid var(--ihs-border);
}
.docver:first-of-type[b-rupmxg17nc] { border-top: 0; padding-top: 4px; }
.docver.on[b-rupmxg17nc] { background: linear-gradient(90deg, var(--ihs-blue-tint) 0, transparent 60%); }

.docver-head[b-rupmxg17nc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.docver-head .v[b-rupmxg17nc] {
    font-size: 13px;
    font-weight: 600;
    font-family: var(--ihs-font-mono);
}
.docver-meta[b-rupmxg17nc] {
    font-size: 11px;
    color: var(--ihs-ink-muted);
    line-height: 1.5;
    margin-top: 2px;
}

.docfile[b-rupmxg17nc] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    font-size: 11.5px;
}
.docfile .ext[b-rupmxg17nc] {
    font-family: var(--ihs-font-mono);
    font-size: 9.5px;
    letter-spacing: .06em;
    padding: 2px 5px;
    border-radius: 2px;
    background: var(--ihs-bg-muted);
    color: var(--ihs-ink-muted);
}
/* The PDF is the client-facing format, so it is the one that gets the accent. */
.docfile .ext.pdf[b-rupmxg17nc] { background: var(--ihs-blue-tint); color: var(--ihs-blue-hover); }
.docfile .sp[b-rupmxg17nc] { margin-left: auto; white-space: nowrap; }

.docnote[b-rupmxg17nc] {
    margin: 6px 0 0;
    font-size: 10.5px;
    color: var(--ihs-ink-muted);
    line-height: 1.45;
}

.btn.wide[b-rupmxg17nc] { display: block; width: 100%; text-align: center; margin-top: 12px; }

.empty.small[b-rupmxg17nc] { font-size: 11.5px; line-height: 1.5; }
/* /Components/Pages/DealPsa.razor.rz.scp.css */
/* The PSA surface. Same card rhythm and the same two-column shell as the proposal tab, so the two
   generation surfaces read as siblings. */
.panel[b-oywp3k6uwm] { margin-bottom: 20px; }
.notice[b-oywp3k6uwm] { margin-bottom: 20px; }
.page-head[b-oywp3k6uwm] { display: flex; align-items: flex-start; gap: 16px; }

/* minmax(0, 1fr), not 1fr: a 1fr track's automatic minimum is min-content, so one long unbroken
   string widens the track past the viewport and takes the page with it. */
.psa-layout[b-oywp3k6uwm] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: start;
}
.psa-main[b-oywp3k6uwm] { min-width: 0; }

.psa-rail[b-oywp3k6uwm] { position: sticky; top: 12px; }
.psa-rail .panel[b-oywp3k6uwm] { padding: 14px 16px; }

@media (max-width: 1100px) {
    .psa-layout[b-oywp3k6uwm] { grid-template-columns: minmax(0, 1fr); }
    .psa-rail[b-oywp3k6uwm] { position: static; }
}

/* ---- the form ---- */
.formgrid[b-oywp3k6uwm] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px 16px;
    padding: 4px 0 10px;
}
.formgrid.indented[b-oywp3k6uwm] { padding-left: 22px; }
.formgrid label[b-oywp3k6uwm] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.formgrid select[b-oywp3k6uwm],
.formgrid input[b-oywp3k6uwm] {
    font-size: 13px;
    padding: 5px 7px;
    width: 100%;
    box-sizing: border-box;   /* or padding pushes an input past its own grid cell */
    max-width: 100%;
}
.formgrid .hint[b-oywp3k6uwm] {
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ihs-ink-muted);
    line-height: 1.4;
}

.chk[b-oywp3k6uwm] {
    display: flex;
    align-items: baseline;
    gap: 7px;
    font-size: 12.5px;
    color: var(--ihs-ink-heading);
    padding: 4px 0;
}
.chk input[b-oywp3k6uwm] { margin: 0; }

.chk.facility[b-oywp3k6uwm] { align-items: baseline; flex-wrap: wrap; }
.chk.facility .fname[b-oywp3k6uwm] { font-weight: 500; }
.chk.facility .faddr[b-oywp3k6uwm] { font-size: 11px; }

/* ---- the gap list: the refusal, made legible ---- */
.gaps[b-oywp3k6uwm] {
    margin: 6px 0 10px;
    padding-left: 20px;
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--ihs-danger-ink, #b3262e);
}

.acts[b-oywp3k6uwm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding-top: 8px;
}
.acts .dim[b-oywp3k6uwm] {
    font-size: 11.5px;
    color: var(--ihs-ink-muted);
    flex: 1 1 220px;
    min-width: 0;
}

.warn-panel[b-oywp3k6uwm] { border-left: 2px solid var(--ihs-warning); }
.caption-note.warn[b-oywp3k6uwm] { color: var(--ihs-warning-ink); }
.panel.accent-danger[b-oywp3k6uwm] { border-left: 2px solid var(--ihs-danger); }

/* ---- the rail ---- */
.docver[b-oywp3k6uwm] { padding: 10px 0; border-top: 1px solid var(--ihs-border); }
.docver:first-of-type[b-oywp3k6uwm] { border-top: 0; padding-top: 4px; }

.docver-head[b-oywp3k6uwm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.docver-head .v[b-oywp3k6uwm] {
    font-size: 13px;
    font-weight: 600;
    font-family: var(--ihs-font-mono);
}
.docver-meta[b-oywp3k6uwm] {
    font-size: 11px;
    color: var(--ihs-ink-muted);
    line-height: 1.5;
    margin-top: 2px;
}

.docfile[b-oywp3k6uwm] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    font-size: 11.5px;
}
.docfile .ext[b-oywp3k6uwm] {
    font-family: var(--ihs-font-mono);
    font-size: 9.5px;
    letter-spacing: .06em;
    padding: 2px 5px;
    border-radius: 2px;
    background: var(--ihs-bg-muted);
    color: var(--ihs-ink-muted);
}
/* The PDF is the client-facing format; the diff is the internal one, and they should not be
   mistaken for each other at a glance. */
.docfile .ext.pdf[b-oywp3k6uwm] { background: var(--ihs-blue-tint); color: var(--ihs-blue-hover); }
.docfile .ext.redline[b-oywp3k6uwm] { background: #ffe9d6; color: #a55600; }
.docfile .sp[b-oywp3k6uwm] { margin-left: auto; white-space: nowrap; }

.docnote[b-oywp3k6uwm] {
    margin: 6px 0 0;
    font-size: 10.5px;
    color: var(--ihs-ink-muted);
    line-height: 1.45;
}
.docnote.warn[b-oywp3k6uwm] { color: var(--ihs-warning-ink); }

.section-text[b-oywp3k6uwm] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    margin: 6px 0 0;
    padding: 9px 11px;
    background: var(--ihs-bg-muted);
    border-radius: 3px;
    font-family: var(--ihs-font);
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--ihs-ink-heading);
    max-width: 100%;
}

.btn.wide[b-oywp3k6uwm] { display: block; width: 100%; text-align: center; margin-top: 10px; }
.empty.small[b-oywp3k6uwm], .dim.small[b-oywp3k6uwm], .mono.small[b-oywp3k6uwm] { font-size: 11px; line-height: 1.5; }
/* /Components/Pages/EngagementDetail.razor.rz.scp.css */
/* Deliberately the deal page's header geometry. An engagement and a pursuit are peers —
   two lifecycles on one account — and giving delivery a different-looking header would
   imply it is a sub-page of something. */

.back[b-6btcyq8xxa] {
    font-size: 13px;
    display: inline-block;
    margin-bottom: 14px;
}

.identity[b-6btcyq8xxa] {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 22px 26px;
    margin-bottom: 20px;
}
.who[b-6btcyq8xxa] { flex: 1; min-width: 0; }
.identity h1[b-6btcyq8xxa] { font-size: 36px; line-height: 44px; overflow-wrap: anywhere; }
.orglink[b-6btcyq8xxa] { color: inherit; text-decoration: none; }
.orglink:hover[b-6btcyq8xxa] { text-decoration: underline; }

.ident[b-6btcyq8xxa] {
    font-size: 13px;
    color: var(--ihs-ink-muted);
    margin-top: 6px;
    overflow-wrap: anywhere;
}
.chips[b-6btcyq8xxa] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.acts[b-6btcyq8xxa] { display: flex; gap: 8px; flex: none; flex-wrap: wrap; justify-content: flex-end; max-width: 320px; }

.note[b-6btcyq8xxa] { margin-bottom: 20px; font-size: 13px; }

.cols[b-6btcyq8xxa] {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(280px, 1fr);
    gap: 20px;
    align-items: start;
}
.col[b-6btcyq8xxa] { display: flex; flex-direction: column; gap: 20px; min-width: 0; }

@media (max-width: 1100px) {
    .cols[b-6btcyq8xxa] { grid-template-columns: minmax(0, 1fr); }
}

.caption-note[b-6btcyq8xxa] {
    font-size: 12px;
    line-height: 19px;
    color: var(--ihs-ink-muted);
    margin: 10px 0 4px;
    text-wrap: pretty;
}

/* ---- service lines ---- */

.lines[b-6btcyq8xxa] { margin-top: 12px; }
.line[b-6btcyq8xxa] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 96px 160px 90px;
    gap: 12px;
    align-items: center;
    padding: 9px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.line.ended[b-6btcyq8xxa] { color: var(--ihs-nav-link); }
.line .mod[b-6btcyq8xxa] { font-size: 14px; text-transform: uppercase; letter-spacing: .04em; }
/* The mode carries as much commercial weight as the modality (4.3x on the same CPT), so
   it reads as part of the name rather than as metadata beside it. */
.line .mode[b-6btcyq8xxa] {
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ihs-ink-muted);
    margin-left: 6px;
}
.line .mode.over[b-6btcyq8xxa] { color: var(--ihs-warning-note-ink); }
.line .heading[b-6btcyq8xxa] {
    display: block;
    font-size: 11px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ihs-nav-link);
    margin-top: 2px;
}
.line .dates[b-6btcyq8xxa] { font-size: 12px; color: var(--ihs-ink-muted); }
.line .act[b-6btcyq8xxa] { text-align: right; }

.addline[b-6btcyq8xxa] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}
.addline select[b-6btcyq8xxa] {
    font-family: inherit;
    font-size: 13px;
    color: var(--ihs-ink);
    border: 1px solid var(--ihs-border);
    border-radius: var(--ihs-radius-input);
    padding: 6px 10px;
    background: #fff;
}
.deferred[b-6btcyq8xxa] { font-size: 11px; color: var(--ihs-nav-link); font-style: italic; }

.pencil[b-6btcyq8xxa] {
    background: none;
    border: 0;
    padding: 0;
    font-family: inherit;
    font-size: 12px;
    color: var(--ihs-nav-link);
    cursor: pointer;
}
.pencil:hover[b-6btcyq8xxa] { color: var(--ihs-blue); }
.pencil.danger:hover[b-6btcyq8xxa] { color: var(--ihs-danger-ink); }

/* ---- activity ---- */

.msgs[b-6btcyq8xxa] { margin-top: 12px; }
.msg[b-6btcyq8xxa] {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr) 120px;
    gap: 12px;
    align-items: start;
    padding: 9px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.msg .when[b-6btcyq8xxa] { font-size: 12px; color: var(--ihs-ink-muted); }
.msg .subj[b-6btcyq8xxa] { min-width: 0; font-size: 13px; overflow-wrap: anywhere; }
.msg .atts[b-6btcyq8xxa] {
    font-size: 11px;
    color: var(--ihs-nav-link);
    margin-top: 3px;
    overflow-wrap: anywhere;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
}
.msg .trk[b-6btcyq8xxa] { text-align: right; }

.adopt[b-6btcyq8xxa] {
    margin-top: 18px;
    padding: 14px 16px;
    background: var(--ihs-blue-wash);
    border-left: 2px solid var(--ihs-blue);
}
.adopt-head[b-6btcyq8xxa] { font-size: 13px; line-height: 20px; }
.adopt p[b-6btcyq8xxa] {
    font-size: 12px;
    line-height: 19px;
    color: var(--ihs-ink-muted);
    margin: 8px 0 12px;
    text-wrap: pretty;
}

/* ---- side panels ---- */

/* Q79 — changing the agreement, from the panel that shows the chain. */
.inwork[b-6btcyq8xxa] { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--ihs-rule-inner); }
.openamd[b-6btcyq8xxa] { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--ihs-rule-inner); }
.openamd label[b-6btcyq8xxa] {
    display: block; font-size: 10.5px; text-transform: uppercase;
    letter-spacing: .05em; color: var(--ihs-ink-muted); margin-bottom: 8px;
}
.openamd textarea[b-6btcyq8xxa] {
    display: block; width: 100%; margin-top: 4px; font-size: 12px;
    text-transform: none; letter-spacing: 0; padding: 6px 8px; resize: vertical;
}

.kv[b-6btcyq8xxa] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    font-size: 13px;
    padding: 7px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.kv > span:first-child[b-6btcyq8xxa] { color: var(--ihs-ink-muted); flex: none; }
.kv > span:last-child[b-6btcyq8xxa] { text-align: right; overflow-wrap: anywhere; }

.gate[b-6btcyq8xxa] {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    padding: 6px 0;
    cursor: pointer;
}

/* The instrument as a file. A row per document, executed copy first — wrapping rather
   than truncating, because a contract filename carries the date and the parties and
   cutting it off loses exactly what identifies it. */
.agdoc[b-6btcyq8xxa] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 9px;
    font-size: 13px;
    padding: 7px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.agdoc a[b-6btcyq8xxa] { overflow-wrap: anywhere; }
.agdoc .dim[b-6btcyq8xxa] { color: var(--ihs-ink-muted); }
.agdoc .small[b-6btcyq8xxa] { font-size: 11.5px; }

/* The deal that won this engagement. Mirrors Deal.razor's `.delivers`, because the two
   pages are peers and the link between them should look the same from either side. */
.from-deal[b-6btcyq8xxa] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 12px;
    margin-top: 10px;
    font-size: 13px;
}
.from-deal .dlabel[b-6btcyq8xxa] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
}

/* Q68 — dates that can be typed. Styled to sit in the kv grid as if they were the text they
   replace, so the panel does not turn into a form: it is a record that happens to be editable. */
.dateinput[b-6btcyq8xxa] {
    border: 1px solid transparent;
    background: transparent;
    padding: 1px 4px;
    font: inherit;
    color: var(--ihs-ink-body);
    border-radius: 3px;
    max-width: 100%;
}
.dateinput:hover[b-6btcyq8xxa] { border-color: var(--ihs-rule-inner); background: var(--ihs-bg-muted); }
.dateinput:focus[b-6btcyq8xxa] { border-color: var(--ihs-blue); background: #fff; outline: none; }
.dateinput.soon[b-6btcyq8xxa] { color: var(--ihs-danger-ink); font-weight: 600; }
.caption-note.warn[b-6btcyq8xxa] { color: var(--ihs-danger-ink); }

/* Q70 — the standing narrative, matching the deal page's treatment exactly. Scoped styles do
   not cross components, so the shape is repeated here; the shared parts (.next, .nlabel,
   .stale) live in app.css so the two pages cannot drift in voice. */
.read[b-6btcyq8xxa] {
    display: flex;
    gap: 18px;
    margin-bottom: 20px;
}
.read p[b-6btcyq8xxa] {
    font-size: 16px;
    line-height: 26px;
    color: var(--ihs-ink-heading);
    text-wrap: pretty;
}
.read .sign[b-6btcyq8xxa] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}
.read .rule[b-6btcyq8xxa] { width: 34px; height: 1px; background: var(--ihs-border); flex: none; }
.read .meta[b-6btcyq8xxa] { font-size: 12px; color: var(--ihs-ink-muted); }
/* /Components/Pages/EngagementRates.razor.rz.scp.css */
/* Q79 — the engagement's in-force rate card. Read-only by design, so this is the deal
   pricing page's table with the inputs taken out and provenance put in. */

.back[b-cvy0hwpp25] { display: inline-block; margin-bottom: 12px; font-size: 12px; }
.page-head[b-cvy0hwpp25] { margin-bottom: 18px; }
.page-head h1[b-cvy0hwpp25] { margin: 0 0 4px; }
.subhead[b-cvy0hwpp25] { color: var(--ihs-ink-muted); font-size: 13px; max-width: 74ch; line-height: 1.5; }
.panel[b-cvy0hwpp25] { margin-bottom: 20px; }
.notice[b-cvy0hwpp25] { margin-bottom: 20px; }
.notice.bad[b-cvy0hwpp25] { color: var(--ihs-danger-ink); }
.caption-note.warn[b-cvy0hwpp25] { color: var(--ihs-warning-ink); }

.factrow[b-cvy0hwpp25] {
    display: flex; flex-wrap: wrap; gap: 18px 26px;
    align-items: flex-end; margin: 10px 0 4px;
}
.factrow label[b-cvy0hwpp25] {
    display: flex; flex-direction: column; gap: 4px;
    font-size: 11px; text-transform: uppercase; letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.factrow .fixed[b-cvy0hwpp25] {
    font-size: 13px; text-transform: none; letter-spacing: 0;
    color: var(--ihs-ink-heading);
}

.tiles[b-cvy0hwpp25] { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; }
.tile[b-cvy0hwpp25] {
    flex: 1 1 190px; min-width: 170px;
    border: 1px solid var(--ihs-rule-inner); border-radius: 4px; padding: 10px 12px;
}
.tile .tlabel[b-cvy0hwpp25] {
    display: block; font-size: 10.5px; text-transform: uppercase;
    letter-spacing: .05em; color: var(--ihs-ink-muted);
}
.tile .tvalue[b-cvy0hwpp25] { display: block; font-size: 21px; margin: 3px 0 2px; }
.tile .tnote[b-cvy0hwpp25] { display: block; font-size: 10.5px; color: var(--ihs-ink-muted); line-height: 1.4; }

.scroller[b-cvy0hwpp25] { overflow-x: auto; }
.grid[b-cvy0hwpp25] { border-collapse: collapse; font-size: 12px; width: 100%; }
.grid th[b-cvy0hwpp25], .grid td[b-cvy0hwpp25] {
    padding: 6px 8px; border-bottom: 1px solid var(--ihs-rule-inner);
    white-space: nowrap; vertical-align: top;
}
.grid th[b-cvy0hwpp25] {
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em;
    color: var(--ihs-ink-muted); text-align: left; font-weight: 600;
}
.grid th.num[b-cvy0hwpp25], .grid td.num[b-cvy0hwpp25] { text-align: right; }
.grid .stick[b-cvy0hwpp25] { position: sticky; left: 0; background: var(--ihs-bg, #fff); }
.grid .tname[b-cvy0hwpp25] { display: block; }
.grid .cpt[b-cvy0hwpp25] { display: block; font-size: 10.5px; }
.grid tr.off[b-cvy0hwpp25] { opacity: .5; }
.grid .strong[b-cvy0hwpp25] { color: var(--ihs-ink-heading); font-weight: 600; }
.grid .method[b-cvy0hwpp25] { font-size: 11px; }
.grid .method.over[b-cvy0hwpp25] { color: var(--ihs-warning-ink); font-weight: 600; }
.grid .rowact .peek[b-cvy0hwpp25] {
    background: none; border: none; cursor: pointer; font-size: 11px;
    color: var(--ihs-ink-muted); padding: 0;
}
.grid .rowact .peek:hover[b-cvy0hwpp25] { color: var(--ihs-blue); }

.grid .written[b-cvy0hwpp25] { display: block; font-size: 10px; font-style: italic; }
.grid .warnline[b-cvy0hwpp25] { display: block; font-size: 10px; color: var(--ihs-warning-ink); white-space: normal; }
.grid tr.proposal[b-cvy0hwpp25] { background: var(--ihs-warning-wash); }
.grid tr.proposal .stick[b-cvy0hwpp25] { background: var(--ihs-warning-wash); }
.grid .vol[b-cvy0hwpp25] {
    width: 84px; text-align: right; font-size: 12px; padding: 3px 5px;
    font-family: var(--ihs-font-mono); border: 1px solid transparent;
    background: transparent; border-radius: 3px;
}
.grid .vol:hover[b-cvy0hwpp25], .grid .vol:focus[b-cvy0hwpp25] { border-color: var(--ihs-border); background: #fff; }
.grid .vol.narrow[b-cvy0hwpp25] { width: 56px; }
.grid .rowact .peek.yes[b-cvy0hwpp25] { color: var(--ihs-success-ink); font-weight: 600; }
.grid .rowact .peek.no[b-cvy0hwpp25] { color: var(--ihs-danger-ink); }
.grid .rowact .small[b-cvy0hwpp25] { font-size: 10.5px; }

.assemble[b-cvy0hwpp25] { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ihs-rule-inner); }
.assemble .corrrow[b-cvy0hwpp25] { margin-bottom: 10px; }

.transcript[b-cvy0hwpp25] {
    margin: 0; max-height: 460px; overflow: auto; white-space: pre-wrap;
    font-family: var(--ihs-font-mono); font-size: 11.5px; line-height: 1.5;
    background: var(--ihs-bg-muted); padding: 12px; border-radius: 4px;
}

.grid tr.correction td[b-cvy0hwpp25] { background: var(--ihs-bg-muted); white-space: normal; }
.corr p[b-cvy0hwpp25] { margin: 0 0 8px; font-size: 11.5px; color: var(--ihs-ink-muted); max-width: 78ch; line-height: 1.5; }
.corrrow[b-cvy0hwpp25] { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.corrrow label[b-cvy0hwpp25] {
    display: flex; flex-direction: column; gap: 3px;
    font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.corrrow .grow[b-cvy0hwpp25] { flex: 1; min-width: 220px; }
.corrrow input[b-cvy0hwpp25] { font-size: 12px; padding: 4px 6px; }
.corrrow .num[b-cvy0hwpp25] { width: 96px; text-align: right; }
.corrrow .narrow[b-cvy0hwpp25] { width: 62px; }

.cardnotes[b-cvy0hwpp25] { margin-top: 12px; }
.cardnotes .nlabel[b-cvy0hwpp25] {
    display: block; font-size: 10.5px; text-transform: uppercase;
    letter-spacing: .05em; color: var(--ihs-ink-muted); margin-bottom: 4px;
}
.cardnotes pre[b-cvy0hwpp25] {
    margin: 0; font-size: 11.5px; white-space: pre-wrap;
    font-family: var(--ihs-font-mono); color: var(--ihs-ink-muted);
}

.vrow[b-cvy0hwpp25] {
    display: grid; grid-template-columns: 46px 100px 1fr 100px 130px;
    gap: 10px; align-items: center; font-size: 12px;
    padding: 5px 0; border-top: 1px solid var(--ihs-rule-inner);
}
.vrow.live[b-cvy0hwpp25] { font-weight: 600; }
/* /Components/Pages/Engagements.razor.rz.scp.css */
.filters[b-726b0ga9de] { display: flex; gap: 8px; flex: none; }
.filters .on[b-726b0ga9de] { border-color: var(--ihs-blue); color: var(--ihs-blue); }

.table[b-726b0ga9de] { overflow-x: auto; }

/* min-width is required, as on the pursuits table: without it the first track collapses
   and the client name overlaps the state chip. */
.row-grid[b-726b0ga9de] {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) 110px minmax(0, 1.1fr) 118px minmax(0, 1.6fr) 128px 52px;
    gap: 16px;
    min-width: 1180px;
    align-items: center;
}

.head[b-726b0ga9de] {
    padding: 11px 20px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
}

.body[b-726b0ga9de] {
    padding: 13px 20px;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.body:hover[b-726b0ga9de] { background: var(--ihs-row-hover); }
.body.row-closed[b-726b0ga9de] { color: var(--ihs-nav-link); }
.body.row-closed a[b-726b0ga9de] { color: var(--ihs-nav-link); }

.org[b-726b0ga9de] { min-width: 0; }
.name-row[b-726b0ga9de] { display: flex; align-items: baseline; gap: 8px; }
.name-row a[b-726b0ga9de] { font-size: 14px; overflow-wrap: anywhere; }

.sub[b-726b0ga9de] {
    font-size: 11px;
    color: var(--ihs-nav-link);
    margin-top: 3px;
    overflow-wrap: anywhere;
}

.lines[b-726b0ga9de] { display: flex; flex-wrap: wrap; gap: 5px; }

.gates[b-726b0ga9de] { font-size: 12px; color: var(--ihs-ink-muted); }
/* Gate progress is not go-live. Amber so a half-built engagement never reads as running. */
.gatecount[b-726b0ga9de] { color: var(--ihs-warning); }

.agr[b-726b0ga9de] {
    font-size: 11px;
    color: var(--ihs-ink-muted);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    overflow-wrap: anywhere;
}

.traffic[b-726b0ga9de] { font-size: 12px; color: var(--ihs-ink-muted); }

.end[b-726b0ga9de] { display: flex; align-items: center; justify-content: flex-end; }
.arrow[b-726b0ga9de] { color: var(--ihs-nav-link); font-size: 14px; }

.why[b-726b0ga9de] {
    font-size: 13px;
    line-height: 21px;
    color: var(--ihs-ink-muted);
    max-width: 760px;
    margin-top: 10px;
    text-wrap: pretty;
}
.why code[b-726b0ga9de] {
    font-family: var(--ihs-font-mono);
    font-size: 12px;
    background: var(--ihs-bg-muted);
    padding: 1px 5px;
}

/* The deal that won this engagement. Under the domain line rather than in its own column:
   it is provenance, not a field you scan down. */
.from[b-726b0ga9de] {
    font-size: 12px;
    margin-top: 3px;
    overflow-wrap: anywhere;
}
/* /Components/Pages/FacilityWorklist.razor.rz.scp.css */
.counts[b-2edprdbs4r] {
    display: flex;
    align-items: baseline;
    gap: 22px;
    padding: 14px 20px;
    margin-bottom: 20px;
    font-size: 13px;
    color: var(--ihs-ink-muted);
}
.counts strong[b-2edprdbs4r] { color: var(--ihs-ink-heading); font-size: 16px; margin-right: 4px; }
.counts .grow[b-2edprdbs4r] { flex: 1; }
.counts .only[b-2edprdbs4r] { display: flex; align-items: center; gap: 6px; cursor: pointer; }

.ccnrow[b-2edprdbs4r] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 80px 96px minmax(0, 1.2fr) 70px 150px;
    gap: 14px;
    align-items: baseline;
    padding: 8px 0;
    font-size: 13px;
}
.ccnrow.head[b-2edprdbs4r] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    padding-bottom: 4px;
}
.ccnrow.body[b-2edprdbs4r] { border-top: 1px solid var(--ihs-rule-inner); }

/* A rejection is not a fault to shout about — it is the rule working. Quiet, and legible
   only when the human unfolds the non-proposable rows. */
.ccnrow.rejected .cname[b-2edprdbs4r],
.ccnrow.notaccn .cname[b-2edprdbs4r],
.ccnrow.unresolved .cname[b-2edprdbs4r] { color: var(--ihs-ink-muted); }

.cname[b-2edprdbs4r] { overflow-wrap: anywhere; }
.hosp[b-2edprdbs4r] { overflow-wrap: anywhere; }
.dim[b-2edprdbs4r] { color: var(--ihs-ink-muted); }
.mono[b-2edprdbs4r] { font-variant-numeric: tabular-nums; }
.tnum[b-2edprdbs4r] { text-align: right; }

.note[b-2edprdbs4r] { font-size: 12px; color: var(--ihs-ink-muted); margin-top: 2px; }
.note.bad[b-2edprdbs4r] { color: var(--ihs-ink-muted); }

.act[b-2edprdbs4r] { text-align: right; }
.act .btn[b-2edprdbs4r] { font-size: 12px; padding: 4px 10px; }

@media (max-width: 1100px) {
    .ccnrow[b-2edprdbs4r] { grid-template-columns: minmax(0, 1fr) 96px 150px; }
    .ccnrow span:nth-child(2)[b-2edprdbs4r], .ccnrow span:nth-child(5)[b-2edprdbs4r] { display: none; }
    .ccnrow .hosp[b-2edprdbs4r] { grid-column: 1 / -1; }
    .ccnrow.head[b-2edprdbs4r] { display: none; }
}
/* /Components/Pages/Home.razor.rz.scp.css */
.tabs[b-jjpf4e038r] {
    display: flex;
    border: 1px solid var(--ihs-border);
    background: #fff;
    flex: none;
}

.tab[b-jjpf4e038r] {
    font-family: inherit;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 8px 14px;
    cursor: pointer;
    border: 0;
    border-left: 1px solid var(--ihs-border);
    color: var(--ihs-ink-muted);
    background: #fff;
}
.tab:first-child[b-jjpf4e038r] { border-left: 0; }
.tab.active[b-jjpf4e038r] { color: #fff; background: var(--ihs-blue); }
/* /Components/Pages/ImagerBench.razor.rz.scp.css */
/* The bench (Q85 slice 3). Four columns, in the /people row grammar so somebody who reads
   one reads the other: who, when they came through, why they sort where they do, and the one
   move available from here. */

.controls[b-b9isk0ugzl] {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}
.search[b-b9isk0ugzl] { flex: 1 1 380px; min-width: 240px; }
.cohort[b-b9isk0ugzl] { flex: 0 0 auto; }

.panel-caption.split[b-b9isk0ugzl] { display: flex; justify-content: space-between; gap: 16px; }

.brow[b-b9isk0ugzl] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 2fr) auto;
    gap: 12px;
    align-items: start;
    padding: 10px 0;
}
.brow.head[b-b9isk0ugzl] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
    padding-bottom: 8px;
}
.brow.body + .brow.body[b-b9isk0ugzl] { border-top: 1px solid var(--ihs-border); }

.who[b-b9isk0ugzl] { min-width: 0; }
.who a[b-b9isk0ugzl] { font-weight: 600; }
.dim[b-b9isk0ugzl] { color: var(--ihs-ink-muted); font-size: 13px; }
.mono[b-b9isk0ugzl] { font-family: var(--ihs-mono, ui-monospace, SFMono-Regular, Menlo, monospace); }

/* The affiliation is what the attendee wrote on a registration form, possibly years ago.
   Saying so beside it costs one word and stops it reading as a current fact. */
.asstated[b-b9isk0ugzl] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
    margin-left: 6px;
}

.cohorts[b-b9isk0ugzl] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

.warmth[b-b9isk0ugzl] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 0; }
/* The sort key itself, small and always present — the order is checkable, not a score. */
.warmth .key[b-b9isk0ugzl] {
    flex-basis: 100%;
    font-size: 11px;
    color: var(--ihs-ink-muted);
    overflow-wrap: anywhere;
}

.rowactions[b-b9isk0ugzl] { white-space: nowrap; }

.none[b-b9isk0ugzl] { padding-top: 12px; }
.muted[b-b9isk0ugzl] { color: var(--ihs-ink-muted); font-size: 13px; }
.empty[b-b9isk0ugzl] { color: var(--ihs-ink-muted); }

/* What kind of doctor, and how Drew knows (SPECIALTY-PLAN slice 4). The source rides beside
   the value on purpose: a specialty with no visible provenance is a claim nobody can check,
   and half of these came from a public file and half from a document a human accepted.

   There is no red and no warning colour on the non-reader marker, and that is deliberate.
   Decision H makes it a fact about the person, not a problem with them --- they paid to
   attend a cardiac CT course, which is the intent the billing specialty cannot see. */
.spec[b-b9isk0ugzl] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; }
.spec .mono[b-b9isk0ugzl] { font-size: 11px; }
/* NOT a chip. `.chip` uppercases and refuses to wrap, which is right for a five-letter
   status and wrong for `Cardiovascular disease (cardiology)` — the value would shout the
   loudest thing on the row and then run off the end of it. The marker beside it stays a chip,
   because that one IS a status. */
.spec-value[b-b9isk0ugzl] { font-weight: 600; }
/* /Components/Pages/ImagerBoard.razor.rz.scp.css */
/* The pursuit board's grammar (Q68/Q70), so a person who reads one reads the other without
   learning a second language. Columns derive from the children, never a hardcoded count. */
.board[b-c98zoh94b0] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    margin-top: 16px;
}

.column[b-c98zoh94b0] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    /* A drop target with no height is a drop target nobody can hit, so an empty column keeps
       enough of one to drag the first card into. */
    min-height: 120px;
    border-radius: 4px;
    padding: 2px;
}
/* The only feedback a drag gets. Dropping is a state change, so the target says which one. */
.column.over[b-c98zoh94b0] { background: var(--ihs-bg-muted); outline: 1px dashed var(--ihs-nav-link); }

.col-head[b-c98zoh94b0] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--ihs-border);
}
.name[b-c98zoh94b0] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
}
.count[b-c98zoh94b0] { font-size: 12px; color: var(--ihs-nav-link); }

.card[b-c98zoh94b0] { padding: 11px 12px; cursor: grab; }
.card:active[b-c98zoh94b0] { cursor: grabbing; }

.title[b-c98zoh94b0] {
    font-size: 13px;
    line-height: 19px;
    color: var(--ihs-ink-heading);
    overflow-wrap: anywhere;
}

.meta[b-c98zoh94b0] {
    font-size: 11px;
    color: var(--ihs-ink-muted);
    margin-top: 4px;
    display: flex;
    justify-content: space-between;
    gap: 6px;
    align-items: baseline;
}
/* The ONLY colour that means "act": days in accord_out past the threshold. Colouring days in
   prospect or vetting would paint the documented normal red (decision M). */
.meta .chase[b-c98zoh94b0] { color: var(--ihs-danger-ink); font-weight: 600; }

.chips[b-c98zoh94b0] { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.chip[b-c98zoh94b0] {
    font-size: 10px;
    letter-spacing: .02em;
    padding: 1px 5px;
    border-radius: 3px;
    background: var(--ihs-bg-muted);
    color: var(--ihs-ink-muted);
    white-space: nowrap;
}
.chip.level[b-c98zoh94b0] { background: #e8eef7; color: #24456e; font-weight: 600; }
.chip.cv[b-c98zoh94b0] { background: #e9f3ec; color: #1f5130; }

/* The two instruments read at a glance, and the absent one is as loud as the present one —
   a missing ICA is what blocks onboarding (decision H). */
.chip.paper.done[b-c98zoh94b0] { background: #e9f3ec; color: #1f5130; font-weight: 600; }
.chip.paper.out[b-c98zoh94b0] { background: #fdf1e0; color: #8a5300; font-weight: 600; }
.chip.paper.draft[b-c98zoh94b0] { background: var(--ihs-bg-muted); color: var(--ihs-ink-muted); }
.chip.paper.none[b-c98zoh94b0] { background: transparent; color: var(--ihs-nav-link); border: 1px solid var(--ihs-border); }

.source[b-c98zoh94b0] { font-size: 11px; color: var(--ihs-ink-muted); margin-top: 6px; }

.rowactions[b-c98zoh94b0] { margin-top: 8px; display: flex; gap: 8px; align-items: center; }
.rowactions select[b-c98zoh94b0] { font-size: 11px; padding: 1px 3px; max-width: 108px; }

.col-empty[b-c98zoh94b0] { font-size: 12px; color: var(--ihs-nav-link); padding: 4px 0; }

.banner[b-c98zoh94b0] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    text-wrap: pretty;
}

.note[b-c98zoh94b0] { padding: 10px 16px; font-size: 13px; }
.note.ok[b-c98zoh94b0] { border-left: 2px solid var(--ihs-success); }
.note.bad[b-c98zoh94b0] { border-left: 2px solid var(--ihs-danger); }

.pool[b-c98zoh94b0] { margin-top: 16px; padding: 12px 16px; }
.pool-head[b-c98zoh94b0] { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; }
.muted[b-c98zoh94b0] { font-size: 12px; color: var(--ihs-ink-muted); }

.minilist[b-c98zoh94b0] { margin-top: 10px; display: flex; flex-direction: column; gap: 2px; }
.mini[b-c98zoh94b0] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 10px;
    align-items: baseline;
    padding: 5px 0;
    border-top: 1px solid var(--ihs-rule-inner);
    cursor: pointer;
    font-size: 13px;
}
.mname[b-c98zoh94b0] { color: var(--ihs-ink-heading); }
.msrc[b-c98zoh94b0] { font-size: 12px; color: var(--ihs-ink-muted); overflow-wrap: anywhere; }

.decline[b-c98zoh94b0] { margin-top: 16px; padding: 14px 16px; }
.dtitle[b-c98zoh94b0] { font-size: 14px; color: var(--ihs-ink-heading); margin-bottom: 8px; }
.decline input[b-c98zoh94b0] { width: 100%; max-width: 560px; }
.dactions[b-c98zoh94b0] { display: flex; gap: 8px; margin-top: 10px; }
.dnote[b-c98zoh94b0] { font-size: 12px; color: var(--ihs-ink-muted); margin-top: 8px; }

.filters[b-c98zoh94b0] { display: flex; gap: 8px; }
/* /Components/Pages/ImagerDetail.razor.rz.scp.css */
.back[b-jw9e2oa38k] { font-size: 13px; display: inline-block; margin-bottom: 14px; }

.identity[b-jw9e2oa38k] {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 22px 26px;
    margin-bottom: 20px;
}
.who[b-jw9e2oa38k] { flex: 1; min-width: 0; }
.identity h1[b-jw9e2oa38k] { font-size: 36px; line-height: 44px; overflow-wrap: anywhere; }
.ident[b-jw9e2oa38k] {
    font-size: 13px;
    color: var(--ihs-ink-muted);
    margin-top: 6px;
    overflow-wrap: anywhere;
}
.chips[b-jw9e2oa38k] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.acts[b-jw9e2oa38k] { display: flex; gap: 8px; flex: none; }

/* ---- recruiting tracks ---- */

.tracks[b-jw9e2oa38k] { overflow-x: auto; margin-bottom: 20px; }

.lanes[b-jw9e2oa38k] { margin-top: 16px; }

.lane[b-jw9e2oa38k] {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin-bottom: 14px;
}
.lane-label[b-jw9e2oa38k] {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
}
.lane-bars[b-jw9e2oa38k] {
    display: flex;
    gap: 3px;
    align-items: flex-end;
    min-width: 860px;
}
.spacer[b-jw9e2oa38k] { background: var(--ihs-bg-muted); height: 10px; }

.span[b-jw9e2oa38k] { min-width: 0; }
.bar[b-jw9e2oa38k] { height: 10px; background: var(--ihs-blue-tint); }
.bar.done[b-jw9e2oa38k] { background: var(--ihs-blue-tint); }
.bar.slow[b-jw9e2oa38k] { background: var(--ihs-warning); }
.bar.live[b-jw9e2oa38k] { height: 14px; background: var(--ihs-blue); }

.span .cap[b-jw9e2oa38k] {
    font-size: 10px;
    color: var(--ihs-nav-link);
    margin-top: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lane-bars .empty.small[b-jw9e2oa38k] { font-size: 12px; }

.point[b-jw9e2oa38k] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    margin-top: 10px;
    max-width: 720px;
    text-wrap: pretty;
}

/* ---- body ---- */

.two-col[b-jw9e2oa38k] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: start;
}
.side[b-jw9e2oa38k] { display: flex; flex-direction: column; gap: 20px; min-width: 0; }

.cred-table[b-jw9e2oa38k] { overflow-x: auto; margin: 12px 0; }
.cred-row[b-jw9e2oa38k] {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) 66px 88px 96px;
    gap: 12px;
    min-width: 376px;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.cred-head[b-jw9e2oa38k] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
}
.cred-row:last-of-type[b-jw9e2oa38k] { border-bottom: 0; }
.ckind[b-jw9e2oa38k] { font-size: 13px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.cwhere[b-jw9e2oa38k] { font-size: 13px; color: var(--ihs-ink-muted); }
.cred-row .mono[b-jw9e2oa38k] { font-size: 12px; color: var(--ihs-ink-muted); }
.cred-row .mono.soon[b-jw9e2oa38k] { color: var(--ihs-warning-ink); }

.modality[b-jw9e2oa38k] { padding: 10px 0; border-bottom: 1px solid var(--ihs-rule-inner); }
.modality:last-of-type[b-jw9e2oa38k] { border-bottom: 0; }
.mrow[b-jw9e2oa38k] { display: flex; align-items: center; gap: 10px; }
.mname[b-jw9e2oa38k] { font-size: 14px; color: var(--ihs-ink-heading); }
.msource[b-jw9e2oa38k] { font-size: 12px; color: var(--ihs-nav-link); margin-left: auto; }
.mmeta[b-jw9e2oa38k] {
    font-size: 12px;
    line-height: 19px;
    color: var(--ihs-ink-muted);
    margin-top: 4px;
    text-wrap: pretty;
}

.assignment[b-jw9e2oa38k] { padding: 12px 0; border-bottom: 1px solid var(--ihs-rule-inner); }
.assignment:last-of-type[b-jw9e2oa38k] { border-bottom: 0; }
.arow[b-jw9e2oa38k] { display: flex; align-items: center; gap: 10px; }
.aname[b-jw9e2oa38k] { font-size: 14px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }

.constraints[b-jw9e2oa38k] { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.cchip[b-jw9e2oa38k] {
    font-size: 11px;
    padding: 2px 7px;
    white-space: nowrap;
}
.cchip.ok[b-jw9e2oa38k] { background: var(--ihs-success-wash); color: var(--ihs-success-ink); }
.cchip.risk[b-jw9e2oa38k] { background: var(--ihs-warning-wash); color: var(--ihs-warning-ink); }
.cchip.unknown[b-jw9e2oa38k] {
    background: var(--ihs-bg-muted);
    color: var(--ihs-ink-muted);
    border-bottom: 1px dotted var(--ihs-nav-link);
}

.limiting[b-jw9e2oa38k] { font-size: 11px; color: var(--ihs-ink-muted); }
.limiting.binding[b-jw9e2oa38k] { color: var(--ihs-danger-ink); }

.loss .cap-row[b-jw9e2oa38k] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.loss .cap-row .panel-caption[b-jw9e2oa38k] { margin-bottom: 0; }
.lossp[b-jw9e2oa38k] {
    font-size: 14px;
    line-height: 22px;
    color: var(--ihs-ink-heading);
    margin-bottom: 12px;
    text-wrap: pretty;
}

.blast[b-jw9e2oa38k] {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 8px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
    font-size: 13px;
}
.bline[b-jw9e2oa38k] { color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.bleft[b-jw9e2oa38k] { color: var(--ihs-ink-muted); white-space: nowrap; }
.bleft.none[b-jw9e2oa38k] { color: var(--ihs-danger-ink); }
.bleft.thin[b-jw9e2oa38k] { color: var(--ihs-warning-ink); }

/* Q82 slice 4 — the assessment form, the note it carries, and the CV panel. */
.outcome[b-jw9e2oa38k] { padding: 10px 16px; font-size: 13px; margin-bottom: 12px; }

.assess[b-jw9e2oa38k] { margin-top: 12px; border-top: 1px solid var(--ihs-rule-inner); padding-top: 12px; }
.arow[b-jw9e2oa38k] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.arow input[b-jw9e2oa38k] { flex: 1 1 240px; min-width: 0; }
.arow select[b-jw9e2oa38k] { flex: 0 0 auto; }
.anote[b-jw9e2oa38k] { font-size: 12px; line-height: 18px; color: var(--ihs-ink-muted); margin-top: 8px; text-wrap: pretty; }

/* The note is the half of an assessment a panel proposal is defended with, so it reads as
   part of the sentence rather than as metadata beside it. */
.mnote[b-jw9e2oa38k] { color: var(--ihs-ink-body); }

.cv[b-jw9e2oa38k] { padding: 8px 0; border-top: 1px solid var(--ihs-rule-inner); }
.cv:first-of-type[b-jw9e2oa38k] { border-top: none; }
.crow[b-jw9e2oa38k] { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.cname[b-jw9e2oa38k] { font-size: 13px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.cdate[b-jw9e2oa38k] { font-size: 12px; color: var(--ihs-ink-muted); }
/* The confirmed facts with their sentences. Monospaced because the line IS the record:
   `ct_level:level_ii | "Level II certified in cardiac CT (SCCT, 2019)"`. */
.cfacts[b-jw9e2oa38k] { margin-top: 6px; display: flex; flex-direction: column; gap: 3px; }
.cfact[b-jw9e2oa38k] {
    font-family: var(--ihs-mono, ui-monospace, monospace);
    font-size: 11px;
    line-height: 16px;
    color: var(--ihs-ink-muted);
    overflow-wrap: anywhere;
}

/* Q82 slice 5 — the expiry, typed in place. */
.cexp[b-jw9e2oa38k] { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.cexp input[type="date"][b-jw9e2oa38k] { font-size: 12px; padding: 1px 3px; }
.pencil[b-jw9e2oa38k] {
    background: none;
    border: none;
    padding: 0 2px;
    cursor: pointer;
    color: var(--ihs-nav-link);
    font-size: 11px;
}
.pencil:hover[b-jw9e2oa38k] { color: var(--ihs-ink-body); }

/* The specialty is a phrase, not a status: `.chip` uppercases and refuses to wrap, which
   turns `Cardiovascular disease (cardiology)` into the loudest thing on the page. */
.spec-value[b-jw9e2oa38k] { font-weight: 600; }

/* The Documents panel. Deliberately the same row rhythm as .cv above — a physician's paper
   should not look like a different kind of thing depending on which panel names it. */
.drow[b-jw9e2oa38k] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 130px 92px auto;
    gap: 10px;
    align-items: baseline;
    padding: 8px 0;
    border-top: 1px solid var(--ihs-rule-inner);
}
.drow:first-of-type[b-jw9e2oa38k] { border-top: none; }
.dname[b-jw9e2oa38k] { font-size: 13px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.dkind[b-jw9e2oa38k] { font-size: 12px; color: var(--ihs-ink-muted); }
.ddate[b-jw9e2oa38k] { font-size: 12px; color: var(--ihs-ink-muted); }
.dchips[b-jw9e2oa38k] { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }

@media (max-width: 900px) {
    .drow[b-jw9e2oa38k] { grid-template-columns: minmax(0, 1fr) auto; }
    .drow .dkind[b-jw9e2oa38k], .drow .ddate[b-jw9e2oa38k] { display: none; }
}
/* /Components/Pages/Imagers.razor.rz.scp.css */
.grid[b-x285a6dvy8] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: start;
}

.table[b-x285a6dvy8] { overflow-x: auto; }

.row-grid[b-x285a6dvy8] {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) 128px minmax(0, 1.1fr) minmax(0, 1.2fr) 76px 108px;
    gap: 16px;
    min-width: 960px;
    align-items: center;
}

.head[b-x285a6dvy8] {
    padding: 11px 20px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
}

.body[b-x285a6dvy8] {
    padding: 13px 20px;
    border-bottom: 1px solid var(--ihs-rule-inner);
    cursor: pointer;
}
.body:hover[b-x285a6dvy8] { background: var(--ihs-row-hover); }
.body.at-risk[b-x285a6dvy8] { background: var(--ihs-danger-row); }
.body.paused[b-x285a6dvy8] { color: var(--ihs-nav-link); }

.who[b-x285a6dvy8] { min-width: 0; }
.name[b-x285a6dvy8] { font-size: 14px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.sub[b-x285a6dvy8] { font-size: 11px; color: var(--ihs-nav-link); margin-top: 3px; }

.licences[b-x285a6dvy8] { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; }
.lic[b-x285a6dvy8] { color: var(--ihs-ink-heading); white-space: nowrap; }
.lic.risk[b-x285a6dvy8] { color: var(--ihs-danger-ink); }
.expiry[b-x285a6dvy8] { color: var(--ihs-nav-link); font-size: 11px; }

.comp[b-x285a6dvy8] { font-size: 13px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }
.comp .warn[b-x285a6dvy8] { color: var(--ihs-warning-ink); }

.sig[b-x285a6dvy8], .body .tnum[b-x285a6dvy8] { font-size: 13px; color: var(--ihs-ink-muted); }

.none[b-x285a6dvy8] { padding: 18px 20px; }

/* ---- rail ---- */

.rail[b-x285a6dvy8] { display: flex; flex-direction: column; gap: 20px; }
.rail-panel[b-x285a6dvy8] { padding: 18px 20px; }
.rail-panel .panel-caption[b-x285a6dvy8] { margin-bottom: 10px; }

.state[b-x285a6dvy8] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px;
    align-items: center;
    gap: 10px;
    margin: 6px 0;
}
.sbar[b-x285a6dvy8] {
    grid-row: 1;
    grid-column: 1;
    height: 20px;
    background: var(--ihs-blue-tint);
}
/* pool is an outline: nobody has done anything with these people yet. */
.sbar.pool[b-x285a6dvy8] { background: transparent; border: 1px dashed #d8d8d8; }
.sbar.sourced[b-x285a6dvy8], .sbar.screening[b-x285a6dvy8] { background: var(--ihs-blue-tint); }
.sbar.contracted[b-x285a6dvy8], .sbar.onboarded[b-x285a6dvy8] { background: var(--ihs-blue-mid); }
.sbar.active[b-x285a6dvy8] { background: var(--ihs-blue); }
.sbar.paused[b-x285a6dvy8] { background: #d8d8d8; }

.slabel[b-x285a6dvy8] {
    grid-row: 1;
    grid-column: 1;
    font-size: 13px;
    color: var(--ihs-ink-heading);
    padding-left: 8px;
    z-index: 1;
}
.scount[b-x285a6dvy8] {
    grid-column: 2;
    text-align: right;
    font-size: 13px;
    color: var(--ihs-ink-muted);
}

.cap-row[b-x285a6dvy8] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.cap-row .panel-caption[b-x285a6dvy8] { margin-bottom: 0; }

.lede[b-x285a6dvy8] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    margin-bottom: 12px;
    text-wrap: pretty;
}

.cand[b-x285a6dvy8] { padding: 8px 0; border-bottom: 1px solid var(--ihs-rule-inner); }
.cand:last-of-type[b-x285a6dvy8] { border-bottom: 0; margin-bottom: 12px; }
.cname[b-x285a6dvy8] { font-size: 14px; color: var(--ihs-ink-heading); }
.cmeta[b-x285a6dvy8] { font-size: 12px; color: var(--ihs-ink-muted); margin-top: 2px; }
/* /Components/Pages/IntakeForm.razor.rz.scp.css */
.back[b-ywaihbd940] {
    font-size: 13px;
    display: inline-block;
    margin-bottom: 14px;
}

.identity[b-ywaihbd940] {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 22px 26px;
    margin-bottom: 20px;
}
.who[b-ywaihbd940] { flex: 1; min-width: 0; }
.identity h1[b-ywaihbd940] { font-size: 30px; line-height: 38px; }

.ident[b-ywaihbd940] {
    font-size: 13px;
    color: var(--ihs-ink-muted);
    margin-top: 6px;
    overflow-wrap: anywhere;
}
.chips[b-ywaihbd940] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }

/* The one number a reader is looking for: how much work is being described. */
.totals[b-ywaihbd940] { flex: none; text-align: right; }
.totals .big[b-ywaihbd940] {
    font-size: 34px;
    line-height: 38px;
    color: var(--ihs-ink-heading);
}
.totals .cap[b-ywaihbd940] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
    margin-top: 2px;
}

.studies[b-ywaihbd940] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 92px 110px 96px;
    gap: 12px;
    align-items: baseline;
    padding: 8px 0;
    font-size: 13px;
}
.studies.head[b-ywaihbd940] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    padding-bottom: 4px;
}
.studies.body[b-ywaihbd940] { border-top: 1px solid var(--ihs-rule-inner); }

/* A row the client left blank is a DECLINE, not a gap (Q39) — dimmed so the stated rows
   carry the page, but never hidden, because "what they did not ask for" is half of what a
   proposal has to get right. */
.studies.unstated .sdesc[b-ywaihbd940] { color: var(--ihs-ink-muted); }

.sdesc[b-ywaihbd940] { overflow-wrap: anywhere; }
.vol[b-ywaihbd940] { text-align: right; }
.dim[b-ywaihbd940] { color: var(--ihs-ink-muted); }

.note[b-ywaihbd940] {
    font-size: 13px;
    color: var(--ihs-ink-muted);
    margin: 8px 0 12px;
    max-width: 62ch;
}

.raw[b-ywaihbd940] {
    margin: 0;
    padding: 14px 16px;
    background: var(--ihs-bg-muted);
    border: 1px solid var(--ihs-rule-inner);
    max-height: 460px;
    overflow: auto;
    font-size: 12px;
    line-height: 20px;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .studies[b-ywaihbd940] { grid-template-columns: minmax(0, 1fr) 90px; }
    .studies span:nth-child(2)[b-ywaihbd940] { display: none; }
    .identity[b-ywaihbd940] { flex-direction: column; gap: 14px; }
    .totals[b-ywaihbd940] { text-align: left; }
}
/* /Components/Pages/Login.razor.rz.scp.css */
.login[b-71ru1zeoom] {
    display: grid;
    grid-template-columns: minmax(0, 1.32fr) minmax(430px, 0.68fr);
    min-height: 100vh;
}

/* ---- story side ---- */

.story[b-71ru1zeoom] {
    position: relative;
    background: #000;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.brand[b-71ru1zeoom] {
    padding: 40px 56px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}
.brand img[b-71ru1zeoom] { display: block; }
.org[b-71ru1zeoom] {
    color: var(--ihs-nav-link);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.body[b-71ru1zeoom] {
    padding: 56px 56px 64px;
    max-width: 760px;
    margin-top: auto;
}

.body h1[b-71ru1zeoom] {
    margin: 0 0 28px;
    font-size: 45px;
    line-height: 54px;
    font-weight: 400;
    color: #fff;
}

.signature[b-71ru1zeoom] {
    font-family: var(--drew-signature);
    color: var(--ihs-blue);
    font-size: 52px;
    line-height: 54px;
}

.body p[b-71ru1zeoom] {
    margin: 0 0 20px;
    font-size: 17px;
    line-height: 29px;
    font-weight: 400;
    color: #fff;
    text-wrap: pretty;
}

.thesis[b-71ru1zeoom] {
    display: flex;
    gap: 16px;
    margin-top: 32px;
}
.thesis .rule[b-71ru1zeoom] {
    width: 2px;
    background: var(--ihs-blue);
    flex: none;
}
.thesis p[b-71ru1zeoom] {
    margin: 0;
    font-size: 20px;
    line-height: 32px;
    max-width: 620px;
}

/* ---- sign-in side ---- */

.signin[b-71ru1zeoom] {
    background: #fff;
    display: flex;
    flex-direction: column;
    padding: 40px 56px;
}

.block[b-71ru1zeoom] {
    margin: auto 0;
    max-width: 360px;
    width: 100%;
}

.wordmark[b-71ru1zeoom] {
    font-family: var(--drew-signature);
    font-size: 46px;
    line-height: 52px;
    color: var(--ihs-blue);
}
.tagline[b-71ru1zeoom] {
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ihs-ink-muted);
    margin-top: 2px;
}

.rule-h[b-71ru1zeoom] {
    height: 1px;
    background: var(--ihs-border);
    margin: 28px 0;
}
.rule-h.tight[b-71ru1zeoom] { margin: 28px 0 20px; }

.signin h2[b-71ru1zeoom] {
    margin: 0 0 6px;
    font-size: 24px;
    line-height: 32px;
    font-weight: 400;
    color: var(--ihs-ink-heading);
}

.lede[b-71ru1zeoom] {
    margin: 0 0 24px;
    font-size: 14px;
    line-height: 22px;
    color: var(--ihs-ink-muted);
    text-wrap: pretty;
}

/* Taller than the app's 30px buttons: this is the one page where a button is the point. */
.cta[b-71ru1zeoom] {
    width: 100%;
    height: 42px;
    border-radius: var(--ihs-radius);
    border: 1px solid var(--ihs-blue);
    background: var(--ihs-blue);
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 400;
    cursor: pointer;
}
.cta:hover[b-71ru1zeoom] { background: var(--ihs-blue-hover); border-color: var(--ihs-blue-hover); }

.status[b-71ru1zeoom] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    font-size: 12px;
    line-height: 19px;
    color: var(--ihs-ink-muted);
}
.status .dot[b-71ru1zeoom] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ihs-success);
    display: block;
    flex: none;
}

.devnote[b-71ru1zeoom] {
    margin-top: 12px;
    font-size: 12px;
    line-height: 19px;
    color: var(--ihs-warning-note-ink);
    background: var(--ihs-warning-note-bg);
    border-left: 2px solid var(--ihs-warning);
    padding: 8px 12px;
}

.boundaries[b-71ru1zeoom] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.boundary[b-71ru1zeoom] {
    display: flex;
    gap: 12px;
    font-size: 12px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    text-wrap: pretty;
}
.boundary .rule[b-71ru1zeoom] {
    width: 2px;
    background: var(--ihs-blue-tint);
    flex: none;
}
.boundary .mono[b-71ru1zeoom] {
    font-family: var(--ihs-font-mono);
    color: var(--ihs-ink-heading);
}

.foot[b-71ru1zeoom] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-top: 32px;
    font-size: 11px;
}
.foot span[b-71ru1zeoom] { color: var(--ihs-nav-link); }
.foot a[b-71ru1zeoom] { color: var(--ihs-ink-muted); }

/* Below ~900px the columns stack, story first. */
@media (max-width: 900px) {
    .login[b-71ru1zeoom] { grid-template-columns: minmax(0, 1fr); }
    .body[b-71ru1zeoom] { padding: 40px 32px 48px; margin-top: 0; }
    .brand[b-71ru1zeoom] { padding: 32px 32px 0; }
    .signin[b-71ru1zeoom] { padding: 40px 32px; }
    .block[b-71ru1zeoom] { margin: 0; }
}
/* /Components/Pages/Organizations.razor.rz.scp.css */
.grid[b-83jbd19rck] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: start;
}

.table[b-83jbd19rck] { overflow-x: auto; }

.row-grid[b-83jbd19rck] {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) 128px 100px 84px minmax(0, 1.4fr);
    gap: 16px;
    min-width: 1000px;
    align-items: center;
}

.head[b-83jbd19rck] {
    padding: 11px 20px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
}

.body[b-83jbd19rck] {
    padding: 13px 20px;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.body:hover[b-83jbd19rck] { background: var(--ihs-row-hover); }
/* Vendors stay on the map, greyed: removing them would make the map look tidier and
   be less true. */
.body.vendor[b-83jbd19rck] { color: var(--ihs-nav-link); }
.body.vendor .name[b-83jbd19rck] { color: var(--ihs-nav-link); }

.org[b-83jbd19rck] { min-width: 0; }
.name[b-83jbd19rck] {
    font-size: 14px;
    color: var(--ihs-ink-heading);
    overflow-wrap: anywhere;
    text-decoration: none;
    display: block;
}
.name:hover[b-83jbd19rck] { text-decoration: underline; }
.sub[b-83jbd19rck] { font-size: 11px; color: var(--ihs-nav-link); margin-top: 3px; overflow-wrap: anywhere; }

.num[b-83jbd19rck] { font-size: 13px; color: var(--ihs-ink-muted); }
.segs[b-83jbd19rck] { font-size: 12px; color: var(--ihs-ink-muted); overflow-wrap: anywhere; }

.none[b-83jbd19rck] { padding: 16px 20px; font-size: 13px; }

/* ---- rail ---- */

.rail[b-83jbd19rck] { display: flex; flex-direction: column; gap: 20px; }
.rail-panel[b-83jbd19rck] { padding: 18px 20px; }
.rail-panel .panel-caption[b-83jbd19rck] { margin-bottom: 10px; }

.statline[b-83jbd19rck] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: center;
    gap: 10px;
    margin: 6px 0;
}
.sbar[b-83jbd19rck] { grid-row: 1; grid-column: 1; height: 20px; }
.sbar.target[b-83jbd19rck] { background: var(--ihs-blue-tint); }
.sbar.engaged[b-83jbd19rck] { background: var(--ihs-blue); }
.sbar.client[b-83jbd19rck] { background: var(--ihs-success); }
.sbar.vendor[b-83jbd19rck] { background: #d8d8d8; }
/* A referrer is an asset, not noise — coloured, where the vendor bar is grey (Q75). */
.sbar.referrer[b-83jbd19rck] { background: var(--ihs-teal, #0f5f66); opacity: .55; }

.slabel[b-83jbd19rck] {
    grid-row: 1;
    grid-column: 1;
    font-size: 13px;
    color: var(--ihs-ink-heading);
    padding-left: 8px;
    z-index: 1;
}
.scount[b-83jbd19rck] {
    grid-column: 2;
    text-align: right;
    font-size: 13px;
    color: var(--ihs-ink-muted);
}

.segline[b-83jbd19rck] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
    font-size: 13px;
    color: var(--ihs-ink-heading);
}
.segline:last-of-type[b-83jbd19rck] { border-bottom: 0; }
.segline span:last-child[b-83jbd19rck] { color: var(--ihs-ink-muted); }

.cap-row[b-83jbd19rck] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.cap-row .panel-caption[b-83jbd19rck] { margin-bottom: 0; }

.drewnote[b-83jbd19rck] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    text-wrap: pretty;
}
/* /Components/Pages/OrgDetail.razor.rz.scp.css */
/* The account file. Follows ImagerDetail's shape so the two read as one product:
   identity band, then panels, then the paperwork. */

.back[b-pejiozuf46] {
    display: inline-block;
    margin-bottom: 14px;
    font-size: 12px;
    color: var(--muted, #6c6d74);
    text-decoration: none;
}
.back:hover[b-pejiozuf46] { color: var(--ink, #1c1d21); }

.identity[b-pejiozuf46] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 14px;
}

.identity h1[b-pejiozuf46] { margin: 0 0 2px; font-size: 22px; letter-spacing: -0.01em; }

.legal[b-pejiozuf46] { font-size: 13px; margin-bottom: 4px; }
.legal strong[b-pejiozuf46] { font-weight: 600; }

.ident[b-pejiozuf46] { font-size: 12px; color: var(--muted, #6c6d74); margin-bottom: 10px; }

.chips[b-pejiozuf46] { display: flex; flex-wrap: wrap; gap: 6px; }

.chip[b-pejiozuf46] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    background: var(--chip-bg, #f1f1f3);
    color: var(--muted, #6c6d74);
    white-space: nowrap;
}
.chip.blue[b-pejiozuf46] { background: #e8f0fe; color: #2b5fb8; }
.chip.neutral[b-pejiozuf46] { background: transparent; border: 1px solid var(--rule, #e4e4e8); }

.acts .counts[b-pejiozuf46] { text-align: right; font-size: 12px; color: var(--muted, #6c6d74); }
.acts .counts .tnum[b-pejiozuf46] { font-size: 18px; color: var(--ink, #1c1d21); font-weight: 600; }
.acts .counts > div[b-pejiozuf46] { margin-bottom: 2px; }
.small[b-pejiozuf46] { font-size: 11px; }

.two[b-pejiozuf46] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}
@media (max-width: 900px) { .two[b-pejiozuf46] { grid-template-columns: 1fr; } }

.panel[b-pejiozuf46] { margin-bottom: 14px; }

.panel-caption.split[b-pejiozuf46] { display: flex; justify-content: space-between; gap: 12px; }
.dim[b-pejiozuf46] { color: var(--muted, #6c6d74); }

/* One row per linked object. Flat is the same row without a destination, so a person
   who is not an imager does not look like a broken link. */
.rowlink[b-pejiozuf46] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
    border-top: 1px solid var(--rule, #e4e4e8);
    font-size: 13px;
    color: inherit;
    text-decoration: none;
}
.rowlink:first-of-type[b-pejiozuf46] { border-top: none; }
.rowlink .grow[b-pejiozuf46] { flex: 1; }
.rowlink:not(.flat):hover[b-pejiozuf46] { background: var(--hover, #fafafb); }
.rowlink.flat[b-pejiozuf46] { cursor: default; }

.cardline[b-pejiozuf46] {
    display: flex;
    gap: 10px;
    padding: 6px 0;
    border-top: 1px solid var(--rule, #e4e4e8);
    font-size: 13px;
}
.cardline:first-of-type[b-pejiozuf46] { border-top: none; }
.cardline .kind[b-pejiozuf46] {
    flex: 0 0 128px;
    font-size: 11px;
    color: var(--muted, #6c6d74);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.people-grid[b-pejiozuf46] {
    display: grid;
    grid-template-columns: 1.2fr 0.9fr 1.6fr 0.8fr;
    gap: 10px;
    align-items: baseline;
    font-size: 13px;
    padding: 6px 0;
}
.people-grid.head[b-pejiozuf46] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted, #6c6d74);
    padding-bottom: 4px;
}
.people-grid.body[b-pejiozuf46] { border-top: 1px solid var(--rule, #e4e4e8); }
@media (max-width: 900px) {
    .people-grid[b-pejiozuf46] { grid-template-columns: 1fr 1fr; }
}

/* The PSA placeholder list, laid out so the blanks are as legible as the values —
   a missing notice block is the thing that stops a document being generated. */
.facts[b-pejiozuf46] {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 4px 12px;
    margin: 0;
    font-size: 13px;
}
.facts dt[b-pejiozuf46] {
    color: var(--muted, #6c6d74);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding-top: 2px;
}
.facts dd[b-pejiozuf46] { margin: 0; }

.empty[b-pejiozuf46] { color: var(--muted, #6c6d74); font-size: 13px; }
.mono[b-pejiozuf46] { font-variant-numeric: tabular-nums; font-family: var(--mono, ui-monospace, monospace); }

/* The evidence link sits inside the card's sentence, quieter than the claim itself. */
.evidence[b-pejiozuf46] { color: var(--muted, #6c6d74); font-size: 12px; }

/* Migration 031: the sponsor behind the account.
   Given its own line under the identity rather than another chip in the row, because the
   half worth reading is the list of what else IHS deals with through the same people —
   and a list does not fit in a chip. */
.owner[b-pejiozuf46] {
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid var(--ihs-rule-inner);
    font-size: 13px;
}
.owner .lbl[b-pejiozuf46] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--muted, #6c6d74);
    margin-right: 7px;
}
.owner .aka[b-pejiozuf46] { color: var(--muted, #6c6d74); margin-left: 4px; }
.owner .kind[b-pejiozuf46] {
    margin-left: 8px;
    font-size: 11px;
    color: var(--muted, #6c6d74);
}
.owner .siblings[b-pejiozuf46] { margin-top: 4px; font-size: 12px; color: var(--muted, #6c6d74); }
.owner .siblings a[b-pejiozuf46] { margin-left: 6px; }

/* ---- the archive (Q99 slice 3) ----
   An archived account's page is the ONE place it still appears, so the banner has to do the
   work a list would otherwise have done: say who hid it, when, why, and offer the way back. */
.archived-banner[b-pejiozuf46] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: var(--ihs-danger-row);
    border-left: 2px solid var(--ihs-danger-ink);
}
.archived-banner .small[b-pejiozuf46] { color: var(--muted, #6c6d74); font-size: 12px; margin-top: 3px; }

/* The refusal reads as a FACT ABOUT THE ACCOUNT, not as a disabled control — so it is
   quiet text and not an error box. "Riverside has an executed agreement and a live
   engagement — it cannot be archived." */
.archive-refused[b-pejiozuf46] {
    margin-top: 9px;
    color: var(--muted, #6c6d74);
    max-width: 34ch;
    text-align: right;
}

.archive-box[b-pejiozuf46] { margin-top: 9px; display: grid; gap: 7px; max-width: 34ch; }
.archive-box .weight[b-pejiozuf46] { font-size: 12px; line-height: 1.45; text-align: left; }
.archive-box .second[b-pejiozuf46] { font-size: 12px; display: flex; gap: 6px; align-items: flex-start; text-align: left; }
.archive-box .row[b-pejiozuf46] { display: flex; gap: 8px; justify-content: flex-end; }
.archive-notice[b-pejiozuf46] { margin-top: 8px; color: var(--muted, #6c6d74); max-width: 34ch; text-align: right; }
/* /Components/Pages/People.razor.rz.scp.css */
.controls[b-z9deu1qrmr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    justify-content: space-between;
}

.search[b-z9deu1qrmr] {
    font: inherit;
    font-size: 13px;
    padding: 7px 10px;
    flex: 1 1 260px;
    min-width: 0;
    border: 1px solid var(--ihs-border);
    border-radius: 3px;
}

.hats[b-z9deu1qrmr] { display: flex; flex-wrap: wrap; gap: 6px; }
/* Filters, not navigation: they narrow one list rather than opening different pages, so
   they read as toggles and the chosen one stays visibly held down. */
.hat[b-z9deu1qrmr] {
    font: inherit;
    font-size: 12px;
    padding: 5px 11px;
    cursor: pointer;
    background: none;
    border: 1px solid var(--ihs-border);
    border-radius: 999px;
    color: var(--ihs-ink-muted);
}
.hat.on[b-z9deu1qrmr] {
    background: var(--ihs-ink-heading);
    border-color: var(--ihs-ink-heading);
    color: #fff;
}

.prow[b-z9deu1qrmr] {
    display: grid;
    /* minmax(0, …) on every flexible track: a long unbroken email address widens a `1fr`
       track past the viewport, which is how the proposal page shipped with a horizontal
       scrollbar (SESSION-STATE). */
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.5fr) minmax(0, 1fr) 90px;
    gap: 10px 14px;
    align-items: baseline;
    padding: 8px 0;
    font-size: 13px;
}
.prow.head[b-z9deu1qrmr] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.prow.head span:last-child[b-z9deu1qrmr] { text-align: right; }
.prow.body[b-z9deu1qrmr] { border-top: 1px solid var(--ihs-rule-inner); }

.pname a[b-z9deu1qrmr] { font-weight: 500; overflow-wrap: anywhere; }
.pname .mono[b-z9deu1qrmr] { font-size: 11px; overflow-wrap: anywhere; }
.phats[b-z9deu1qrmr] { display: flex; flex-wrap: wrap; gap: 4px; }
.pwhere[b-z9deu1qrmr] { overflow-wrap: anywhere; }
.tnum[b-z9deu1qrmr] { text-align: right; font-variant-numeric: tabular-nums; }
.dim[b-z9deu1qrmr] { color: var(--ihs-ink-muted); }

@media (max-width: 900px) {
    .prow[b-z9deu1qrmr] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .prow.head[b-z9deu1qrmr] { display: none; }
}
/* /Components/Pages/PersonDetail.razor.rz.scp.css */
.identity[b-e4gm2ygv0m] {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    padding: 22px 26px;
    margin-bottom: 20px;
}
.who[b-e4gm2ygv0m] { flex: 1; min-width: 0; }
.identity h1[b-e4gm2ygv0m] { font-size: 32px; line-height: 40px; overflow-wrap: anywhere; }

.ident[b-e4gm2ygv0m] {
    font-size: 14px;
    color: var(--ihs-ink-muted);
    margin-top: 6px;
}
.ident .title[b-e4gm2ygv0m] { color: var(--ihs-ink-heading); }
.ident .at[b-e4gm2ygv0m] { margin: 0 4px; }

.chips[b-e4gm2ygv0m] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }

.field[b-e4gm2ygv0m] {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.field:last-of-type[b-e4gm2ygv0m] { border-bottom: 0; }
.flabel[b-e4gm2ygv0m] { font-size: 13px; color: var(--ihs-ink-muted); }
.fvalue[b-e4gm2ygv0m] { font-size: 14px; color: var(--ihs-ink-heading); overflow-wrap: anywhere; }

.rolerow[b-e4gm2ygv0m], .msgrow[b-e4gm2ygv0m] {
    display: grid;
    gap: 12px;
    align-items: baseline;
    padding: 8px 0;
    border-top: 1px solid var(--ihs-rule-inner);
    font-size: 13px;
}
.rolerow[b-e4gm2ygv0m] { grid-template-columns: 150px minmax(0, 1fr) 200px 92px; }
.msgrow[b-e4gm2ygv0m] { grid-template-columns: 92px 40px minmax(0, 1fr); }

.rolerow:first-of-type[b-e4gm2ygv0m], .msgrow:first-of-type[b-e4gm2ygv0m] { border-top: none; }

.rrole[b-e4gm2ygv0m] { color: var(--ihs-ink-heading); }
.rtitle[b-e4gm2ygv0m], .dim[b-e4gm2ygv0m] { color: var(--ihs-ink-muted); }
.msubj[b-e4gm2ygv0m] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 860px) {
    .rolerow[b-e4gm2ygv0m] { grid-template-columns: 140px minmax(0, 1fr); }
    .rolerow .rtitle[b-e4gm2ygv0m], .rolerow .rfrom[b-e4gm2ygv0m] { display: none; }
}
/* /Components/Pages/Pursuits.razor.rz.scp.css */
.filters[b-sahvmrf40w] { display: flex; gap: 8px; flex: none; }
.filters .on[b-sahvmrf40w] { border-color: var(--ihs-blue); color: var(--ihs-blue); }

.table[b-sahvmrf40w] { overflow-x: auto; }

/* min-width is required: without it the first track collapses and the text overlaps. */
.row-grid[b-sahvmrf40w] {
    display: grid;
    grid-template-columns: minmax(0, 2.4fr) 120px 96px 116px 92px minmax(0, 1.5fr) 116px;
    gap: 16px;
    min-width: 1140px;
    align-items: center;
}

.head[b-sahvmrf40w] {
    padding: 11px 20px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
}

.body[b-sahvmrf40w] {
    padding: 13px 20px;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.body:hover[b-sahvmrf40w] { background: var(--ihs-row-hover); }
.body.row-flagged[b-sahvmrf40w] { background: var(--ihs-danger-row); }
.body.row-closed[b-sahvmrf40w] { color: var(--ihs-nav-link); }
.body.row-closed a[b-sahvmrf40w] { color: var(--ihs-nav-link); }

.org[b-sahvmrf40w] { min-width: 0; }
.name-row[b-sahvmrf40w] { display: flex; align-items: baseline; gap: 8px; }
.name-row a[b-sahvmrf40w] { font-size: 14px; overflow-wrap: anywhere; }

.derived[b-sahvmrf40w] {
    font-size: 11px;
    color: var(--ihs-warning-ink);
    border-bottom: 1px dotted var(--ihs-warning);
    flex: none;
}

.sub[b-sahvmrf40w] {
    font-size: 11px;
    color: var(--ihs-nav-link);
    margin-top: 3px;
    overflow-wrap: anywhere;
}

.tier[b-sahvmrf40w] { font-size: 13px; color: var(--ihs-ink-muted); }

.last[b-sahvmrf40w] { font-size: 12px; color: var(--ihs-ink-muted); }
.last .dir[b-sahvmrf40w] { color: var(--ihs-nav-link); }

.stale[b-sahvmrf40w] { font-size: 12px; color: var(--ihs-ink-muted); }
.stale.past[b-sahvmrf40w] { color: var(--ihs-warning); }
.stale.flagged[b-sahvmrf40w] { color: var(--ihs-danger); }
.stale.held[b-sahvmrf40w] { color: var(--ihs-nav-link); }

.blocker[b-sahvmrf40w] {
    font-size: 12px;
    color: var(--ihs-ink-muted);
    overflow-wrap: anywhere;
}

.end[b-sahvmrf40w] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}
.arrow[b-sahvmrf40w] { color: var(--ihs-nav-link); font-size: 14px; }

.pencil[b-sahvmrf40w] {
    background: none;
    border: 0;
    padding: 0;
    font-family: inherit;
    font-size: 12px;
    color: var(--ihs-nav-link);
    cursor: pointer;
}
.pencil:hover[b-sahvmrf40w] { color: var(--ihs-blue); }
.pencil.danger:hover[b-sahvmrf40w] { color: var(--ihs-danger-ink); }

.rename[b-sahvmrf40w] { display: flex; align-items: center; gap: 8px; }
.rename input[b-sahvmrf40w] { flex: 1; min-width: 0; }
/* /Components/Pages/Queue.razor.rz.scp.css */
.notice[b-suwfg30tl0] {
    background: var(--ihs-success-wash);
    border: 1px solid #cfe9da;
    padding: 11px 16px;
    font-size: 13px;
    color: var(--ihs-success-ink);
    margin-bottom: 16px;
}

.groups[b-suwfg30tl0] { display: flex; flex-direction: column; gap: 20px; }

.head[b-suwfg30tl0] {
    padding: 16px 20px 14px;
    border-bottom: 1px solid var(--ihs-border);
}
.head-row[b-suwfg30tl0] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.kind[b-suwfg30tl0] {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--ihs-ink-heading);
}
.dupes[b-suwfg30tl0] { font-size: 12px; color: var(--ihs-nav-link); }
.shape[b-suwfg30tl0] { font-size: 12px; color: var(--ihs-ink-muted); margin-left: auto; }

.why[b-suwfg30tl0] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    max-width: 820px;
    margin-top: 8px;
    text-wrap: pretty;
}

.row[b-suwfg30tl0] {
    display: flex;
    gap: 16px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--ihs-rule-inner);
    align-items: flex-start;
}
.date[b-suwfg30tl0] {
    flex: none;
    width: 44px;
    font-size: 12px;
    color: var(--ihs-nav-link);
    padding-top: 2px;
}
.body[b-suwfg30tl0] { flex: 1; min-width: 0; }
.title[b-suwfg30tl0] {
    font-size: 14px;
    line-height: 21px;
    color: var(--ihs-ink-heading);
    overflow-wrap: anywhere;
}
.signal[b-suwfg30tl0] {
    font-size: 12px;
    line-height: 18px;
    color: var(--ihs-ink-muted);
    margin-top: 3px;
}
.row.tall[b-suwfg30tl0] { align-items: flex-start; }
.row-actions[b-suwfg30tl0] { display: flex; gap: 8px; flex: none; }

.nocands[b-suwfg30tl0] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-warning-ink);
    background: var(--ihs-warning-note-bg);
    border-left: 2px solid var(--ihs-warning);
    padding: 8px 12px;
    margin-top: 10px;
    max-width: 640px;
    text-wrap: pretty;
}

.group-foot[b-suwfg30tl0] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 20px;
}
.group-foot:empty[b-suwfg30tl0] { display: none; }
.group-foot .btn[b-suwfg30tl0] { margin-left: auto; }
.remaining[b-suwfg30tl0] { font-size: 12px; color: var(--ihs-nav-link); }

/* FOLDER-PAPER-PLAN slice 6: the one-sentence explanation beside "Read all N" — what the
   spend gate does and does not do, read every time so pressing it is never a surprise. */
.readall-note[b-suwfg30tl0] { font-size: 12px; line-height: 17px; color: var(--ihs-ink-muted); max-width: 360px; }

/* The evidence line sits under the claim, quieter than it. */
.evidence[b-suwfg30tl0] { margin-top: 3px; font-size: 12px; color: var(--ihs-ink-muted, #6c6d74); }

/* Who the ask is about. Reads as a byline under the claim, not as chrome. */
.whose[b-suwfg30tl0] { margin-top: 3px; font-size: 12px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.whose a[b-suwfg30tl0] { color: var(--ihs-ink-heading); text-decoration: none; border-bottom: 1px dotted var(--ihs-nav-link); }
.whose a:hover[b-suwfg30tl0] { border-bottom-style: solid; }
.whose .sep[b-suwfg30tl0] { color: var(--ihs-rule); }
.whose .dim[b-suwfg30tl0] { color: var(--ihs-ink-muted); }

/* The other way to read the queue: one account at a time. */
.accounts[b-suwfg30tl0] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.accounts .label[b-suwfg30tl0] {
    font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--ihs-ink-muted); margin-right: 2px;
}
.acct[b-suwfg30tl0] {
    background: none; border: 1px solid var(--ihs-rule); border-radius: 12px;
    padding: 2px 9px; font: inherit; font-size: 12px; cursor: pointer;
    color: var(--ihs-ink-body);
}
.acct:hover[b-suwfg30tl0] { border-color: var(--ihs-nav-link); }
.acct.on[b-suwfg30tl0] { background: var(--ihs-ink-heading); color: #fff; border-color: var(--ihs-ink-heading); }
.acct .n[b-suwfg30tl0] { color: var(--ihs-ink-muted); font-size: 11px; margin-left: 3px; }
.acct.on .n[b-suwfg30tl0] { color: rgba(255,255,255,0.7); }
/* /Components/Pages/Resolve.razor.rz.scp.css */
.page-head[b-jm4t83tzm8], .stack[b-jm4t83tzm8], .applied[b-jm4t83tzm8] { max-width: 960px; }

.applied[b-jm4t83tzm8] {
    background: var(--ihs-success-wash);
    border: 1px solid #cfe9da;
    padding: 11px 16px;
    font-size: 13px;
    color: var(--ihs-success-ink);
    margin-bottom: 16px;
}

.stack[b-jm4t83tzm8] { display: flex; flex-direction: column; gap: 20px; }

.proposal[b-jm4t83tzm8] { padding: 22px 24px; }

.question[b-jm4t83tzm8] {
    font-size: 16px;
    line-height: 24px;
    color: var(--ihs-ink-heading);
    text-wrap: pretty;
}

.opts[b-jm4t83tzm8] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 14px 0;
}

.opt[b-jm4t83tzm8] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 9px 12px;
    border: 1px solid var(--ihs-border);
    cursor: pointer;
}
.opt:hover[b-jm4t83tzm8] { border-color: var(--ihs-nav-link); }
.opt.picked[b-jm4t83tzm8] { border-color: var(--ihs-blue); background: #f5fbff; }

.opt input[b-jm4t83tzm8] { position: absolute; opacity: 0; width: 0; height: 0; }

.box[b-jm4t83tzm8] {
    flex: none;
    width: 13px;
    height: 13px;
    border: 1px solid var(--ihs-nav-link);
    align-self: center;
}
.opt.picked .box[b-jm4t83tzm8] { border-color: var(--ihs-blue); background: var(--ihs-blue); }

.lbl[b-jm4t83tzm8] { font-size: 14px; color: var(--ihs-ink-heading); }
.lbl.rel[b-jm4t83tzm8] { font-weight: 500; }
.opt:not(.picked) .lbl.rel[b-jm4t83tzm8] { color: var(--ihs-ink-heading); }

.det[b-jm4t83tzm8] {
    font-size: 12px;
    color: var(--ihs-ink-muted);
    margin-left: auto;
    padding-left: 12px;
}

.evidence[b-jm4t83tzm8] {
    background: var(--ihs-row-hover);
    border-left: 2px solid var(--ihs-blue-tint);
    padding: 12px 16px;
    margin: 14px 0;
}
.emeta[b-jm4t83tzm8] {
    font-size: 12px;
    color: var(--ihs-ink-muted);
    margin-bottom: 8px;
}
.subj[b-jm4t83tzm8] {
    font-size: 13px;
    line-height: 21px;
    color: var(--ihs-ink-muted);
}
.subj.hit[b-jm4t83tzm8] { color: var(--ihs-ink-heading); font-weight: 500; }

.actions[b-jm4t83tzm8] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
}
.hint[b-jm4t83tzm8] { font-size: 12px; color: var(--ihs-nav-link); }

.roster .rlede[b-jm4t83tzm8] {
    font-size: 13px;
    color: var(--ihs-ink-muted);
    margin: 10px 0 12px;
}

.selectors[b-jm4t83tzm8] {
    display: flex;
    gap: 14px;
    margin-bottom: 6px;
}
.selectors .on[b-jm4t83tzm8] { color: var(--ihs-blue); }
.selectors .linklike[b-jm4t83tzm8] { color: var(--ihs-ink-muted); }
.selectors .linklike:hover[b-jm4t83tzm8] { color: var(--ihs-blue); }

.group-head[b-jm4t83tzm8] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--ihs-ink-muted);
    border-bottom: 1px solid var(--ihs-border);
    padding-bottom: 6px;
    margin-top: 18px;
}
.gcount[b-jm4t83tzm8] { color: var(--ihs-nav-link); }
/* /Components/Pages/ScanVolumeForecasts.razor.rz.scp.css */
.page-head[b-b90b10lopv] { display: flex; align-items: flex-start; gap: 16px; }
.page-head .spacer[b-b90b10lopv] { flex: 1; }

/* The customer list beside the grid: choosing and reading at the same time, because the
   question "which customer" is answered by looking at the numbers. */
.two-col[b-b90b10lopv] {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.companies[b-b90b10lopv] { max-height: 76vh; overflow-y: auto; }

.crow[b-b90b10lopv] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 62px 62px;
    gap: 8px;
    align-items: baseline;
    padding: 7px 0;
    font-size: 12.5px;
    color: inherit;
    text-decoration: none;
}
.crow.head[b-b90b10lopv] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
}
.crow.head span:nth-child(2)[b-b90b10lopv], .crow.head span:nth-child(3)[b-b90b10lopv] { text-align: right; }
.crow.body[b-b90b10lopv] { border-top: 1px solid var(--ihs-rule-inner); }
.crow.body:hover[b-b90b10lopv] { color: var(--ihs-blue); }
.crow.on[b-b90b10lopv] { font-weight: 600; }
.crow .cname[b-b90b10lopv] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crow .orglink[b-b90b10lopv] {
    display: block;
    font-size: 10px;
    color: var(--ihs-ink-muted);
    font-weight: 400;
}
.crow .tnum[b-b90b10lopv] { text-align: right; }

.grid-panel[b-b90b10lopv] { overflow: hidden; }
.grid-panel .scroller[b-b90b10lopv] { overflow-x: auto; }
.grid[b-b90b10lopv] { border-collapse: collapse; font-size: 12px; }
.grid th[b-b90b10lopv], .grid td[b-b90b10lopv] {
    padding: 5px 8px;
    border-bottom: 1px solid var(--ihs-rule-inner);
    white-space: nowrap;
    text-align: right;
}
.grid th[b-b90b10lopv] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--ihs-ink-muted);
    font-weight: 500;
}

/* The study name stays put while months scroll — a row of numbers without it is unreadable. */
.grid .stick[b-b90b10lopv] {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--ihs-bg);
    text-align: left;
    min-width: 230px;
    max-width: 230px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Actual and forecast are different KINDS of number, not different values of one. The
   shading says so before any label does. */
.grid .actual[b-b90b10lopv] { background: var(--ihs-bg-muted); color: var(--ihs-ink-muted); }
.grid .fc[b-b90b10lopv] { background: transparent; }
.grid tr.band th[b-b90b10lopv] {
    padding: 0 8px 4px;
    font-size: 9px;
    letter-spacing: .06em;
    color: var(--ihs-blue);
    border-bottom: 0;
}

/* The forecast columns carry a field rather than a number, so they get the room a field
   needs. Actual columns stay tight — history is read, not typed into. */
.grid .fc[b-b90b10lopv] { padding: 4px 5px; }

/* A number input draws spinner arrows worth ~17px of a 58px box, for a control nobody
   uses: you type a monthly volume, you don't click up to it. Removing them gives the
   digits the whole field, which is most of what "too narrow" was. */
.grid .vol[b-b90b10lopv]::-webkit-outer-spin-button,
.grid .vol[b-b90b10lopv]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.grid .vol[b-b90b10lopv] {
    width: 72px;
    box-sizing: border-box;
    -moz-appearance: textfield;
    appearance: textfield;
    text-align: right;
    font-size: 12px;
    /* An input does not inherit the page's face, so the forecast months were rendering in
       Arial next to actual months in Consolas — the same row in two typefaces, digits not
       lining up across the boundary. */
    font-family: var(--ihs-font-mono);
    padding: 3px 6px;
    border: 1px solid transparent;
    background: transparent;
}
.grid .vol:hover[b-b90b10lopv], .grid .vol:focus[b-b90b10lopv] { border-color: var(--ihs-border); background: #fff; }
.grid .vol:focus[b-b90b10lopv] { outline: none; border-color: var(--ihs-blue); }

.grid .total td[b-b90b10lopv] {
    border-top: 2px solid var(--ihs-border);
    border-bottom: 0;
    font-weight: 600;
    color: var(--ihs-ink-heading);
}

@media (max-width: 1100px) {
    .two-col[b-b90b10lopv] { grid-template-columns: 1fr; }
    .companies[b-b90b10lopv] { max-height: 32vh; }
}
/* /Components/Pages/StudyMapAdmin.razor.rz.scp.css */
.counts[b-2hlnisji8e] {
    display: flex;
    align-items: baseline;
    gap: 22px;
    padding: 14px 20px;
    margin-bottom: 20px;
    font-size: 13px;
    color: var(--ihs-ink-muted);
}
.counts strong[b-2hlnisji8e] { color: var(--ihs-ink-heading); font-size: 16px; margin-right: 4px; }
.counts .warn strong[b-2hlnisji8e] { color: var(--ihs-warning-ink); }
.counts .grow[b-2hlnisji8e] { flex: 1; }

.maprow[b-2hlnisji8e] {
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr) 330px 92px;
    gap: 14px;
    align-items: start;
    padding: 10px 0;
    font-size: 13px;
}
.maprow.head[b-2hlnisji8e] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ihs-ink-muted);
    padding-bottom: 4px;
}
.maprow.body[b-2hlnisji8e] { border-top: 1px solid var(--ihs-rule-inner); }

/* A row with no home, and a row Drew guessed at, are different kinds of unfinished — so
   they read differently rather than sharing one "needs attention" colour. */
.maprow.unmapped .cpt[b-2hlnisji8e] { color: var(--ihs-warning-ink); }
.maprow.review .cpt[b-2hlnisji8e] { color: var(--ihs-ink-heading); }

.cpt[b-2hlnisji8e] { padding-top: 5px; }
.descr[b-2hlnisji8e] { color: var(--ihs-ink-heading); overflow-wrap: anywhere; padding-top: 4px; }

/* Why this row is hard, next to the decision rather than in a comment nobody reads. */
.why[b-2hlnisji8e] {
    display: block;
    font-size: 12px;
    line-height: 18px;
    color: var(--ihs-ink-muted);
    margin-top: 4px;
    max-width: 62ch;
}

.pick select[b-2hlnisji8e] { width: 100%; font-size: 13px; padding: 4px 6px; }
.state[b-2hlnisji8e] { padding-top: 4px; }

@media (max-width: 1000px) {
    .maprow[b-2hlnisji8e] { grid-template-columns: 96px minmax(0, 1fr) 88px; }
    .maprow .pick[b-2hlnisji8e] { grid-column: 1 / -1; }
    .maprow.head[b-2hlnisji8e] { display: none; }
}

/* Vivien's code disagreeing with the form's — sometimes correct (FFR-CT moved to 75580),
   sometimes the sign of a wrong pick. Stated quietly rather than smoothed over. */
.mismatch[b-2hlnisji8e] {
    display: block;
    font-size: 11px;
    line-height: 16px;
    color: var(--ihs-warning-ink);
    margin-top: 4px;
}
/* /Components/Pages/SweepsAdmin.razor.rz.scp.css */
.kinds[b-n4q1fuy9j0] { display: flex; flex-direction: column; gap: 14px; }

.kind[b-n4q1fuy9j0] {
    border: 1px solid var(--ihs-border);
    border-radius: 6px;
    padding: 12px 14px;
    background: var(--ihs-bg-muted);
}

.kind-head[b-n4q1fuy9j0] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.kind-head .name[b-n4q1fuy9j0] {
    font-weight: 600;
    color: var(--ihs-ink);
}

.kind-head .pct[b-n4q1fuy9j0] {
    font-size: 12px;
    color: var(--ihs-ink-muted);
}

.kind-head .spacer[b-n4q1fuy9j0] { flex: 1; }

.sample[b-n4q1fuy9j0] {
    margin: 0;
    padding-left: 18px;
    font-size: 12.5px;
    color: var(--ihs-ink-muted);
}

.sample li[b-n4q1fuy9j0] { margin: 2px 0; }
.sample li.more[b-n4q1fuy9j0] { list-style: none; margin-left: -18px; font-style: italic; }

.empty[b-n4q1fuy9j0] { color: var(--ihs-ink-muted); font-style: italic; margin: 4px 0 0; }

.notice[b-n4q1fuy9j0] {
    background: var(--ihs-success-wash);
    border: 1px solid #cfe9da;
    padding: 11px 16px;
    font-size: 13px;
    color: var(--ihs-success-ink);
    margin-bottom: 16px;
}

.dim[b-n4q1fuy9j0] { color: var(--ihs-ink-muted); }

.stale[b-n4q1fuy9j0] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }

.stale-row[b-n4q1fuy9j0] {
    display: grid;
    grid-template-columns: minmax(0, 240px) minmax(0, 1fr) auto;
    gap: 12px;
    align-items: baseline;
    padding: 8px 0;
    border-bottom: 1px solid var(--ihs-border);
    font-size: 13px;
}

.stale-row .who[b-n4q1fuy9j0] { display: flex; gap: 8px; align-items: baseline; min-width: 0; }
.stale-row .why[b-n4q1fuy9j0] { color: var(--ihs-ink-muted); }
.stale-row .counts[b-n4q1fuy9j0] { font-size: 12px; color: var(--ihs-ink-muted); }
/* /Components/Pages/Templates.razor.rz.scp.css */
/* The template library. One column — a reference page, not a working surface. */
.panel[b-jyb9whdqtv] { margin-bottom: 20px; max-width: 860px; }
.lede[b-jyb9whdqtv] { margin: 0 0 18px; max-width: 70ch; color: var(--ihs-ink-muted); line-height: 1.5; }

.trow[b-jyb9whdqtv] {
    padding: 12px 0;
    border-top: 1px solid var(--ihs-rule);
    min-width: 0;
}
.trow:first-of-type[b-jyb9whdqtv] { border-top: none; }

.thead[b-jyb9whdqtv] { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.tname[b-jyb9whdqtv] { font-size: 14px; font-weight: 600; color: var(--ihs-ink-heading); }
.thead .chip[b-jyb9whdqtv] {
    font-size: 10px;
    padding: 1px 6px;
    border: 1px solid var(--ihs-rule);
    border-radius: 2px;
    color: var(--ihs-ink-muted);
    white-space: nowrap;
}

.tdesc[b-jyb9whdqtv] {
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--ihs-ink-muted);
    margin: 4px 0 6px;
    max-width: 68ch;
}

.tacts[b-jyb9whdqtv] { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; }
.tacts a[b-jyb9whdqtv] { color: var(--ihs-teal); }

.docnote[b-jyb9whdqtv] { font-size: 11px; line-height: 1.5; color: var(--ihs-ink-muted); margin: 10px 0 0; }
.warn[b-jyb9whdqtv] { color: var(--ihs-warning-ink, #9b5b14); font-size: 12px; }
.dim[b-jyb9whdqtv] { color: var(--ihs-ink-muted); }
/* /Components/Pages/WatchdogAdmin.razor.rz.scp.css */
/* Same status idiom as the CMS screen: the one question the report list cannot answer is
   whether anything runs this WITHOUT the button, and the flag's state is that answer. */
.status[b-ilv56wkxqv] { border-left: 2px solid var(--ihs-border); }
.status.ok[b-ilv56wkxqv] { border-left-color: var(--ihs-ok, #2e7d51); }
.status.stale[b-ilv56wkxqv] { border-left-color: var(--ihs-warning-ink); }

.statline[b-ilv56wkxqv] { display: flex; align-items: center; gap: 9px; font-size: 14px; }
.statline .dot[b-ilv56wkxqv] {
    width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto;
    background: var(--ihs-ink-muted);
}
.statline .dot.ok[b-ilv56wkxqv] { background: var(--ihs-ok, #2e7d51); }
.statline .dot.stale[b-ilv56wkxqv] { background: var(--ihs-warning-ink); }

.statdetail[b-ilv56wkxqv] {
    display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; padding-left: 18px;
    font-size: 12px; color: var(--ihs-ink-muted);
}
.staterr[b-ilv56wkxqv] { margin-top: 7px; font-size: 12px; color: var(--ihs-danger-ink); }

.run[b-ilv56wkxqv] {
    margin-top: 4px; padding: 7px 16px; font-size: 13px; cursor: pointer;
    background: var(--ihs-accent); color: var(--ihs-accent-contrast, #fff);
    border: none; border-radius: 4px;
}
.run:disabled[b-ilv56wkxqv] { opacity: .6; cursor: default; }

.row[b-ilv56wkxqv] {
    display: flex; gap: 10px; align-items: baseline; padding: 6px 0;
    font-size: 12.5px; border-top: 1px solid var(--ihs-rule-inner);
}
.row .chip[b-ilv56wkxqv] { flex: 0 0 auto; }
.row.footer[b-ilv56wkxqv] { color: var(--ihs-ink-muted); }
/* /Components/Shared/AskDrew.razor.rz.scp.css */
.ask-trigger[b-o9qlr39gth] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    border: 1px solid #262626;
    background: #0d0d0d;
    border-radius: 5px;
    padding: 9px 11px;
    cursor: pointer;
    font-family: inherit;
}
.ask-trigger:hover[b-o9qlr39gth] { border-color: var(--ihs-blue); }

.ask-label[b-o9qlr39gth] {
    flex: 1;
    text-align: left;
    font-size: 12px;
    color: var(--ihs-nav-link);
}

.ask-key[b-o9qlr39gth] {
    font-family: var(--ihs-font-mono);
    font-size: 11px;
    color: var(--ihs-sidebar-label);
}
/* /Components/Shared/AskDrewPanel.razor.rz.scp.css */
.ask[b-x7cc971oi8] {
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    width: 420px;
    background: #fff;
    border-left: 1px solid var(--ihs-border);
    box-shadow: -1px 0 0 rgba(0, 0, 0, .04);
    z-index: 20;
    display: flex;
    flex-direction: column;
}

.head[b-x7cc971oi8] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--ihs-border);
}

.titles[b-x7cc971oi8] { flex: 1; min-width: 0; }
.title[b-x7cc971oi8] { font-size: 15px; color: var(--ihs-ink-heading); }
.sub[b-x7cc971oi8] { font-size: 11px; line-height: 17px; color: var(--ihs-ink-muted); margin-top: 2px; }

.close[b-x7cc971oi8] {
    flex: none;
    background: none;
    border: 0;
    padding: 0;
    font-size: 18px;
    line-height: 1;
    color: var(--ihs-nav-link);
    cursor: pointer;
}
.close:hover[b-x7cc971oi8] { color: #292929; }

.transcript[b-x7cc971oi8] {
    flex: 1;
    overflow: auto;
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.turn-drew[b-x7cc971oi8] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 14px;
    line-height: 22px;
    color: var(--ihs-ink-heading);
}

/* The question, as the person typed it. Square corners deliberately: a rounded bubble is a
   chat app, and this is a record of what was asked. */
.turn-user[b-x7cc971oi8] {
    align-self: flex-end;
    max-width: 88%;
    background: #eaf6ff;
    padding: 11px 14px;
    font-size: 14px;
    line-height: 21px;
    color: var(--ihs-ink-heading);
}

.turn-drew p[b-x7cc971oi8] { margin: 0; }

/* Which read is running, live. Naming the tool rather than showing a spinner is the point:
   a person can see that "who can read" is being consulted and judge the answer accordingly. */
.working[b-x7cc971oi8] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-ink-muted);
    font-style: italic;
}

/* A proposed change, and nothing has been written for it. Bordered rather than filled: it is
   a question sitting in the transcript, not an outcome. */
.proposal[b-x7cc971oi8] {
    border: 1px solid var(--ihs-border);
    border-left: 2px solid var(--ihs-blue);
    padding: 11px 13px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.proposal .what[b-x7cc971oi8] { font-size: 13px; line-height: 20px; color: var(--ihs-ink-heading); }
.proposal .outcome[b-x7cc971oi8] { font-size: 12px; line-height: 18px; color: var(--ihs-ink-muted); }
/* `dense` is the app's own 28px button; the spec's height for a secondary action, and not
   respelled here. */
.proposal .actions[b-x7cc971oi8] { display: flex; gap: 8px; }

.suggest[b-x7cc971oi8] { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.try[b-x7cc971oi8] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--ihs-ink-muted);
    margin-bottom: 2px;
}
.prompt[b-x7cc971oi8] {
    font-size: 13px;
    line-height: 20px;
    color: var(--ihs-blue);
    background: none;
    border: 0;
    padding: 0;
    text-align: left;
    cursor: pointer;
}
.prompt:hover[b-x7cc971oi8] { text-decoration: underline; }

.composer[b-x7cc971oi8] {
    padding: 16px 22px;
    border-top: 1px solid var(--ihs-border);
}
.composer input[b-x7cc971oi8] { width: 100%; padding: 10px 12px; font-size: 13px; }
.composer input:disabled[b-x7cc971oi8] { background: #fafbfc; color: var(--ihs-ink-muted); }
.boundary[b-x7cc971oi8] {
    margin-top: 10px;
    font-size: 11px;
    line-height: 17px;
    color: var(--ihs-nav-link);
}
/* /Components/Shared/CardOptionList.razor.rz.scp.css */
.opts[b-wwslc9m4g9] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 12px 0;
}

.opt[b-wwslc9m4g9] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 9px 12px;
    border: 1px solid var(--ihs-border);
    cursor: pointer;
}
.opt:hover[b-wwslc9m4g9] { border-color: var(--ihs-nav-link); }
.opt.picked[b-wwslc9m4g9] { border-color: var(--ihs-blue); background: #f5fbff; }

.opt input[b-wwslc9m4g9] { position: absolute; opacity: 0; width: 0; height: 0; }

.box[b-wwslc9m4g9] {
    flex: none;
    width: 13px;
    height: 13px;
    border: 1px solid var(--ihs-nav-link);
    align-self: center;
}
.box.round[b-wwslc9m4g9] { border-radius: 50%; }
.opt.picked .box[b-wwslc9m4g9] { border-color: var(--ihs-blue); background: var(--ihs-blue); }

.lbl[b-wwslc9m4g9] { font-size: 14px; color: var(--ihs-ink-heading); }

.det[b-wwslc9m4g9] {
    font-size: 12px;
    color: var(--ihs-ink-muted);
    margin-left: auto;
    padding-left: 12px;
    text-align: right;
}
/* /Components/Shared/DealLink.razor.rz.scp.css */
/* A name that goes somewhere. Deliberately reads as a link rather than as a chip: it is
   navigation, not a status. */

.deal-link[b-5951km6mf8] { overflow-wrap: anywhere; }

/* A deal that has been removed — "Not a pursuit" deletes the row while keeping the
   organization. Shown, not hidden, so a dangling reference is visible rather than a gap. */
.deal-missing[b-5951km6mf8] {
    color: var(--ihs-nav-link, #9a9aa2);
    font-style: italic;
}
/* /Components/Shared/DealTabs.razor.rz.scp.css */
.dealtabs[b-wme7kg06u5] {
    display: flex;
    gap: 2px;
    margin: 0 0 14px;
    border-bottom: 1px solid var(--ihs-rule-inner);
}
.dealtabs a[b-wme7kg06u5] {
    padding: 7px 14px;
    font-size: 13px;
    color: var(--ihs-ink-muted);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.dealtabs a:hover[b-wme7kg06u5] { color: var(--ihs-ink-heading); }
.dealtabs a.on[b-wme7kg06u5] {
    color: var(--ihs-ink-heading);
    border-bottom-color: var(--ihs-blue);
    font-weight: 600;
}
/* Says whether pricing has been started, which is the question asked before clicking. */
.dealtabs .count[b-wme7kg06u5] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 9px;
    background: var(--ihs-bg-muted);
    font-size: 11px;
    font-weight: 500;
    color: var(--ihs-ink-muted);
}

/* The account the strip belongs to. Reads as a label rather than a tab — it is not clickable,
   because Overview is immediately beside it and two ways to reach the same page is one too many.
   Truncates rather than wrapping: a long legal name must not push the tabs onto a second row. */
.acct[b-wme7kg06u5] {
    font-weight: 600;
    color: var(--ihs-ink-heading);
    padding-right: 14px;
    margin-right: 4px;
    border-right: 1px solid var(--ihs-rule-inner);
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1 auto;
}
/* /Components/Shared/DocumentLink.razor.rz.scp.css */
/* Deliberately MessageLink's geometry: a document and a message are the same kind of
   thing to a reader — evidence you open — and giving them different furniture would
   imply otherwise. Three affordances, because there are three situations: text Drew can
   show, a file only Outlook can show, and nothing. */

.doc-link[b-7plsqf7mdl] {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
    border-bottom: 1px dotted var(--ihs-nav-link, #9a9aa2);
    overflow-wrap: anywhere;
}
.doc-link:hover[b-7plsqf7mdl] { border-bottom-style: solid; }

/* Openable, but Drew has no text — the underline is fainter so the difference between
   "read it here" and "go and look" is visible before clicking, not after. */
.doc-link.thin[b-7plsqf7mdl] { border-bottom-style: dotted; color: var(--ihs-ink-muted, #6c6d74); }

.doc-plain[b-7plsqf7mdl] { cursor: default; overflow-wrap: anywhere; }

.doc-backdrop[b-7plsqf7mdl] {
    position: fixed;
    inset: 0;
    background: rgba(16, 17, 20, 0.38);
    z-index: 40;
}

.doc-window[b-7plsqf7mdl] {
    position: fixed;
    z-index: 41;
    top: 8vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(860px, 94vw);
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    background: var(--ihs-surface, #fff);
    border: 1px solid var(--ihs-rule, #e4e4e8);
    border-radius: 6px;
    box-shadow: 0 18px 48px rgba(16, 17, 20, 0.22);
}

.doc-head[b-7plsqf7mdl] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 16px 10px;
    border-bottom: 1px solid var(--ihs-rule, #e4e4e8);
}
.doc-name[b-7plsqf7mdl] { font-size: 15px; font-weight: 600; overflow-wrap: anywhere; }
.doc-meta[b-7plsqf7mdl] { font-size: 11px; color: var(--ihs-ink-muted, #6c6d74); margin-top: 3px; }

.doc-acts[b-7plsqf7mdl] { display: flex; align-items: center; gap: 10px; flex: none; }
.doc-close[b-7plsqf7mdl] {
    background: none;
    border: none;
    font-size: 14px;
    line-height: 1;
    color: var(--ihs-ink-muted, #6c6d74);
    cursor: pointer;
}
.doc-close:hover[b-7plsqf7mdl] { color: var(--ihs-ink, #1c1d21); }

.doc-body[b-7plsqf7mdl] {
    margin: 0;
    padding: 14px 16px;
    overflow: auto;
    font-family: var(--ihs-font-mono, Consolas, monospace);
    font-size: 12px;
    line-height: 19px;
    white-space: pre-wrap;
    word-break: break-word;
}

.doc-blocked[b-7plsqf7mdl], .doc-note[b-7plsqf7mdl] {
    padding: 12px 16px;
    font-size: 13px;
    line-height: 20px;
}
/* Blocked reads as a stop, not as an error: the screen did its job and a human may
   disagree with it. */
.doc-blocked[b-7plsqf7mdl] {
    background: var(--ihs-warning-note-bg, #fdf6e3);
    border-left: 2px solid var(--ihs-warning, #d9a441);
    color: var(--ihs-warning-note-ink, #6b5310);
    margin: 12px 16px;
}
.doc-note[b-7plsqf7mdl] {
    background: var(--ihs-bg-muted, #f5f5f7);
    font-size: 12px;
    color: var(--ihs-ink-muted, #6c6d74);
    border-bottom: 1px solid var(--ihs-rule-inner, #eeeef1);
    padding: 8px 16px;
}

.doc-foot[b-7plsqf7mdl] {
    padding: 9px 16px 12px;
    border-top: 1px solid var(--ihs-rule, #e4e4e8);
    font-size: 11px;
    line-height: 17px;
    color: var(--ihs-nav-link, #9a9aa2);
}
/* /Components/Shared/DrewMark.razor.rz.scp.css */
.mark[b-usbfodfmdw] {
    position: relative;
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--size);
    height: var(--size);
    border-radius: 50%;
    background: var(--ihs-blue);
}

.letter[b-usbfodfmdw] {
    color: #fff;
    font-size: var(--letter);
    line-height: 1;
    font-weight: 400;
}

.ring[b-usbfodfmdw] {
    position: absolute;
    left: var(--ring-left);
    top: var(--ring-top);
    width: var(--ring-w);
    height: var(--ring-h);
    border: 1px solid var(--ihs-blue-tint);
    border-radius: 50%;
    transform: rotate(-22deg);
    pointer-events: none;
}
/* /Components/Shared/EngagementLink.razor.rz.scp.css */
.eng-link[b-61rvq4p5b6] { overflow-wrap: anywhere; }

.eng-missing[b-61rvq4p5b6] {
    color: var(--ihs-nav-link, #9a9aa2);
    font-style: italic;
}
/* /Components/Shared/MessageLink.razor.rz.scp.css */
/* A readable subject looks like text that can be opened; an unreadable one looks like
   text. The distinction is the whole point — bodies exist for a minority of messages. */

.subject-link[b-3sc47797w6] {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
    border-bottom: 1px dotted var(--ihs-nav-link, #9a9aa2);
}
.subject-link:hover[b-3sc47797w6] { border-bottom-style: solid; }

.subject-plain[b-3sc47797w6] { cursor: default; }

.msg-backdrop[b-3sc47797w6] {
    position: fixed;
    inset: 0;
    background: rgba(16, 17, 20, 0.38);
    z-index: 40;
}

.msg-window[b-3sc47797w6] {
    position: fixed;
    z-index: 41;
    top: 8vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(760px, 92vw);
    max-height: 78vh;
    display: flex;
    flex-direction: column;
    background: var(--ihs-surface, #fff);
    border: 1px solid var(--ihs-rule, #e4e4e8);
    border-radius: 6px;
    box-shadow: 0 18px 48px rgba(16, 17, 20, 0.22);
}

.msg-head[b-3sc47797w6] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 16px 8px;
    border-bottom: 1px solid var(--ihs-rule, #e4e4e8);
}

.msg-subject[b-3sc47797w6] { font-size: 15px; font-weight: 600; }
.msg-meta[b-3sc47797w6] { font-size: 11px; color: var(--ihs-ink-muted, #6c6d74); margin-top: 2px; }
.msg-meta.to[b-3sc47797w6] { padding: 6px 16px 0; }

.msg-close[b-3sc47797w6] {
    background: none;
    border: none;
    font-size: 14px;
    line-height: 1;
    color: var(--ihs-ink-muted, #6c6d74);
    cursor: pointer;
}

/* pre, not a div: an email body's line breaks are the author's, and reflowing them
   turns a quoted schedule into a paragraph. */
.msg-body[b-3sc47797w6] {
    margin: 0;
    padding: 14px 16px;
    overflow: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.5;
}

.msg-foot[b-3sc47797w6] {
    padding: 8px 16px 12px;
    border-top: 1px solid var(--ihs-rule, #e4e4e8);
    font-size: 11px;
    color: var(--ihs-ink-muted, #6c6d74);
}
/* /Components/Shared/NpiLink.razor.rz.scp.css */
/* DocumentLink's underline, because both are "evidence you open" and giving them different
   furniture would imply otherwise. The one difference is the arrow: this link leaves the
   application, and that is worth one character of warning. */

.npi-link[b-dalq6vs62v] {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted var(--ihs-nav-link, #9a9aa2);
    overflow-wrap: anywhere;
}
.npi-link:hover[b-dalq6vs62v] { border-bottom-style: solid; }

.npi-out[b-dalq6vs62v] {
    font-size: 0.85em;
    margin-left: 2px;
    color: var(--ihs-nav-link, #9a9aa2);
}

/* Held but unusable — visible, and visibly not a link. */
.npi-bad[b-dalq6vs62v] {
    color: var(--ihs-ink-muted, #6c6d74);
    text-decoration: underline dotted var(--ihs-warning, #d9a441);
}

.npi-none[b-dalq6vs62v] { color: var(--ihs-ink-muted, #6c6d74); }
/* /Components/Shared/ReadsAtPanel.razor.rz.scp.css */
/* One hospital per row: the name, then the trace beneath it. The trace is always present and
   always small — an affiliation that does not say when it was observed is the Zoho failure
   this plan exists to avoid repeating. */
.reads-row[b-p2g8hxak89] { padding: 8px 0; }
.reads-row + .reads-row[b-p2g8hxak89] { border-top: 1px solid var(--ihs-border); }
.reads-row .dim[b-p2g8hxak89] { color: var(--ihs-ink-muted); font-size: 12px; }
.reads-row .mono[b-p2g8hxak89] { font-family: var(--ihs-mono, ui-monospace, SFMono-Regular, Menlo, monospace); }
.panel-caption.split[b-p2g8hxak89] { display: flex; justify-content: space-between; gap: 16px; }
.empty[b-p2g8hxak89] { color: var(--ihs-ink-muted); }
