/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-s3ozidnwzp] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-s3ozidnwzp] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-dhmi2n8xn0],
.components-reconnect-repeated-attempt-visible[b-dhmi2n8xn0],
.components-reconnect-failed-visible[b-dhmi2n8xn0],
.components-pause-visible[b-dhmi2n8xn0],
.components-resume-failed-visible[b-dhmi2n8xn0],
.components-rejoining-animation[b-dhmi2n8xn0] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-dhmi2n8xn0],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-dhmi2n8xn0],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-dhmi2n8xn0],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-dhmi2n8xn0],
#components-reconnect-modal.components-reconnect-retrying[b-dhmi2n8xn0],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-dhmi2n8xn0],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-dhmi2n8xn0],
#components-reconnect-modal.components-reconnect-failed[b-dhmi2n8xn0],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-dhmi2n8xn0] {
    display: block;
}


#components-reconnect-modal[b-dhmi2n8xn0] {
    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-dhmi2n8xn0 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-dhmi2n8xn0 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-dhmi2n8xn0 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-dhmi2n8xn0]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-dhmi2n8xn0 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-dhmi2n8xn0 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-dhmi2n8xn0 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-dhmi2n8xn0 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-dhmi2n8xn0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-dhmi2n8xn0] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-dhmi2n8xn0] {
    border: 0;
    background-color: var(--backstage-teal);
    color: var(--backstage-on-solid);
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-dhmi2n8xn0] {
        background-color: var(--backstage-teal-active);
    }

    #components-reconnect-modal button:active[b-dhmi2n8xn0] {
        background-color: var(--backstage-teal);
    }

.components-rejoining-animation[b-dhmi2n8xn0] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-dhmi2n8xn0] {
        position: absolute;
        border: 3px solid var(--backstage-teal);
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-dhmi2n8xn0 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-dhmi2n8xn0] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-dhmi2n8xn0 {
    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/InterviewPacks.razor.rz.scp.css */
.interview-packs-page[b-a87pid192c] {
    width: min(1040px, 100%);
    margin: 0 auto;
    padding: 32px 28px 72px;
}

.interview-packs-hero[b-a87pid192c] {
    max-width: 720px;
    margin-bottom: 28px;
}

.interview-packs-hero h1[b-a87pid192c] {
    margin: 4px 0 10px;
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: -.035em;
}

.interview-packs-hero > p:last-child[b-a87pid192c],
.interview-packs-state p[b-a87pid192c] {
    color: var(--backstage-text-meta);
    line-height: 1.65;
}

.interview-packs-eyebrow[b-a87pid192c] {
    margin: 0;
    color: var(--backstage-teal);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.interview-pack-list[b-a87pid192c] {
    display: grid;
    gap: 18px;
}

.interview-pack-card[b-a87pid192c],
.interview-packs-state[b-a87pid192c] {
    border: 1px solid var(--backstage-border);
    border-radius: 14px;
    background: var(--backstage-surface);
    box-shadow: 0 18px 40px rgb(0 0 0 / 14%);
}

.interview-pack-card[b-a87pid192c] {
    padding: 24px;
}

.interview-packs-state[b-a87pid192c] {
    padding: 28px;
}

.interview-packs-state h2[b-a87pid192c] {
    margin: 0 0 8px;
}

.interview-packs-state--error[b-a87pid192c] {
    border-color: var(--backstage-coral);
}

.interview-pack-card__heading[b-a87pid192c],
.interview-pack-action[b-a87pid192c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.interview-pack-company[b-a87pid192c] {
    margin: 0 0 5px;
    color: var(--backstage-text-meta);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.interview-pack-card h2[b-a87pid192c] {
    margin: 0;
    font-size: 1.35rem;
}

.interview-pack-round[b-a87pid192c] {
    flex: 0 0 auto;
    padding: 6px 10px;
    border: 1px solid var(--backstage-border-control);
    border-radius: 999px;
    color: var(--backstage-text-2);
    font-size: .8rem;
}

.interview-pack-upcoming[b-a87pid192c] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 20px 0;
    padding: 12px 14px;
    border-left: 3px solid var(--backstage-amber);
    background: var(--backstage-amber-wash);
}

.interview-pack-upcoming span[b-a87pid192c],
.interview-pack-upcoming small[b-a87pid192c],
.interview-pack-action span[b-a87pid192c],
.interview-pack-awaiting span[b-a87pid192c] {
    color: var(--backstage-text-meta);
}

.interview-pack-meta[b-a87pid192c] {
    display: grid;
    grid-template-columns: 110px 1fr minmax(260px, 2fr);
    gap: 12px;
    margin: 20px 0;
}

.interview-pack-meta div[b-a87pid192c] {
    min-width: 0;
}

.interview-pack-meta dt[b-a87pid192c] {
    margin-bottom: 5px;
    color: var(--backstage-text-meta);
    font-size: .72rem;
    text-transform: uppercase;
}

.interview-pack-meta dd[b-a87pid192c] {
    margin: 0;
}

.interview-pack-meta code[b-a87pid192c] {
    overflow-wrap: anywhere;
    color: var(--backstage-text-2);
}

.interview-pack-action[b-a87pid192c] {
    padding-top: 18px;
    border-top: 1px solid var(--backstage-border);
}

.interview-pack-action > div[b-a87pid192c] {
    display: grid;
    gap: 3px;
}

.interview-pack-awaiting[b-a87pid192c] {
    display: grid;
    gap: 5px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--backstage-border);
}

@media (max-width: 720px) {
    .interview-packs-page[b-a87pid192c] {
        padding: 24px 16px 56px;
    }

    .interview-pack-card__heading[b-a87pid192c],
    .interview-pack-action[b-a87pid192c],
    .interview-pack-upcoming[b-a87pid192c] {
        align-items: flex-start;
        flex-direction: column;
    }

    .interview-pack-meta[b-a87pid192c] {
        grid-template-columns: 1fr 1fr;
    }

    .interview-pack-meta__commit[b-a87pid192c] {
        grid-column: 1 / -1;
    }
}
/* /Components/Pages/Strategy.razor.rz.scp.css */
/* Strategy page — colors come only from the app.css variables; layout mirrors
   the visual contract at docs/prototypes/w4-strategy-page/.

   Three zones on one 1080px budget (measured 1186px viewport − drawer mini 50
   − padding 48 − scrollbar 8): full-width hero, main column + 300px case
   aside, full-width provenance footer. */

.stp-hero[b-zhig8l8biu],
.stp-grid[b-zhig8l8biu],
.stp-foot[b-zhig8l8biu] {
    max-width: 1080px;
}

/* Mobile-first: one column is the base, the second column exists only inside
   the min-width query. app.css records why no max-width pair may face it —
   fractional media widths leave a band neither query matches. */
.stp-grid[b-zhig8l8biu] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    /* Sticky depends on this: a stretched aside would have nowhere to slide. */
    align-items: start;
}

@media (min-width: 1101px) {
    .stp-grid[b-zhig8l8biu] {
        grid-template-columns: minmax(0, 1fr) 300px;
    }

    /* 54px = topbar height (the flyout's top: 54px is the precedent). */
    .stp-aside[b-zhig8l8biu] {
        position: sticky;
        top: 0.8rem;
        max-height: calc(100vh - 54px - 2.3rem);
        overflow-y: auto;
    }
}

.stp-main[b-zhig8l8biu] {
    min-width: 0;
}

.stp-aside[b-zhig8l8biu] {
    min-width: 0;
}

.stp-crumb[b-zhig8l8biu] {
    font-size: 0.82rem;
    margin-bottom: 0.5rem;
}

.stp-crumb a[b-zhig8l8biu] {
    color: var(--backstage-teal);
    text-decoration: none;
}

.stp-head[b-zhig8l8biu] {
    display: flex;
    align-items: baseline;
    gap: 0.7rem;
    flex-wrap: wrap;
}

.stp-title[b-zhig8l8biu] {
    font-size: 1.25rem;
    margin: 0;
    font-weight: 600;
}

/* Facts, not controls: no solid outline. The loop chips below are outlined
   because they really are links — same grammar as the workbench panel
   (Decision 4, docs/backstage-telerik-polish-plan-20260804.md). */
.stp-stage[b-zhig8l8biu],
.stp-rank[b-zhig8l8biu],
.stp-record-badge[b-zhig8l8biu] {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    background: var(--backstage-border);
    color: var(--backstage-text-subtle);
    white-space: nowrap;
}

.stp-stage[b-zhig8l8biu] {
    background: var(--backstage-surface-raised);
    color: var(--backstage-text-2);
}

/* The one dashed outline on the page. Dashed reads as provisional rather
   than pressable, which is exactly what this badge means: no stored
   snapshot, so the page was rebuilt from the live record. */
.stp-record-badge[b-zhig8l8biu] {
    background: none;
    border: 1px dashed var(--backstage-border);
}

/* Audience switch: two quiet buttons, the active one lit. */
.stp-aud[b-zhig8l8biu] {
    display: inline-flex;
    margin-left: auto;
    border: 1px solid var(--backstage-border);
    border-radius: 6px;
    overflow: hidden;
}

.stp-aud-btn[b-zhig8l8biu] {
    font: inherit;
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    padding: 0.25rem 0.7rem;
    background: var(--backstage-surface);
    color: var(--backstage-text-subtle);
    border: none;
}

.stp-aud-btn--on[b-zhig8l8biu] {
    background: var(--backstage-teal-wash);
    color: var(--backstage-teal);
}

/* Demo bar: the auditable aggregates plus the honesty line. */
.stp-demo-bar[b-zhig8l8biu] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.7rem;
    padding: 0.55rem 0.9rem;
    border-radius: 8px;
    background: linear-gradient(90deg, var(--backstage-amber-wash), transparent 70%);
    border: 1px solid var(--backstage-amber-border);
    font-size: 0.83rem;
    font-variant-numeric: tabular-nums;
}

.stp-demo-numbers strong[b-zhig8l8biu] {
    color: var(--backstage-amber);
    font-weight: 600;
}

.stp-demo-notice[b-zhig8l8biu] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
}

/* Operating loop: method in the chips, receipts in the dates. */
.stp-loop[b-zhig8l8biu] {
    display: flex;
    align-items: start;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-top: 0.7rem;
    font-size: 0.76rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    font-variant-numeric: tabular-nums;
}

.stp-phase[b-zhig8l8biu] {
    display: inline-block;
    padding: 0.18rem 0.55rem;
    border: 1px solid var(--backstage-border);
    border-radius: 999px;
    background: var(--backstage-surface);
    white-space: nowrap;
    text-align: center;
    text-decoration: none;
    color: inherit;
    /* Chips that are not links must not invite a click that does nothing. */
    cursor: default;
}

a.stp-phase[b-zhig8l8biu] {
    cursor: pointer;
}

a.stp-phase:hover[b-zhig8l8biu] {
    border-color: var(--backstage-teal);
}

.stp-phase--done[b-zhig8l8biu] {
    border-color: var(--backstage-green-border);
    color: var(--backstage-green);
}

.stp-phase--now[b-zhig8l8biu] {
    border-color: var(--backstage-amber-border);
    color: var(--backstage-amber);
    background: var(--backstage-amber-wash);
}

.stp-phase-dt[b-zhig8l8biu] {
    display: block;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    line-height: 1.2;
}

.stp-arrow[b-zhig8l8biu] {
    opacity: 0.6;
    margin-top: 0.2rem;
}

.stp-arrow--loop[b-zhig8l8biu] {
    color: var(--backstage-coral);
}

.stp-blk[b-zhig8l8biu] {
    margin-top: 1.5rem;
}

.stp-blk h2[b-zhig8l8biu] {
    font-size: 0.95rem;
    margin: 0 0 0.6rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* The rail supports the argument the main column makes; at equal weight the
   two compete for the same eye. Its headings label a drawer, so they sit a
   step quieter than the ones that open a section. */
.stp-aside h2[b-zhig8l8biu] {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    letter-spacing: 0.06em;
}

.stp-card[b-zhig8l8biu] {
    background: var(--backstage-surface);
    border: 1px solid var(--backstage-border);
    border-radius: 8px;
    padding: 0.85rem 1rem;
}

/* Answer strip inherits the panel's三格 shape at page width. */
.stp-strip[b-zhig8l8biu] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.7rem;
}

.stp-cell[b-zhig8l8biu] {
    background: var(--backstage-surface);
    border: 1px solid var(--backstage-border);
    border-radius: 8px;
    padding: 0.7rem 0.85rem;
}

.stp-cell--next[b-zhig8l8biu] {
    border-color: var(--backstage-amber-border);
    background: var(--backstage-amber-wash);
}

.stp-cell--next .stp-v[b-zhig8l8biu] {
    color: var(--backstage-amber);
}

.stp-k[b-zhig8l8biu] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    margin-bottom: 0.3rem;
    letter-spacing: 0.04em;
}

/* The strip carries the page's three answers: decision weight, not body text. */
.stp-v[b-zhig8l8biu] {
    font-size: 1.125rem;
    font-weight: 600;
}

.stp-warning[b-zhig8l8biu] {
    font-size: 0.76rem;
    font-weight: 500;
    color: var(--backstage-coral);
    margin-top: 0.35rem;
}

.stp-tag[b-zhig8l8biu] {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.05rem 0.45rem;
    border-radius: 3px;
    margin-left: 0.4rem;
    vertical-align: 1px;
}

.stp-tag--judgment[b-zhig8l8biu] {
    background: var(--backstage-amber-wash);
    color: var(--backstage-amber);
    border: 1px solid var(--backstage-amber-border);
}

.stp-lead[b-zhig8l8biu] {
    margin: 0.1rem 0 0.4rem;
    font-size: 0.88rem;
}

.stp-sub[b-zhig8l8biu] {
    margin: 0;
    font-size: 0.82rem;
}

.stp-muted[b-zhig8l8biu] {
    color: var(--backstage-text-subtle);
}

.stp-empty[b-zhig8l8biu] {
    border: 1px dashed var(--backstage-border);
    border-radius: 6px;
    padding: 0.6rem 0.8rem;
    color: var(--backstage-text-subtle);
    font-size: 0.8rem;
    font-weight: 500;
    margin: 0.5rem 0 0;
}

/* ── Proof contract: the battle card ─────────────────────────────────
   Three columns at page width, stacked below it. The readiness column is
   the point of the block, so it keeps its own color grammar: teal for a
   ready example, amber for one that must be assembled live, and the danger
   hue for a gap no wording can close. */
.stp-proof[b-zhig8l8biu] {
    margin-top: 0.6rem;
}

.stp-proof-head[b-zhig8l8biu] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.6rem;
    flex-wrap: wrap;
    font-size: 0.86rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.stp-proof-asof[b-zhig8l8biu] {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--backstage-text-subtle);
    font-variant-numeric: tabular-nums;
}

.stp-proof-row[b-zhig8l8biu] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.25rem 0.8rem;
    padding: 0.55rem 0;
    border-top: 1px solid var(--backstage-border);
    font-size: 0.84rem;
}

@media (min-width: 720px) {
    .stp-proof-row[b-zhig8l8biu] {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) 7.5rem;
        align-items: baseline;
    }
}

.stp-proof-row--head[b-zhig8l8biu] {
    border-top: none;
    padding-bottom: 0.2rem;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--backstage-text-subtle);
}

/* The card the author flagged as this case's strongest. */
.stp-proof-row--star .stp-proof-req[b-zhig8l8biu] {
    color: var(--backstage-amber);
}

.stp-proof-req[b-zhig8l8biu] {
    font-weight: 600;
}

.stp-proof-ev[b-zhig8l8biu] {
    color: var(--backstage-text);
    line-height: 1.5;
}

/* The gap is the sentence that earns the page its credibility — it reads as
   a caveat, not as more evidence. */
.stp-proof-gap[b-zhig8l8biu] {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
}

.stp-proof-state[b-zhig8l8biu] {
    font-size: 0.76rem;
    font-weight: 600;
    white-space: nowrap;
}

.stp-proof-state--strong[b-zhig8l8biu] {
    color: var(--backstage-green);
}

.stp-proof-state--assemble[b-zhig8l8biu] {
    color: var(--backstage-amber);
}

.stp-proof-state--thin[b-zhig8l8biu] {
    color: var(--backstage-coral);
}

.stp-proof-src[b-zhig8l8biu] {
    margin: 0.5rem 0 0;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
}

/* Claim boundary: how far the evidence may be read, in the author's words. */
.stp-boundary[b-zhig8l8biu] {
    margin-top: 0.7rem;
    padding: 0.5rem 0.75rem;
    border-left: 3px solid var(--backstage-coral);
    border-radius: 0 6px 6px 0;
    background: var(--backstage-coral-wash);
    font-size: 0.83rem;
    line-height: 1.5;
}

.stp-boundary-k[b-zhig8l8biu] {
    display: block;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--backstage-coral);
    margin-bottom: 0.15rem;
}

.stp-fold[b-zhig8l8biu] {
    margin-top: 0.6rem;
    font-size: 0.82rem;
}

.stp-fold summary[b-zhig8l8biu] {
    cursor: pointer;
    color: var(--backstage-text-subtle);
}

.stp-fold[open] summary[b-zhig8l8biu] {
    color: var(--backstage-text);
}

.stp-fold-body[b-zhig8l8biu] {
    margin: 0.4rem 0 0;
    line-height: 1.6;
}

.stp-fold-list[b-zhig8l8biu] {
    margin: 0.4rem 0 0;
    padding-left: 1.1rem;
    line-height: 1.6;
}

.stp-people[b-zhig8l8biu] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.stp-person[b-zhig8l8biu] {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 0.55rem 0;
    border-top: 1px solid var(--backstage-border);
    flex-wrap: wrap;
}

.stp-person:first-child[b-zhig8l8biu] {
    border-top: none;
}

.stp-person-who[b-zhig8l8biu] {
    flex: 1 1 220px;
    display: flex;
    flex-direction: column;
}

.stp-person-name[b-zhig8l8biu] {
    font-weight: 600;
    font-size: 0.9rem;
}

.stp-person-role[b-zhig8l8biu],
.stp-person-purpose[b-zhig8l8biu] {
    font-size: 0.76rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
}

.stp-person-status[b-zhig8l8biu] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-info);
    white-space: nowrap;
}

.stp-person-trail[b-zhig8l8biu] {
    font: inherit;
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    padding: 0.3rem 0.7rem;
    border-radius: 6px;
    border: 1px solid var(--backstage-amber-border);
    background: transparent;
    color: var(--backstage-amber);
}

.stp-person-trail:hover[b-zhig8l8biu] {
    background: var(--backstage-amber-wash);
}

.stp-pool-agg[b-zhig8l8biu] {
    font-size: 0.82rem;
    margin-top: 0.5rem;
    font-variant-numeric: tabular-nums;
    color: var(--backstage-text-subtle);
}

.stp-facts[b-zhig8l8biu] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.25rem 0.9rem;
    margin: 0.4rem 0 0;
    font-size: 0.84rem;
}

.stp-facts dt[b-zhig8l8biu] {
    color: var(--backstage-text-subtle);
}

.stp-facts dd[b-zhig8l8biu] {
    margin: 0;
}

/* Visa reality: a sub-block of the company card, so demo removal of the card
   removes all of it. The strongest layer speaks in body ink; corroborating
   layers drop to subtle. */
.stp-visa[b-zhig8l8biu] {
    margin-top: 0.6rem;
    padding-top: 0.55rem;
    border-top: 1px solid var(--backstage-border);
}

.stp-visa-k[b-zhig8l8biu] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    letter-spacing: 0.04em;
    margin-bottom: 0.3rem;
}

.stp-visa-line[b-zhig8l8biu] {
    margin: 0 0 0.25rem;
    font-size: 0.82rem;
    line-height: 1.5;
}

.stp-visa-lca[b-zhig8l8biu] {
    font-size: 0.78rem;
    font-weight: 500;
    margin-top: 0.4rem;
}

/* First-screen exception chip: fact-shaped like the stage pill, but in the
   danger hue and clickable — it exists to be checked, so it links to the
   visa layer that explains it. */
.stp-visa-chip[b-zhig8l8biu] {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--backstage-coral-border);
    background: var(--backstage-coral-wash);
    color: var(--backstage-coral);
    text-decoration: none;
    white-space: nowrap;
}

.stp-visa-chip:hover[b-zhig8l8biu] {
    border-color: var(--backstage-coral);
}

/* Working kit: entries, not panes — a document opens into the reading layer
   or downloads; an unavailable one says so without pretending to be a link. */
.stp-doc-list[b-zhig8l8biu] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.stp-doc-item[b-zhig8l8biu] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 0.6rem;
    padding: 0.5rem 0;
    border-top: 1px solid var(--backstage-border);
}

.stp-doc-item:first-child[b-zhig8l8biu] {
    border-top: none;
}

.stp-doc-entry[b-zhig8l8biu] {
    font: inherit;
    font-size: 0.84rem;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    color: var(--backstage-teal);
    text-decoration: none;
    text-align: left;
}

.stp-doc-entry:hover[b-zhig8l8biu] {
    text-decoration: underline;
}

.stp-doc-name[b-zhig8l8biu] {
    font-size: 0.84rem;
    color: var(--backstage-text-subtle);
}

.stp-doc-unavailable[b-zhig8l8biu] {
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.08rem 0.5rem;
    border: 1px dashed var(--backstage-border);
    border-radius: 999px;
    color: var(--backstage-text-subtle);
    white-space: nowrap;
}

.stp-doc-meta[b-zhig8l8biu] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    font-variant-numeric: tabular-nums;
}

.stp-doc-note[b-zhig8l8biu] {
    flex-basis: 100%;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
}

/* JD full text. The reader panel is already the document surface, so the
   text carries no inset box of its own — a box inside a box reads as two
   documents. */
.stp-jd[b-zhig8l8biu] {
    white-space: pre-wrap;
    font-family: inherit;
    font-size: 0.84rem;
    line-height: 1.6;
    margin: 0;
}

/* Document reading layer: additive overlay, reading-width panel, body stays
   unlocked — overscroll-behavior keeps the wheel from chaining through. */
.stp-reader-backdrop[b-zhig8l8biu] {
    position: fixed;
    inset: 0;
    background: rgb(0 0 0 / 53%);
    z-index: 55;
}

.stp-reader[b-zhig8l8biu] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(760px, 92vw);
    height: 80vh;
    display: flex;
    flex-direction: column;
    background: var(--backstage-surface-raised);
    border: 1px solid var(--backstage-border);
    border-radius: 10px;
    box-shadow: 0 10px 40px rgb(0 0 0 / 47%);
    z-index: 56;
    outline: none;
}

.stp-reader-head[b-zhig8l8biu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.8rem 1rem 0.6rem;
    border-bottom: 1px solid var(--backstage-border);
}

.stp-reader-head h2[b-zhig8l8biu] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

/* The document's own as-of, beside its title: a brief is regenerated, so the
   reader has to know which generation it is looking at. margin-right auto
   keeps the close button hard right whether or not this is present. */
.stp-reader-asof[b-zhig8l8biu] {
    margin-right: auto;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    font-variant-numeric: tabular-nums;
}

.stp-reader-close[b-zhig8l8biu] {
    font: inherit;
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    background: none;
    border: 1px solid var(--backstage-border);
    border-radius: 6px;
    color: var(--backstage-text-subtle);
    padding: 0.25rem 0.6rem;
}

.stp-reader-close:hover[b-zhig8l8biu] {
    color: var(--backstage-text);
}

.stp-reader-body[b-zhig8l8biu] {
    flex: 1;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.8rem 1rem;
}

.stp-foot[b-zhig8l8biu] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.6rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--backstage-border);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
}

@media (max-width: 880px) {
    .stp-strip[b-zhig8l8biu] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Workbench/ApplicationActionGrid.razor.rz.scp.css */
/* Grid-specific layout and cues. Surface colors come from the dark swatch and
   the token retint in wwwroot/app.css — do not repaint them here: the sticky
   (locked) column takes its background from --kendo-color-surface, and a local
   override loses to Telerik's own higher-specificity sticky rule. */

/* One scrollbar only: the grid scrolls its own content pane internally
   (column widths exceed the container), so the wrapper must not add a second
   horizontal scroller around the pager. */
.aag-wrap[b-243mkx3xrz]  .aag-grid .k-table-td {
    vertical-align: top;
}

/* Hover: the swatch's default gray does not belong to this palette, and the
   locked column keeps its own opaque background so the row highlight used to
   stop dead at its edge. Repaint both, sticky cell included — the sticky
   selector must be named explicitly to outrank Telerik's own rule. */
.aag-wrap[b-243mkx3xrz]  .aag-grid .k-table-row:hover > .k-table-td,
.aag-wrap[b-243mkx3xrz]  .aag-grid .k-table-row:hover > .k-table-td.k-grid-content-sticky,
.aag-wrap[b-243mkx3xrz]  .aag-grid .k-table-alt-row:hover > .k-table-td,
.aag-wrap[b-243mkx3xrz]  .aag-grid .k-table-alt-row:hover > .k-table-td.k-grid-content-sticky {
    background-color: var(--backstage-surface-raised);
}

/* Selected row: the one whose detail panel is open. Stronger than hover and
   tinted teal, because "this is the row you are working on" is the same idea
   as the teal nav item. Sticky cell named explicitly for the same specificity
   reason as above. */
.aag-wrap[b-243mkx3xrz]  .aag-row--selected > .k-table-td,
.aag-wrap[b-243mkx3xrz]  .aag-row--selected > .k-table-td.k-grid-content-sticky {
    background-color: color-mix(in srgb, var(--backstage-teal) 14%, var(--backstage-surface-raised));
}

.aag-wrap[b-243mkx3xrz]  .aag-row--selected .k-table-td:last-child {
    box-shadow: inset -3px 0 0 var(--backstage-teal);
}

/* Row cues (spec §4.2): quiet left accents, never full-row saturation. The
   rails read as a timing scale — overdue is risk, today is attention, a
   scheduled date is neither yet, and freshly loaded data is information. */
.aag-wrap[b-243mkx3xrz]  .aag-row--overdue .k-table-td:first-child {
    box-shadow: inset 3px 0 0 var(--backstage-coral);
}

.aag-wrap[b-243mkx3xrz]  .aag-row--today .k-table-td:first-child {
    box-shadow: inset 3px 0 0 var(--backstage-amber);
}

.aag-wrap[b-243mkx3xrz]  .aag-row--scheduled .k-table-td:first-child {
    box-shadow: inset 3px 0 0 var(--backstage-text-quiet);
}

.aag-wrap[b-243mkx3xrz]  .aag-row--fresh .k-table-td:first-child {
    box-shadow: inset 3px 0 0 var(--backstage-info);
}

.aag-wrap[b-243mkx3xrz]  .aag-row--terminal .k-table-td {
    opacity: 0.55;
}

.aag-wrap[b-243mkx3xrz]  .aag-row--termrel .k-table-td:first-child {
    box-shadow: inset 3px 0 0 var(--backstage-coral-border);
}

.aag-wrap[b-243mkx3xrz]  .aag-row--termrel .k-table-td {
    opacity: 0.8;
}

/* Cell content */
.aag-rank[b-243mkx3xrz] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

.aag-rank-no[b-243mkx3xrz] {
    font-weight: 600;
    color: var(--backstage-text-2);
    font-variant-numeric: tabular-nums;
}

.aag-chip-reply[b-243mkx3xrz] {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.05rem 0.45rem;
    border-radius: 0.6rem;
    background: var(--backstage-coral-wash);
    color: var(--backstage-coral);
    white-space: nowrap;
}

.aag-say[b-243mkx3xrz] {
    line-height: 1.45;
}

.aag-next-head[b-243mkx3xrz] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
}

.aag-next-head[b-243mkx3xrz]  .aag-rules-btn {
    color: var(--backstage-text-meta);
}

.aag-rules-intro[b-243mkx3xrz] {
    color: var(--backstage-text-2);
    font-size: 0.88rem;
    margin: 0 0 0.75rem;
}

.aag-rules-table[b-243mkx3xrz] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.aag-rules-table th[b-243mkx3xrz] {
    text-align: left;
    color: var(--backstage-text-meta);
    font-weight: 600;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--backstage-border);
}

.aag-rules-table td[b-243mkx3xrz] {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--backstage-hairline);
    vertical-align: top;
}

.aag-rules-table td:first-child[b-243mkx3xrz] {
    color: var(--backstage-text-2);
    white-space: nowrap;
}

.aag-co[b-243mkx3xrz] {
    font-weight: 600;
}

.aag-role[b-243mkx3xrz] {
    color: var(--backstage-text-2);
    font-size: 0.85rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.aag-muted[b-243mkx3xrz] {
    color: var(--backstage-text-meta);
    font-size: 0.85rem;
}

/* Borderless like the panel's copy of these chips: outlined pills are for
   controls, and a stage label is a fact. Grammar: Decision 4 in
   docs/backstage-telerik-polish-plan-20260804.md. */
.aag-stage[b-243mkx3xrz] {
    display: inline-block;
    padding: 0.1rem 0.55rem;
    border-radius: 0.7rem;
    font-size: 0.8rem;
    font-weight: 500;
    background: var(--backstage-surface-raised);
    color: var(--backstage-text-2);
}

.aag-stage--applied[b-243mkx3xrz] {
    background: var(--backstage-surface-raised);
    color: var(--backstage-text-2);
}

.aag-stage--interview[b-243mkx3xrz] {
    background: var(--backstage-info-wash);
    color: var(--backstage-info);
}

.aag-stage--offer[b-243mkx3xrz] {
    background: var(--backstage-green-wash);
    color: var(--backstage-green);
}

.aag-stage--rejected[b-243mkx3xrz] {
    background: var(--backstage-coral-wash);
    color: var(--backstage-coral);
}

.aag-next-label[b-243mkx3xrz] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
}

.aag-warn[b-243mkx3xrz] {
    color: var(--backstage-amber);
    cursor: help;
}

.aag-next-due[b-243mkx3xrz] {
    font-size: 0.85rem;
    color: var(--backstage-text-2);
}

.aag-due--overduedays[b-243mkx3xrz] {
    color: var(--backstage-coral);
    font-weight: 600;
}

.aag-due--duetoday[b-243mkx3xrz] {
    color: var(--backstage-amber);
    font-weight: 600;
}

.aag-due--needstimezone[b-243mkx3xrz],
.aag-due--needsdatetime[b-243mkx3xrz] {
    color: var(--backstage-amber);
}

.aag-next-last[b-243mkx3xrz] {
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--backstage-text-meta);
}

.aag-net-roles[b-243mkx3xrz] {
    font-size: 0.85rem;
}

.aag-net-coverage[b-243mkx3xrz] {
    font-size: 0.82rem;
    color: var(--backstage-text-2);
}

.aag-net-empty[b-243mkx3xrz] {
    color: var(--backstage-text-meta);
    font-size: 0.85rem;
}

.aag-net-flag[b-243mkx3xrz] {
    display: inline-block;
    margin-top: 0.15rem;
    font-size: 0.78rem;
    font-weight: 500;
    padding: 0.05rem 0.5rem;
    border-radius: 0.6rem;
    border: 1px solid var(--backstage-border);
}

.aag-net-flag--reply[b-243mkx3xrz] {
    color: var(--backstage-coral);
    border-color: var(--backstage-coral-border);
}

.aag-net-flag--open[b-243mkx3xrz] {
    color: var(--backstage-info);
    border-color: var(--backstage-info-border);
}

.aag-wrap:focus-visible[b-243mkx3xrz] {
    outline: 2px solid var(--backstage-teal);
    outline-offset: 2px;
}

/* Card fallback: the 1550px grid cannot degrade on a phone, so below 640px the
   first page of the queue renders as cards instead (top of the queue only —
   full triage stays a desktop task). */
.aag-cards[b-243mkx3xrz] {
    display: none;
}

.aag-mobile-limit[b-243mkx3xrz] {
    color: var(--backstage-text-meta);
    font-size: 0.85rem;
    margin: 0;
}

.aag-card[b-243mkx3xrz] {
    border: 1px solid var(--backstage-border);
    border-left: 4px solid transparent;
    border-radius: 0.55rem;
    padding: 1rem;
}

.aag-card-head[b-243mkx3xrz] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
}

.aag-card h2[b-243mkx3xrz] {
    font-size: 1rem;
    margin: 0;
}

.aag-card .aag-role[b-243mkx3xrz] {
    margin: 0.15rem 0 0;
}

.aag-card-action[b-243mkx3xrz] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin: 0.85rem 0;
}

.aag-card dl[b-243mkx3xrz] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.35rem 0.75rem;
    margin: 0;
    font-size: 0.85rem;
}

.aag-card dt[b-243mkx3xrz] { color: var(--backstage-text-meta); }
.aag-card dd[b-243mkx3xrz] { margin: 0; }

.aag-card--overdue[b-243mkx3xrz] { border-left-color: var(--backstage-coral); }
.aag-card--today[b-243mkx3xrz] { border-left-color: var(--backstage-amber); }
.aag-card--scheduled[b-243mkx3xrz] { border-left-color: var(--backstage-text-quiet); }
.aag-card--fresh[b-243mkx3xrz] { border-left-color: var(--backstage-info); }
.aag-card--termrel[b-243mkx3xrz] { border-left-color: var(--backstage-coral-border); }
.aag-card--terminal[b-243mkx3xrz] { opacity: 0.55; }

@media (max-width: 639px) {
    .aag-wrap[b-243mkx3xrz] { display: none; }
    .aag-cards[b-243mkx3xrz] {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .aag-root *[b-243mkx3xrz], .aag-root *[b-243mkx3xrz]::before, .aag-root *[b-243mkx3xrz]::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}
/* /Components/Workbench/ApplicationDetailPanel.razor.rz.scp.css */
/* W3 detail panel — dark chrome, quiet blocks, judgment tags. Colors come from
   the app.css swatch variables; no new palette here. */

.adp-root[b-uqvxmt8gxk] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    background: var(--backstage-surface);
    border: 1px solid var(--backstage-border);
    border-radius: 10px;
    padding: 1rem 1.1rem 1.25rem;
    overflow-y: auto;
    /* Reserve the scrollbar track always: a short case has no scrollbar and a
       long one does, and without this every header control shifts 10px
       sideways as the owner clicks down the queue. */
    scrollbar-gutter: stable;
    outline: none;
}

/* ── Header ─────────────────────────────────────────────────────── */
.adp-head[b-uqvxmt8gxk] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
}

/* Takes the free width so the chip row spans the header: without it the row
   is only as wide as the longest of company/role, and the strategy button —
   pushed to that row's right end — lands at a different x on every case. */
.adp-head-text[b-uqvxmt8gxk] {
    flex: 1 1 auto;
    min-width: 0;
}

.adp-head-tools[b-uqvxmt8gxk] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

/* Below the split breakpoint the panel stacks full-width above the grid and
   the width toggle has nothing to toggle. Negated to match app.css exactly:
   a numeric bound leaves a fractional band where the toggle would show with
   no second column to size. */
@media not all and (min-width: 1101px) {
    .adp-head-tools[b-uqvxmt8gxk]  .adp-width-btn {
        display: none;
    }
}

.adp-co[b-uqvxmt8gxk] {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.3;
}

.adp-role[b-uqvxmt8gxk] {
    margin: 0.15rem 0 0;
    color: var(--backstage-text-2);
    font-size: 0.85rem;
}

.adp-head-chips[b-uqvxmt8gxk] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.5rem;
}

/* Interview slot — the only block allowed to shout, because a missed
   interview is the one unrecoverable failure on this page. */
.adp-interview[b-uqvxmt8gxk] {
    border-left: 2px solid var(--backstage-amber);
    padding-left: 0.7rem;
}

.adp-interview-when[b-uqvxmt8gxk] {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--backstage-amber);
}

/* Dotted underline: the only cue that hovering has more to say (the zone the
   slot was agreed in). Without it the tooltip may as well not exist. */
.adp-interview-when[title][b-uqvxmt8gxk] {
    text-decoration: underline dotted var(--backstage-border);
    text-underline-offset: 0.25rem;
    cursor: help;
}

.adp-tag--round[b-uqvxmt8gxk] {
    color: var(--backstage-info);
    background: var(--backstage-info-wash);
}

.adp-rank[b-uqvxmt8gxk] {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--backstage-amber);
}

/* Stage chip — same look as the grid's (scoped CSS doesn't cross components,
   so the rules are restated under the panel's own class). Borderless on
   purpose: on this page an outlined pill means "you can press this", and a
   stage label is a fact, not a control. */
.adp-stage[b-uqvxmt8gxk] {
    display: inline-block;
    padding: 0.1rem 0.55rem;
    border-radius: 0.7rem;
    font-size: 0.8rem;
    font-weight: 500;
    background: var(--backstage-surface-raised);
    color: var(--backstage-text-2);
}

.adp-stage--applied[b-uqvxmt8gxk] {
    background: var(--backstage-surface-raised);
    color: var(--backstage-text-2);
}

.adp-stage--interview[b-uqvxmt8gxk] {
    background: var(--backstage-info-wash);
    color: var(--backstage-info);
}

.adp-stage--offer[b-uqvxmt8gxk] {
    background: var(--backstage-green-wash);
    color: var(--backstage-green);
}

.adp-stage--rejected[b-uqvxmt8gxk] {
    background: var(--backstage-coral-wash);
    color: var(--backstage-coral);
}

/* ── Answer strip: three stacked cells ──────────────────────────── */
.adp-strip[b-uqvxmt8gxk] {
    display: flex;
    flex-direction: column;
    background: var(--backstage-surface-raised);
    border: 1px solid var(--backstage-border);
    border-radius: 8px;
    overflow: hidden;
}

.adp-cell[b-uqvxmt8gxk] {
    padding: 0.65rem 0.85rem;
    border-top: 1px solid var(--backstage-border);
}

.adp-cell:first-child[b-uqvxmt8gxk] {
    border-top: 0;
}

.adp-big[b-uqvxmt8gxk] {
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.4;
}

.adp-big--act[b-uqvxmt8gxk] {
    color: var(--backstage-amber);
}

.adp-sub[b-uqvxmt8gxk] {
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--backstage-text-2);
    margin-top: 0.2rem;
}

.adp-warnings[b-uqvxmt8gxk] {
    padding: 0.5rem 0.85rem 0.65rem;
    border-top: 1px solid var(--backstage-border);
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.adp-warning[b-uqvxmt8gxk] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--backstage-coral);
}

/* ── Generic block ──────────────────────────────────────────────── */
.adp-block[b-uqvxmt8gxk] {
    border-top: 1px solid var(--backstage-border);
    padding-top: 0.7rem;
}

.adp-label[b-uqvxmt8gxk] {
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--backstage-text-2);
    font-weight: 600;
    margin-bottom: 0.35rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.adp-muted[b-uqvxmt8gxk] {
    color: var(--backstage-text-2);
    font-size: 0.82rem;
    margin: 0;
}

.adp-loading[b-uqvxmt8gxk] {
    display: flex;
    justify-content: center;
    padding: 1.5rem 0;
}

/* ── Tags: judgment vs confirmed vs warning ─────────────────────────
   None of these are pressable, so none carry a border: the outlined-pill
   look is reserved for controls. Tint plus colored text only. The full
   grammar is Decision 4 in docs/backstage-telerik-polish-plan-20260804.md —
   read it before giving a new chip a border. */
.adp-tag[b-uqvxmt8gxk] {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    white-space: nowrap;
    text-transform: none;
}

.adp-tag--judgment[b-uqvxmt8gxk] {
    color: var(--backstage-amber);
    background: var(--backstage-amber-wash);
}

.adp-tag--confirmed[b-uqvxmt8gxk] {
    color: var(--backstage-green);
    background: var(--backstage-green-wash);
}

.adp-tag--warn[b-uqvxmt8gxk] {
    color: var(--backstage-coral);
    background: var(--backstage-coral-wash);
}

.adp-tag--priority[b-uqvxmt8gxk] {
    color: var(--backstage-amber);
    background: var(--backstage-amber-wash);
}

.adp-tag--watch[b-uqvxmt8gxk] {
    color: var(--backstage-info);
    background: var(--backstage-info-wash);
}

.adp-tag--replied[b-uqvxmt8gxk] {
    color: var(--backstage-green);
    background: var(--backstage-green-wash);
}

.adp-tag--accepted[b-uqvxmt8gxk] {
    color: var(--backstage-info);
    background: var(--backstage-info-wash);
}

.adp-tag--sent[b-uqvxmt8gxk] {
    color: var(--backstage-text-2);
    background: var(--backstage-surface-raised);
}

/* ── Note ───────────────────────────────────────────────────────── */
.adp-note-input[b-uqvxmt8gxk] {
    width: 100%;
}

.adp-note-foot[b-uqvxmt8gxk] {
    display: flex;
    justify-content: flex-end;
    min-height: 1.1rem;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
}

.adp-note-error[b-uqvxmt8gxk] {
    color: var(--backstage-coral);
    font-size: 0.75rem;
    font-weight: 500;
}

/* ── Role one-liner ─────────────────────────────────────────────── */
.adp-role-line[b-uqvxmt8gxk] {
    margin: 0.25rem 0 0;
    font-size: 0.88rem;
    line-height: 1.55;
}

.adp-kicker[b-uqvxmt8gxk] {
    display: inline-block;
    color: var(--backstage-text-2);
    font-size: 0.75rem;
    font-weight: 500;
    margin-right: 0.45rem;
}

/* ── Signals ────────────────────────────────────────────────────── */
.adp-signal[b-uqvxmt8gxk] {
    padding: 0.5rem 0;
    border-top: 1px dashed var(--backstage-border);
}

.adp-signal:first-of-type[b-uqvxmt8gxk] {
    border-top: 0;
}

.adp-signal-head[b-uqvxmt8gxk] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.adp-signal-who[b-uqvxmt8gxk] {
    font-weight: 600;
    font-size: 0.85rem;
}

.adp-when[b-uqvxmt8gxk] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-2);
    margin-left: auto;
}

.adp-signal-body[b-uqvxmt8gxk] {
    font-size: 0.84rem;
    margin-top: 0.25rem;
    line-height: 1.5;
}

.adp-signal-boundary[b-uqvxmt8gxk] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-2);
    margin-top: 0.2rem;
}

/* ── People ─────────────────────────────────────────────────────── */
.adp-coverage[b-uqvxmt8gxk] {
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--backstage-text-2);
    margin-bottom: 0.4rem;
}

.adp-person[b-uqvxmt8gxk] {
    padding: 0.55rem 0;
    border-top: 1px dashed var(--backstage-border);
}

.adp-person:first-of-type[b-uqvxmt8gxk] {
    border-top: 0;
}

.adp-person-head[b-uqvxmt8gxk] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.adp-person-name[b-uqvxmt8gxk] {
    font-weight: 600;
    font-size: 0.88rem;
    color: var(--backstage-text);
    text-decoration: none;
}

a.adp-person-name:hover[b-uqvxmt8gxk] {
    color: var(--backstage-amber);
}

.adp-person-role[b-uqvxmt8gxk] {
    font-size: 0.76rem;
    font-weight: 500;
    color: var(--backstage-text-2);
    margin-top: 0.1rem;
}

.adp-person-purpose[b-uqvxmt8gxk] {
    font-size: 0.8rem;
    font-weight: 500;
    margin-top: 0.2rem;
    line-height: 1.45;
}

.adp-person-meta[b-uqvxmt8gxk] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    margin-top: 0.3rem;
}

.adp-person-last[b-uqvxmt8gxk] {
    display: flex;
    gap: 0.8rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-2);
    margin-top: 0.25rem;
}

/* ── Commitments ────────────────────────────────────────────────── */
.adp-commit[b-uqvxmt8gxk] {
    padding: 0.4rem 0;
    border-top: 1px dashed var(--backstage-border);
    font-size: 0.84rem;
}

.adp-commit:first-of-type[b-uqvxmt8gxk] {
    border-top: 0;
}

.adp-commit-due[b-uqvxmt8gxk] {
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.adp-commit-channel[b-uqvxmt8gxk] {
    margin-left: 0.5rem;
    color: var(--backstage-text-2);
    font-size: 0.76rem;
    font-weight: 500;
}

.adp-commit-note[b-uqvxmt8gxk] {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--backstage-text-2);
    margin-top: 0.15rem;
}

/* ── Kit + facts + footer ───────────────────────────────────────── */
.adp-kit[b-uqvxmt8gxk] {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.85rem;
}

.adp-kit li[b-uqvxmt8gxk] {
    padding: 0.15rem 0;
}

.adp-kit a[b-uqvxmt8gxk] {
    color: var(--backstage-amber);
    text-decoration: none;
}

.adp-kit a:hover[b-uqvxmt8gxk] {
    text-decoration: underline;
}

.adp-kit-meta[b-uqvxmt8gxk] {
    color: var(--backstage-text-2);
    font-size: 0.75rem;
    font-weight: 500;
    margin-left: 0.4rem;
}

.adp-kit-note[b-uqvxmt8gxk] {
    color: var(--backstage-text-2);
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.5;
}

.adp-facts[b-uqvxmt8gxk] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.2rem 0.9rem;
    margin: 0;
    font-size: 0.8rem;
    font-weight: 500;
}

.adp-facts dt[b-uqvxmt8gxk] {
    color: var(--backstage-text-2);
}

.adp-facts dd[b-uqvxmt8gxk] {
    margin: 0;
}

.adp-foot[b-uqvxmt8gxk] {
    border-top: 1px solid var(--backstage-border);
    padding-top: 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-2);
}

.adp-fresh[b-uqvxmt8gxk] {
    display: flex;
    gap: 0.8rem;
    flex-wrap: wrap;
}

.adp-declare[b-uqvxmt8gxk] {
    color: var(--backstage-amber);
}

/* The one exit to the full strategy page. Lives on the header chip row,
   pushed to its right end; dressed as an outline button — on this page a
   border is what says "pressable" — but stays a real <a> so a new tab is
   always one Ctrl+click away. */
.adp-strategy[b-uqvxmt8gxk] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    /* 24px floor: this is a pointer target, and a 23px one fails 2.5.8. */
    min-height: 24px;
    color: var(--backstage-amber);
    text-decoration: none;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.15rem 0.6rem;
    border: 1px solid var(--backstage-amber-border);
    border-radius: 6px;
    white-space: nowrap;
}

.adp-strategy:hover[b-uqvxmt8gxk] {
    background: var(--backstage-amber-wash);
    border-color: var(--backstage-amber);
}

/* The panel's other controls are Telerik buttons carrying their own focus
   ring; this one is ours, so it needs its own — a tint alone is not a focus
   indicator for someone arriving by Tab. */
.adp-strategy:focus-visible[b-uqvxmt8gxk] {
    background: var(--backstage-amber-wash);
    outline: 2px solid var(--backstage-amber);
    outline-offset: 2px;
}
/* /Components/Workbench/PersonNetworkingFlyout.razor.rz.scp.css */
/* Right slide-over for one person's networking trail. Colors come only from
   the app.css variables; the pattern mirrors the detail panel's custom aside
   (no TelerikWindow — nothing here needs dragging or modality). */

/* Starts below the app bar: covering it would hide the language and logout
   controls behind a panel that has no backdrop, which reads as a broken
   header rather than a deliberate slide-over. Above the notes FAB (z 45) so
   the button does not float on top of the trail. */
.pnf-root[b-eikfl1pv8m] {
    position: fixed;
    top: 54px;
    right: 0;
    bottom: 0;
    width: min(380px, 92vw);
    display: flex;
    flex-direction: column;
    background: var(--backstage-surface-raised);
    border-left: 1px solid var(--backstage-border);
    box-shadow: -12px 0 30px rgb(0 0 0 / 40%);
    z-index: 50;
    outline: none;
}

.pnf-head[b-eikfl1pv8m] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.9rem 1rem 0.6rem;
    border-bottom: 1px solid var(--backstage-border);
}

.pnf-name[b-eikfl1pv8m] {
    font-weight: 600;
}

.pnf-role[b-eikfl1pv8m] {
    font-size: 0.76rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
}

.pnf-close[b-eikfl1pv8m] {
    font: inherit;
    cursor: pointer;
    background: none;
    border: none;
    color: var(--backstage-text-subtle);
    font-size: 1rem;
    padding: 0.2rem 0.4rem;
}

.pnf-close:hover[b-eikfl1pv8m] {
    color: var(--backstage-text);
}

.pnf-body[b-eikfl1pv8m] {
    flex: 1;
    overflow-y: auto;
    padding: 0.8rem 1rem;
}

.pnf-bub[b-eikfl1pv8m] {
    border-radius: 8px;
    padding: 0.45rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 500;
    margin-bottom: 0.45rem;
}

.pnf-bub--out[b-eikfl1pv8m] {
    background: var(--backstage-surface-raised);
    margin-left: 12%;
}

.pnf-bub--evt[b-eikfl1pv8m] {
    border: 1px dashed var(--backstage-border);
    color: var(--backstage-text-subtle);
    text-align: center;
    font-size: 0.75rem;
    font-weight: 500;
}

.pnf-bub-k[b-eikfl1pv8m] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    margin-bottom: 0.15rem;
    font-variant-numeric: tabular-nums;
}

.pnf-followup[b-eikfl1pv8m] {
    font-size: 0.76rem;
    font-weight: 500;
    color: var(--backstage-coral);
    margin-top: 0.4rem;
}

.pnf-muted[b-eikfl1pv8m] {
    color: var(--backstage-text-subtle);
    font-size: 0.82rem;
}

.pnf-foot[b-eikfl1pv8m] {
    padding: 0.6rem 1rem 0.9rem;
    border-top: 1px solid var(--backstage-border);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
}
/* /Components/Workbench/StrategyNotesWindow.razor.rz.scp.css */
/* Floating notes: FAB bottom-right, fixed card above it. Same note row as
   the detail panel — this is a second door to the same page, not a second
   notebook. */

.snw-fab[b-dnn5pte67w] {
    position: fixed;
    right: 1.2rem;
    bottom: 1.2rem;
    z-index: 45;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0.6rem 1rem;
    border-radius: 999px;
    background: var(--backstage-teal);
    color: var(--backstage-on-solid);
    border: none;
    box-shadow: 0 4px 16px var(--backstage-border);
}

.snw-fab:hover[b-dnn5pte67w] {
    background: var(--backstage-teal-hover);
}

.snw-window[b-dnn5pte67w] {
    position: fixed;
    right: 1.2rem;
    bottom: 4.4rem;
    z-index: 46;
    /* border-box so padding and border stay inside the 90vw cap — otherwise a
       narrow phone gets a window wider than its screen. */
    box-sizing: border-box;
    width: min(360px, 90vw);
    background: var(--backstage-surface-raised);
    border: 1px solid var(--backstage-border);
    border-radius: 10px;
    box-shadow: 0 10px 30px rgb(0 0 0 / 47%);
    padding: 0.8rem 0.9rem;
}

.snw-head[b-dnn5pte67w] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.snw-close[b-dnn5pte67w] {
    font: inherit;
    cursor: pointer;
    background: none;
    border: none;
    color: var(--backstage-text-subtle);
    padding: 0.1rem 0.3rem;
}

.snw-close:hover[b-dnn5pte67w] {
    color: var(--backstage-text);
}

.snw-window[b-dnn5pte67w]  .snw-input,
.snw-window[b-dnn5pte67w]  .snw-input textarea {
    width: 100%;
    min-height: 8rem;
    font-size: 0.86rem;
    line-height: 1.6;
}

.snw-foot[b-dnn5pte67w] {
    display: flex;
    justify-content: space-between;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-top: 0.35rem;
    font-size: 0.75rem;
    font-weight: 500;
}

.snw-muted[b-dnn5pte67w],
.snw-hint[b-dnn5pte67w] {
    color: var(--backstage-text-subtle);
}

.snw-error[b-dnn5pte67w] {
    color: var(--backstage-coral);
}
/* /Components/Workbench/StrategyTimeline.razor.rz.scp.css */
/* Timeline rows. Colors reuse the app.css variables; the kind grammar mirrors
   the canonical snapshot page: key = the moment that mattered, future =
   committed but not yet real, stop = the market closed the door. */

.stt-row[b-8pynq6kjm0] {
    display: grid;
    grid-template-columns: 3.2rem minmax(0, 1fr);
    gap: 0.6rem;
    padding: 0.45rem 0;
    border-top: 1px solid var(--backstage-border);
    font-size: 0.82rem;
}

.stt-row:first-child[b-8pynq6kjm0] {
    border-top: none;
}

.stt-date[b-8pynq6kjm0] {
    color: var(--backstage-text-subtle);
    font-variant-numeric: tabular-nums;
    font-size: 0.76rem;
    font-weight: 500;
    padding-top: 0.05rem;
}

.stt-gap[b-8pynq6kjm0] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    margin-bottom: 0.1rem;
}

.stt-title[b-8pynq6kjm0] {
    line-height: 1.45;
}

.stt-row--key .stt-title[b-8pynq6kjm0] {
    color: var(--backstage-accent-strong);
    font-weight: 600;
}

.stt-row--stop .stt-title[b-8pynq6kjm0] {
    color: var(--backstage-danger);
}

/* Committed, not happened: dimmed and dashed like the record badge. */
.stt-row--future .stt-date[b-8pynq6kjm0],
.stt-row--future .stt-title[b-8pynq6kjm0] {
    color: var(--backstage-text-subtle);
}

.stt-row--future[b-8pynq6kjm0] {
    border-top-style: dashed;
}

.stt-detail[b-8pynq6kjm0] {
    margin-top: 0.15rem;
    font-size: 0.76rem;
    font-weight: 500;
    color: var(--backstage-text-subtle);
    line-height: 1.5;
}
