/* /Components/DataHub/DataHubCards.razor.rz.scp.css */
/* Data hub — grouped drill cards indexing parallel areas of the data domain.
   Mirrors the admin hub / dashboard drill-card look so the section feels of a
   piece with the rest of the product. No step numbering or connector rail: this
   is a hub (independent areas of function), not a studio (an ordered sequence). */

.flow-stage[b-9dqn1mgj9r] {
    margin-bottom: 1.75rem;
}

.flow-stage-head[b-9dqn1mgj9r] {
    margin: 0 0 0.85rem;
}

.flow-stage-title[b-9dqn1mgj9r] {
    font-family: var(--font-subtitle);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 0 0 0.1rem;
}

.flow-stage-caption[b-9dqn1mgj9r] {
    font-size: 0.82rem;
    color: var(--color-text-secondary);
    line-height: 1.4;
    margin: 0;
}

.flow-grid[b-9dqn1mgj9r] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

@media (max-width: 700px) {
    .flow-grid[b-9dqn1mgj9r] { grid-template-columns: 1fr; }
}

.flow-card[b-9dqn1mgj9r] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.9rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    transition: border-color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.flow-card:hover[b-9dqn1mgj9r] {
    border-color: var(--color-brand-teal);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(7, 70, 132, 0.08);
}

.flow-card-icon[b-9dqn1mgj9r] {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(14, 165, 198, 0.1);
    color: var(--color-brand);
}

.flow-card-icon svg[b-9dqn1mgj9r] {
    width: 18px;
    height: 18px;
}

.flow-card-body[b-9dqn1mgj9r] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.flow-card-title[b-9dqn1mgj9r] {
    font-family: var(--font-subtitle);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.flow-card-meta[b-9dqn1mgj9r] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    line-height: 1.35;
}
/* /Components/FormPdf/StationeryCanvas.razor.rz.scp.css */
.fpd-canvas-scroll[b-l4ycwhptg8] {
    overflow: auto;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1rem;
    max-height: 78vh;
}

.fpd-svg[b-l4ycwhptg8] {
    display: block;
    margin-inline: auto;
    background: white;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
    /* Field drags must never be hijacked as touch scroll-pans (pointercancel mid-drag). */
    touch-action: none;
}

.fpd-svg.fpd-drop-ready[b-l4ycwhptg8] {
    outline: 2px dashed rgba(2, 132, 199, 0.55);
    outline-offset: -2px;
}

[b-l4ycwhptg8] .fpd-field { cursor: grab; }
[b-l4ycwhptg8] .fpd-field:active { cursor: grabbing; }

[b-l4ycwhptg8] .fpd-field-box {
    fill: rgba(14, 165, 198, 0.10);
    stroke: rgba(2, 132, 199, 0.7);
    stroke-width: 1;
    /* Interior stays clickable even when an inline style sets fill:none (border-only fields). */
    pointer-events: all;
}

/* Selection/focus indication is its own overlay rect, so field fill/border colours
   (inline styles) never hide it. */
[b-l4ycwhptg8] .fpd-outline {
    fill: none;
    stroke: none;
}

[b-l4ycwhptg8] .fpd-field.is-selected .fpd-outline {
    stroke: rgba(2, 132, 199, 1);
    stroke-width: 1.5;
}

[b-l4ycwhptg8] .fpd-field:focus { outline: none; }

[b-l4ycwhptg8] .fpd-field:focus .fpd-outline {
    stroke: #7c3aed;
    stroke-width: 2;
    stroke-dasharray: 4 2;
}

[b-l4ycwhptg8] .fpd-resize-grip {
    fill: rgba(2, 132, 199, 1);
    cursor: nwse-resize;
}

[b-l4ycwhptg8] .fpd-marquee {
    fill: rgba(2, 132, 199, 0.08);
    stroke: rgba(2, 132, 199, 0.8);
    stroke-width: 0.75;
    stroke-dasharray: 4 3;
}

/* ── Table (line-item) regions — teal family so they read as a different kind of zone
      from the blue fields, while staying in the same calm palette. ── */

[b-l4ycwhptg8] .fpd-table { cursor: grab; }
[b-l4ycwhptg8] .fpd-table:active { cursor: grabbing; }

[b-l4ycwhptg8] .fpd-table-box {
    fill: rgba(13, 148, 136, 0.06);
    stroke: rgba(13, 148, 136, 0.65);
    stroke-width: 1;
    pointer-events: all;
}

[b-l4ycwhptg8] .fpd-table-head {
    fill: rgba(13, 148, 136, 0.14);
}

[b-l4ycwhptg8] .fpd-table-divider {
    stroke: rgba(13, 148, 136, 0.45);
    stroke-width: 0.75;
}

[b-l4ycwhptg8] .fpd-table-rowguide {
    stroke: rgba(13, 148, 136, 0.22);
    stroke-width: 0.5;
    stroke-dasharray: 3 3;
}

[b-l4ycwhptg8] .fpd-table-bottom {
    stroke: rgba(13, 148, 136, 0.8);
    stroke-width: 1;
}

[b-l4ycwhptg8] .fpd-table.is-selected .fpd-outline {
    stroke: rgba(13, 148, 136, 1);
    stroke-width: 1.5;
}

[b-l4ycwhptg8] .fpd-table:focus { outline: none; }

[b-l4ycwhptg8] .fpd-table:focus .fpd-outline {
    stroke: #7c3aed;
    stroke-width: 2;
    stroke-dasharray: 4 2;
}

[b-l4ycwhptg8] .fpd-col-grip {
    fill: rgba(13, 148, 136, 0.001); /* effectively invisible but still hit-testable */
    cursor: ew-resize;
}

[b-l4ycwhptg8] .fpd-col-grip:hover {
    fill: rgba(13, 148, 136, 0.35);
}

[b-l4ycwhptg8] .fpd-rows-grip {
    fill: rgba(13, 148, 136, 1);
    rx: 2;
    cursor: ns-resize;
}

/* While a question chip is being dragged, tables advertise that dropping inside
   adds a column rather than placing a field. */
[b-l4ycwhptg8] .fpd-table.fpd-drop-target .fpd-table-box {
    stroke: rgba(13, 148, 136, 1);
    stroke-width: 1.5;
    stroke-dasharray: 5 3;
    fill: rgba(13, 148, 136, 0.12);
}

/* Repeated-field ghosts (#506) — visible on continuation templates, edited at their source. */
[b-l4ycwhptg8] .fpd-ghost { opacity: 0.55; }

[b-l4ycwhptg8] .fpd-ghost .fpd-ghost-box {
    fill: rgba(100, 116, 139, 0.08);
    stroke: rgba(100, 116, 139, 0.7);
    stroke-width: 1;
    stroke-dasharray: 3 3;
}

/* Size-true QR/barcode mocks (#506 UX) — footprint matches the generator exactly. */
[b-l4ycwhptg8] .fpd-code-bg { fill: white; stroke: #cbd5e1; stroke-width: 0.4; }
[b-l4ycwhptg8] .fpd-code-ink { fill: #0f172a; }
/* /Components/FormPdf/VirtualFieldEditor.razor.rz.scp.css */
/* Self-contained styles — the designer page's scoped fpd-inspector-* rules don't reach a child
   component, so the shared row/section shapes are restated here with the same values. */

.fpd-vf-editor[b-a6jc091hcr] {
    border: 1px solid #fcd34d;
    border-radius: 8px;
    background: #fffbeb;
    padding: 0.65rem;
    margin-top: 0.5rem;
}

.fpd-inspector-row[b-a6jc091hcr] { display: block; margin-bottom: 0.6rem; font-size: 0.85rem; }

.fpd-inspector-section[b-a6jc091hcr] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    font-weight: 600;
    margin: 0.9rem 0 0.4rem;
    border-top: 1px solid #fde68a;
    padding-top: 0.6rem;
}

/* Advanced-mode input: question dropdown full width, then "as <alias> ×" beneath it —
   the rail is too narrow for all three side by side (#558). */
.fpd-vf-operand[b-a6jc091hcr] {
    border-bottom: 1px dashed #fde68a;
    padding-bottom: 0.4rem;
    margin-bottom: 0.4rem;
}

.fpd-vf-operand .form-select[b-a6jc091hcr] { width: 100%; }

.fpd-vf-operand-alias[b-a6jc091hcr] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
    margin-top: 0.3rem;
    font-size: 0.8rem;
    color: #64748b;
}

.fpd-vf-operand-alias .form-input[b-a6jc091hcr] { flex: 1; min-width: 0; }

.fpd-vf-simple-row[b-a6jc091hcr] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
    margin-bottom: 0.35rem;
}

.fpd-vf-simple-row .form-select[b-a6jc091hcr] { flex: 1; min-width: 0; }

/* Aggregate row filter (#715): operator and value(s) share one line, like a simple-mode row. */
.fpd-vf-filter[b-a6jc091hcr] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
    margin-bottom: 0.35rem;
}

.fpd-vf-filter .form-select[b-a6jc091hcr],
.fpd-vf-filter .form-input[b-a6jc091hcr] { flex: 1; min-width: 0; }

.fpd-vf-expression[b-a6jc091hcr] {
    font-family: 'SF Mono', ui-monospace, 'Cascadia Code', Menlo, monospace;
    font-size: 0.85rem;
}

.fpd-vf-actions[b-a6jc091hcr] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.fpd-vf-error[b-a6jc091hcr] { color: #b45309; }
/* /Components/Fraud/FraudTryIt.razor.rz.scp.css */
/* #1183: the fraud pack tester. Calm and form-like; the results read top to bottom. */

.fti[b-2q5e1xvnwn] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    font-size: 0.875rem;
    color: var(--color-text-primary, #0f172a);
}

.fti-intro[b-2q5e1xvnwn],
.fti-muted[b-2q5e1xvnwn] {
    margin: 0;
    color: var(--color-text-secondary, #475569);
    line-height: 1.5;
}

.fti-note[b-2q5e1xvnwn] {
    margin: 0;
    padding: 0.5rem 0.75rem;
    border-left: 3px solid #93c5fd;
    background: #eff6ff;
    color: #1e3a8a;
    border-radius: 4px;
}

.fti-hint[b-2q5e1xvnwn] {
    display: block;
    margin-top: 0.3rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #475569);
}

.fti-field[b-2q5e1xvnwn] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.fti-grow[b-2q5e1xvnwn] {
    flex: 1 1 16rem;
}

.fti-label[b-2q5e1xvnwn] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary, #475569);
}

.fti-toggle[b-2q5e1xvnwn] {
    display: inline-flex;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    overflow: hidden;
    width: fit-content;
}

.fti-toggle-btn[b-2q5e1xvnwn] {
    background: var(--color-surface, #fff);
    border: none;
    padding: 0.4rem 0.9rem;
    font: inherit;
    font-weight: 500;
    color: var(--color-text-secondary, #475569);
    cursor: pointer;
}

.fti-toggle-btn + .fti-toggle-btn[b-2q5e1xvnwn] {
    border-left: 1px solid var(--color-border, #e2e8f0);
}

.fti-toggle-btn:hover[b-2q5e1xvnwn] {
    background: var(--color-surface-hover, #f1f5f9);
}

.fti-toggle-btn:focus-visible[b-2q5e1xvnwn] {
    outline: 2px solid var(--color-brand, #0f172a);
    outline-offset: -2px;
}

.fti-toggle-btn.is-active[b-2q5e1xvnwn] {
    background: var(--color-brand, #0f172a);
    color: #fff;
}

.fti-doc-search[b-2q5e1xvnwn],
.fti-row[b-2q5e1xvnwn] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem;
}

.fti-row-button[b-2q5e1xvnwn] {
    margin-bottom: 0.2rem;
}

.fti-doc-list[b-2q5e1xvnwn] {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    max-height: 16rem;
    overflow-y: auto;
}

.fti-doc-list li[b-2q5e1xvnwn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0.75rem;
}

.fti-doc-list li + li[b-2q5e1xvnwn] {
    border-top: 1px solid var(--color-border, #e2e8f0);
}

.fti-doc-name[b-2q5e1xvnwn] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.75rem;
    min-width: 0;
    word-break: break-word;
}

.fti-sub-heading[b-2q5e1xvnwn] {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary, #475569);
}

.fti-evidence[b-2q5e1xvnwn] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.3rem 1.25rem;
    margin: 0;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface-alt, #f8fafc);
}

.fti-evidence dt[b-2q5e1xvnwn] {
    color: var(--color-text-secondary, #475569);
}

.fti-evidence dd[b-2q5e1xvnwn] {
    margin: 0;
    word-break: break-word;
}

.fti-scenario[b-2q5e1xvnwn] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.fti-fieldset[b-2q5e1xvnwn] {
    margin: 0;
    padding: 0.75rem 0.9rem 0.9rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.fti-fieldset legend[b-2q5e1xvnwn] {
    padding: 0 0.35rem;
    font-size: 0.8125rem;
    font-weight: 600;
}

.fti-check[b-2q5e1xvnwn] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 400;
}

.fti-actions[b-2q5e1xvnwn] {
    display: flex;
    gap: 0.5rem;
}

/* ── Results ─────────────────────────────────────────────────────────── */
.fti-results[b-2q5e1xvnwn] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 0.9rem;
}

.fti-results-heading[b-2q5e1xvnwn] {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
}

.fti-outcome[b-2q5e1xvnwn] {
    margin: 0;
    padding: 0.65rem 0.85rem;
    border-radius: 8px;
    font-weight: 600;
    line-height: 1.45;
}

.fti-outcome-clear[b-2q5e1xvnwn]  { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.fti-outcome-none[b-2q5e1xvnwn]   { background: #f8fafc; color: #334155; border: 1px solid #e2e8f0; }
.fti-outcome-review[b-2q5e1xvnwn] { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.fti-outcome-hold[b-2q5e1xvnwn]   { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

.fti-entries[b-2q5e1xvnwn] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.fti-entry[b-2q5e1xvnwn] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface, #fff);
    padding: 0.7rem 0.9rem;
}

.fti-entry-head[b-2q5e1xvnwn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.fti-entry-kind[b-2q5e1xvnwn] {
    margin-left: 0.5rem;
    font-size: 0.8125rem;
}

.fti-pills[b-2q5e1xvnwn] {
    display: inline-flex;
    gap: 0.35rem;
}

.fti-entry-text[b-2q5e1xvnwn] {
    margin: 0.4rem 0 0;
    color: var(--color-text-secondary, #475569);
    line-height: 1.45;
}

@media (max-width: 720px) {
    .fti-doc-list li[b-2q5e1xvnwn] {
        flex-direction: column;
        align-items: flex-start;
    }

    .fti-evidence[b-2q5e1xvnwn] {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* /Components/Governance/GovernancePostureTiles.razor.rz.scp.css */
/* #1188: governance posture tiles. Stat-tile contract: label, value, one line of meaning, and a state mark only where the
   state means something. Text stays in the text tokens; colour is carried by a thin top rule and a badge that always has
   an icon and a word, never colour alone. */

.gp-tiles[b-5bhlhhvtsj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.75rem;
}

.gp-tile-item[b-5bhlhhvtsj] {
    display: flex;
}

.gp-tile[b-5bhlhhvtsj] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.85rem 1rem 0.9rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.gp-tile:hover[b-5bhlhhvtsj] {
    border-color: var(--color-brand-teal);
    box-shadow: 0 4px 12px rgba(7, 70, 132, 0.08);
}

.gp-tile:focus-visible[b-5bhlhhvtsj] {
    outline: 2px solid var(--color-brand-teal);
    outline-offset: 2px;
}

.gp-tone-attention[b-5bhlhhvtsj] { border-top-color: #d97706; }
.gp-tone-fine[b-5bhlhhvtsj] { border-top-color: #16a34a; }

.gp-tile-label[b-5bhlhhvtsj] {
    font-family: var(--font-subtitle);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.gp-tile-value[b-5bhlhhvtsj] {
    font-family: var(--font-title);
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.15;
    color: var(--color-text-primary);
}

.gp-tone-unknown .gp-tile-value[b-5bhlhhvtsj] {
    font-size: 1.05rem;
    color: var(--color-text-secondary);
}

.gp-tile-meaning[b-5bhlhhvtsj] {
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--color-text-secondary);
}

.gp-tile-state[b-5bhlhhvtsj] {
    margin-top: auto;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 600;
}

.gp-tile-state svg[b-5bhlhhvtsj] {
    width: 13px;
    height: 13px;
}

.gp-state-attention[b-5bhlhhvtsj] { background: #fef3c7; color: #92400e; }
.gp-state-fine[b-5bhlhhvtsj] { background: #dcfce7; color: #166534; }
/* /Components/Governance/ObjectPicker.razor.rz.scp.css */
.gov-picker[b-qgf8w1yqck] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1rem;
    margin: 0.75rem 0;
}

.gov-picker__group[b-qgf8w1yqck] {
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    margin: 0;
    min-width: 0;
}

.gov-picker__legend[b-qgf8w1yqck] {
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0 0.25rem;
}

.gov-picker__list[b-qgf8w1yqck] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-height: 14rem;
    overflow-y: auto;
}

.gov-picker__item[b-qgf8w1yqck] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.9rem;
    cursor: pointer;
}

.gov-picker__id[b-qgf8w1yqck] {
    font-size: 0.78rem;
}

.gov-picker__none[b-qgf8w1yqck] {
    margin: 0;
    font-size: 0.85rem;
}
/* /Components/Guardrails/GuardrailChecksReference.razor.rz.scp.css */
/* #1179: the checks reference on /guardrails. */

.gcr-intro[b-wbnav4vuyi] {
    margin: 0 0 1rem;
    font-size: 0.875rem;
    color: var(--color-text-secondary, #475569);
}

.gcr-grid[b-wbnav4vuyi] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    gap: 1rem;
}

.gcr-card[b-wbnav4vuyi] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface, #fff);
    padding: 1rem 1.1rem;
    font-size: 0.875rem;
}

.gcr-title[b-wbnav4vuyi] {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.gcr-purpose[b-wbnav4vuyi],
.gcr-note[b-wbnav4vuyi],
.gcr-none[b-wbnav4vuyi] {
    margin: 0;
    line-height: 1.45;
    color: var(--color-text-secondary, #475569);
}

.gcr-note[b-wbnav4vuyi] {
    font-size: 0.8125rem;
    font-style: italic;
}

.gcr-facts[b-wbnav4vuyi] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.25rem 1rem;
    margin: 0;
}

.gcr-facts dt[b-wbnav4vuyi] {
    color: var(--color-text-secondary, #475569);
}

.gcr-facts dd[b-wbnav4vuyi] {
    margin: 0;
}

.gcr-subheading[b-wbnav4vuyi] {
    margin: 0.25rem 0 0;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary, #475569);
}

.gcr-settings[b-wbnav4vuyi] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.gcr-settings li[b-wbnav4vuyi] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.gcr-setting-label[b-wbnav4vuyi] {
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.gcr-setting-hint[b-wbnav4vuyi],
.gcr-setting-options[b-wbnav4vuyi] {
    color: var(--color-text-secondary, #475569);
    line-height: 1.4;
}

.gcr-setting-options[b-wbnav4vuyi] {
    font-size: 0.8125rem;
}

.gcr-link[b-wbnav4vuyi] {
    margin: auto 0 0;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
    color: var(--color-text-secondary, #475569);
}

.gcr-link a[b-wbnav4vuyi] {
    margin-left: 0.25rem;
    font-weight: 600;
}
/* /Components/Guardrails/GuardrailMatchSnippet.razor.rz.scp.css */
/* #1180: a match in its surrounding text. */

.gms[b-sp5og4h477] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--color-text-secondary, #475569);
    word-break: break-word;
}

.gms-match[b-sp5og4h477] {
    background: #fef3c7;
    color: #78350f;
    padding: 0 0.15rem;
    border-radius: 3px;
    font-weight: 600;
}
/* /Components/Guardrails/GuardrailRuleParamsEditor.razor.rz.scp.css */
/* Typed guardrail param editors — checkbox grid for multi-select vocabularies. */

.gw-checkgrid[b-wdrb65hgbx] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.25rem 1rem;
    margin-top: 0.4rem;
}

/* PII kinds grouped by pack (region/domain). */
.gw-pack[b-wdrb65hgbx] {
    margin-top: 0.6rem;
}

.gw-pack-head[b-wdrb65hgbx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--color-text-primary, #0f172a);
    cursor: pointer;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.gw-pack-head input[type="checkbox"][b-wdrb65hgbx] {
    flex: 0 0 auto;
}

.gw-pack-region[b-wdrb65hgbx] {
    font-weight: 500;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-text-tertiary, #64748b);
    background: var(--color-surface-2, #f1f5f9);
    padding: 0.05rem 0.4rem;
    border-radius: 0.25rem;
}

.gw-pack .gw-checkgrid[b-wdrb65hgbx] {
    margin-top: 0.3rem;
    margin-bottom: 0.2rem;
}

/* #1179: settings the check does not define, shown read-only. */
.gw-unknown[b-wdrb65hgbx] {
    margin-top: 0.75rem;
    padding: 0.6rem 0.75rem;
    border: 1px dashed var(--color-border, #e2e8f0);
    border-radius: 6px;
    background: var(--color-surface, #fff);
}

.gw-unknown-note[b-wdrb65hgbx] {
    margin: 0 0 0.4rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #475569);
}

.gw-unknown-list[b-wdrb65hgbx] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.2rem 1rem;
    margin: 0;
    font-size: 0.8125rem;
}

.gw-unknown-list dd[b-wdrb65hgbx] {
    margin: 0;
    word-break: break-word;
}
/* /Components/Guardrails/GuardrailRulesView.razor.rz.scp.css */
/* #1179: read-only rules view for a guardrail policy or template. */

.grv[b-rue4k2pd4f] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    font-size: 0.875rem;
    color: var(--color-text-primary, #0f172a);
}

.grv-summary[b-rue4k2pd4f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 2rem;
    margin: 0;
}

.grv-summary dt[b-rue4k2pd4f] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary, #475569);
}

.grv-summary dd[b-rue4k2pd4f] {
    margin: 0.15rem 0 0;
}

.grv-empty[b-rue4k2pd4f] {
    margin: 0;
    color: var(--color-text-secondary, #475569);
}

.grv-group-heading[b-rue4k2pd4f] {
    margin: 0 0 0.4rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary, #475569);
}

.grv-rules[b-rue4k2pd4f] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr));
    gap: 0.75rem;
}

.grv-rule[b-rue4k2pd4f] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface, #fff);
    padding: 0.75rem 0.9rem;
}

.grv-rule-head[b-rue4k2pd4f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.grv-purpose[b-rue4k2pd4f] {
    margin: 0.3rem 0 0;
    color: var(--color-text-secondary, #475569);
    line-height: 1.45;
}

.grv-settings[b-rue4k2pd4f] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.25rem 1rem;
    margin: 0.6rem 0 0;
}

.grv-settings dt[b-rue4k2pd4f] {
    color: var(--color-text-secondary, #475569);
}

.grv-settings dd[b-rue4k2pd4f] {
    margin: 0;
    word-break: break-word;
}

.grv-unknown[b-rue4k2pd4f] {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #475569);
}

.grv-pill[b-rue4k2pd4f] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.grv-pill-monitor[b-rue4k2pd4f] { background: #f1f5f9; color: #475569; }
.grv-pill-redact[b-rue4k2pd4f]  { background: #fef3c7; color: #92400e; }
.grv-pill-review[b-rue4k2pd4f]  { background: #ffedd5; color: #9a3412; }
.grv-pill-block[b-rue4k2pd4f]   { background: #fee2e2; color: #991b1b; }

/* #1179: template note, edit actions and the "How it decides" disclosure. */
.grv-template-note[b-rue4k2pd4f],
.grv-edit-bar[b-rue4k2pd4f] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
}

.grv-template-note[b-rue4k2pd4f] {
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface-muted, #f8fafc);
}

.grv-template-note p[b-rue4k2pd4f] {
    margin: 0;
    color: var(--color-text-secondary, #475569);
}

.grv-rule-actions[b-rue4k2pd4f] {
    display: flex;
    gap: 1rem;
    margin-top: 0.6rem;
}

.grv-how[b-rue4k2pd4f] {
    margin-top: 0.6rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 0.5rem;
}

.grv-how > summary[b-rue4k2pd4f] {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-primary, #1d4ed8);
}

.grv-how > summary:focus-visible[b-rue4k2pd4f],
.grv-how-pack > summary:focus-visible[b-rue4k2pd4f] {
    outline: 2px solid var(--color-primary, #1d4ed8);
    outline-offset: 2px;
    border-radius: 4px;
}

.grv-how-body[b-rue4k2pd4f] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.grv-how-lead[b-rue4k2pd4f],
.grv-how-note[b-rue4k2pd4f],
.grv-how-text[b-rue4k2pd4f],
.grv-how-source[b-rue4k2pd4f] {
    margin: 0;
    line-height: 1.45;
}

.grv-how-note[b-rue4k2pd4f],
.grv-how-text[b-rue4k2pd4f],
.grv-how-source[b-rue4k2pd4f],
.grv-muted[b-rue4k2pd4f] {
    color: var(--color-text-secondary, #475569);
}

.grv-how-source[b-rue4k2pd4f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.6rem;
    font-size: 0.8125rem;
}

.grv-how-pack[b-rue4k2pd4f] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 6px;
    padding: 0.45rem 0.6rem;
}

.grv-how-pack > summary[b-rue4k2pd4f] {
    cursor: pointer;
    font-weight: 600;
}

.grv-how-pack[open] > summary[b-rue4k2pd4f] {
    margin-bottom: 0.4rem;
}

.grv-how-pack-name[b-rue4k2pd4f] {
    font-weight: 600;
    margin-bottom: 0.2rem;
}

.grv-how-item[b-rue4k2pd4f] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.45rem 0;
    border-top: 1px dashed var(--color-border, #e2e8f0);
}

.grv-how-item-head[b-rue4k2pd4f] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.grv-how-item-label[b-rue4k2pd4f] {
    font-weight: 600;
}

.grv-regex[b-rue4k2pd4f] {
    margin: 0;
    padding: 0.4rem 0.5rem;
    border-radius: 4px;
    background: var(--color-surface-muted, #f8fafc);
    border: 1px solid var(--color-border, #e2e8f0);
    font-size: 0.75rem;
    white-space: pre-wrap;
    word-break: break-all;
    overflow-wrap: anywhere;
}

.grv-pill-on[b-rue4k2pd4f] { background: #dcfce7; color: #166534; }
/* /Components/Guardrails/GuardrailTryIt.razor.rz.scp.css */
/* #1180: the guardrail tester. Calm, form-like, and the results read top to bottom. */

.gti[b-5ihqjuswvr] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    font-size: 0.875rem;
    color: var(--color-text-primary, #0f172a);
}

.gti-intro[b-5ihqjuswvr] {
    margin: 0;
    color: var(--color-text-secondary, #475569);
    line-height: 1.5;
}

.gti-note[b-5ihqjuswvr] {
    margin: 0;
    padding: 0.5rem 0.75rem;
    border-left: 3px solid #93c5fd;
    background: #eff6ff;
    color: #1e3a8a;
    border-radius: 4px;
}

.gti-muted[b-5ihqjuswvr] {
    margin: 0;
    color: var(--color-text-secondary, #475569);
}

.gti-hint[b-5ihqjuswvr] {
    display: block;
    margin-top: 0.3rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #475569);
}

.gti-controls[b-5ihqjuswvr] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
}

.gti-field[b-5ihqjuswvr] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.gti-grow[b-5ihqjuswvr] {
    flex: 1 1 18rem;
}

.gti-label[b-5ihqjuswvr] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary, #475569);
}

.gti-label-inline[b-5ihqjuswvr] {
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

/* Segmented control: buttons that read as one control. */
.gti-toggle[b-5ihqjuswvr] {
    display: inline-flex;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    overflow: hidden;
    width: fit-content;
}

.gti-toggle-btn[b-5ihqjuswvr] {
    background: var(--color-surface, #fff);
    border: none;
    padding: 0.4rem 0.9rem;
    font: inherit;
    font-weight: 500;
    color: var(--color-text-secondary, #475569);
    cursor: pointer;
}

.gti-toggle-btn + .gti-toggle-btn[b-5ihqjuswvr] {
    border-left: 1px solid var(--color-border, #e2e8f0);
}

.gti-toggle-btn:hover[b-5ihqjuswvr] {
    background: var(--color-surface-hover, #f1f5f9);
}

.gti-toggle-btn:focus-visible[b-5ihqjuswvr] {
    outline: 2px solid var(--color-brand, #0f172a);
    outline-offset: -2px;
}

.gti-toggle-btn.is-active[b-5ihqjuswvr] {
    background: var(--color-brand, #0f172a);
    color: #fff;
}

.gti-examples[b-5ihqjuswvr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.gti-doc-search[b-5ihqjuswvr] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem;
}

.gti-doc-list[b-5ihqjuswvr] {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    max-height: 18rem;
    overflow-y: auto;
}

.gti-doc-list li[b-5ihqjuswvr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0.75rem;
}

.gti-doc-list li + li[b-5ihqjuswvr] {
    border-top: 1px solid var(--color-border, #e2e8f0);
}

.gti-doc-name[b-5ihqjuswvr] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.75rem;
    min-width: 0;
    word-break: break-word;
}

.gti-text[b-5ihqjuswvr] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.8125rem;
}

.gti-actions[b-5ihqjuswvr] {
    display: flex;
    gap: 0.5rem;
}

/* ── Results ─────────────────────────────────────────────────────────── */
.gti-results[b-5ihqjuswvr] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 0.9rem;
}

.gti-results-heading[b-5ihqjuswvr] {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
}

.gti-sub-heading[b-5ihqjuswvr] {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary, #475569);
}

.gti-outcome[b-5ihqjuswvr] {
    margin: 0;
    padding: 0.65rem 0.85rem;
    border-radius: 8px;
    font-weight: 600;
    line-height: 1.45;
}

.gti-outcome-clear[b-5ihqjuswvr] { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.gti-outcome-found[b-5ihqjuswvr] { background: #f8fafc; color: #334155; border: 1px solid #e2e8f0; }
.gti-outcome-act[b-5ihqjuswvr]   { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.gti-outcome-block[b-5ihqjuswvr] { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

.gti-rules[b-5ihqjuswvr] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.gti-rule[b-5ihqjuswvr] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface, #fff);
    padding: 0.7rem 0.9rem;
}

.gti-rule-head[b-5ihqjuswvr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.gti-rule-id[b-5ihqjuswvr] {
    margin-left: 0.5rem;
    font-size: 0.75rem;
}

.gti-rule-text[b-5ihqjuswvr] {
    margin: 0.4rem 0 0;
    color: var(--color-text-secondary, #475569);
    line-height: 1.45;
}

.gti-findings[b-5ihqjuswvr] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.gti-findings li[b-5ihqjuswvr] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-left: 0.6rem;
    border-left: 2px solid #fde68a;
}

.gti-finding-label[b-5ihqjuswvr] {
    font-weight: 600;
}

.gti-pill[b-5ihqjuswvr] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.gti-pill-found[b-5ihqjuswvr] { background: #fef3c7; color: #92400e; }
.gti-pill-clear[b-5ihqjuswvr] { background: #dcfce7; color: #166534; }
.gti-pill-muted[b-5ihqjuswvr] { background: #f1f5f9; color: #475569; }

.gti-redacted pre[b-5ihqjuswvr] {
    margin: 0.35rem 0 0;
    padding: 0.75rem;
    background: var(--color-surface-alt, #f8fafc);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 6px;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.8125rem;
    max-height: 20rem;
    overflow-y: auto;
}

@media (max-width: 720px) {
    .gti-doc-list li[b-5ihqjuswvr] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* /Components/Layout/ConsumerLayout.razor.rz.scp.css */
.consumer-shell[b-w9myhdxxiv] {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 56px);
    background: #f5f7fa;
}

.consumer-main[b-w9myhdxxiv] {
    flex: 1;
    min-width: 0;
    display: flex;
    justify-content: center;
}

.consumer-content[b-w9myhdxxiv] {
    width: 100%;
    max-width: 1120px;
    padding: 1.75rem 2rem 3rem;
    font-family: var(--font-body, 'Open Sans', sans-serif);
    color: var(--color-text-primary, #111827);
}

#blazor-error-ui[b-w9myhdxxiv] {
    background: #fef3c7;
    border-top: 1px solid #fde68a;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.1);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-family: var(--font-body);
    color: var(--color-text-primary);
    font-size: 0.875rem;
}

#blazor-error-ui .reload[b-w9myhdxxiv] {
    font-weight: 600;
    color: var(--color-brand);
    margin-left: 0.5rem;
}

#blazor-error-ui .dismiss[b-w9myhdxxiv] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
    color: var(--color-text-secondary);
}
/* /Components/Layout/ConsumerNav.razor.rz.scp.css */
.consumer-nav[b-h33sn19bko] {
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
}

.consumer-nav-inner[b-h33sn19bko] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    gap: 0.25rem;
    align-items: stretch;
}

.consumer-nav-item[b-h33sn19bko] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.875rem;
    font-weight: 500;
    color: #4b5563;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.consumer-nav-item:hover[b-h33sn19bko] {
    color: #074684;
    background: #f9fafb;
}

.consumer-nav-item.active[b-h33sn19bko] {
    color: #074684;
    border-bottom-color: #0ea5c6;
    font-weight: 600;
}

.consumer-nav-icon[b-h33sn19bko] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.app-shell[b-y8bduaxhnj] {
    display: flex;
    align-items: flex-start;
    min-height: calc(100vh - 56px);
}

main[b-y8bduaxhnj] {
    flex: 1;
    min-width: 0;
}

#blazor-error-ui[b-y8bduaxhnj] {
    background: #fef3c7;
    border-top: 1px solid #fde68a;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.1);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-family: var(--font-body);
    color: var(--color-text-primary);
    font-size: 0.875rem;
}

#blazor-error-ui .reload[b-y8bduaxhnj] {
    font-weight: 600;
    color: var(--color-brand);
    margin-left: 0.5rem;
}

#blazor-error-ui .dismiss[b-y8bduaxhnj] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
    color: var(--color-text-secondary);
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.top-bar[b-egfjuvru52] {
    background-color: var(--color-brand);
    color: white;
    display: flex;
    align-items: center;
    padding: 0 1.5rem;
    height: var(--app-header-height, 56px);
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 8px rgba(7, 70, 132, 0.15);
}

.brand[b-egfjuvru52] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    text-decoration: none;
    color: white;
}

.brand-icon[b-egfjuvru52] {
    color: white;
    flex-shrink: 0;
}

.top-bar-spacer[b-egfjuvru52] {
    flex: 1;
}

.nav-actions[b-egfjuvru52] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.upload-cta[b-egfjuvru52] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--color-brand-teal);
    color: white;
    text-decoration: none;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding: 0.4rem 0.85rem;
    border-radius: var(--radius);
    transition: background 0.15s, transform 0.15s;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

.upload-cta:hover[b-egfjuvru52] {
    background: #0bb7dd;
}

.upload-cta:active[b-egfjuvru52] {
    transform: translateY(1px);
}

.upload-cta svg[b-egfjuvru52] {
    flex-shrink: 0;
}

.user-selector select[b-egfjuvru52] {
    background: rgba(255, 255, 255, 0.12);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: var(--radius);
    padding: 0.3rem 0.625rem;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.user-selector select:hover[b-egfjuvru52] {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.4);
}

.user-selector select:focus[b-egfjuvru52] {
    outline: none;
    border-color: var(--color-brand-accent);
    box-shadow: 0 0 0 2px rgba(160, 237, 247, 0.3);
}

.user-selector select option[b-egfjuvru52] {
    background: var(--color-brand);
    color: white;
}

.auth-pill[b-egfjuvru52] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: var(--radius);
    padding: 0.3rem 0.45rem 0.3rem 0.625rem;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    color: white;
}

.auth-name[b-egfjuvru52] {
    font-weight: 600;
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.signout-btn[b-egfjuvru52] {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-weight: 500;
    padding: 0.15rem 0.5rem;
    border-radius: calc(var(--radius) - 1px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.signout-btn:hover[b-egfjuvru52] {
    background: rgba(255, 255, 255, 0.18);
    color: white;
    border-color: rgba(255, 255, 255, 0.4);
}
/* /Components/Layout/NotificationBell.razor.rz.scp.css */
.notification-bell[b-yfeyb0oai4] {
    position: relative;
    display: inline-flex;
}

.bell-button[b-yfeyb0oai4] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.1);
    color: white;
    cursor: pointer;
    transition: background 0.15s;
}

.bell-button:hover[b-yfeyb0oai4] {
    background: rgba(255, 255, 255, 0.2);
}

.bell-icon[b-yfeyb0oai4] {
    flex-shrink: 0;
}

.unread-badge[b-yfeyb0oai4] {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 100px;
    background: var(--color-down);
    color: white;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}

.notification-panel[b-yfeyb0oai4] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 360px;
    max-height: 480px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 200;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.panel-header[b-yfeyb0oai4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--color-border);
}

.panel-header h3[b-yfeyb0oai4] {
    margin: 0;
    font-family: var(--font-title);
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.mark-read-btn[b-yfeyb0oai4] {
    background: none;
    border: none;
    color: var(--color-brand-teal);
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
}

.mark-read-btn:hover[b-yfeyb0oai4] {
    text-decoration: underline;
}

.panel-empty[b-yfeyb0oai4] {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--color-text-secondary);
    font-size: 0.875rem;
}

.panel-list[b-yfeyb0oai4] {
    overflow-y: auto;
    max-height: 400px;
}

.notification-item[b-yfeyb0oai4] {
    display: flex;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--color-surface-raised);
    transition: background 0.1s;
}

.notification-item:last-child[b-yfeyb0oai4] {
    border-bottom: none;
}

.notification-item:hover[b-yfeyb0oai4] {
    background: var(--color-surface-raised);
}

.notification-icon[b-yfeyb0oai4] {
    flex-shrink: 0;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6875rem;
    font-weight: 700;
    margin-top: 0.125rem;
}

.notification-info .notification-icon[b-yfeyb0oai4] {
    background: #dbeafe;
    color: #1e40af;
}

.notification-warning .notification-icon[b-yfeyb0oai4] {
    background: #fef3c7;
    color: #92400e;
}

.notification-error .notification-icon[b-yfeyb0oai4] {
    background: #fee2e2;
    color: #991b1b;
}

.notification-content[b-yfeyb0oai4] {
    flex: 1;
    min-width: 0;
}

.notification-title[b-yfeyb0oai4] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.125rem;
}

.notification-message[b-yfeyb0oai4] {
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.4;
    margin-bottom: 0.25rem;
}

.notification-time[b-yfeyb0oai4] {
    font-size: 0.6875rem;
    color: var(--color-text-secondary);
}

.notification-link[b-yfeyb0oai4] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-brand);
    text-decoration: none;
}

.notification-link:hover[b-yfeyb0oai4] {
    color: var(--color-brand-teal);
    text-decoration: underline;
}

/* Personal notifications (#1151): the person's own items sit first; an unread one is raised. */
.notification-personal.is-unread[b-yfeyb0oai4] {
    background: var(--color-surface-raised);
}

.panel-footer[b-yfeyb0oai4] {
    padding: 0.5rem 0.75rem;
    border-top: 1px solid var(--color-border);
    text-align: center;
    font-size: 0.85rem;
}
/* /Components/Layout/ReconLayout.razor.rz.scp.css */
/* Row shell, matching the rest of the app: the global SideNav sits at the left, the recon page fills the rest. */
.recon-app-shell[b-92u46bvooe] {
    display: flex;
    align-items: flex-start;
    min-height: calc(100vh - 56px);
}

.recon-main[b-92u46bvooe] {
    flex: 1;
    min-width: 0;
    display: flex;
    justify-content: center;
    min-height: calc(100vh - 56px);
    background: #f5f7fa;
}

.recon-content[b-92u46bvooe] {
    width: 100%;
    max-width: 1440px;
    padding: 1.75rem 2rem 3rem;
    font-family: var(--font-body, 'Open Sans', sans-serif);
    color: var(--color-text-primary, #0f172a);
}

#blazor-error-ui[b-92u46bvooe] {
    background: #fef3c7;
    border-top: 1px solid #fde68a;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.1);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-family: var(--font-body);
    color: var(--color-text-primary);
    font-size: 0.875rem;
}

#blazor-error-ui .reload[b-92u46bvooe] {
    font-weight: 600;
    color: var(--color-brand);
    margin-left: 0.5rem;
}

#blazor-error-ui .dismiss[b-92u46bvooe] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
    color: var(--color-text-secondary);
}
/* /Components/Layout/ReviewLayout.razor.rz.scp.css */
.review-shell[b-9xjgjf2zt4] {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 56px);
    background: #f5f7fa;
}

.review-main[b-9xjgjf2zt4] {
    flex: 1;
    min-width: 0;
    display: flex;
    justify-content: center;
}

.review-content[b-9xjgjf2zt4] {
    width: 100%;
    max-width: 1120px;
    padding: 1.75rem 2rem 3rem;
    font-family: var(--font-body, 'Open Sans', sans-serif);
    color: var(--color-text-primary, #111827);
}

#blazor-error-ui[b-9xjgjf2zt4] {
    background: #fef3c7;
    border-top: 1px solid #fde68a;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.1);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-family: var(--font-body);
    color: var(--color-text-primary);
    font-size: 0.875rem;
}

#blazor-error-ui .reload[b-9xjgjf2zt4] {
    font-weight: 600;
    color: var(--color-brand);
    margin-left: 0.5rem;
}

#blazor-error-ui .dismiss[b-9xjgjf2zt4] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
    color: var(--color-text-secondary);
}
/* /Components/Layout/ReviewNav.razor.rz.scp.css */
.review-nav[b-4cbwqnmloy] {
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
}

.review-nav-inner[b-4cbwqnmloy] {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    gap: 0.25rem;
    align-items: stretch;
}

.review-nav-item[b-4cbwqnmloy] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
    font-family: var(--font-body, 'Open Sans', sans-serif);
    font-size: 0.875rem;
    font-weight: 500;
    color: #4b5563;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.review-nav-item:hover[b-4cbwqnmloy] {
    color: #074684;
    background: #f9fafb;
}

.review-nav-item.active[b-4cbwqnmloy] {
    color: #074684;
    border-bottom-color: #0ea5c6;
    font-weight: 600;
}

.review-nav-icon[b-4cbwqnmloy] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
/* /Components/Layout/SideNav.razor.rz.scp.css */
.side-nav[b-p9vfxhgjp5] {
    position: sticky;
    top: 56px;
    align-self: flex-start;
    height: calc(100vh - 56px);
    width: 232px;
    flex-shrink: 0;
    background: var(--color-surface);
    border-right: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    transition: width 0.2s ease;
}

.side-nav.is-collapsed[b-p9vfxhgjp5] {
    width: 64px;
}

.side-nav-inner[b-p9vfxhgjp5] {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem 0.75rem 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.side-nav.is-collapsed .side-nav-inner[b-p9vfxhgjp5] {
    padding: 1.25rem 0.5rem 0.5rem;
}

.nav-section[b-p9vfxhgjp5] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.nav-section-label[b-p9vfxhgjp5] {
    font-family: var(--font-subtitle);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    padding: 0 0.75rem 0.375rem;
}

.side-nav.is-collapsed .nav-section-label[b-p9vfxhgjp5] {
    opacity: 0;
    height: 0;
    padding: 0;
    pointer-events: none;
    overflow: hidden;
}

/* A section label that doubles as a link to that section's hub page (Data
   processing). Rendered by NavLink, so it lives outside this component's scope
   and is styled via ::deep, like .nav-item. It looks like the other section
   labels but carries a chevron and hover/active colour to signal it's clickable. */
[b-p9vfxhgjp5] .nav-section-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-family: var(--font-subtitle);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    padding: 0 0.75rem 0.375rem;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.12s;
}

[b-p9vfxhgjp5] .nav-section-link:hover {
    color: var(--color-text-primary);
}

[b-p9vfxhgjp5] .nav-section-link.active {
    color: var(--color-brand);
}

[b-p9vfxhgjp5] .nav-section-link .nav-label {
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-p9vfxhgjp5] .nav-section-chevron {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    opacity: 0.4;
    transition: opacity 0.12s;
}

[b-p9vfxhgjp5] .nav-section-link:hover .nav-section-chevron,
[b-p9vfxhgjp5] .nav-section-link.active .nav-section-chevron {
    opacity: 1;
}

.side-nav.is-collapsed[b-p9vfxhgjp5]  .nav-section-link {
    opacity: 0;
    height: 0;
    padding: 0;
    pointer-events: none;
    overflow: hidden;
}

/* ::deep because the accordion sections are rendered by NavGroup (a child component),
   so their .nav-section divs carry no SideNav scope attribute. */
.side-nav.is-collapsed[b-p9vfxhgjp5]  .nav-section + .nav-section {
    border-top: 1px solid var(--color-border);
    padding-top: 0.5rem;
    margin-top: 0.25rem;
}

/* ── Collapsible groups (#nav-accordion) ──
   Work stays a pinned, always-open section; every other section renders through
   NavGroup as a click-to-extend accordion. All NavGroup markup needs ::deep, same
   as the NavLink-rendered .nav-item entries above. */

[b-p9vfxhgjp5] .nav-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font-subtitle);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    padding: 0.375rem 0.75rem;
    border-radius: var(--radius);
    transition: background 0.12s, color 0.12s;
}

[b-p9vfxhgjp5] .nav-group-header:hover {
    background: var(--color-surface-raised);
    color: var(--color-text-primary);
}

/* A closed group still shows where the active page lives. */
[b-p9vfxhgjp5] .nav-group.has-active > .nav-group-header {
    color: var(--color-brand);
}

[b-p9vfxhgjp5] .nav-group-chevron {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
    opacity: 0.5;
    transition: transform 0.18s ease, opacity 0.12s;
}

[b-p9vfxhgjp5] .nav-group-header:hover .nav-group-chevron {
    opacity: 1;
}

[b-p9vfxhgjp5] .nav-group.is-open > .nav-group-header .nav-group-chevron {
    transform: rotate(90deg);
}

/* 0fr → 1fr grid rows animate the extend/collapse without measured heights;
   visibility keeps closed items out of the accessibility tree (and away from
   Playwright visibility checks) once the transition ends. */
[b-p9vfxhgjp5] .nav-group-items {
    display: grid;
    grid-template-rows: 0fr;
    visibility: hidden;
    transition: grid-template-rows 0.18s ease, visibility 0.18s;
}

[b-p9vfxhgjp5] .nav-group.is-open .nav-group-items {
    grid-template-rows: 1fr;
    visibility: visible;
}

[b-p9vfxhgjp5] .nav-group-items-inner {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-height: 0;
    overflow: hidden;
}

/* Icon-rail mode has no group labels to click, so groups render fully expanded —
   the flat icon list this mode has always been. */
.side-nav.is-collapsed[b-p9vfxhgjp5]  .nav-group-header {
    display: none;
}

.side-nav.is-collapsed[b-p9vfxhgjp5]  .nav-group-items {
    grid-template-rows: 1fr;
    visibility: visible;
}

[b-p9vfxhgjp5] .nav-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius);
    text-decoration: none;
    color: var(--color-text-secondary);
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 600;
    transition: background 0.12s, color 0.12s;
    position: relative;
    white-space: nowrap;
}

[b-p9vfxhgjp5] .nav-item:hover {
    background: var(--color-surface-raised);
    color: var(--color-text-primary);
}

[b-p9vfxhgjp5] .nav-item.active {
    background: rgba(7, 70, 132, 0.08);
    color: var(--color-brand);
}

[b-p9vfxhgjp5] .nav-item.active::before {
    content: "";
    position: absolute;
    left: -0.75rem;
    top: 0.5rem;
    bottom: 0.5rem;
    width: 3px;
    background: var(--color-brand-teal);
    border-radius: 0 3px 3px 0;
}

.side-nav.is-collapsed[b-p9vfxhgjp5]  .nav-item.active::before {
    left: -0.5rem;
}

[b-p9vfxhgjp5] .nav-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

[b-p9vfxhgjp5] .nav-label {
    overflow: hidden;
    text-overflow: ellipsis;
}

.side-nav.is-collapsed[b-p9vfxhgjp5]  .nav-item {
    justify-content: center;
    padding: 0.5rem;
}

.side-nav.is-collapsed[b-p9vfxhgjp5]  .nav-label {
    display: none;
}

.collapse-toggle[b-p9vfxhgjp5] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-top: 1px solid var(--color-border);
    color: var(--color-text-secondary);
    height: 40px;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.collapse-toggle:hover[b-p9vfxhgjp5] {
    background: var(--color-surface-raised);
    color: var(--color-text-primary);
}

.collapse-toggle .chevron[b-p9vfxhgjp5] {
    width: 16px;
    height: 16px;
    transition: transform 0.2s ease;
}

.side-nav.is-collapsed .collapse-toggle .chevron[b-p9vfxhgjp5] {
    transform: rotate(180deg);
}
/* /Components/OutputDesigner/DocumentSettingsPanel.razor.rz.scp.css */
.od-doc[b-ly9wbuepxh] { margin-bottom: 1rem; }
.doc-summary[b-ly9wbuepxh] { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.doc-chips[b-ly9wbuepxh] { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.doc-chip[b-ly9wbuepxh] { font-size: .78rem; background: #f1f5f9; border: 1px solid #e2e8f0; color: #334155; border-radius: 6px; padding: .2rem .5rem; }
.doc-chip-format[b-ly9wbuepxh] { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; font-weight: 700; letter-spacing: .04em; }

.doc-detail[b-ly9wbuepxh] { margin-top: .9rem; border-top: 1px solid #eef2f7; padding-top: .8rem; display: flex; flex-direction: column; gap: .7rem; }
.doc-grid[b-ly9wbuepxh] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .7rem; }
.doc-field[b-ly9wbuepxh] { display: flex; flex-direction: column; gap: .25rem; font-size: .8rem; color: #475569; }
.doc-field span[b-ly9wbuepxh] { font-weight: 600; }
.doc-checks[b-ly9wbuepxh] { display: flex; gap: 1.2rem; flex-wrap: wrap; font-size: .82rem; color: #475569; }
.doc-checks label[b-ly9wbuepxh] { display: flex; align-items: center; gap: .4rem; }

.doc-confirm[b-ly9wbuepxh] {
    display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
    margin-top: .8rem; padding: .55rem .7rem; font-size: .82rem;
    background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; color: #92400e;
}
/* /Components/OutputDesigner/NodeInspector.razor.rz.scp.css */
.od-inspector[b-iypv1nz4kn] { display: flex; flex-direction: column; min-height: 0; }
.insp-head[b-iypv1nz4kn] { display: flex; align-items: baseline; gap: .6rem; min-width: 0; }
.insp-kind[b-iypv1nz4kn] { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #475569; flex: none; }
.insp-path[b-iypv1nz4kn] { font-size: .74rem; color: #94a3b8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.insp-body[b-iypv1nz4kn] { display: flex; flex-direction: column; gap: .8rem; overflow-y: auto; min-height: 0; }
.insp-field[b-iypv1nz4kn] { display: flex; flex-direction: column; gap: .25rem; font-size: .8rem; color: #475569; }
.insp-field > span[b-iypv1nz4kn] { font-weight: 600; }
.insp-check[b-iypv1nz4kn] { display: flex; align-items: center; gap: .45rem; font-size: .82rem; color: #475569; }
.insp-combo[b-iypv1nz4kn] { display: flex; gap: .35rem; align-items: center; }
.insp-combo .form-select[b-iypv1nz4kn], .insp-combo .form-control[b-iypv1nz4kn] { flex: 1; min-width: 0; }
.insp-two[b-iypv1nz4kn] { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }

.insp-section[b-iypv1nz4kn] { display: flex; flex-direction: column; gap: .5rem; border-top: 1px solid #eef2f7; padding-top: .7rem; }
.insp-sub[b-iypv1nz4kn] { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #475569; }
.insp-danger .form-hint[b-iypv1nz4kn] { margin: 0; }
.insp-confirm-row[b-iypv1nz4kn] { display: flex; gap: .5rem; align-items: center; }
.btn-danger[b-iypv1nz4kn] { background: #dc2626; border-color: #dc2626; color: #fff; }
.btn-danger:hover[b-iypv1nz4kn] { background: #b91c1c; border-color: #b91c1c; color: #fff; }
/* /Components/OutputDesigner/OutputNodeRow.razor.rz.scp.css */
.od-row[b-wtyttr1qtz] {
    display: flex; align-items: center; gap: .15rem;
    padding: .18rem .35rem; border-radius: 8px;
    border: 1px solid transparent;
}
.od-row:hover[b-wtyttr1qtz] { background: #f8fafc; }
.od-row.is-selected[b-wtyttr1qtz] { background: #eff6ff; border-color: #bfdbfe; }
/* While a chip is in flight every row advertises itself faintly; the hovered row lights up. */
.od-row.can-drop[b-wtyttr1qtz] { outline: 1px dashed #dbeafe; outline-offset: -1px; }
.od-row.is-drop[b-wtyttr1qtz] { background: #eff6ff; outline: 2px dashed #2563eb; outline-offset: -2px; }

.od-toggle[b-wtyttr1qtz] {
    width: 1.15rem; flex: none; border: 0; background: none; cursor: pointer;
    color: #94a3b8; font-size: .8rem; padding: 0; line-height: 1;
}
.od-toggle:hover[b-wtyttr1qtz] { color: #2563eb; }
.od-toggle-spacer[b-wtyttr1qtz] { cursor: default; }

.od-select[b-wtyttr1qtz] {
    display: flex; align-items: center; gap: .45rem; min-width: 0; flex: 1;
    border: 0; background: none; cursor: pointer; font: inherit;
    text-align: left; padding: .12rem .2rem; border-radius: 6px;
}
.od-kind[b-wtyttr1qtz] {
    flex: none; width: 1.25rem; height: 1.25rem; display: inline-flex; align-items: center; justify-content: center;
    font-size: .72rem; font-weight: 700; border-radius: 5px; line-height: 1;
}
.od-kind-element[b-wtyttr1qtz] { background: #eff6ff; color: #1d4ed8; }
.od-kind-attribute[b-wtyttr1qtz] { background: #fdf4ff; color: #a21caf; }
.od-kind-value[b-wtyttr1qtz] { background: #f0fdf4; color: #15803d; }
.od-kind-rows[b-wtyttr1qtz] { background: #fff7ed; color: #c2410c; }

.od-name[b-wtyttr1qtz] { font-size: .85rem; color: #334155; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.od-name.is-required[b-wtyttr1qtz] { font-weight: 600; color: #0f172a; }
.od-repeat[b-wtyttr1qtz] { flex: none; font-size: .68rem; color: #c2410c; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 5px; padding: .05rem .3rem; }
.od-binding[b-wtyttr1qtz] { font-size: .74rem; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.od-dot[b-wtyttr1qtz] { flex: none; width: 8px; height: 8px; border-radius: 50%; }
.od-dot-error[b-wtyttr1qtz] { background: var(--color-down); }
.od-dot-warning[b-wtyttr1qtz] { background: var(--color-degraded); }

.od-actions[b-wtyttr1qtz] { display: none; align-items: center; gap: .1rem; flex: none; }
.od-row:hover .od-actions[b-wtyttr1qtz], .od-row:focus-within .od-actions[b-wtyttr1qtz] { display: inline-flex; }
.od-act[b-wtyttr1qtz] {
    border: 0; background: none; cursor: pointer; color: #94a3b8;
    font-size: .82rem; line-height: 1; padding: .18rem .3rem; border-radius: 5px;
}
.od-act:hover:not(:disabled)[b-wtyttr1qtz] { background: #e2e8f0; color: #1e293b; }
.od-act:disabled[b-wtyttr1qtz] { opacity: .35; cursor: default; }
.od-act-danger:hover:not(:disabled)[b-wtyttr1qtz] { background: #fee2e2; color: #b91c1c; }
/* /Components/OutputDesigner/OutputNodeTree.razor.rz.scp.css */
.od-tree-card .card-header[b-vmel3ajo50] { display: flex; align-items: baseline; gap: .7rem; flex-wrap: wrap; }
.od-tree-card .card-header h2[b-vmel3ajo50] { margin: 0; }
.small[b-vmel3ajo50] { font-size: .78rem; }
.od-tree[b-vmel3ajo50] { list-style: none; margin: 0; padding: 0; }
.od-tree[b-vmel3ajo50]  ul[role="group"] { list-style: none; margin: 0; padding-left: 1.25rem; border-left: 1px solid #eef2f7; }
/* /Components/OutputDesigner/OutputPreviewPane.razor.rz.scp.css */
.od-preview[b-g1rrqq71op] { display: flex; flex-direction: column; min-height: 12rem; }
.prev-head[b-g1rrqq71op] { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; }
.prev-head h2[b-g1rrqq71op] { margin: 0; }
.prev-file[b-g1rrqq71op] { font-size: .76rem; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

.prev-status[b-g1rrqq71op] { padding: .4rem .9rem; font-size: .8rem; border-bottom: 1px solid #eef2f7; }
.prev-status.is-ok[b-g1rrqq71op] { color: #15803d; background: #f0fdf4; }
.prev-status.is-warn[b-g1rrqq71op] { color: #b45309; background: #fffbeb; }
.prev-status.is-error[b-g1rrqq71op] { color: #b91c1c; background: #fef2f2; }

.prev-issues[b-g1rrqq71op] { list-style: none; margin: 0; padding: .3rem .55rem; border-bottom: 1px solid #eef2f7; display: flex; flex-direction: column; gap: .1rem; max-height: 9rem; overflow-y: auto; }
.prev-issue[b-g1rrqq71op] {
    display: flex; align-items: baseline; gap: .45rem; width: 100%;
    border: 0; background: none; cursor: pointer; font: inherit; font-size: .78rem;
    text-align: left; padding: .18rem .35rem; border-radius: 6px; color: #475569;
}
.prev-issue:hover[b-g1rrqq71op] { background: #f1f5f9; }
.prev-issue-dot[b-g1rrqq71op] { flex: none; width: 7px; height: 7px; border-radius: 50%; position: relative; top: -1px; }
.prev-issue-error .prev-issue-dot[b-g1rrqq71op] { background: var(--color-down); }
.prev-issue-warning .prev-issue-dot[b-g1rrqq71op] { background: var(--color-degraded); }

.prev-body[b-g1rrqq71op] { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }
.prev-empty[b-g1rrqq71op] { padding: 1rem; margin: 0; }
.prev-code[b-g1rrqq71op] {
    flex: 1; margin: 0; padding: .8rem .9rem; overflow: auto; min-height: 8rem;
    background: #f8fafc; color: #1e293b;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    /* pre-wrap so a compact (non-pretty-printed) document stays readable instead of one endless line */
    font-size: .76rem; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 2;
}
.prev-note[b-g1rrqq71op] { margin: 0; padding: .3rem .9rem; }
.prev-overlay[b-g1rrqq71op] {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    background: rgba(248, 250, 252, .65); backdrop-filter: blur(1px);
}
.prev-overlay span[b-g1rrqq71op] { font-size: .8rem; color: #475569; background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: .3rem .7rem; box-shadow: 0 2px 8px rgba(15, 23, 42, .08); }
.prev-rows[b-g1rrqq71op] { margin: 0; padding: .4rem .9rem; border-top: 1px solid #eef2f7; }
.small[b-g1rrqq71op] { font-size: .76rem; }
/* /Components/OutputDesigner/SourceColumnsRail.razor.rz.scp.css */
.od-rail[b-s7akx6et8l] {
    display: flex; flex-direction: column; gap: 1.1rem;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: .9rem;
}
.rail-block[b-s7akx6et8l] { display: flex; flex-direction: column; gap: .5rem; }
.rail-head[b-s7akx6et8l] { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #475569; display: flex; align-items: center; gap: .4rem; }
.rail-hint[b-s7akx6et8l] { font-size: .72rem; color: #94a3b8; margin: 0; }
.rail-file[b-s7akx6et8l] { display: flex; flex-direction: column; min-width: 0; }
.rail-file-name[b-s7akx6et8l] { font-weight: 600; color: #1e293b; font-size: .85rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rail-field[b-s7akx6et8l] { display: flex; align-items: center; gap: .4rem; font-size: .8rem; color: #475569; }
.rail-field .form-select[b-s7akx6et8l] { flex: 1; min-width: 0; }
.small[b-s7akx6et8l] { font-size: .8rem; }

.od-drop[b-s7akx6et8l] {
    position: relative;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center; gap: .25rem; padding: 1.1rem .8rem;
    border: 2px dashed #cbd5e1; border-radius: 10px; cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}
.od-drop:hover[b-s7akx6et8l] { border-color: #93c5fd; background: #f8fbff; }
.od-drop.is-over[b-s7akx6et8l] { border-color: #2563eb; background: #eff6ff; }
.od-drop-tiny[b-s7akx6et8l] { padding: .5rem .6rem; border-width: 1px; color: #64748b; }
/* Transparent file input over the whole zone — a dropped file lands on it natively (no JS interop).
   ::deep because InputFile is a child component. */
.od-drop[b-s7akx6et8l]  .od-drop-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 1; }

.chip-wrap[b-s7akx6et8l] { display: flex; flex-wrap: wrap; gap: .35rem; }
.src-chip[b-s7akx6et8l] {
    font-size: .75rem; background: #f1f5f9; border: 1px solid #e2e8f0; color: #334155;
    border-radius: 6px; padding: .2rem .45rem; cursor: grab; max-width: 100%;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.src-chip:active[b-s7akx6et8l] { cursor: grabbing; }
/* /Components/OutputDesigner/StarterChooser.razor.rz.scp.css */
.od-starter h2[b-vk8uyattcx] { margin: 0 0 .2rem; }
.od-starter .muted[b-vk8uyattcx] { margin: 0 0 1.1rem; }
.starter-grid[b-vk8uyattcx] { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .9rem; }
.starter-card[b-vk8uyattcx] {
    display: flex; flex-direction: column; align-items: flex-start; gap: .45rem;
    text-align: left; padding: 1.1rem 1.2rem; font: inherit;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.starter-card:hover[b-vk8uyattcx] { border-color: #93c5fd; box-shadow: 0 4px 14px rgba(15, 23, 42, .07); transform: translateY(-1px); }
.starter-card:focus-visible[b-vk8uyattcx] { outline: 2px solid var(--color-brand-teal); outline-offset: 2px; }
.starter-badge[b-vk8uyattcx] {
    font-size: .68rem; font-weight: 700; letter-spacing: .06em;
    border-radius: 6px; padding: .18rem .5rem;
}
.badge-xml[b-vk8uyattcx] { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
.badge-json[b-vk8uyattcx] { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.badge-csv[b-vk8uyattcx] { background: #fefce8; color: #a16207; border: 1px solid #fde68a; }
.badge-ssc[b-vk8uyattcx] { background: #f5f3ff; color: #6d28d9; border: 1px solid #ddd6fe; }
.starter-title[b-vk8uyattcx] { font-weight: 600; color: #0f172a; }
.starter-desc[b-vk8uyattcx] { font-size: .8rem; color: #64748b; line-height: 1.4; }
/* /Components/Pages/AdminHub.razor.rz.scp.css */
/* Admin hub — grouped drill cards. Mirrors the dashboard drill-card look so the
   administration area feels of a piece with the rest of the product. */

.admin-group[b-1a5lhlsghp] {
    margin-bottom: 2rem;
}

.admin-group-title[b-1a5lhlsghp] {
    font-family: var(--font-subtitle);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin: 0 0 0.75rem;
}

.admin-grid[b-1a5lhlsghp] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

@media (max-width: 1100px) {
    .admin-grid[b-1a5lhlsghp] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .admin-grid[b-1a5lhlsghp] { grid-template-columns: 1fr; }
}

.admin-card[b-1a5lhlsghp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.9rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    transition: border-color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.admin-card:hover[b-1a5lhlsghp] {
    border-color: var(--color-brand-teal);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(7, 70, 132, 0.08);
}

.admin-card-icon[b-1a5lhlsghp] {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(14, 165, 198, 0.1);
    color: var(--color-brand);
}

.admin-card-icon svg[b-1a5lhlsghp] {
    width: 18px;
    height: 18px;
}

.admin-card-body[b-1a5lhlsghp] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.admin-card-title[b-1a5lhlsghp] {
    font-family: var(--font-subtitle);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.admin-card-meta[b-1a5lhlsghp] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    line-height: 1.35;
}
/* /Components/Pages/Audit.razor.rz.scp.css */
.filter-row[b-05pliwzlm5] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: flex-end;
}

.filter-field[b-05pliwzlm5] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.filter-field label[b-05pliwzlm5] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.filter-field input[b-05pliwzlm5],
.filter-field select[b-05pliwzlm5] {
    min-width: 140px;
}

.filter-field-action[b-05pliwzlm5] {
    justify-content: flex-end;
}

.audit-expandable[b-05pliwzlm5] {
    cursor: pointer;
}

.audit-summary[b-05pliwzlm5] {
    list-style: none;
    white-space: nowrap;
    font-size: 0.875rem;
}

.audit-summary[b-05pliwzlm5]::-webkit-details-marker {
    display: none;
}

.audit-detail[b-05pliwzlm5] {
    margin-top: 0.75rem;
    padding: 0.75rem;
    background: var(--color-surface-raised);
    border: 1px solid var(--color-border);
    border-radius: calc(var(--radius) * 0.75);
}

.audit-section[b-05pliwzlm5] {
    margin-bottom: 0.75rem;
}

.audit-section:last-child[b-05pliwzlm5] {
    margin-bottom: 0;
}

.audit-section strong[b-05pliwzlm5] {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    margin-bottom: 0.25rem;
}

.audit-json[b-05pliwzlm5] {
    margin: 0;
    padding: 0.5rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: calc(var(--radius) * 0.5);
    font-family: ui-monospace, monospace;
    font-size: 0.8125rem;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 200px;
    overflow-y: auto;
}

.load-more-row[b-05pliwzlm5] {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
    gap: 0.5rem;
}
/* /Components/Pages/AutoBuild.razor.rz.scp.css */
/* Auto-build (/capture-types/{id}/auto-build, #927). Calm by design: the confirm list is where the
   operator spends their time, so colour is kept for the reasons a value needs them and for spend
   that's close to the budget. Everything else is quiet and scannable. */

.sr-only[b-o5hb7yrdtr] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ab-eyebrow[b-o5hb7yrdtr] {
    margin: 0 0 0.35rem;
    font-size: 0.8rem;
}

.ab-section[b-o5hb7yrdtr] {
    margin-bottom: 1.25rem;
    padding: 1.25rem 1.5rem;
}

.ab-section-head[b-o5hb7yrdtr] {
    margin-bottom: 1rem;
}

.ab-section-head h2[b-o5hb7yrdtr],
.ab-progress-head h2[b-o5hb7yrdtr],
.ab-confirm-head h2[b-o5hb7yrdtr] {
    font-size: 1.05rem;
    margin: 0 0 0.25rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ab-section-head p[b-o5hb7yrdtr] {
    margin: 0;
    font-size: 0.85rem;
}

.ab-step-no[b-o5hb7yrdtr] {
    display: inline-grid;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: var(--color-surface-raised, #f8fafc);
    border: 1px solid var(--color-border, #e2e8f0);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-secondary, #64748b);
}

.ab-label[b-o5hb7yrdtr] {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    margin-bottom: 0.3rem;
    color: var(--color-text-primary, #0f172a);
}

.ab-empty[b-o5hb7yrdtr] {
    margin: 0.75rem 0 0;
    font-size: 0.85rem;
}

.ab-small[b-o5hb7yrdtr] {
    font-size: 0.75rem;
}

.ab-warn[b-o5hb7yrdtr] {
    margin: 0.4rem 0 0;
    font-size: 0.8rem;
    color: #92400e;
}

/* ── Start ───────────────────────────────────────────────────────────────── */

.ab-upload[b-o5hb7yrdtr] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr);
    gap: 1.25rem;
    align-items: start;
    margin-bottom: 1rem;
}

.ab-upload .dropzone[b-o5hb7yrdtr] {
    padding: 1.25rem;
}

.ab-upload-entity .form-hint[b-o5hb7yrdtr] {
    margin-top: 0.35rem;
}

.ab-table-toolbar[b-o5hb7yrdtr],
.ab-confirm-toolbar[b-o5hb7yrdtr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 0.5rem 0 0.6rem;
    font-size: 0.85rem;
}

.ab-toolbar-actions[b-o5hb7yrdtr],
.ab-toolbar-group[b-o5hb7yrdtr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ab-toolbar-group .ab-label[b-o5hb7yrdtr] {
    margin: 0;
}

.ab-check[b-o5hb7yrdtr] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
}

.ab-table-wrap[b-o5hb7yrdtr] {
    overflow-x: auto;
    max-height: 32rem;
    overflow-y: auto;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 0.5rem);
}

.ab-table-wrap .data-table[b-o5hb7yrdtr] {
    margin: 0;
}

.ab-table-wrap thead th[b-o5hb7yrdtr] {
    position: sticky;
    top: 0;
    background: var(--color-surface-raised, #f8fafc);
    z-index: 1;
}

.ab-col-check[b-o5hb7yrdtr] {
    width: 2.25rem;
}

.ab-row-selected td[b-o5hb7yrdtr] {
    background: #f0f7ff;
}

.ab-sample-name[b-o5hb7yrdtr] {
    cursor: pointer;
    font-weight: 500;
}

.ab-entity-select[b-o5hb7yrdtr] {
    min-width: 10rem;
    max-width: 16rem;
}

.ab-field-list[b-o5hb7yrdtr] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ab-field[b-o5hb7yrdtr] {
    display: inline-flex;
    gap: 0.4rem;
    align-items: baseline;
    padding: 0.3rem 0.65rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 999px;
    font-size: 0.8rem;
    background: var(--color-surface, #fff);
}

.ab-field-name[b-o5hb7yrdtr] {
    font-weight: 600;
}

.ab-facts[b-o5hb7yrdtr] {
    display: grid;
    gap: 0.9rem;
    margin: 0 0 1.25rem;
}

.ab-facts > div[b-o5hb7yrdtr] {
    display: grid;
    grid-template-columns: 14rem minmax(0, 1fr);
    gap: 1rem;
    align-items: baseline;
}

.ab-facts dt[b-o5hb7yrdtr] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text-secondary, #64748b);
}

.ab-facts dd[b-o5hb7yrdtr] {
    margin: 0;
    font-size: 0.9rem;
}

.ab-facts .form-hint[b-o5hb7yrdtr] {
    margin: 0.3rem 0 0;
}

.ab-inline-select[b-o5hb7yrdtr] {
    max-width: 28rem;
}

.ab-money-input[b-o5hb7yrdtr] {
    max-width: 9rem;
}

.ab-actions[b-o5hb7yrdtr] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.ab-actions .muted[b-o5hb7yrdtr] {
    font-size: 0.85rem;
}

/* ── Steps ───────────────────────────────────────────────────────────────── */

.ab-steps-wrap[b-o5hb7yrdtr] {
    margin-bottom: 1.25rem;
}

.ab-steps[b-o5hb7yrdtr] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.5rem;
}

.ab-step[b-o5hb7yrdtr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.75rem;
    border-radius: var(--radius, 0.5rem);
    border: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-surface, #fff);
    font-size: 0.85rem;
}

.ab-step-dot[b-o5hb7yrdtr] {
    flex: none;
    display: inline-grid;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid var(--color-border, #e2e8f0);
    color: var(--color-text-secondary, #64748b);
}

.ab-step-label[b-o5hb7yrdtr] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.ab-step-note[b-o5hb7yrdtr] {
    font-size: 0.7rem;
    color: var(--color-text-secondary, #64748b);
}

.ab-step-done .ab-step-dot[b-o5hb7yrdtr] {
    background: #dcfce7;
    border-color: #bbf7d0;
    color: #166534;
}

.ab-step-current[b-o5hb7yrdtr] {
    border-color: var(--color-brand, #074684);
    box-shadow: 0 0 0 1px var(--color-brand, #074684) inset;
}

.ab-step-current .ab-step-dot[b-o5hb7yrdtr] {
    background: var(--color-brand, #074684);
    border-color: var(--color-brand, #074684);
    color: #fff;
}

.ab-step-upcoming[b-o5hb7yrdtr] {
    color: var(--color-text-secondary, #64748b);
    background: var(--color-surface-raised, #f8fafc);
}

/* ── Progress ────────────────────────────────────────────────────────────── */

.ab-progress-head[b-o5hb7yrdtr],
.ab-confirm-head[b-o5hb7yrdtr] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.ab-progress-head p[b-o5hb7yrdtr] {
    margin: 0;
    font-size: 0.85rem;
}

.ab-progress-actions[b-o5hb7yrdtr],
.ab-confirm-actions[b-o5hb7yrdtr] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: none;
}

.ab-meters[b-o5hb7yrdtr] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    margin-bottom: 1rem;
}

.ab-meter-label[b-o5hb7yrdtr] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.8rem;
    margin-bottom: 0.35rem;
}

.ab-meter-label span:first-child[b-o5hb7yrdtr] {
    font-weight: 600;
}

.ab-bar[b-o5hb7yrdtr] {
    height: 0.5rem;
    border-radius: 999px;
    background: var(--color-surface-raised, #f1f5f9);
    border: 1px solid var(--color-border, #e2e8f0);
    overflow: hidden;
}

.ab-bar-fill[b-o5hb7yrdtr] {
    height: 100%;
    background: var(--color-brand, #074684);
    transition: width 0.3s ease;
}

.ab-bar-fill-warn[b-o5hb7yrdtr] {
    background: var(--color-degraded, #f59e0b);
}

.ab-resume[b-o5hb7yrdtr] {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
    border-radius: var(--radius, 0.5rem);
    background: var(--color-surface-raised, #f8fafc);
    border: 1px solid var(--color-border, #e2e8f0);
}

.ab-resume .ab-label[b-o5hb7yrdtr] {
    margin: 0;
    align-self: center;
}

.ab-resume .muted[b-o5hb7yrdtr] {
    font-size: 0.8rem;
    align-self: center;
}

.ab-log summary[b-o5hb7yrdtr],
.ab-samples summary[b-o5hb7yrdtr] {
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-text-secondary, #64748b);
}

.ab-inline-h2[b-o5hb7yrdtr] {
    display: inline;
    font-size: 1.05rem;
    margin: 0;
    color: var(--color-text-primary, #0f172a);
}

.ab-samples .ab-table-wrap[b-o5hb7yrdtr] {
    margin-top: 0.75rem;
}

.ab-log pre[b-o5hb7yrdtr] {
    max-height: 18rem;
    overflow: auto;
    margin: 0.5rem 0 0;
    padding: 0.75rem;
    background: var(--color-surface-raised, #f6f8fa);
    border-radius: 6px;
    font-size: 0.78rem;
    line-height: 1.5;
    white-space: pre-wrap;
}

.ab-log-warn[b-o5hb7yrdtr] { color: #92400e; }
.ab-log-error[b-o5hb7yrdtr] { color: #991b1b; }
.ab-log-success[b-o5hb7yrdtr] { color: #166534; }

/* ── Confirm ─────────────────────────────────────────────────────────────── */

.ab-confirm-count[b-o5hb7yrdtr] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
}

.ab-confirm-hint[b-o5hb7yrdtr] {
    margin: 0;
    font-size: 0.8rem;
    max-width: 52rem;
}

.ab-confirm-table td[b-o5hb7yrdtr] {
    vertical-align: top;
}

.ab-row-settled td[b-o5hb7yrdtr] {
    background: var(--color-surface-raised, #f8fafc);
}

.ab-sample-link[b-o5hb7yrdtr] {
    font-weight: 500;
}

.ab-read[b-o5hb7yrdtr] {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.82rem;
    word-break: break-word;
}

.ab-chips[b-o5hb7yrdtr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.ab-chip[b-o5hb7yrdtr] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    background: #f1f5f9;
    color: #475569;
    white-space: nowrap;
}

.ab-chip-warn[b-o5hb7yrdtr] {
    background: #fef3c7;
    color: #92400e;
}

.ab-answer[b-o5hb7yrdtr] {
    min-width: 20rem;
}

.ab-choices[b-o5hb7yrdtr] {
    border: 0;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.85rem;
    font-size: 0.82rem;
}

.ab-choice[b-o5hb7yrdtr] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    cursor: pointer;
}

.ab-choice-off[b-o5hb7yrdtr] {
    color: var(--color-text-secondary, #94a3b8);
    cursor: default;
}

.ab-typed[b-o5hb7yrdtr] {
    flex-basis: 100%;
    max-width: 22rem;
}

.ab-settled[b-o5hb7yrdtr] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    font-size: 0.85rem;
}

.ab-problems[b-o5hb7yrdtr] {
    margin: 0.35rem 0 0 1.1rem;
    padding: 0;
    font-size: 0.82rem;
}

.ab-pager[b-o5hb7yrdtr] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 0.75rem;
    font-size: 0.85rem;
}

/* ── Build: layouts, rules, apply (#929, #930) ───────────────────────────── */

.ab-h3[b-o5hb7yrdtr] {
    font-size: 0.9rem;
    font-weight: 600;
    margin: 0 0 0.4rem;
    color: var(--color-text-primary, #0f172a);
}

.ab-layouts[b-o5hb7yrdtr] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: 0.75rem;
}

.ab-layout-card[b-o5hb7yrdtr] {
    padding: 0.85rem 1rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 0.5rem);
    background: var(--color-surface, #fff);
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.ab-layout-muted[b-o5hb7yrdtr] {
    background: var(--color-surface-raised, #f8fafc);
}

.ab-layout-head[b-o5hb7yrdtr] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
}

.ab-layout-head .ab-h3[b-o5hb7yrdtr] {
    margin: 0;
}

.ab-layout-medoid[b-o5hb7yrdtr],
.ab-layout-cohesion[b-o5hb7yrdtr] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-size: 0.85rem;
    word-break: break-word;
}

.ab-entity-grid[b-o5hb7yrdtr] {
    margin-top: 0.25rem;
}

.ab-table-tall[b-o5hb7yrdtr] {
    max-height: 48rem;
}

.ab-rules-table th[scope="row"][b-o5hb7yrdtr] {
    font-weight: 600;
}

.ab-row-open td[b-o5hb7yrdtr],
.ab-row-open th[b-o5hb7yrdtr] {
    background: #f0f7ff;
}

.ab-detail-row > td[b-o5hb7yrdtr] {
    background: var(--color-surface-raised, #f8fafc);
    padding: 1rem 1.25rem;
}

.ab-field-detail[b-o5hb7yrdtr] {
    display: grid;
    gap: 1rem;
}

.ab-rules[b-o5hb7yrdtr] {
    margin: 0;
    padding-left: 1.25rem;
    display: grid;
    gap: 0.45rem;
    font-size: 0.85rem;
}

.ab-rules li[b-o5hb7yrdtr] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.6rem;
}

.ab-rule-text[b-o5hb7yrdtr] {
    font-weight: 500;
    word-break: break-word;
}

.ab-notes[b-o5hb7yrdtr] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.82rem;
    color: var(--color-text-secondary, #475569);
}

.ab-apply-fields[b-o5hb7yrdtr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin: 0 0 0.9rem;
}

.ab-apply-fields .ab-label[b-o5hb7yrdtr] {
    margin: 0;
}

.ab-stats[b-o5hb7yrdtr] {
    list-style: none;
    margin: 1rem 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.5rem;
}

.ab-stats li[b-o5hb7yrdtr] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 0.5rem);
    background: var(--color-surface, #fff);
}

.ab-stat-n[b-o5hb7yrdtr] {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.2;
}

.ab-stat-l[b-o5hb7yrdtr] {
    font-size: 0.75rem;
    color: var(--color-text-secondary, #64748b);
}

.ab-stat-good[b-o5hb7yrdtr] { color: #166534; }
.ab-stat-bad[b-o5hb7yrdtr] { color: #991b1b; }

.ab-accept[b-o5hb7yrdtr] {
    margin: 0.9rem 0;
    max-width: 44rem;
}

.ab-section .ab-actions + .alert-banner[b-o5hb7yrdtr],
.ab-section .alert-banner + .ab-table-wrap[b-o5hb7yrdtr] {
    margin-top: 0.75rem;
}

@media (max-width: 1100px) {
    .ab-upload[b-o5hb7yrdtr],
    .ab-meters[b-o5hb7yrdtr] {
        grid-template-columns: minmax(0, 1fr);
    }

    .ab-steps[b-o5hb7yrdtr],
    .ab-stats[b-o5hb7yrdtr] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ab-facts > div[b-o5hb7yrdtr] {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.25rem;
    }
}
/* /Components/Pages/AutonomyGrades.razor.rz.scp.css */
/* Autonomy grades admin — grade pills and template rows (mirrors Guardrails/PiiPacks). */

.pill[b-bz3eso89zg] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

/* Record-only rungs read as neutral/monitor; acting rungs as enforce; unknown ids as template. */
.pill-monitor[b-bz3eso89zg]  { background: #f1f5f9; color: #475569; }
.pill-enforce[b-bz3eso89zg]  { background: #dbeafe; color: #1e40af; }
.pill-template[b-bz3eso89zg] { background: #ede9fe; color: #6d28d9; }

.pack-row[b-bz3eso89zg] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.pack-row:last-child[b-bz3eso89zg] {
    border-bottom: 0;
}

.pack-row-actions[b-bz3eso89zg] {
    display: flex;
    gap: 0.5rem;
    flex: 0 0 auto;
}
/* /Components/Pages/BatchDetail.razor.rz.scp.css */
.badge-lg[b-bkgyjoer2n] {
    padding: 0.375rem 0.875rem;
    font-size: 0.875rem;
}

.summary-stats[b-bkgyjoer2n] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stat-card[b-bkgyjoer2n] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.25rem 1.5rem;
    box-shadow: var(--shadow-card);
}

.stat-label[b-bkgyjoer2n] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    margin-bottom: 0.25rem;
}

.stat-value[b-bkgyjoer2n] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.stat-value-healthy[b-bkgyjoer2n] {
    color: var(--color-healthy);
}

.stat-value-down[b-bkgyjoer2n] {
    color: var(--color-down);
}

.batch-progress[b-bkgyjoer2n] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.progress-header[b-bkgyjoer2n] {
    display: flex;
    justify-content: space-between;
    font-size: 0.875rem;
    font-weight: 600;
}

.progress-pct[b-bkgyjoer2n] {
    color: var(--color-brand-teal);
}

.progress-bar-container[b-bkgyjoer2n] {
    width: 100%;
    height: 10px;
    background: var(--color-border);
    border-radius: 5px;
    overflow: hidden;
}

.progress-bar-fill[b-bkgyjoer2n] {
    height: 100%;
    background: var(--color-brand-teal);
    border-radius: 5px;
    transition: width 0.3s ease;
}

.progress-counts[b-bkgyjoer2n] {
    display: flex;
    justify-content: space-between;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
}

@media (max-width: 768px) {
    .summary-stats[b-bkgyjoer2n] {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* /Components/Pages/Batches.razor.rz.scp.css */
.progress-cell[b-2w469ycxox] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.progress-bar-mini[b-2w469ycxox] {
    width: 80px;
    height: 6px;
    background: var(--color-border);
    border-radius: 3px;
    overflow: hidden;
    flex-shrink: 0;
}

.progress-bar-fill[b-2w469ycxox] {
    height: 100%;
    background: var(--color-brand-teal);
    border-radius: 3px;
    transition: width 0.3s ease;
}

.progress-label[b-2w469ycxox] {
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    white-space: nowrap;
}
/* /Components/Pages/BatchUpload.razor.rz.scp.css */
.upload-card[b-7q3qzb2zpl] {
    max-width: 640px;
}

.batch-form[b-7q3qzb2zpl] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.progress-display[b-7q3qzb2zpl] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    color: var(--color-text-secondary);
}

.progress-display > .spinner[b-7q3qzb2zpl] {
    align-self: flex-start;
}

.progress-bar-container[b-7q3qzb2zpl] {
    width: 100%;
    height: 8px;
    background: var(--color-border);
    border-radius: 4px;
    overflow: hidden;
}

.progress-bar-fill[b-7q3qzb2zpl] {
    height: 100%;
    background: var(--color-brand-teal);
    border-radius: 4px;
    transition: width 0.3s ease;
}

.progress-text[b-7q3qzb2zpl] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}
/* /Components/Pages/BrainProfileWizard.razor.rz.scp.css */
/* Brain profile wizard — stepper, intent gallery, build/preview layout. Calm, enterprise. */

.bw-steps[b-pc1lsprtf2] {
    list-style: none;
    display: flex;
    gap: 0.5rem;
    padding: 0;
    margin: 0 0 1.25rem;
}

.bw-step[b-pc1lsprtf2] {
    flex: 1 1 0;
}

.bw-step-btn[b-pc1lsprtf2] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 8px;
    background: var(--surface, #fff);
    cursor: pointer;
    text-align: left;
    color: var(--text-muted, #64748b);
    transition: border-color .15s, background .15s, color .15s;
}

.bw-step-btn:hover:not(:disabled)[b-pc1lsprtf2] { border-color: var(--accent, #2563eb); }
.bw-step-btn:disabled[b-pc1lsprtf2] { cursor: default; opacity: .7; }

.bw-step.is-active .bw-step-btn[b-pc1lsprtf2] {
    border-color: var(--accent, #2563eb);
    color: var(--text, #0f172a);
    box-shadow: 0 0 0 1px var(--accent, #2563eb) inset;
}

.bw-step.is-done .bw-step-btn[b-pc1lsprtf2] { color: var(--text, #0f172a); }

.bw-step-num[b-pc1lsprtf2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--surface-muted, #f1f5f9);
    font-weight: 600;
    font-size: 0.85rem;
    flex: 0 0 auto;
}

.bw-step.is-active .bw-step-num[b-pc1lsprtf2],
.bw-step.is-done .bw-step-num[b-pc1lsprtf2] { background: var(--accent, #2563eb); color: #fff; }

.bw-step-label[b-pc1lsprtf2] { font-weight: 500; font-size: 0.92rem; }

/* Steps 1/2/4 are plain forms — cap their reading width even though the page
   itself now goes full-bleed (see .bw-studio's app.css opt-out). */
.bw-narrow[b-pc1lsprtf2] { max-width: 48rem; }

/* Step 3 studio: palette | canvas | test rail */
.bw-studio-grid[b-pc1lsprtf2] {
    display: grid;
    grid-template-columns: 18rem minmax(0, 1fr) 22rem;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 1300px) {
    .bw-studio-grid[b-pc1lsprtf2] { grid-template-columns: 16rem minmax(0, 1fr) 20rem; }
}

@media (max-width: 1050px) {
    .bw-studio-grid[b-pc1lsprtf2] { grid-template-columns: 1fr; }
    .bw-palette[b-pc1lsprtf2], .bw-preview[b-pc1lsprtf2] { position: static; max-height: none; }
}

.bw-palette[b-pc1lsprtf2], .bw-preview[b-pc1lsprtf2] {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}

/* Palette group heading — separates Checks from Actions in the rail. */
.bw-palette-group[b-pc1lsprtf2] {
    margin: 0 0 0.45rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text, #0f172a);
}
.bw-palette-group .muted[b-pc1lsprtf2] { font-weight: 500; text-transform: none; letter-spacing: 0; }

/* Palette chips — compact, so a dozen check kinds still fit a narrow rail. */
.bw-chip-list[b-pc1lsprtf2] { display: flex; flex-direction: column; gap: 0.4rem; }

/* Action chips read differently from checks — they transform the document rather than judge it. */
.bw-chip-action .bw-chip-icon[b-pc1lsprtf2] { color: #7c3aed; background: #f3e8ff; }
.bw-chip-action:hover:not(:disabled)[b-pc1lsprtf2] { border-color: #7c3aed; }

/* An action step on the canvas carries a violet spine so it's visually distinct from checks. */
.extraction-step-action[b-pc1lsprtf2] { border-left: 3px solid #7c3aed; }

/* The coded-rows proof shown under a line-item coding action in preview. */
.bw-coded-preview[b-pc1lsprtf2] { margin: 0.5rem 0 0; }
.bw-coded-preview table[b-pc1lsprtf2] { border-collapse: collapse; font-size: 0.8rem; width: auto; }
.bw-coded-preview th[b-pc1lsprtf2], .bw-coded-preview td[b-pc1lsprtf2] {
    text-align: left;
    padding: 0.25rem 0.6rem 0.25rem 0;
    border-bottom: 1px solid var(--border-color, #e2e8f0);
    white-space: nowrap;
}
.bw-coded-preview th[b-pc1lsprtf2] { color: var(--text-muted, #64748b); font-weight: 600; }

.bw-chip[b-pc1lsprtf2] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 8px;
    background: var(--surface, #fff);
    cursor: grab;
    text-align: left;
    transition: border-color .15s, box-shadow .15s;
}

.bw-chip:hover:not(:disabled)[b-pc1lsprtf2] { border-color: var(--accent, #2563eb); box-shadow: 0 1px 4px rgba(15, 23, 42, .06); }
.bw-chip:disabled[b-pc1lsprtf2] { opacity: .6; cursor: default; }
.bw-chip:active:not(:disabled)[b-pc1lsprtf2] { cursor: grabbing; }

.bw-chip-icon[b-pc1lsprtf2] {
    flex: 0 0 auto;
    width: 1.6rem;
    height: 1.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: var(--surface-muted, #f1f5f9);
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--accent, #2563eb);
}

.bw-chip-title[b-pc1lsprtf2] { font-weight: 600; font-size: 0.85rem; color: var(--text, #0f172a); }

/* Canvas — the checklist being built. The drop zone wraps the whole list so a
   drag can land anywhere in it (checks always append to the end). */
.bw-canvas[b-pc1lsprtf2] { min-width: 0; }

.bw-canvas-drop[b-pc1lsprtf2] {
    min-height: 4rem;
    border-radius: 8px;
    transition: background .12s, box-shadow .12s;
}

.bw-canvas-drop.is-drag-over[b-pc1lsprtf2] {
    background: var(--surface-muted, #f1f5f9);
    box-shadow: 0 0 0 2px var(--accent, #2563eb) inset;
}

.bw-canvas-empty[b-pc1lsprtf2] {
    margin: 0;
    padding: 2rem 1rem;
    text-align: center;
    color: var(--text-muted, #64748b);
    border: 1px dashed var(--border-color, #e2e8f0);
    border-radius: 8px;
}

/* Collapsible check card header — click to expand/collapse its settings. */
.bw-check-toggle[b-pc1lsprtf2] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex: 1 1 auto;
    min-width: 0;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    text-align: left;
    font: inherit;
}

.bw-check-toggle:focus-visible[b-pc1lsprtf2] { outline: 2px solid var(--accent, #2563eb); outline-offset: 2px; }

.bw-check-chevron[b-pc1lsprtf2] { color: var(--text-muted, #64748b); font-size: 0.75rem; }

/* Check settings field rows — BrainCheckFieldRow's own scope (it has no .razor.css
   of its own, so these apply via this page's cascaded scope). */
.bwf-settings-form[b-pc1lsprtf2] { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; }
.bwf-label[b-pc1lsprtf2] { display: inline-block; min-width: 6.5rem; font-size: 0.85rem; color: var(--text-muted, #64748b); }
.bwf-unit[b-pc1lsprtf2] { margin-left: 0.35rem; font-size: 0.8rem; color: var(--text-muted, #64748b); }

/* Intent gallery */
.bw-gallery[b-pc1lsprtf2] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 0.6rem;
}

.bw-tpl[b-pc1lsprtf2] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    text-align: left;
    padding: 0.7rem 0.8rem;
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 8px;
    background: var(--surface, #fff);
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.bw-tpl:hover:not(:disabled)[b-pc1lsprtf2] {
    border-color: var(--accent, #2563eb);
    box-shadow: 0 1px 4px rgba(15, 23, 42, .06);
}

.bw-tpl:disabled[b-pc1lsprtf2] { opacity: .6; cursor: default; }

/* Chosen subject / always-included source card — mirrors the active stepper pill. */
.bw-tpl.is-selected[b-pc1lsprtf2] {
    border-color: var(--accent, #2563eb);
    box-shadow: 0 0 0 1px var(--accent, #2563eb) inset;
}

.bw-tpl input[type="radio"][b-pc1lsprtf2],
.bw-tpl input[type="checkbox"][b-pc1lsprtf2] { margin-top: 0.2rem; flex: 0 0 auto; }

.bw-tpl-icon[b-pc1lsprtf2] {
    flex: 0 0 auto;
    width: 1.8rem;
    height: 1.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: var(--surface-muted, #f1f5f9);
    font-weight: 700;
    color: var(--accent, #2563eb);
}

.bw-tpl-body[b-pc1lsprtf2] { display: flex; flex-direction: column; gap: 0.15rem; }
.bw-tpl-title[b-pc1lsprtf2] { font-weight: 600; font-size: 0.92rem; color: var(--text, #0f172a); }
.bw-tpl-blurb[b-pc1lsprtf2] { font-size: 0.8rem; color: var(--text-muted, #64748b); line-height: 1.35; }

.bw-check-title[b-pc1lsprtf2] { font-weight: 600; }

.bw-check-msg[b-pc1lsprtf2] {
    margin: 0.5rem 0 0;
    font-size: 0.85rem;
    padding: 0.4rem 0.6rem;
    border-radius: 6px;
    background: var(--surface-muted, #f8fafc);
}

.bw-check-msg.badge-danger[b-pc1lsprtf2] { color: #b91c1c; background: #fef2f2; }
.bw-check-msg.badge-success[b-pc1lsprtf2] { color: #15803d; background: #f0fdf4; }
.bw-check-msg.badge-muted[b-pc1lsprtf2] { color: #64748b; }

.badge-muted[b-pc1lsprtf2] { background: #e2e8f0; color: #475569; }

.bw-sample-meta[b-pc1lsprtf2] {
    margin-top: 0.75rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 6px;
    background: var(--surface-muted, #f8fafc);
}

.bw-verdict[b-pc1lsprtf2] {
    margin-top: 0.75rem;
    padding: 0.6rem 0.7rem;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
}

.bw-verdict-pass[b-pc1lsprtf2] { background: #f0fdf4; }
.bw-verdict-review[b-pc1lsprtf2] { background: #fffbeb; }
.bw-verdict-failed[b-pc1lsprtf2] { background: #fef2f2; }

/* Review step */
.bw-review[b-pc1lsprtf2] {
    display: grid;
    grid-template-columns: 9rem 1fr;
    gap: 0.5rem 1rem;
    margin: 0;
}

.bw-review dt[b-pc1lsprtf2] { font-weight: 600; color: var(--text-muted, #64748b); }
.bw-review dd[b-pc1lsprtf2] { margin: 0; }
.bw-review-checks[b-pc1lsprtf2] { margin: 0; padding-left: 1.1rem; }
.bw-review-checks li[b-pc1lsprtf2] { margin-bottom: 0.25rem; }

.bw-docmx[b-pc1lsprtf2] { margin: 0.5rem 0; padding-left: 0; list-style: none; }
.bw-docmx li[b-pc1lsprtf2] { margin-bottom: 0.5rem; display: flex; align-items: baseline; gap: 0.5rem; }

/* Footer nav */
.bw-nav[b-pc1lsprtf2] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1rem;
}
/* /Components/Pages/BriefTemplatesAdmin.razor.rz.scp.css */
/* Brief templates admin (#1169). */
.bt-admin .card[b-yrsjinbkjx] {
    margin-bottom: 1rem;
}

.bt-admin__pick[b-yrsjinbkjx] {
    max-width: 24rem;
}

.bt-admin__head[b-yrsjinbkjx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.bt-admin__list[b-yrsjinbkjx] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.bt-admin__list p[b-yrsjinbkjx] {
    margin: 0.25rem 0 0;
}

.bt-admin__row[b-yrsjinbkjx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.bt-admin__form[b-yrsjinbkjx] {
    display: grid;
    gap: 0.75rem;
}

.bt-admin__sections[b-yrsjinbkjx] {
    margin: 0;
    padding-left: 1.25rem;
    display: grid;
    gap: 0.75rem;
}

.bt-admin__section[b-yrsjinbkjx] {
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    display: grid;
    gap: 0.5rem;
}

.bt-admin__section-grid[b-yrsjinbkjx] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 0.5rem;
}

.bt-admin__actions[b-yrsjinbkjx] {
    justify-content: flex-end;
}
/* /Components/Pages/Classifiers.razor.rz.scp.css */
/* Link-styled delete trigger inside the per-row action area.
   Keeps visual rhythm with the adjacent "Edit" anchor while signalling a destructive action. */
.table-link[b-rsnf8zujnu] {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
}

.table-link-danger[b-rsnf8zujnu] {
    color: #b91c1c;
}

.table-link-danger:hover[b-rsnf8zujnu] {
    color: #7f1d1d;
    text-decoration: underline;
}
/* /Components/Pages/CostOptimiser.razor.rz.scp.css */
/* Strategy 3.11 — Cost Optimiser page. Calm, scannable recommendation list. */

.page-header-actions[b-uoundm4yfc] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.kpi-row[b-uoundm4yfc] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.7rem;
    margin: 0 0 1.1rem;
}

.kpi-card[b-uoundm4yfc] {
    background: var(--surface-quiet, #fafbfd);
    border: 1px solid var(--border-soft, #e1e6ed);
    border-radius: 8px;
    padding: 0.85rem 1rem;
}

.kpi-label[b-uoundm4yfc] {
    font-size: 0.78rem;
    color: var(--text-muted, #5a6675);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.kpi-value[b-uoundm4yfc] {
    font-size: 1.55rem;
    font-weight: 600;
    margin-top: 0.15rem;
}

.kpi-foot[b-uoundm4yfc] {
    font-size: 0.78rem;
}

.recommendation-list[b-uoundm4yfc] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.recommendation-item[b-uoundm4yfc] {
    border-top: 1px solid var(--border-soft, #e1e6ed);
    padding: 0.8rem 0.1rem;
}

.recommendation-item:first-child[b-uoundm4yfc] {
    border-top: none;
}

.recommendation-headline[b-uoundm4yfc] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.2rem;
}

.recommendation-detail[b-uoundm4yfc] {
    margin: 0.15rem 0 0.5rem;
    color: var(--text-strong, #232a33);
}

.recommendation-meta[b-uoundm4yfc] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: 0.82rem;
}

.recommendation-action[b-uoundm4yfc] {
    margin: 0.4rem 0 0;
    font-size: 0.86rem;
    background: rgba(78, 142, 230, 0.07);
    border-left: 3px solid #4a8fd4;
    padding: 0.35rem 0.65rem;
    border-radius: 0 4px 4px 0;
}

/* ── Apply / preview / undo affordances (#43) ── */

.recommendation-apply-row[b-uoundm4yfc] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 0.6rem;
}

.recommendation-apply-hint[b-uoundm4yfc] {
    font-size: 0.8rem;
}

.recommendation-apply-actions[b-uoundm4yfc] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.55rem;
}

.recommendation-preview[b-uoundm4yfc] {
    margin-top: 0.6rem;
    padding: 0.65rem 0.8rem;
    background: var(--surface-quiet, #fafbfd);
    border: 1px solid var(--border-soft, #e1e6ed);
    border-radius: 6px;
}

.recommendation-preview-summary[b-uoundm4yfc] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--text-strong, #232a33);
}

.recommendation-applied[b-uoundm4yfc] {
    background: rgba(22, 101, 52, 0.04);
    border-radius: 6px;
}

.recommendation-applied-note[b-uoundm4yfc] {
    margin: 0;
    font-size: 0.84rem;
    color: #166534;
}
/* /Components/Pages/DataFeedExportProfiles.razor.rz.scp.css */
.badge-legacy[b-g7vcmnwqxv] { background: #f5f3ff; color: #6d28d9; border: 1px solid #ddd6fe; }
.btn-delete-confirm[b-g7vcmnwqxv] { background: #dc2626; border: 1px solid #dc2626; color: #fff; }
.btn-delete-confirm:hover[b-g7vcmnwqxv] { background: #b91c1c; border-color: #b91c1c; color: #fff; }
/* /Components/Pages/DocumentDetail.razor.rz.scp.css */
.page-back[b-e4b5sffnj2] {
    margin: 0 0 0.4rem;
    font-size: 0.85rem;
}

.page-back a[b-e4b5sffnj2] {
    color: var(--color-text-secondary);
    text-decoration: none;
}

.page-back a:hover[b-e4b5sffnj2] {
    color: var(--color-brand-teal);
    text-decoration: underline;
}

.document-pdf-preview[b-e4b5sffnj2] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    margin-bottom: 1.25rem;
    overflow: hidden;
}

.document-pdf-header[b-e4b5sffnj2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.7rem 1rem;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface);
}

.document-pdf-title[b-e4b5sffnj2] {
    font-family: var(--font-subtitle);
    font-size: 0.95rem;
    color: var(--color-text-primary);
}

.document-pdf-open[b-e4b5sffnj2] {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--color-brand-teal);
    text-decoration: none;
}

.document-pdf-open:hover[b-e4b5sffnj2] {
    text-decoration: underline;
}

.document-pdf-frame[b-e4b5sffnj2] {
    width: 100%;
    height: 720px;
    border: 0;
    display: block;
    background: #f3f4f6;
}
/* /Components/Pages/Documents.razor.rz.scp.css */
/* #728: document operations console — lens strip, first-class filters, clickable rows. */

.ops-header-controls[b-c0ioaytog9] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    flex-wrap: wrap;
}

.ops-updated[b-c0ioaytog9] {
    font-size: 0.8rem;
}

.ops-live-toggle[b-c0ioaytog9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: var(--color-text-secondary);
    cursor: pointer;
    user-select: none;
}

/* ── Lens strip ─────────────────────────────────────────────────────────── */

.ops-lenses[b-c0ioaytog9] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.ops-lens[b-c0ioaytog9] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    align-items: flex-start;
    min-width: 8.5rem;
    padding: 0.6rem 0.9rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius, 10px);
    box-shadow: var(--shadow-card, none);
    cursor: pointer;
    text-align: left;
}

.ops-lens:hover[b-c0ioaytog9] {
    border-color: var(--color-brand-teal);
}

.ops-lens.is-active[b-c0ioaytog9] {
    border-color: var(--color-brand);
    box-shadow: inset 0 0 0 1px var(--color-brand);
}

.ops-lens-label[b-c0ioaytog9] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
}

.ops-lens-count[b-c0ioaytog9] {
    font-family: var(--font-title, inherit);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.ops-lens--alert[b-c0ioaytog9] {
    border-color: var(--color-degraded);
    background: #fff8eb;
}

.ops-lens--alert .ops-lens-count[b-c0ioaytog9] {
    color: #b45309;
}

.ops-lens--alert.is-active[b-c0ioaytog9] {
    border-color: var(--color-degraded);
    box-shadow: inset 0 0 0 1px var(--color-degraded);
}

/* ── Filter card (same idiom as Exceptions/Audit — scoped copies by design) ── */

.ops-filter-card[b-c0ioaytog9] {
    margin-bottom: 1rem;
}

.filter-row[b-c0ioaytog9] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: flex-end;
}

.filter-field[b-c0ioaytog9] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.filter-field label[b-c0ioaytog9] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.filter-field select[b-c0ioaytog9] {
    min-width: 160px;
}

.filter-field-action[b-c0ioaytog9] {
    flex-direction: row;
    gap: 0.5rem;
    align-items: flex-end;
}

/* ── Grid rows ──────────────────────────────────────────────────────────── */

/* Row markup is authored in this page's RowTemplate, so it carries this file's CSS
   scope attribute directly — plain selectors, no ::deep (WorkGrid contributes no
   scoped ancestor). Rows are click targets for the peek drawer. */

.ops-row[b-c0ioaytog9] {
    cursor: pointer;
}

.ops-row:hover td[b-c0ioaytog9] {
    background: var(--color-surface-raised);
}

.ops-row--peeked td[b-c0ioaytog9] {
    background: var(--color-surface-raised);
}

.ops-job-badge[b-c0ioaytog9] {
    margin-left: 0.4rem;
    font-size: 0.75rem;
    border: none;
    cursor: pointer;
}

.ops-exc-hint[b-c0ioaytog9] {
    margin-left: 0.4rem;
    color: var(--color-down);
    cursor: help;
}

.ops-source-cell[b-c0ioaytog9] {
    font-size: 0.85rem;
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Per-column narrow row (#728 round 2) ───────────────────────────────── */

.ops-narrow-th[b-c0ioaytog9] {
    padding: 0.3rem 0.5rem 0.55rem;
    font-weight: 400;
}

.ops-narrow[b-c0ioaytog9] {
    width: 100%;
    min-width: 4.5rem;
    font-size: 0.78rem;
    padding: 0.25rem 0.45rem;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-surface);
    color: var(--color-text-primary);
}

.ops-narrow:focus[b-c0ioaytog9] {
    outline: none;
    border-color: var(--color-brand-teal);
}

.ops-narrow-clear[b-c0ioaytog9] {
    font-size: 0.78rem;
}
/* /Components/Pages/ExceptionDetail.razor.rz.scp.css */
.badge-lg[b-lqfjgc8gvo] {
    padding: 0.375rem 0.875rem;
    font-size: 0.875rem;
}

.header-actions[b-lqfjgc8gvo] {
    display: flex;
    gap: 0.5rem;
}

.override-input[b-lqfjgc8gvo] {
    width: 100%;
    min-width: 200px;
    font-family: ui-monospace, monospace;
    font-size: 0.875rem;
}

.action-row[b-lqfjgc8gvo] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.notes-timeline[b-lqfjgc8gvo] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.note-item[b-lqfjgc8gvo] {
    padding: 0.75rem 1rem;
    background: var(--color-surface-raised);
    border: 1px solid var(--color-border);
    border-radius: calc(var(--radius) * 0.75);
}

.note-meta[b-lqfjgc8gvo] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.375rem;
    font-size: 0.8125rem;
}

.note-text[b-lqfjgc8gvo] {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.5;
}

.add-note-form[b-lqfjgc8gvo] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
}

.add-note-form textarea[b-lqfjgc8gvo] {
    resize: vertical;
    min-height: 80px;
}

.add-note-form .btn[b-lqfjgc8gvo] {
    align-self: flex-start;
}
/* /Components/Pages/Exceptions.razor.rz.scp.css */
.filter-row[b-kvgd8rsfxw] {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: flex-end;
}

.filter-field[b-kvgd8rsfxw] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.filter-field label[b-kvgd8rsfxw] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.filter-field select[b-kvgd8rsfxw] {
    min-width: 180px;
}

.filter-field-action[b-kvgd8rsfxw] {
    justify-content: flex-end;
}

.checkbox-col[b-kvgd8rsfxw] {
    width: 2.5rem;
    text-align: center;
}

.reason-cell[b-kvgd8rsfxw] {
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Pages/ExportHub.razor.rz.scp.css */
/* Governance hub — grouped drill cards. Mirrors the Admin hub / dashboard
   drill-card look so the governance area feels of a piece with the rest of the
   product. */

.hub-group[b-z9ehyco4ig] {
    margin-bottom: 2rem;
}

.hub-group-title[b-z9ehyco4ig] {
    font-family: var(--font-subtitle);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin: 0 0 0.75rem;
}

.hub-grid[b-z9ehyco4ig] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

@media (max-width: 1100px) {
    .hub-grid[b-z9ehyco4ig] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .hub-grid[b-z9ehyco4ig] { grid-template-columns: 1fr; }
}

.hub-card[b-z9ehyco4ig] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.9rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    transition: border-color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.hub-card:hover[b-z9ehyco4ig] {
    border-color: var(--color-brand-teal);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(7, 70, 132, 0.08);
}

.hub-card-icon[b-z9ehyco4ig] {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(14, 165, 198, 0.1);
    color: var(--color-brand);
}

.hub-card-icon svg[b-z9ehyco4ig] {
    width: 18px;
    height: 18px;
}

.hub-card-body[b-z9ehyco4ig] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.hub-card-title[b-z9ehyco4ig] {
    font-family: var(--font-subtitle);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.hub-card-meta[b-z9ehyco4ig] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    line-height: 1.35;
}
/* /Components/Pages/FirstRun.razor.rz.scp.css */
/* First-run wizard — chromeless full-screen shell (mirrors Setup.razor.css) with the
   GuardrailWizard stepper idiom. */

.fr-shell[b-ejw4jvbf68] {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 3rem 2rem;
    background: #f6f8fb;
}

.fr-card[b-ejw4jvbf68] {
    width: 100%;
    max-width: 46rem;
    background: #ffffff;
    border: 1px solid #e3e8ef;
    border-radius: 14px;
    box-shadow: 0 8px 30px rgba(16, 24, 40, 0.06);
    padding: 2.5rem 2.5rem 2.25rem;
}

.fr-brand[b-ejw4jvbf68] {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6b7585;
    margin-bottom: 1.25rem;
}

.fr-title[b-ejw4jvbf68] {
    font-size: 1.5rem;
    font-weight: 600;
    color: #101828;
    margin: 0 0 0.5rem;
}

.fr-lead[b-ejw4jvbf68] {
    color: #475467;
    line-height: 1.55;
    margin: 0 0 1.25rem;
}

.fr-muted[b-ejw4jvbf68] {
    color: #6b7585;
    font-size: 0.875rem;
    line-height: 1.5;
}

/* ── Stepper ── */

.fr-steps[b-ejw4jvbf68] {
    list-style: none;
    display: flex;
    gap: 0.4rem;
    padding: 0;
    margin: 0 0 1.75rem;
}

.fr-step[b-ejw4jvbf68] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding: 0.45rem 0.2rem;
    border-top: 3px solid #e3e8ef;
    color: #8a94a6;
    text-align: center;
}

.fr-step.is-active[b-ejw4jvbf68] { border-top-color: #2563eb; color: #101828; }
.fr-step.is-done[b-ejw4jvbf68] { border-top-color: #93b4f8; color: #475467; }

.fr-step-num[b-ejw4jvbf68] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: #eef1f6;
    font-weight: 600;
    font-size: 0.78rem;
}

.fr-step.is-active .fr-step-num[b-ejw4jvbf68],
.fr-step.is-done .fr-step-num[b-ejw4jvbf68] { background: #2563eb; color: #fff; }

.fr-step-label[b-ejw4jvbf68] { font-size: 0.72rem; font-weight: 500; }

/* ── Forms ── */

.fr-form[b-ejw4jvbf68] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin: 1rem 0;
    max-width: 30rem;
}

.fr-form label[b-ejw4jvbf68] {
    font-size: 0.85rem;
    font-weight: 600;
    color: #344054;
    margin-top: 0.6rem;
}

.fr-input[b-ejw4jvbf68] {
    border: 1px solid #d0d7e2;
    border-radius: 8px;
    padding: 0.55rem 0.75rem;
    font-size: 0.92rem;
    color: #101828;
    background: #fff;
}

.fr-input:focus[b-ejw4jvbf68] { outline: 2px solid #bfd3fb; border-color: #2563eb; }

.fr-field-error[b-ejw4jvbf68] { color: #b42318; font-size: 0.82rem; margin: 0.25rem 0 0; }

.fr-check[b-ejw4jvbf68] {
    display: flex;
    align-items: baseline;
    gap: 0.55rem;
    margin: 0.75rem 0;
    color: #344054;
    line-height: 1.45;
    cursor: pointer;
}

/* ── Provider choice cards ── */

.fr-choice-row[b-ejw4jvbf68] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin: 1rem 0;
}

.fr-choice[b-ejw4jvbf68] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.9rem 1rem;
    border: 1px solid #e3e8ef;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.fr-choice:hover[b-ejw4jvbf68] { border-color: #2563eb; }
.fr-choice.is-selected[b-ejw4jvbf68] { border-color: #2563eb; box-shadow: 0 0 0 1px #2563eb inset; }
.fr-choice input[b-ejw4jvbf68] { position: absolute; opacity: 0; }
.fr-choice-title[b-ejw4jvbf68] { font-weight: 600; color: #101828; }
.fr-choice-desc[b-ejw4jvbf68] { font-size: 0.82rem; color: #6b7585; line-height: 1.4; }

/* ── Panels / adoption stops ── */

.fr-panel[b-ejw4jvbf68] {
    border: 1px solid #e3e8ef;
    border-radius: 10px;
    padding: 1.1rem 1.25rem;
    margin: 1.1rem 0;
    background: #fafbfd;
}

.fr-panel-warn[b-ejw4jvbf68] {
    border-color: #f4cf87;
    background: #fffaf0;
}

.fr-panel-title[b-ejw4jvbf68] {
    font-size: 1rem;
    font-weight: 600;
    color: #101828;
    margin: 0 0 0.6rem;
}

.fr-dl[b-ejw4jvbf68] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.35rem 1.25rem;
    margin: 0;
}

.fr-dl dt[b-ejw4jvbf68] { font-weight: 600; color: #475467; font-size: 0.85rem; }
.fr-dl dd[b-ejw4jvbf68] { margin: 0; color: #101828; font-size: 0.9rem; overflow-wrap: anywhere; }

.fr-table[b-ejw4jvbf68] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
    margin: 0.5rem 0;
}

.fr-table th[b-ejw4jvbf68], .fr-table td[b-ejw4jvbf68] {
    text-align: left;
    padding: 0.35rem 0.75rem 0.35rem 0;
    border-bottom: 1px solid #eef1f6;
    color: #344054;
}

.fr-tablelist[b-ejw4jvbf68] {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.9rem;
}

.fr-tablelist li[b-ejw4jvbf68] { display: flex; gap: 0.75rem; align-items: baseline; }

.fr-testlist[b-ejw4jvbf68] {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: #344054;
}

.fr-writelist[b-ejw4jvbf68] { margin: 0.25rem 0 0.75rem 1.1rem; padding: 0; font-size: 0.9rem; color: #344054; }
.fr-writelist li[b-ejw4jvbf68] { margin-bottom: 0.3rem; }

.fr-role-desc[b-ejw4jvbf68] { font-size: 0.78rem; color: #8a94a6; margin: 0.15rem 0 0.4rem; line-height: 1.4; }

.fr-snippet[b-ejw4jvbf68] { margin-top: 0.75rem; }
.fr-snippet summary[b-ejw4jvbf68] { cursor: pointer; font-size: 0.85rem; color: #475467; }
.fr-snippet pre[b-ejw4jvbf68] {
    background: #101828;
    color: #e3e8ef;
    border-radius: 8px;
    padding: 0.9rem 1rem;
    font-size: 0.78rem;
    overflow-x: auto;
    margin: 0.5rem 0 0;
}

/* ── Status + alerts ── */

.fr-ok[b-ejw4jvbf68] { color: #067647; font-size: 0.875rem; }
.fr-bad[b-ejw4jvbf68] { color: #b42318; font-size: 0.875rem; }

.fr-alert[b-ejw4jvbf68] {
    color: #b42318;
    background: #fef3f2;
    border: 1px solid #fecdca;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    margin: 0 0 1.25rem;
}

/* ── Buttons + footer nav ── */

.fr-actions[b-ejw4jvbf68] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin: 0.9rem 0;
    flex-wrap: wrap;
}

.fr-btn[b-ejw4jvbf68] {
    appearance: none;
    border: 1px solid #d0d7e2;
    border-radius: 8px;
    background: #ffffff;
    color: #344054;
    font-weight: 600;
    font-size: 0.9rem;
    padding: 0.55rem 1.15rem;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.fr-btn:hover:not(:disabled)[b-ejw4jvbf68] { border-color: #2563eb; color: #2563eb; }
.fr-btn:disabled[b-ejw4jvbf68] { opacity: 0.5; cursor: default; }

.fr-btn-primary[b-ejw4jvbf68] {
    border: 0;
    background: #2563eb;
    color: #ffffff;
}

.fr-btn-primary:hover:not(:disabled)[b-ejw4jvbf68] { background: #1d4ed8; color: #ffffff; }

.fr-btn-danger[b-ejw4jvbf68] {
    border-color: #f0b3ad;
    color: #b42318;
}

.fr-btn-danger:hover:not(:disabled)[b-ejw4jvbf68] { border-color: #b42318; color: #b42318; }

.fr-nav[b-ejw4jvbf68] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eef1f6;
}

.fr-blockreason[b-ejw4jvbf68] { margin-top: 0.5rem; text-align: right; }
/* /Components/Pages/Flow/DataStudio.razor.rz.scp.css */
/* Data Studio (#615). The shared fs-*/rf-* structural rules are declared under[b-pasibwsw8h]  so they reach the
   inspector child components (scoped CSS is per-component); the page's own ds-* chrome sits alongside. */

/* ── Status chip ─────────────────────────────────────────────────────────────── */
.ds-root ::deep .fs-status-chip {
    display: inline-block; vertical-align: middle; margin-left: 0.6rem; font-size: 0.66rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.05em; padding: 0.15rem 0.55rem; border-radius: 999px;
}
.ds-root[b-pasibwsw8h]  .fs-status-draft { background: #f1f5f9; color: #475569; }
.ds-root[b-pasibwsw8h]  .fs-status-published { background: #dcfce7; color: #15803d; }
.ds-root[b-pasibwsw8h]  .fs-status-dirty { background: #fffbeb; color: #92400e; border: 1px solid #fcd34d; }

/* Flow id chip — the handle external callers pass to the invoke API; click copies. */
.ds-root[b-pasibwsw8h]  .fs-id-chip {
    display: inline-block; vertical-align: middle; margin-left: 0.6rem; padding: 0.15rem 0.55rem;
    border: 1px solid var(--color-border, #e2e8f0); border-radius: 999px; background: #fff;
    font-size: 0.7rem; color: var(--color-text-secondary, #64748b); cursor: pointer;
}
.ds-root[b-pasibwsw8h]  .fs-id-chip code { font-size: inherit; color: inherit; background: none; }
.ds-root[b-pasibwsw8h]  .fs-id-chip:hover { border-color: var(--color-brand, #074684); color: var(--color-brand, #074684); }

.ds-root[b-pasibwsw8h]  .fs-flowname { font-size: 0.82rem; padding: 0.35rem 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius); min-width: 16rem; }

.ds-root[b-pasibwsw8h]  .fs-field { display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.82rem; font-weight: 600; }
.ds-root[b-pasibwsw8h]  .fs-field input, .ds-root[b-pasibwsw8h]  .fs-field select { padding: 0.4rem 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.85rem; font-weight: 400; background: #fff; }
.ds-root[b-pasibwsw8h]  .fs-field textarea { padding: 0.4rem 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.85rem; font-weight: 400; font-family: inherit; background: #fff; }
.ds-root[b-pasibwsw8h]  .fs-hint { font-size: 0.78rem; margin: 0.25rem 0 0; color: var(--color-text-secondary); overflow-wrap: anywhere; }
.ds-root[b-pasibwsw8h]  .fs-hint.fs-error { color: var(--color-danger, #b42318); font-weight: 600; }
.ds-root[b-pasibwsw8h]  .btn-sm { font-size: 0.78rem; padding: 0.3rem 0.6rem; }
.ds-root[b-pasibwsw8h]  .fs-link { border: 0; background: transparent; color: var(--color-brand, #074684); font-size: inherit; font-weight: 600; cursor: pointer; padding: 0; }
.ds-root[b-pasibwsw8h]  .fs-link:hover { text-decoration: underline; }
.ds-root[b-pasibwsw8h]  .fs-x { border: 0; background: transparent; color: var(--color-text-secondary); cursor: pointer; font-size: 0.85rem; }
.ds-root[b-pasibwsw8h]  .fs-x:hover { color: var(--color-down, #dc2626); }

/* ── Header: title left, every action on one row to the right (wraps when narrow) ── */
.ds-header[b-pasibwsw8h] { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.5rem 1.5rem; flex-wrap: wrap; margin-bottom: 0.9rem; }
.ds-header-title[b-pasibwsw8h] { flex: 1 1 22rem; min-width: 18rem; }
.ds-header-title .muted[b-pasibwsw8h] { margin: 0; }
.ds-header .page-header-actions[b-pasibwsw8h] { flex: 0 1 auto; flex-wrap: wrap; justify-content: flex-end; row-gap: 0.5rem; margin-top: 0.2rem; }

/* ── Toolbar above the canvas: palette + AI draft + connect-mode hint ────────── */
.ds-toolbar[b-pasibwsw8h] { display: flex; align-items: center; gap: 0.6rem; margin-top: 0; flex-wrap: wrap; }
.ds-toolbar[b-pasibwsw8h]  .fs-hint { margin: 0; }

/* ── Palette popover ─────────────────────────────────────────────────────────── */
.ds-root[b-pasibwsw8h]  .ds-palette-wrap { position: relative; }
.ds-root[b-pasibwsw8h]  .ds-palette {
    position: absolute; top: calc(100% + 6px); left: 0; z-index: 30;
    width: 420px; max-height: 480px; overflow-y: auto;
    display: flex; flex-direction: column; gap: 0.8rem;
    padding: 0.9rem; background: #fff; border: 1px solid var(--color-border);
    border-radius: var(--radius); box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
}
.ds-root[b-pasibwsw8h]  .ds-palette-group h3 {
    margin: 0 0 0.35rem; font-size: 0.72rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: var(--color-text-secondary);
}
.ds-root[b-pasibwsw8h]  .ds-palette-entry {
    display: flex; flex-direction: column; gap: 0.1rem; width: 100%; text-align: left;
    padding: 0.45rem 0.55rem; border: 0; background: transparent; border-radius: 8px; cursor: pointer;
}
.ds-root[b-pasibwsw8h]  .ds-palette-entry:hover { background: #eef2f7; }
.ds-root[b-pasibwsw8h]  .ds-palette-name { font-size: 0.85rem; font-weight: 600; color: var(--color-text); }
.ds-root[b-pasibwsw8h]  .ds-palette-summary { font-size: 0.75rem; color: var(--color-text-secondary); }

/* Saved nodes (#664): the card states which way it places the node, with the other way beside it, so
   "linked" versus "a copy" is a choice the operator makes rather than one the palette makes for them. */
.ds-root[b-pasibwsw8h]  .ds-palette-entry-row { display: flex; align-items: center; gap: 0.4rem; }
.ds-root[b-pasibwsw8h]  .ds-palette-entry-row .ds-palette-entry { flex: 1 1 auto; }
.ds-root[b-pasibwsw8h]  .ds-palette-entry-row .fs-link { flex: 0 0 auto; font-size: 0.72rem; white-space: nowrap; }
.ds-root[b-pasibwsw8h]  .ds-palette-mode {
    font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--color-text-secondary); opacity: 0.85;
}

/* ── Custom-node step editor (#664) ──────────────────────────────────────────── */
.ds-root[b-pasibwsw8h]  .ds-step {
    display: flex; flex-direction: column; gap: 0.45rem;
    padding: 0.6rem; margin-bottom: 0.6rem;
    border: 1px solid var(--color-border); border-radius: var(--radius); background: #fbfcfe;
}
.ds-root[b-pasibwsw8h]  .ds-step-head { display: flex; align-items: center; gap: 0.4rem; }
.ds-root[b-pasibwsw8h]  .ds-step-head input { flex: 1 1 auto; min-width: 0; }
.ds-root[b-pasibwsw8h]  .ds-step-n {
    flex: 0 0 auto; width: 1.35rem; height: 1.35rem; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.7rem; font-weight: 700; color: var(--color-text-secondary); background: #eef2f7;
}
.ds-root[b-pasibwsw8h]  .ds-op-editor { display: flex; flex-direction: column; gap: 0.4rem; }
.ds-root[b-pasibwsw8h]  .ds-op-advanced > summary {
    cursor: pointer; font-size: 0.75rem; color: var(--color-text-secondary); margin: 0.2rem 0;
}
.ds-root[b-pasibwsw8h]  .ds-save-node {
    display: flex; flex-direction: column; gap: 0.45rem;
    padding: 0.6rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: #fbfcfe;
}

/* ── Canvas + inspector row (the proven recon-designer layout) ───────────────── */
/* The studio fills the viewport below the 56px top bar (page-content adds 1.5rem top+bottom padding):
   ds-root is a flex column whose studio row takes all height the header/toolbar don't, and the canvas
   is the growing element inside it. min-height (not height) so problems/test-log/preview strips can
   still push the page taller instead of clipping. */
.ds-root[b-pasibwsw8h] { display: flex; flex-direction: column; min-height: calc(100vh - 56px - 3rem); }
.fs-studio-row[b-pasibwsw8h] { display: flex; align-items: stretch; gap: 1.1rem; margin-top: 0; flex: 1 1 auto; min-height: 0; }
.fs-studio-main[b-pasibwsw8h] { flex: 1 1 auto; min-width: 0; overflow-x: auto; display: flex; flex-direction: column; }
.fs-studio-main[b-pasibwsw8h]  .fc-canvas { flex: 1 1 auto; height: auto; min-height: 420px; }

.fs-panel[b-pasibwsw8h] {
    flex: 0 0 380px; width: 380px; align-self: stretch;
    display: flex; flex-direction: column;
    margin-top: 0; border: 1px solid var(--color-border); border-radius: var(--radius);
    background: #fff; box-shadow: var(--shadow-card);
}
/* ── Inspector | Assistant tabs on the right pane (#640) ─────────────────────── */
.ds-pane-tabs[b-pasibwsw8h] {
    display: flex; gap: 0.25rem; padding: 0.5rem 0.6rem 0;
    background: #f9fafb; border-bottom: 1px solid var(--color-border);
    border-radius: var(--radius) var(--radius) 0 0;
}
.ds-pane-tab[b-pasibwsw8h] {
    border: 1px solid transparent; border-bottom: 0; background: transparent; cursor: pointer;
    padding: 0.4rem 0.85rem; margin-bottom: -1px; border-radius: 8px 8px 0 0;
    font-size: 0.82rem; font-weight: 600; color: var(--color-text-secondary);
}
.ds-pane-tab:hover[b-pasibwsw8h] { color: var(--color-text); }
.ds-pane-tab.is-active[b-pasibwsw8h] { background: #fff; border-color: var(--color-border); border-bottom: 1px solid #fff; color: var(--color-text); }
.ds-tab-dot[b-pasibwsw8h] { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--color-brand); margin-left: 0.35rem; vertical-align: middle; }

/* Both tab bodies stay mounted; the inactive one hides. The wrapper recreates the aside's column-flex
   context so the existing head/body/foot layout is untouched, and [hidden] must beat display:flex. */
.ds-pane-fill[b-pasibwsw8h] { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.ds-pane-fill[hidden][b-pasibwsw8h] { display: none; }
.ds-pane-fill .fs-panel-head[b-pasibwsw8h] { border-radius: 0; }

.fs-panel-head[b-pasibwsw8h] { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; padding: 1rem 1.1rem; border-bottom: 1px solid var(--color-border); background: #f9fafb; border-radius: var(--radius) var(--radius) 0 0; }
.fs-panel-head h2[b-pasibwsw8h] { font-family: var(--font-title); font-size: 1.05rem; margin: 0; }
.fs-panel-head p[b-pasibwsw8h] { margin: 0.15rem 0 0; font-size: 0.8rem; color: var(--color-text-secondary); }
.fs-panel-back[b-pasibwsw8h] { border: 0; background: transparent; font-size: 0.76rem; font-weight: 600; color: var(--color-brand); cursor: pointer; padding: 0.2rem 0.3rem; border-radius: 6px; white-space: nowrap; }
.fs-panel-back:hover[b-pasibwsw8h] { background: #eef2f7; }
.fs-panel-body[b-pasibwsw8h] { padding: 1rem 1.1rem; overflow-y: auto; flex: 1; display: flex; flex-direction: column; gap: 0.75rem; }
.fs-panel-foot[b-pasibwsw8h] { padding: 0.75rem 1.1rem; border-top: 1px solid var(--color-border); display: flex; justify-content: flex-end; }
.ds-panel-foot[b-pasibwsw8h] { gap: 0.5rem; align-items: center; }
.ds-panel-foot select[b-pasibwsw8h] { padding: 0.3rem 0.45rem; border: 1px solid var(--color-border); border-radius: 6px; font-size: 0.8rem; background: #fff; margin-right: auto; }

@media (max-width: 1650px) {
    .fs-studio-row[b-pasibwsw8h] { flex-direction: column; }
    .fs-panel[b-pasibwsw8h] { width: 100%; flex-basis: auto; }
}

/* ── Problems strip under the canvas ─────────────────────────────────────────── */
.ds-problems[b-pasibwsw8h] {
    margin-top: 0.6rem; padding: 0.55rem 0.75rem;
    border: 1px solid #fcd34d; border-radius: var(--radius); background: #fffbeb;
}
.ds-problems summary[b-pasibwsw8h] { cursor: pointer; font-size: 0.82rem; font-weight: 600; color: #92400e; user-select: none; }
.ds-problems ul[b-pasibwsw8h] { margin: 0.45rem 0 0; padding-left: 1.2rem; font-size: 0.8rem; color: #78350f; }
.ds-problems li[b-pasibwsw8h] { margin-top: 0.15rem; }

/* ── Inspector internals (shared rf-* vocabulary, reaching into child components) ── */
.ds-root[b-pasibwsw8h]  .rf-engine-row { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.ds-root[b-pasibwsw8h]  .rf-check { display: flex; align-items: center; gap: 0.45rem; font-size: 0.82rem; font-weight: 600; cursor: pointer; }
.ds-root[b-pasibwsw8h]  .rf-advanced { border: 1px solid var(--border, #d5dae2); border-radius: var(--radius); background: var(--surface, #fff); padding: 0.55rem 0.75rem; }
.ds-root[b-pasibwsw8h]  .rf-advanced summary { cursor: pointer; font-size: 0.85rem; font-weight: 600; color: var(--text-secondary, #5b6472); user-select: none; }
.ds-root[b-pasibwsw8h]  .rf-advanced summary:hover { color: var(--color-text, #1f2733); }
.ds-root[b-pasibwsw8h]  .rf-advanced[open] summary { margin-bottom: 0.6rem; }
.ds-root[b-pasibwsw8h]  .rf-advanced > *:not(summary) { margin-top: 0.45rem; }

.ds-root[b-pasibwsw8h]  .rf-map { margin-top: 0.75rem; }
.ds-root[b-pasibwsw8h]  .rf-map h3, .ds-root[b-pasibwsw8h]  .rf-filters h3, .ds-root[b-pasibwsw8h]  .rf-grouping h3,
.ds-root[b-pasibwsw8h]  .rf-enrich h3, .ds-root[b-pasibwsw8h]  .rf-schema h3, .ds-root[b-pasibwsw8h]  .rf-sides h3,
.ds-root[b-pasibwsw8h]  .rf-rules h3, .ds-root[b-pasibwsw8h]  .ds-enrich-keys h3 {
    font-size: 0.85rem; font-weight: 600; margin: 0 0 0.35rem; color: var(--text-secondary, #5b6472);
}
.ds-root[b-pasibwsw8h]  .rf-rules { margin-top: 0.75rem; }
.ds-root[b-pasibwsw8h]  .rf-rules-locked { margin-top: 0.75rem; padding-top: 0.6rem; border-top: 1px dashed var(--border, #e3e7ee); }
.ds-root[b-pasibwsw8h]  .rf-map > .fs-hint { margin: 0 0 0.6rem; }

.ds-root[b-pasibwsw8h]  .rf-filters { margin-top: 0.75rem; }
.ds-root[b-pasibwsw8h]  .rf-filter-row { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.4rem; flex-wrap: wrap; }
.ds-root[b-pasibwsw8h]  .rf-filter-row select, .ds-root[b-pasibwsw8h]  .rf-filter-row input {
    padding: 0.3rem 0.45rem; border: 1px solid var(--border, #d5dae2); border-radius: 6px; font-size: 0.85rem; background: var(--surface, #fff);
}
.ds-root[b-pasibwsw8h]  .rf-filter-row input { flex: 1 1 7rem; min-width: 6rem; }

.ds-root[b-pasibwsw8h]  .rf-grouping { margin-top: 0.75rem; }
.ds-root[b-pasibwsw8h]  .rf-grouping button { margin-top: 0.4rem; }

.ds-root[b-pasibwsw8h]  .rf-enrich-keys { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: flex-end; }
.ds-root[b-pasibwsw8h]  .rf-enrich-pull { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.4rem; flex-wrap: wrap; }
.ds-root[b-pasibwsw8h]  .rf-enrich-pull select, .ds-root[b-pasibwsw8h]  .rf-enrich-pull input {
    padding: 0.3rem 0.45rem; border: 1px solid var(--border, #d5dae2); border-radius: 6px; font-size: 0.85rem; background: var(--surface, #fff);
}

.ds-root[b-pasibwsw8h]  .rf-schema { margin-bottom: 0.9rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border, #e3e7ee); }
.ds-root[b-pasibwsw8h]  .rf-schema-row { display: flex; align-items: center; gap: 0.5rem; padding: 0.15rem 0; }
.ds-root[b-pasibwsw8h]  .rf-link-card {
    border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius); padding: 0.55rem 0.7rem;
    margin: 0.45rem 0; display: flex; flex-direction: column; gap: 0.4rem;
}
.ds-root[b-pasibwsw8h]  .rf-link-card.is-unlinked { border-left: 3px solid #b54708; }
.ds-root[b-pasibwsw8h]  .rf-link-head { display: flex; align-items: center; gap: 0.5rem; }
.ds-root[b-pasibwsw8h]  .rf-link-head .btn-ghost { margin-left: 0.25rem; }
.ds-root[b-pasibwsw8h]  .rf-link-note { margin: 0; font-size: 0.72rem; color: var(--color-text-secondary); }
.ds-root[b-pasibwsw8h]  .rf-schema-name { font-size: 0.85rem; font-weight: 500; }
.ds-root[b-pasibwsw8h]  .rf-schema-meta { margin-left: auto; font-size: 0.75rem; color: var(--text-secondary, #5b6472); }
.ds-root[b-pasibwsw8h]  .rf-schema-add, .ds-root[b-pasibwsw8h]  .rf-schema-custom { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.4rem; flex-wrap: wrap; }
.ds-root[b-pasibwsw8h]  .rf-schema-add select, .ds-root[b-pasibwsw8h]  .rf-schema-custom input, .ds-root[b-pasibwsw8h]  .rf-schema-custom select {
    padding: 0.3rem 0.45rem; border: 1px solid var(--border, #d5dae2); border-radius: 6px; font-size: 0.85rem; background: var(--surface, #fff);
}

.ds-root[b-pasibwsw8h]  .rf-sides { margin-bottom: 0.9rem; }
.ds-root[b-pasibwsw8h]  .rf-side-block {
    border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius); padding: 0.55rem 0.7rem;
    margin-bottom: 0.55rem; display: flex; flex-direction: column; gap: 0.45rem;
}
.ds-root[b-pasibwsw8h]  .rf-side-row { display: flex; align-items: center; gap: 0.5rem; padding: 0.15rem 0; }
.ds-root[b-pasibwsw8h]  .rf-side-feeder { font-size: 0.8rem; color: var(--color-text-secondary); flex: 1 1 auto; }
.ds-root[b-pasibwsw8h]  .rf-side-row input { width: 9rem; padding: 0.3rem 0.45rem; border: 1px solid var(--border, #d5dae2); border-radius: 6px; font-size: 0.82rem; background: var(--surface, #fff); }

.ds-root[b-pasibwsw8h]  .ds-check-rule {
    border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius); padding: 0.55rem 0.7rem;
    margin-bottom: 0.5rem; display: flex; flex-direction: column; gap: 0.45rem;
}

.ds-root[b-pasibwsw8h]  .rf-anchor-badge {
    display: inline-block; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em;
    padding: 0.15rem 0.5rem; border-radius: 999px; background: var(--accent-soft, #e8f0fe); color: var(--accent, #1a56db);
}

/* ── Shape node inspector (#624): recipe transparency card, inline steps editor, sample preview ── */
.ds-root[b-pasibwsw8h]  .sh-card { border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius); background: var(--surface, #fff); padding: 0.65rem 0.75rem; display: flex; flex-direction: column; gap: 0.55rem; }
.ds-root[b-pasibwsw8h]  .sh-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
.ds-root[b-pasibwsw8h]  .sh-card-head h3 { font-size: 0.85rem; font-weight: 600; margin: 0; color: var(--text-secondary, #5b6472); }
.ds-root[b-pasibwsw8h]  .sh-card-count { font-size: 0.72rem; color: var(--color-text-secondary); white-space: nowrap; }
.ds-root[b-pasibwsw8h]  .sh-col { border-top: 1px solid var(--border, #eef1f5); padding-top: 0.5rem; }
.ds-root[b-pasibwsw8h]  .sh-col:first-of-type { border-top: 0; padding-top: 0; }
.ds-root[b-pasibwsw8h]  .sh-col-head { display: flex; align-items: baseline; gap: 0.5rem; font-size: 0.82rem; }
.ds-root[b-pasibwsw8h]  .sh-col-src { font-size: 0.75rem; color: var(--color-text-secondary); }
.ds-root[b-pasibwsw8h]  .sh-chips { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.3rem; }
.ds-root[b-pasibwsw8h]  .sh-chip { font-size: 0.7rem; font-weight: 600; padding: 0.12rem 0.45rem; border-radius: 999px; background: #eef2f7; color: var(--color-text, #1f2733); }
.ds-root[b-pasibwsw8h]  .sh-chip-pass { background: transparent; border: 1px dashed var(--border, #d5dae2); color: var(--color-text-secondary); font-weight: 400; }
.ds-root[b-pasibwsw8h]  .sh-chip-translate { background: var(--accent-soft, #e8f0fe); color: var(--accent, #1a56db); }
.ds-root[b-pasibwsw8h]  .sh-col-fallback { margin: 0.25rem 0 0; font-size: 0.72rem; color: var(--color-text-secondary); font-style: italic; }
.ds-root[b-pasibwsw8h]  .sh-actions { display: flex; align-items: center; gap: 1rem; }

.ds-root[b-pasibwsw8h]  .sh-editor { display: flex; flex-direction: column; gap: 0.5rem; align-items: flex-start; }
.ds-root[b-pasibwsw8h]  .sh-colcard { border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius); background: var(--surface, #fff); width: 100%; }
.ds-root[b-pasibwsw8h]  .sh-colcard.is-open { border-color: var(--accent, #1a56db); }
.ds-root[b-pasibwsw8h]  .sh-colhead { display: flex; align-items: center; gap: 0.5rem; width: 100%; border: 0; background: transparent; padding: 0.5rem 0.65rem; cursor: pointer; text-align: left; }
.ds-root[b-pasibwsw8h]  .sh-colname { font-size: 0.82rem; font-weight: 600; color: var(--color-text, #1f2733); }
.ds-root[b-pasibwsw8h]  .sh-colmeta { font-size: 0.72rem; color: var(--color-text-secondary); margin-left: auto; white-space: nowrap; }
.ds-root[b-pasibwsw8h]  .sh-caret { font-size: 0.7rem; color: var(--color-text-secondary); }
.ds-root[b-pasibwsw8h]  .sh-colbody { padding: 0.15rem 0.65rem 0.65rem; display: flex; flex-direction: column; gap: 0.55rem; border-top: 1px solid var(--border, #eef1f5); }
.ds-root[b-pasibwsw8h]  .sh-sub { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-secondary, #5b6472); margin-top: 0.2rem; }
.ds-root[b-pasibwsw8h]  .sh-fb-row { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.ds-root[b-pasibwsw8h]  .sh-fb-row select, .ds-root[b-pasibwsw8h]  .sh-fb-row input { padding: 0.3rem 0.45rem; border: 1px solid var(--border, #d5dae2); border-radius: 6px; font-size: 0.82rem; background: var(--surface, #fff); }
.ds-root[b-pasibwsw8h]  .sh-fb-row input { flex: 1 1 6rem; min-width: 5rem; }
.ds-root[b-pasibwsw8h]  .sh-fb-empty { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--color-text-secondary); cursor: pointer; }
.ds-root[b-pasibwsw8h]  .translate-chip { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.75rem; font-weight: 600; padding: 0.2rem 0.55rem; border-radius: 999px; background: var(--accent-soft, #e8f0fe); color: var(--accent, #1a56db); align-self: flex-start; }
.ds-root[b-pasibwsw8h]  .translate-chip-x { border: 0; background: transparent; cursor: pointer; color: inherit; font-size: 0.85rem; padding: 0; }

/* Output inspector — the "what's arriving here" sample the designer opens with (#634). */
.ds-root[b-pasibwsw8h]  .ds-out-sample { display: flex; flex-direction: column; gap: 0.4rem; margin: 0.6rem 0; padding-top: 0.6rem; border-top: 1px solid var(--border, #e3e7ee); }

.ds-root[b-pasibwsw8h]  .sh-preview { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 0.35rem; }
.ds-root[b-pasibwsw8h]  .sh-preview-head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
.ds-root[b-pasibwsw8h]  .sh-preview-head h3 { font-size: 0.85rem; font-weight: 600; margin: 0; color: var(--text-secondary, #5b6472); }
.ds-root[b-pasibwsw8h]  .sh-preview-meta { font-size: 0.72rem; color: var(--color-text-secondary); white-space: nowrap; }
.ds-root[b-pasibwsw8h]  .sh-table-scroll { overflow-x: auto; border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius); max-height: 16rem; overflow-y: auto; }
.ds-root[b-pasibwsw8h]  .sh-table { border-collapse: collapse; width: 100%; font-size: 0.75rem; }
.ds-root[b-pasibwsw8h]  .sh-table th { position: sticky; top: 0; background: #f9fafb; text-align: left; font-weight: 600; padding: 0.35rem 0.5rem; border-bottom: 1px solid var(--border, #e3e7ee); white-space: nowrap; }
.ds-root[b-pasibwsw8h]  .sh-table td { padding: 0.3rem 0.5rem; border-bottom: 1px solid var(--border, #f1f3f7); white-space: nowrap; max-width: 14rem; overflow: hidden; text-overflow: ellipsis; }
.ds-root[b-pasibwsw8h]  .sh-table tbody tr:last-child td { border-bottom: 0; }
.ds-root[b-pasibwsw8h]  .sh-cell-issue { background: #fef2f2; color: #b42318; }
.ds-root[b-pasibwsw8h]  .sh-cell-flag { background: #fffbeb; color: #92400e; }
.ds-root[b-pasibwsw8h]  .sh-cell-empty { color: var(--color-text-secondary); }
.ds-root[b-pasibwsw8h]  .sh-preview-counts { margin: 0; font-size: 0.75rem; color: var(--color-text-secondary); display: flex; gap: 0.8rem; flex-wrap: wrap; }
.ds-root[b-pasibwsw8h]  .sh-count-issue { color: #b42318; font-weight: 600; }
.ds-root[b-pasibwsw8h]  .sh-count-flag { color: #92400e; font-weight: 600; }

.ds-root[b-pasibwsw8h]  .rp-sides { list-style: none; display: flex; flex-direction: column; gap: 0.2rem; margin: 0; padding: 0; }
.ds-root[b-pasibwsw8h]  .rp-side { display: flex; align-items: baseline; gap: 0.5rem; font-size: 0.75rem; }
.ds-root[b-pasibwsw8h]  .rp-side-label { font-weight: 600; color: var(--text-secondary, #5b6472); }
.ds-root[b-pasibwsw8h]  .rp-side-rows { color: var(--color-text-secondary); }
.ds-root[b-pasibwsw8h]  .cp-verdict { font-weight: 700; }
.ds-root[b-pasibwsw8h]  .cp-verdict-pass { color: #067647; }
.ds-root[b-pasibwsw8h]  .cp-verdict-fail { color: #b42318; }

.ds-root[b-pasibwsw8h]  .fp-toggle { display: inline-flex; width: fit-content; border: 1px solid var(--border, #d5dae2); border-radius: var(--radius); overflow: hidden; }
.ds-root[b-pasibwsw8h]  .fp-toggle button { border: 0; background: #fff; font-size: 0.75rem; font-weight: 600; padding: 0.3rem 0.7rem; cursor: pointer; color: var(--color-text-secondary); }
.ds-root[b-pasibwsw8h]  .fp-toggle button + button { border-left: 1px solid var(--border, #d5dae2); }
.ds-root[b-pasibwsw8h]  .fp-toggle button:hover { background: #f6f8fb; }
.ds-root[b-pasibwsw8h]  .fp-toggle button.is-active { background: #eef2f7; color: var(--color-text); }

/* ── Test run (#637): live log strip + results panel ─────────────────────────── */
.ds-testlog ul[b-pasibwsw8h] { list-style: none; margin: 0.4rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.2rem; }
.ds-testlog li[b-pasibwsw8h] { font-size: 0.78rem; color: var(--text-secondary, #5b6472); font-variant-numeric: tabular-nums; }

.ds-test-result[b-pasibwsw8h] { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.6rem; }
.ds-test-result .fs-drawer-h[b-pasibwsw8h] { margin-bottom: 0; }
.ds-test-artefact[b-pasibwsw8h] { margin: 0; }
.ds-test-artefact-pre[b-pasibwsw8h] {
    margin: 0.25rem 0 0; padding: 0.5rem 0.6rem; max-height: 14rem; overflow: auto;
    background: #f8fafc; border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius);
    font-size: 0.72rem; line-height: 1.45; white-space: pre;
}

.ds-root[b-pasibwsw8h]  .ds-testrun-var { display: flex; gap: 0.5rem; margin-bottom: 0.4rem; }
.ds-root[b-pasibwsw8h]  .ds-testrun-var input { flex: 1; min-width: 0; }

/* #707: the Tests pane — saved regression tests with verdict chips and capped mismatch lists. */
.ds-root[b-pasibwsw8h]  .ds-tests { padding: 0 1rem 1rem; overflow-y: auto; }
.ds-root[b-pasibwsw8h]  .ds-tests-actions { margin: 0.25rem 0 0.75rem; }
.ds-root[b-pasibwsw8h]  .ds-test-card {
    border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius);
    padding: 0.6rem 0.75rem; margin-bottom: 0.6rem; background: #fff;
}
.ds-root[b-pasibwsw8h]  .ds-test-card-head { display: flex; align-items: center; gap: 0.45rem; }
.ds-root[b-pasibwsw8h]  .ds-test-chip {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.15rem; height: 1.15rem; border-radius: 50%; font-size: 0.7rem; font-weight: 700;
}
.ds-root[b-pasibwsw8h]  .ds-test-chip.is-pass { background: #e5f6ec; color: #1a7f47; }
.ds-root[b-pasibwsw8h]  .ds-test-chip.is-fail { background: #fdeaea; color: #b3261e; }
.ds-root[b-pasibwsw8h]  .ds-test-chip.is-unknown { background: #eef1f5; color: #5b6470; }
.ds-root[b-pasibwsw8h]  .ds-test-mismatches {
    margin: 0.25rem 0 0.35rem; padding-left: 1.1rem; font-size: 0.74rem; color: #6b7280;
}
.ds-root[b-pasibwsw8h]  .ds-test-card-actions { display: flex; gap: 0.7rem; margin-top: 0.35rem; }
.ds-root[b-pasibwsw8h]  .ds-test-save { display: flex; gap: 0.5rem; margin: 0.5rem 0 0.25rem; }
.ds-root[b-pasibwsw8h]  .ds-test-save input { flex: 1; min-width: 0; }
.ds-root[b-pasibwsw8h]  .ds-tab-count {
    margin-left: 0.35rem; padding: 0 0.4rem; border-radius: 999px; font-size: 0.68rem;
    background: #eef1f5; color: #5b6470;
}
.ds-root[b-pasibwsw8h]  .ds-tab-count.is-failing { background: #fdeaea; color: #b3261e; }

/* #705: the output inspector's Render-as segmented control — plain syntax first, templates opt-in. */
.ds-root[b-pasibwsw8h]  .ds-out-formats { display: flex; gap: 0.35rem; margin: 0.15rem 0 0.5rem; flex-wrap: wrap; }
.ds-root[b-pasibwsw8h]  .ds-out-format {
    padding: 0.3rem 0.7rem; font-size: 0.78rem; cursor: pointer;
    background: #fff; border: 1px solid var(--border, #e3e7ee); border-radius: 999px;
}
.ds-root[b-pasibwsw8h]  .ds-out-format.is-active {
    background: var(--accent-soft, #eef4ff); border-color: var(--accent, #2f6fed);
    color: var(--accent, #2f6fed); font-weight: 600;
}

/* #702: per-source input mode toggle (file vs pasted JSON rows) in the test modal. */
.ds-root[b-pasibwsw8h]  .ds-testrun-modes { display: flex; gap: 0.3rem; align-items: baseline; margin: 0.15rem 0 0.35rem; }
.ds-root[b-pasibwsw8h]  .ds-testrun-modes .fs-link { font-size: 0.78rem; }
.ds-root[b-pasibwsw8h]  .ds-testrun-modes .fs-link.is-active { font-weight: 600; text-decoration: underline; }
.ds-root[b-pasibwsw8h]  .fs-field textarea {
    width: 100%; resize: vertical; font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.75rem; line-height: 1.5; padding: 0.45rem 0.55rem;
    border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius);
}

/* #691: canvas file drop — the wrapper is the upload-dock "card"; the veil shows only while a
   file drag hovers the canvas (upload-dock toggles .is-drag-over). */
.ds-canvas-drop[b-pasibwsw8h] { position: relative; }
.ds-canvas-drop-input[b-pasibwsw8h] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.ds-canvas-drop-veil[b-pasibwsw8h] { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; border: 2px dashed var(--color-accent, #2563eb); border-radius: 12px; background: rgba(37, 99, 235, .06); z-index: 5; pointer-events: none; }
.ds-canvas-drop-veil span[b-pasibwsw8h] { font-size: .9rem; font-weight: 600; color: var(--color-accent, #2563eb); background: #fff; border-radius: 8px; padding: .35rem .7rem; box-shadow: 0 1px 4px rgba(15, 23, 42, .12); }
.ds-canvas-drop.is-drag-over .ds-canvas-drop-veil[b-pasibwsw8h] { display: flex; }
/* /Components/Pages/Flow/FlowRunDetail.razor.rz.scp.css */
.rd-section[b-wqri4aermc] { margin-top: 0.5rem; }

.rd-code[b-wqri4aermc] { font-family: var(--font-mono, ui-monospace, monospace); font-size: 0.82rem; background: #f1f5f9; padding: 0.05rem 0.35rem; border-radius: 5px; }
.rd-hash[b-wqri4aermc] { font-family: var(--font-mono, ui-monospace, monospace); font-size: 0.78rem; color: var(--color-text-secondary); }
.rd-meta[b-wqri4aermc] { color: var(--color-text-secondary); font-size: 0.8rem; }

/* Node details panel (small — the run view is read-only, not the editing drawer). */
.rd-nodepanel[b-wqri4aermc] { margin-top: 0.75rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-card); padding: 0.85rem 1rem; max-width: 560px; }
.rd-nodepanel-head[b-wqri4aermc] { display: flex; align-items: center; gap: 0.6rem; }
.rd-nodepanel-head strong[b-wqri4aermc] { font-size: 0.92rem; }
.rd-close[b-wqri4aermc] { margin-left: auto; border: 0; background: transparent; color: var(--color-text-secondary); cursor: pointer; font-size: 0.9rem; padding: 0.15rem 0.35rem; border-radius: 6px; }
.rd-close:hover[b-wqri4aermc] { background: #eef2f7; }
.rd-error[b-wqri4aermc] { margin: 0.6rem 0 0; font-size: 0.82rem; color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; border-radius: var(--radius); padding: 0.5rem 0.65rem; }
.rd-metrics[b-wqri4aermc] { display: grid; grid-template-columns: max-content 1fr; gap: 0.25rem 1rem; margin: 0.6rem 0 0; font-size: 0.82rem; }
.rd-metrics dt[b-wqri4aermc] { font-family: var(--font-mono, ui-monospace, monospace); color: var(--color-text-secondary); }
.rd-metrics dd[b-wqri4aermc] { margin: 0; font-weight: 600; }

/* Cards */
.rd-grid[b-wqri4aermc] { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.rd-card[b-wqri4aermc] { border: 1px solid var(--color-border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-card); padding: 1.1rem 1.25rem; }
.rd-card h2[b-wqri4aermc] { font-family: var(--font-title); font-size: 1.02rem; margin: 0 0 0.5rem; }
.rd-h3[b-wqri4aermc] { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); margin: 0.9rem 0 0.35rem; }
.rd-signoff[b-wqri4aermc] { margin-top: 1rem; }
.rd-card + .rd-card[b-wqri4aermc] { margin-top: 1rem; }

.rd-list[b-wqri4aermc] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.rd-list li[b-wqri4aermc] { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; font-size: 0.86rem; }
.rd-lock[b-wqri4aermc] { font-size: 0.78rem; color: var(--color-text-secondary); }

.rd-verdict-row[b-wqri4aermc] { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.rd-reason[b-wqri4aermc] { margin: 0.5rem 0 0; font-size: 0.85rem; }
.rd-approvals[b-wqri4aermc] { margin-top: 0.25rem; }
.rd-approve-row[b-wqri4aermc] { display: flex; align-items: center; gap: 0.6rem; margin-top: 0.75rem; flex-wrap: wrap; }
.rd-blocked[b-wqri4aermc] { margin: 0.75rem 0 0; font-size: 0.85rem; font-weight: 600; color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; border-radius: var(--radius); padding: 0.55rem 0.7rem; }

/* Event log */
.rd-events-head[b-wqri4aermc] { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.rd-chain[b-wqri4aermc] { font-size: 0.78rem; font-weight: 700; }
.rd-chain-ok[b-wqri4aermc] { color: #15803d; }
.rd-chain-broken[b-wqri4aermc] { color: #b91c1c; }
.rd-events[b-wqri4aermc] { width: 100%; border-collapse: collapse; margin-top: 0.5rem; }
.rd-events th[b-wqri4aermc] { text-align: left; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); font-weight: 600; padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--color-border); }
.rd-events td[b-wqri4aermc] { padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--color-border); font-size: 0.84rem; vertical-align: top; }
.rd-events tbody tr:last-child td[b-wqri4aermc] { border-bottom: 0; }
.rd-detail[b-wqri4aermc] { word-break: break-word; }

/* Chips */
.rd-chip[b-wqri4aermc] { display: inline-block; vertical-align: middle; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.12rem 0.55rem; border-radius: 999px; white-space: nowrap; }
h1 .rd-chip[b-wqri4aermc] { margin-left: 0.6rem; }
.rd-chip-ok[b-wqri4aermc] { background: #dcfce7; color: #15803d; }
.rd-chip-warn[b-wqri4aermc] { background: #fef3c7; color: #b45309; }
.rd-chip-bad[b-wqri4aermc] { background: #fee2e2; color: #b91c1c; }
.rd-chip-running[b-wqri4aermc] { background: #e0f2fe; color: #0369a1; }
.rd-chip-muted[b-wqri4aermc] { background: #f1f5f9; color: #64748b; }
.rd-chip-released[b-wqri4aermc] { background: #dcfce7; color: #15803d; }
.rd-chip-event[b-wqri4aermc] { background: #eef2f7; color: #475569; }

/* ── Test-run artefact preview (#637) ────────────────────────────────────────── */
.rd-artefact-pre[b-wqri4aermc] {
    flex-basis: 100%; margin: 0.35rem 0 0; padding: 0.5rem 0.6rem; max-height: 14rem; overflow: auto;
    background: #f8fafc; border: 1px solid var(--border, #e3e7ee); border-radius: var(--radius);
    font-size: 0.72rem; line-height: 1.45; white-space: pre;
}
/* /Components/Pages/Flow/FlowRuns.razor.rz.scp.css */
.fr-empty[b-heyvmg636x] { border: 1px dashed var(--color-border); border-radius: var(--radius); padding: 1rem 1.25rem; background: #fafcff; }

.fr-table[b-heyvmg636x] { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-card); overflow: hidden; }
.fr-table th[b-heyvmg636x] { text-align: left; font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); font-weight: 600; padding: 0.6rem 0.9rem; border-bottom: 1px solid var(--color-border); background: #f9fafb; }
.fr-table td[b-heyvmg636x] { padding: 0.65rem 0.9rem; border-bottom: 1px solid var(--color-border); font-size: 0.86rem; vertical-align: middle; }
.fr-table tbody tr:last-child td[b-heyvmg636x] { border-bottom: 0; }
.fr-table tbody tr:hover[b-heyvmg636x] { background: #fafcff; }

.fr-runlink[b-heyvmg636x] { font-family: var(--font-mono, ui-monospace, monospace); font-size: 0.82rem; color: var(--color-brand, #074684); text-decoration: none; font-weight: 600; }
.fr-runlink:hover[b-heyvmg636x] { text-decoration: underline; }

.fr-flow[b-heyvmg636x] { font-weight: 600; }
.fr-version[b-heyvmg636x] { font-weight: 400; color: var(--color-text-secondary); font-size: 0.8rem; margin-left: 0.2rem; }
.fr-hash[b-heyvmg636x] { display: block; font-family: var(--font-mono, ui-monospace, monospace); font-size: 0.72rem; color: var(--color-text-secondary); }
.fr-meta[b-heyvmg636x] { color: var(--color-text-secondary); font-size: 0.8rem; white-space: nowrap; }

.fr-chip[b-heyvmg636x] { display: inline-block; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.12rem 0.55rem; border-radius: 999px; white-space: nowrap; }
.fr-chip-ok[b-heyvmg636x] { background: #dcfce7; color: #15803d; }
.fr-chip-warn[b-heyvmg636x] { background: #fef3c7; color: #b45309; }
.fr-chip-bad[b-heyvmg636x] { background: #fee2e2; color: #b91c1c; }
.fr-chip-running[b-heyvmg636x] { background: #e0f2fe; color: #0369a1; }
.fr-chip-muted[b-heyvmg636x] { background: #f1f5f9; color: #64748b; }
.fr-chip-released[b-heyvmg636x] { background: #dcfce7; color: #15803d; }

/* ── Show-test-runs toggle (#637) ────────────────────────────────────────────── */
.fr-show-tests[b-heyvmg636x] {
    display: inline-flex; align-items: center; gap: 0.4rem;
    font-size: 0.8rem; color: var(--color-text-secondary); cursor: pointer; user-select: none;
}
/* /Components/Pages/Flow/FlowStudioHome.razor.rz.scp.css */
.fh-section[b-jri5dyvp9v] { margin-top: 1.5rem; }
.fh-section h2[b-jri5dyvp9v] { font-family: var(--font-title, 'Roboto', sans-serif); font-size: 1.1rem; margin: 0; }
.fh-sub[b-jri5dyvp9v] { margin: 0.2rem 0 0.85rem; font-size: 0.85rem; }
.fh-empty[b-jri5dyvp9v] { border: 1px dashed var(--color-border); border-radius: var(--radius); padding: 1rem 1.25rem; background: #fafcff; }

/* Template cards — the JournalHome gallery card style. */
.fh-grid[b-jri5dyvp9v] { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.fh-card[b-jri5dyvp9v] {
    position: relative;
    display: block;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: #fff;
    padding: 1.1rem 1.25rem;
    box-shadow: var(--shadow-card);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.05s;
}
.fh-card:hover[b-jri5dyvp9v] { border-color: var(--color-brand-teal); box-shadow: var(--shadow-card-hover, 0 10px 26px rgba(15, 23, 42, 0.14)); }
.fh-card h3[b-jri5dyvp9v] { margin: 0.45rem 0 0.3rem; font-size: 0.98rem; }
.fh-card p[b-jri5dyvp9v] { margin: 0; font-size: 0.85rem; }

.fh-badge[b-jri5dyvp9v] { display: inline-block; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.1rem 0.5rem; border-radius: 999px; background: #e0f2fe; color: #0369a1; }

/* Template-card chips — at-a-glance sources + outputs the template scaffolds. */
.fh-card-chips[b-jri5dyvp9v] { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.65rem; }
.fh-tag[b-jri5dyvp9v] { display: inline-block; font-size: 0.72rem; padding: 0.12rem 0.5rem; border-radius: 999px; background: #eef2f7; color: #334155; border: 1px solid var(--color-border); }
.fh-tag-out[b-jri5dyvp9v] { background: #ecfeff; color: #0e7490; border-color: #cffafe; }

/* Flow family choice cards — equally-weighted, one per family; the grid auto-fills so a third family
   (e.g. Data flow) slots in without a layout change. */
.fh-family-grid[b-jri5dyvp9v] { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); max-width: 48rem; }
.fh-family-card h3[b-jri5dyvp9v] { font-size: 1.05rem; }
.fh-family-card p[b-jri5dyvp9v] { font-size: 0.86rem; }
.fh-badge-journal[b-jri5dyvp9v] { background: #fef3c7; color: #b45309; }
.fh-badge-recon[b-jri5dyvp9v] { background: #ecfeff; color: #0e7490; }
.fh-badge-data[b-jri5dyvp9v] { background: #ede9fe; color: #6d28d9; }

/* Flow list */
.fh-table[b-jri5dyvp9v] { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-card); }  /* no overflow:hidden: it would clip the row "⋯" menu */
.fh-table th[b-jri5dyvp9v] { text-align: left; font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); font-weight: 600; padding: 0.6rem 0.9rem; border-bottom: 1px solid var(--color-border); background: #f9fafb; }
.fh-table td[b-jri5dyvp9v] { padding: 0.65rem 0.9rem; border-bottom: 1px solid var(--color-border); font-size: 0.86rem; vertical-align: middle; }
.fh-table tbody tr:last-child td[b-jri5dyvp9v] { border-bottom: 0; }
.fh-table tbody tr:hover[b-jri5dyvp9v] { background: #fafcff; }
.fh-name[b-jri5dyvp9v] { font-weight: 600; }

/* Flow id — the handle external callers pass to the invoke API; click copies. */
.fh-idcell[b-jri5dyvp9v] { white-space: nowrap; }
.fh-id[b-jri5dyvp9v] {
    border: 0; background: transparent; padding: 0; cursor: pointer;
    font-size: 0.78rem; color: var(--color-text-secondary, #64748b);
}
.fh-id code[b-jri5dyvp9v] { font-size: inherit; color: inherit; background: none; }
.fh-id:hover[b-jri5dyvp9v] { color: var(--color-brand, #074684); text-decoration: underline; }
.fh-meta[b-jri5dyvp9v] { color: var(--color-text-secondary); font-size: 0.8rem; white-space: nowrap; }
.fh-actions[b-jri5dyvp9v] { text-align: right; white-space: nowrap; width: 1%; }
.fh-actions > :not(:first-child):not(.modal-backdrop)[b-jri5dyvp9v] { margin-left: 0.5rem; }

.fh-chip[b-jri5dyvp9v] { display: inline-block; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 0.12rem 0.55rem; border-radius: 999px; white-space: nowrap; }
.fh-chip-family[b-jri5dyvp9v] { background: #eef2f7; color: #475569; }
.fh-chip-draft[b-jri5dyvp9v] { background: #f1f5f9; color: #64748b; }
.fh-chip-published[b-jri5dyvp9v] { background: #dcfce7; color: #15803d; }
.fh-chip-journal[b-jri5dyvp9v] { background: #fef3c7; color: #b45309; }

.fh-confirm[b-jri5dyvp9v] { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; }
.fh-confirm-yes[b-jri5dyvp9v] { border: none; background: #b91c1c; color: #fff; border-radius: 5px; padding: 0.2rem 0.55rem; font-weight: 600; cursor: pointer; }
.fh-confirm-no[b-jri5dyvp9v] { border: 1px solid var(--color-border); background: #fff; border-radius: 5px; padding: 0.2rem 0.55rem; cursor: pointer; }

.visually-hidden[b-jri5dyvp9v] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
/* /Components/Pages/Flow/FlowTemplates.razor.rz.scp.css */
/* ── Small pills (family cell + rich source type) — scoped so the muted pill reads the same on this page. ── */
.pill[b-o1xp0xndqv] { display: inline-block; font-size: 0.7rem; font-weight: 600; padding: 0.1rem 0.5rem; border-radius: 999px; white-space: nowrap; }
.pill-muted[b-o1xp0xndqv] { background: #eef2f7; color: #475569; }

/* "Built from a flow" indicator — a subtle badge on templates that carry a designer-built rich shape. */
.ft-built-badge[b-o1xp0xndqv] { display: inline-block; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
    padding: 0.1rem 0.45rem; border-radius: 999px; background: #e0f2fe; color: #0369a1; white-space: nowrap; }

/* ── Source-name rows ───────────────────────────────────────────────────────── */
.ft-rows[b-o1xp0xndqv] { display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 0.5rem; }
.ft-row[b-o1xp0xndqv] { display: flex; align-items: center; gap: 0.4rem; }
.ft-row .form-control[b-o1xp0xndqv] { flex: 1; }

/* ── Rich "What this template scaffolds" summary ─────────────────────────────── */
.ft-scaffold[b-o1xp0xndqv] { border: 1px solid var(--color-border); border-radius: var(--radius); background: #fcfdff;
    padding: 0.75rem 0.85rem; display: flex; flex-direction: column; gap: 0.85rem; margin-bottom: 0.6rem; }
.ft-scaffold-group[b-o1xp0xndqv] { display: flex; flex-direction: column; gap: 0.4rem; }
.ft-scaffold-label[b-o1xp0xndqv] { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); }
.ft-src-list[b-o1xp0xndqv] { display: flex; flex-direction: column; gap: 0.4rem; }
.ft-src[b-o1xp0xndqv] { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.ft-src-name[b-o1xp0xndqv] { flex: 0 1 16rem; }
.ft-src-binding[b-o1xp0xndqv] { font-size: 0.8rem; }
.ft-chips[b-o1xp0xndqv] { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.ft-chip-static[b-o1xp0xndqv] { display: inline-block; font-size: 0.76rem; padding: 0.15rem 0.55rem; border-radius: 999px;
    background: #eef2f7; color: #334155; border: 1px solid var(--color-border); }
.ft-chip-out[b-o1xp0xndqv] { background: #ecfeff; color: #0e7490; border-color: #cffafe; }
.ft-open-designer[b-o1xp0xndqv] { align-self: flex-start; margin-top: 0.25rem; }

/* ── Parameter rows ─────────────────────────────────────────────────────────── */
.ft-param-row[b-o1xp0xndqv] { display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; gap: 0.4rem; align-items: center; margin-bottom: 0.4rem; }

/* ── Posting rule editor — mirrors FlowDesigner.razor.css's rule editor so both surfaces read as one system. ── */
.fs-check[b-o1xp0xndqv] { display: flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; }
.fs-chip[b-o1xp0xndqv] { border: 1px dashed #cbd5e1; background: #fff; border-radius: 999px; padding: 0.25rem 0.6rem; font-size: 0.76rem; cursor: pointer; color: var(--color-text-secondary); }
.fs-chip:hover[b-o1xp0xndqv] { border-color: var(--color-brand-teal); color: var(--color-brand); }
.fs-chip-sm[b-o1xp0xndqv] { padding: 0.1rem 0.5rem; font-size: 0.72rem; align-self: flex-start; }
.fs-x[b-o1xp0xndqv] { border: 0; background: transparent; color: var(--color-text-secondary); cursor: pointer; font-size: 0.85rem; }
.fs-x:hover[b-o1xp0xndqv] { color: var(--color-down, #dc2626); }
.fs-step-moves[b-o1xp0xndqv] { display: inline-flex; align-items: center; gap: 0.1rem; flex-shrink: 0; }
.fs-step-moves .fs-x[b-o1xp0xndqv] { font-size: 0.9rem; padding: 0.1rem 0.25rem; line-height: 1; }
.fs-step-moves .fs-x:disabled[b-o1xp0xndqv] { opacity: 0.3; cursor: default; }

.fs-rule[b-o1xp0xndqv] { border: 1px solid var(--color-border); border-radius: var(--radius); padding: 0.55rem 0.6rem; background: #fcfdff;
    display: flex; flex-direction: column; gap: 0.4rem; margin-bottom: 0.6rem; }
.fs-rule-head[b-o1xp0xndqv] { display: flex; align-items: center; gap: 0.4rem; }
.fs-rule-when[b-o1xp0xndqv] { flex: 1; min-width: 0; padding: 0.35rem 0.45rem; border: 1px solid var(--color-border); border-radius: var(--radius);
    font-size: 0.82rem; font-family: var(--font-mono, ui-monospace, monospace); }
.fs-rule-line[b-o1xp0xndqv] { display: flex; align-items: center; gap: 0.35rem; }
.fs-rule-line input[b-o1xp0xndqv], .fs-rule-line select[b-o1xp0xndqv] { padding: 0.3rem 0.4rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.8rem; min-width: 0; }
.fs-rule-acct[b-o1xp0xndqv] { flex: 1 1 6rem; }
.fs-rule-side[b-o1xp0xndqv] { flex: 0 0 5.5rem; background: #fff; }
.fs-rule-amt[b-o1xp0xndqv] { flex: 1 1 7rem; font-family: var(--font-mono, ui-monospace, monospace); }
/* /Components/Pages/FormPdfDesigner.razor.rz.scp.css */
.fpd-layout[b-o59l1luysi] {
    display: grid;
    /* Full-width page (#561): fixed, readable side panels; the canvas takes the rest. */
    grid-template-columns: 300px minmax(0, 1fr) 360px;
    gap: 1rem;
    align-items: start;
}

.fpd-rail[b-o59l1luysi],
.fpd-inspector[b-o59l1luysi] {
    background: white;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 0.9rem;
    position: sticky;
    top: 1rem;
    max-height: 85vh;
    overflow: auto;
}

.fpd-rail-head[b-o59l1luysi] {
    font-weight: 600;
    color: #0f172a;
    margin-bottom: 0.35rem;
}

/* Entity picker sits on its own line under the rail title so long entity names stay readable. */
.fpd-entity-context[b-o59l1luysi] {
    display: block;
    font-weight: 400;
    font-size: 0.8rem;
    color: #64748b;
    margin-bottom: 0.5rem;
}

.fpd-entity-context > span[b-o59l1luysi] {
    display: block;
    margin-bottom: 0.2rem;
}

.fpd-entity-context select[b-o59l1luysi],
.fpd-entity-context input[b-o59l1luysi] {
    display: block;
    width: 100%;
}

.fpd-section[b-o59l1luysi] { margin-top: 0.75rem; }

.fpd-section-name[b-o59l1luysi] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.fpd-chip-wrap[b-o59l1luysi] { display: flex; flex-wrap: wrap; gap: 0.35rem; }

.fpd-chip[b-o59l1luysi] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.55rem;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #f8fafc;
    font: inherit;
    font-size: 0.8rem;
    text-align: left;
    color: #0f172a;
    cursor: grab;
    user-select: none;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fpd-chip:focus-visible[b-o59l1luysi] {
    outline: 2px solid #0284c7;
    outline-offset: 1px;
}

.fpd-chip:active[b-o59l1luysi] { cursor: grabbing; }
.fpd-chip:hover[b-o59l1luysi] { border-color: #0284c7; background: #f0f9ff; }

.fpd-chip-glyph[b-o59l1luysi] {
    color: #0284c7;
    font-size: 0.75rem;
    width: 1rem;
    text-align: center;
    flex: none;
}

.fpd-chip-constant[b-o59l1luysi] { border-style: dashed; }

.fpd-chip-variable[b-o59l1luysi] {
    border-style: dashed;
    background: #fdf4ff;
    border-color: #d8b4fe;
}

.fpd-chip-variable:hover[b-o59l1luysi] { border-color: #a855f7; background: #faf5ff; }
.fpd-chip-variable .fpd-chip-glyph[b-o59l1luysi] { color: #9333ea; }

/* Table column editor — two aligned lines per column, action buttons grouped right (#558). */
.fpd-table-column[b-o59l1luysi] {
    border-bottom: 1px solid #f1f5f9;
    padding-bottom: 0.45rem;
    margin-bottom: 0.45rem;
}

.fpd-column-line[b-o59l1luysi] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
}

.fpd-column-line + .fpd-column-line[b-o59l1luysi] { margin-top: 0.3rem; }

.fpd-column-line .form-input[b-o59l1luysi],
.fpd-column-line .form-select[b-o59l1luysi] { flex: 1; min-width: 0; }

.fpd-column-line .fpd-column-width[b-o59l1luysi] { flex: 0 0 4.5rem; }
.fpd-column-line .fpd-column-align[b-o59l1luysi] { flex: 0 1 6rem; }
.fpd-column-line .fpd-column-fit[b-o59l1luysi] { flex: 0 1 8.5rem; }

.fpd-column-actions[b-o59l1luysi] {
    margin-left: auto;
    display: inline-flex;
    gap: 2px;
    flex: none;
}

/* Per-column value formatting (#740) — kind select plus its contextual input on one line. The
   mask (#820) is the only number control, so it takes the room the decimals/1,000s pair left. */
.fpd-column-line .fpd-column-format[b-o59l1luysi] { flex: 0 1 7rem; }
.fpd-column-line .fpd-column-mask[b-o59l1luysi] { flex: 1 1 9rem; }

/* Per-column value map (#896) — collapsed by default, so an ordinary column looks untouched. */
.fpd-column-map[b-o59l1luysi] {
    margin-top: 0.35rem;
    border-top: 1px dashed #e2e8f0;
    padding-top: 0.35rem;
}

.fpd-column-map > summary[b-o59l1luysi] {
    font-size: 0.8rem;
    color: #475569;
    cursor: pointer;
    list-style: revert;
}

.fpd-column-map > summary:hover[b-o59l1luysi] { color: #0284c7; }

.fpd-column-map-rule[b-o59l1luysi] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
    margin: 0.3rem 0;
}

.fpd-column-map-rule .form-select[b-o59l1luysi] { flex: 0 1 8.5rem; min-width: 0; }
.fpd-column-map-rule .fpd-column-map-value[b-o59l1luysi] { flex: 1 1 4rem; min-width: 0; }
.fpd-column-map-rule .fpd-column-map-display[b-o59l1luysi] { flex: 1 1 4rem; min-width: 0; }

.fpd-column-map-arrow[b-o59l1luysi] {
    flex: none;
    color: #94a3b8;
    font-size: 0.85rem;
}

/* Per-column blank default (#821) — label sized to its text so the input keeps the rest. */
.fpd-column-blank-label[b-o59l1luysi] {
    flex: 0 0 auto;
    font-size: 0.8rem;
    color: #475569;
    white-space: nowrap;
}

/* Per-column hide-repeats toggle (#865) — a plain checkbox line, not stretched like an input. */
.fpd-column-repeats label[b-o59l1luysi] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: #475569;
}

.fpd-column-format-example[b-o59l1luysi] {
    margin: 0.25rem 0 0;
    font-size: 0.78rem;
}

/* Repeating-group table chips — teal, matching the table zones on the canvas. */
.fpd-chip-table[b-o59l1luysi] {
    background: #f0fdfa;
    border-color: #99f6e4;
}

.fpd-chip-table:hover[b-o59l1luysi] { border-color: #0d9488; background: #ccfbf1; }
.fpd-chip-table .fpd-chip-glyph[b-o59l1luysi] { color: #0d9488; }

/* Virtual-field chips — amber, matching the definition editor card. */
.fpd-vf-chip-group[b-o59l1luysi] { display: inline-flex; align-items: stretch; gap: 2px; }

.fpd-chip-virtual[b-o59l1luysi] {
    background: #fffbeb;
    border-color: #fcd34d;
}

.fpd-chip-virtual:hover[b-o59l1luysi] { border-color: #d97706; background: #fef3c7; }
.fpd-chip-virtual .fpd-chip-glyph[b-o59l1luysi] { color: #d97706; font-style: italic; }

.fpd-vf-edit[b-o59l1luysi] {
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: white;
    color: #64748b;
    font-size: 0.7rem;
    padding: 0 0.3rem;
    cursor: pointer;
}

.fpd-vf-edit:hover[b-o59l1luysi] { border-color: #d97706; color: #d97706; }

.fpd-centre[b-o59l1luysi] { min-width: 0; }

.fpd-toolbar[b-o59l1luysi] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
    gap: 1rem;
}

.fpd-toolbar-group[b-o59l1luysi] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: #334155;
}

.fpd-preview[b-o59l1luysi] {
    margin-top: 1.25rem;
    padding: 1.1rem 1.25rem 1.25rem;
}

.fpd-preview-frame[b-o59l1luysi] {
    width: 100%;
    height: 65vh;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    margin-top: 1rem;
    background: white;
}

.fpd-trace[b-o59l1luysi] { margin-top: 0.75rem; font-size: 0.85rem; }

.fpd-trace summary[b-o59l1luysi] {
    cursor: pointer;
    color: #334155;
    font-weight: 600;
    padding: 0.25rem 0;
}

.fpd-trace-table[b-o59l1luysi] { margin-top: 0.5rem; width: 100%; }

.fpd-trace-empty[b-o59l1luysi] { color: #94a3b8; font-style: italic; }

.fpd-trace-note[b-o59l1luysi] { color: #94a3b8; }

.fpd-field-nav[b-o59l1luysi] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #f1f5f9;
}

.fpd-field-nav select[b-o59l1luysi] { flex: 1; min-width: 0; }

.fpd-field-nav-all[b-o59l1luysi] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.78rem;
    color: #64748b;
    white-space: nowrap;
}

.fpd-source-label[b-o59l1luysi] {
    font-size: 0.85rem;
    color: #334155;
    margin: 0.25rem 0 0.75rem;
}

.fpd-inspector-row[b-o59l1luysi] { display: block; margin-bottom: 0.6rem; font-size: 0.85rem; }

.fpd-inspector-section[b-o59l1luysi] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    font-weight: 600;
    margin: 0.9rem 0 0.4rem;
    border-top: 1px solid #f1f5f9;
    padding-top: 0.6rem;
}

.fpd-inspector-inline[b-o59l1luysi] {
    display: flex;
    gap: 1rem;
    font-size: 0.85rem;
    margin-bottom: 0.5rem;
}

.fpd-inspector-inline label[b-o59l1luysi] { display: flex; align-items: center; gap: 0.3rem; }

.fpd-align-grid[b-o59l1luysi] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.4rem;
}

.fpd-colour-row[b-o59l1luysi] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
}

.fpd-colour-row > span:first-child[b-o59l1luysi] { width: 3rem; color: #334155; }

.fpd-colour-row input[type="color"][b-o59l1luysi] {
    width: 2.6rem;
    height: 1.6rem;
    padding: 0;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    background: none;
    cursor: pointer;
}

.fpd-colour-clear[b-o59l1luysi] {
    border: none;
    background: none;
    color: #64748b;
    font-size: 1rem;
    cursor: pointer;
    padding: 0 0.25rem;
}

.fpd-colour-clear:hover[b-o59l1luysi] { color: #dc2626; }

.fpd-format-picks[b-o59l1luysi] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin: 0.3rem 0 0.4rem;
}

.fpd-format-pick[b-o59l1luysi] {
    font-size: 0.72rem;
    padding: 0.15rem 0.5rem;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #f8fafc;
    color: #334155;
    cursor: pointer;
}

.fpd-format-pick:hover[b-o59l1luysi] { border-color: #0284c7; background: #f0f9ff; }

.fpd-format-pick.is-active[b-o59l1luysi] {
    border-color: #0284c7;
    background: #e0f2fe;
    color: #075985;
}

.fpd-inspector-grid[b-o59l1luysi] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    font-size: 0.85rem;
}

.fpd-inspector-grid input[b-o59l1luysi] { width: 100%; }

@media (max-width: 1200px) {
    .fpd-layout[b-o59l1luysi] { grid-template-columns: 220px minmax(0, 1fr); }
    .fpd-inspector[b-o59l1luysi] { grid-column: 1 / -1; position: static; max-height: none; }
}

/* Continuation role pages (#506) */
.fpd-page-label-cont[b-o59l1luysi] { color: #0d9488; font-weight: 600; }
.fpd-warn-hint[b-o59l1luysi] { color: #b45309; }
.fpd-continuation[b-o59l1luysi] { margin-top: 0.9rem; }

/* Template thumbnails (#506) — used by the Layout tab's slot cards. */
.fpd-strip-thumb[b-o59l1luysi] {
    width: 56px;
    height: 74px;
    object-fit: contain;
    background: #f8fafc;
    border-radius: 2px;
    border: 1px solid #e2e8f0;
}

.fpd-strip-thumb-empty[b-o59l1luysi] {
    background: repeating-linear-gradient(45deg, #f1f5f9, #f1f5f9 6px, #e2e8f0 6px, #e2e8f0 12px);
}

/* Tabbed inspector (#506 UX) */
.fpd-inspector-tabs[b-o59l1luysi] {
    display: flex;
    gap: 2px;
    background: #f1f5f9;
    border-radius: 8px;
    padding: 3px;
    margin-bottom: 0.75rem;
}

.fpd-tab[b-o59l1luysi] {
    flex: 1;
    border: none;
    background: transparent;
    border-radius: 6px;
    padding: 0.35rem 0.4rem;
    font-size: 0.8rem;
    color: #475569;
    cursor: pointer;
    white-space: nowrap;
}

.fpd-tab:hover[b-o59l1luysi] { color: #0f172a; }

.fpd-tab.is-active[b-o59l1luysi] {
    background: white;
    color: #0f172a;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
}

/* Layout slot cards (#506 UX) — one stationery card per page slot. */
.fpd-slot-card[b-o59l1luysi] {
    display: flex;
    gap: 0.6rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 0.6rem;
    margin-top: 0.6rem;
    align-items: flex-start;
}

.fpd-slot-thumb[b-o59l1luysi] { flex: none; cursor: pointer; }
.fpd-slot-thumb:hover[b-o59l1luysi] { opacity: 0.85; }
.fpd-slot-body[b-o59l1luysi] { flex: 1; min-width: 0; }
.fpd-slot-head[b-o59l1luysi] { font-weight: 600; font-size: 0.85rem; color: #0f172a; margin-bottom: 0.25rem; }

.fpd-slot-file[b-o59l1luysi] {
    font-size: 0.75rem;
    color: #475569;
    margin-bottom: 0.35rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Floating role hint (#506 UX) — overlays the canvas so the page never shifts. */
.fpd-canvas-wrap[b-o59l1luysi] { position: relative; }

.fpd-role-float[b-o59l1luysi] {
    position: absolute;
    top: 0.6rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    max-width: min(85%, 640px);
    background: rgba(240, 253, 250, 0.94);
    border: 1px solid #99f6e4;
    color: #0f766e;
    border-radius: 999px;
    padding: 0.3rem 0.9rem;
    font-size: 0.78rem;
    line-height: 1.25;
    text-align: center;
    pointer-events: none;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.10);
}
/* /Components/Pages/FraudPacks.razor.rz.scp.css */
/* #1183: fraud packs. Each pack is a padded card; its entries are a clear list with a disclosure each. */

.fp-section[b-gmq9rh5qu5] {
    margin-top: 1.75rem;
}

.fp-pack[b-gmq9rh5qu5] {
    margin-bottom: 1rem;
}

.fp-pack:focus[b-gmq9rh5qu5] {
    outline: 2px solid var(--color-primary, #1d4ed8);
    outline-offset: 2px;
}

/* The pack a link pointed at with ?pack=. */
.fp-pack.is-target[b-gmq9rh5qu5] {
    border-color: var(--color-primary, #1d4ed8);
    box-shadow: 0 0 0 2px rgba(29, 78, 216, 0.15);
}

.fp-pack-body[b-gmq9rh5qu5] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1.25rem 1.5rem;
}

.fp-pack-head[b-gmq9rh5qu5] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.fp-pack-title[b-gmq9rh5qu5] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
}

.fp-pack-name[b-gmq9rh5qu5] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.fp-pack-meta[b-gmq9rh5qu5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.4rem;
}

.fp-key[b-gmq9rh5qu5] {
    font-size: 0.75rem;
    color: var(--color-text-secondary, #475569);
    margin-left: 0.25rem;
}

.fp-pack-actions[b-gmq9rh5qu5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    flex: 0 0 auto;
}

.fp-pack-desc[b-gmq9rh5qu5] {
    margin: 0;
    color: var(--color-text-secondary, #475569);
    line-height: 1.5;
    max-width: 72ch;
}

.fp-muted[b-gmq9rh5qu5] {
    color: var(--color-text-secondary, #475569);
    margin: 0;
}

.fp-hint[b-gmq9rh5qu5] {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #475569);
}

/* ── Entries ─────────────────────────────────────────────────────────── */
.fp-entries[b-gmq9rh5qu5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.fp-entry[b-gmq9rh5qu5] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface, #fff);
    padding: 0.8rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.fp-entry.is-off[b-gmq9rh5qu5] {
    background: var(--color-surface-alt, #f8fafc);
}

.fp-entry-head[b-gmq9rh5qu5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.fp-entry-title[b-gmq9rh5qu5] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.6rem;
    min-width: 0;
}

.fp-entry-kind[b-gmq9rh5qu5] {
    font-size: 0.8125rem;
}

.fp-entry-pills[b-gmq9rh5qu5] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.fp-entry-desc[b-gmq9rh5qu5],
.fp-entry-severity[b-gmq9rh5qu5] {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--color-text-secondary, #475569);
}

.fp-how summary[b-gmq9rh5qu5] {
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-brand, #0f172a);
    width: fit-content;
}

.fp-how summary:focus-visible[b-gmq9rh5qu5] {
    outline: 2px solid var(--color-brand, #0f172a);
    outline-offset: 2px;
    border-radius: 3px;
}

.fp-how-text[b-gmq9rh5qu5] {
    margin: 0.5rem 0 0;
    line-height: 1.5;
    font-size: 0.875rem;
    max-width: 80ch;
}

.fp-settings[b-gmq9rh5qu5] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.35rem 1.25rem;
    margin: 0.6rem 0 0;
    font-size: 0.875rem;
}

.fp-settings dt[b-gmq9rh5qu5] {
    color: var(--color-text-secondary, #475569);
}

.fp-settings dd[b-gmq9rh5qu5] {
    margin: 0;
    min-width: 0;
}

.fp-pattern[b-gmq9rh5qu5] {
    margin: 0;
    padding: 0.4rem 0.6rem;
    background: var(--color-surface-alt, #f8fafc);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 6px;
    white-space: pre-wrap;
    word-break: break-all;
    font-size: 0.8125rem;
}

.fp-tryit[b-gmq9rh5qu5] {
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 1rem;
}

/* ── Editor ──────────────────────────────────────────────────────────── */
.fp-grid[b-gmq9rh5qu5] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: 0.75rem 1rem;
    align-items: start;
    margin-top: 0.75rem;
}

.fp-grid .form-row[b-gmq9rh5qu5] {
    max-width: none;
}

.fp-grid .form-row-wide[b-gmq9rh5qu5] {
    grid-column: 1 / -1;
}

.fp-editor-subheading[b-gmq9rh5qu5] {
    margin: 1.5rem 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 600;
}

.fp-entry-editor[b-gmq9rh5qu5] {
    margin: 0.75rem 0;
    padding: 0.9rem 1.1rem 1rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.fp-entry-editor legend[b-gmq9rh5qu5] {
    padding: 0 0.4rem;
    font-size: 0.875rem;
    font-weight: 600;
}

.fp-kind-settings[b-gmq9rh5qu5] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--color-border, #e2e8f0);
}

.fp-grid.fp-kind-settings[b-gmq9rh5qu5] {
    display: grid;
    margin-top: 0;
}

.fp-check-group[b-gmq9rh5qu5] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 14rem;
    flex: 1 1 18rem;
}

.fp-field-label[b-gmq9rh5qu5] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-secondary, #475569);
}

.fp-check[b-gmq9rh5qu5] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 400 !important;
    font-size: 0.875rem;
    color: var(--color-text-primary, #0f172a) !important;
}

.fp-pattern-row[b-gmq9rh5qu5] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.25rem 0.5rem;
    align-items: center;
    max-width: 36rem;
}

.fp-field-problem[b-gmq9rh5qu5] {
    grid-column: 1 / -1;
    margin: 0;
    font-size: 0.8125rem;
    color: #b91c1c;
}

.fp-other-settings[b-gmq9rh5qu5] {
    padding-top: 0.5rem;
}

.fp-editor-actions[b-gmq9rh5qu5] {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

@media (max-width: 720px) {
    .fp-settings[b-gmq9rh5qu5] {
        grid-template-columns: minmax(0, 1fr);
    }

    .fp-pack-body[b-gmq9rh5qu5] {
        padding: 1rem;
    }
}
/* /Components/Pages/GovernanceAlerts.razor.rz.scp.css */
.gov-alerts[b-kpulzhg3l2] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.gov-alerts__tabs[b-kpulzhg3l2] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid var(--border-color, #e2e8f0);
}

.gov-alerts__tab[b-kpulzhg3l2] {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.6rem 1rem;
    font: inherit;
    color: var(--text-muted, #64748b);
    cursor: pointer;
}

.gov-alerts__tab.is-active[b-kpulzhg3l2] {
    color: var(--text-primary, #0f172a);
    border-bottom-color: var(--accent, #2563eb);
    font-weight: 600;
}

.gov-alerts__filters[b-kpulzhg3l2] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 1rem;
}

.gov-alerts__field[b-kpulzhg3l2] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 14rem;
    margin-bottom: 1rem;
}

.gov-alerts__filters .gov-alerts__field[b-kpulzhg3l2] {
    margin-bottom: 0;
}

.gov-alerts__count[b-kpulzhg3l2] {
    margin: 0 0 0.4rem auto;
}

.gov-alerts__when[b-kpulzhg3l2] {
    white-space: nowrap;
}

.gov-alerts__title[b-kpulzhg3l2] {
    font-weight: 600;
}

.gov-alerts__severity[b-kpulzhg3l2] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    background: #e2e8f0;
    color: #334155;
}

.gov-alerts__severity--warning[b-kpulzhg3l2] {
    background: #fef3c7;
    color: #92400e;
}

.gov-alerts__severity--critical[b-kpulzhg3l2] {
    background: #fee2e2;
    color: #991b1b;
}

.gov-alerts__actions[b-kpulzhg3l2] {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
}
/* /Components/Pages/GovernanceChanges.razor.rz.scp.css */
/* #1185: change requests page. */
.gcr-facts[b-ti8u0lcacp] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.35rem 1.25rem;
    margin: 0.75rem 0 0;
}

.gcr-facts dt[b-ti8u0lcacp] {
    font-weight: 600;
    color: var(--text-muted, #5b6472);
}

.gcr-facts dd[b-ti8u0lcacp] {
    margin: 0;
}

.gcr-actions[b-ti8u0lcacp] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

.gcr-filters[b-ti8u0lcacp] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-end;
    margin-bottom: 0.75rem;
}

.gcr-filters .form-row[b-ti8u0lcacp] {
    margin-bottom: 0;
}
/* /Components/Pages/GovernanceHub.razor.rz.scp.css */
/* Governance hub — grouped drill cards. Mirrors the Admin hub / dashboard
   drill-card look so the governance area feels of a piece with the rest of the
   product. */

.hub-group[b-hlb68rvw3f] {
    margin-bottom: 2rem;
}

.hub-group-title[b-hlb68rvw3f] {
    font-family: var(--font-subtitle);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin: 0 0 0.75rem;
}

.hub-grid[b-hlb68rvw3f] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

@media (max-width: 1100px) {
    .hub-grid[b-hlb68rvw3f] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .hub-grid[b-hlb68rvw3f] { grid-template-columns: 1fr; }
}

.hub-card[b-hlb68rvw3f] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.9rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    transition: border-color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.hub-card:hover[b-hlb68rvw3f] {
    border-color: var(--color-brand-teal);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(7, 70, 132, 0.08);
}

.hub-card-icon[b-hlb68rvw3f] {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(14, 165, 198, 0.1);
    color: var(--color-brand);
}

.hub-card-icon svg[b-hlb68rvw3f] {
    width: 18px;
    height: 18px;
}

.hub-card-body[b-hlb68rvw3f] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.hub-card-title[b-hlb68rvw3f] {
    font-family: var(--font-subtitle);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.hub-card-meta[b-hlb68rvw3f] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    line-height: 1.35;
}

/* #1188: the posture heading row. */
.gov-posture-head[b-hlb68rvw3f] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.gov-posture-link[b-hlb68rvw3f] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--color-brand);
}
/* /Components/Pages/GovernancePosturePage.razor.rz.scp.css */
/* #1188: the governance posture page. */

.gp-asof[b-utepy368x5] {
    font-size: 0.82rem;
    margin: 0 0 1rem;
}

.gp-section[b-utepy368x5] {
    margin-bottom: 2rem;
}

.gp-heading[b-utepy368x5] {
    font-family: var(--font-subtitle);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 0 0 0.35rem;
}

.gp-subheading[b-utepy368x5] {
    font-family: var(--font-subtitle);
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 1rem 0 0.5rem;
}

.gp-lead[b-utepy368x5] {
    font-size: 0.86rem;
    color: var(--color-text-secondary);
    margin: 0 0 0.85rem;
    max-width: 70ch;
}

.gp-matrix-card[b-utepy368x5] {
    overflow-x: auto;
    padding: 0;
}

.gp-matrix th[scope="row"][b-utepy368x5] {
    font-weight: 600;
    text-align: left;
}

.gp-matrix td[b-utepy368x5],
.gp-matrix th[b-utepy368x5] {
    vertical-align: top;
}

.gp-sub[b-utepy368x5] {
    display: block;
    font-size: 0.74rem;
    font-weight: 400;
    color: var(--color-text-secondary);
    margin-top: 0.15rem;
}

.pill-muted[b-utepy368x5] { background: #f1f5f9; color: #475569; }

.gp-legend[b-utepy368x5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    margin: 0.75rem 0 0;
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}

.gp-legend > div[b-utepy368x5] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.gp-legend dt[b-utepy368x5],
.gp-legend dd[b-utepy368x5] {
    margin: 0;
}

.gp-issues[b-utepy368x5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.gp-issue[b-utepy368x5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-left: 3px solid #d97706;
    border-radius: var(--radius);
    padding: 0.7rem 1rem;
}

.gp-issue-serious[b-utepy368x5] {
    border-left-color: #b91c1c;
}

.gp-issue-body[b-utepy368x5] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.gp-issue-title[b-utepy368x5] {
    font-weight: 600;
    color: var(--color-text-primary);
    font-size: 0.9rem;
}

.gp-issue-detail[b-utepy368x5] {
    font-size: 0.8rem;
    color: var(--color-text-secondary);
}
/* /Components/Pages/GovernanceProfiles.razor.rz.scp.css */
.gov-prof-section[b-zv8103ztp7] {
    margin-bottom: 1.5rem;
}

.gov-prof-head[b-zv8103ztp7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.gov-prof-actions[b-zv8103ztp7] {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.gov-prof-packs[b-zv8103ztp7] {
    border: 0;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
}

.gov-prof-packs legend[b-zv8103ztp7] {
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.gov-prof-check[b-zv8103ztp7] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
}

.gov-prof-sub[b-zv8103ztp7] {
    font-size: 0.82rem;
}

.gov-prof-compare[b-zv8103ztp7] {
    display: flex;
    gap: 1rem;
    margin: 1rem 0 0.5rem;
    flex-wrap: wrap;
}

.gov-prof-compare .form-row[b-zv8103ztp7] {
    min-width: 10rem;
}

.gov-prof-starters-title[b-zv8103ztp7] {
    margin-top: 1.75rem;
}

.gov-prof-starters[b-zv8103ztp7] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: 1rem;
}

.gov-prof-starter[b-zv8103ztp7] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
}

.gov-prof-starter__title[b-zv8103ztp7] {
    font-size: 1rem;
    margin: 0;
}

.gov-prof-starter__sets[b-zv8103ztp7] {
    font-size: 0.85rem;
    margin: 0;
}

/* #1184: starter cards get the same inner padding as other cards. */
.gov-prof-starter[b-zv8103ztp7] {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
/* /Components/Pages/GovernanceSolution.razor.rz.scp.css */
.gov-sol-section[b-laz8okopl3] {
    margin-bottom: 1.5rem;
}

.gov-sol-head[b-laz8okopl3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.gov-sol-profile[b-laz8okopl3] {
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
}

.gov-sol-profile .form-row[b-laz8okopl3] {
    min-width: 18rem;
    margin-bottom: 0;
}

.gov-sol-actions[b-laz8okopl3] {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.gov-sol-report[b-laz8okopl3] {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border-color, #e2e8f0);
}

.gov-sol-kind[b-laz8okopl3] {
    font-size: 0.8rem;
    margin-left: 0.35rem;
}
/* /Components/Pages/GovernanceSolutions.razor.rz.scp.css */
.gov-sol-create[b-2p0z364d0x] {
    margin-bottom: 1.5rem;
}

.gov-sol-mode[b-2p0z364d0x] {
    border: 0;
    padding: 0;
    margin: 0.75rem 0 1rem;
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.gov-sol-mode legend[b-2p0z364d0x] {
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.gov-sol-radio[b-2p0z364d0x] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
}

.gov-sol-actions[b-2p0z364d0x] {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.gov-sol-sub[b-2p0z364d0x] {
    font-size: 0.82rem;
}
/* /Components/Pages/GovernanceWaivers.razor.rz.scp.css */
.gov-waiver-form[b-ed15ux270o] {
    margin-bottom: 1.5rem;
    max-width: 48rem;
}

.gov-waiver-section[b-ed15ux270o] {
    margin-bottom: 2rem;
}

.gov-waiver-actions[b-ed15ux270o] {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.gov-waiver-sub[b-ed15ux270o] {
    font-size: 0.82rem;
}

.gov-waiver-pill[b-ed15ux270o] {
    margin-left: 0.4rem;
}

.gov-waiver-date[b-ed15ux270o] {
    max-width: 14rem;
}
/* /Components/Pages/GovernanceWorkspaces.razor.rz.scp.css */
.gov-ws-section[b-n56vmppxu6] {
    margin-bottom: 1.5rem;
}

.gov-ws-head[b-n56vmppxu6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.gov-ws-profile[b-n56vmppxu6] {
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
}

.gov-ws-profile .form-row[b-n56vmppxu6] {
    min-width: 18rem;
    margin-bottom: 0;
}

.gov-ws-actions[b-n56vmppxu6] {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.gov-ws-report[b-n56vmppxu6] {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border-color, #e2e8f0);
}

.gov-ws-kind[b-n56vmppxu6] {
    font-size: 0.8rem;
    margin-left: 0.35rem;
}

.gov-ws-current td[b-n56vmppxu6] {
    font-weight: 600;
}
/* /Components/Pages/GuardrailPatterns.razor.rz.scp.css */
/* Guardrail patterns (#1179): pack blocks, pattern blocks and the pattern editor. */

.pack-row[b-0hv9yxsx3f] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.pack-row:last-child[b-0hv9yxsx3f] {
    border-bottom: 0;
}

.pack-row-main[b-0hv9yxsx3f] {
    flex: 1 1 auto;
    min-width: 0;
}

.pack-row-actions[b-0hv9yxsx3f] {
    display: flex;
    gap: 0.5rem;
    flex: 0 0 auto;
}

.pattern-with-action[b-0hv9yxsx3f] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.pattern-with-action .pattern-block[b-0hv9yxsx3f] {
    flex: 1 1 auto;
    min-width: 0;
}

.pattern-with-action .btn[b-0hv9yxsx3f] {
    margin-top: 0.85rem;
    flex: 0 0 auto;
}

.pattern-block[b-0hv9yxsx3f] {
    margin-top: 0.75rem;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.5rem;
    background: var(--color-surface, #fff);
}

.pattern-block-head[b-0hv9yxsx3f] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.pattern-label[b-0hv9yxsx3f] {
    font-weight: 600;
}

.pattern-catches[b-0hv9yxsx3f] {
    font-size: 0.85rem;
    margin-top: 0.2rem;
}

.pattern-regex[b-0hv9yxsx3f] {
    margin: 0.4rem 0 0;
    padding: 0.45rem 0.6rem;
    font-size: 0.8rem;
    white-space: pre-wrap;
    word-break: break-all;
    border-radius: 0.375rem;
    background: var(--color-surface-2, #f1f5f9);
    color: var(--color-text, #0f172a);
}

.pattern-edit[b-0hv9yxsx3f] {
    margin-top: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.5rem;
}

.pattern-edit legend[b-0hv9yxsx3f] {
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0 0.35rem;
    width: auto;
    float: none;
    margin: 0;
}

.pattern-edit-options[b-0hv9yxsx3f] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
    margin-top: 0.5rem;
}

.pattern-edit-options label[b-0hv9yxsx3f] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.875rem;
}

.pattern-edit-options .btn[b-0hv9yxsx3f] {
    margin-left: auto;
}

.pattern-errors[b-0hv9yxsx3f] {
    margin: 0.35rem 0 0;
    padding-left: 1.25rem;
}

/* #1179: a pack list inside .card-body. The body already pads the card, so the first and last
   pack drop their outer spacing and the content does not sit double-spaced. */
.card-body > .pack-row:first-child[b-0hv9yxsx3f] {
    padding-top: 0;
}

.card-body > .pack-row:last-child[b-0hv9yxsx3f] {
    padding-bottom: 0;
}

/* #1179: the pack a guardrail rules view linked to. */
.pack-row.is-target[b-0hv9yxsx3f] {
    outline: 2px solid var(--color-primary, #1d4ed8);
    outline-offset: -2px;
    border-radius: 6px;
    background: var(--color-surface-muted, #f8fafc);
}

.pack-row:focus[b-0hv9yxsx3f] {
    outline: 2px solid var(--color-primary, #1d4ed8);
    outline-offset: -2px;
}
/* /Components/Pages/Guardrails.razor.rz.scp.css */
/* Scoped styles for the Guardrails management page. Reuses the app's global .btn/.card/
   .data-table/.form-* classes; only the guardrail-specific chrome lives here so the page
   stays self-contained and matches the calm, restrained Configure-page idiom. */

/* #1179: the policies table is named by aria-label; the visible section heading is the h2 above it. */
/* #1179: the actions sit on one line at desktop widths. The global td.row-actions shrinks the
   column to 1%, so a wrapping flex box collapsed to one action per line. They wrap only on
   narrow screens (see the media query below). */
.row-actions-inner[b-dua7ryep5i] {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.rules-heading[b-dua7ryep5i] {
    margin: 0 0 0.75rem;
}

/* The template card above already leaves 1.5rem below itself. */
.checks-reference[b-dua7ryep5i] {
    margin-top: 0;
}

/* Status chips — same rounded-pill shape and muted palette as the Stages list, restated
   locally so this page is self-contained. Monitor reads calm/neutral, Enforce reads active. */
.pill[b-dua7ryep5i] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.pill-monitor[b-dua7ryep5i]  { background: #f1f5f9; color: #475569; }
.pill-enforce[b-dua7ryep5i]  { background: #dbeafe; color: #1e40af; }
.pill-template[b-dua7ryep5i] { background: #ede9fe; color: #6d28d9; }

/* Action chips — strictest-last severity ramp: Redact < RouteToReview < Block. */
.pill-redact[b-dua7ryep5i] { background: #fef3c7; color: #92400e; }
.pill-review[b-dua7ryep5i] { background: #ffedd5; color: #9a3412; }
.pill-block[b-dua7ryep5i]  { background: #fee2e2; color: #991b1b; }

/* Destructive link-style trigger, restated locally (the global rule is scoped to Stages).
   These are <button>s, so strip the default button chrome to match the .table-link idiom. */
.table-link-danger[b-dua7ryep5i] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
    color: #b91c1c;
}

.table-link-danger:hover[b-dua7ryep5i] {
    color: #7f1d1d;
    text-decoration: underline;
}

/* .table-link is global for <a>; the Edit action is a <button> here for correct semantics
   (it triggers an in-page action, not navigation) — strip button chrome to match. */
button.table-link[b-dua7ryep5i] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font: inherit;
}

/* ── Editor panel ─────────────────────────────────────────────────────── */
.guardrail-editor[b-dua7ryep5i] {
    margin-top: 1.5rem;
}

/* Two-column editor grid, same shape as the global .detail-grid, but restated so the
   full-width / checkbox helpers work outside a .detail-grid ancestor. */
.editor-grid[b-dua7ryep5i] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.875rem 1rem;
}

.editor-grid .form-row[b-dua7ryep5i] {
    max-width: none;
}

.editor-grid .form-row-wide[b-dua7ryep5i],
.editor-grid .form-row-checkbox[b-dua7ryep5i] {
    grid-column: 1 / -1;
}

/* Mode / phase segmented toggle — two buttons reading as one control. */
.mode-toggle[b-dua7ryep5i] {
    display: inline-flex;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    overflow: hidden;
    width: fit-content;
}

.mode-toggle-btn[b-dua7ryep5i] {
    background: var(--color-surface, #fff);
    border: none;
    padding: 0.4rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-text-secondary, #475569);
    cursor: pointer;
}

.mode-toggle-btn + .mode-toggle-btn[b-dua7ryep5i] {
    border-left: 1px solid var(--color-border, #e2e8f0);
}

.mode-toggle-btn:hover[b-dua7ryep5i] {
    background: var(--color-surface-hover, #f1f5f9);
}

.mode-toggle-btn.is-active[b-dua7ryep5i] {
    background: var(--color-brand, #0f172a);
    color: #fff;
}

/* Checkbox rows read as a single labelled line. */
.checkbox-row[b-dua7ryep5i] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.9375rem;
    font-weight: 400;
    color: var(--color-text-primary, #0f172a);
    cursor: pointer;
}

.checkbox-row input[type="checkbox"][b-dua7ryep5i] {
    margin-top: 0.15rem;
    flex: 0 0 auto;
}

.editor-actions[b-dua7ryep5i] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1.5rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 1rem;
}

/* ── Rule groups ──────────────────────────────────────────────────────── */
.rule-group[b-dua7ryep5i] {
    margin-top: 1rem;
}

.rule-group-header[b-dua7ryep5i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.rule-group-header .detail-section-heading[b-dua7ryep5i] {
    margin: 0;
}

.rule-card[b-dua7ryep5i] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface-alt, #fbfbfd);
    padding: 1rem;
    margin-top: 0.75rem;
}

/* #1179: the rule opened from "Edit this rule" in the rules view. */
.rule-card.is-target[b-dua7ryep5i] {
    border-color: var(--color-primary, #1d4ed8);
    box-shadow: 0 0 0 2px rgba(29, 78, 216, 0.15);
}

.rule-card-grid[b-dua7ryep5i] {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 0.75rem 1rem;
    /* #1179: hints sit under the check and action fields, so align tops rather than bottoms. */
    align-items: start;
}

.rule-card-grid .form-row[b-dua7ryep5i] {
    max-width: none;
}

.rule-card-grid .form-row-wide[b-dua7ryep5i] {
    grid-column: 1 / -1;
}

.rule-remove[b-dua7ryep5i] {
    justify-self: end;
    /* Line the Remove link up with the inputs, below their labels. */
    padding-top: 1.85rem;
}

/* #1179: a rule whose check does not run in its group. */
.rule-misplaced[b-dua7ryep5i] {
    margin: 0;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    background: #fef3c7;
    color: #92400e;
    font-size: 0.8125rem;
}

/* ── Template library — .pack-row/.pack-row-actions mirror the idiom already used by
   AutonomyGrades/PiiPacks/FraudPacks for a "your items vs. starter templates" split. ── */
.pack-row[b-dua7ryep5i] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    /* #1179: inner padding so template entries do not sit flush against the card edge. */
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.pack-row:last-child[b-dua7ryep5i] {
    border-bottom: 0;
}

.pack-row-actions[b-dua7ryep5i] {
    align-items: center;
}

.pack-row-main[b-dua7ryep5i] {
    min-width: 0;
}

.pack-row-actions[b-dua7ryep5i] {
    display: flex;
    gap: 0.5rem;
    flex: 0 0 auto;
    white-space: nowrap;
}

/* ── Inline Explain/Adopt results ─────────────────────────────────────────
   Rendered directly under the row that triggered them (a table row for "Your policies",
   a sibling block for a .pack-row template) so the result is never scrolled out of view
   below a long list. */
.expand-row td[b-dua7ryep5i] {
    background: var(--color-surface-alt, #f8fafc);
    padding: 1rem 1.5rem;
}

.pack-row-expand[b-dua7ryep5i] {
    background: var(--color-surface-alt, #f8fafc);
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    padding: 0.85rem 1.25rem 1.1rem;
}

.explain-card[b-dua7ryep5i],
.adopt-card[b-dua7ryep5i] {
    max-width: 640px;
}

/* The last expand block in the template card needs no divider against the card edge. */
.pack-row-expand:last-child[b-dua7ryep5i] {
    border-bottom: 0;
}

/* ── Diagnostics (collapsed by default) ──────────────────────────────────
   Resolved layers sit in one CollapsibleCard body. */
.diagnostics-body[b-dua7ryep5i] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.diagnostics-section + .diagnostics-section[b-dua7ryep5i] {
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 1.5rem;
}

.resolve-result[b-dua7ryep5i] {
    margin-top: 1rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 1rem;
}

.resolve-effective[b-dua7ryep5i] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

/* Single-column collapse on narrow laptop widths. */
@media (max-width: 900px) {
    .editor-grid[b-dua7ryep5i] {
        grid-template-columns: 1fr;
    }

    .rule-card-grid[b-dua7ryep5i] {
        grid-template-columns: 1fr;
    }

    .rule-remove[b-dua7ryep5i] {
        justify-self: start;
        padding-top: 0;
    }

    .pack-row[b-dua7ryep5i] {
        flex-direction: column;
    }

    .pack-row-actions[b-dua7ryep5i] {
        white-space: normal;
    }

    .guardrail-policies td.row-actions[b-dua7ryep5i] {
        white-space: normal;
    }

    .row-actions-inner[b-dua7ryep5i] {
        flex-wrap: wrap;
    }
}
/* /Components/Pages/GuardrailViolations.razor.rz.scp.css */
/* Scoped styles for the guardrail violations dashboard (G24). Reuses the app's global
   .btn/.card/.data-table/.page-* classes; only the dashboard-specific chrome (status pills,
   the reasons list, the accessible caption) lives here so the page is self-contained and matches
   the calm, restrained idiom of the Guardrails management page. The pill palette is restated
   locally because Blazor scopes component CSS — the Guardrails page's pills don't reach here. */

/* Accessible table caption — a visible label the Playwright suite can target, without visual
   noise beyond the existing card + heading. */
.table-caption[b-vk7i78wof8] {
    caption-side: top;
    text-align: left;
    padding: 0 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary, #475569);
}

/* Status chips — same rounded-pill shape and muted palette as the Guardrails list. Monitor reads
   calm/neutral, Enforce reads active, Block (the would-have-blocked count) reads as the strictest
   severity, and the two dashboard-only signals sit between them. */
.pill[b-vk7i78wof8] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.pill-monitor[b-vk7i78wof8]  { background: #f1f5f9; color: #475569; }
.pill-enforce[b-vk7i78wof8]  { background: #dbeafe; color: #1e40af; }
.pill-block[b-vk7i78wof8]    { background: #fee2e2; color: #991b1b; }

/* Dashboard signals. "Ready to enforce" reads as a confident go (green); "Watching" reads as a
   softer, still-observing amber so operators can tell the two apart at a glance. */
.pill-ready[b-vk7i78wof8]    { background: #dcfce7; color: #166534; }
.pill-watching[b-vk7i78wof8] { background: #fef3c7; color: #92400e; }

/* Reasons cell — a tight, unbulleted list so several top reasons stack without dominating the row. */
.reason-list[b-vk7i78wof8] {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.85rem;
    line-height: 1.35;
}

.reason-list li + li[b-vk7i78wof8] {
    margin-top: 0.15rem;
}

/* A quieter primary button for policies that aren't yet flagged "ready" — promotion is still
   allowed (operators can always act early), it just doesn't shout for attention. */
.btn-quiet[b-vk7i78wof8] {
    background: var(--color-surface, #fff);
    color: var(--color-text-secondary, #475569);
    border: 1px solid var(--color-border, #e2e8f0);
}

.btn-quiet:hover[b-vk7i78wof8] {
    background: var(--color-surface-hover, #f1f5f9);
    color: var(--color-text-primary, #0f172a);
}
/* /Components/Pages/GuardrailWizard.razor.rz.scp.css */
/* Guardrail designer wizard — stepper + concern gallery. Mirrors the Brain wizard idiom. */

.gw-steps[b-9eaif6tqaj] {
    list-style: none;
    display: flex;
    gap: 0.5rem;
    padding: 0;
    margin: 0 0 1.25rem;
}

.gw-step[b-9eaif6tqaj] {
    flex: 1 1 0;
}

.gw-step-btn[b-9eaif6tqaj] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.9rem;
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 8px;
    background: var(--surface, #fff);
    cursor: pointer;
    text-align: left;
    color: var(--text-muted, #64748b);
    transition: border-color .15s, background .15s, color .15s;
}

.gw-step-btn:hover:not(:disabled)[b-9eaif6tqaj] { border-color: var(--accent, #2563eb); }

.gw-step.is-active .gw-step-btn[b-9eaif6tqaj] {
    border-color: var(--accent, #2563eb);
    color: var(--text, #0f172a);
    box-shadow: 0 0 0 1px var(--accent, #2563eb) inset;
}

.gw-step.is-done .gw-step-btn[b-9eaif6tqaj] { color: var(--text, #0f172a); }

.gw-step-num[b-9eaif6tqaj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--surface-muted, #f1f5f9);
    font-weight: 600;
    font-size: 0.85rem;
    flex: 0 0 auto;
}

.gw-step.is-active .gw-step-num[b-9eaif6tqaj],
.gw-step.is-done .gw-step-num[b-9eaif6tqaj] { background: var(--accent, #2563eb); color: #fff; }

.gw-step-label[b-9eaif6tqaj] { font-weight: 500; font-size: 0.92rem; }

/* Concern gallery */
.gw-gallery[b-9eaif6tqaj] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: 0.6rem;
}

.gw-concern[b-9eaif6tqaj] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border-color, #e2e8f0);
    border-radius: 8px;
    background: var(--surface, #fff);
    cursor: pointer;
    text-align: left;
    transition: border-color .15s, box-shadow .15s;
}

.gw-concern:hover[b-9eaif6tqaj] { border-color: var(--accent, #2563eb); }

.gw-concern.is-selected[b-9eaif6tqaj] {
    border-color: var(--accent, #2563eb);
    box-shadow: 0 0 0 1px var(--accent, #2563eb) inset;
}

.gw-concern-title[b-9eaif6tqaj] { font-weight: 600; color: var(--text, #0f172a); }
.gw-concern-desc[b-9eaif6tqaj] { font-size: 0.85rem; color: var(--text-muted, #64748b); }

/* Review list */
.gw-review[b-9eaif6tqaj] {
    display: grid;
    grid-template-columns: 10rem minmax(0, 1fr);
    gap: 0.5rem 1rem;
    margin: 0;
}

.gw-review dt[b-9eaif6tqaj] { font-weight: 600; color: var(--text-muted, #64748b); }
.gw-review dd[b-9eaif6tqaj] { margin: 0; }

/* Footer navigation */
.gw-nav[b-9eaif6tqaj] {
    display: flex;
    justify-content: space-between;
    margin-top: 1rem;
}
/* /Components/Pages/Inbox.razor.rz.scp.css */
/* Needs my attention (#1151): a calm list; an unread line carries a dot and a slightly raised surface. */
.inbox__filter[b-7bir9i9o9a] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-right: 0.75rem;
}

.inbox__list[b-7bir9i9o9a] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.inbox__item[b-7bir9i9o9a] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.875rem 1.125rem;
    border-bottom: 1px solid var(--color-border);
}

.inbox__item:last-child[b-7bir9i9o9a] {
    border-bottom: 0;
}

.inbox__item.is-unread[b-7bir9i9o9a] {
    background: var(--color-surface-raised);
}

.inbox__main[b-7bir9i9o9a] {
    flex: 1;
    min-width: 0;
}

.inbox__title[b-7bir9i9o9a] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
}

.inbox__dot[b-7bir9i9o9a] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--color-brand);
    flex: none;
}

.inbox__body[b-7bir9i9o9a] {
    margin: 0.25rem 0 0.25rem;
    color: var(--color-text-secondary);
}

.inbox__when[b-7bir9i9o9a] {
    font-size: 0.85rem;
}
/* /Components/Pages/JobLogViewer.razor.rz.scp.css */
/* #696: log card left, AI assist aside right (Data Studio fs-panel proportions). */
.jl-row[b-ewrvezy9q3] {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.jl-main[b-ewrvezy9q3] {
    flex: 1 1 auto;
    min-width: 0;
}

.jl-assist[b-ewrvezy9q3] {
    flex: 0 0 340px;
    position: sticky;
    top: 1rem;
}

.jl-assist-blurb[b-ewrvezy9q3] {
    margin-top: 0;
}

.jl-assist-alert[b-ewrvezy9q3] {
    color: var(--danger, #b91c1c);
    font-size: 0.85rem;
    margin: 0.25rem 0 0.75rem;
}

.jl-assist-hint[b-ewrvezy9q3] {
    font-size: 0.8rem;
    margin: 0.5rem 0 0;
}

.jl-assist-facts[b-ewrvezy9q3] {
    list-style: none;
    padding: 0.5rem 0 0;
    margin: 0.5rem 0 0;
    border-top: 1px solid var(--border, #e5e7eb);
    font-size: 0.78rem;
    color: var(--muted, #6b7280);
}

.jl-assist-facts li[b-ewrvezy9q3] {
    margin-bottom: 0.2rem;
}

.jl-assist-text[b-ewrvezy9q3] {
    margin: 0.75rem 0 0;
    font-size: 0.85rem;
    line-height: 1.5;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.jl-assist-caret[b-ewrvezy9q3] {
    animation: jl-caret-blink-b-ewrvezy9q3 1s steps(1) infinite;
}

.jl-assist-error[b-ewrvezy9q3] {
    color: var(--danger, #b91c1c);
    font-size: 0.85rem;
    margin: 0.75rem 0 0;
}

@keyframes jl-caret-blink-b-ewrvezy9q3 {
    50% { opacity: 0; }
}

@media (max-width: 1100px) {
    .jl-row[b-ewrvezy9q3] {
        flex-direction: column;
    }

    .jl-assist[b-ewrvezy9q3] {
        flex: 1 1 auto;
        width: 100%;
        position: static;
    }
}
/* /Components/Pages/Live.razor.rz.scp.css */
/* Activity feed */
.activity-feed[b-u6cqnrwhix] {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
    max-height: 360px;
    overflow-y: auto;
}
.activity-row[b-u6cqnrwhix] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.35rem 1rem;
    font-size: 0.85rem;
    border-bottom: 1px solid var(--border-subtle, #eef2f6);
}
.activity-row:last-child[b-u6cqnrwhix] { border-bottom: none; }
.activity-time[b-u6cqnrwhix] {
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}
.activity-file[b-u6cqnrwhix] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}
.activity-arrow[b-u6cqnrwhix] { flex: 0 0 auto; }

/* Raw log tail */
.log-tail[b-u6cqnrwhix] {
    max-height: 420px;
    overflow-y: auto;
    padding: 0.5rem 0;
    font-family: var(--font-mono, ui-monospace, "SF Mono", Menlo, Consolas, monospace);
    font-size: 0.78rem;
    line-height: 1.5;
}
.log-line[b-u6cqnrwhix] {
    display: flex;
    gap: 0.75rem;
    padding: 0.1rem 1rem;
    white-space: pre-wrap;
    word-break: break-word;
}
.log-line:hover[b-u6cqnrwhix] { background: var(--surface-hover, #f8fafc); }
.log-time[b-u6cqnrwhix] {
    flex: 0 0 auto;
    color: var(--text-muted, #94a3b8);
    font-variant-numeric: tabular-nums;
}
.log-level[b-u6cqnrwhix] {
    flex: 0 0 76px;
    text-transform: uppercase;
    font-size: 0.68rem;
    letter-spacing: 0.03em;
    align-self: center;
    color: var(--text-muted, #94a3b8);
}
.log-msg[b-u6cqnrwhix] { flex: 1 1 auto; min-width: 0; }

.log-line--warning .log-level[b-u6cqnrwhix] { color: #d97706; }
.log-line--error .log-level[b-u6cqnrwhix],
.log-line--fatal .log-level[b-u6cqnrwhix] { color: #dc2626; }
.log-line--error .log-msg[b-u6cqnrwhix],
.log-line--fatal .log-msg[b-u6cqnrwhix] { color: #b91c1c; }

/* ── Fleet strip + tiles + feeds ──────────────────────────────────────────────
   Lifted from Work.razor.css so the Live page shares the fleet console styling.
   Those rules are scoped to the Work component, so they don't reach this page;
   keeping a copy here keeps both surfaces visually identical. */
.fleet-strip[b-u6cqnrwhix] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.fleet-stage-tile[b-u6cqnrwhix] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.875rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 70px;
    transition: border-color 120ms ease, transform 120ms ease;
}

.fleet-stage-tile--skeleton[b-u6cqnrwhix] {
    background: linear-gradient(90deg, var(--color-surface) 0%, var(--color-surface-raised) 50%, var(--color-surface) 100%);
    background-size: 200% 100%;
    animation: fleet-skeleton-b-u6cqnrwhix 1.4s ease-in-out infinite;
}

@keyframes fleet-skeleton-b-u6cqnrwhix {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.fleet-stage-tile-label[b-u6cqnrwhix] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fleet-stage-tile-count[b-u6cqnrwhix] {
    font-family: var(--font-title);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.fleet-stage-tile--empty .fleet-stage-tile-count[b-u6cqnrwhix] {
    color: var(--color-text-secondary);
}

.fleet-stage-tile--total[b-u6cqnrwhix] {
    background: var(--color-brand);
    border-color: var(--color-brand);
}

.fleet-stage-tile--total .fleet-stage-tile-label[b-u6cqnrwhix],
.fleet-stage-tile--total .fleet-stage-tile-count[b-u6cqnrwhix] {
    color: white;
}

.fleet-tiles[b-u6cqnrwhix] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.fleet-tile[b-u6cqnrwhix] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.875rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.fleet-tile-label[b-u6cqnrwhix] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fleet-tile-value[b-u6cqnrwhix] {
    font-family: var(--font-title);
    font-size: 1.5rem;
    font-weight: 700;
}

.fleet-tile-meta[b-u6cqnrwhix] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

a.fleet-tile:hover[b-u6cqnrwhix] {
    border-color: var(--color-brand-teal);
}

.fleet-tile--alert[b-u6cqnrwhix] {
    border-color: var(--color-degraded);
    background: #fff8eb;
}

/* #728: a pure navigation tile (no live metric) — the arrow stands in for the value
   so the tile keeps the strip's rhythm without faking a number. */
.fleet-tile-value--nav[b-u6cqnrwhix] {
    color: var(--color-text-secondary);
    font-weight: 400;
}

.fleet-tile--alert .fleet-tile-value[b-u6cqnrwhix] {
    color: #b45309;
}

.fleet-feeds[b-u6cqnrwhix] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.fleet-feed-card[b-u6cqnrwhix] {
    margin: 0;
}

.fleet-feed-card .card-header[b-u6cqnrwhix] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.fleet-feed-card .card-link[b-u6cqnrwhix] {
    font-size: 0.8125rem;
}

.data-table.data-table--compact th[b-u6cqnrwhix],
.data-table.data-table--compact td[b-u6cqnrwhix] {
    padding: 0.4rem 0.65rem;
    font-size: 0.8125rem;
}

/* System topology — group a pipeline's watched paths under one name. The pipeline cell spans
   its folder rows (rowspan); a stronger top border on each group's first row separates pipelines. */
.topo-pipeline-cell[b-u6cqnrwhix] {
    vertical-align: top;
    font-weight: 600;
}

.topo-path-count[b-u6cqnrwhix] {
    display: block;
    font-size: 0.72rem;
    font-weight: 400;
    margin-top: 0.15rem;
}

.topo-row--group-start > td[b-u6cqnrwhix] {
    border-top: 2px solid var(--border-strong, #d6dbe2);
}

.topo-row--group-start:first-child > td[b-u6cqnrwhix],
tbody > .topo-row--group-start:first-of-type > td[b-u6cqnrwhix] {
    border-top: 0;
}

@media (max-width: 1100px) {
    .fleet-strip[b-u6cqnrwhix] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .fleet-feeds[b-u6cqnrwhix] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/LookupDetail.razor.rz.scp.css */
/* Column schema editor — aligned grid with a header row, instead of stacked
   ad-hoc rows, so column name / type read as a table on wide screens. */
.lookup-columns-grid[b-uyph0yv7ey] {
    display: flex;
    flex-direction: column;
}

.lookup-columns-header[b-uyph0yv7ey],
.lookup-columns-row[b-uyph0yv7ey] {
    display: grid;
    grid-template-columns: 1fr 10rem 2.5rem;
    gap: 0.75rem;
    align-items: center;
}

.lookup-columns-header[b-uyph0yv7ey] {
    padding-bottom: 0.5rem;
    margin-bottom: 0.25rem;
    border-bottom: 1px solid var(--color-border);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.lookup-columns-row[b-uyph0yv7ey] {
    padding: 0.375rem 0;
}

.lookup-columns-row:not(:last-child)[b-uyph0yv7ey] {
    border-bottom: 1px solid var(--color-border);
}
/* /Components/Pages/MappingLab.razor.rz.scp.css */
/* Mapping lab — the grid-first recipe editor. Calm, restrained, enterprise. */

/* ── recipe identity header ──────────────────────────────────────────── */
.lab-identity[b-0pqaefyii2] { min-width: 0; flex: 1; }
.lab-name-input[b-0pqaefyii2] {
    font-size: 1.5rem; font-weight: 600; line-height: 1.2; color: #0f172a;
    border: 1px solid transparent; border-radius: 8px;
    padding: .15rem .4rem; margin: -.15rem -.4rem .1rem;
    width: 100%; max-width: 32rem; background: transparent;
}
.lab-name-input:hover[b-0pqaefyii2] { border-color: #e2e8f0; }
.lab-name-input:focus[b-0pqaefyii2] { border-color: #93c5fd; background: #fff; outline: none; }
.lab-name-input[b-0pqaefyii2]::placeholder { color: #94a3b8; font-weight: 500; }

.lab-id-sub[b-0pqaefyii2] { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin: 0; }
.lab-key-field[b-0pqaefyii2] { display: inline-flex; align-items: center; gap: .35rem; color: #64748b; }
.lab-key-field label[b-0pqaefyii2] { font-size: .8rem; }
.lab-key-field input[b-0pqaefyii2] {
    font: inherit; font-size: .8rem; color: #334155;
    border: 1px solid #e2e8f0; border-radius: 6px; padding: .1rem .4rem;
    width: 12rem; background: #fff;
}
.lab-key-field input:disabled[b-0pqaefyii2] { background: #f8fafc; color: #64748b; border-color: #eef2f7; }

.lab-desc-input[b-0pqaefyii2] {
    width: 100%; max-width: 48rem; margin-top: .6rem;
    font-size: .85rem; color: #475569;
    border: 1px solid #e2e8f0; border-radius: 8px; padding: .4rem .6rem; background: #fff;
}
.lab-desc-input:focus[b-0pqaefyii2] { border-color: #93c5fd; outline: none; }

.page-header-actions[b-0pqaefyii2] { display: flex; gap: .5rem; align-items: center; }
.lab-upload[b-0pqaefyii2] { cursor: pointer; }
.btn-xs[b-0pqaefyii2] { font-size: .75rem; padding: .2rem .5rem; }
.btn-link[b-0pqaefyii2] { background: none; border: 0; color: #2563eb; cursor: pointer; padding: 0; font: inherit; text-decoration: underline; }
.small[b-0pqaefyii2] { font-size: .8rem; }

/* ── empty state / drop zone ─────────────────────────────────────────── */
.lab-drop[b-0pqaefyii2] {
    position: relative;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center; gap: .35rem;
    padding: 2.75rem 1rem; max-width: 34rem; margin: 0 auto;
    border: 2px dashed #cbd5e1; border-radius: 14px; cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}
.lab-drop:hover[b-0pqaefyii2] { border-color: #93c5fd; background: #f8fbff; }
.lab-drop.is-over[b-0pqaefyii2] { border-color: #2563eb; background: #eff6ff; }
/* The transparent file input covers the whole zone so a dropped file lands on it. ::deep is
   required because InputFile is a child component — scoped styles don't cross that boundary. */
.lab-drop[b-0pqaefyii2]  .lab-drop-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 1; }
.lab-drop-link[b-0pqaefyii2] { color: #2563eb; text-decoration: underline; }
.lab-empty-icon[b-0pqaefyii2] { color: #94a3b8; margin-bottom: .5rem; pointer-events: none; }
.lab-empty-icon svg[b-0pqaefyii2] { width: 42px; height: 42px; }
.lab-drop h2[b-0pqaefyii2] { margin: 0 0 .2rem; }
.lab-empty-alt[b-0pqaefyii2] { text-align: center; margin: .9rem 0 0; }
/* Slim variant — sits inside the live-preview card when a recipe has no stored sample. */
.lab-drop-slim[b-0pqaefyii2] { padding: 1.3rem 1rem; max-width: none; }
.lab-drop-slim h3[b-0pqaefyii2] { margin: 0; font-size: .95rem; }
.lab-drop-slim p[b-0pqaefyii2] { margin: 0; max-width: 46rem; }

/* ── source options (where the data lives) ───────────────────────────── */
.source-opts[b-0pqaefyii2] { margin-bottom: 1rem; }
.so-summary[b-0pqaefyii2] { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.so-file[b-0pqaefyii2] { display: flex; flex-direction: column; }
.so-file-name[b-0pqaefyii2] { font-weight: 600; color: #1e293b; }
.so-controls[b-0pqaefyii2] { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.so-field[b-0pqaefyii2] { display: flex; align-items: center; gap: .4rem; font-size: .82rem; color: #475569; }
.so-chip[b-0pqaefyii2] { font-size: .78rem; background: #f1f5f9; border: 1px solid #e2e8f0; color: #334155; border-radius: 6px; padding: .2rem .5rem; }
.so-detail[b-0pqaefyii2] { margin-top: .9rem; border-top: 1px solid #eef2f7; padding-top: .8rem; }
.so-raw[b-0pqaefyii2] { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: .8rem; }
.so-raw td[b-0pqaefyii2] { padding: .3rem .55rem; border-bottom: 1px solid #f1f5f9; white-space: nowrap; max-width: 16rem; overflow: hidden; text-overflow: ellipsis; }
.so-raw tr[b-0pqaefyii2] { cursor: pointer; }
.so-raw tr:hover td[b-0pqaefyii2] { background: #f8fbff; }
.so-rownum[b-0pqaefyii2] { color: #94a3b8; font-variant-numeric: tabular-nums; background: #f8fafc; text-align: right; position: sticky; left: 0; }
.so-is-header td[b-0pqaefyii2] { background: #dbeafe !important; color: #1e3a8a; font-weight: 600; }
.so-is-skipped td[b-0pqaefyii2] { color: #cbd5e1; }
.so-is-data td[b-0pqaefyii2] { color: #475569; }
.so-detail-actions[b-0pqaefyii2] { display: flex; align-items: center; gap: .75rem; margin-top: .7rem; flex-wrap: wrap; }
.so-startrow[b-0pqaefyii2] { width: 5rem; padding: .3rem .45rem; border: 1px solid #cbd5e1; border-radius: 6px; font: inherit; }

/* ── two-region layout ───────────────────────────────────────────────── */
.lab[b-0pqaefyii2] { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 1rem; align-items: start; }
.lab-main[b-0pqaefyii2] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; min-width: 0; align-items: start; }
/* When a column is focused, its properties move to a right-hand inspector beside the grid
   (rail │ data │ inspector) instead of stacking below the table. The cards must be pinned to
   their columns explicitly — auto-placement would drop the preview into the inspector slot and
   wrap the inspector to a new row below it. */
.lab-main.has-focus[b-0pqaefyii2] { grid-template-columns: minmax(0, 1fr) minmax(340px, 30%); grid-template-rows: auto 1fr; }
.lab-main.has-focus .lab-rowfilter[b-0pqaefyii2], .lab-main.has-focus .lab-grid[b-0pqaefyii2] { grid-column: 1; }
/* Row 2 is the flexible track: an item spanning a flexible track is ignored when the auto row is
   sized, so a tall inspector (e.g. the step menu open) can't inflate row 1 and push the preview
   away from the row filter. */
.lab-main.has-focus .lab-focus[b-0pqaefyii2] { grid-column: 2; grid-row: 1 / span 2; }
.lab-focus[b-0pqaefyii2] { position: sticky; top: 1rem; align-self: start; max-height: calc(100vh - 2rem); overflow-y: auto; overflow-x: hidden; }

/* Assistant pane (#690): shares the inspector column. Always in the DOM (the chat transcript lives
   in the component), shown only while .has-assistant is on — and while it is, it takes the column
   and the focused-column editor yields (returns on close). */
.lab-main.has-assistant[b-0pqaefyii2] { grid-template-columns: minmax(0, 1fr) minmax(340px, 30%); grid-template-rows: auto 1fr; }
.lab-main.has-assistant .lab-rowfilter[b-0pqaefyii2], .lab-main.has-assistant .lab-grid[b-0pqaefyii2] { grid-column: 1; }
.lab-assistant[b-0pqaefyii2] { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 1rem; align-self: start; }
.lab-main:not(.has-assistant) .lab-assistant[b-0pqaefyii2] { display: none; }
.lab-main.has-assistant .lab-focus[b-0pqaefyii2] { display: none; }

/* ── rail ────────────────────────────────────────────────────────────── */
.lab-rail[b-0pqaefyii2] {
    display: flex; flex-direction: column; gap: 1rem;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: .9rem;
    position: sticky; top: 1rem;
}
.rail-block[b-0pqaefyii2] { display: flex; flex-direction: column; gap: .5rem; }
.rail-head[b-0pqaefyii2] { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #475569; display: flex; align-items: center; gap: .4rem; }
.rail-head .rail-add[b-0pqaefyii2] { margin-left: auto; }
.rail-hint[b-0pqaefyii2] { font-size: .72rem; color: #94a3b8; margin: 0; }
.chip-wrap[b-0pqaefyii2] { display: flex; flex-wrap: wrap; gap: .35rem; }
.src-chip[b-0pqaefyii2] {
    font-size: .75rem; background: #f1f5f9; border: 1px solid #e2e8f0; color: #334155;
    border-radius: 6px; padding: .2rem .45rem; cursor: grab; max-width: 100%;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.src-chip:active[b-0pqaefyii2] { cursor: grabbing; }
.rail-drop[b-0pqaefyii2] { font-size: .78rem; color: #94a3b8; border: 1px dashed #cbd5e1; border-radius: 8px; padding: .6rem; text-align: center; }

.col-list[b-0pqaefyii2] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.col-item[b-0pqaefyii2] { display: flex; gap: .5rem; align-items: center; padding: .45rem .5rem; border-radius: 8px; cursor: pointer; border: 1px solid transparent; }
.col-item:hover[b-0pqaefyii2] { background: #f8fafc; }
.col-item.is-focused[b-0pqaefyii2] { background: #eff6ff; border-color: #bfdbfe; }
.col-item-dot[b-0pqaefyii2] { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; flex: none; }
.col-item.has-error .col-item-dot[b-0pqaefyii2] { background: #ef4444; }
.col-item-body[b-0pqaefyii2] { display: flex; flex-direction: column; min-width: 0; }
.col-item-name[b-0pqaefyii2] { font-size: .85rem; font-weight: 600; color: #1e293b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.col-item-sub[b-0pqaefyii2] { font-size: .72rem; color: #94a3b8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── grid ────────────────────────────────────────────────────────────── */
.grid-issues[b-0pqaefyii2] { font-size: .78rem; color: #b45309; }
.grid-header-right[b-0pqaefyii2] { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
/* Preview view/output toggles in the grid header */
.grid-toggle[b-0pqaefyii2] { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; color: #475569; cursor: pointer; white-space: nowrap; }
.grid-toggle input[b-0pqaefyii2] { margin: 0; }
/* Sample insight chips — deterministic messy-CSV suggestions above the preview grid */
.insight-strip[b-0pqaefyii2] { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .7rem; }
.insight-chip[b-0pqaefyii2] {
    display: inline-flex; align-items: center; gap: .45rem; font-size: .78rem; color: #334155;
    background: #f5f8ff; border: 1px solid #dbe4f8; border-radius: 8px; padding: .3rem .55rem;
}
.insight-icon[b-0pqaefyii2] { color: #6366f1; }
.insight-text .muted[b-0pqaefyii2] { color: #94a3b8; }
.insight-apply[b-0pqaefyii2] {
    border: 1px solid #c7d2fe; background: #eef2ff; color: #4338ca; border-radius: 6px;
    font: inherit; font-weight: 600; padding: .1rem .5rem; cursor: pointer; white-space: nowrap;
}
.insight-apply:hover[b-0pqaefyii2] { background: #e0e7ff; }
.insight-dismiss[b-0pqaefyii2] { border: 0; background: none; color: #94a3b8; cursor: pointer; font-size: .95rem; line-height: 1; padding: 0 .1rem; }
.insight-dismiss:hover[b-0pqaefyii2] { color: #475569; }

/* A mapped column excluded from the output — still shown for editing, but visibly muted */
.th-derived.is-excluded[b-0pqaefyii2] { background: #f8fafc; }
.th-derived.is-excluded .thd-name[b-0pqaefyii2] { color: #94a3b8; }
.td-derived.is-excluded[b-0pqaefyii2] { color: #b6c2d1; }
.translate-note[b-0pqaefyii2] { margin: 0 0 .5rem; color: #b45309; }
.translating-badge[b-0pqaefyii2] { display: inline-flex; align-items: center; gap: .4rem; font-size: .78rem; color: #1d4ed8; }
.translating-badge .spinner[b-0pqaefyii2] { width: 12px; height: 12px; border: 2px solid #bfdbfe; border-top-color: #2563eb; border-radius: 50%; animation: lab-spin-b-0pqaefyii2 .7s linear infinite; }
@keyframes lab-spin-b-0pqaefyii2 { to { transform: rotate(360deg); } }
/* English gloss shown under a non-Latin source value */
.cell-gloss[b-0pqaefyii2] { display: block; font-size: .72rem; font-style: italic; color: #2563eb; margin-top: .1rem; white-space: nowrap; }
/* "Output translated to English" indicator in the inspector */
.translate-chip[b-0pqaefyii2] { display: flex; align-items: center; gap: .4rem; justify-content: space-between; font-size: .8rem; color: #1d4ed8; background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 6px; padding: .3rem .5rem; margin-bottom: .5rem; }
.translate-chip-x[b-0pqaefyii2] { border: 0; background: none; color: #1d4ed8; cursor: pointer; font-size: 1rem; line-height: 1; padding: 0 .2rem; }
.translate-chip-x:hover[b-0pqaefyii2] { color: #b91c1c; }
/* .table-scroll is not a global utility (this page scopes its own copy), and the
   parent .card is overflow:hidden — so a wide table gets clipped with no scrollbar. Give this
   page's scroll wrappers real horizontal scrolling. min-width:0 lets the flex/grid parents
   shrink below content width so the overflow (and its scrollbar) actually appears. */
.lab-grid .card-body[b-0pqaefyii2] { min-width: 0; }
.table-scroll[b-0pqaefyii2] { overflow-x: auto; overflow-y: hidden; max-width: 100%; scrollbar-width: thin; scrollbar-color: #cbd5e1 transparent; }
/* Force an always-visible (non-overlay) horizontal scrollbar so the "more columns to the
   right" affordance is obvious — macOS otherwise hides overlay scrollbars until you scroll. */
.table-scroll[b-0pqaefyii2]::-webkit-scrollbar { height: 11px; }
.table-scroll[b-0pqaefyii2]::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 6px; }
.table-scroll[b-0pqaefyii2]::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 6px; border: 2px solid #f1f5f9; }
.table-scroll[b-0pqaefyii2]::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.lab-table[b-0pqaefyii2] { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; }
.lab-table th[b-0pqaefyii2], .lab-table td[b-0pqaefyii2] { padding: .4rem .6rem; border-bottom: 1px solid #eef2f7; font-size: .82rem; vertical-align: top; white-space: nowrap; }
.th-source[b-0pqaefyii2] { background: #f8fafc; color: #64748b; font-weight: 600; }
.td-source[b-0pqaefyii2] { color: #475569; }
.th-derived[b-0pqaefyii2] { background: #f0f7ff; padding: 0; }
.th-derived.is-focused[b-0pqaefyii2] { background: #dbeafe; }
.th-derived-btn[b-0pqaefyii2] { display: flex; flex-direction: column; gap: .1rem; width: 100%; text-align: left; background: none; border: 0; cursor: pointer; padding: .4rem .6rem; }
.thd-name[b-0pqaefyii2] { font-weight: 700; color: #1d4ed8; font-size: .82rem; }
.thd-sub[b-0pqaefyii2] { font-size: .68rem; color: #60a5fa; }
.td-derived[b-0pqaefyii2] { background: #f8fbff; color: #1e293b; }
.td-derived.is-focused[b-0pqaefyii2] { background: #eff6ff; }
.td-derived.cell-error[b-0pqaefyii2] { background: #fef2f2; color: #b91c1c; }
/* Fall-through outcomes: review = needs attention (amber); default/keep/blank = resolved. */
.td-derived.fb-review[b-0pqaefyii2] { background: #fffbeb; color: #b45309; box-shadow: inset 3px 0 0 #f59e0b; }
.td-derived.fb-default[b-0pqaefyii2] { background: #eff6ff; color: #1d4ed8; box-shadow: inset 3px 0 0 #60a5fa; }
.td-derived.fb-keep[b-0pqaefyii2] { background: #f8fafc; color: #64748b; box-shadow: inset 3px 0 0 #cbd5e1; }
.td-derived.fb-blank[b-0pqaefyii2] { background: #f8fafc; box-shadow: inset 3px 0 0 #cbd5e1; }
.cell-empty[b-0pqaefyii2] { color: #cbd5e1; }
.th-add[b-0pqaefyii2], .td-add[b-0pqaefyii2] { width: 34px; text-align: center; background: #fafafa; }
.th-add-btn[b-0pqaefyii2], .th-derived-btn[b-0pqaefyii2] { font: inherit; }
.th-add-btn[b-0pqaefyii2] { border: 0; background: none; color: #94a3b8; font-size: 1.1rem; cursor: pointer; line-height: 1; }
.th-add-btn:hover[b-0pqaefyii2] { color: #2563eb; }
.grid-foot[b-0pqaefyii2] { margin: .5rem 0 0; font-size: .75rem; }

/* ── focus panel ─────────────────────────────────────────────────────── */
/* Stacked header for the narrow inspector: name, source, then a right-aligned Remove. */
.focus-head[b-0pqaefyii2] { display: flex; flex-direction: column; align-items: stretch; gap: .6rem; }
.focus-title[b-0pqaefyii2] { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.focus-label[b-0pqaefyii2] { font-size: 1rem; font-weight: 700; border: 0; border-bottom: 2px solid #e2e8f0; padding: .15rem .1rem; color: #0f172a; width: 100%; }
.focus-label:focus[b-0pqaefyii2] { outline: none; border-bottom-color: #2563eb; }
.focus-seed[b-0pqaefyii2] { display: flex; align-items: center; gap: .4rem; }
.focus-seed .form-select[b-0pqaefyii2] { flex: 1; min-width: 0; }
.focus-head > .btn-light[b-0pqaefyii2] { align-self: flex-end; }
.focus-body[b-0pqaefyii2] { padding-top: .5rem; }
/* ── fall-through policy ──────────────────────────────────────────────── */
.focus-fallback[b-0pqaefyii2] { border: 1px solid #eef2f7; border-radius: 8px; padding: .6rem .7rem; margin-bottom: .9rem; background: #fafbfc; }
.fb-row[b-0pqaefyii2] { display: flex; gap: .5rem; align-items: center; }
.fb-mode[b-0pqaefyii2] { flex: 1; min-width: 0; }
.fb-default-input[b-0pqaefyii2] { flex: 1; min-width: 0; padding: .3rem .45rem; border: 1px solid #cbd5e1; border-radius: 6px; font: inherit; }
.fb-empty[b-0pqaefyii2] { display: flex; align-items: center; gap: .4rem; font-size: .8rem; color: #475569; margin-top: .5rem; }
.fb-count[b-0pqaefyii2] { margin: .45rem 0 0; }
.focus-grid[b-0pqaefyii2] { display: grid; grid-template-columns: 1fr; gap: 1.1rem; }
.focus-sub[b-0pqaefyii2] { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #475569; margin-bottom: .5rem; }

/* ── AI-assist panel (in the step menu) ──────────────────────────────── */
.lab-ai[b-0pqaefyii2] { display: flex; flex-direction: column; gap: .5rem; }
.lab-ai-hint[b-0pqaefyii2] { width: 100%; padding: .35rem .5rem; border: 1px solid #cbd5e1; border-radius: 6px; font: inherit; }
.lab-ai-examples[b-0pqaefyii2] { display: flex; flex-direction: column; gap: .3rem; }
.lab-ai-head[b-0pqaefyii2] { display: grid; grid-template-columns: 1fr auto 1fr; gap: .4rem; font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: #94a3b8; }
.lab-ai-head span:nth-child(2)[b-0pqaefyii2] { visibility: hidden; }
.lab-ai-row[b-0pqaefyii2] { display: grid; grid-template-columns: 1fr auto 1fr; gap: .4rem; align-items: center; }
.lab-ai-row input[b-0pqaefyii2] { width: 100%; padding: .3rem .45rem; border: 1px solid #cbd5e1; border-radius: 6px; font: inherit; min-width: 0; }
.lab-ai-arrow[b-0pqaefyii2] { color: #94a3b8; }
.lab-ai-actions[b-0pqaefyii2] { display: flex; align-items: center; gap: .5rem; }

/* ── the value-through-steps ladder ──────────────────────────────────── */
.focus-ladder[b-0pqaefyii2] { border-top: 1px solid #eef2f7; padding-top: 1rem; }
.ladder-table th[b-0pqaefyii2], .ladder-table td[b-0pqaefyii2] { padding: .35rem .55rem; border-bottom: 1px solid #eef2f7; font-size: .8rem; white-space: nowrap; }
.lad-stage[b-0pqaefyii2] { background: #f8fafc; color: #64748b; font-weight: 600; text-align: left; }
.lad-cell[b-0pqaefyii2] { color: #475569; }
.lad-changed[b-0pqaefyii2] { background: #ecfdf5; color: #065f46; font-weight: 600; border-radius: 4px; }
.ladder-legend[b-0pqaefyii2] { display: flex; align-items: center; gap: .4rem; margin: .5rem 0 0; }
.lad-swatch[b-0pqaefyii2] { width: 12px; height: 12px; border-radius: 3px; background: #ecfdf5; border: 1px solid #a7f3d0; display: inline-block; }

/* ── row filter (recipe-level keep/discard) ──────────────────────────── */
.lab-rowfilter[b-0pqaefyii2] { margin-bottom: 1rem; }
.lab-rowfilter .card-header[b-0pqaefyii2] { display: flex; align-items: center; justify-content: space-between; }
.rf-view[b-0pqaefyii2] { display: inline-flex; gap: .35rem; }
.rf-empty[b-0pqaefyii2] { margin: 0; line-height: 1.5; }
.rf-lead[b-0pqaefyii2] { display: flex; align-items: center; gap: .4rem; font-size: .85rem; color: #334155; margin-bottom: .6rem; }
.rf-combine[b-0pqaefyii2] { width: auto; min-width: 4.5rem; }
.rf-conditions[b-0pqaefyii2] { display: flex; flex-direction: column; gap: .5rem; margin-bottom: .6rem; }
.rf-cond[b-0pqaefyii2] { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; }
.rf-col[b-0pqaefyii2] { flex: 0 1 12rem; min-width: 8rem; }
.rf-op[b-0pqaefyii2] { flex: 0 1 12rem; min-width: 8rem; }
.rf-val[b-0pqaefyii2] { flex: 1 1 8rem; min-width: 6rem; }
.rf-and[b-0pqaefyii2] { font-size: .8rem; color: #64748b; }
.rf-remove[b-0pqaefyii2] { color: #94a3b8; }
.rf-remove:hover[b-0pqaefyii2] { color: #dc2626; }
.rf-add[b-0pqaefyii2] { margin-top: .2rem; }
.rf-summary[b-0pqaefyii2] { color: #334155; }
.rf-summary strong[b-0pqaefyii2] { color: #0f172a; }
.rf-required-note[b-0pqaefyii2] { margin: .1rem 0 .5rem; color: #334155; line-height: 1.5; }
.rf-required-note strong[b-0pqaefyii2] { color: #0f172a; }

/* per-column mandatory gate, sits under the fall-through block in the focus panel */
.focus-required[b-0pqaefyii2] { border: 1px solid #eef2f7; border-radius: 8px; padding: .55rem .7rem; margin-bottom: .9rem; background: #fafbfc; }
.focus-required .fb-empty[b-0pqaefyii2] { margin-top: 0; align-items: flex-start; }

/* Dropped rows are greyed + struck so the "why" reads at a glance in either view. */
.lab-table tr.row-dropped td[b-0pqaefyii2] { color: #94a3b8; background: #fafbfc; text-decoration: line-through; text-decoration-color: #cbd5e1; }
.lab-table tr.row-dropped .td-source:first-child[b-0pqaefyii2] { box-shadow: inset 3px 0 0 #f1a4a4; }

/* Narrow screens: the inspector drops back under the grid so it isn't cramped. The explicit
   column/row pins from the wide layout must be released too, or the inspector would sit in a
   phantom second column. */
@media (max-width: 1280px) {
    .lab-main.has-focus[b-0pqaefyii2], .lab-main.has-assistant[b-0pqaefyii2] { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
    .lab-main.has-focus .lab-rowfilter[b-0pqaefyii2], .lab-main.has-focus .lab-grid[b-0pqaefyii2],
    .lab-main.has-assistant .lab-rowfilter[b-0pqaefyii2], .lab-main.has-assistant .lab-grid[b-0pqaefyii2],
    .lab-main.has-focus .lab-focus[b-0pqaefyii2], .lab-assistant[b-0pqaefyii2] { grid-column: auto; grid-row: auto; }
    .lab-focus[b-0pqaefyii2], .lab-assistant[b-0pqaefyii2] { position: static; max-height: none; }
}
@media (max-width: 1100px) {
    .lab[b-0pqaefyii2] { grid-template-columns: 1fr; }
    .lab-rail[b-0pqaefyii2] { position: static; }
}
/* /Components/Pages/NotificationsAdmin.razor.rz.scp.css */
/* Notification email admin (#1155). */
.notify-admin .card[b-m0peo1e56c] {
    margin-bottom: 1rem;
}

.notify-admin__setup[b-m0peo1e56c] {
    margin: 0 0 0.5rem;
    padding-left: 1.25rem;
}

.notify-admin__pick[b-m0peo1e56c] {
    max-width: 24rem;
    margin-bottom: 1rem;
}

.notify-admin__row[b-m0peo1e56c] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
    margin: 1rem 0 0.5rem;
}

.notify-table td[b-m0peo1e56c],
.notify-table th[b-m0peo1e56c] {
    vertical-align: middle;
}

.notify-check[b-m0peo1e56c] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
/* /Components/Pages/NotificationSettings.razor.rz.scp.css */
/* Notification settings (#1155): a settings table, a small grid for the digest and quiet hours. */
.notify-settings .card[b-pqfgemyulf] {
    margin-bottom: 1rem;
}

.notify-table td[b-pqfgemyulf],
.notify-table th[b-pqfgemyulf] {
    vertical-align: middle;
}

.notify-table select[b-pqfgemyulf] {
    min-width: 10rem;
}

.notify-check[b-pqfgemyulf] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.notify-grid[b-pqfgemyulf] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 1rem;
}

.notify-grid__note[b-pqfgemyulf] {
    grid-column: 1 / -1;
    margin: 0;
}

.notify-actions[b-pqfgemyulf] {
    display: flex;
    justify-content: flex-end;
}
/* /Components/Pages/OpsDashboard.razor.rz.scp.css */
.ops-card-grid[b-st6ebhvv4s] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.ops-metric-card[b-st6ebhvv4s] {
    padding: 1.1rem 1.25rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 120px;
}

.ops-metric-title[b-st6ebhvv4s] {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--text-muted, #64748b);
}

.ops-metric-value[b-st6ebhvv4s] {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--text-strong, #0f172a);
}

.ops-metric-sub[b-st6ebhvv4s] {
    font-size: 0.8rem;
}

.ops-spark[b-st6ebhvv4s] {
    margin-top: auto;
    width: 100%;
    height: 28px;
    display: block;
    color: var(--accent, #6366f1);
}

/* Tone accents — a restrained left edge, colour only where it earns attention. */
.ops-tone-good[b-st6ebhvv4s] { border-left: 3px solid var(--success, #16a34a); }
.ops-tone-good .ops-spark[b-st6ebhvv4s] { color: var(--success, #16a34a); }
.ops-tone-bad[b-st6ebhvv4s] { border-left: 3px solid var(--danger, #dc2626); }
.ops-tone-bad .ops-spark[b-st6ebhvv4s] { color: var(--danger, #dc2626); }
.ops-tone-neutral[b-st6ebhvv4s] { border-left: 3px solid var(--border, #e2e8f0); }

.ops-panel-grid[b-st6ebhvv4s] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.ops-bar-row[b-st6ebhvv4s] {
    display: grid;
    grid-template-columns: 5.5rem 1fr 3rem;
    align-items: center;
    gap: 0.75rem;
    padding: 0.35rem 0;
}

.ops-bar-label[b-st6ebhvv4s] {
    font-size: 0.82rem;
    color: var(--text-muted, #64748b);
}

.ops-bar-track[b-st6ebhvv4s] {
    height: 0.55rem;
    background: var(--surface-sunken, #f1f5f9);
    border-radius: 999px;
    overflow: hidden;
}

.ops-bar-fill[b-st6ebhvv4s] {
    display: block;
    height: 100%;
    background: var(--accent, #6366f1);
    border-radius: 999px;
    transition: width 0.3s ease;
}

.ops-bar-value[b-st6ebhvv4s] {
    text-align: right;
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
}

.ops-bar-breach .ops-bar-fill[b-st6ebhvv4s] { background: var(--danger, #dc2626); }
.ops-bar-breach .ops-bar-label[b-st6ebhvv4s] { color: var(--danger, #dc2626); font-weight: 600; }

.ops-bar-note[b-st6ebhvv4s] {
    font-size: 0.75rem;
    margin-top: 0.5rem;
}

.ops-slo-breach[b-st6ebhvv4s] { background: color-mix(in srgb, var(--danger, #dc2626) 6%, transparent); }
/* /Components/Pages/OutputDesigner.razor.rz.scp.css */
/* Output Designer — calm, restrained, enterprise. Layout numbers follow the Mapping Lab. */

/* ── profile identity header ─────────────────────────────────────────── */
.od-identity[b-4fh4c3d40k] { min-width: 0; flex: 1; }
.od-name-input[b-4fh4c3d40k] {
    font-size: 1.5rem; font-weight: 600; line-height: 1.2; color: #0f172a;
    border: 1px solid transparent; border-radius: 8px;
    padding: .15rem .4rem; margin: -.15rem -.4rem .1rem;
    width: 100%; max-width: 32rem; background: transparent;
}
.od-name-input:hover[b-4fh4c3d40k] { border-color: #e2e8f0; }
.od-name-input:focus[b-4fh4c3d40k] { border-color: #93c5fd; background: #fff; outline: none; }
.od-name-input[b-4fh4c3d40k]::placeholder { color: #94a3b8; font-weight: 500; }

.od-id-sub[b-4fh4c3d40k] { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin: 0; }
.od-id-field[b-4fh4c3d40k] { display: inline-flex; align-items: center; gap: .35rem; color: #64748b; }
.od-id-field label[b-4fh4c3d40k] { font-size: .8rem; }
.od-id-field input[b-4fh4c3d40k] {
    font: inherit; font-size: .8rem; color: #334155;
    border: 1px solid #e2e8f0; border-radius: 6px; padding: .1rem .4rem;
    width: 12rem; background: #fff;
}
.od-id-field input:disabled[b-4fh4c3d40k] { background: #f8fafc; color: #64748b; border-color: #eef2f7; }

.od-desc-input[b-4fh4c3d40k] {
    width: 100%; max-width: 48rem; margin-top: .6rem;
    font-size: .85rem; color: #475569;
    border: 1px solid #e2e8f0; border-radius: 8px; padding: .4rem .6rem; background: #fff;
}
.od-desc-input:focus[b-4fh4c3d40k] { border-color: #93c5fd; outline: none; }

.page-header-actions[b-4fh4c3d40k] { display: flex; gap: .5rem; align-items: center; }

.od-legacy[b-4fh4c3d40k] {
    background: #fffbeb; border: 1px solid #fde68a; color: #92400e;
    margin-top: .7rem;
}

/* ── three-zone layout ───────────────────────────────────────────────── */
.od-designer[b-4fh4c3d40k] {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr) minmax(380px, 36%);
    gap: 1rem; align-items: start;
}
.od-designer[b-4fh4c3d40k]  .od-rail { position: sticky; top: 1rem; }
.od-centre[b-4fh4c3d40k] { display: flex; flex-direction: column; min-width: 0; }
.od-right[b-4fh4c3d40k] {
    display: flex; flex-direction: column; gap: 1rem; min-width: 0;
    position: sticky; top: 1rem;
    max-height: calc(100vh - 2rem);
}
.od-right[b-4fh4c3d40k]  .od-inspector { max-height: 55vh; overflow: hidden; }
.od-right[b-4fh4c3d40k]  .od-preview { flex: 1; min-height: 0; overflow: hidden; }

/* Narrow screens: the right column drops below the centre, then everything stacks. */
@media (max-width: 1280px) {
    .od-designer[b-4fh4c3d40k] { grid-template-columns: 260px minmax(0, 1fr); }
    .od-right[b-4fh4c3d40k] { grid-column: 2; position: static; max-height: none; }
    .od-right[b-4fh4c3d40k]  .od-inspector { max-height: none; }
}
@media (max-width: 1100px) {
    .od-designer[b-4fh4c3d40k] { grid-template-columns: 1fr; }
    .od-designer[b-4fh4c3d40k]  .od-rail { position: static; }
    .od-right[b-4fh4c3d40k] { grid-column: 1; }
}
/* /Components/Pages/PiiPacks.razor.rz.scp.css */
/* PII packs admin — pack rows and kind chips. */

.pack-row[b-nvr2fg8t16] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    /* #1179: inner side padding so pack entries do not sit against the card edge. */
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.pack-row:last-child[b-nvr2fg8t16] {
    border-bottom: 0;
}

.pack-row-actions[b-nvr2fg8t16] {
    display: flex;
    gap: 0.5rem;
    flex: 0 0 auto;
}

.pii-kind-chip[b-nvr2fg8t16] {
    display: inline-block;
    font-size: 0.75rem;
    padding: 0.1rem 0.5rem;
    border-radius: 0.75rem;
    background: var(--color-surface-2, #f1f5f9);
    color: var(--color-text-secondary, #475569);
    border: 1px solid var(--color-border, #e2e8f0);
}

/* #1179: the pack a guardrail rules view linked to. */
.pack-row.is-target[b-nvr2fg8t16] {
    outline: 2px solid var(--color-primary, #1d4ed8);
    outline-offset: -2px;
    border-radius: 6px;
    background: var(--color-surface-muted, #f8fafc);
}

.pack-row:focus[b-nvr2fg8t16] {
    outline: 2px solid var(--color-primary, #1d4ed8);
    outline-offset: -2px;
}

/* #1182: the sentences that prove a kind, under its row; the library of known kinds; the proofs. */
[b-nvr2fg8t16] .kind-examples td {
    padding-top: 0;
    border-top: 0;
}

[b-nvr2fg8t16] .kind-examples-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

[b-nvr2fg8t16] .kind-examples-field {
    display: grid;
    gap: 0.25rem;
}

[b-nvr2fg8t16] .kind-examples-field textarea {
    font-size: 0.85rem;
}

[b-nvr2fg8t16] .kind-proof {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
}

[b-nvr2fg8t16] .kind-proof.is-ok,
[b-nvr2fg8t16] .kind-proof-list li.is-ok {
    color: var(--color-healthy, #15803d);
}

[b-nvr2fg8t16] .kind-proof.is-failed,
[b-nvr2fg8t16] .kind-proof-list li.is-failed {
    color: var(--color-down, #b91c1c);
}

[b-nvr2fg8t16] .kind-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

[b-nvr2fg8t16] .kind-library {
    margin-top: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 6px;
    background: var(--color-surface-muted, #f8fafc);
}

[b-nvr2fg8t16] .kind-library-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

[b-nvr2fg8t16] .kind-library-head .form-control {
    flex: 1 1 14rem;
    max-width: 24rem;
}

[b-nvr2fg8t16] .kind-library-list {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.25rem;
    max-height: 22rem;
    overflow: auto;
}

[b-nvr2fg8t16] .kind-library-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.4rem 0.5rem;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-surface, #fff);
    border-radius: 4px;
}

[b-nvr2fg8t16] .kind-proof-list {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.25rem;
    font-size: 0.9rem;
}

/* #1182: describe a kind in words; the draft and its proof. */
[b-nvr2fg8t16] .kind-describe {
    margin-top: 0.5rem;
    padding: 0.6rem 0.75rem;
    border: 1px dashed var(--color-border, #e2e8f0);
    border-radius: 6px;
    display: grid;
    gap: 0.5rem;
}

[b-nvr2fg8t16] .kind-draft {
    padding: 0.5rem 0.75rem;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 6px;
}

[b-nvr2fg8t16] .kind-draft p {
    margin: 0 0 0.3rem;
}

[b-nvr2fg8t16] .kind-draft-regex {
    word-break: break-all;
    font-size: 0.85rem;
}

[b-nvr2fg8t16] .kind-describe .kind-actions .form-control {
    flex: 1 1 16rem;
    max-width: 28rem;
}
/* /Components/Pages/PipelineConfig.razor.rz.scp.css */
/* ── Pipeline config: two-column dense layout ──
   Left rail summarises every section at a glance; right column shows the
   editable forms in a compact spec-sheet style. */

.pc-shell[b-l53c8v5cvm] {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 1.5rem;
    align-items: start;
}

@media (max-width: 960px) {
    .pc-shell[b-l53c8v5cvm] {
        grid-template-columns: 1fr;
    }
}

/* ── Left rail ─────────────────────────────────────────────────────────── */

.pc-rail[b-l53c8v5cvm] {
    position: sticky;
    top: 1rem;
    align-self: start;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.375rem;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}

.pc-rail-item[b-l53c8v5cvm] {
    display: block;
    padding: 0.45rem 0.6rem;
    border-radius: 4px;
    text-decoration: none;
    color: inherit;
    border-left: 2px solid transparent;
}

.pc-rail-item:hover[b-l53c8v5cvm] {
    background: var(--color-surface-alt, #f6f8fa);
    text-decoration: none;
}

.pc-rail-item:target[b-l53c8v5cvm],
.pc-rail-item.is-active[b-l53c8v5cvm] {
    background: var(--color-surface-alt, #eef2f6);
    border-left-color: var(--color-brand-teal, #0a8fa8);
}

.pc-rail-title[b-l53c8v5cvm] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    line-height: 1.2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
}

.pc-rail-summary[b-l53c8v5cvm] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    line-height: 1.3;
    margin-top: 0.15rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pc-rail-count[b-l53c8v5cvm] {
    font-size: 0.7rem;
    background: var(--color-surface-alt, #eef2f6);
    color: var(--color-text-secondary);
    padding: 0 0.4rem;
    border-radius: 10px;
    font-weight: 500;
}

.pc-rail-warn[b-l53c8v5cvm] {
    color: var(--color-warning, #b45309);
    font-weight: 600;
}

/* Rail group label — separates the core / processing / advanced clusters in
   the nav so it mirrors the grouped cards on the right. */
.pc-rail-group[b-l53c8v5cvm] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    padding: 0.6rem 0.6rem 0.25rem;
    margin-top: 0.35rem;
    border-top: 1px solid var(--color-border);
}

/* ── Right column: dense cards ─────────────────────────────────────────── */

.pc-body[b-l53c8v5cvm] {
    min-width: 0;
}

/* Tighten the global .card chrome within this page only. Scoped CSS rewrites
   to attribute selectors so this won't bleed outside PipelineConfig. */
.pc-body[b-l53c8v5cvm]  .card {
    margin-bottom: 0.75rem;
    box-shadow: none;
}

.pc-body[b-l53c8v5cvm]  .card:hover {
    box-shadow: none;
}

/* Flash highlight when a stage row routes the operator to its settings card
   (#723). Outline rather than box-shadow so the card chrome above stays
   untouched; the class is cleared once the animation has run so a repeat
   click on the same stage flashes again. */
.pc-body[b-l53c8v5cvm]  .card.pc-card-flash {
    animation: pc-card-flash-b-l53c8v5cvm 1.8s ease-out;
}

@keyframes pc-card-flash-b-l53c8v5cvm {
    0%, 35% {
        outline: 3px solid rgba(10, 143, 168, 0.45);
        outline-offset: 2px;
    }
    100% {
        outline: 3px solid rgba(10, 143, 168, 0);
        outline-offset: 2px;
    }
}

.pc-body[b-l53c8v5cvm]  .card-header {
    padding: 0.7rem 1rem 0.55rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pc-body[b-l53c8v5cvm]  .card-header h2 {
    font-size: 0.95rem;
    margin: 0;
    flex: 1;
}

.pc-body[b-l53c8v5cvm]  .card-header > p.muted,
.pc-body[b-l53c8v5cvm]  .card-header .card-header-row > div > p.muted {
    display: none;
}

.pc-body[b-l53c8v5cvm]  .card-body {
    padding: 0.85rem 1rem;
}

.pc-body[b-l53c8v5cvm]  .config-form {
    gap: 0.7rem;
}

.pc-body[b-l53c8v5cvm]  .form-row {
    gap: 0.25rem;
    max-width: 620px;
}

.pc-body[b-l53c8v5cvm]  .form-row label {
    font-size: 0.8125rem;
}

.pc-body[b-l53c8v5cvm]  .form-row .form-hint {
    font-size: 0.78rem;
}

/* Info icon — replaces verbose intro paragraphs. Hover surfaces a tooltip
   via the native `title` attribute. */
.pc-info[b-l53c8v5cvm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    font-size: 0.7rem;
    font-weight: 700;
    font-family: var(--font-title);
    line-height: 1;
    border-radius: 50%;
    background: var(--color-surface-alt, #eef2f6);
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
    cursor: help;
    user-select: none;
    flex: 0 0 auto;
}

.pc-info:hover[b-l53c8v5cvm] {
    background: var(--color-brand-teal, #0a8fa8);
    color: white;
    border-color: var(--color-brand-teal, #0a8fa8);
}

/* Anchor scroll offset — keep the section heading clear of any sticky header. */
.pc-body[b-l53c8v5cvm]  .card {
    scroll-margin-top: 1rem;
}

/* ── Collapsible section headers ──
   Each card header doubles as an expand/collapse toggle. Collapsed cards show
   a one-line summary inline so the page reads as a scannable spec sheet; click
   anywhere on the header (or Enter/Space when focused) to open and edit. */
.pc-body[b-l53c8v5cvm]  .card-header.pc-collapsible {
    cursor: pointer;
    user-select: none;
}

.pc-body[b-l53c8v5cvm]  .card-header.pc-collapsible:hover {
    background: var(--color-surface-alt, #f6f8fa);
}

.pc-body[b-l53c8v5cvm]  .card-header.pc-collapsible:focus-visible {
    outline: 2px solid var(--color-brand-teal, #0a8fa8);
    outline-offset: -2px;
}

/* The header-row variant (Source, Export) already lays out as flex space-between;
   make the row fill the clickable header so the summary and actions still align. */
.pc-body[b-l53c8v5cvm]  .card-header.pc-collapsible .card-header-row {
    flex: 1;
    min-width: 0;
}

.pc-chevron[b-l53c8v5cvm] {
    flex: 0 0 auto;
    width: 0.9rem;
    font-size: 0.7rem;
    line-height: 1;
    color: var(--color-text-secondary);
    text-align: center;
}

.pc-header-summary[b-l53c8v5cvm] {
    margin-left: auto;
    padding-left: 0.75rem;
    font-size: 0.78rem;
    font-weight: 400;
    color: var(--color-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

/* ── Card group separators ──
   Split the cards into core / processing / advanced clusters. The label rides
   on a hairline rule so the three areas read as distinct without heavy chrome. */
.pc-body[b-l53c8v5cvm]  .pc-group-sep {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 1.4rem 0.25rem 0.6rem;
}

.pc-body[b-l53c8v5cvm]  .pc-group-sep::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--color-border);
}

.pc-body[b-l53c8v5cvm]  .pc-group-sep span {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
}

/* ── Input kind picker (General card) ──
   Two-card radio choice between "PDF documents" and "E-invoice XML". Same
   visual language as the classifier-mode picker so operators recognise the
   pattern across pages. */
.pc-body[b-l53c8v5cvm]  .input-kind-options {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    max-width: 28rem;
}

.pc-body[b-l53c8v5cvm]  .input-kind-option {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: 0.45rem;
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color 0.12s ease, background-color 0.12s ease;
    font-weight: normal;
}

.pc-body[b-l53c8v5cvm]  .input-kind-option:hover {
    border-color: var(--color-brand-teal, #0a8fa8);
}

.pc-body[b-l53c8v5cvm]  .input-kind-option.selected {
    border-color: var(--color-brand-teal, #0a8fa8);
    background: var(--color-surface-alt, #eef2f6);
}

.pc-body[b-l53c8v5cvm]  .input-kind-option input[type="radio"] {
    margin: 0.2rem 0 0 0;
    flex: 0 0 auto;
}

.pc-body[b-l53c8v5cvm]  .input-kind-title {
    font-weight: 600;
    font-size: 0.85rem;
    line-height: 1.2;
}

.pc-body[b-l53c8v5cvm]  .input-kind-desc {
    font-size: 0.76rem;
    color: var(--color-text-secondary);
    margin-top: 0.15rem;
}

/* Entities section — virtual sub-pipeline selection */
.pc-entity-checklist[b-l53c8v5cvm] {
    max-height: 18rem;
    overflow: auto;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 6px;
    padding: 0.35rem 0.5rem;
}

.pc-entity-row[b-l53c8v5cvm] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 400;
    padding: 0.2rem 0;
}

.pc-entity-row .pc-entity-name[b-l53c8v5cvm] {
    flex: 0 1 auto;
}

/* Entities checklist: multi-column grid so 100+ entities stay scannable without a mile of scroll. */
.pc-entity-grid[b-l53c8v5cvm] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    column-gap: 1rem;
    align-content: start;
}

/* Summary + Select all / Clear inline beside the filter. */
.pc-entity-actions[b-l53c8v5cvm] {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pc-via-group[b-l53c8v5cvm] {
    font-size: 0.72rem;
}
/* /Components/Pages/Pipelines.razor.rz.scp.css */
/* Virtual sub-pipeline rows nested under their master pipeline. */
.pl-sub-row td[b-mzpp5m9hos] {
    background: var(--color-surface-alt, #f7f9fb);
    border-top: none;
}

.pl-sub-marker[b-mzpp5m9hos] {
    color: var(--color-text-secondary, #6b7280);
    margin-right: 0.4rem;
}

.pl-sub-foot td[b-mzpp5m9hos] {
    background: var(--color-surface-alt, #f7f9fb);
    border-top: none;
    padding-top: 0;
}

.pl-toggle[b-mzpp5m9hos] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 400;
    white-space: nowrap;
}

/* Single-source inline path in the Sources column. */
.pl-source-path[b-mzpp5m9hos] {
    font-size: 0.82rem;
}

/* Watched-paths panel shown when a pipeline row is expanded. */
.pl-paths-row td[b-mzpp5m9hos] {
    background: var(--color-surface-alt, #f7f9fb);
    border-top: none;
}

.pl-paths[b-mzpp5m9hos] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.15rem 0;
}

.pl-paths-heading[b-mzpp5m9hos] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary, #6b7280);
}

.pl-path-item[b-mzpp5m9hos] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.82rem;
}

.pl-path-patterns[b-mzpp5m9hos] {
    font-size: 0.78rem;
}

/* Function column: small stroke icon + label (icon colour = restrained brand tint). */
.pl-fn[b-mzpp5m9hos] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    white-space: nowrap;
}

.pl-fn-icon[b-mzpp5m9hos] {
    display: inline-flex;
    color: var(--color-brand, #2b6cb0);
    opacity: 0.85;
}

/* ::deep — the svg arrives via MarkupString, so it carries no scope attribute. */
.pl-fn-icon[b-mzpp5m9hos]  svg {
    width: 1rem;
    height: 1rem;
}

/* Section header rows for the "group by entity association" view. */
.pl-scope-head td[b-mzpp5m9hos] {
    background: var(--color-surface-alt, #f7f9fb);
    border-top: none;
    padding-top: 0.9rem;
    padding-bottom: 0.35rem;
}

.pl-scope-title[b-mzpp5m9hos] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary, #6b7280);
}

.pl-scope-hint[b-mzpp5m9hos] {
    margin-left: 0.6rem;
    font-size: 0.78rem;
    color: var(--color-text-secondary, #6b7280);
}

/* Entity-association chips in the Entity scope column. */
.pl-scope-chips[b-mzpp5m9hos] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.2rem;
}

.pl-scope-chip[b-mzpp5m9hos],
.pl-match-chip[b-mzpp5m9hos] {
    font-size: 0.72rem;
}

/* Why-this-matches line under the pipeline name when a Serves selection is active. */
.pl-match-line[b-mzpp5m9hos] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.3rem;
}

/* Header toolbar: filters + create buttons on one wrapping row, right-aligned. */
.pl-toolbar[b-mzpp5m9hos] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pl-filter[b-mzpp5m9hos] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.pl-filter label[b-mzpp5m9hos] {
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--color-text-secondary, #6b7280);
    white-space: nowrap;
}

/* Keeps long entity names from blowing the toolbar apart. */
.pl-filter select[b-mzpp5m9hos] {
    max-width: 13rem;
}

.pl-toolbar-divider[b-mzpp5m9hos] {
    width: 1px;
    align-self: stretch;
    background: var(--color-border, #e5e7eb);
}

.pl-serves-note[b-mzpp5m9hos] {
    margin: 0 0 0.9rem;
    font-size: 0.85rem;
}

/* Pipeline id folded under the name — kept for queue-job wiring and delete-confirm typing. */
.pl-id[b-mzpp5m9hos] {
    font-size: 0.75rem;
    color: var(--color-text-secondary, #6b7280);
    margin-top: 0.1rem;
}
/* /Components/Pages/PipelineWizard.razor.rz.scp.css */
.kind-picker[b-uwearx3pa3] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 0.5rem;
}

@media (max-width: 900px) {
    .kind-picker[b-uwearx3pa3] {
        grid-template-columns: 1fr;
    }
}

.kind-tile[b-uwearx3pa3] {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    padding: 1rem 1.125rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}

.kind-tile:hover[b-uwearx3pa3] {
    border-color: var(--color-brand-teal);
    background: var(--color-surface-raised);
}

.kind-tile.is-selected[b-uwearx3pa3] {
    border-color: var(--color-brand);
    background: #f1f6fc;
    box-shadow: 0 0 0 1px var(--color-brand) inset;
}

.kind-tile:focus-within[b-uwearx3pa3] {
    outline: 2px solid var(--color-brand-teal);
    outline-offset: 2px;
}

.kind-tile input[type="radio"][b-uwearx3pa3] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.kind-tile__icon[b-uwearx3pa3] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: var(--color-surface-raised);
    color: var(--color-brand);
    border: 1px solid var(--color-border);
}

.kind-tile.is-selected .kind-tile__icon[b-uwearx3pa3] {
    background: var(--color-brand);
    color: #fff;
    border-color: var(--color-brand);
}

.kind-tile__icon svg[b-uwearx3pa3] {
    width: 1.125rem;
    height: 1.125rem;
}

.kind-tile__body[b-uwearx3pa3] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.kind-tile__title[b-uwearx3pa3] {
    font-family: var(--font-title);
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--color-text-primary);
    line-height: 1.25;
}

.kind-tile__desc[b-uwearx3pa3] {
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.4;
}

.kind-tile__check[b-uwearx3pa3] {
    position: absolute;
    top: 0.625rem;
    right: 0.625rem;
    width: 1rem;
    height: 1rem;
    color: var(--color-brand);
    opacity: 0;
    transition: opacity 0.15s;
}

.kind-tile.is-selected .kind-tile__check[b-uwearx3pa3] {
    opacity: 1;
}
/* /Components/Pages/PreparationProfileEditor.razor.rz.scp.css */
/* Typed settings form for a preparation step. Each setting is a labelled inline row with the
   control, an optional unit, and a description hint — so operators can amend values without
   knowing the underlying setting key. */
.prep-settings-form[b-nxkz7xbx51] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin: 0.25rem 0 0.75rem;
}

.prep-settings-form .form-row-inline[b-nxkz7xbx51] {
    flex-wrap: wrap;
}

.prep-field-label[b-nxkz7xbx51] {
    flex: 0 0 11rem;
    width: 11rem;
}

.prep-field-unit[b-nxkz7xbx51] {
    color: var(--color-text-secondary, #64748b);
    font-size: 0.85rem;
    margin-left: -0.5rem;
}
/* /Components/Pages/Reconciliation/CloseCockpit.razor.rz.scp.css */
.close-header[b-q6cjy5qz0q] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.close-empty-card[b-q6cjy5qz0q] {
    padding: 1.5rem;
}

.close-error[b-q6cjy5qz0q] {
    margin: 0 0 1rem;
    padding: 0.6rem 0.9rem;
    border: 1px solid #fecaca;
    border-radius: 8px;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 0.85rem;
}

/* ── Scope controls ─────────────────────────────────────────────────────────── */

.close-controls[b-q6cjy5qz0q] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
    padding: 1rem 1.25rem 1.1rem;
    margin-bottom: 1.25rem;
}

.close-field[b-q6cjy5qz0q] {
    display: grid;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #475569;
    min-width: 10rem;
}

.close-field select[b-q6cjy5qz0q],
.close-field input[b-q6cjy5qz0q] {
    padding: 0.45rem 0.65rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font: inherit;
    font-weight: 400;
    color: var(--color-text-primary, #0f172a);
    background: #fff;
    white-space: pre;
}

.close-field select:focus[b-q6cjy5qz0q],
.close-field input:focus[b-q6cjy5qz0q] {
    outline: 2px solid var(--color-brand-teal, #0ea5c6);
    outline-offset: 1px;
}

/* ── Completion summary ─────────────────────────────────────────────────────── */

.close-summary[b-q6cjy5qz0q] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.close-kpi[b-q6cjy5qz0q] {
    display: grid;
    gap: 0.15rem;
    padding: 1rem 1.25rem;
}

.close-kpi-value[b-q6cjy5qz0q] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text-primary, #0f172a);
}

.close-kpi-label[b-q6cjy5qz0q] {
    font-size: 0.78rem;
    color: #64748b;
}

.close-kpi-completion .close-kpi-value[b-q6cjy5qz0q] {
    color: var(--color-brand-teal, #0ea5c6);
}

.close-kpi-late .close-kpi-value[b-q6cjy5qz0q] {
    color: #b91c1c;
}

/* ── Board grouped by entity node ───────────────────────────────────────────── */

.close-board[b-q6cjy5qz0q] {
    display: grid;
    gap: 1rem;
}

.close-node[b-q6cjy5qz0q] {
    padding: 1.1rem 1.4rem 1.25rem;
}

.close-node-head[b-q6cjy5qz0q] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.6rem;
}

.close-node-title[b-q6cjy5qz0q] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.close-kind-badge[b-q6cjy5qz0q] {
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.5;
    background: #f1f5f9;
    color: #475569;
}

.close-marker[b-q6cjy5qz0q] {
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.5;
}

.close-marker-open[b-q6cjy5qz0q] {
    background: #f1f5f9;
    color: #475569;
}

.close-marker-inprogress[b-q6cjy5qz0q] {
    background: #fef9c3;
    color: #854d0e;
}

.close-marker-done[b-q6cjy5qz0q] {
    background: #dcfce7;
    color: #15803d;
}

.close-node-rollup[b-q6cjy5qz0q] {
    margin-left: auto;
    font-size: 0.85rem;
    font-weight: 700;
    color: #475569;
}

.close-node-empty[b-q6cjy5qz0q] {
    margin: 0;
    font-size: 0.85rem;
}

/* ── Rec rows ───────────────────────────────────────────────────────────────── */

.close-recs[b-q6cjy5qz0q] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.close-recs th[b-q6cjy5qz0q] {
    padding: 0.35rem 0.5rem;
    text-align: left;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
    border-bottom: 1px solid #f1f5f9;
}

.close-recs td[b-q6cjy5qz0q] {
    padding: 0.5rem;
    border-bottom: 1px solid #f8fafc;
    vertical-align: middle;
}

.close-rec-name[b-q6cjy5qz0q] {
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.close-rec-date[b-q6cjy5qz0q] {
    color: #64748b;
    white-space: nowrap;
}

.close-recs-actions[b-q6cjy5qz0q] {
    text-align: right;
    white-space: nowrap;
}

.close-state[b-q6cjy5qz0q] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.5;
}

.close-state-complete[b-q6cjy5qz0q] {
    background: #dcfce7;
    color: #15803d;
}

.close-state-exceptions[b-q6cjy5qz0q] {
    background: #fef9c3;
    color: #854d0e;
}

.close-state-notrun[b-q6cjy5qz0q] {
    background: #f1f5f9;
    color: #64748b;
}

.close-state-running[b-q6cjy5qz0q] {
    background: #e0f2fe;
    color: #0369a1;
}

.close-state-failed[b-q6cjy5qz0q] {
    background: #fee2e2;
    color: #b91c1c;
}

.close-late[b-q6cjy5qz0q] {
    display: inline-block;
    margin-left: 0.45rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: #fee2e2;
    color: #b91c1c;
}
/* /Components/Pages/Reconciliation/DailyCloseBoardPage.razor.rz.scp.css */
/* #472 — Night-audit morning board. Calm, premium-enterprise restraint: soft state chips, generous spacing,
   a scannable grid. Colours mirror the close cockpit's state palette so the two boards read consistently. */

.cb-header[b-d9j620op1t] {
    margin-bottom: 1.25rem;
}

.cb-empty-card[b-d9j620op1t] {
    padding: 1.5rem;
}

/* Today's rollup line — the headline the controller reads first. */
.cb-rollup[b-d9j620op1t] {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    padding: 0.9rem 1.25rem;
    margin-bottom: 1rem;
}

.cb-rollup-day[b-d9j620op1t] {
    font-weight: 700;
    color: #0f172a;
}

.cb-rollup-figures[b-d9j620op1t] {
    color: #334155;
    font-size: 0.95rem;
}

.cb-rollup-clean[b-d9j620op1t] { color: #15803d; font-weight: 600; }
.cb-rollup-review[b-d9j620op1t] { color: #b45309; font-weight: 600; }
.cb-rollup-notrun[b-d9j620op1t] { color: #64748b; font-weight: 600; }

/* The grid. Horizontal scroll on narrow viewports so the day columns never crush. */
.cb-board-card[b-d9j620op1t] {
    padding: 0.5rem;
}

.cb-board-scroll[b-d9j620op1t] {
    overflow-x: auto;
}

.cb-board[b-d9j620op1t] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0.35rem;
}

.cb-board th[b-d9j620op1t],
.cb-board td[b-d9j620op1t] {
    text-align: left;
    vertical-align: top;
}

.cb-board thead th[b-d9j620op1t] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    padding: 0.35rem 0.5rem;
    white-space: nowrap;
}

.cb-site-col[b-d9j620op1t] { min-width: 12rem; }
.cb-trend-col[b-d9j620op1t] { min-width: 8rem; }
.cb-day-col[b-d9j620op1t] { min-width: 9rem; }

.cb-site-name[b-d9j620op1t] {
    font-weight: 600;
    padding: 0.5rem;
    white-space: nowrap;
}

.cb-site-name a[b-d9j620op1t] {
    color: #0f172a;
    text-decoration: none;
}

.cb-site-name a:hover[b-d9j620op1t] {
    text-decoration: underline;
}

/* Trend marker. */
.cb-trend[b-d9j620op1t] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.cb-trend-improving[b-d9j620op1t] { background: #dcfce7; color: #15803d; }
.cb-trend-worsening[b-d9j620op1t] { background: #fee2e2; color: #b91c1c; }
.cb-trend-steady[b-d9j620op1t] { background: #e2e8f0; color: #475569; }
.cb-trend-unknown[b-d9j620op1t] { background: #f1f5f9; color: #94a3b8; }

/* Cells. */
.cb-cell-td[b-d9j620op1t] {
    padding: 0;
}

.cb-cell-link[b-d9j620op1t] {
    display: block;
    text-decoration: none;
}

.cb-cell[b-d9j620op1t] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    min-height: 3rem;
    border: 1px solid transparent;
    transition: box-shadow 0.12s ease, transform 0.12s ease;
}

.cb-cell-link:hover .cb-cell[b-d9j620op1t] {
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.14);
    transform: translateY(-1px);
}

.cb-cell-label[b-d9j620op1t] {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.2;
}

.cb-cell-green[b-d9j620op1t] { background: #dcfce7; color: #14532d; border-color: #bbf7d0; }
.cb-cell-amber[b-d9j620op1t] { background: #fef9c3; color: #713f12; border-color: #fde68a; }
.cb-cell-red[b-d9j620op1t] { background: #fee2e2; color: #7f1d1d; border-color: #fecaca; }
.cb-cell-notrun[b-d9j620op1t] {
    background: #f8fafc;
    color: #94a3b8;
    border-color: #e2e8f0;
    border-style: dashed;
}

.cb-cell-meta[b-d9j620op1t] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
}

.cb-cell-exc[b-d9j620op1t] {
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.6);
}

.cb-cell-journal[b-d9j620op1t] {
    font-size: 0.66rem;
    font-weight: 600;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
}

.cb-cell-journal-posted[b-d9j620op1t] { background: #bbf7d0; color: #166534; }
.cb-cell-journal-held[b-d9j620op1t] { background: #fed7aa; color: #9a3412; }
.cb-cell-journal-staged[b-d9j620op1t] { background: #e0e7ff; color: #3730a3; }
.cb-cell-journal-notemitted[b-d9j620op1t] { background: #fee2e2; color: #991b1b; }
/* /Components/Pages/Reconciliation/DisputeBoard.razor.rz.scp.css */
.dispute-board[b-f3l8qvms11] {
    max-width: 72rem;
    margin: 0 auto;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.dispute-board-head[b-f3l8qvms11] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.dispute-board-head h1[b-f3l8qvms11] { margin: 0 0 0.25rem; font-size: 1.35rem; }
.dispute-board-head p[b-f3l8qvms11] { margin: 0; }

.dispute-board-toggle[b-f3l8qvms11] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
}

.dispute-board-empty[b-f3l8qvms11] {
    padding: 2.5rem 1rem;
    text-align: center;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
}

.dispute-board-empty p[b-f3l8qvms11] { margin: 0 0 0.35rem; }

.dispute-board-table[b-f3l8qvms11] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.dispute-board-table th[b-f3l8qvms11],
.dispute-board-table td[b-f3l8qvms11] {
    text-align: left;
    padding: 0.55rem 0.7rem;
    border-bottom: 1px solid var(--color-border);
    vertical-align: middle;
}

.dispute-board-table th[b-f3l8qvms11] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-text-secondary, #6b7280);
}

.dispute-board-table .num[b-f3l8qvms11] { text-align: right; }

.dispute-board-id[b-f3l8qvms11] { font-family: var(--font-mono, monospace); font-size: 0.8rem; }
.dispute-board-reason[b-f3l8qvms11] { color: var(--color-text-secondary, #6b7280); }

.dispute-board-badge[b-f3l8qvms11] {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
}

.dispute-board-badge.is-open[b-f3l8qvms11] { background: #eff6ff; border-color: #93c5fd; color: #1e40af; }
.dispute-board-badge.is-chasing[b-f3l8qvms11] { background: #fef3c7; border-color: #f59e0b; color: #92400e; }
.dispute-board-badge.is-closed[b-f3l8qvms11] { background: #e5e7eb; border-color: #9ca3af; color: #374151; }

.dispute-board-table td.is-ageing[b-f3l8qvms11] { color: #92400e; font-weight: 600; }
.dispute-board-table td.is-overdue[b-f3l8qvms11] { color: #b91c1c; font-weight: 700; }
/* /Components/Pages/Reconciliation/DisputeCasePanel.razor.rz.scp.css */
.dispute-panel[b-eybpcpkiq6] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    margin-top: 0.75rem;
    background: var(--color-surface-muted, #f7f8fa);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.dispute-panel-head[b-eybpcpkiq6] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.dispute-panel-title[b-eybpcpkiq6] { font-weight: 600; font-size: 0.85rem; }
.dispute-panel-id[b-eybpcpkiq6] { font-family: var(--font-mono, monospace); font-size: 0.78rem; color: var(--color-text-secondary, #6b7280); }

.dispute-panel-badge[b-eybpcpkiq6] {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    margin-left: auto;
}

.dispute-panel-badge.is-open[b-eybpcpkiq6] { background: #eff6ff; border-color: #93c5fd; color: #1e40af; }
.dispute-panel-badge.is-chasing[b-eybpcpkiq6] { background: #fef3c7; border-color: #f59e0b; color: #92400e; }
.dispute-panel-badge.is-closed[b-eybpcpkiq6] { background: #e5e7eb; border-color: #9ca3af; color: #374151; }

.dispute-panel-meta[b-eybpcpkiq6] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    margin: 0;
}

.dispute-panel-meta div[b-eybpcpkiq6] { display: flex; flex-direction: column; gap: 0.15rem; }
.dispute-panel-meta dt[b-eybpcpkiq6] { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--color-text-secondary, #6b7280); }
.dispute-panel-meta dd[b-eybpcpkiq6] { margin: 0; font-size: 0.85rem; }

.dispute-panel-chase[b-eybpcpkiq6],
.dispute-panel-close[b-eybpcpkiq6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.dispute-panel-label[b-eybpcpkiq6] { font-size: 0.78rem; font-weight: 600; }

.dispute-panel-input[b-eybpcpkiq6],
.dispute-panel-select[b-eybpcpkiq6] {
    padding: 0.35rem 0.55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
    min-width: 0;
}

.dispute-panel-input[b-eybpcpkiq6] { flex: 1 1 14rem; }

.dispute-panel-note[b-eybpcpkiq6] { margin: 0; font-size: 0.8rem; }

.dispute-panel-log[b-eybpcpkiq6] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.dispute-panel-log-item[b-eybpcpkiq6] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.82rem;
    padding: 0.3rem 0.5rem;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.dispute-panel-log-kind[b-eybpcpkiq6] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-text-secondary, #6b7280);
}
/* /Components/Pages/Reconciliation/EntityMaster.razor.rz.scp.css */
.entity-master-header[b-woyhw8txl7] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.entity-error[b-woyhw8txl7] {
    margin: 0 0 1rem;
    padding: 0.6rem 0.9rem;
    border: 1px solid #fecaca;
    border-radius: 8px;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 0.85rem;
}

.entity-master-grid[b-woyhw8txl7] {
    display: grid;
    grid-template-columns: minmax(280px, 1.1fr) minmax(320px, 1fr);
    gap: 1.25rem;
    align-items: start;
}

@media (max-width: 900px) {
    .entity-master-grid[b-woyhw8txl7] {
        grid-template-columns: 1fr;
    }
}

.entity-tree-card[b-woyhw8txl7],
.entity-detail-card[b-woyhw8txl7] {
    padding: 1.25rem 1.5rem 1.5rem;
}

.entity-card-title[b-woyhw8txl7] {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.entity-empty[b-woyhw8txl7] {
    font-size: 0.875rem;
}

.entity-tree[b-woyhw8txl7] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.entity-tree-node[b-woyhw8txl7] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    padding: 0.45rem 0.75rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    text-align: left;
    font: inherit;
    cursor: pointer;
    transition: background 0.12s;
}

.entity-tree-node:hover[b-woyhw8txl7] {
    background: #f8fafc;
}

.entity-tree-node.is-selected[b-woyhw8txl7] {
    background: #eff6ff;
    box-shadow: inset 3px 0 0 var(--color-brand-teal, #0ea5c6);
}

.entity-tree-name[b-woyhw8txl7] {
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.entity-kind-badge[b-woyhw8txl7] {
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.5;
    background: #f1f5f9;
    color: #475569;
}

.entity-kind-group[b-woyhw8txl7] {
    background: #ede9fe;
    color: #6d28d9;
}

.entity-kind-entity[b-woyhw8txl7] {
    background: #e0f2fe;
    color: #0369a1;
}

.entity-kind-businessunit[b-woyhw8txl7] {
    background: #f0fdf4;
    color: #15803d;
}

.entity-link-badge[b-woyhw8txl7] {
    padding: 0.1rem 0.45rem;
    border-radius: 4px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    background: var(--color-brand-teal, #0ea5c6);
    color: #fff;
}

.entity-detail-head[b-woyhw8txl7] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.entity-form[b-woyhw8txl7] {
    display: grid;
    gap: 0.9rem;
    margin-bottom: 1.1rem;
}

.entity-field[b-woyhw8txl7] {
    display: grid;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #475569;
}

.entity-field input[b-woyhw8txl7],
.entity-field select[b-woyhw8txl7] {
    padding: 0.45rem 0.65rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font: inherit;
    font-weight: 400;
    color: var(--color-text-primary, #0f172a);
    background: #fff;
}

.entity-field input:focus[b-woyhw8txl7],
.entity-field select:focus[b-woyhw8txl7] {
    outline: 2px solid var(--color-brand-teal, #0ea5c6);
    outline-offset: 1px;
}

.entity-detail-actions[b-woyhw8txl7] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.entity-delete[b-woyhw8txl7] {
    color: #b91c1c;
}

.entity-defs[b-woyhw8txl7] {
    border-top: 1px solid #f1f5f9;
    padding-top: 1rem;
}

.entity-defs-title[b-woyhw8txl7] {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: #475569;
}

.entity-defs-list[b-woyhw8txl7] {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
}

.entity-defs-list li[b-woyhw8txl7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid #f8fafc;
    font-size: 0.85rem;
}

.entity-def-name[b-woyhw8txl7] {
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.entity-defs-attach[b-woyhw8txl7] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.entity-defs-attach select[b-woyhw8txl7] {
    flex: 1;
    padding: 0.4rem 0.6rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font: inherit;
}
/* /Components/Pages/Reconciliation/ExceptionResolvePanel.razor.rz.scp.css */
/* #242 — expanded resolution panel (dispute / reclassify / write-off-to-GL). Sits under the primary
   Accept / Reject / Manual / Write off / Escalate action row; the extra affordances are a quieter
   secondary tier so the common path stays visually dominant. */

.recon-resolve-panel[b-yygdt2ozk4] {
    width: 100%;
    margin-top: 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.recon-resolve-more[b-yygdt2ozk4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.recon-resolve-form[b-yygdt2ozk4] {
    border: 1px dashed #cbd5e1;
    border-radius: var(--radius);
    padding: 0.75rem;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    max-width: 32rem;
}

.recon-resolve-hint[b-yygdt2ozk4] {
    margin: 0;
    font-size: 0.78rem;
}

.recon-resolve-form label[b-yygdt2ozk4] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text, #334155);
}

.recon-resolve-form .form-control[b-yygdt2ozk4] {
    padding: 0.4rem 0.55rem;
    border: 1px solid var(--color-border, #cbd5e1);
    border-radius: var(--radius);
    font-size: 0.85rem;
    font-weight: 400;
}

.recon-resolve-actions[b-yygdt2ozk4] {
    display: flex;
    gap: 0.4rem;
    margin-top: 0.2rem;
}
/* /Components/Pages/Reconciliation/MatchCertifyPanel.razor.rz.scp.css */
.match-certify[b-h5qrpn6pk7] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    background: var(--color-surface-muted, #f7f8fa);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.match-certify-head[b-h5qrpn6pk7] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.match-certify-title[b-h5qrpn6pk7] {
    font-weight: 600;
    font-size: 0.85rem;
}

.match-certify-badge[b-h5qrpn6pk7] {
    font-size: 0.72rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
}

.match-certify-badge.is-locked[b-h5qrpn6pk7] { background: #fef3c7; border-color: #f59e0b; color: #92400e; }
.match-certify-badge.is-certified[b-h5qrpn6pk7] { background: #dcfce7; border-color: #22c55e; color: #166534; }
.match-certify-badge.is-open[b-h5qrpn6pk7] { color: var(--color-text-secondary, #6b7280); }

.match-certify-meta[b-h5qrpn6pk7] {
    display: flex;
    gap: 1.5rem;
    margin: 0;
}

.match-certify-meta div[b-h5qrpn6pk7] { display: flex; flex-direction: column; gap: 0.15rem; }
.match-certify-meta dt[b-h5qrpn6pk7] { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--color-text-secondary, #6b7280); }
.match-certify-meta dd[b-h5qrpn6pk7] { margin: 0; font-size: 0.85rem; }

.match-certify-actions[b-h5qrpn6pk7],
.match-certify-evidence[b-h5qrpn6pk7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.match-certify-label[b-h5qrpn6pk7] { font-size: 0.78rem; font-weight: 600; }

.match-certify-input[b-h5qrpn6pk7],
.match-certify-select[b-h5qrpn6pk7] {
    padding: 0.35rem 0.55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font: inherit;
    min-width: 0;
}

.match-certify-input[b-h5qrpn6pk7] { flex: 1 1 12rem; }

.match-certify-note[b-h5qrpn6pk7] { margin: 0; font-size: 0.8rem; }

.match-certify-list[b-h5qrpn6pk7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.match-certify-item[b-h5qrpn6pk7] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.82rem;
    padding: 0.3rem 0.5rem;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.match-certify-item-kind[b-h5qrpn6pk7] {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-text-secondary, #6b7280);
}

.match-certify-item-ref[b-h5qrpn6pk7] { font-family: var(--font-mono, monospace); }
/* /Components/Pages/Reconciliation/OverrideReasonDialog.razor.rz.scp.css */
.override-dialog-backdrop[b-sry2kbnhje] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.override-dialog[b-sry2kbnhje] {
    background: var(--surface, #fff);
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.25);
    padding: 1.75rem;
    width: min(30rem, calc(100vw - 2rem));
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.override-dialog-title[b-sry2kbnhje] {
    font-size: 1.15rem;
    font-weight: 600;
    margin: 0;
    color: var(--text-strong, #0f172a);
}

.override-dialog-lede[b-sry2kbnhje] {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
}

.override-dialog-label[b-sry2kbnhje] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-strong, #0f172a);
    margin-top: 0.35rem;
}

.override-dialog-req[b-sry2kbnhje] {
    color: #b91c1c;
}

.override-dialog-input[b-sry2kbnhje] {
    width: 100%;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--border, #cbd5e1);
    border-radius: 8px;
    font: inherit;
    box-sizing: border-box;
}

.override-dialog-note[b-sry2kbnhje] {
    margin: 0.4rem 0 0;
    font-size: 0.8rem;
    color: #92400e;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: 0.5rem 0.65rem;
}

.override-dialog-actions[b-sry2kbnhje] {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    margin-top: 1rem;
}

.btn-danger[b-sry2kbnhje] {
    background: #b91c1c;
    color: #fff;
    border: 1px solid #991b1b;
    border-radius: 8px;
    padding: 0.55rem 1rem;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.btn-danger:disabled[b-sry2kbnhje] {
    opacity: 0.55;
    cursor: not-allowed;
}
/* /Components/Pages/Reconciliation/ReconActionListEditor.razor.rz.scp.css */
.recon-actions[b-wqawtgoin8] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--border, #e2e6ec);
    border-radius: 10px;
    background: var(--surface, #fff);
}

.recon-actions-head[b-wqawtgoin8] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.recon-actions-title[b-wqawtgoin8] {
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0;
}

.recon-actions-sub[b-wqawtgoin8] {
    font-size: 0.8rem;
    margin: 0;
}

.recon-actions-empty[b-wqawtgoin8] {
    font-size: 0.85rem;
    padding: 0.75rem 0;
}

.recon-actions-list[b-wqawtgoin8] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.recon-actions-item[b-wqawtgoin8] {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--border, #e2e6ec);
    border-radius: 8px;
    background: var(--surface-subtle, #fafbfc);
}

.recon-actions-item.is-disabled[b-wqawtgoin8] {
    opacity: 0.55;
}

.recon-actions-order[b-wqawtgoin8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background: var(--accent-subtle, #eef2ff);
    color: var(--accent, #4353ff);
    font-size: 0.75rem;
    font-weight: 600;
}

.recon-actions-body[b-wqawtgoin8] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.recon-actions-type[b-wqawtgoin8] {
    font-weight: 600;
    font-size: 0.9rem;
}

.recon-actions-kind[b-wqawtgoin8] {
    font-size: 0.75rem;
}

.recon-actions-controls[b-wqawtgoin8] {
    display: inline-flex;
    gap: 0.25rem;
}

.recon-actions-remove[b-wqawtgoin8] {
    color: var(--danger, #c0392b);
}

.recon-actions-add[b-wqawtgoin8] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.visually-hidden[b-wqawtgoin8] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}
/* /Components/Pages/Reconciliation/ReconAssignControl.razor.rz.scp.css */
.recon-assign[b-y4sa7nc0b0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.recon-assign-owner[b-y4sa7nc0b0] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    font-weight: 500;
}

.recon-assign-owner.is-unassigned[b-y4sa7nc0b0] {
    font-weight: 400;
    font-style: italic;
}

.recon-assign-avatar[b-y4sa7nc0b0] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: var(--surface-accent, #e8eefc);
    color: var(--text-accent, #2b4a8b);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    flex: 0 0 auto;
}

.recon-assign-picker[b-y4sa7nc0b0] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.6rem;
    border: 1px solid var(--border, #d9dde5);
    border-radius: 8px;
    background: var(--surface, #fff);
    box-shadow: 0 4px 14px rgba(20, 30, 55, 0.08);
    min-width: 15rem;
}

.recon-assign-list[b-y4sa7nc0b0] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    max-height: 12rem;
    overflow-y: auto;
}

.recon-assign-item[b-y4sa7nc0b0] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    text-align: left;
    padding: 0.35rem 0.45rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    font-size: 0.85rem;
    cursor: pointer;
}

.recon-assign-item:hover:not(:disabled)[b-y4sa7nc0b0] {
    background: var(--surface-hover, #f2f5fb);
}

.recon-assign-item:disabled[b-y4sa7nc0b0] {
    opacity: 0.5;
    cursor: default;
}

.recon-assign-custom[b-y4sa7nc0b0] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.recon-assign-input[b-y4sa7nc0b0] {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--border, #d9dde5);
    border-radius: 6px;
    font-size: 0.85rem;
}
/* /Components/Pages/Reconciliation/ReconAutoRuleControl.razor.rz.scp.css */
.recon-autorule[b-8jf1f6zug8] {
    display: inline-block;
}

.recon-autorule-form[b-8jf1f6zug8] {
    margin-top: 0.5rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 8px;
    background: var(--surface-muted, #fbfcfd);
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    max-width: 30rem;
}

.recon-autorule-hint[b-8jf1f6zug8] {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.35;
}

.recon-autorule-facets[b-8jf1f6zug8],
.recon-autorule-mode[b-8jf1f6zug8] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin: 0;
    padding: 0;
    border: none;
}

.recon-autorule-check[b-8jf1f6zug8] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.88rem;
    cursor: pointer;
}

.recon-autorule-check input:disabled + span[b-8jf1f6zug8],
.recon-autorule-check input:disabled[b-8jf1f6zug8] {
    opacity: 0.5;
    cursor: not-allowed;
}

.recon-autorule-field[b-8jf1f6zug8] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.88rem;
}

.recon-autorule-num[b-8jf1f6zug8] {
    width: 6rem;
}

.recon-autorule-gate[b-8jf1f6zug8] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.5rem 0.65rem;
    border-radius: 6px;
    background: var(--surface, #fff);
    border: 1px dashed var(--border, #e2e6ea);
}

.recon-autorule-actions[b-8jf1f6zug8] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.15rem;
}
/* /Components/Pages/Reconciliation/ReconBulkBar.razor.rz.scp.css */
/* #248 — sticky bulk-action bar shown when the operator has selected exceptions in the filtered list. */
.recon-bulk[b-p28wh4l00t] {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 0.6rem 1rem;
    margin-bottom: 0.75rem;
    background: var(--surface-2, #f4f6f9);
    border: 1px solid var(--border, #d9dee5);
    border-radius: 10px;
    box-shadow: 0 1px 2px rgb(16 24 40 / 6%);
}

.recon-bulk-lead[b-p28wh4l00t] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
}

.recon-bulk-count[b-p28wh4l00t] {
    font-weight: 600;
}

.recon-bulk-amt[b-p28wh4l00t] {
    font-variant-numeric: tabular-nums;
}

.recon-bulk-actions[b-p28wh4l00t] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.recon-bulk-link[b-p28wh4l00t] {
    border: none;
    background: none;
    padding: 0;
    color: var(--accent, #2563eb);
    font: inherit;
    cursor: pointer;
    text-decoration: underline;
}

.recon-bulk-link:hover[b-p28wh4l00t] {
    color: var(--accent-strong, #1d4ed8);
}

/* Confirm dialog (shown above the ceiling, and for assign). */
.recon-bulk-confirm-backdrop[b-p28wh4l00t] {
    position: fixed;
    inset: 0;
    z-index: 40;
    display: grid;
    place-items: center;
    background: rgb(16 24 40 / 40%);
}

.recon-bulk-confirm[b-p28wh4l00t] {
    width: min(30rem, 92vw);
    padding: 1.25rem 1.4rem;
    background: var(--surface, #fff);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgb(16 24 40 / 22%);
}

.recon-bulk-confirm h2[b-p28wh4l00t] {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
}

.recon-bulk-confirm p[b-p28wh4l00t] {
    margin: 0 0 0.75rem;
}

.recon-bulk-assignee[b-p28wh4l00t] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-bottom: 0.75rem;
    font-size: 0.85rem;
    font-weight: 600;
}

.recon-bulk-assignee input[b-p28wh4l00t] {
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--border, #d9dee5);
    border-radius: 8px;
    font: inherit;
    font-weight: 400;
}

.recon-bulk-warnings[b-p28wh4l00t] {
    margin: 0 0 0.75rem;
    padding-left: 1.1rem;
    color: var(--warn-text, #92400e);
    font-size: 0.85rem;
}

.recon-bulk-ack[b-p28wh4l00t] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1rem;
    font-size: 0.85rem;
}

.recon-bulk-confirm-foot[b-p28wh4l00t] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* Per-item outcome summary after a sweep. */
.recon-bulk-result[b-p28wh4l00t] {
    padding: 0.6rem 1rem;
    margin-bottom: 0.75rem;
    background: var(--surface-2, #f4f6f9);
    border: 1px solid var(--border, #d9dee5);
    border-radius: 10px;
}

.recon-bulk-result-head[b-p28wh4l00t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.recon-bulk-result-fails[b-p28wh4l00t] {
    margin: 0.5rem 0 0;
    padding-left: 1.1rem;
    color: var(--danger-text, #b42318);
    font-size: 0.85rem;
}

.recon-bulk-result-fails code[b-p28wh4l00t] {
    font-size: 0.8rem;
}
/* /Components/Pages/Reconciliation/ReconDedupPanel.razor.rz.scp.css */
.recon-dedup[b-2s7jfqnxar] {
    margin-top: 0.25rem;
}

.recon-dedup-body[b-2s7jfqnxar] {
    margin-top: 0.5rem;
    padding-left: 0.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.recon-dedup-label[b-2s7jfqnxar] {
    font-size: 0.8rem;
    color: var(--text-muted, #6b7280);
}

.recon-dedup-keys[b-2s7jfqnxar] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.85rem;
}

.recon-dedup-key[b-2s7jfqnxar] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    cursor: pointer;
}
/* /Components/Pages/Reconciliation/ReconGroupingControl.razor.rz.scp.css */
/* Grouping / aggregation pre-roll control (#204). Mirrors the recon drawer's step styling so the roll-up
   reads like the shaping steps beside it. Scoped to this component — the drawer's own scoped CSS does not
   reach a child component's markup. */

.recon-grouping[b-nytuj6070w] { display: flex; flex-direction: column; gap: 0.6rem; }

.recon-grouping-toggle[b-nytuj6070w] { display: flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; }

.recon-grouping-body[b-nytuj6070w] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface, #fafafa);
}

.recon-grouping-row[b-nytuj6070w] { display: flex; align-items: center; flex-wrap: wrap; gap: 0.4rem; }

.recon-grouping-label[b-nytuj6070w] { font-size: 0.78rem; font-weight: 600; min-width: 4.5rem; }

.recon-grouping-row select[b-nytuj6070w] {
    padding: 0.3rem 0.4rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.8rem;
}

.recon-grouping-key[b-nytuj6070w] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.45rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: 0.78rem;
    background: #fff;
}

.recon-grouping-x[b-nytuj6070w] {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 0.72rem;
    color: var(--color-muted, #777);
    padding: 0 0.1rem;
}
.recon-grouping-x:hover[b-nytuj6070w] { color: var(--color-danger, #c0392b); }

.recon-grouping-aggs[b-nytuj6070w] { display: flex; flex-direction: column; gap: 0.35rem; }

.recon-grouping-add[b-nytuj6070w] {
    align-self: flex-start;
    padding: 0.25rem 0.6rem;
    border: 1px dashed var(--color-border);
    border-radius: 999px;
    background: none;
    font-size: 0.78rem;
    cursor: pointer;
}
.recon-grouping-add:hover[b-nytuj6070w] { border-style: solid; }

.recon-grouping-hint[b-nytuj6070w] { font-size: 0.76rem; color: var(--color-muted, #777); margin: 0; }
/* /Components/Pages/Reconciliation/ReconHome.razor.rz.scp.css */
.recon-home-header[b-dfwvgdknci] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.recon-home-runs[b-dfwvgdknci] {
    padding: 0.25rem 0.25rem 0;
    margin-bottom: 1.75rem;
}

.recon-home-runs .data-table tbody tr[b-dfwvgdknci] {
    cursor: pointer;
    transition: background 0.12s;
}

.recon-home-runs .data-table tbody tr:hover[b-dfwvgdknci] {
    background: #f8fafc;
}

.recon-home-runs .data-table tbody tr.is-selected[b-dfwvgdknci] {
    background: #eff6ff;
    box-shadow: inset 3px 0 0 var(--color-brand-teal, #0ea5c6);
}

.recon-run-name[b-dfwvgdknci] {
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.recon-status[b-dfwvgdknci] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.4;
}

.recon-status.is-good[b-dfwvgdknci] { background: #dcfce7; color: #15803d; }
.recon-status.is-warn[b-dfwvgdknci] { background: #fef3c7; color: #b45309; }
.recon-status.is-info[b-dfwvgdknci] { background: #e0f2fe; color: #0369a1; }
.recon-status.is-bad[b-dfwvgdknci]  { background: #fee2e2; color: #b91c1c; }

.recon-home-summary-head[b-dfwvgdknci] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.9rem;
}

.recon-home-summary-head h2[b-dfwvgdknci] {
    font-family: var(--font-title, 'Roboto', sans-serif);
    font-size: 1.15rem;
    font-weight: 600;
    margin: 0;
}

.recon-kpi-grid[b-dfwvgdknci] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 1100px) {
    .recon-kpi-grid[b-dfwvgdknci] { grid-template-columns: repeat(2, 1fr); }
}

.recon-home-bytype .card-body[b-dfwvgdknci] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.recon-home-clean[b-dfwvgdknci] {
    margin: 0;
}

.recon-bytype-row[b-dfwvgdknci] {
    display: grid;
    grid-template-columns: 170px 1fr 40px;
    align-items: center;
    gap: 0.85rem;
    text-decoration: none;
    color: inherit;
    padding: 0.15rem 0.25rem;
    border-radius: var(--radius, 0.5rem);
    transition: background 0.12s;
}

.recon-bytype-row:hover[b-dfwvgdknci] {
    background: #f8fafc;
}

.recon-bytype-label[b-dfwvgdknci] {
    font-size: 0.85rem;
    color: var(--color-text-primary, #0f172a);
}

.recon-bytype-track[b-dfwvgdknci] {
    height: 10px;
    background: #eef2f7;
    border-radius: 999px;
    overflow: hidden;
}

.recon-bytype-fill[b-dfwvgdknci] {
    display: block;
    height: 100%;
    border-radius: 999px;
    transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.recon-bytype-fill.is-warn[b-dfwvgdknci] { background: var(--color-degraded, #f59e0b); }
.recon-bytype-fill.is-info[b-dfwvgdknci] { background: var(--color-brand-teal, #0ea5c6); }
.recon-bytype-fill.is-critical[b-dfwvgdknci] { background: var(--color-down, #ef4444); }

.recon-bytype-count[b-dfwvgdknci] {
    text-align: right;
    font-weight: 600;
    font-size: 0.85rem;
}

/* #235: variance-by-reason breakdown card */
.recon-home-byreason[b-dfwvgdknci] { margin-top: 1.25rem; }
.recon-home-byreason .card-header[b-dfwvgdknci] {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.recon-home-byreason .card-body[b-dfwvgdknci] { display: flex; flex-direction: column; gap: 0.6rem; }
.recon-home-byreason .recon-bytype-row[b-dfwvgdknci] { grid-template-columns: 90px 1fr 92px; cursor: default; }
.recon-home-byreason .recon-bytype-row:hover[b-dfwvgdknci] { background: transparent; }
.recon-bytype-fill.recon-reason-fill[b-dfwvgdknci] { background: #6366f1; }
.recon-home-byreason .recon-bytype-count[b-dfwvgdknci] { font-variant-numeric: tabular-nums; }
.recon-home-writeoff[b-dfwvgdknci] {
    font-size: 0.78rem; font-weight: 700; white-space: nowrap;
    color: #0e7490; background: #ecfeff; border: 1px solid #a5f3fc;
    padding: 0.15rem 0.55rem; border-radius: 999px;
}

.recon-home-designs[b-dfwvgdknci] { margin-bottom: 1.75rem; }
.recon-designs-list[b-dfwvgdknci] { display: flex; flex-direction: column; gap: 0.3rem; }
.recon-design-row[b-dfwvgdknci] {
    display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 1rem;
    padding: 0.5rem 0.6rem; border-radius: var(--radius); text-decoration: none; color: inherit;
    transition: background 0.12s;
}
.recon-design-row:hover[b-dfwvgdknci] { background: #f8fafc; }
.recon-design-name[b-dfwvgdknci] { font-weight: 600; }
.recon-design-open[b-dfwvgdknci] { color: var(--color-brand); font-weight: 600; font-size: 0.85rem; }

/* #182: row-cap truncation badge on a capped run — amber, matching the warning status tone. */
.recon-trunc-badge[b-dfwvgdknci] {
    display: inline-block; margin-left: 0.4rem; padding: 0.1rem 0.5rem;
    font-size: 0.72rem; font-weight: 700; border-radius: 999px; white-space: nowrap;
    background: #fef3c7; color: #b45309; border: 1px solid #f0d492;
}

/* #467 — supplier statement-health rollup: flag-class chips, trend indicator, and the unattributed note. */
.recon-home-statements .recon-statements-empty[b-dfwvgdknci] { margin: 0; }
.recon-home-statements .is-unattributed[b-dfwvgdknci] { opacity: 0.85; }
.recon-statements-unattributed-note[b-dfwvgdknci] { margin-left: 0.35rem; font-size: 0.8rem; font-weight: 400; }

.recon-flag-chip[b-dfwvgdknci] {
    display: inline-block; margin: 0.1rem 0.25rem 0.1rem 0; padding: 0.1rem 0.5rem;
    font-size: 0.74rem; font-weight: 600; border-radius: 999px; white-space: nowrap;
    background: #f1f5f9; color: #334155; border: 1px solid #e2e8f0;
}

.recon-trend[b-dfwvgdknci] {
    display: inline-block; padding: 0.15rem 0.55rem; font-size: 0.78rem; font-weight: 600;
    border-radius: 999px; white-space: nowrap;
}
.recon-trend.is-good[b-dfwvgdknci] { background: #dcfce7; color: #15803d; }
.recon-trend.is-bad[b-dfwvgdknci]  { background: #fee2e2; color: #b91c1c; }
.recon-trend.is-info[b-dfwvgdknci] { background: #e0f2fe; color: #0369a1; }
.recon-trend.is-muted[b-dfwvgdknci] { color: var(--color-text-muted, #64748b); }

/* #476 — recovered-dollars rollup: three honest headline figures, then per-counterparty / per-error-class / per-period
   breakdowns. Recovered / in-flight / written-off are kept visually distinct so written-off never reads as a win. */
.recon-recovery-head[b-dfwvgdknci] { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.recon-recovery-empty[b-dfwvgdknci] { margin: 0; }

.recon-recovery-figures[b-dfwvgdknci] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 1rem;
}
.recon-recovery-figure[b-dfwvgdknci] {
    display: flex; flex-direction: column; gap: 0.15rem; padding: 0.9rem 1rem;
    border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc;
}
.recon-recovery-figure.is-recovered[b-dfwvgdknci] { border-left: 4px solid #15803d; }
.recon-recovery-figure.is-inflight[b-dfwvgdknci]  { border-left: 4px solid #0369a1; }
.recon-recovery-figure.is-writtenoff[b-dfwvgdknci] { border-left: 4px solid #b45309; }
.recon-recovery-amount[b-dfwvgdknci] { font-size: 1.4rem; font-weight: 700; }
.recon-recovery-figure.is-recovered .recon-recovery-amount[b-dfwvgdknci] { color: #15803d; }
.recon-recovery-figure.is-writtenoff .recon-recovery-amount[b-dfwvgdknci] { color: #b45309; }
.recon-recovery-label[b-dfwvgdknci] { font-weight: 600; font-size: 0.9rem; }
.recon-recovery-sub[b-dfwvgdknci] { font-size: 0.78rem; }
.recon-recovery-note[b-dfwvgdknci] { margin: 0.25rem 0 0.75rem; font-size: 0.82rem; }

.recon-recovery-breakdowns[b-dfwvgdknci] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.25rem; margin-top: 0.75rem;
}
.recon-recovery-breakdown h3[b-dfwvgdknci],
.recon-recovery-trend h3[b-dfwvgdknci] { font-size: 0.85rem; font-weight: 700; margin: 0 0 0.4rem; color: #334155; }
.recon-recovery-trend[b-dfwvgdknci] { margin-top: 1.25rem; }
.recon-recovery .is-unattributed[b-dfwvgdknci] { opacity: 0.85; }
.recon-recovery-unattributed-note[b-dfwvgdknci] { margin-left: 0.35rem; font-size: 0.8rem; font-weight: 400; }

/* #607 — flow provenance chip: a flow-created run links back to its governed flow run. */
.recon-flow-chip[b-dfwvgdknci] {
    display: inline-block; margin-left: 0.4rem; padding: 0.1rem 0.5rem;
    font-size: 0.72rem; font-weight: 700; border-radius: 999px; white-space: nowrap;
    background: #e0f2fe; color: #0369a1; border: 1px solid #bae6fd; text-decoration: none;
}
.recon-flow-chip:hover[b-dfwvgdknci] { background: #bae6fd; }
.recon-home-summary-title[b-dfwvgdknci] { display: flex; align-items: center; gap: 0.25rem; }
/* /Components/Pages/Reconciliation/ReconMatchAdjustPanel.razor.rz.scp.css */
.recon-adjust[b-2nkqrr4s4p] {
    margin: 1rem 0;
    padding: 1rem 1.25rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 8px;
    background: var(--surface, #fff);
}

.recon-adjust-head[b-2nkqrr4s4p] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.recon-adjust-title[b-2nkqrr4s4p] {
    margin: 0;
    font-size: .95rem;
    font-weight: 600;
}

.recon-adjust-lock[b-2nkqrr4s4p] {
    font-size: .8rem;
}

.recon-adjust-tabs[b-2nkqrr4s4p] {
    display: flex;
    gap: .25rem;
    margin-bottom: .75rem;
    border-bottom: 1px solid var(--border, #e2e8f0);
}

.recon-adjust-tab[b-2nkqrr4s4p] {
    border: none;
    background: transparent;
    padding: .4rem .75rem;
    font-size: .85rem;
    color: var(--muted, #64748b);
    cursor: pointer;
    border-bottom: 2px solid transparent;
}

.recon-adjust-tab.is-active[b-2nkqrr4s4p] {
    color: var(--text, #0f172a);
    border-bottom-color: var(--accent, #2563eb);
    font-weight: 600;
}

.recon-adjust-body[b-2nkqrr4s4p] {
    border: none;
    padding: 0;
    margin: 0;
}

.recon-adjust-body[disabled][b-2nkqrr4s4p] {
    opacity: .6;
}

.recon-adjust-row[b-2nkqrr4s4p] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: .75rem;
}

.recon-adjust-row label[b-2nkqrr4s4p] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    font-size: .8rem;
    color: var(--muted, #64748b);
    flex: 1 1 12rem;
}

.recon-adjust-row select[b-2nkqrr4s4p],
.recon-adjust-row input[b-2nkqrr4s4p] {
    padding: .35rem .5rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 6px;
    font-size: .85rem;
}

.recon-adjust-alloc[b-2nkqrr4s4p] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: .5rem;
}

.recon-adjust-alloc th[b-2nkqrr4s4p],
.recon-adjust-alloc td[b-2nkqrr4s4p] {
    padding: .35rem .5rem;
    text-align: left;
    font-size: .8rem;
}

.recon-adjust-alloc .num[b-2nkqrr4s4p],
.recon-adjust-alloc td.num[b-2nkqrr4s4p] {
    text-align: right;
}

.recon-adjust-alloc select[b-2nkqrr4s4p],
.recon-adjust-alloc input[b-2nkqrr4s4p] {
    width: 100%;
    padding: .3rem .4rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 6px;
}

.recon-adjust-split-foot[b-2nkqrr4s4p] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.recon-adjust-residual[b-2nkqrr4s4p] {
    font-size: .85rem;
    color: var(--muted, #64748b);
    margin-left: auto;
}

.recon-adjust-error[b-2nkqrr4s4p] {
    color: var(--danger, #dc2626);
    font-size: .85rem;
    margin: 0 0 .5rem;
}

.recon-adjust-notice[b-2nkqrr4s4p] {
    color: var(--success, #16a34a);
    font-size: .85rem;
    margin: 0 0 .5rem;
}
/* /Components/Pages/Reconciliation/ReconNew.razor.rz.scp.css */
.recon-new[b-1zspc7ojda] { display: flex; flex-direction: column; gap: 1rem; max-width: 980px; }

.recon-new-name[b-1zspc7ojda] { padding: 1rem; display: flex; flex-direction: column; gap: 0.4rem; }
.recon-new-name label[b-1zspc7ojda] { font-weight: 600; font-size: 0.85rem; }
.recon-new-input[b-1zspc7ojda] { padding: 0.5rem 0.6rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.9rem; }

.recon-new-sides[b-1zspc7ojda] { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 900px) { .recon-new-sides[b-1zspc7ojda] { grid-template-columns: 1fr; } }

.recon-new-side[b-1zspc7ojda] { padding: 1rem; display: flex; flex-direction: column; gap: 0.6rem; }
.recon-new-side h2[b-1zspc7ojda] { font-family: var(--font-title); font-size: 0.95rem; margin: 0; }
.recon-new-fileinfo[b-1zspc7ojda] { font-size: 0.8rem; margin: 0; }

.recon-new-map[b-1zspc7ojda] { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 0.25rem; }
.recon-new-maprow[b-1zspc7ojda] { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 0.6rem; font-size: 0.82rem; }
.recon-new-maprow select[b-1zspc7ojda] { padding: 0.35rem 0.45rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.82rem; }
.recon-new-confidence[b-1zspc7ojda] { display: block; font-size: 0.66rem; color: var(--color-brand-teal, #0ea5c6); }

.recon-new-settings[b-1zspc7ojda] { padding: 1rem; }
.recon-new-settings h2[b-1zspc7ojda] { font-family: var(--font-title); font-size: 0.95rem; margin: 0 0 0.75rem; }
.recon-new-settings-grid[b-1zspc7ojda] { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: flex-start; }
.recon-new-settings-grid label[b-1zspc7ojda] { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.82rem; font-weight: 600; }
.recon-new-settings-grid input[type=number][b-1zspc7ojda] { width: 110px; padding: 0.35rem 0.45rem; border: 1px solid var(--color-border); border-radius: var(--radius); }
.recon-new-settings-grid select[b-1zspc7ojda] { padding: 0.35rem 0.45rem; border: 1px solid var(--color-border); border-radius: var(--radius); }
.recon-new-tol[b-1zspc7ojda] { display: inline-flex; gap: 0.4rem; }
.recon-new-check[b-1zspc7ojda] { flex-direction: row !important; align-items: center; gap: 0.5rem; font-weight: 500; }
.recon-new-check input[b-1zspc7ojda] { margin: 0; }

.recon-new-error[b-1zspc7ojda] { background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; border-radius: var(--radius); padding: 0.6rem 0.85rem; font-size: 0.85rem; }

.recon-new-actions[b-1zspc7ojda] { display: flex; align-items: center; gap: 1rem; }
/* /Components/Pages/Reconciliation/ReconResumeBanner.razor.rz.scp.css */
.recon-resume[b-zhlb4baa95] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--border, #e2e8f0);
    border-left: 3px solid var(--accent, #6366f1);
    border-radius: 0.5rem;
    background: var(--surface-subtle, #f8fafc);
}

.recon-resume-lead[b-zhlb4baa95] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.recon-resume-icon[b-zhlb4baa95] {
    font-size: 1.15rem;
    line-height: 1;
    color: var(--accent, #6366f1);
}

.recon-resume-copy[b-zhlb4baa95] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.recon-resume-copy .muted[b-zhlb4baa95] {
    font-size: 0.85rem;
}

.recon-resume-actions[b-zhlb4baa95] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
}
/* /Components/Pages/Reconciliation/ReconTriageQueue.razor.rz.scp.css */
.recon-triage[b-mo8mcj93pq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4, 1rem);
    margin-bottom: var(--space-5, 1.25rem);
}

.recon-triage-head[b-mo8mcj93pq] {
    display: flex;
    align-items: baseline;
    gap: var(--space-3, 0.75rem);
}

.recon-triage-head h2[b-mo8mcj93pq] {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 650;
}

.recon-triage-breachcount[b-mo8mcj93pq] {
    margin-left: auto;
    font-size: 0.75rem;
    font-weight: 650;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    background: #fee2e2;
    color: #b42318;
}

.recon-triage-escalate[b-mo8mcj93pq] {
    font: inherit;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.2rem 0.6rem;
    border-radius: 6px;
    border: 1px solid #fda29b;
    background: #fff;
    color: #b42318;
    cursor: pointer;
}

.recon-triage-escalate:hover[b-mo8mcj93pq] { background: #fff6f5; }
.recon-triage-escalate:focus-visible[b-mo8mcj93pq] { outline: 2px solid var(--color-brand-teal, #0e9384); outline-offset: 1px; }

/* Severity lane ---------------------------------------------------------- */
.recon-triage-lane[b-mo8mcj93pq] {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-lg, 12px);
    overflow: hidden;
    background: var(--color-surface, #fff);
}

.recon-triage-lane-head[b-mo8mcj93pq] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    padding: 0.5rem 0.85rem;
    background: var(--color-surface-muted, #f8fafc);
    border-bottom: 1px solid var(--color-border, #e5e7eb);
    font-size: 0.875rem;
}

.recon-triage-lane-head .muted[b-mo8mcj93pq] { margin-left: 0.15rem; }

.recon-triage-lane-breach[b-mo8mcj93pq] {
    margin-left: auto;
    font-size: 0.7rem;
    font-weight: 650;
    color: #b42318;
}

/* Severity dot (self-contained so the scoped child styles it) ------------ */
.recon-sev[b-mo8mcj93pq] { width: 9px; height: 9px; border-radius: 999px; flex-shrink: 0; display: inline-block; }
.recon-sev.is-critical[b-mo8mcj93pq] { background: var(--color-down, #d92d20); }
.recon-sev.is-warn[b-mo8mcj93pq] { background: var(--color-degraded, #f79009); }
.recon-sev.is-info[b-mo8mcj93pq] { background: var(--color-brand-teal, #0e9384); }

/* Cards ------------------------------------------------------------------ */
.recon-triage-cards[b-mo8mcj93pq] {
    list-style: none;
    margin: 0;
    padding: 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.recon-triage-card[b-mo8mcj93pq] {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(8rem, 12rem) 1fr auto;
    align-items: center;
    gap: var(--space-3, 0.75rem);
    padding: 0.55rem 0.7rem;
    border: 1px solid transparent;
    border-left: 3px solid transparent;
    border-radius: var(--radius-md, 8px);
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.recon-triage-card:hover[b-mo8mcj93pq] { background: var(--color-surface-muted, #f8fafc); }
.recon-triage-card:focus-visible[b-mo8mcj93pq] { outline: 2px solid var(--color-brand-teal, #0e9384); outline-offset: 1px; }

.recon-triage-card.is-breached[b-mo8mcj93pq] { border-left-color: #d92d20; background: #fff6f5; }
.recon-triage-card.is-duesoon[b-mo8mcj93pq] { border-left-color: #f79009; }
.recon-triage-card.is-ontrack[b-mo8mcj93pq] { border-left-color: #d1d5db; }

.recon-triage-kind[b-mo8mcj93pq] {
    font-weight: 600;
    font-size: 0.8125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.recon-triage-summary[b-mo8mcj93pq] {
    font-size: 0.8125rem;
    color: var(--color-text-muted, #4b5563);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.recon-triage-sla[b-mo8mcj93pq] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    white-space: nowrap;
}

.recon-triage-badge[b-mo8mcj93pq] {
    font-size: 0.7rem;
    font-weight: 650;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: #e5e7eb;
    color: #374151;
}

.recon-triage-badge.is-breached[b-mo8mcj93pq] { background: #fee2e2; color: #b42318; }
.recon-triage-badge.is-duesoon[b-mo8mcj93pq] { background: #fef0c7; color: #b54708; }
.recon-triage-badge.is-ontrack[b-mo8mcj93pq] { background: #ecfdf3; color: #067647; }
.recon-triage-badge.is-untimed[b-mo8mcj93pq] { background: #f2f4f7; color: #667085; }

.recon-triage-due[b-mo8mcj93pq] { font-size: 0.75rem; font-weight: 550; color: #475467; }
.recon-triage-age[b-mo8mcj93pq] { font-size: 0.72rem; }
/* /Components/Pages/Reconciliation/ReconWorkbench.razor.rz.scp.css */
.recon-wb-root[b-qwx4tac3ng] { outline: none; }

.recon-wb-missing[b-qwx4tac3ng] { padding: 3rem 0; }
.recon-wb-missing h1[b-qwx4tac3ng] { font-family: var(--font-title); }

/* ── Header ─────────────────────────────────────────────────────────────────── */
.recon-wb-header[b-qwx4tac3ng] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.recon-wb-header-main[b-qwx4tac3ng] { display: flex; align-items: flex-start; gap: 0.75rem; }
.recon-wb-header-main h1[b-qwx4tac3ng] { font-family: var(--font-title); font-size: 1.3rem; margin: 0; }
.recon-wb-header-main p[b-qwx4tac3ng] { margin: 0.15rem 0 0; font-size: 0.85rem; }
.recon-wb-swap[b-qwx4tac3ng] { color: var(--color-brand-teal); padding: 0 0.15rem; }

/* #177 — period label + close-lock badge on the run header. */
.recon-wb-period[b-qwx4tac3ng] {
    font-weight: 600; color: var(--color-text-primary);
}
.recon-wb-period-lock[b-qwx4tac3ng] {
    display: inline-block; margin-left: 0.35rem; padding: 0.05rem 0.4rem; border-radius: 999px;
    font-size: 0.72rem; font-weight: 600; letter-spacing: 0.02em;
    color: #92400e; background: #fef3c7; border: 1px solid #fcd34d;
}

/* #607 — flow provenance chip: a flow-created run links back to its governed flow run. */
.recon-wb-flow-chip[b-qwx4tac3ng] {
    display: inline-block; padding: 0.05rem 0.4rem; border-radius: 999px;
    font-size: 0.72rem; font-weight: 600; letter-spacing: 0.02em; text-decoration: none;
    color: #0369a1; background: #e0f2fe; border: 1px solid #bae6fd;
}
.recon-wb-flow-chip:hover[b-qwx4tac3ng] { background: #bae6fd; }

.recon-wb-back[b-qwx4tac3ng] {
    font-size: 1.25rem; line-height: 1; text-decoration: none; color: var(--color-text-secondary);
    padding: 0.35rem 0.5rem; border-radius: var(--radius); border: 1px solid var(--color-border);
    background: #fff;
}
.recon-wb-back:hover[b-qwx4tac3ng] { color: var(--color-brand); border-color: #cbd5e1; }

.recon-wb-header-tools[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.75rem; }
.recon-wb-filter[b-qwx4tac3ng] { font-size: 0.8rem; color: var(--color-text-secondary); display: inline-flex; gap: 0.4rem; align-items: center; }
.recon-wb-filter select[b-qwx4tac3ng] { padding: 0.35rem 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.8rem; }
.recon-wb-myqueue[b-qwx4tac3ng] { font-size: 0.8rem; color: var(--color-text-secondary); display: inline-flex; gap: 0.4rem; align-items: center; cursor: pointer; }
.recon-wb-myqueue input[b-qwx4tac3ng] { accent-color: var(--color-brand, #2b4a8b); }

/* #179 — signed-in operator badge: the identity every action on this run is attributed to. */
.recon-wb-identity[b-qwx4tac3ng] { font-size: 0.8rem; color: var(--color-text-secondary); display: inline-flex; gap: 0.4rem; align-items: center; padding: 0.25rem 0.6rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface-muted, #f6f7f9); }
.recon-wb-identity-dot[b-qwx4tac3ng] { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--color-brand, #2b4a8b); }

.recon-wb-modes[b-qwx4tac3ng] { display: inline-flex; border: 1px solid var(--color-border); border-radius: var(--radius); overflow: hidden; background: #fff; }
.recon-wb-mode[b-qwx4tac3ng] {
    border: 0; background: transparent; padding: 0.45rem 0.85rem; font-size: 0.8rem; font-weight: 600;
    color: var(--color-text-secondary); cursor: pointer;
}
.recon-wb-mode.is-active[b-qwx4tac3ng] { background: var(--color-brand); color: #fff; }

.recon-wb-help[b-qwx4tac3ng] {
    width: 30px; height: 30px; border-radius: 999px; border: 1px solid var(--color-border);
    background: #fff; color: var(--color-text-secondary); font-weight: 700; cursor: pointer;
}
.recon-wb-help:hover[b-qwx4tac3ng] { color: var(--color-brand); border-color: #cbd5e1; }

/* ── Severity dots + confidence chips ───────────────────────────────────────── */
.recon-sev[b-qwx4tac3ng] { width: 9px; height: 9px; border-radius: 999px; flex-shrink: 0; display: inline-block; }
.recon-sev.is-critical[b-qwx4tac3ng] { background: var(--color-down); }
.recon-sev.is-warn[b-qwx4tac3ng] { background: var(--color-degraded); }
.recon-sev.is-info[b-qwx4tac3ng] { background: var(--color-brand-teal); }

.recon-conf[b-qwx4tac3ng] {
    font-size: 0.72rem; font-weight: 700; padding: 0.1rem 0.4rem; border-radius: 999px; white-space: nowrap;
}
.recon-conf.is-high[b-qwx4tac3ng] { background: #dcfce7; color: #15803d; }
.recon-conf.is-amber[b-qwx4tac3ng] { background: #fef3c7; color: #b45309; }
.recon-conf.is-orange[b-qwx4tac3ng] { background: #ffedd5; color: #c2410c; }
.recon-conf.is-red[b-qwx4tac3ng] { background: #fee2e2; color: #b91c1c; }

/* ── Auto-matched band ──────────────────────────────────────────────────────── */
.recon-band[b-qwx4tac3ng] {
    background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius);
    box-shadow: var(--shadow-card); margin-bottom: 1rem;
}
.recon-band > summary[b-qwx4tac3ng] {
    list-style: none; cursor: pointer; padding: 0.75rem 1rem; display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.9rem;
}
.recon-band > summary[b-qwx4tac3ng]::-webkit-details-marker { display: none; }
.recon-band-check[b-qwx4tac3ng] {
    display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px;
    border-radius: 999px; background: #dcfce7; color: #15803d; font-size: 0.7rem; font-weight: 700;
}
.recon-band-table[b-qwx4tac3ng] { margin: 0 0 0.5rem; }
.recon-band-table td[b-qwx4tac3ng], .recon-band-table th[b-qwx4tac3ng] { font-size: 0.8rem; }
.recon-band-arrow[b-qwx4tac3ng] { color: var(--color-brand-teal); text-align: center; }

/* ── Exception list ─────────────────────────────────────────────────────────── */
.recon-ex-list[b-qwx4tac3ng] { display: flex; flex-direction: column; gap: 0.5rem; }

.recon-ex[b-qwx4tac3ng] {
    background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius);
    box-shadow: var(--shadow-card); overflow: hidden;
}
.recon-ex.is-open[b-qwx4tac3ng] { border-color: #bfdbfe; box-shadow: 0 0 0 2px #dbeafe, var(--shadow-card); }

.recon-ex-head[b-qwx4tac3ng] { display: flex; align-items: stretch; }

/* #248 — bulk-select controls on the exception list. */
.recon-ex-select[b-qwx4tac3ng] { display: flex; align-items: center; padding: 0 0.4rem 0 0.7rem; cursor: pointer; }
.recon-ex-selectall[b-qwx4tac3ng] { padding: 0 0.2rem 0.5rem; }
.recon-ex-selectall-label[b-qwx4tac3ng] { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.85rem; color: #475569; cursor: pointer; }
.recon-ex-row[b-qwx4tac3ng] {
    flex: 1; min-width: 0; display: grid;
    grid-template-columns: 14px 130px 1.4fr 44px 1.4fr auto;
    align-items: center; gap: 0.75rem; padding: 0.7rem 0.9rem;
    background: transparent; border: 0; cursor: pointer; text-align: left; font: inherit;
}
.recon-ex-row:hover[b-qwx4tac3ng] { background: #f8fafc; }
.recon-ex-kind[b-qwx4tac3ng] { font-weight: 600; font-size: 0.82rem; }
/* #466: the supplier-statement pack label leads; the raw kind rides beneath as a calm subtitle so no information is hidden. */
.recon-ex-kind-raw[b-qwx4tac3ng] { display: block; font-weight: 400; font-size: 0.7rem; color: var(--color-text-secondary, #64748b); }
.recon-ex-left[b-qwx4tac3ng], .recon-ex-right[b-qwx4tac3ng] {
    font-size: 0.82rem; color: var(--color-text-primary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.recon-ex-right[b-qwx4tac3ng] { color: var(--color-text-secondary); }
.recon-ex-arrow[b-qwx4tac3ng] { text-align: center; color: var(--color-text-secondary); font-weight: 700; }
.recon-ex-meta[b-qwx4tac3ng] { display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem; }
.recon-ex-amt[b-qwx4tac3ng] { font-variant-numeric: tabular-nums; font-weight: 600; font-size: 0.82rem; }
/* #235: inferred variance reason band + write-off-eligible badge */
.recon-ex-reason[b-qwx4tac3ng] {
    font-size: 0.72rem; font-weight: 700; padding: 0.1rem 0.4rem; border-radius: 999px; white-space: nowrap;
    background: #eef2ff; color: #4338ca;
}
.recon-ex-writeoff[b-qwx4tac3ng] {
    font-size: 0.72rem; font-weight: 700; padding: 0.1rem 0.4rem; border-radius: 999px; white-space: nowrap;
    background: #ecfeff; color: #0e7490; border: 1px solid #a5f3fc;
}

/* #240: ensemble risk chip on the ranked worklist + drill-down */
.recon-risk[b-qwx4tac3ng] {
    display: inline-flex; align-items: center; gap: 0.3rem; white-space: nowrap;
    font-size: 0.72rem; font-weight: 700; padding: 0.1rem 0.45rem; border-radius: 999px;
}
.recon-risk .recon-risk-band[b-qwx4tac3ng] { letter-spacing: 0.01em; }
.recon-risk .recon-risk-score[b-qwx4tac3ng] { font-variant-numeric: tabular-nums; opacity: 0.85; }
.recon-risk.is-low[b-qwx4tac3ng] { background: #f1f5f9; color: #475569; }
.recon-risk.is-elevated[b-qwx4tac3ng] { background: #fef3c7; color: #b45309; }
.recon-risk.is-high[b-qwx4tac3ng] { background: #ffedd5; color: #c2410c; }
.recon-risk.is-severe[b-qwx4tac3ng] { background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; }

.recon-detail-risk[b-qwx4tac3ng] { margin: 0.75rem 0; padding: 0.6rem 0.75rem; background: #ffffff; border: 1px solid var(--color-border); border-radius: 8px; }
.recon-detail-risk-head[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
.recon-detail-risk-caption[b-qwx4tac3ng] { font-size: 0.78rem; color: var(--color-text-muted, #64748b); }
.recon-detail-risk-signals[b-qwx4tac3ng] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.25rem; }
.recon-detail-risk-signals li[b-qwx4tac3ng] { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; font-size: 0.82rem; }
.recon-detail-risk-signals .recon-risk-signal-label[b-qwx4tac3ng] { color: #334155; }
.recon-detail-risk-signals .recon-risk-signal-score[b-qwx4tac3ng] { font-variant-numeric: tabular-nums; font-weight: 600; color: #475569; }

.recon-ex-quick[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.4rem; padding: 0 0.75rem; border-left: 1px solid #f1f5f9; }

/* ── Detail panel ───────────────────────────────────────────────────────────── */
.recon-detail[b-qwx4tac3ng] { border-top: 1px solid var(--color-border); background: #fbfdff; padding: 1rem; }
.recon-detail-grid[b-qwx4tac3ng] { display: grid; grid-template-columns: 1.6fr 1fr; gap: 1.25rem; }
@media (max-width: 1000px) { .recon-detail-grid[b-qwx4tac3ng] { grid-template-columns: 1fr; } }

.recon-detail-sources[b-qwx4tac3ng] { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.recon-detail-src h3[b-qwx4tac3ng] {
    font-family: var(--font-subtitle); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em;
    color: var(--color-text-secondary); margin: 0 0 0.4rem;
}
.recon-line-table[b-qwx4tac3ng] { width: 100%; }
.recon-line-table td[b-qwx4tac3ng], .recon-line-table th[b-qwx4tac3ng] { font-size: 0.8rem; padding: 0.3rem 0.5rem; }
.recon-line-col[b-qwx4tac3ng] { width: 38%; color: var(--color-text-secondary); font-weight: 500; }
.recon-line-sep td[b-qwx4tac3ng] { height: 0.5rem; border: 0; }

.recon-detail-side[b-qwx4tac3ng] { display: flex; flex-direction: column; gap: 0.85rem; }
.recon-detail-score[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.75rem; }
.recon-detail-score .confidence-meter[b-qwx4tac3ng] { width: 88px; }
.recon-detail-score-pct[b-qwx4tac3ng] { font-family: var(--font-title); font-size: 1.25rem; font-weight: 600; }

.recon-detail-evidence[b-qwx4tac3ng] { margin: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.recon-detail-evidence > div[b-qwx4tac3ng] { display: grid; grid-template-columns: 38% 1fr; gap: 0.5rem; font-size: 0.8rem; }
.recon-detail-evidence dt[b-qwx4tac3ng] { color: var(--color-text-secondary); margin: 0; }
.recon-detail-evidence dd[b-qwx4tac3ng] { margin: 0; }

/* ── Match scorecard (#234) ─────────────────────────────────────────────────── */
.recon-scorecard[b-qwx4tac3ng] { display: flex; flex-direction: column; gap: 0.4rem; }
.recon-scorecard-h[b-qwx4tac3ng] { font-size: 0.78rem; font-weight: 600; color: var(--color-text-secondary); text-transform: uppercase; letter-spacing: 0.03em; margin: 0; }
.recon-scorecard-table[b-qwx4tac3ng] { font-size: 0.78rem; }
.recon-scorecard-table th[b-qwx4tac3ng], .recon-scorecard-table td[b-qwx4tac3ng] { padding: 0.3rem 0.45rem; }
.recon-scorecard-table th.num[b-qwx4tac3ng], .recon-scorecard-table td.num[b-qwx4tac3ng] { text-align: right; font-variant-numeric: tabular-nums; }
.recon-verdict[b-qwx4tac3ng] { display: inline-block; padding: 0.05rem 0.4rem; border-radius: 999px; font-size: 0.72rem; font-weight: 600; white-space: nowrap; }
.recon-verdict.is-clean[b-qwx4tac3ng] { background: #dcfce7; color: #15803d; }
.recon-verdict.is-warn[b-qwx4tac3ng] { background: #fef3c7; color: #b45309; }
.recon-verdict.is-low[b-qwx4tac3ng] { background: #fee2e2; color: #b91c1c; }
.recon-verdict.is-none[b-qwx4tac3ng] { background: var(--color-surface-muted, #f1f5f9); color: var(--color-text-secondary); }
.recon-band-row[b-qwx4tac3ng] { cursor: pointer; }
.recon-band-row:hover[b-qwx4tac3ng] { background: #f8fafc; }
.recon-band-row[aria-expanded="true"][b-qwx4tac3ng] { background: #f1f5f9; }
.recon-band-scorerow > td[b-qwx4tac3ng] { background: #f8fafc; padding: 0.5rem 0.75rem; }

/* ── AI suggestion ──────────────────────────────────────────────────────────── */
.recon-ai[b-qwx4tac3ng] {
    background: #f0f9ff; border: 1px solid #bae6fd; border-radius: var(--radius); padding: 0.75rem 0.85rem;
    display: flex; flex-direction: column; gap: 0.4rem;
}
.recon-ai-head[b-qwx4tac3ng] { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; font-weight: 600; font-size: 0.82rem; }
.recon-ai-rationale[b-qwx4tac3ng] { margin: 0; font-size: 0.82rem; color: var(--color-text-primary); }
.recon-ai-action[b-qwx4tac3ng] { margin: 0; font-size: 0.8rem; color: var(--color-text-secondary); }
.recon-ai .btn[b-qwx4tac3ng] { align-self: flex-start; }

/* ── Actions ────────────────────────────────────────────────────────────────── */
.recon-actions[b-qwx4tac3ng] { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }
.recon-actions.is-fast[b-qwx4tac3ng] { margin-top: 1.25rem; justify-content: center; }
.recon-actions .btn[b-qwx4tac3ng] { display: inline-flex; align-items: center; gap: 0.4rem; }
.recon-actions kbd[b-qwx4tac3ng] {
    font-family: var(--font-body); font-size: 0.65rem; font-weight: 700; padding: 0.05rem 0.3rem;
    border-radius: 4px; background: rgba(0,0,0,0.12); color: inherit;
}
.recon-undo[b-qwx4tac3ng] { margin-left: auto; }

/* ── Manual-match panel ─────────────────────────────────────────────────────── */
.recon-manual[b-qwx4tac3ng] { margin-top: 1rem; border: 1px dashed #cbd5e1; border-radius: var(--radius); padding: 0.75rem; background: #fff; }
.recon-manual-head[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.recon-manual-head strong[b-qwx4tac3ng] { font-size: 0.85rem; }
.recon-manual-search[b-qwx4tac3ng] { flex: 1; padding: 0.35rem 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.82rem; }
.recon-manual-list[b-qwx4tac3ng] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.2rem; max-height: 220px; overflow: auto; }
.recon-manual-item[b-qwx4tac3ng] { width: 100%; text-align: left; border: 0; background: transparent; padding: 0.4rem 0.5rem; border-radius: var(--radius); cursor: pointer; font-size: 0.82rem; }
.recon-manual-item:hover[b-qwx4tac3ng] { background: #eff6ff; color: var(--color-brand); }

/* ── Fast mode ──────────────────────────────────────────────────────────────── */
.recon-fast[b-qwx4tac3ng] { display: flex; flex-direction: column; gap: 1rem; }
.recon-fast-progress[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.85rem; font-size: 0.82rem; }
.recon-fast-pos[b-qwx4tac3ng] { font-weight: 600; }
.recon-fast-bar[b-qwx4tac3ng] { flex: 1; height: 6px; border-radius: 999px; background: #eef2f7; overflow: hidden; }
.recon-fast-bar > span[b-qwx4tac3ng] { display: block; height: 100%; background: var(--color-brand-teal); border-radius: 999px; transition: width 0.3s ease; }

.recon-fast-stage[b-qwx4tac3ng] { display: grid; grid-template-columns: 1fr 280px; gap: 1rem; align-items: start; }
@media (max-width: 900px) { .recon-fast-stage[b-qwx4tac3ng] { grid-template-columns: 1fr; } .recon-fast-next[b-qwx4tac3ng] { display: none; } }

.recon-fast-card[b-qwx4tac3ng] {
    background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius);
    box-shadow: var(--shadow-card); padding: 1.5rem; animation: recon-card-in-b-qwx4tac3ng 0.16s ease;
}
@keyframes recon-card-in-b-qwx4tac3ng { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .recon-fast-card[b-qwx4tac3ng] { animation: none; } }

.recon-fast-pair[b-qwx4tac3ng] { display: grid; grid-template-columns: 1fr 70px 1fr; align-items: center; gap: 1rem; }
.recon-fast-side[b-qwx4tac3ng] { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.recon-fast-side-label[b-qwx4tac3ng] { font-family: var(--font-subtitle); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); }
.recon-fast-side-main[b-qwx4tac3ng] { font-family: var(--font-title); font-size: 1.05rem; font-weight: 600; }
.recon-fast-side .muted[b-qwx4tac3ng] { font-size: 0.82rem; overflow: hidden; text-overflow: ellipsis; }
.recon-fast-rel[b-qwx4tac3ng] { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; }
.recon-fast-arrow[b-qwx4tac3ng] { font-size: 1.4rem; color: var(--color-text-secondary); font-weight: 700; }

.recon-fast-meta[b-qwx4tac3ng] { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1rem; flex-wrap: wrap; }
.recon-fast-delta[b-qwx4tac3ng] { font-variant-numeric: tabular-nums; font-weight: 600; }
.recon-fast-hint[b-qwx4tac3ng] { font-size: 0.82rem; color: #0369a1; }

.recon-fast-next[b-qwx4tac3ng] { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: var(--shadow-card); padding: 0.75rem; }
.recon-fast-next-head[b-qwx4tac3ng] { font-family: var(--font-subtitle); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); margin-bottom: 0.4rem; }
.recon-fast-next-item[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.5rem; width: 100%; text-align: left; border: 0; background: transparent; padding: 0.4rem 0.4rem; border-radius: var(--radius); cursor: pointer; }
.recon-fast-next-item:hover[b-qwx4tac3ng] { background: #f8fafc; }
.recon-fast-next-kind[b-qwx4tac3ng] { font-size: 0.78rem; font-weight: 600; }
.recon-fast-next-ref[b-qwx4tac3ng] { font-size: 0.76rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.recon-fast-next-empty[b-qwx4tac3ng] { font-size: 0.8rem; padding: 0.4rem; }

/* ── Done + cheats ──────────────────────────────────────────────────────────── */
.recon-wb-done[b-qwx4tac3ng] { text-align: center; padding: 3rem 1rem; color: var(--color-text-secondary); }
.recon-wb-done svg[b-qwx4tac3ng] { color: var(--color-healthy); }
.recon-wb-done h2[b-qwx4tac3ng] { font-family: var(--font-title); color: var(--color-text-primary); margin: 0.75rem 0 0.25rem; }
.recon-wb-done .btn[b-qwx4tac3ng] { margin-top: 1rem; }

.recon-wb-cheats[b-qwx4tac3ng] { position: fixed; inset: 0; background: rgba(15,23,42,0.4); display: flex; align-items: center; justify-content: center; z-index: 2000; }
.recon-wb-cheats-card[b-qwx4tac3ng] { background: #fff; border-radius: var(--radius); padding: 1.5rem; width: min(420px, 92vw); box-shadow: 0 20px 50px rgba(0,0,0,0.25); }
.recon-wb-cheats-card h2[b-qwx4tac3ng] { font-family: var(--font-title); font-size: 1.1rem; margin: 0 0 1rem; }
.recon-wb-cheats-card dl[b-qwx4tac3ng] { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem 1.25rem; margin: 0 0 1.25rem; }
.recon-wb-cheats-card dl > div[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.6rem; }
.recon-wb-cheats-card dt[b-qwx4tac3ng] { font-weight: 700; min-width: 56px; }
.recon-wb-cheats-card dd[b-qwx4tac3ng] { margin: 0; font-size: 0.85rem; color: var(--color-text-secondary); }

/* ── Audit history timeline (#245) ──────────────────────────────────────────── */
.recon-detail-foot[b-qwx4tac3ng] { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.recon-history-toggle[b-qwx4tac3ng] { margin-left: auto; }

.recon-history[b-qwx4tac3ng] { margin-top: 1rem; padding: 1rem; background: #f8fafc; border: 1px solid var(--color-border); border-radius: var(--radius); }
.recon-history-head[b-qwx4tac3ng] { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.75rem; }
.recon-history-head strong[b-qwx4tac3ng] { font-family: var(--font-subtitle); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); }
.recon-history-empty[b-qwx4tac3ng] { font-size: 0.82rem; margin: 0; }

.recon-chain[b-qwx4tac3ng] { font-size: 0.72rem; font-weight: 600; padding: 0.15rem 0.5rem; border-radius: 999px; white-space: nowrap; }
.recon-chain.is-ok[b-qwx4tac3ng] { background: #dcfce7; color: #166534; }
.recon-chain.is-broken[b-qwx4tac3ng] { background: #fee2e2; color: #991b1b; }

.recon-timeline[b-qwx4tac3ng] { list-style: none; margin: 0; padding: 0; }
.recon-timeline-item[b-qwx4tac3ng] { display: flex; gap: 0.6rem; padding-bottom: 0.75rem; position: relative; }
.recon-timeline-item:not(:last-child)[b-qwx4tac3ng]::before { content: ""; position: absolute; left: 4px; top: 0.9rem; bottom: -0.1rem; width: 1px; background: var(--color-border); }
.recon-timeline-dot[b-qwx4tac3ng] { flex: 0 0 auto; width: 9px; height: 9px; margin-top: 0.35rem; border-radius: 50%; background: var(--color-text-secondary); z-index: 1; }
.recon-timeline-body[b-qwx4tac3ng] { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.recon-timeline-kind[b-qwx4tac3ng] { font-weight: 600; font-size: 0.85rem; }
.recon-timeline-detail[b-qwx4tac3ng] { font-size: 0.82rem; color: var(--color-text-primary); }
.recon-timeline-meta[b-qwx4tac3ng] { font-size: 0.74rem; }

.recon-history-comment[b-qwx4tac3ng] { display: flex; gap: 0.5rem; margin-top: 0.75rem; }
.recon-history-input[b-qwx4tac3ng] { flex: 1 1 auto; min-width: 0; padding: 0.4rem 0.6rem; border: 1px solid var(--color-border); border-radius: var(--radius); font: inherit; }
/* /Components/Pages/Reconciliation/ShapingTracePanel.razor.rz.scp.css */
/* Before-the-engine shaping preview (#214) — the drawer's "Test shaping" panel. */

.recon-shaping-test[b-gjwbvamfhx] {
    margin-top: 0.9rem;
    border-top: 1px solid var(--border, #e5e7eb);
    padding-top: 0.75rem;
}

.recon-shaping-test-bar[b-gjwbvamfhx] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.recon-shaping-test-size[b-gjwbvamfhx] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
}

.recon-shaping-test-size input[b-gjwbvamfhx] {
    width: 4.25rem;
    padding: 0.2rem 0.35rem;
    border: 1px solid var(--border, #d1d5db);
    border-radius: 6px;
    font-size: 0.82rem;
}

.recon-shaping-test-hint[b-gjwbvamfhx] {
    font-size: 0.8rem;
}

.recon-shaping-test-error[b-gjwbvamfhx] {
    margin: 0.5rem 0 0;
    font-size: 0.82rem;
    color: #b91c1c;
}

.recon-shaping-test-summary[b-gjwbvamfhx] {
    margin: 0.55rem 0 0.35rem;
    font-size: 0.8rem;
}

.recon-shaping-test-rows[b-gjwbvamfhx] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.recon-shaping-test-row[b-gjwbvamfhx] {
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
    padding: 0.35rem 0.6rem;
    background: var(--surface-2, #fafafa);
}

.recon-shaping-test-row > summary[b-gjwbvamfhx] {
    cursor: pointer;
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    font-size: 0.82rem;
    list-style-position: inside;
}

.recon-shaping-test-rown[b-gjwbvamfhx] {
    font-weight: 600;
}

.recon-shaping-test-flag[b-gjwbvamfhx] {
    font-size: 0.7rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    border: 1px solid transparent;
}

.recon-shaping-test-flag-error[b-gjwbvamfhx] {
    color: #b91c1c;
    border-color: #fecaca;
    background: #fef2f2;
}

.recon-shaping-trace[b-gjwbvamfhx] {
    margin: 0.45rem 0 0.2rem 1.1rem;
    padding: 0.4rem 0.55rem;
    border-left: 2px solid var(--border, #e5e7eb);
    font-size: 0.8rem;
}

.recon-shaping-trace-error[b-gjwbvamfhx] {
    border-left-color: #f87171;
}

.recon-shaping-trace-head[b-gjwbvamfhx] {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.recon-shaping-trace-stepn[b-gjwbvamfhx] {
    font-weight: 600;
    color: var(--text-muted, #6b7280);
}

.recon-shaping-trace-label[b-gjwbvamfhx] {
    font-weight: 600;
}

.recon-shaping-trace-col code[b-gjwbvamfhx],
.recon-shaping-trace-io code[b-gjwbvamfhx] {
    background: var(--surface-3, #f3f4f6);
    border-radius: 4px;
    padding: 0 0.25rem;
}

.recon-shaping-trace-chain[b-gjwbvamfhx] {
    margin: 0.3rem 0 0;
    padding-left: 1.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.recon-shaping-trace-chain li[b-gjwbvamfhx] {
    color: var(--text-muted, #4b5563);
}

.recon-shaping-trace-chain code[b-gjwbvamfhx] {
    background: var(--surface-3, #f3f4f6);
    border-radius: 4px;
    padding: 0 0.25rem;
}

.recon-shaping-trace-kind[b-gjwbvamfhx] {
    font-weight: 600;
    margin-right: 0.3rem;
}

.recon-shaping-trace-node-error[b-gjwbvamfhx] {
    color: #b91c1c;
}

.recon-shaping-trace-err[b-gjwbvamfhx] {
    margin-left: 0.4rem;
    color: #b91c1c;
    font-style: italic;
}
/* /Components/Pages/Reconciliation/SourceBindingPanel.razor.rz.scp.css */
/* Descriptor-driven source-binding form (#281). Mirrors the recon drawer's field styling so a
   provider-backed binding reads identically to the hand-written upload controls beside it. Scoped to this
   component — the drawer's own scoped CSS does not reach a child component's markup. */

.recon-binding[b-7mew2jabri] { display: flex; flex-direction: column; gap: 0.85rem; }

.recon-field[b-7mew2jabri] { display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.82rem; font-weight: 600; }
.recon-field input[b-7mew2jabri], .recon-field select[b-7mew2jabri] {
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.85rem;
    font-weight: 400;
}

.recon-check[b-7mew2jabri] { display: flex; align-items: center; gap: 0.5rem; font-size: 0.82rem; }

.recon-drawer-hint[b-7mew2jabri] { font-size: 0.78rem; margin: 0; }

.recon-required[b-7mew2jabri] { color: var(--color-danger, #c0392b); margin-left: 0.15rem; }

.recon-field-invalid input[b-7mew2jabri], .recon-field-invalid select[b-7mew2jabri] {
    border-color: var(--color-danger, #c0392b);
}

.recon-field-error[b-7mew2jabri] {
    color: var(--color-danger, #c0392b);
    font-size: 0.76rem;
    margin: 0;
}
/* /Components/Pages/Reconciliation/SoxBinderPanel.razor.rz.scp.css */
.sox-binder[b-896slxkz7h] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem 1.15rem;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.sox-binder-head[b-896slxkz7h] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.sox-binder-title[b-896slxkz7h] {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
}

.sox-binder-sub[b-896slxkz7h] { margin: 0.15rem 0 0; font-size: 0.8rem; max-width: 42rem; }

.sox-binder-empty[b-896slxkz7h] { margin: 0; font-size: 0.85rem; }

.sox-binder-stamp[b-896slxkz7h] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.6rem 0.85rem;
    border-radius: var(--radius);
    font-size: 0.85rem;
    font-weight: 600;
    border: 1px solid var(--color-border);
}

.sox-binder-stamp.is-verified[b-896slxkz7h] { background: #dcfce7; border-color: #22c55e; color: #166534; }
.sox-binder-stamp.is-tampered[b-896slxkz7h] { background: #fee2e2; border-color: #ef4444; color: #991b1b; }
.sox-binder-stamp-icon[b-896slxkz7h] { font-size: 1.05rem; }

.sox-binder-meta[b-896slxkz7h] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: 0.85rem 1.5rem;
    margin: 0;
}

.sox-binder-meta div[b-896slxkz7h] { display: flex; flex-direction: column; gap: 0.15rem; }
.sox-binder-meta dt[b-896slxkz7h] { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--color-text-secondary, #6b7280); }
.sox-binder-meta dd[b-896slxkz7h] { margin: 0; font-size: 0.85rem; }

.sox-binder-hash[b-896slxkz7h] { font-family: var(--font-mono, monospace); font-size: 0.78rem; }

.sox-binder-retention[b-896slxkz7h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 0.85rem;
    background: var(--color-surface-muted, #f7f8fa);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.sox-binder-retention.is-held[b-896slxkz7h] { border-color: #f59e0b; background: #fffbeb; }

.sox-binder-retention-main[b-896slxkz7h] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.65rem;
}

.sox-binder-retention-class[b-896slxkz7h] { font-weight: 600; font-size: 0.85rem; }

.sox-binder-hold-badge[b-896slxkz7h] {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: #fef3c7;
    border: 1px solid #f59e0b;
    color: #92400e;
}

.sox-binder-actions[b-896slxkz7h] {
    display: flex;
    gap: 0.5rem;
}
/* /Components/Pages/ReleaseStudio.razor.rz.scp.css */
/* Release Studio — preflight chips, two-column layout, streaming log pane. */

.rs-preflight[b-wrh36ytdp5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1.25rem;
}

.rs-chip[b-wrh36ytdp5] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.3rem 0.7rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid var(--border-color, #e2e8f0);
    color: var(--text-muted, #64748b);
    background: var(--surface, #fff);
}

.rs-chip.is-ok[b-wrh36ytdp5] { border-color: #a6e9c9; color: #067647; background: #f0fdf6; }
.rs-chip.is-missing[b-wrh36ytdp5] { border-color: #fecdca; color: #b42318; background: #fef3f2; }
.rs-chip.is-version[b-wrh36ytdp5] { border-color: #bfd3fb; color: #1d4ed8; background: #f0f5ff; font-variant-numeric: tabular-nums; }

.rs-chip-detail[b-wrh36ytdp5] {
    font-weight: 400;
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rs-columns[b-wrh36ytdp5] {
    display: grid;
    grid-template-columns: minmax(22rem, 30rem) 1fr;
    gap: 1.25rem;
    align-items: start;
}

@media (max-width: 1100px) {
    .rs-columns[b-wrh36ytdp5] { grid-template-columns: 1fr; }
}

.rs-col > .card[b-wrh36ytdp5] { margin-bottom: 1.25rem; }

.rs-check[b-wrh36ytdp5] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    margin: 0.55rem 0;
    line-height: 1.45;
    cursor: pointer;
    color: var(--text, #0f172a);
    font-size: 0.92rem;
}

.rs-check-inline[b-wrh36ytdp5] { margin-top: 1.55rem; white-space: nowrap; }

.rs-divider[b-wrh36ytdp5] { border-top: 1px solid var(--border-color, #eef1f6); margin: 0.9rem 0; }

.rs-subhead[b-wrh36ytdp5] {
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #64748b);
    margin: 0.75rem 0 0.4rem;
}

.rs-field[b-wrh36ytdp5] { display: flex; flex-direction: column; gap: 0.25rem; margin: 0.5rem 0; flex: 1 1 0; }
.rs-field label[b-wrh36ytdp5] { font-size: 0.82rem; font-weight: 600; color: var(--text-muted, #475467); }
.rs-field-row[b-wrh36ytdp5] { display: flex; gap: 0.9rem; align-items: flex-start; }

.rs-actions[b-wrh36ytdp5] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 0.5rem 0 1.5rem;
    flex-wrap: wrap;
}

.rs-running[b-wrh36ytdp5] { color: var(--text-muted, #64748b); font-size: 0.9rem; }
.rs-ok[b-wrh36ytdp5] { color: #067647; font-weight: 600; font-size: 0.9rem; }
.rs-error[b-wrh36ytdp5] { color: #b42318; font-size: 0.9rem; }

.rs-log[b-wrh36ytdp5] {
    background: #101828;
    border-radius: 8px;
    padding: 0.9rem 1rem;
    max-height: 32rem;
    overflow-y: auto;
    font-size: 0.78rem;
    line-height: 1.5;
    margin: 0;
    display: flex;
    flex-direction: column-reverse; /* newest visible without JS scroll management */
    white-space: pre-wrap;
    word-break: break-all;
}

.rs-log-line[b-wrh36ytdp5] { color: #cbd5e1; }
.rs-log-command[b-wrh36ytdp5] { color: #93c5fd; font-weight: 600; }
.rs-log-info[b-wrh36ytdp5] { color: #e2e8f0; font-weight: 600; }
.rs-log-warn[b-wrh36ytdp5] { color: #fbbf24; }
.rs-log-error[b-wrh36ytdp5] { color: #fda29b; font-weight: 600; }
.rs-log-success[b-wrh36ytdp5] { color: #6ee7b7; font-weight: 600; }

.rs-artifacts[b-wrh36ytdp5] {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    font-size: 0.88rem;
}

.rs-kind[b-wrh36ytdp5] {
    display: inline-block;
    min-width: 7.5rem;
    font-weight: 600;
    color: var(--text-muted, #64748b);
}

.rs-digest[b-wrh36ytdp5] { color: var(--text-muted, #8a94a6); font-size: 0.8rem; margin-left: 0.5rem; }

.rs-table[b-wrh36ytdp5] { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.rs-table th[b-wrh36ytdp5], .rs-table td[b-wrh36ytdp5] {
    text-align: left;
    padding: 0.45rem 0.9rem 0.45rem 0;
    border-bottom: 1px solid var(--border-color, #eef1f6);
}
.rs-table th[b-wrh36ytdp5] { color: var(--text-muted, #64748b); font-weight: 600; }
/* /Components/Pages/Review/ReviewDocument.razor.rz.scp.css */
/* The review document page needs more horizontal space than the queue. */
[b-pwj1zpz213] .review-content {
    max-width: 1400px !important;
}

.review-doc-breadcrumb[b-pwj1zpz213] {
    font-size: 0.8125rem;
    color: #6b7280;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.review-doc-breadcrumb a[b-pwj1zpz213] {
    color: #074684;
    text-decoration: none;
}

.review-doc-breadcrumb a:hover[b-pwj1zpz213] {
    text-decoration: underline;
}

.review-doc-empty[b-pwj1zpz213] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 2rem;
    text-align: center;
}

.review-doc-header[b-pwj1zpz213] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.review-doc-header h1[b-pwj1zpz213] {
    font-family: var(--font-title, 'Roboto', sans-serif);
    font-size: 1.375rem;
    font-weight: 700;
    color: #074684;
    margin: 0 0 0.25rem;
    word-break: break-word;
}

.review-doc-meta[b-pwj1zpz213] {
    font-size: 0.8125rem;
    color: #6b7280;
    margin: 0;
}

.review-doc-actions .btn[b-pwj1zpz213] {
    padding: 0.625rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    transition: background 0.15s, opacity 0.15s;
}

.review-doc-actions .btn-primary[b-pwj1zpz213] {
    background: #074684;
    color: #fff;
}

.review-doc-actions .btn-primary:hover:not(:disabled)[b-pwj1zpz213] {
    background: #053562;
}

.review-doc-actions .btn:disabled[b-pwj1zpz213] {
    opacity: 0.5;
    cursor: not-allowed;
}

.review-doc-alert[b-pwj1zpz213] {
    padding: 0.75rem 1rem;
    border-radius: 8px;
    font-size: 0.875rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
}

.review-doc-alert-success[b-pwj1zpz213] {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #065f46;
}

.review-doc-alert-error[b-pwj1zpz213] {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}

.review-doc-grid[b-pwj1zpz213] {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}

.review-doc-preview[b-pwj1zpz213] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 1rem;
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 8rem);
    overflow: auto;
}

.review-doc-page-tabs[b-pwj1zpz213] {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid #e5e7eb;
}

.review-doc-page-tab[b-pwj1zpz213] {
    padding: 0.5rem 0.875rem;
    background: transparent;
    border: none;
    color: #6b7280;
    font-size: 0.8125rem;
    font-weight: 500;
    cursor: pointer;
    border-bottom: 2px solid transparent;
}

.review-doc-page-tab.is-active[b-pwj1zpz213] {
    color: #074684;
    border-bottom-color: #0ea5c6;
    font-weight: 600;
}

/* Preview mode switch — rasterised Pages (with field overlays) vs inline PDF. */
.review-doc-preview-modes[b-pwj1zpz213] {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.1875rem;
    margin-bottom: 0.75rem;
    background: #f1f5f9;
    border-radius: 8px;
}

.review-doc-preview-mode[b-pwj1zpz213] {
    padding: 0.3125rem 0.875rem;
    background: transparent;
    border: none;
    border-radius: 6px;
    color: #6b7280;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
}

.review-doc-preview-mode.is-active[b-pwj1zpz213] {
    background: #fff;
    color: #074684;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.review-doc-pdf[b-pwj1zpz213] {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
}

.review-doc-pdf-frame[b-pwj1zpz213] {
    display: block;
    width: 100%;
    height: calc(100vh - 14rem);
    min-height: 480px;
    border: 0;
    background: #f5f7fa;
}

.review-doc-pdf-open[b-pwj1zpz213] {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    padding: 0.25rem 0.625rem;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 600;
    color: #074684;
    text-decoration: none;
}

.review-doc-pdf-open:hover[b-pwj1zpz213] {
    background: #fff;
}

.review-doc-page-frame[b-pwj1zpz213] {
    background: #f5f7fa;
    border-radius: 8px;
    min-height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.review-doc-page-loading[b-pwj1zpz213] {
    padding: 4rem 1rem;
    text-align: center;
}

.review-doc-page-stage[b-pwj1zpz213] {
    position: relative;
    width: 100%;
    line-height: 0;
}

.review-doc-page-img[b-pwj1zpz213] {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.review-doc-page-overlay[b-pwj1zpz213] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.review-doc-page-highlight[b-pwj1zpz213] {
    fill: rgba(239, 68, 68, 0.18);
    stroke: rgba(239, 68, 68, 0.85);
    stroke-width: 0.004;
    vector-effect: non-scaling-stroke;
}

.review-doc-fields[b-pwj1zpz213] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 0.5rem;
}

/* ── Document Tags panel (DocMX-style grouped tags) ─────────────────────── */
.review-tags-header[b-pwj1zpz213] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.5rem 0.5rem 0.75rem;
    border-bottom: 1px solid #eef2f7;
    margin-bottom: 0.5rem;
}

.review-tags-title[b-pwj1zpz213] {
    font-size: 1rem;
    font-weight: 700;
    color: #0f2740;
}

.review-tags-search[b-pwj1zpz213] {
    width: 100%;
    padding: 0.4375rem 0.625rem;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 0.8125rem;
    background: #f8fafc;
}

.review-tags-search:focus[b-pwj1zpz213] {
    outline: none;
    border-color: #0ea5c6;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(14, 165, 198, 0.12);
}

.review-tags-group[b-pwj1zpz213] {
    margin-bottom: 0.25rem;
}

.review-tags-group-head[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.5rem;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #0f2740;
}

.review-tags-group-chevron[b-pwj1zpz213] {
    color: #94a3b8;
    font-size: 0.75rem;
}

.review-tags-group-name[b-pwj1zpz213] {
    flex: 1;
    text-align: left;
}

.review-tags-group-count[b-pwj1zpz213] {
    min-width: 1.25rem;
    padding: 0 0.375rem;
    border-radius: 999px;
    background: #eef2f7;
    color: #475569;
    font-size: 0.6875rem;
    font-weight: 600;
    text-align: center;
}

.review-tag-status[b-pwj1zpz213] {
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 0.0625rem 0.375rem;
    border-radius: 4px;
    margin-left: auto;
}

.review-tag-status.is-valid[b-pwj1zpz213] {
    background: #ecfdf5;
    color: #047857;
}

.review-tag-status.is-attention[b-pwj1zpz213] {
    background: #fef3c7;
    color: #b45309;
}

/* ── Assistance panel ──────────────────────────────────────────────────── */
.review-assist[b-pwj1zpz213] {
    margin-top: 1.5rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 0.75rem 1rem 1rem;
}

.review-assist-head h2[b-pwj1zpz213] {
    margin: 0;
    font-size: 1rem;
    color: #074684;
}

.review-assist-section-title[b-pwj1zpz213] {
    margin: 0.5rem 0 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
}

.review-assist-empty[b-pwj1zpz213] {
    font-size: 0.8125rem;
    margin: 0;
}

.review-assist-list[b-pwj1zpz213] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.review-assist-item[b-pwj1zpz213] {
    display: flex;
    gap: 0.5rem;
    padding: 0.5rem 0.625rem;
    border-radius: 8px;
    border-left: 3px solid #f59e0b;
    background: #fffbeb;
}

.review-assist-item.sev-error[b-pwj1zpz213] {
    border-left-color: #dc2626;
    background: #fef2f2;
}

.review-assist-icon[b-pwj1zpz213] {
    flex: 0 0 auto;
    line-height: 1.3;
}

.review-assist-body[b-pwj1zpz213] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.review-assist-field[b-pwj1zpz213] {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #92400e;
}

.review-assist-item.sev-error .review-assist-field[b-pwj1zpz213] {
    color: #991b1b;
}

.review-assist-text[b-pwj1zpz213] {
    font-size: 0.8125rem;
    color: #334155;
}

/* Anchored panels sit clear of the top when jumped to from the rail. */
#review-tags[b-pwj1zpz213], #review-groups[b-pwj1zpz213], #review-notes[b-pwj1zpz213], #review-related[b-pwj1zpz213], #review-assist[b-pwj1zpz213], #review-approval[b-pwj1zpz213] {
    scroll-margin-top: 1rem;
}

/* ── Right icon-rail (panel quick-nav) ─────────────────────────────────── */
.review-rail[b-pwj1zpz213] {
    position: fixed;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.375rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.1);
    z-index: 30;
}

.review-rail-item[b-pwj1zpz213] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 9px;
    color: #64748b;
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
}

.review-rail-item:hover[b-pwj1zpz213] {
    background: #eff6ff;
    color: #074684;
}

.review-rail-icon[b-pwj1zpz213] {
    display: flex;
}

.review-rail-icon svg[b-pwj1zpz213] {
    width: 1.125rem;
    height: 1.125rem;
}

.review-rail-badge[b-pwj1zpz213] {
    position: absolute;
    top: -0.1875rem;
    right: -0.1875rem;
    min-width: 1.05rem;
    height: 1.05rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1.05rem;
    text-align: center;
}

.review-rail-badge.is-alert[b-pwj1zpz213] {
    background: #fee2e2;
    color: #b91c1c;
}

@media (max-width: 1280px) {
    .review-rail[b-pwj1zpz213] {
        right: 0.5rem;
    }
}

/* ── Group tags (Invoice Splitting) ────────────────────────────────────── */
.review-groups[b-pwj1zpz213] {
    margin-top: 1.5rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 0.75rem 1rem 1rem;
}

.review-groups-head h2[b-pwj1zpz213] {
    margin: 0;
    font-size: 1rem;
    color: #074684;
}

.review-groups-table[b-pwj1zpz213] {
    margin-top: 0.75rem;
}

.review-groups-table-title[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
}

.review-groups-count[b-pwj1zpz213] {
    min-width: 1.25rem;
    padding: 0 0.375rem;
    border-radius: 999px;
    background: #eef2f7;
    color: #475569;
    font-size: 0.6875rem;
    text-align: center;
}

.review-groups-row[b-pwj1zpz213] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0.5rem 1rem;
    padding: 0.625rem 0.75rem;
    margin-bottom: 0.5rem;
    border: 1px solid #eef2f7;
    border-radius: 8px;
    background: #fafbfc;
}

.review-groups-cell[b-pwj1zpz213] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.review-groups-cell-key[b-pwj1zpz213] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #94a3b8;
}

.review-groups-cell-val[b-pwj1zpz213] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #0f2740;
    word-break: break-word;
}

/* ── Action Task (approval workflow, DocMX-style) ──────────────────────── */
.review-action-task[b-pwj1zpz213] {
    margin-top: 1.5rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 0.875rem 1rem 1rem;
}

.review-action-head[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.review-action-head h2[b-pwj1zpz213] {
    margin: 0;
    font-size: 1.0625rem;
    color: #0f2740;
}

.review-action-status[b-pwj1zpz213] {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 0.1875rem 0.5rem;
    border-radius: 999px;
    background: #fef3c7;
    color: #b45309;
}

.review-action-status.status-approved[b-pwj1zpz213] { background: #ecfdf5; color: #047857; }
.review-action-status.status-rejected[b-pwj1zpz213] { background: #fef2f2; color: #b91c1c; }

.review-action-reason[b-pwj1zpz213] {
    margin: 0.5rem 0 0.875rem;
    font-size: 0.8125rem;
    color: #475569;
}

.review-action-cards[b-pwj1zpz213] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.625rem;
    margin-bottom: 1rem;
}

@media (max-width: 720px) {
    .review-action-cards[b-pwj1zpz213] { grid-template-columns: 1fr; }
}

.review-action-card[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 0.875rem;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.12s, box-shadow 0.12s;
}

.review-action-card:hover:not(:disabled)[b-pwj1zpz213] {
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.review-action-card:disabled[b-pwj1zpz213] { opacity: 0.55; cursor: not-allowed; }

.review-action-card.is-approve:hover:not(:disabled)[b-pwj1zpz213] { border-color: #10b981; }
.review-action-card.is-return:hover:not(:disabled)[b-pwj1zpz213] { border-color: #ef4444; }

.review-action-card-icon[b-pwj1zpz213] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    font-size: 0.9375rem;
    font-weight: 700;
}

.review-action-card.is-approve .review-action-card-icon[b-pwj1zpz213] { background: #ecfdf5; color: #047857; }
.review-action-card.is-return .review-action-card-icon[b-pwj1zpz213] { background: #fef2f2; color: #dc2626; }

.review-action-card-body[b-pwj1zpz213] { display: flex; flex-direction: column; gap: 0.0625rem; min-width: 0; }
.review-action-card-title[b-pwj1zpz213] { font-size: 0.8125rem; font-weight: 700; color: #0f2740; text-transform: uppercase; letter-spacing: 0.02em; }
.review-action-card-sub[b-pwj1zpz213] { font-size: 0.75rem; color: #94a3b8; }

.review-action-section-title[b-pwj1zpz213] {
    margin: 0.875rem 0 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #94a3b8;
}

.review-action-empty[b-pwj1zpz213] { font-size: 0.8125rem; margin: 0; }

.review-action-approvers[b-pwj1zpz213] { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.review-action-approver[b-pwj1zpz213] {
    display: inline-flex;
    align-items: center;
    gap: 0.4375rem;
    padding: 0.25rem 0.625rem 0.25rem 0.25rem;
    border-radius: 999px;
    background: #f1f5f9;
    font-size: 0.8125rem;
    color: #334155;
}

.review-action-avatar[b-pwj1zpz213], .review-note-avatar[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    background: #0ea5c6;
    color: #fff;
    font-size: 0.625rem;
    font-weight: 700;
}

.review-action-history[b-pwj1zpz213] { list-style: none; margin: 0; padding: 0; }

.review-action-history-item[b-pwj1zpz213] {
    position: relative;
    display: flex;
    gap: 0.625rem;
    padding: 0 0 0.875rem 0;
}

.review-action-history-dot[b-pwj1zpz213] {
    flex: 0 0 auto;
    width: 0.625rem;
    height: 0.625rem;
    margin-top: 0.25rem;
    border-radius: 999px;
    background: #cbd5e1;
    box-shadow: 0 0 0 3px #fff;
    z-index: 1;
}

.review-action-history-item:not(:last-child)[b-pwj1zpz213]::before {
    content: "";
    position: absolute;
    left: 0.28125rem;
    top: 0.75rem;
    bottom: 0;
    width: 1px;
    background: #e5e7eb;
}

.review-action-history-body[b-pwj1zpz213] { display: flex; flex-direction: column; gap: 0.0625rem; min-width: 0; }
.review-action-history-title[b-pwj1zpz213] { font-size: 0.8125rem; font-weight: 600; color: #0f2740; }
.review-action-history-meta[b-pwj1zpz213] { font-size: 0.75rem; color: #94a3b8; display: flex; gap: 0.375rem; flex-wrap: wrap; }
.review-action-history-detail[b-pwj1zpz213] { font-size: 0.8125rem; color: #475569; margin-top: 0.125rem; }

/* ── Notes ─────────────────────────────────────────────────────────────── */
.review-notes[b-pwj1zpz213], .review-related[b-pwj1zpz213] {
    margin-top: 1.5rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 0.75rem 1rem 1rem;
}

.review-notes-head h2[b-pwj1zpz213], .review-related-head h2[b-pwj1zpz213] {
    margin: 0 0 0.5rem;
    font-size: 1rem;
    color: #074684;
}

.review-notes-list[b-pwj1zpz213] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.625rem; }

.review-note[b-pwj1zpz213] {
    padding: 0.625rem 0.75rem;
    border: 1px solid #eef2f7;
    border-radius: 10px;
    background: #fafbfc;
}

.review-note-head[b-pwj1zpz213] { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.375rem; }
.review-note-author[b-pwj1zpz213] { font-size: 0.8125rem; font-weight: 600; color: #0f2740; }
.review-note-date[b-pwj1zpz213] { font-size: 0.75rem; color: #94a3b8; }
.review-note-category[b-pwj1zpz213] {
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.0625rem 0.375rem;
    border-radius: 4px;
    background: #eef2f7;
    color: #475569;
}
.review-note-text[b-pwj1zpz213] { margin: 0; font-size: 0.8125rem; color: #334155; white-space: pre-wrap; }

/* ── Related documents ─────────────────────────────────────────────────── */
.review-related-list[b-pwj1zpz213] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.375rem; }

.review-related-item[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0.625rem;
    border: 1px solid #eef2f7;
    border-radius: 8px;
    background: #fafbfc;
}

.review-related-icon[b-pwj1zpz213] { color: #64748b; display: flex; }
.review-related-icon svg[b-pwj1zpz213] { width: 1.125rem; height: 1.125rem; }
.review-related-body[b-pwj1zpz213] { display: flex; flex-direction: column; gap: 0.0625rem; min-width: 0; }
.review-related-title[b-pwj1zpz213] { font-size: 0.8125rem; font-weight: 600; color: #0f2740; }
.review-related-rel[b-pwj1zpz213] { font-size: 0.75rem; color: #94a3b8; }

.review-doc-fields-empty[b-pwj1zpz213] {
    padding: 2rem;
    text-align: center;
    color: #6b7280;
}

.review-doc-field-list[b-pwj1zpz213] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.review-doc-field[b-pwj1zpz213] {
    border: 1px solid transparent;
    border-radius: 8px;
    padding: 0.5rem;
    transition: border-color 0.15s, background 0.15s;
}

.review-doc-field:hover[b-pwj1zpz213] {
    background: #f9fafb;
}

.review-doc-field.is-selected[b-pwj1zpz213] {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.review-doc-field.has-override[b-pwj1zpz213] {
    background: #fffbeb;
    border-color: #fde68a;
}

.review-doc-field.has-override.is-selected[b-pwj1zpz213] {
    background: #fef3c7;
    border-color: #fbbf24;
}

.review-doc-field-row[b-pwj1zpz213] {
    width: 100%;
    background: transparent;
    border: none;
    padding: 0;
    text-align: left;
    cursor: pointer;
    color: inherit;
}

.review-doc-field-head[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.review-doc-field-name[b-pwj1zpz213] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #374151;
}

.review-doc-field-conf[b-pwj1zpz213] {
    font-size: 0.6875rem;
    font-weight: 600;
    padding: 0.125rem 0.4rem;
    border-radius: 999px;
    letter-spacing: 0.02em;
}

.review-doc-field-conf.is-high[b-pwj1zpz213] {
    background: #ecfdf5;
    color: #047857;
}

.review-doc-field-conf.is-amber[b-pwj1zpz213] {
    background: #fef3c7;
    color: #92400e;
}

.review-doc-field-conf.is-orange[b-pwj1zpz213] {
    background: #ffedd5;
    color: #9a3412;
}

.review-doc-field-conf.is-red[b-pwj1zpz213] {
    background: #fee2e2;
    color: #991b1b;
}

.review-doc-field-explain[b-pwj1zpz213] {
    margin-top: 0.5rem;
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    padding: 0.5rem 0.625rem;
    border-radius: 8px;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    color: #0c4a6e;
    font-size: 0.8125rem;
    line-height: 1.35;
}

.review-doc-field-explain-icon[b-pwj1zpz213] {
    flex: 0 0 auto;
}

.review-doc-field-explain-text[b-pwj1zpz213] {
    flex: 1 1 auto;
}

.review-doc-field-explain-dismiss[b-pwj1zpz213] {
    flex: 0 0 auto;
    background: transparent;
    border: 0;
    color: #0c4a6e;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: 0 0.25rem;
}

.review-doc-cheatsheet[b-pwj1zpz213] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.review-doc-cheatsheet-panel[b-pwj1zpz213] {
    background: #fff;
    border-radius: 12px;
    padding: 1.5rem 1.75rem;
    min-width: 360px;
    max-width: 480px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
}

.review-doc-cheatsheet-panel h2[b-pwj1zpz213] {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    color: #074684;
}

.review-doc-cheatsheet-panel dl[b-pwj1zpz213] {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 1rem;
    row-gap: 0.375rem;
    margin: 0 0 1.25rem;
    font-size: 0.875rem;
}

.review-doc-cheatsheet-panel dt[b-pwj1zpz213] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    color: #111827;
    font-weight: 600;
}

.review-doc-cheatsheet-panel dd[b-pwj1zpz213] {
    margin: 0;
    color: #4b5563;
}

.review-doc-root:focus[b-pwj1zpz213] {
    outline: none;
}

.review-doc-region-meta[b-pwj1zpz213] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: #4b5563;
}

.review-doc-region-tag[b-pwj1zpz213] {
    font-weight: 600;
    padding: 0.125rem 0.5rem;
    border-radius: 999px;
    background: #e0e7ff;
    color: #3730a3;
}

.review-doc-region-tag.provenance-textractnative[b-pwj1zpz213],
.review-doc-page-highlight.provenance-textractnative[b-pwj1zpz213] {
    background: #ecfdf5;
    color: #047857;
}

.review-doc-page-highlight.provenance-textractnative[b-pwj1zpz213] {
    stroke: #10b981;
    fill: rgba(16, 185, 129, 0.18);
}

.review-doc-region-tag.provenance-aitextposthoc[b-pwj1zpz213] {
    background: #fef3c7;
    color: #92400e;
}

.review-doc-page-highlight.provenance-aitextposthoc[b-pwj1zpz213] {
    stroke: #f59e0b;
    stroke-dasharray: 4 3;
    fill: rgba(245, 158, 11, 0.15);
}

.review-doc-region-tag.provenance-vendoroverlayinherited[b-pwj1zpz213] {
    background: #ede9fe;
    color: #5b21b6;
}

.review-doc-page-highlight.provenance-vendoroverlayinherited[b-pwj1zpz213] {
    stroke: #7c3aed;
    fill: rgba(124, 58, 237, 0.15);
}

.review-doc-region-tag.provenance-computed[b-pwj1zpz213],
.review-doc-region-tag.provenance-none[b-pwj1zpz213] {
    background: #f3f4f6;
    color: #4b5563;
}

.review-doc-region-conf[b-pwj1zpz213] {
    color: #6b7280;
}

.review-doc-region-note[b-pwj1zpz213] {
    color: #6b7280;
    font-style: italic;
}

.review-doc-field-value[b-pwj1zpz213] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8125rem;
    color: #111827;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.review-doc-field-edit[b-pwj1zpz213] {
    margin-top: 0.4rem;
}

.review-doc-field-label[b-pwj1zpz213] {
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.25rem;
}

.review-doc-field-input[b-pwj1zpz213] {
    width: 100%;
    padding: 0.4rem 0.625rem;
    font-size: 0.8125rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.review-doc-field-input:focus[b-pwj1zpz213] {
    outline: none;
    border-color: #0ea5c6;
    box-shadow: 0 0 0 3px rgba(14, 165, 198, 0.15);
}

@media (max-width: 960px) {
    .review-doc-grid[b-pwj1zpz213] {
        grid-template-columns: 1fr;
    }
    .review-doc-preview[b-pwj1zpz213] {
        position: static;
        max-height: none;
    }
}

.review-doc-approval[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 0.625rem 0.875rem;
    margin-bottom: 1rem;
    font-size: 0.875rem;
}

.review-doc-approval[data-status="Approved"][b-pwj1zpz213] {
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.review-doc-approval[data-status="Rejected"][b-pwj1zpz213] {
    background: #fef2f2;
    border-color: #fecaca;
}

.review-doc-approval-actions[b-pwj1zpz213] {
    display: flex;
    gap: 0.5rem;
}

/* #994 slice 7: decision engine suggestions. Advisory, quiet, never a status. */
.review-doc-source-suggestion[b-pwj1zpz213],
.review-doc-field-suggestion[b-pwj1zpz213] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.35rem;
    padding: 0.35rem 0.5rem;
    border-radius: 6px;
    background: #f6f8fb;
    color: #334155;
    font-size: 0.8rem;
}

.review-doc-source-suggestion[b-pwj1zpz213] {
    margin: 0.5rem 0.75rem;
}

.review-doc-suggestion-use[b-pwj1zpz213] {
    padding: 0.2rem 0.6rem;
    font-size: 0.75rem;
}

.review-doc-field-suggestion-note[b-pwj1zpz213],
.review-doc-suggestion-message[b-pwj1zpz213] {
    margin: 0.25rem 0 0;
    color: #64748b;
    font-size: 0.75rem;
}

.review-doc-suggestion-message[b-pwj1zpz213] {
    margin: 0 0.75rem 0.5rem;
}
/* /Components/Pages/Review/ReviewHome.razor.rz.scp.css */
.review-home-header[b-k7oswfcavm] {
    margin-bottom: 1.75rem;
}

.review-home-header h1[b-k7oswfcavm] {
    font-family: var(--font-title, 'Roboto', sans-serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: #074684;
    margin: 0 0 0.25rem;
}

.review-home-subtitle[b-k7oswfcavm] {
    font-size: 0.9375rem;
    color: #6b7280;
    margin: 0;
}

.review-home-empty[b-k7oswfcavm] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 3rem 2rem;
    text-align: center;
    color: #9ca3af;
}

.review-home-empty svg[b-k7oswfcavm] {
    color: #9ca3af;
    margin-bottom: 0.75rem;
}

.review-home-empty h2[b-k7oswfcavm] {
    font-family: var(--font-title, 'Roboto', sans-serif);
    font-size: 1.125rem;
    font-weight: 600;
    color: #374151;
    margin: 0 0 0.375rem;
}

.review-home-empty p[b-k7oswfcavm] {
    font-size: 0.875rem;
    color: #6b7280;
    margin: 0;
}

.review-queue-list[b-k7oswfcavm] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.review-queue-item[b-k7oswfcavm] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.review-queue-item:hover[b-k7oswfcavm] {
    border-color: #0ea5c6;
    box-shadow: 0 2px 8px rgba(14, 165, 198, 0.08);
}

.review-queue-link[b-k7oswfcavm] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    text-decoration: none;
    color: inherit;
}

.review-queue-main[b-k7oswfcavm] {
    flex: 1;
    min-width: 0;
}

.review-queue-title[b-k7oswfcavm] {
    font-family: var(--font-title, 'Roboto', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    color: #111827;
    margin: 0 0 0.25rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.review-queue-meta[b-k7oswfcavm] {
    font-size: 0.8125rem;
    color: #6b7280;
    margin: 0;
}

.review-queue-sep[b-k7oswfcavm] {
    margin: 0 0.5rem;
    color: #d1d5db;
}

.review-queue-reason[b-k7oswfcavm] {
    color: #92400e;
}

.review-queue-chev[b-k7oswfcavm] {
    color: #9ca3af;
    flex-shrink: 0;
}

.review-home-tabs[b-k7oswfcavm] {
    display: flex;
    gap: 0.375rem;
    align-items: center;
    margin: 1rem 0 0.75rem;
}

.review-home-tab[b-k7oswfcavm] {
    padding: 0.375rem 0.875rem;
    border-radius: 999px;
    border: 1px solid #d1d5db;
    background: #fff;
    color: #374151;
    font-size: 0.8125rem;
    cursor: pointer;
}

.review-home-tab.is-active[b-k7oswfcavm] {
    background: #074684;
    border-color: #074684;
    color: #fff;
}

.review-home-route[b-k7oswfcavm] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
}

.review-home-route select[b-k7oswfcavm] {
    padding: 0.25rem 0.5rem;
    border-radius: 6px;
    border: 1px solid #d1d5db;
    background: #fff;
}

.review-home-rank[b-k7oswfcavm] {
    display: inline-flex;
    align-items: center;
    font-size: 0.8125rem;
}

.review-home-rank-toggle[b-k7oswfcavm] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    cursor: pointer;
    color: #374151;
}

.review-queue-actions[b-k7oswfcavm] {
    display: flex;
    align-items: center;
    padding: 0 0.75rem;
}

.review-queue-sla-breach[b-k7oswfcavm] {
    color: #b91c1c;
    font-weight: 600;
}

.review-queue-claim[b-k7oswfcavm] {
    color: #6b7280;
    font-style: italic;
}

.review-queue-empty[b-k7oswfcavm] {
    padding: 1rem;
    text-align: center;
}

.review-queue-select[b-k7oswfcavm] {
    padding: 0 0.5rem;
    display: flex;
    align-items: center;
}

.review-bulk-bar[b-k7oswfcavm] {
    position: sticky;
    bottom: 0;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: #fff;
    border-top: 1px solid #e5e7eb;
    box-shadow: 0 -8px 20px rgba(15, 23, 42, 0.08);
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.review-bulk-count[b-k7oswfcavm] {
    font-weight: 600;
    color: #074684;
}

.review-bulk-preview[b-k7oswfcavm] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.review-bulk-preview-panel[b-k7oswfcavm] {
    background: #fff;
    border-radius: 12px;
    padding: 1.5rem 1.75rem;
    min-width: 400px;
    max-width: 520px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
}

.review-bulk-preview-panel h2[b-k7oswfcavm] {
    margin: 0 0 0.75rem;
    color: #074684;
    font-size: 1.125rem;
}

.review-bulk-preview-panel input[type="text"][b-k7oswfcavm] {
    display: block;
    width: 100%;
    margin: 0.25rem 0 0.75rem;
    padding: 0.375rem 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
}

.review-bulk-warnings[b-k7oswfcavm] {
    background: #fef3c7;
    color: #78350f;
    border-radius: 6px;
    padding: 0.5rem 1rem;
    margin: 0.5rem 0 1rem;
    font-size: 0.8125rem;
}

.review-bulk-preview-actions[b-k7oswfcavm] {
    display: flex;
    gap: 0.5rem;
    justify-content: flex-end;
}

.review-bulk-result[b-k7oswfcavm] {
    margin-top: 1rem;
    padding: 0.5rem 0.75rem;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    color: #065f46;
    font-size: 0.8125rem;
}
/* /Components/Pages/RuleStudio.razor.rz.scp.css */
/* ── Layout ──────────────────────────────────────────────────────────── */

/* Three-column layout: controls pane (tab strip + active tab body, with the
   selected-entity detail editor stacked beneath it for schema tabs), splitter,
   and document pane. The controls pane reads as a single tabbed control —
   never a separate "list" column with a "detail" column beside it. The detail
   row collapses to 0 height when the active tab doesn't render a detail.
   The document pane is first in DOM order so existing JS selectors
   (e.g. .studio-pane-document .wizard-page-svg) keep working;
   grid-template-areas places it visually on the right. */
.studio-split[b-xw4psezbjr] {
    display: grid;
    grid-template-columns:
        var(--studio-controls-width, 540px)
        6px
        minmax(0, 1fr);
    grid-template-rows: auto auto;
    grid-template-areas:
        "list   splitter document"
        "detail splitter document";
    column-gap: 1rem;
    row-gap: 0.75rem;
    align-items: start;
}

/* The control-tab modifier is retained for back-compat; with the single-column
   layout it no longer needs to do anything (the detail row is empty on those
   tabs and collapses naturally). */
.studio-split-control[b-xw4psezbjr] {}

.studio-splitter[b-xw4psezbjr]         { grid-area: splitter; }
.studio-pane-fields[b-xw4psezbjr]      { grid-area: list; min-width: 0; }
.studio-pane-detail[b-xw4psezbjr]      { grid-area: detail; min-width: 0; }
.studio-pane-document[b-xw4psezbjr]    { grid-area: document; min-width: 0; }

@media (max-width: 1280px) {
    /* Below the splitter breakpoint, stack the panes vertically and
       hide the splitter — controls (list + detail), then document. */
    .studio-split[b-xw4psezbjr] {
        grid-template-columns: 1fr;
        grid-template-areas:
            "list"
            "detail"
            "document";
    }
    .studio-splitter[b-xw4psezbjr] { display: none; }
}

/* Drag handle between the controls pane and the document pane. */
.studio-splitter[b-xw4psezbjr] {
    align-self: stretch;
    height: 100%;
    cursor: col-resize;
    background: var(--border, #e2e6ea);
    border-radius: 3px;
    transition: background 0.15s;
    touch-action: none;
}

.studio-splitter:hover[b-xw4psezbjr],
.studio-splitter.dragging[b-xw4psezbjr] {
    background: var(--accent, #2b6cff);
}

.studio-pane[b-xw4psezbjr] {
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.5rem;
}

.studio-pane-fields[b-xw4psezbjr] {
    /* The tab pane hosts both Control and Fields tab bodies. Internal
       scroll behaviour is handled by the individual tab bodies — no
       sticky/max-height on the outer pane. */
    display: flex;
    flex-direction: column;
}

/* Selected-entity detail editor — now stacks directly below the tab body in
   the same grid column, so it lives "in the tab" rather than sitting in a
   separate sibling column. No sticky positioning: it flows with the tab pane
   and scrolls with the page so the operator can read top-to-bottom without
   independent scroll zones competing. */
.studio-pane-detail[b-xw4psezbjr] {
    padding: 0.75rem;
}

.studio-pane-detail > .card[b-xw4psezbjr] {
    margin-bottom: 1rem;
}

.studio-pane-detail > .card:last-child[b-xw4psezbjr] {
    margin-bottom: 0;
}

.studio-pane-document[b-xw4psezbjr] {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 8rem);
    display: flex;
    flex-direction: column;
}

.studio-pane-document .card-body[b-xw4psezbjr] {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

/* ── Document pane ───────────────────────────────────────────────────── */

/* Document-pane tabs (PDF / Samples / Extracted text / Activity). The strip reuses the
   global .studio-pane-tab* look; these rules pin the strip + shared control bar above a
   single scrolling body so the page nav stays put while flipping pages. */
.studio-doc-tabstrip[b-xw4psezbjr] {
    flex: 0 0 auto;
    margin-bottom: 0.5rem;
}

.studio-doc-topbar[b-xw4psezbjr] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.studio-doc-topbar-nav[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.studio-doc-topbar-page[b-xw4psezbjr] {
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
    color: var(--text-muted, #6c757d);
    min-width: 3.5rem;
    text-align: center;
}

/* Sample tape deck (StudioSampleScrub) — grows to fill the slack between the page
   nav and the zoom controls so the document name reads across the middle of the
   strip. min-width:0 lets the inner filename ellipsis kick in instead of forcing
   the bar wider. ::deep is required because .studio-samples-scrub is the root
   element of the child StudioSampleScrub component and so never carries this
   page's CSS-isolation scope attribute — without it a long filename can't
   ellipsize and the whole top bar wraps, dropping the nav/zoom buttons below. */
.studio-doc-topbar-scrub[b-xw4psezbjr] {
    flex: 1 1 14rem;
    min-width: 0;
    display: flex;
}

.studio-doc-topbar-scrub[b-xw4psezbjr]  .studio-samples-scrub {
    flex: 1;
    min-width: 0;
}

/* Zoom controls sit just left of the view toggle. */
.studio-doc-topbar-zoom[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.studio-zoom-level[b-xw4psezbjr] {
    min-width: 3.4rem;
    font-variant-numeric: tabular-nums;
}

/* Rotate controls, sharing the zoom group's rhythm so the topbar reads as one strip. */
.studio-doc-topbar-rotate[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* The glyphs carry the meaning, so let them run a little larger than the button text
   around them while keeping the same box height. */
.studio-doc-topbar-rotate .btn-sm[b-xw4psezbjr] {
    min-width: 2rem;
    font-size: 1rem;
    line-height: 1.15;
}

/* Doubles as the current-rotation readout and the reset button, the way the zoom
   percentage does. */
.studio-doc-topbar-rotate .studio-rotate-level[b-xw4psezbjr] {
    min-width: 3rem;
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
}

/* "This page only" scope toggle in the Test extraction header. */
.studio-test-scope[b-xw4psezbjr] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0 0.5rem 0 0;
    font-size: 0.85rem;
    color: var(--text-muted, #6c757d);
    white-space: nowrap;
    cursor: pointer;
}

.studio-test-scope input[b-xw4psezbjr] {
    margin: 0;
    cursor: pointer;
}

/* View-mode toggle pushed to the right of the bar; the .wizard-view-toggle class (global)
   supplies the button-group look. */
.studio-doc-topbar-view[b-xw4psezbjr] {
    margin-left: auto;
}

/* The single scrolling body shared by all four tabs. On the PDF tab the stage flexes to
   fill and the viewer scrolls internally; on the Samples / Extracted-text / Activity tabs
   the body itself scrolls. */
.studio-doc-tab-body[b-xw4psezbjr] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: auto;
}

/* ── Extracted-text tab ───────────────────────────────────────────────── */
.studio-doc-text[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.studio-doc-text-toolbar[b-xw4psezbjr] {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-bottom: 0.5rem;
    background: var(--surface, #fff);
    border-bottom: 1px solid var(--border, #e2e6ea);
    font-size: 0.78rem;
}

.studio-doc-text-page[b-xw4psezbjr] {
    /* Offset so docmxSmoothScroll lands the heading below the sticky toolbar. */
    scroll-margin-top: 3rem;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.4rem;
    overflow: hidden;
}

.studio-doc-text-page-active[b-xw4psezbjr] {
    border-color: var(--accent, #2b6cff);
    box-shadow: 0 0 0 1px var(--accent, #2b6cff);
}

.studio-doc-text-page-head[b-xw4psezbjr] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.4rem 0.6rem;
    background: var(--surface-soft, #fafbfc);
    border-bottom: 1px solid var(--border, #e2e6ea);
    font-size: 0.78rem;
}

.studio-doc-text-page-num[b-xw4psezbjr] {
    font-weight: 600;
}

.studio-doc-text-body[b-xw4psezbjr] {
    margin: 0;
    padding: 0.6rem 0.75rem;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: var(--font-body, system-ui, -apple-system, "Segoe UI", sans-serif);
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--text, #1f2937);
}

.studio-doc-text-empty-page[b-xw4psezbjr] {
    padding: 0.6rem 0.75rem;
    margin: 0;
}

/* ── Activity tab (moved here from the left control pane) ─────────────── */
.studio-doc-activity[b-xw4psezbjr] {
    flex: 0 1 auto;
}

.studio-doc-toolbar[b-xw4psezbjr] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
    font-size: 0.85rem;
}

.studio-doc-toolbar .muted[b-xw4psezbjr] {
    font-size: 0.78rem;
}

/* Live mode hint shown while click-anchor / draw-zone is active. Kept compact
   so the toolbar doesn't reflow when it appears. */
.studio-doc-toolbar-mode[b-xw4psezbjr] {
    font-size: 0.78rem;
    padding: 0.15rem 0.5rem;
    border-radius: 0.3rem;
    background: var(--accent-soft, #eef4ff);
    color: var(--accent, #2b6cff);
    font-weight: 500;
}

.studio-pages-input[b-xw4psezbjr] {
    font-size: 0.78rem;
    padding: 0.2rem 0.4rem;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.25rem;
}

.studio-doc-stage[b-xw4psezbjr] {
    position: relative;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.studio-doc-viewer[b-xw4psezbjr] {
    flex: 1;
    min-height: 0;
    overflow: auto;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.4rem;
    background: var(--surface-soft, #fafbfc);
    padding: 0.5rem;
}

.studio-doc-empty[b-xw4psezbjr] {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--text-muted, #6c757d);
    font-size: 0.9rem;
}

.studio-doc-preview-note[b-xw4psezbjr] {
    margin-top: 0.5rem;
    padding: 0.45rem 0.6rem;
    background: var(--accent-soft, #eef4ff);
    border-radius: 0.3rem;
    font-size: 0.8rem;
    color: var(--text, #1a1a1a);
}

/* ── Per-node chain-trace preview banner ─────────────────────────────── */

.studio-doc-trace-banner[b-xw4psezbjr] {
    margin-top: 0.5rem;
    padding: 0.55rem 0.75rem;
    border-radius: 0.4rem;
    font-size: 0.8rem;
    border: 1px solid transparent;
}
.studio-doc-trace-banner-pass[b-xw4psezbjr] {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #065f46;
}
.studio-doc-trace-banner-fail[b-xw4psezbjr] {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}
.studio-doc-trace-line[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}
.studio-doc-trace-line > strong[b-xw4psezbjr] {
    font-variant-numeric: tabular-nums;
}
.studio-doc-trace-value[b-xw4psezbjr] {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.78rem;
    background: rgba(255, 255, 255, 0.7);
    padding: 0.1rem 0.4rem;
    border-radius: 0.25rem;
    max-width: 24rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.studio-doc-trace-fail[b-xw4psezbjr] {
    background: rgba(254, 226, 226, 0.85);
    color: #7f1d1d;
}
.studio-doc-trace-line > .btn-icon[b-xw4psezbjr] {
    margin-left: auto;
}
.studio-doc-trace-caveat[b-xw4psezbjr] {
    margin-top: 0.35rem;
    font-size: 0.72rem;
    color: var(--color-text-muted, #64748b);
    font-style: italic;
}

/* ── Chain trace scrubber (▶ + ⏮ ◀ ▶ ⏭) ───────────────────────────── */

.studio-chain-trace-toolbar[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.35rem 0.5rem;
    margin: 0.5rem 0 0.4rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.35rem;
    background: #f8fafc;
    flex-wrap: wrap;
}
.studio-chain-trace-scrubber[b-xw4psezbjr] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-left: auto;
}
.studio-chain-trace-position[b-xw4psezbjr] {
    font-size: 0.78rem;
    color: var(--color-text, #1f2937);
    margin: 0 0.4rem;
    font-variant-numeric: tabular-nums;
}
.studio-chain-trace-position > strong[b-xw4psezbjr] {
    margin-left: 0.15rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.78rem;
}
.studio-chain-trace-close[b-xw4psezbjr] {
    margin-left: 0.4rem;
}

/* ── Persistent trace results panel ────────────────────────────────────
   Replaces the transient banner-over-doc + scrubber-in-toolbar pair so the
   operator can read the value, scrub steps, and inspect the per-node log
   without watching for a toast. */
.studio-trace-panel[b-xw4psezbjr] {
    margin: 0.4rem 0 0.75rem;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.5rem;
    background: #fafbfc;
    padding: 0.75rem 0.85rem;
}
.studio-trace-panel-pass[b-xw4psezbjr] {
    border-color: #a7f3d0;
    background: linear-gradient(180deg, #ecfdf5 0%, #fafbfc 60%);
}
.studio-trace-panel-fail[b-xw4psezbjr] {
    border-color: #fecaca;
    background: linear-gradient(180deg, #fef2f2 0%, #fafbfc 60%);
}
.studio-trace-panel-header[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}
.studio-trace-pill[b-xw4psezbjr] {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    border: 1px solid transparent;
}
.studio-trace-pill-pass[b-xw4psezbjr] {
    background: #ecfdf5;
    color: #065f46;
    border-color: #a7f3d0;
}
.studio-trace-pill-fail[b-xw4psezbjr] {
    background: #fef2f2;
    color: #991b1b;
    border-color: #fecaca;
}
.studio-trace-value-row[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-bottom: 0.55rem;
}
.studio-trace-value[b-xw4psezbjr] {
    font-size: 0.95rem;
    line-height: 1.3;
    word-break: break-word;
}
.studio-trace-value > code[b-xw4psezbjr] {
    background: rgba(255, 255, 255, 0.7);
    padding: 0.2rem 0.45rem;
    border-radius: 0.25rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.85rem;
    border: 1px solid var(--border, #e2e6ea);
}
.studio-trace-fail-reason[b-xw4psezbjr] {
    color: #7f1d1d;
    font-size: 0.85rem;
}
.studio-trace-scrubber[b-xw4psezbjr] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-bottom: 0.5rem;
    padding: 0.25rem 0.4rem;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.35rem;
}
.studio-trace-position[b-xw4psezbjr] {
    font-size: 0.75rem;
    color: var(--color-text, #1f2937);
    margin: 0 0.4rem;
    font-variant-numeric: tabular-nums;
}
.studio-trace-position > strong[b-xw4psezbjr] {
    margin-left: 0.2rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.75rem;
}
.studio-trace-log-wrap > summary[b-xw4psezbjr] {
    font-size: 0.75rem;
    color: var(--color-text-muted, #64748b);
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.studio-trace-log-wrap > summary[b-xw4psezbjr]::-webkit-details-marker {
    display: none;
}
.studio-trace-log-wrap > summary[b-xw4psezbjr]::before {
    content: "▸ ";
}
.studio-trace-log-wrap[open] > summary[b-xw4psezbjr]::before {
    content: "▾ ";
}
.studio-trace-log[b-xw4psezbjr] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.35rem;
    background: #fff;
    overflow: hidden;
}
.studio-trace-log-row[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.4rem 0.6rem;
    font-size: 0.78rem;
    border-bottom: 1px solid var(--border, #e2e6ea);
    cursor: pointer;
}
.studio-trace-log-row:last-child[b-xw4psezbjr] {
    border-bottom: none;
}
.studio-trace-log-row:hover[b-xw4psezbjr] {
    background: #f8fafc;
}
.studio-trace-log-current[b-xw4psezbjr] {
    background: #eff6ff !important;
    box-shadow: inset 3px 0 0 #2b6cff;
}
.studio-trace-log-num[b-xw4psezbjr] {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    color: var(--color-text-muted, #64748b);
    font-size: 0.7rem;
    min-width: 1.2rem;
    text-align: right;
}
.studio-trace-log-kind[b-xw4psezbjr] {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.72rem;
    color: var(--color-text, #1f2937);
    background: #f1f5f9;
    padding: 0.1rem 0.4rem;
    border-radius: 0.2rem;
    flex: 0 0 auto;
}
.studio-trace-log-pass .studio-trace-log-kind[b-xw4psezbjr] {
    background: #ecfdf5;
    color: #065f46;
}
.studio-trace-log-fail .studio-trace-log-kind[b-xw4psezbjr] {
    background: #fef2f2;
    color: #991b1b;
}
.studio-trace-log-text[b-xw4psezbjr] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.74rem;
    flex: 1;
    min-width: 0;
}
.studio-trace-log-text-fail[b-xw4psezbjr] {
    color: #7f1d1d;
}
.studio-trace-caveat[b-xw4psezbjr] {
    margin-top: 0.5rem;
    font-size: 0.7rem;
    color: var(--color-text-muted, #64748b);
    font-style: italic;
}

/* Per-step badge inside the chain node header — flags which node the
   currently-shown trace step came from. */
.studio-node-trace-badge[b-xw4psezbjr] {
    margin-left: 0.4rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #a7f3d0;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── Field list ──────────────────────────────────────────────────────── */

.studio-field-list[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    padding: 0.5rem;
}

.studio-field-row[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.5rem 0.75rem;
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.35rem;
    cursor: pointer;
    color: inherit;
    font: inherit;
    transition: background 0.1s ease, border-color 0.1s ease;
}

.studio-field-row:hover[b-xw4psezbjr] {
    background: var(--surface-hover, #f4f6f8);
}

.studio-field-row-selected[b-xw4psezbjr],
.studio-field-row-selected:hover[b-xw4psezbjr] {
    background: var(--accent-soft, #eef4ff);
    border-color: var(--accent, #2b6cff);
}

.studio-field-row-name[b-xw4psezbjr] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
}

.studio-field-row-meta[b-xw4psezbjr] {
    font-size: 0.78rem;
    color: var(--text-muted, #6c757d);
}

.studio-field-source-badge[b-xw4psezbjr] {
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--text-muted, #6c757d);
    background: var(--surface-hover, #f4f6f8);
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.75rem;
    padding: 0.05rem 0.45rem;
}

/* ── Source picker ───────────────────────────────────────────────────── */
/* One-of-three radio-style picker for a field's extraction source.
   Operators lock the field to one source here; only that source is saved. */

.studio-source-picker[b-xw4psezbjr] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
}

.studio-source-option[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.7rem;
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.4rem;
    cursor: pointer;
    text-align: left;
    color: var(--text, #1a1a1a);
    transition: border-color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
}

.studio-source-option:hover[b-xw4psezbjr] {
    border-color: var(--border-strong, #c8ced3);
    background: var(--surface-soft, #fafbfc);
}

.studio-source-option-active[b-xw4psezbjr] {
    border-color: var(--accent, #2b6cff);
    background: var(--accent-tint, #eef3ff);
    box-shadow: 0 0 0 1px var(--accent, #2b6cff) inset;
}

.studio-source-option-radio[b-xw4psezbjr] {
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    border: 1.5px solid var(--border-strong, #c8ced3);
    background: var(--surface, #fff);
    position: relative;
    transition: border-color 0.1s ease;
}

.studio-source-option-active .studio-source-option-radio[b-xw4psezbjr] {
    border-color: var(--accent, #2b6cff);
}

.studio-source-option-active .studio-source-option-radio[b-xw4psezbjr]::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: var(--accent, #2b6cff);
}

.studio-source-option-label[b-xw4psezbjr] {
    font-weight: 600;
    font-size: 0.88rem;
    line-height: 1.2;
}

.studio-source-divider[b-xw4psezbjr] {
    border: 0;
    border-top: 1px solid var(--border, #e2e6ea);
    margin: 1rem 0;
}

@media (max-width: 900px) {
    .studio-source-picker[b-xw4psezbjr] {
        grid-template-columns: 1fr;
    }
}

/* Inline failure note beside the per-field "Suggest with AI" buttons — the
   sample-library error strip renders on the Samples tab, which is out of view
   from the field editor where the button lives. */
.studio-suggest-inline-error[b-xw4psezbjr] {
    display: block;
    font-size: 0.75rem;
    color: #b42318;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 4px;
    padding: 0.4rem 0.6rem;
}

/* Result strip below the chosen-source config — populated by the per-field
   "▶ Run this field" button. Three variants: ok (got a value), empty (ran
   but no value), error (something failed). Sits inside the Source card body
   so it reads as "the output of what's above". */
.studio-field-run-result[b-xw4psezbjr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.55rem 0.75rem;
    border-radius: 0.4rem;
    font-size: 0.85rem;
    border: 1px solid var(--border, #e2e6ea);
}

.studio-field-run-result-label[b-xw4psezbjr] {
    font-weight: 600;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.1rem 0.45rem;
    border-radius: 0.25rem;
}

.studio-field-run-result-value[b-xw4psezbjr] {
    flex: 1 1 auto;
    min-width: 0;
    word-break: break-word;
}

.studio-field-run-result-value code[b-xw4psezbjr],
code.studio-field-run-result-value[b-xw4psezbjr] {
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 3px;
    padding: 0.1rem 0.45rem;
    font-size: 0.82rem;
}

.studio-field-run-result-meta[b-xw4psezbjr] {
    flex: 0 0 auto;
    font-size: 0.72rem;
}

.studio-field-run-result-ok[b-xw4psezbjr] {
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.studio-field-run-result-ok .studio-field-run-result-label[b-xw4psezbjr] {
    background: #10b981;
    color: #fff;
}

.studio-field-run-result-empty[b-xw4psezbjr] {
    background: #fff7ed;
    border-color: #fed7aa;
}

.studio-field-run-result-empty .studio-field-run-result-label[b-xw4psezbjr] {
    background: #f59e0b;
    color: #fff;
}

.studio-field-run-result-error[b-xw4psezbjr] {
    background: #fef2f2;
    border-color: #fecaca;
}

.studio-field-run-result-error .studio-field-run-result-label[b-xw4psezbjr] {
    background: #dc2626;
    color: #fff;
}

/* ── AI call panel (prompt + raw response + parse error) ────────────── */
/* Sits under the per-field result strip. Collapsed by default — the prompt
   alone is usually a screenful, so showing it inline would crowd out the form. */
.studio-ai-call[b-xw4psezbjr] {
    margin-top: 0.6rem;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.4rem;
    background: var(--surface-soft, #fafbfc);
}

.studio-ai-call-toggle[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.45rem 0.7rem;
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 0.78rem;
    color: var(--text-muted, #6c757d);
    text-align: left;
}

.studio-ai-call-toggle:hover[b-xw4psezbjr] {
    color: var(--text, #1a1a1a);
}

.studio-ai-call-pill[b-xw4psezbjr] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.4rem;
    border-radius: 0.6rem;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.studio-ai-call-pill-error[b-xw4psezbjr] {
    background: #dc2626;
    color: #fff;
}

.studio-ai-call-pill-warn[b-xw4psezbjr] {
    background: #f59e0b;
    color: #fff;
}

.studio-ai-call-body[b-xw4psezbjr] {
    padding: 0.5rem 0.7rem 0.7rem;
    border-top: 1px solid var(--border, #e2e6ea);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.studio-ai-call-section[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.studio-ai-call-section-label[b-xw4psezbjr] {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #6c757d);
}

.studio-ai-call-text[b-xw4psezbjr] {
    margin: 0;
    padding: 0.5rem 0.6rem;
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.3rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.72rem;
    line-height: 1.35;
    max-height: 16rem;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

.studio-ai-call-text-error[b-xw4psezbjr] {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}

/* Last-sample-run table — "AI call" column "View" button + the inline expand row. */
.studio-sample-run-call-col[b-xw4psezbjr] {
    width: 5.5rem;
}

.studio-sample-run-call[b-xw4psezbjr] {
    text-align: right;
}

.studio-sample-run-call-btn[b-xw4psezbjr] {
    background: transparent;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.3rem;
    padding: 0.15rem 0.5rem;
    font-size: 0.7rem;
    cursor: pointer;
}

.studio-sample-run-call-btn:hover[b-xw4psezbjr] {
    border-color: var(--accent, #2b6cff);
    color: var(--accent, #2b6cff);
}

.studio-sample-run-call-row td[b-xw4psezbjr] {
    background: var(--surface-soft, #fafbfc);
    padding: 0 !important;
}

.studio-sample-run-call-row .studio-ai-call-body[b-xw4psezbjr] {
    margin: 0.5rem;
    border-radius: 0.4rem;
    border: 1px solid var(--border, #e2e6ea);
}

/* ── Chain nodes ─────────────────────────────────────────────────────── */

.studio-node[b-xw4psezbjr] {
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.4rem;
    margin-bottom: 0.6rem;
    background: var(--surface-soft, #fafbfc);
    overflow: hidden;
}

.studio-node-header[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.75rem;
    background: var(--surface-hover, #f4f6f8);
    border-bottom: 1px solid var(--border, #e2e6ea);
    font-size: 0.85rem;
}

.studio-node-family[b-xw4psezbjr] {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.05rem;
    color: var(--text-muted, #6c757d);
}

.studio-node-kind[b-xw4psezbjr] {
    font-weight: 600;
    color: var(--text, #1a1a1a);
}

.studio-node-actions[b-xw4psezbjr] {
    margin-left: auto;
    display: flex;
    gap: 0.25rem;
}

.btn-icon[b-xw4psezbjr] {
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.25rem;
    cursor: pointer;
    color: var(--text-muted, #6c757d);
}

.btn-icon:not(:disabled):hover[b-xw4psezbjr] {
    color: var(--text, #1a1a1a);
    border-color: var(--border, #e2e6ea);
    background: var(--surface, #fff);
}

.btn-icon:disabled[b-xw4psezbjr] {
    opacity: 0.35;
    cursor: not-allowed;
}

.studio-node-body[b-xw4psezbjr] {
    padding: 0.75rem;
}

/* Inline picker row inside a node body — keeps the input growing while the
   "click block" / "multi-block" buttons sit alongside it on the same line. */
.studio-node-picker-row[b-xw4psezbjr] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}
.studio-node-picker-row > input[b-xw4psezbjr] {
    flex: 1;
    min-width: 0;
}
.studio-node-picker-row > .btn[b-xw4psezbjr] {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* Family-coloured left edge for visual scan */
.studio-node-locate[b-xw4psezbjr]    { border-left: 3px solid #2b6cff; }
.studio-node-filter[b-xw4psezbjr]    { border-left: 3px solid #d49a00; }
.studio-node-transform[b-xw4psezbjr] { border-left: 3px solid #00955a; }
.studio-node-validate[b-xw4psezbjr]  { border-left: 3px solid #b03060; }

.studio-node[b-xw4psezbjr] {
    cursor: pointer;
    transition: box-shadow 0.1s ease, border-color 0.1s ease;
}

.studio-node:hover[b-xw4psezbjr] {
    box-shadow: 0 0 0 1px var(--border-strong, #c7cdd2);
}

.studio-node-selected[b-xw4psezbjr] {
    box-shadow: 0 0 0 2px var(--accent, #2b6cff);
    background: var(--surface, #fff);
}

.studio-node-dragging[b-xw4psezbjr] {
    opacity: 0.45;
    outline: 2px dashed var(--accent, #2b6cff);
}

.studio-node-drag-handle[b-xw4psezbjr] {
    cursor: grab;
    color: var(--text-muted, #b0b6bc);
    font-size: 0.85rem;
    line-height: 1;
    padding-right: 0.15rem;
    user-select: none;
}
.studio-node-drag-handle:active[b-xw4psezbjr] { cursor: grabbing; }

/* Reuse the same handle for table column rows. */
.studio-table-column[b-xw4psezbjr] {
    position: relative;
}
.studio-table-column-dragging[b-xw4psezbjr] {
    opacity: 0.5;
    outline: 2px dashed var(--accent, #2b6cff);
}
.studio-table-column-drag-handle[b-xw4psezbjr] {
    display: inline-flex;
    align-items: center;
    cursor: grab;
    color: var(--text-muted, #b0b6bc);
    font-size: 0.85rem;
    margin-right: 0.4rem;
    user-select: none;
}
.studio-table-column-drag-handle:active[b-xw4psezbjr] { cursor: grabbing; }

/* Failing-only filter toggle */
.studio-field-filter[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-bottom: 1px solid var(--border, #e2e6ea);
    font-size: 0.78rem;
    color: var(--text-muted, #6c757d);
}
.studio-field-filter input[type=checkbox][b-xw4psezbjr] { margin: 0; }

/* Test history list */
.studio-test-history[b-xw4psezbjr] {
    margin-top: 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-left: 0.4rem;
    border-left: 2px solid var(--border, #e2e6ea);
}
.studio-test-history-row[b-xw4psezbjr] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.5rem;
    font-size: 0.7rem;
    color: var(--text-muted, #6c757d);
    font-variant-numeric: tabular-nums;
}
.studio-test-history-pass[b-xw4psezbjr] { color: #00955a; }
.studio-test-history-fail[b-xw4psezbjr] { color: #b03060; }

/* Test-case row layout with thumbnail */
.studio-test-row-with-thumb[b-xw4psezbjr] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}
.studio-test-thumb[b-xw4psezbjr] {
    flex: 0 0 auto;
    width: 3rem;
    height: 4rem;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.25rem;
    overflow: hidden;
    background: #f4f6f8;
    display: flex;
    align-items: center;
    justify-content: center;
}
.studio-test-thumb img[b-xw4psezbjr] {
    max-width: 100%;
    max-height: 100%;
    display: block;
}
.studio-test-thumb-empty[b-xw4psezbjr] {
    font-size: 0.7rem;
    color: var(--text-muted, #b0b6bc);
}

/* Lines auto-seed offer banner */
.studio-seed-banner[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.75rem;
    background: rgba(43, 108, 255, 0.06);
    border: 1px dashed rgba(43, 108, 255, 0.4);
    border-radius: 0.4rem;
    font-size: 0.85rem;
    margin: 0.5rem 0 0.75rem;
}
.studio-seed-banner strong[b-xw4psezbjr] { color: var(--text, #1a1a1a); }

/* ── Add-node menus ──────────────────────────────────────────────────── */

.studio-add-row[b-xw4psezbjr] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.studio-add-menu[b-xw4psezbjr] {
    position: relative;
}

.studio-add-menu > summary[b-xw4psezbjr] {
    list-style: none;
    cursor: pointer;
}

.studio-add-menu > summary[b-xw4psezbjr]::-webkit-details-marker {
    display: none;
}

/* The add-row sits at the very bottom of the chain card, so opening DOWN
   makes the popover spill past the right-pane's scroll boundary and get
   clipped (visible when the menu has 5 items, e.g. Locate). Open upward
   from the button so the popover stays inside the viewport. Cap the
   height so very tall menus (future growth) still scroll cleanly. */
.studio-add-menu-list[b-xw4psezbjr] {
    position: absolute;
    bottom: 100%;
    left: 0;
    margin-bottom: 0.25rem;
    min-width: 18rem;
    max-width: min(22rem, calc(100vw - 2rem));
    max-height: min(24rem, calc(100vh - 8rem));
    overflow-y: auto;
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.4rem;
    box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08);
    padding: 0.25rem;
    z-index: 10;
}

/* Right-anchor the trailing add-menus (Transform + Validate) so the popover
   extends LEFT instead of RIGHT — keeps the menu inside the OCR Chain card
   on narrow detail panes where the right-most buttons sit at the card edge. */
.studio-add-row > .studio-add-menu:nth-last-child(-n+2) > .studio-add-menu-list[b-xw4psezbjr] {
    left: auto;
    right: 0;
}

.studio-add-menu-item[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: left;
    padding: 0.5rem 0.65rem;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.3rem;
    cursor: pointer;
    color: inherit;
    font: inherit;
}

.studio-add-menu-item:hover[b-xw4psezbjr] {
    background: var(--surface-hover, #f4f6f8);
}

.studio-add-menu-item .muted[b-xw4psezbjr] {
    font-size: 0.78rem;
}

/* The global .card rule sets overflow:hidden, which clips the +Locate /
   +Filter / +Transform / +Validate popovers because they're absolutely
   positioned inside the chain card. Lift the clip on the chain card so the
   popovers can extend outside. Also lift on the card's body so the inner
   overflow (which exists on .card-body in some themes) doesn't reclip. The
   selector targets the popover's nearest card ancestor regardless of layout
   wrapper, so the rule survives layout refactors (the prior selector pinned
   to an ancestor class that has since been removed). */
.card:has(.studio-add-row)[b-xw4psezbjr] {
    overflow: visible;
}
.card:has(.studio-add-row) > .card-body[b-xw4psezbjr] {
    overflow: visible;
}

/* ── ZonalLocate authoring controls ─────────────────────────────────── */

/* 3×3 anchor picker — corners, edges, centre. The visual grid mirrors a
   page rectangle so picking BottomEdge feels like clicking the bottom
   strip, not a label called "BottomEdge". */
.studio-zone-anchor-grid[b-xw4psezbjr] {
    display: grid;
    grid-template-columns: repeat(3, 2.25rem);
    grid-template-rows: repeat(3, 2.25rem);
    gap: 0.2rem;
    margin: 0.25rem 0 0.35rem;
}
.studio-zone-anchor-cell[b-xw4psezbjr] {
    border: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-bg-soft, #f8fafc);
    border-radius: 0.3rem;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    color: var(--color-text-muted, #64748b);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 60ms ease, border-color 60ms ease, color 60ms ease;
}
.studio-zone-anchor-cell:hover[b-xw4psezbjr] {
    background: #e0f2fe;
    border-color: #7dd3fc;
    color: #0c4a6e;
}
.studio-zone-anchor-cell-active[b-xw4psezbjr] {
    background: var(--color-primary, #0ea5c6);
    border-color: var(--color-primary, #0ea5c6);
    color: #ffffff;
}
.studio-zone-anchor-cell-active:hover[b-xw4psezbjr] {
    background: var(--color-primary, #0ea5c6);
    border-color: var(--color-primary, #0ea5c6);
    color: #ffffff;
}

/* Number input + unit dropdown welded together so they read as one control. */
.studio-zone-input-group[b-xw4psezbjr] {
    display: flex;
    align-items: stretch;
    gap: 0;
}
.studio-zone-input-group > input[b-xw4psezbjr] {
    flex: 1;
    min-width: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-right: none;
}
.studio-zone-input-group > select[b-xw4psezbjr] {
    flex: 0 0 auto;
    width: auto;
    min-width: 3.5rem;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    background-color: var(--color-bg-soft, #f8fafc);
}
.studio-zone-input-group > input:disabled[b-xw4psezbjr] {
    background: var(--color-bg-soft, #f8fafc);
    color: var(--color-text-muted, #94a3b8);
}

/* Preset chip-row — multi-line wrap so a narrow pane stacks gracefully. */
.studio-zone-presets[b-xw4psezbjr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.25rem;
}

/* ── Card-header row helper (matches existing patterns) ─────────────── */

.card-header.card-header-row[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ── Form row inline (multiple inputs side-by-side) ─────────────────── */

.form-row.form-row-inline[b-xw4psezbjr] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

.form-row.form-row-inline > div[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
}

.full-width[b-xw4psezbjr] {
    width: 100%;
}

/* ── Test cases ──────────────────────────────────────────────────────── */

.studio-tests[b-xw4psezbjr] {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border, #e2e6ea);
}

.studio-tests-header[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}

.studio-tests-header h3[b-xw4psezbjr] {
    margin: 0;
    font-size: 1rem;
}

.studio-test-row[b-xw4psezbjr] {
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.4rem;
    margin-bottom: 0.5rem;
    background: var(--surface-soft, #fafbfc);
    padding: 0.6rem 0.75rem;
}

.studio-test-row-pass[b-xw4psezbjr] {
    border-left: 3px solid #00955a;
}

.studio-test-row-fail[b-xw4psezbjr] {
    border-left: 3px solid #b03060;
    background: #fdf6f8;
}

.studio-test-row-meta[b-xw4psezbjr] {
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
}

.studio-test-result[b-xw4psezbjr] {
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.studio-test-badge[b-xw4psezbjr] {
    display: inline-block;
    padding: 0.1rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05rem;
    background: var(--surface-hover, #f4f6f8);
    color: var(--text-muted, #6c757d);
}

.studio-test-row-pass .studio-test-badge[b-xw4psezbjr] {
    background: rgba(0, 149, 90, 0.12);
    color: #00955a;
}

.studio-test-row-fail .studio-test-badge[b-xw4psezbjr] {
    background: rgba(176, 48, 96, 0.12);
    color: #b03060;
}

.studio-tests-add[b-xw4psezbjr] {
    margin-top: 0.5rem;
}

/* ── Run-all banner + per-field test pill ────────────────────────────── */

.studio-runall-banner[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.6rem 0.85rem;
    border-radius: 0.4rem;
    margin-bottom: 1rem;
    font-size: 0.9rem;
}

.studio-runall-running[b-xw4psezbjr] {
    background: var(--accent-soft, #eef4ff);
    border: 1px solid var(--accent, #2b6cff);
}

.studio-runall-pass[b-xw4psezbjr] {
    background: rgba(0, 149, 90, 0.08);
    border: 1px solid rgba(0, 149, 90, 0.4);
}

.studio-runall-fail[b-xw4psezbjr] {
    background: rgba(176, 48, 96, 0.08);
    border: 1px solid rgba(176, 48, 96, 0.4);
}

.studio-runall-banner .muted[b-xw4psezbjr] {
    font-size: 0.8rem;
}

.studio-field-test-pill[b-xw4psezbjr] {
    margin-left: 0.4rem;
    padding: 0.05rem 0.4rem;
    border-radius: 0.7rem;
    font-size: 0.7rem;
    font-weight: 600;
    border: 1px solid transparent;
}

.studio-field-test-pill-muted[b-xw4psezbjr] {
    background: var(--surface-hover, #f4f6f8);
    color: var(--text-muted, #6c757d);
    border-color: var(--border, #e2e6ea);
}

.studio-field-test-pill-pass[b-xw4psezbjr] {
    background: rgba(0, 149, 90, 0.12);
    color: #00955a;
}

.studio-field-test-pill-fail[b-xw4psezbjr] {
    background: rgba(176, 48, 96, 0.12);
    color: #b03060;
}

/* ── Table columns ───────────────────────────────────────────────────── */

.studio-table-column[b-xw4psezbjr] {
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.4rem;
    padding: 0.35rem 0.6rem;
    margin-bottom: 0.3rem;
    background: var(--surface-soft, #fafbfc);
}

/* Compact the Name/Type row inside a column card — the default form-row label/input
   spacing makes each card needlessly tall when there are many columns. */
.studio-table-column .form-row[b-xw4psezbjr],
.studio-table-column .form-row-inline[b-xw4psezbjr] {
    margin: 0;
}
.studio-table-column label[b-xw4psezbjr] {
    margin-bottom: 0.1rem;
    font-size: 0.72rem;
}

/* ── OCR run status strip ────────────────────────────────────────────── */

.studio-ocr-status[b-xw4psezbjr] {
    margin: 0.5rem 0;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border, #e2e6ea);
    border-left-width: 3px;
    border-radius: 0.35rem;
    background: var(--surface-soft, #fafbfc);
    font-size: 0.82rem;
}

.studio-ocr-status-running[b-xw4psezbjr] { border-left-color: #2b6cff; }
.studio-ocr-status-ok[b-xw4psezbjr]      { border-left-color: #1d9a55; }
.studio-ocr-status-fail[b-xw4psezbjr]    { border-left-color: #c33b3b; background: #fdf3f3; }

.studio-ocr-status-line[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.studio-ocr-toggle[b-xw4psezbjr] {
    margin-left: auto;
    background: transparent;
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.3rem;
    padding: 0.15rem 0.5rem;
    font: inherit;
    font-size: 0.75rem;
    cursor: pointer;
    color: var(--text-muted, #6c757d);
}

.studio-ocr-toggle:hover[b-xw4psezbjr] {
    color: var(--text, #1a1f24);
    border-color: var(--text-muted, #6c757d);
}

.studio-ocr-log[b-xw4psezbjr] {
    margin: 0.5rem 0 0;
    padding: 0.4rem 0.5rem 0.4rem 1.6rem;
    max-height: 12rem;
    overflow-y: auto;
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e2e6ea);
    border-radius: 0.3rem;
    list-style: decimal;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.75rem;
    line-height: 1.45;
}

.studio-ocr-log li[b-xw4psezbjr] {
    padding: 0.1rem 0;
    color: var(--text, #1a1f24);
}

.studio-ocr-log-error[b-xw4psezbjr]  { color: #c33b3b; }
.studio-ocr-log-done[b-xw4psezbjr]   { color: #1d9a55; }
.studio-ocr-log-time[b-xw4psezbjr]   { color: var(--text-muted, #6c757d); margin-right: 0.4rem; }

.studio-ocr-log-kind[b-xw4psezbjr] {
    display: inline-block;
    min-width: 4.5rem;
    text-transform: uppercase;
    font-size: 0.65rem;
    color: var(--text-muted, #6c757d);
    margin-right: 0.4rem;
}

/* ── Analysis tab · run-options grid ──
   Surfaces the same model role / source mode / OCR engine knobs the toolbar
   Approach pill controls, but inline above the stage strip so operators can
   see and edit them next to the pipeline they're about to drive. */
.studio-run-options[b-xw4psezbjr] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.75rem 1rem;
    align-items: start;
}

.studio-run-option[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.78rem;
    min-width: 0;
}

.studio-run-option-label[b-xw4psezbjr] {
    font-weight: 600;
    color: var(--text-muted, #6c757d);
    text-transform: uppercase;
    font-size: 0.65rem;
    letter-spacing: 0.02em;
}

.studio-run-option > select[b-xw4psezbjr],
.studio-run-option > input[b-xw4psezbjr] {
    font: inherit;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--color-border, #d8dde4);
    border-radius: 4px;
    background: var(--color-surface, #fff);
    width: 100%;
    box-sizing: border-box;
}

.studio-run-option-ocr[b-xw4psezbjr] {
    grid-column: 1 / -1;
}

.studio-run-options-note[b-xw4psezbjr] {
    margin: 0.75rem 0 0;
    font-size: 0.75rem;
    line-height: 1.4;
}

/* ── Analysis tab · pipeline stage strip ──
   Three stacked cards on the Analysis tab — one per RunStageKind — that
   transition Info → Running → Success/Warning/Error as RunOnCurrentSampleAsync
   progresses. Coloured border + tinted icon match the existing
   studio-activity-* kinds for visual consistency with the Activity feed. */
.studio-run-stages[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.studio-run-stage[b-xw4psezbjr] {
    display: grid;
    grid-template-columns: 1.4rem 1fr auto;
    gap: 0.6rem;
    align-items: center;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--color-border, #d8dde4);
    border-radius: 6px;
    background: var(--color-surface-2, #f7f9fc);
    font-size: 0.82rem;
}

.studio-run-stage-icon[b-xw4psezbjr] {
    font-size: 1rem;
    line-height: 1;
    color: var(--text-muted, #6c757d);
}

.studio-run-stage-running[b-xw4psezbjr] {
    border-color: var(--color-accent, #2b6cff);
    box-shadow: 0 0 0 2px rgba(43, 108, 255, 0.12);
}
.studio-run-stage-running .studio-run-stage-icon[b-xw4psezbjr] { color: var(--color-accent, #2b6cff); }

.studio-run-stage-success[b-xw4psezbjr] { border-color: var(--color-success, #1f8a4c); }
.studio-run-stage-success .studio-run-stage-icon[b-xw4psezbjr] { color: var(--color-success, #1f8a4c); }

.studio-run-stage-warning[b-xw4psezbjr] { border-color: var(--color-warning, #b88207); }
.studio-run-stage-warning .studio-run-stage-icon[b-xw4psezbjr] { color: var(--color-warning, #b88207); }

.studio-run-stage-error[b-xw4psezbjr] { border-color: var(--color-error, #b42318); }
.studio-run-stage-error .studio-run-stage-icon[b-xw4psezbjr] { color: var(--color-error, #b42318); }

.studio-run-stage-main[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.studio-run-stage-label[b-xw4psezbjr] {
    font-weight: 600;
}

.studio-run-stage-summary[b-xw4psezbjr] {
    font-size: 0.75rem;
}

.studio-run-stage-elapsed[b-xw4psezbjr] {
    font-size: 0.75rem;
    white-space: nowrap;
}

/* ── Analysis tab · per-table preview block ──
   Renders one card per extracted table — header carries name + source pill +
   row-count badge + AI cost; body is a scrollable mini-grid of the first
   ~10 rows. Mirrors the look of studio-sample-run-table (extracted values
   table above) for visual cohesion. */
.studio-run-table[b-xw4psezbjr] {
    border: 1px solid var(--color-border, #d8dde4);
    border-radius: 6px;
    padding: 0.6rem 0.75rem;
    background: var(--color-surface-2, #f7f9fc);
    margin-bottom: 0.6rem;
}

.studio-run-table:last-child[b-xw4psezbjr] { margin-bottom: 0; }

.studio-run-table-header[b-xw4psezbjr] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.studio-run-table-name[b-xw4psezbjr] { font-size: 0.85rem; }
.studio-run-table-key[b-xw4psezbjr]  { margin-left: 0.4rem; font-size: 0.75rem; }

.studio-run-table-meta[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.studio-run-table-cost[b-xw4psezbjr] {
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-size: 0.7rem;
}

.studio-run-table-error[b-xw4psezbjr] {
    color: var(--color-error, #b42318);
    background: rgba(180, 35, 24, 0.05);
    border-left: 3px solid var(--color-error, #b42318);
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    border-radius: 0 4px 4px 0;
}

.studio-run-table-wrap[b-xw4psezbjr] {
    overflow-x: auto;
    border: 1px solid var(--color-border, #d8dde4);
    border-radius: 4px;
    background: var(--color-surface, #fff);
}

.studio-run-table-grid[b-xw4psezbjr] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}

.studio-run-table-grid th[b-xw4psezbjr],
.studio-run-table-grid td[b-xw4psezbjr] {
    padding: 0.35rem 0.6rem;
    text-align: left;
    border-bottom: 1px solid var(--color-border, #d8dde4);
    vertical-align: top;
    white-space: nowrap;
}

.studio-run-table-grid thead th[b-xw4psezbjr] {
    background: var(--color-surface-2, #f7f9fc);
    font-weight: 600;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--text-muted, #6c757d);
}

.studio-run-table-grid tbody tr:last-child td[b-xw4psezbjr] { border-bottom: none; }

.studio-run-table-more[b-xw4psezbjr] {
    margin: 0.4rem 0 0;
    font-size: 0.72rem;
}

/* ── Pin run results as expected example data ──────────────────────────── */

/* Toolbar above the Extracted values table holding the "Pin all" action. */
.studio-run-pin-bar[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.studio-run-pin-note[b-xw4psezbjr] {
    font-size: 0.72rem;
}

/* Compact pin button used per field-row and per-table. Calm by default;
   amber once the value/rows are pinned so the operator can scan what's seeded. */
.studio-run-pin-cell-btn[b-xw4psezbjr] {
    margin-left: 0.5rem;
    padding: 0.05rem 0.4rem;
    font-size: 0.68rem;
    line-height: 1.5;
    border: 1px solid var(--color-border, #d8dde4);
    border-radius: 4px;
    background: var(--color-surface, #fff);
    color: var(--text-muted, #6c757d);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.studio-run-pin-cell-btn:hover:not(:disabled)[b-xw4psezbjr] {
    border-color: var(--color-accent, #b7791f);
    color: var(--color-accent, #b7791f);
}

.studio-run-pin-cell-btn:disabled[b-xw4psezbjr] {
    opacity: 0.5;
    cursor: not-allowed;
}

.studio-run-pin-cell-btn.is-pinned[b-xw4psezbjr] {
    background: rgba(183, 121, 31, 0.10);
    border-color: rgba(183, 121, 31, 0.45);
    color: #8a5a13;
    font-weight: 600;
}

/* Editable grid of pinned expected rows under a table result. */
.studio-run-pinned[b-xw4psezbjr] {
    margin-top: 0.6rem;
    padding: 0.55rem 0.6rem;
    border: 1px dashed rgba(183, 121, 31, 0.45);
    border-radius: 6px;
    background: rgba(183, 121, 31, 0.045);
}

.studio-run-pinned-head[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    margin-bottom: 0.45rem;
}

.studio-run-pinned-title[b-xw4psezbjr] {
    font-size: 0.76rem;
    font-weight: 600;
    color: #8a5a13;
}

.studio-run-pinned-title .muted[b-xw4psezbjr] {
    font-weight: 400;
}

.studio-run-pinned-grid td[b-xw4psezbjr] {
    white-space: normal;
}

.studio-run-pinned-input[b-xw4psezbjr] {
    width: 100%;
    min-width: 6rem;
    padding: 0.2rem 0.35rem;
    font-size: 0.76rem;
    border: 1px solid var(--color-border, #d8dde4);
    border-radius: 3px;
    background: var(--color-surface, #fff);
}

.studio-run-pinned-input:focus[b-xw4psezbjr] {
    outline: none;
    border-color: var(--color-accent, #b7791f);
    box-shadow: 0 0 0 2px rgba(183, 121, 31, 0.15);
}

.studio-run-pinned-rowactions[b-xw4psezbjr] {
    width: 1.8rem;
    text-align: center !important;
}

.studio-run-pinned-rowbtn[b-xw4psezbjr] {
    border: none;
    background: transparent;
    color: var(--text-muted, #6c757d);
    cursor: pointer;
    font-size: 0.85rem;
    line-height: 1;
    padding: 0.1rem 0.25rem;
    border-radius: 3px;
}

.studio-run-pinned-rowbtn:hover[b-xw4psezbjr] {
    color: var(--color-error, #b42318);
    background: rgba(180, 35, 24, 0.08);
}

.studio-run-pinned-addrow[b-xw4psezbjr] {
    margin-top: 0.45rem;
}

/* ── Extraction filter (#68) ─────────────────────────────────────────── */
.studio-filter-condition[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
    flex-wrap: wrap;
}

.studio-filter-condition .studio-filter-col[b-xw4psezbjr] {
    flex: 0 0 12rem;
}

.studio-filter-condition .studio-filter-op[b-xw4psezbjr] {
    flex: 0 0 10rem;
}

.studio-filter-condition .studio-filter-val[b-xw4psezbjr] {
    flex: 1 1 8rem;
    min-width: 6rem;
}

.studio-filter-pill[b-xw4psezbjr] {
    display: inline-block;
    font-size: 0.8em;
    line-height: 1.2;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    white-space: nowrap;
}

.studio-filter-pill-out[b-xw4psezbjr] {
    background: var(--studio-warn-bg, #fef3c7);
    color: var(--studio-warn-text, #854d0e);
}

.studio-filter-pill-keep[b-xw4psezbjr] {
    background: var(--studio-ok-bg, #dcfce7);
    color: var(--studio-ok-text, #166534);
}

/* #931 save-time regression check dialog: broken samples x fields. */
.studio-regression-table-wrap[b-xw4psezbjr] {
    max-height: 18rem;
    overflow: auto;
    margin: 0.75rem 0 1rem;
    border: 1px solid var(--border-subtle, #e2e8f0);
    border-radius: 6px;
}

.studio-regression-table[b-xw4psezbjr] {
    width: 100%;
    font-size: 0.85rem;
    margin: 0;
}

.studio-regression-table td[b-xw4psezbjr] {
    vertical-align: top;
    overflow-wrap: anywhere;
}

.studio-regression-reason[b-xw4psezbjr] {
    margin-top: 0.2rem;
    font-size: 0.78rem;
    color: var(--text-muted, #64748b);
}

/* ── Start tab: guided setup (#979) ─────────────────────────────────────── */

.guide[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    max-width: 920px;
}

.guide-intro[b-xw4psezbjr] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--color-text-muted, #64748b);
}

.guide-busy[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    background: rgba(7, 70, 132, 0.06);
    color: var(--color-brand, #074684);
    font-size: 0.82rem;
}

.guide-spinner[b-xw4psezbjr] {
    width: 14px;
    height: 14px;
}

.guide-step[b-xw4psezbjr] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface, #fff);
}

.guide-step-current[b-xw4psezbjr] {
    border-color: var(--color-brand, #074684);
    box-shadow: 0 0 0 1px rgba(7, 70, 132, 0.12);
}

.guide-step-locked[b-xw4psezbjr] {
    opacity: 0.55;
}

.guide-step-head[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.7rem 1rem;
}

.guide-step-head h3[b-xw4psezbjr] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    flex: 1;
}

.guide-step-num[b-xw4psezbjr] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 700;
    background: #f1f5f9;
    color: #475569;
    flex: none;
}

.guide-step-current .guide-step-num[b-xw4psezbjr] {
    background: var(--color-brand, #074684);
    color: #fff;
}

.guide-step-done .guide-step-num[b-xw4psezbjr] {
    background: #dcfce7;
    color: #166534;
}

.guide-step-body[b-xw4psezbjr] {
    padding: 0 1rem 1rem 3.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}

.guide-hint[b-xw4psezbjr] {
    margin: 0;
    font-size: 0.8rem;
    color: var(--color-text-muted, #64748b);
}

.guide-warn[b-xw4psezbjr] {
    font-size: 0.78rem;
    color: #92400e;
}

.guide-actions[b-xw4psezbjr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.guide-doc[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.guide-doc-name[b-xw4psezbjr] {
    font-weight: 600;
    font-size: 0.88rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 28rem;
}

.guide-doc-actions[b-xw4psezbjr] {
    display: flex;
    gap: 1rem;
    align-items: stretch;
    flex-wrap: wrap;
}

.guide-drop[b-xw4psezbjr] {
    position: relative;
    flex: 1 1 18rem;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 4.2rem;
    padding: 0.75rem 1rem;
    border: 1.5px dashed var(--color-border, #cbd5e1);
    border-radius: 8px;
    background: var(--color-bg-soft, #f8fafc);
    font-size: 0.84rem;
    text-align: center;
    cursor: pointer;
}

.guide-drop:hover[b-xw4psezbjr] {
    border-color: var(--color-brand, #074684);
}

.guide-drop-disabled[b-xw4psezbjr] {
    cursor: progress;
    opacity: 0.6;
}

/* The file input covers the whole drop area so a drag or a click lands on it. */
.guide-drop[b-xw4psezbjr]  input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.guide-pick[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.8rem;
    flex: 0 1 16rem;
}

.guide-chips[b-xw4psezbjr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.guide-picks[b-xw4psezbjr] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 6px;
    padding: 0.6rem 0.8rem;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.guide-picks legend[b-xw4psezbjr] {
    font-size: 0.8rem;
    padding: 0 0.3rem;
    color: var(--color-text-muted, #64748b);
}

.guide-pick-item[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.84rem;
}

.guide-pick-item-dim[b-xw4psezbjr] {
    opacity: 0.6;
}

.guide-pick-name[b-xw4psezbjr] {
    font-weight: 600;
}

.guide-pick-example[b-xw4psezbjr] {
    font-family: ui-monospace, monospace;
    font-size: 0.76rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 18rem;
}

.guide-add-field[b-xw4psezbjr] {
    display: flex;
    gap: 0.4rem;
    max-width: 24rem;
}

.guide-add-field input[b-xw4psezbjr] {
    flex: 1;
}

.guide-values[b-xw4psezbjr] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.guide-values th[b-xw4psezbjr],
.guide-values td[b-xw4psezbjr] {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid #f1f5f9;
    text-align: left;
    vertical-align: middle;
}

.guide-values thead th[b-xw4psezbjr] {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--color-text-muted, #64748b);
}

.guide-values tbody th[b-xw4psezbjr] {
    font-weight: 600;
    width: 30%;
}

.guide-value-armed[b-xw4psezbjr] {
    background: #eff6ff;
}

.guide-value-confirmed[b-xw4psezbjr] {
    border-color: #86efac;
    background: #f0fdf4;
}

.guide-choices[b-xw4psezbjr] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 0.75rem;
}

.guide-choice[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    font-size: 0.82rem;
}

.guide-choice-main[b-xw4psezbjr] {
    border-color: var(--color-brand, #074684);
    background: rgba(7, 70, 132, 0.03);
}

.guide-choice .btn[b-xw4psezbjr] {
    margin-top: auto;
}

.guide-save[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.8rem;
}

.studio-ai-build-blocked[b-xw4psezbjr] {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    color: #92400e;
}

/* Screen-reader-only text for the Start tab's table headers. */
.guide-sr[b-xw4psezbjr] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.guide-outcome-note[b-xw4psezbjr] {
    margin-top: 0.2rem;
    font-size: 0.76rem;
    color: var(--color-text-muted, #64748b);
}

/* ── Anchor capture area (#980) ─────────────────────────────────────────── */

.studio-anchor-area .studio-node-picker-row[b-xw4psezbjr] {
    gap: 0.4rem;
}

.studio-anchor-reads[b-xw4psezbjr] {
    margin-top: 0.35rem;
    font-size: 0.8rem;
}

.studio-anchor-reads code[b-xw4psezbjr] {
    font-size: 0.8rem;
    background: #f0fdf4;
    color: #166534;
    padding: 0.05rem 0.35rem;
    border-radius: 4px;
}

.studio-anchor-reads-empty[b-xw4psezbjr] {
    color: #92400e;
}

.studio-anchor-sameline[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    margin: 0.2rem 0 0.5rem;
}

/* ── Start tab: many documents (#982) ───────────────────────────────────── */

.guide-engine[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    font-size: 0.82rem;
}

.guide-engine select[b-xw4psezbjr] {
    min-width: 12rem;
}

.guide-docs select[b-xw4psezbjr] {
    font-size: 0.8rem;
    padding: 0.15rem 0.4rem;
}

.guide-doc-link[b-xw4psezbjr] {
    font-weight: 600;
    text-align: left;
    padding: 0;
    max-width: 22rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.guide-doc-open[b-xw4psezbjr] {
    background: #eff6ff;
}

.guide-grid-wrap[b-xw4psezbjr] {
    overflow-x: auto;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 6px;
    max-height: 22rem;
    overflow-y: auto;
}

.guide-grid[b-xw4psezbjr] {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.78rem;
    min-width: 100%;
}

.guide-grid th[b-xw4psezbjr],
.guide-grid td[b-xw4psezbjr] {
    padding: 0.25rem 0.35rem;
    border-bottom: 1px solid #f1f5f9;
    text-align: left;
    white-space: nowrap;
}

.guide-grid thead th[b-xw4psezbjr] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--color-surface, #fff);
    font-weight: 600;
    color: var(--color-text-muted, #64748b);
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.guide-grid tbody th[b-xw4psezbjr] {
    position: sticky;
    left: 0;
    background: var(--color-surface, #fff);
    font-weight: 600;
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.guide-grid thead th:first-child[b-xw4psezbjr] {
    left: 0;
    z-index: 2;
}

.guide-grid tbody tr.guide-doc-open th[b-xw4psezbjr] {
    background: #eff6ff;
}

.guide-test-tag[b-xw4psezbjr] {
    margin-left: 0.3rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #7c3aed;
    text-transform: uppercase;
}

.guide-cell[b-xw4psezbjr] {
    display: inline-block;
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    border: 1px solid transparent;
    font-size: 0.76rem;
    text-align: left;
    cursor: pointer;
    background: none;
}

button.guide-cell:hover[b-xw4psezbjr] {
    border-color: var(--color-brand, #074684);
}

.guide-cell-confirmed[b-xw4psezbjr] {
    background: #f0fdf4;
    color: #166534;
}

.guide-cell-proposed[b-xw4psezbjr] {
    background: #fffbeb;
    color: #92400e;
}

.guide-cell-empty[b-xw4psezbjr] {
    color: #94a3b8;
}

.guide-legend[b-xw4psezbjr] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin: 0;
}

.guide-legend .guide-cell[b-xw4psezbjr] {
    cursor: default;
    max-width: none;
}

/* In the Start tab's single-column step the drop area sizes to its text. */
.guide-step-body > .guide-drop[b-xw4psezbjr] {
    flex: none;
}

.guide-doc-values-head[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.4rem;
}

.guide-doc-values-head h4[b-xw4psezbjr] {
    margin: 0;
    font-size: 0.86rem;
    font-weight: 600;
}

/* ── Start tab: test step (#982 S3) ─────────────────────────────────────── */

.guide-miss[b-xw4psezbjr] {
    display: block;
    margin-top: 0.3rem;
    padding: 0.2rem 0.45rem;
    border: 1px solid #fde68a;
    border-radius: 4px;
    background: #fffbeb;
    font-size: 0.76rem;
    text-align: left;
    cursor: pointer;
    color: inherit;
}

.guide-miss:hover[b-xw4psezbjr] {
    border-color: var(--color-brand, #074684);
}

.guide-miss code[b-xw4psezbjr] {
    font-size: 0.74rem;
}

/* ── Start tab: check documents (#984) ──────────────────────────────────── */

.guide-cell-miss[b-xw4psezbjr] {
    background: #fef2f2;
    color: #b91c1c;
}

.guide-value-miss[b-xw4psezbjr] {
    border-color: #fca5a5;
    background: #fef2f2;
}

.guide-read[b-xw4psezbjr] {
    font-family: ui-monospace, monospace;
    font-size: 0.78rem;
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Properties: identify the sender (#986) ─────────────────────────────── */

.ident[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.ident-toggle[b-xw4psezbjr],
.ident-check[b-xw4psezbjr] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.84rem;
}

.ident-check[b-xw4psezbjr] {
    margin-top: 0.25rem;
    font-size: 0.76rem;
}

.ident-grid[b-xw4psezbjr] {
    display: grid;
    grid-template-columns: 11rem minmax(0, 18rem);
    gap: 0.4rem 0.75rem;
    align-items: center;
    font-size: 0.82rem;
}

.ident-h[b-xw4psezbjr] {
    margin: 0.4rem 0 0;
    font-size: 0.86rem;
    font-weight: 600;
}

.ident-keys select[b-xw4psezbjr],
.ident-keys input[type="text"][b-xw4psezbjr],
.ident-keys input[type="number"][b-xw4psezbjr] {
    font-size: 0.78rem;
    max-width: 12rem;
}

.ident-summary[b-xw4psezbjr] {
    display: flex;
    gap: 0.4rem;
    margin: 0;
}

.ident-match[b-xw4psezbjr] {
    margin-top: 0.2rem;
    font-size: 0.78rem;
}

.ident-why[b-xw4psezbjr] {
    font-size: 0.76rem;
}

.ident-why code[b-xw4psezbjr] {
    font-size: 0.74rem;
}

.ident-key-list[b-xw4psezbjr] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ident-key[b-xw4psezbjr] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.4rem 0.75rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 6px;
}

.ident-key > label:not(.ident-check)[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.72rem;
    color: var(--color-text-muted, #64748b);
}

.ident-key select[b-xw4psezbjr],
.ident-key input[type="text"][b-xw4psezbjr] {
    font-size: 0.8rem;
    max-width: 12rem;
}

.ident-remove[b-xw4psezbjr] {
    margin-left: auto;
}

.ident-results th[scope="row"][b-xw4psezbjr] {
    width: 35%;
}

.ident-results .ident-why[b-xw4psezbjr] {
    margin-top: 0.3rem;
    overflow-wrap: anywhere;
}

/* ── Field editor: Rules for (#986) ─────────────────────────────────────── */

.rule-scope .card-body[b-xw4psezbjr] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rule-scope-active[b-xw4psezbjr] {
    border-color: var(--color-primary, #2563eb);
    box-shadow: inset 3px 0 0 var(--color-primary, #2563eb);
}

.rule-scope-row[b-xw4psezbjr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
}

.rule-scope-row label[b-xw4psezbjr] {
    font-weight: 600;
}

.rule-scope-row input[type="text"][b-xw4psezbjr] {
    flex: 1 1 18rem;
    min-width: 12rem;
}

.rule-scope-banner[b-xw4psezbjr] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4rem 0.6rem;
    padding: 0.5rem 0.7rem;
    border-radius: 6px;
    background: var(--color-primary-soft, #eff6ff);
    font-size: 0.85rem;
}

.rule-scope-actions[b-xw4psezbjr] {
    display: flex;
    gap: 0.3rem;
    margin-left: auto;
}

.rule-scope-adds summary[b-xw4psezbjr] {
    cursor: pointer;
    font-size: 0.82rem;
    color: var(--color-text-muted, #64748b);
}

.rule-scope-adds-grid[b-xw4psezbjr] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.4rem 0.6rem;
    align-items: start;
    margin-top: 0.5rem;
    font-size: 0.82rem;
}

.rule-scope-pill[b-xw4psezbjr] {
    margin-left: 0.35rem;
    background: var(--color-primary-soft, #eff6ff);
    color: var(--color-primary, #1d4ed8);
}

/* ── Check documents: suggest a fix (#986) ──────────────────────────────── */

.fix-card[b-xw4psezbjr] {
    border-color: #a7f3d0;
    background: #f0fdf4;
}

.fix-list[b-xw4psezbjr] {
    margin: 0.2rem 0;
    padding-left: 1.1rem;
    font-size: 0.82rem;
}

.fix-outcome[b-xw4psezbjr] {
    font-size: 0.84rem;
    font-weight: 600;
}

.ident-page-head[b-xw4psezbjr] {
    padding: 0.75rem 0 0.25rem;
}

.ident-page-head h3[b-xw4psezbjr] {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-weight: 600;
}

.ident-page-head p[b-xw4psezbjr] {
    margin: 0;
    font-size: 0.85rem;
}
/* /Components/Pages/SettingsPages/AwsSettings.razor.rz.scp.css */
/* Why the connection test failed. Selectable and wrapped rather than truncated — operators paste the
   provider's exact wording into support tickets, and the actionable sentence is usually at the end. */
.settings-connection-error[b-rptttemdbf] {
    margin-top: 0.5rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--danger-text, #991b1b);
    background: var(--danger-surface, #fef2f2);
    border: 1px solid var(--danger-border, #fecaca);
    border-left-width: 3px;
    border-radius: 4px;
    padding: 0.5rem 0.65rem;
    max-width: 60rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    user-select: text;
}
/* /Components/Pages/Setup.razor.rz.scp.css */
.setup-shell[b-f1lsxonn8k] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: #f6f8fb;
}

.setup-card[b-f1lsxonn8k] {
    width: 100%;
    max-width: 32rem;
    background: #ffffff;
    border: 1px solid #e3e8ef;
    border-radius: 14px;
    box-shadow: 0 8px 30px rgba(16, 24, 40, 0.06);
    padding: 2.5rem 2.5rem 2.25rem;
}

.setup-brand[b-f1lsxonn8k] {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6b7585;
    margin-bottom: 1.25rem;
}

.setup-title[b-f1lsxonn8k] {
    font-size: 1.5rem;
    font-weight: 600;
    color: #101828;
    margin: 0 0 0.5rem;
}

.setup-lead[b-f1lsxonn8k] {
    color: #475467;
    line-height: 1.55;
    margin: 0 0 1.75rem;
}

.setup-progress[b-f1lsxonn8k] {
    height: 10px;
    background: #eef1f6;
    border-radius: 999px;
    overflow: hidden;
}

.setup-progress-fill[b-f1lsxonn8k] {
    height: 100%;
    background: linear-gradient(90deg, #3b82f6, #2563eb);
    border-radius: 999px;
    transition: width 0.4s ease;
}

.setup-stats[b-f1lsxonn8k] {
    display: flex;
    justify-content: space-between;
    margin-top: 0.75rem;
    font-size: 0.875rem;
    color: #475467;
    font-variant-numeric: tabular-nums;
}

.setup-current[b-f1lsxonn8k] {
    margin-top: 0.5rem;
    font-size: 0.8rem;
    color: #8a94a6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.setup-error[b-f1lsxonn8k] {
    color: #b42318;
    background: #fef3f2;
    border: 1px solid #fecdca;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    margin: 0 0 1.5rem;
}

.setup-retry[b-f1lsxonn8k] {
    appearance: none;
    border: 0;
    border-radius: 8px;
    background: #2563eb;
    color: #ffffff;
    font-weight: 600;
    padding: 0.6rem 1.25rem;
    cursor: pointer;
}

.setup-retry:hover[b-f1lsxonn8k] {
    background: #1d4ed8;
}
/* /Components/Pages/SolutionDesignCapabilities.razor.rz.scp.css */
.sd-caps__block[b-zd9go10axs] {
    margin-bottom: 1.5rem;
}

.sd-caps__block > h2[b-zd9go10axs] {
    margin: 0 0 0.25rem;
}

.sd-caps__caption[b-zd9go10axs] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.sd-caps__details > summary[b-zd9go10axs] {
    cursor: pointer;
    padding: 1rem 1.25rem;
    list-style-position: inside;
}

.sd-caps__summary-title[b-zd9go10axs] {
    display: inline;
    font-size: 1.0625rem;
    margin: 0;
}

.sd-caps__summary[b-zd9go10axs] {
    margin: 0 1.25rem 0.75rem;
}

.sd-caps__id code[b-zd9go10axs] {
    font-size: 0.8125rem;
}

.sd-caps__attrs[b-zd9go10axs] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sd-caps__key[b-zd9go10axs] {
    color: var(--color-text-secondary);
}

.sd-caps__version[b-zd9go10axs] {
    font-size: 0.8125rem;
}

.sd-caps__skills[b-zd9go10axs] {
    margin: 0;
    padding: 0;
    list-style: none;
}
/* /Components/Pages/SolutionDesignEngagement.razor.rz.scp.css */
.sd-back[b-32o2q3bq8r] {
    display: inline-block;
    margin-bottom: 0.5rem;
}

.sd-title-line[b-32o2q3bq8r] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.sd-actions[b-32o2q3bq8r] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sd-run[b-32o2q3bq8r] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.sd-run__reason[b-32o2q3bq8r] {
    font-size: 0.8125rem;
}

/* ── the check's progress ── */

.sd-progress[b-32o2q3bq8r] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.sd-progress__bar[b-32o2q3bq8r] {
    width: 10rem;
    height: 0.5rem;
    accent-color: var(--color-brand);
}

.sd-progress__elapsed[b-32o2q3bq8r] {
    font-variant-numeric: tabular-nums;
    color: var(--color-text-muted, inherit);
}

.sd-progress__cancel[b-32o2q3bq8r] {
    margin-left: auto;
}

/* ── the extraction result ── */

.sd-extraction[b-32o2q3bq8r] {
    display: block;
}

.sd-extraction__line[b-32o2q3bq8r] {
    margin: 0 0 0.5rem;
}

.sd-extraction__sub[b-32o2q3bq8r] {
    margin: 0.5rem 0 0.25rem;
    font-weight: 600;
}

.sd-extraction__list[b-32o2q3bq8r] {
    margin: 0 0 0.5rem 1.25rem;
    padding: 0;
}

/* ── layout: the main column and the pane ── */

.sd-layout[b-32o2q3bq8r] {
    display: grid;
    /* The pane's width is the splitter's (#1044): --sd-pane-width, kept per browser. */
    grid-template-columns: minmax(0, 1fr) 0.75rem var(--sd-pane-width, 26rem);
    column-gap: 0.75rem;
    align-items: start;
}

.sd-splitter[b-32o2q3bq8r] {
    align-self: stretch;
    min-height: 4rem;
    cursor: col-resize;
    border-radius: 0.375rem;
    background: linear-gradient(var(--color-border), var(--color-border)) center / 2px 3rem no-repeat;
    touch-action: none;
}

.sd-splitter:hover[b-32o2q3bq8r],
.sd-splitter:focus-visible[b-32o2q3bq8r],
.sd-splitter.dragging[b-32o2q3bq8r] {
    background-color: var(--color-surface-muted, rgba(0, 0, 0, 0.04));
    outline: none;
}

.sd-splitter:focus-visible[b-32o2q3bq8r] {
    box-shadow: 0 0 0 2px var(--color-focus, #3b82f6);
}

.sd-main[b-32o2q3bq8r] {
    min-width: 0;
}

/* The pane stays in view while the main column scrolls (#1125). The page scrolls the document, and the app's top bar
   is sticky over it (z-index 100), so the pane sticks below the bar, not at the top of the window: with top: 1rem the
   bar covered the pane's tabs whenever the page was scrolled. Its height is the visible area under the bar, so its
   bottom (the message box) is always on screen; its own content scrolls inside it. No ancestor up to the document may
   set overflow, transform or contain, or sticky stops working (pinned by SolutionDesignPaneLayoutTests). */
.sd-pane[b-32o2q3bq8r] {
    --sd-pane-gap: 1rem;
    --sd-pane-fit: calc(100vh - var(--app-header-height, 56px) - 2 * var(--sd-pane-gap));
    position: sticky;
    top: calc(var(--app-header-height, 56px) + var(--sd-pane-gap));
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    max-height: var(--sd-pane-fit);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Dynamic viewport units: a mobile or tablet browser bar no longer hides the bottom of the pane. */
@supports (height: 100dvh) {
    .sd-pane[b-32o2q3bq8r] {
        --sd-pane-fit: calc(100dvh - var(--app-header-height, 56px) - 2 * var(--sd-pane-gap));
    }
}

/* The assistant fills the pane, so the message box sits at its bottom edge. The Inspector shrinks to its content. */
.sd-pane--assistant[b-32o2q3bq8r] {
    height: var(--sd-pane-fit);
}

.sd-tabs--pane[b-32o2q3bq8r] {
    flex: none;
}

.sd-pane__panel[b-32o2q3bq8r] {
    flex: 1 1 auto;
    min-height: 0;
    padding: 1rem 1.25rem;
    overflow-y: auto;
    min-width: 0;
}

/* The assistant scrolls its conversation itself, so its panel does not: the message box never scrolls away. */
.sd-pane__panel--assistant[b-32o2q3bq8r] {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.sd-pane__panel[hidden][b-32o2q3bq8r] {
    display: none;
}

@media (max-width: 1100px) {
    .sd-layout[b-32o2q3bq8r] {
        grid-template-columns: minmax(0, 1fr);
    }

    .sd-splitter[b-32o2q3bq8r] {
        display: none;
    }

    /* One column: the pane sits under the main column and scrolls with the page. */
    .sd-pane[b-32o2q3bq8r] {
        position: static;
    }
}

/* ── tabs ── */

.sd-tabs[b-32o2q3bq8r] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 1rem;
}

/* "Guide me" (#1178): at the far end of the area bar, back to one step at a time. */
.sd-tab--guide[b-32o2q3bq8r] {
    margin-left: auto;
    color: var(--color-brand);
}

.sd-tabs--pane[b-32o2q3bq8r] {
    margin: 0;
    padding: 0 0.75rem;
    background: var(--color-surface-raised);
}

.sd-tab[b-32o2q3bq8r] {
    border: none;
    border-bottom: 2px solid transparent;
    background: transparent;
    padding: 0.6rem 0.9rem;
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.sd-tab:hover[b-32o2q3bq8r] {
    color: var(--color-text-primary);
}

.sd-tab.is-active[b-32o2q3bq8r] {
    color: var(--color-brand);
    border-bottom-color: var(--color-brand);
}

.sd-unread-dot[b-32o2q3bq8r] {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    margin-left: 0.35rem;
    border-radius: 50%;
    background: var(--color-brand);
    vertical-align: middle;
}

.sd-tab__count[b-32o2q3bq8r] {
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--color-surface-raised);
    border: 1px solid var(--color-border);
    border-radius: 100px;
    padding: 0 0.45rem;
    color: var(--color-text-secondary);
}

.sd-panel[b-32o2q3bq8r] {
    min-width: 0;
}

.sd-section-title[b-32o2q3bq8r] {
    font-size: 1rem;
    margin: 1.5rem 0 0.5rem;
}

.sd-report-line[b-32o2q3bq8r] {
    margin: 0 0 1rem;
}

/* ── findings ── */

.sd-findings[b-32o2q3bq8r] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sd-quote[b-32o2q3bq8r] {
    font-style: italic;
    color: var(--color-text-secondary);
}

/* ── severity, verdict and status chips: restrained, words not codes ── */

.sd-sev--fatal[b-32o2q3bq8r] { background: #fee2e2; color: #991b1b; }
.sd-sev--major[b-32o2q3bq8r] { background: #ffedd5; color: #9a3412; }
.sd-sev--minor[b-32o2q3bq8r] { background: #fef3c7; color: #92400e; }
.sd-sev--info[b-32o2q3bq8r]  { background: #f1f5f9; color: #475569; }

.sd-verdict--holds[b-32o2q3bq8r]   { background: #dcfce7; color: #166534; }
.sd-verdict--fails[b-32o2q3bq8r]   { background: #fee2e2; color: #991b1b; }
.sd-verdict--unknown[b-32o2q3bq8r] { background: #f1f5f9; color: #475569; }
.sd-verdict--disputed[b-32o2q3bq8r] { background: #fef3c7; color: #92400e; }

.sd-status--contradicted[b-32o2q3bq8r] { background: #fee2e2; color: #991b1b; }
.sd-status--blocked[b-32o2q3bq8r]      { background: #ffedd5; color: #9a3412; }
.sd-status--assumed[b-32o2q3bq8r]      { background: #fef3c7; color: #92400e; }
.sd-status--stated[b-32o2q3bq8r]       { background: #e0f2fe; color: #075985; }
.sd-status--answered[b-32o2q3bq8r]     { background: #ede9fe; color: #5b21b6; }
.sd-status--grounded[b-32o2q3bq8r]     { background: #dcfce7; color: #166534; }

.sd-kind[b-32o2q3bq8r] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

/* ── claims grid ── */

.sd-claims[b-32o2q3bq8r] {
    width: 100%;
}

.sd-claims tr.is-selected td[b-32o2q3bq8r] {
    background: var(--color-surface-raised);
}

.sd-claims__statement[b-32o2q3bq8r] {
    min-width: 18rem;
}

.sd-open[b-32o2q3bq8r] {
    border: none;
    background: transparent;
    padding: 0;
    font: inherit;
    font-weight: 600;
    color: var(--color-text-primary);
    text-align: left;
    cursor: pointer;
}

.sd-open:hover[b-32o2q3bq8r] {
    color: var(--color-brand);
}

.sd-claims__id[b-32o2q3bq8r] {
    font-size: 0.75rem;
    margin-top: 0.15rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sd-claims__verdicts[b-32o2q3bq8r] {
    white-space: nowrap;
}

.sd-claims__verdicts .badge + .badge[b-32o2q3bq8r] {
    margin-left: 0.3rem;
}

/* ── inspector ── */

.sd-inspector__head[b-32o2q3bq8r] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.sd-inspector__title[b-32o2q3bq8r] {
    font-size: 1rem;
    margin: 0 0 0.75rem;
}

.sd-inspector__sub[b-32o2q3bq8r] {
    font-size: 0.875rem;
    margin: 1rem 0 0.5rem;
}

.sd-facts[b-32o2q3bq8r] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.35rem 0.75rem;
    margin: 0;
    font-size: 0.875rem;
}

.sd-facts dt[b-32o2q3bq8r] {
    color: var(--color-text-secondary);
    font-weight: 600;
}

.sd-facts dd[b-32o2q3bq8r] {
    margin: 0;
}

.sd-verdicts[b-32o2q3bq8r] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sd-verdict-item[b-32o2q3bq8r] {
    border-top: 1px solid var(--color-border);
    padding-top: 0.75rem;
}

.sd-verdict-item__head[b-32o2q3bq8r] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sd-verdict-item__detail[b-32o2q3bq8r] {
    margin: 0.4rem 0 0.5rem;
    font-size: 0.875rem;
}

/* ── empty states ── */

.sd-empty__title[b-32o2q3bq8r] {
    font-size: 1.0625rem;
    margin: 0 0 0.5rem;
}

/* ── the design (#1015): the status strip, its legend popover, the gaps and the element cards ── */

.sd-design-strip[b-32o2q3bq8r] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1rem;
}

.sd-design-strip .badge[b-32o2q3bq8r] {
    font-size: 0.8125rem;
}

.sd-legend-pop[b-32o2q3bq8r] {
    position: relative;
    margin-left: auto;
    font-size: 0.8125rem;
}

.sd-legend-pop summary[b-32o2q3bq8r] {
    cursor: pointer;
    color: var(--color-text-secondary);
    font-weight: 600;
}

.sd-legend-pop[open] summary[b-32o2q3bq8r] {
    color: var(--color-brand);
}

.sd-legend-pop__list[b-32o2q3bq8r] {
    position: absolute;
    right: 0;
    z-index: 5;
    width: 28rem;
    max-width: 90vw;
    margin: 0.4rem 0 0;
    padding: 0.75rem 1rem;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.4rem 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
}

.sd-legend-pop__list dd[b-32o2q3bq8r] {
    margin: 0;
}

.sd-gaps[b-32o2q3bq8r] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sd-gap[b-32o2q3bq8r] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.75rem 1.125rem;
}

.sd-gap__head[b-32o2q3bq8r] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.sd-gap__element[b-32o2q3bq8r] {
    font-size: 0.875rem;
}

.sd-gap__detail[b-32o2q3bq8r] {
    margin: 0.4rem 0 0.5rem;
    color: var(--color-text-secondary);
}

.sd-elements[b-32o2q3bq8r] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sd-inspector__gaps[b-32o2q3bq8r] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.875rem;
}

/* ── samples ── */

.sd-scope-file[b-32o2q3bq8r] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1rem;
}

.sd-scope-actions[b-32o2q3bq8r] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.75rem;
}

.sd-samples[b-32o2q3bq8r] {
    width: 100%;
}

/* The samples the selected element reads (#1065): a tinted line and a badge, so the mark is not colour alone. */
.sd-samples__marked[b-32o2q3bq8r] {
    margin: 0;
    padding: 0.6rem 1rem;
    font-size: 0.875rem;
    background: #eef2ff;
    border-bottom: 1px solid var(--color-border);
}

.sd-sample--used td[b-32o2q3bq8r] {
    background: #f5f7ff;
}

.sd-sample__used[b-32o2q3bq8r] {
    margin-left: 0.4rem;
    background: #eef2ff;
    color: #3730a3;
}

.sd-add[b-32o2q3bq8r] {
    border-top: 1px solid var(--color-border);
}

.sd-add__title[b-32o2q3bq8r] {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
}

/* ── history ── */

.sd-log[b-32o2q3bq8r] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sd-log__revision[b-32o2q3bq8r] {
    font-weight: 600;
    margin-right: 0.5rem;
}

.sd-log__kind[b-32o2q3bq8r] {
    margin-right: 0.5rem;
}

/* ── import dialog ── */

.sd-import[b-32o2q3bq8r] {
    width: min(48rem, 100%);
}

.sd-copy[b-32o2q3bq8r] {
    margin: 0 0 0.75rem;
}

.sd-field[b-32o2q3bq8r] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.sd-field__label[b-32o2q3bq8r] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-import__json[b-32o2q3bq8r] {
    min-height: 16rem;
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.8125rem;
    resize: vertical;
}

.sd-import__file[b-32o2q3bq8r] {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.sd-import__input[b-32o2q3bq8r] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.sd-import__problems[b-32o2q3bq8r] {
    margin-top: 0.75rem;
}

.sd-import__problems ul[b-32o2q3bq8r] {
    margin: 0.25rem 0 0;
    padding-left: 1.25rem;
}

.sd-import__refused[b-32o2q3bq8r] {
    margin: 0;
    font-weight: 600;
}

.sd-import__code[b-32o2q3bq8r] {
    font-size: 0.75rem;
    margin-left: 0.4rem;
}

.sd-sr-only[b-32o2q3bq8r] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Open questions (#1013): the Claims tab's actions and the chip on a claim that needs an answer. */
.sd-panel-actions[b-32o2q3bq8r] { display: flex; align-items: center; flex-wrap: wrap; gap: 0.75rem; margin: 0 0 0.75rem; font-size: 0.8rem; }
.sd-chip[b-32o2q3bq8r] { display: inline-block; padding: 0.1rem 0.5rem; border-radius: 999px; font-size: 0.72rem; font-weight: 600; line-height: 1.4; white-space: nowrap; }
.sd-chip--question[b-32o2q3bq8r] { margin-left: 0.4rem; border: 1px solid #f59e0b; background: #fffbeb; color: #92400e; cursor: pointer; font-family: inherit; }
.sd-chip--question:hover[b-32o2q3bq8r] { background: #fef3c7; }
.sd-chip--question:focus-visible[b-32o2q3bq8r] { outline: 2px solid var(--color-brand); outline-offset: 1px; }
.sd-chip--readings[b-32o2q3bq8r] { margin-left: 0.4rem; border: 1px solid #94a3b8; background: #f1f5f9; color: #334155; }

.sd-run--draft[b-32o2q3bq8r] {
    margin: 0.75rem 0;
}

/* ── how the design works (#1046) ── */

.sd-explain[b-32o2q3bq8r] {
    margin: 0 0 1.25rem;
}


.sd-explain__subtitle[b-32o2q3bq8r] {
    font-size: 0.9375rem;
    margin: 1rem 0 0.5rem;
}

/* The process: a wrapping strip of step cards joined by arrows drawn in CSS. */
.sd-process[b-32o2q3bq8r] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.75rem 2rem;
}

.sd-process__step[b-32o2q3bq8r] {
    position: relative;
    flex: 0 1 15rem;
    min-width: 12rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.75rem 0.9rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    font-size: 0.875rem;
}

.sd-process__step:not(:last-child)[b-32o2q3bq8r]::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -1.6rem;
    width: 1.2rem;
    height: 2px;
    background: var(--color-text-secondary);
}

.sd-process__step:not(:last-child)[b-32o2q3bq8r]::before {
    content: "";
    position: absolute;
    top: calc(50% - 4px);
    right: -1.65rem;
    border: 5px solid transparent;
    border-left-color: var(--color-text-secondary);
    border-right-width: 0;
}

.sd-process__step--arrival[b-32o2q3bq8r],
.sd-process__step--output[b-32o2q3bq8r] {
    background: var(--color-surface-raised, var(--color-surface));
    border-style: dashed;
}

.sd-process__step[data-status="blocked"][b-32o2q3bq8r] { border-color: #fdba74; }
.sd-process__step[data-status="contradicted"][b-32o2q3bq8r] { border-color: #fca5a5; }

.sd-process__head[b-32o2q3bq8r] {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
}

.sd-process__number[b-32o2q3bq8r] {
    flex: none;
    display: inline-grid;
    place-items: center;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 999px;
    background: var(--color-brand);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
}

.sd-process__title[b-32o2q3bq8r] {
    font-weight: 600;
    text-align: left;
}

.sd-process__badges[b-32o2q3bq8r] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.sd-process__studio[b-32o2q3bq8r] {
    background: #eef2ff;
    color: #3730a3;
}

.sd-process__what[b-32o2q3bq8r] {
    color: var(--color-text-secondary);
    line-height: 1.45;
}

/* What a step uses, and the files arrival brings by role (#1065). */
.sd-process__uses[b-32o2q3bq8r] {
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    border-top: 1px solid var(--color-border);
    padding-top: 0.35rem;
}

.sd-process__files[b-32o2q3bq8r] {
    font-size: 0.8125rem;
}

.sd-process__files summary[b-32o2q3bq8r] {
    cursor: pointer;
    color: var(--color-text-secondary);
}

.sd-process__files ul[b-32o2q3bq8r] {
    margin: 0.25rem 0 0;
    padding-left: 1rem;
    overflow-wrap: anywhere;
}

/* The Inspector's What it uses (#1065). */
.sd-uses[b-32o2q3bq8r] {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    font-size: 0.875rem;
}

.sd-uses__item[b-32o2q3bq8r] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    overflow-wrap: anywhere;
}

.sd-uses__item .btn-link[b-32o2q3bq8r] {
    text-align: left;
}

.sd-howto[b-32o2q3bq8r] {
    list-style: none;
    counter-reset: sd-howto;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.sd-howto__step[b-32o2q3bq8r] {
    counter-increment: sd-howto;
    flex: 1 1 14rem;
    max-width: 24rem;
    padding: 0.5rem 0.75rem;
    border-left: 3px solid var(--color-brand);
    background: var(--color-surface);
    font-size: 0.8125rem;
    line-height: 1.45;
}

.sd-howto__step[b-32o2q3bq8r]::before {
    content: counter(sd-howto) ". ";
    font-weight: 700;
    color: var(--color-brand);
}

.sd-legend-words[b-32o2q3bq8r] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.25rem;
    margin: -0.5rem 0 1rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
}

.sd-legend-words__item[b-32o2q3bq8r] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.sd-legend-words dd[b-32o2q3bq8r] {
    margin: 0;
}

/* ── the Design DocMX configuration option (#1060) ── */

.sd-option[b-32o2q3bq8r] {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
}

.sd-option__toggle[b-32o2q3bq8r] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
}

.sd-option__help[b-32o2q3bq8r] {
    margin: 0.25rem 0 0;
    font-size: 0.875rem;
}

.sd-option__mismatch[b-32o2q3bq8r] {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    color: #92400e;
}

/* The option follows the scope of works (#1099). */
.sd-option__because[b-32o2q3bq8r] {
    background: #f0fdfa;
    color: #0f766e;
}

.sd-verdict-item__vision[b-32o2q3bq8r] { margin: 0.25rem 0 0; font-size: 0.8125rem; }

/* Who else has the engagement open (#1148): a calm line beside the title. */
.sd-presence[b-32o2q3bq8r] {
    font-size: 0.85rem;
    color: var(--color-text-secondary);
    padding: 0.15rem 0.6rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    white-space: nowrap;
}

/* Sub-view bars (#1152): the views within an area, lighter than the area bar above them. */
.sd-tabs--sub[b-32o2q3bq8r] {
    margin-top: -0.5rem;
    margin-bottom: 1rem;
    border-bottom: 0;
}

.sd-tabs--sub .sd-tab[b-32o2q3bq8r] {
    font-size: 0.9rem;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

/* The Material area (#1153): groups by purpose, one card per item. */
.sd-material__purpose[b-32o2q3bq8r] {
    margin: 0 0 0.75rem;
}

.sd-material__list[b-32o2q3bq8r] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.sd-material__item[b-32o2q3bq8r] {
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
}

.sd-material__head[b-32o2q3bq8r] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.sd-material__name[b-32o2q3bq8r] {
    font-weight: 600;
}

.sd-material__meta[b-32o2q3bq8r] {
    margin: 0.25rem 0 0;
    font-size: 0.85rem;
}

.sd-material__note[b-32o2q3bq8r] {
    margin: 0.5rem 0 0;
}

.sd-material__note-edit[b-32o2q3bq8r] {
    margin-top: 0.5rem;
    display: grid;
    gap: 0.5rem;
}

.sd-material__actions[b-32o2q3bq8r] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.sd-material__role .form-select[b-32o2q3bq8r] {
    width: auto;
    font-size: 0.85rem;
}

/* Example sets (#1181): a heading over the files that are one example, those files set in a little. */
.sd-material__set-head[b-32o2q3bq8r] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 0 -0.25rem;
    padding: 0.4rem 0.75rem;
    border-radius: var(--radius);
    background: var(--color-surface-raised);
}

.sd-material__set-head .form-input[b-32o2q3bq8r] {
    width: auto;
    min-width: 16rem;
}

.sd-material__set-label[b-32o2q3bq8r] {
    font-weight: 600;
}

.sd-material__item.is-in-set[b-32o2q3bq8r] {
    margin-left: 1.25rem;
}

.sd-material__set-pick .form-select[b-32o2q3bq8r] {
    width: auto;
    font-size: 0.85rem;
}

.sd-material__set-new[b-32o2q3bq8r] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.sd-material__set-new .form-input[b-32o2q3bq8r] {
    width: auto;
    min-width: 14rem;
}

/* The design in areas (#1197): one calm row per area, the part cards inside. */
.sd-areas[b-32o2q3bq8r] {
    margin: 0 0 1.5rem;
}

.sd-areas__lead[b-32o2q3bq8r] {
    margin: 0 0 0.75rem;
}

.sd-area[b-32o2q3bq8r] {
    margin: 0 0 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
}

.sd-area__summary[b-32o2q3bq8r] {
    display: grid;
    gap: 0.25rem;
    padding: 0.85rem 1.1rem;
    cursor: pointer;
    list-style: none;
}

.sd-area__summary[b-32o2q3bq8r]::-webkit-details-marker {
    display: none;
}

.sd-area__summary[b-32o2q3bq8r]::before {
    content: "▸";
    float: left;
    margin-right: 0.5rem;
    color: var(--color-text-secondary);
}

.sd-area[open] > .sd-area__summary[b-32o2q3bq8r]::before {
    content: "▾";
}

.sd-area__head[b-32o2q3bq8r] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.sd-area__title[b-32o2q3bq8r] {
    font-weight: 600;
    font-size: 1.02rem;
}

.sd-area__links[b-32o2q3bq8r] {
    font-size: 0.85rem;
}

.sd-area > .sd-elements[b-32o2q3bq8r] {
    padding: 0 1.1rem 1rem;
}

.sd-area__body[b-32o2q3bq8r] {
    padding: 0 1.1rem;
}

/* The review chips (#1198), the same calm colours as the area panel's. */
.sd-review--inreview[b-32o2q3bq8r]      { background: #e0f2fe; color: #075985; }
.sd-review--needsdecision[b-32o2q3bq8r] { background: #fef3c7; color: #92400e; }
.sd-review--agreed[b-32o2q3bq8r]        { background: #dcfce7; color: #166534; }
/* /Components/Pages/SolutionDesignEngagementNew.razor.rz.scp.css */
/* New engagement (#1165): the kind of solution first, as cards; then the details. */
.sd-new .card[b-ixmc1mft5l] {
    margin-bottom: 1rem;
}

.sd-new__templates[b-ixmc1mft5l] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 0.75rem;
}

.sd-new__template[b-ixmc1mft5l] {
    display: grid;
    gap: 0.35rem;
    text-align: left;
    padding: 1rem 1.1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.sd-new__template:hover[b-ixmc1mft5l],
.sd-new__template:focus-visible[b-ixmc1mft5l] {
    border-color: var(--color-brand);
}

.sd-new__template.is-picked[b-ixmc1mft5l] {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px var(--color-brand);
}

.sd-new__template-name[b-ixmc1mft5l] {
    font-weight: 600;
    font-size: 1.05rem;
}

.sd-new__template-sections[b-ixmc1mft5l] {
    font-size: 0.85rem;
}

.sd-new__details[b-ixmc1mft5l] {
    display: grid;
    gap: 0.75rem;
    max-width: 40rem;
}

.sd-actions[b-ixmc1mft5l] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}
/* /Components/Pages/SolutionDesignEngagements.razor.rz.scp.css */
.sd-empty[b-u37dzx0zgj] {
    max-width: 44rem;
}

.sd-empty__title[b-u37dzx0zgj] {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
}

.sd-list[b-u37dzx0zgj] {
    width: 100%;
}

.sd-sr-only[b-u37dzx0zgj] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}


/* Show filter (#1142): Mine or shared with me. */
.sd-list__filter[b-u37dzx0zgj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.sd-list__filter .form-select[b-u37dzx0zgj] {
    width: auto;
}

/* Unread notifications about an engagement (#1151). */
.sd-for-you[b-u37dzx0zgj] {
    margin-left: 0.5rem;
}
/* /Components/Pages/SolutionDesignSkills.razor.rz.scp.css */
.sd-skills__strip[b-plos2gld6i] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.sd-skills__version[b-plos2gld6i] {
    font-weight: 600;
}

.sd-skills__conflict[b-plos2gld6i] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.sd-skills__problems-title[b-plos2gld6i] {
    margin: 0 0 0.25rem;
    font-weight: 600;
}

.sd-skills__problems-title + ul[b-plos2gld6i] {
    margin: 0;
}

.sd-skills__h2[b-plos2gld6i] {
    font-size: 1.0625rem;
    margin: 0 0 0.375rem;
}

.sd-skills__h3[b-plos2gld6i] {
    font-size: 0.9375rem;
    margin: 1rem 0 0.375rem;
}

.sd-skills__history[b-plos2gld6i],
.sd-skills__save[b-plos2gld6i],
.sd-skills__preview[b-plos2gld6i] {
    margin-bottom: 1rem;
}

.sd-skills__history-grid[b-plos2gld6i] {
    display: grid;
    grid-template-columns: minmax(260px, 360px) 1fr;
    gap: 1.5rem;
}

.sd-skills__versions[b-plos2gld6i] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 22rem;
    overflow-y: auto;
}

.sd-skills__version-item[b-plos2gld6i],
.sd-skills__item[b-plos2gld6i] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    width: 100%;
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius);
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    color: inherit;
    font: inherit;
}

.sd-skills__version-item:hover[b-plos2gld6i],
.sd-skills__item:hover[b-plos2gld6i] {
    background: var(--color-surface-muted, #f8fafc);
}

.sd-skills__version-item.is-selected[b-plos2gld6i],
.sd-skills__item.is-selected[b-plos2gld6i] {
    border-color: var(--color-brand-teal);
    background: #f0fbff;
}

.sd-skills__item.has-problem[b-plos2gld6i] {
    border-color: var(--color-danger-border, rgba(180, 35, 24, 0.24));
}

.sd-skills__version-note[b-plos2gld6i] {
    font-size: 0.8125rem;
}

.sd-skills__save-row[b-plos2gld6i] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
}

.sd-skills__note[b-plos2gld6i] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    flex: 1 1 420px;
}

.sd-skills__note label[b-plos2gld6i],
.skill-add > label[b-plos2gld6i],
.skill-add__kinds > legend[b-plos2gld6i] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-skills__save-actions[b-plos2gld6i] {
    display: flex;
    gap: 0.5rem;
}

.sd-skills__grid[b-plos2gld6i] {
    display: grid;
    grid-template-columns: minmax(280px, 380px) 1fr;
    gap: 1rem;
    align-items: start;
    margin-bottom: 1rem;
}

.sd-skills__list[b-plos2gld6i] {
    padding: 0.75rem;
    max-height: calc(100vh - 12rem);
    overflow-y: auto;
    position: sticky;
    top: 1rem;
}

.sd-skills__group[b-plos2gld6i] {
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
    margin: 0.75rem 0.75rem 0.375rem;
}

.sd-skills__group:first-child[b-plos2gld6i] {
    margin-top: 0.25rem;
}

.sd-skills__items[b-plos2gld6i] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sd-skills__item-name[b-plos2gld6i] {
    font-weight: 600;
}

.sd-skills__item-parts[b-plos2gld6i] {
    font-size: 0.8125rem;
}

.sd-skills__badges[b-plos2gld6i] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.125rem;
}

.sd-skills__badges:empty[b-plos2gld6i] {
    display: none;
}

.sd-skills__add[b-plos2gld6i] {
    border-top: 1px solid var(--color-border);
    margin-top: 0.75rem;
    padding: 0.75rem 0.75rem 0.25rem;
}

.skill-add[b-plos2gld6i] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.skill-add__kinds[b-plos2gld6i] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.375rem 0.625rem 0.5rem;
    margin: 0.25rem 0;
    max-height: 12rem;
    overflow-y: auto;
}

.skill-add__kind[b-plos2gld6i] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
}

.skill-add__actions[b-plos2gld6i] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

.sd-skills__detail[b-plos2gld6i] {
    min-width: 0;
}

.sd-skills__remove[b-plos2gld6i] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.sd-skills__pre[b-plos2gld6i] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.8125rem;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
    background: var(--color-surface-muted, #f8fafc);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.75rem 1rem;
    margin: 0;
    max-height: 32rem;
    overflow-y: auto;
}

@media (max-width: 1100px) {
    .sd-skills__grid[b-plos2gld6i],
    .sd-skills__history-grid[b-plos2gld6i] {
        grid-template-columns: 1fr;
    }

    .sd-skills__list[b-plos2gld6i] {
        position: static;
        max-height: none;
    }
}
/* /Components/Pages/SpreadsheetRulesEditor.razor.rz.scp.css */
/* ── Spreadsheet Rules Studio editor (#838, SR2.2) ───────────────────────────

   Every rule lives here rather than in seven component stylesheets: the panes and
   their contents are one visual system, and keeping the grammar of the studio in
   one file is what stops the outline, the command rows and the rail drifting apart.
   Child-component markup is reached with ::deep from a page-owned ancestor.

   Sizes are css only. The C# passes data (a node's depth, a severity class) and
   never a pixel. */

.sr-breadcrumb[b-8hvng13sgl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    margin-bottom: 0.5rem;
}

.sr-not-found .card-body h2[b-8hvng13sgl] { margin-top: 0; }

/* ── Layout ──────────────────────────────────────────────────────────────
   Five columns: outline, drag handle, document, static divider, rail. Mirrors
   the Rule Studio's .studio-split so the two editors feel like one product. */
.sr-split[b-8hvng13sgl] {
    display: grid;
    /* The outline and the rail default to the SAME width so the document sits centred between
       two equal side panes; either can then be dragged independently. */
    grid-template-columns:
        var(--sr-outline-width, 320px)
        6px
        minmax(0, 1fr)
        6px
        var(--sr-rail-width, 320px);
    grid-template-areas: "outline splitter centre splitter2 rail";
    column-gap: 1rem;
    align-items: start;
}

/* Expanded: the document takes the whole width and the side panes fold away. The flow graph is
   the view that needs this most — a layered graph does not fit a third of the viewport. */
.sr-split-expanded[b-8hvng13sgl] {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "centre";
}

.sr-split-expanded > .sr-pane-outline[b-8hvng13sgl],
.sr-split-expanded > .sr-pane-rail[b-8hvng13sgl],
.sr-split-expanded > .sr-splitter[b-8hvng13sgl] {
    display: none;
}

/* The panes are capped so the page itself never scrolls; expanded, give the document the room
   the folded-away furniture was using. */
.sr-split-expanded > .sr-pane-centre[b-8hvng13sgl] {
    max-height: calc(100vh - 11rem);
}

.sr-pane-outline[b-8hvng13sgl]  { grid-area: outline;   min-width: 0; }
.sr-pane-centre[b-8hvng13sgl]   { grid-area: centre;    min-width: 0; }
.sr-pane-rail[b-8hvng13sgl]     { grid-area: rail;      min-width: 0; }
.sr-splitter[b-8hvng13sgl]      { grid-area: splitter; }
.sr-splitter-rail[b-8hvng13sgl]   { grid-area: splitter2; }

@media (max-width: 1280px) {
    /* Below the splitter breakpoint the panes stack and both handles go away. */
    .sr-split[b-8hvng13sgl] {
        grid-template-columns: 1fr;
        grid-template-areas:
            "outline"
            "centre"
            "rail";
        row-gap: 1rem;
    }
    .sr-splitter[b-8hvng13sgl] { display: none; }
}

.sr-splitter[b-8hvng13sgl] {
    align-self: stretch;
    height: 100%;
    cursor: col-resize;
    background: var(--border, #e2e6ea);
    border-radius: 3px;
    transition: background 0.15s;
    touch-action: none;
}

.sr-splitter:hover[b-8hvng13sgl],
.sr-splitter.dragging[b-8hvng13sgl] { background: var(--accent, #2b6cff); }


.sr-pane[b-8hvng13sgl] {
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.5rem;
    padding: 0.75rem;
    max-height: calc(100vh - 15rem);
    overflow: auto;
}

.sr-pane-title[b-8hvng13sgl] {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin: 0 0 0.5rem;
}

.sr-status[b-8hvng13sgl] {
    margin-top: 0.75rem;
    min-height: 1.25rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
}

/* ── Shared vocabulary (chips, tabs, monospace, severity) ────────────────── */

.sr-split[b-8hvng13sgl]  .sr-mono,
.sr-toolbar-host[b-8hvng13sgl]  .sr-mono {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
    font-size: 0.8125rem;
}

.sr-split[b-8hvng13sgl]  .sr-chips,
.sr-toolbar-host[b-8hvng13sgl]  .sr-chips {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    align-items: center;
}

.sr-split[b-8hvng13sgl]  .sr-chip,
.sr-toolbar-host[b-8hvng13sgl]  .sr-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.1rem 0.5rem;
    border-radius: 100px;
    border: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-surface-alt, #f8fafc);
    color: var(--color-text-secondary);
    font-size: 0.6875rem;
    font-weight: 600;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-chip-unknown { border-color: #fbbf24; color: #92400e; background: #fffbeb; }
.sr-split[b-8hvng13sgl]  .sr-chip-effect  { border-color: #c7d2fe; color: #3730a3; background: #eef2ff; }
.sr-split[b-8hvng13sgl]  .sr-chip-fidelity { border-color: #fde68a; color: #92400e; background: #fffbeb; }
.sr-split[b-8hvng13sgl]  .sr-chip-declared { border-style: dashed; }
.sr-split[b-8hvng13sgl]  .sr-chip-sep,
.sr-toolbar-host[b-8hvng13sgl]  .sr-chip-sep { opacity: 0.5; }

.sr-split[b-8hvng13sgl]  .sr-tab,
.sr-toolbar-host[b-8hvng13sgl]  .sr-tab {
    appearance: none;
    border: 1px solid transparent;
    border-bottom: 2px solid transparent;
    background: transparent;
    padding: 0.4rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    cursor: pointer;
}

.sr-split[b-8hvng13sgl]  .sr-tab:disabled,
.sr-toolbar-host[b-8hvng13sgl]  .sr-tab:disabled { opacity: 0.45; cursor: not-allowed; }

.sr-split[b-8hvng13sgl]  .sr-tab-on,
.sr-toolbar-host[b-8hvng13sgl]  .sr-tab-on {
    color: var(--color-text, #0f172a);
    border-bottom-color: var(--accent, #2b6cff);
}

/* Severity is one palette everywhere: dot, badge, finding and diagnostic. */
.sr-split[b-8hvng13sgl]  .sr-sev-error   { --sr-sev: #b91c1c; --sr-sev-bg: #fee2e2; }
.sr-split[b-8hvng13sgl]  .sr-sev-warning { --sr-sev: #92400e; --sr-sev-bg: #fef3c7; }
.sr-split[b-8hvng13sgl]  .sr-sev-notice  { --sr-sev: #475569; --sr-sev-bg: #f1f5f9; }
.sr-toolbar-host[b-8hvng13sgl]  .sr-sev-error   { --sr-sev: #b91c1c; --sr-sev-bg: #fee2e2; }
.sr-toolbar-host[b-8hvng13sgl]  .sr-sev-warning { --sr-sev: #92400e; --sr-sev-bg: #fef3c7; }
.sr-toolbar-host[b-8hvng13sgl]  .sr-sev-notice  { --sr-sev: #475569; --sr-sev-bg: #f1f5f9; }
.sr-toolbar-host[b-8hvng13sgl]  .sr-sev-clear   { --sr-sev: #166534; --sr-sev-bg: #dcfce7; }

.sr-toolbar-host[b-8hvng13sgl]  .sr-lint-chip {
    background: var(--sr-sev-bg, #f1f5f9);
    color: var(--sr-sev, #475569);
    border-color: transparent;
}

.sr-split[b-8hvng13sgl]  .sr-dot {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--sr-sev, #475569);
}

.sr-split[b-8hvng13sgl]  .sr-outline-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0 0.375rem;
    border-radius: 100px;
    background: var(--sr-sev-bg, #f1f5f9);
    color: var(--sr-sev, #475569);
    font-size: 0.6875rem;
    font-weight: 700;
}

/* ── Toolbar ─────────────────────────────────────────────────────────────── */

.sr-toolbar-host[b-8hvng13sgl]  .sr-toolbar { margin-bottom: 0.75rem; }

.sr-toolbar-host[b-8hvng13sgl]  .sr-toolbar-identity h1 { margin-bottom: 0.375rem; }

.sr-toolbar-host[b-8hvng13sgl]  .sr-view-tabs {
    display: flex;
    gap: 0.25rem;
    margin-top: 0.5rem;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

/* Expand is a layout control, not a view — sit it at the far end, away from the three tabs. */
.sr-toolbar-host[b-8hvng13sgl]  .sr-tab-expand { margin-left: auto; }

/* ── Outline ─────────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-outline:focus-visible {
    outline: 2px solid var(--accent, #2b6cff);
    outline-offset: 2px;
    border-radius: 0.25rem;
}

.sr-split[b-8hvng13sgl]  .sr-outline-node {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    /* One indent step per level; the level itself comes from the data. */
    padding: 0.2rem 0.375rem 0.2rem calc(var(--sr-indent, 0.85rem) * var(--sr-depth, 1));
    border-radius: 0.25rem;
    font-size: 0.8125rem;
    cursor: pointer;
    user-select: none;
}

.sr-split[b-8hvng13sgl]  .sr-outline-node:hover { background: var(--color-surface-alt, #f8fafc); }

.sr-split[b-8hvng13sgl]  .sr-outline-on {
    background: var(--color-surface-alt, #eef2ff);
    box-shadow: inset 2px 0 0 var(--accent, #2b6cff);
    font-weight: 600;
}

.sr-split[b-8hvng13sgl]  .sr-outline-block { font-weight: 600; }
.sr-split[b-8hvng13sgl]  .sr-outline-section { text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.75rem; }
.sr-split[b-8hvng13sgl]  .sr-outline-parameter,
.sr-split[b-8hvng13sgl]  .sr-outline-text { color: var(--color-text-secondary); }

.sr-split[b-8hvng13sgl]  .sr-outline-twisty {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    width: 1rem;
    flex: 0 0 1rem;
    color: var(--color-text-secondary);
    cursor: pointer;
    line-height: 1;
}

.sr-split[b-8hvng13sgl]  .sr-outline-label {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-outline-empty { margin: 0.25rem 0; }

/* ── Commands view ───────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-section { margin-bottom: 1.25rem; }

.sr-split[b-8hvng13sgl]  .sr-section-title {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.8125rem;
    margin: 0 0 0.25rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.sr-split[b-8hvng13sgl]  .sr-section-count { font-size: 0.75rem; font-weight: 400; }

.sr-split[b-8hvng13sgl]  .sr-command-header {
    width: 100%;
    appearance: none;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    text-align: left;
    cursor: pointer;
}

.sr-split[b-8hvng13sgl]  .sr-command-header:hover { background: var(--color-surface-alt, #f8fafc); }

.sr-split[b-8hvng13sgl]  .sr-command-tag { font-weight: 700; }

.sr-split[b-8hvng13sgl]  .sr-command-chips { flex: 1; }

.sr-split[b-8hvng13sgl]  .sr-command-on { box-shadow: 0 0 0 2px var(--accent, #2b6cff); }

.sr-split[b-8hvng13sgl]  .sr-command-summary { font-size: 0.8125rem; }

.sr-split[b-8hvng13sgl]  .sr-command-preview {
    background: var(--color-surface-alt, #f8fafc);
    border-radius: 0.25rem;
    padding: 0.25rem 0.5rem;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

/* ── Inspector ───────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-inspector-tag { margin: 0; font-size: 1rem; }
.sr-split[b-8hvng13sgl]  .sr-inspector-path { margin: 0 0 0.5rem; word-break: break-all; }
.sr-split[b-8hvng13sgl]  .sr-inspector-summary { margin: 0.25rem 0; font-size: 0.875rem; }
.sr-split[b-8hvng13sgl]  .sr-inspector-anchor { margin: 0 0 0.5rem; }

.sr-split[b-8hvng13sgl]  .sr-inspector-section { margin-top: 1rem; }
.sr-split[b-8hvng13sgl]  .sr-inspector-section h4 {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
    margin: 0 0 0.375rem;
}

.sr-split[b-8hvng13sgl]  .sr-facts { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 0.75rem; font-size: 0.8125rem; margin: 0.5rem 0; }
.sr-split[b-8hvng13sgl]  .sr-facts dt { color: var(--color-text-secondary); }
.sr-split[b-8hvng13sgl]  .sr-facts dd { margin: 0; }

.sr-split[b-8hvng13sgl]  .sr-parameters { width: 100%; }
.sr-split[b-8hvng13sgl]  .sr-parameter-open {
    font-weight: 700;
    color: var(--accent, #2b6cff);
    cursor: pointer;
}

.sr-split[b-8hvng13sgl]  .sr-quirk {
    border-left: 3px solid #fbbf24;
    background: #fffbeb;
    border-radius: 0.25rem;
    padding: 0.375rem 0.5rem;
    margin-bottom: 0.375rem;
    font-size: 0.8125rem;
}

.sr-split[b-8hvng13sgl]  .sr-quirk-head { display: flex; gap: 0.5rem; align-items: baseline; }
.sr-split[b-8hvng13sgl]  .sr-quirk-code { font-weight: 700; }

.sr-split[b-8hvng13sgl]  .sr-engine-reads {
    background: var(--color-surface-alt, #f8fafc);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.25rem;
    padding: 0.5rem;
    margin: 0;
    max-height: 12rem;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

.sr-split[b-8hvng13sgl]  .sr-note { font-size: 0.75rem; margin: 0.25rem 0 0; }

.sr-split[b-8hvng13sgl]  .sr-inspector-finding {
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
    border-left: 3px solid var(--sr-sev, #475569);
    background: var(--sr-sev-bg, #f1f5f9);
    border-radius: 0.25rem;
    padding: 0.375rem 0.5rem;
    margin-bottom: 0.375rem;
    font-size: 0.8125rem;
}

.sr-split[b-8hvng13sgl]  .sr-raw { width: 100%; resize: vertical; }

/* ── Script view ─────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-script-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-script-note { font-size: 0.8125rem; }

.sr-split[b-8hvng13sgl]  .sr-script-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    margin-bottom: 0.25rem;
}

.sr-split[b-8hvng13sgl]  .sr-script-text { width: 100%; resize: vertical; white-space: pre; overflow-wrap: normal; overflow-x: auto; }

.sr-split[b-8hvng13sgl]  .sr-parse-diagnostics { margin-top: 1rem; }
.sr-split[b-8hvng13sgl]  .sr-parse-diagnostics h4 {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
    margin: 0 0 0.375rem;
}

.sr-split[b-8hvng13sgl]  .sr-diagnostic-list { list-style: none; margin: 0; padding: 0; }

.sr-split[b-8hvng13sgl]  .sr-diagnostic {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: baseline;
    border-left: 3px solid var(--sr-sev, #475569);
    padding: 0.25rem 0.5rem;
    margin-bottom: 0.25rem;
    font-size: 0.8125rem;
    background: var(--color-surface-alt, #f8fafc);
}

.sr-split[b-8hvng13sgl]  .sr-diagnostic-severity { color: var(--sr-sev, #475569); font-weight: 700; font-size: 0.6875rem; text-transform: uppercase; }
.sr-split[b-8hvng13sgl]  .sr-diagnostic-message { flex: 1; min-width: 12rem; }

/* ── Checks rail ─────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-rail-tabs {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    margin-bottom: 0.75rem;
}

.sr-split[b-8hvng13sgl]  .sr-rail-count {
    display: inline-block;
    margin-left: 0.25rem;
    padding: 0 0.375rem;
    border-radius: 100px;
    background: var(--color-surface-alt, #f1f5f9);
    font-size: 0.6875rem;
}

.sr-split[b-8hvng13sgl]  .sr-check-group { margin-bottom: 1rem; }

.sr-split[b-8hvng13sgl]  .sr-check-heading {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--sr-sev, var(--color-text-secondary));
    margin: 0 0 0.375rem;
}

.sr-split[b-8hvng13sgl]  .sr-finding {
    border-left: 3px solid var(--sr-sev, #475569);
    background: var(--color-surface-alt, #f8fafc);
    border-radius: 0.25rem;
    padding: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: 0.8125rem;
}

.sr-split[b-8hvng13sgl]  .sr-finding-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-finding-code { font-weight: 700; color: var(--sr-sev, #475569); }
.sr-split[b-8hvng13sgl]  .sr-finding-message { margin-top: 0.25rem; }
.sr-split[b-8hvng13sgl]  .sr-finding-where,
.sr-split[b-8hvng13sgl]  .sr-finding-anchor { font-size: 0.6875rem; word-break: break-all; }
.sr-split[b-8hvng13sgl]  .sr-finding-fix { margin-top: 0.25rem; font-style: italic; }

.sr-split[b-8hvng13sgl]  .sr-dormant {
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
    font-size: 0.8125rem;
    padding: 0.25rem 0;
}

.sr-split[b-8hvng13sgl]  .sr-all-clear { font-size: 0.875rem; color: #166534; margin: 0; }

.sr-split[b-8hvng13sgl]  .sr-dormant-group { margin-top: 1rem; border-top: 1px solid var(--color-border, #e2e8f0); padding-top: 0.75rem; }

/* ── Authoring (#839, SR3.1) ─────────────────────────────────────────────── */

/* The keyboard root. It is a shortcut host, not a control, so it takes focus
   without drawing a ring of its own — the pane that has focus shows its own. */
.sr-studio:focus[b-8hvng13sgl],
.sr-studio:focus-visible[b-8hvng13sgl] { outline: none; }

.sr-toolbar-host[b-8hvng13sgl]  .sr-name-input {
    width: min(32rem, 100%);
    font-size: 1.25rem;
    font-weight: 600;
    padding: 0.25rem 0.5rem;
    margin-bottom: 0.375rem;
    border-color: transparent;
    background: transparent;
}

.sr-toolbar-host[b-8hvng13sgl]  .sr-name-input:hover { border-color: var(--color-border, #e2e8f0); }

.sr-toolbar-host[b-8hvng13sgl]  .sr-name-input:focus {
    border-color: var(--accent, #2b6cff);
    background: var(--color-surface, #fff);
}

.sr-toolbar-host[b-8hvng13sgl]  .sr-chip-dirty {
    border-color: #fbbf24;
    color: #92400e;
    background: #fffbeb;
    font-weight: 600;
}

.sr-split[b-8hvng13sgl]  .sr-chip-available,
.sr-toolbar-host[b-8hvng13sgl]  .sr-chip-available { border-color: #bbf7d0; color: #166534; background: #f0fdf4; }

/* Inline prompts: add a block, publish a snapshot. */
.sr-toolbar-host[b-8hvng13sgl]  .sr-inline-form,
.sr-split[b-8hvng13sgl]  .sr-inline-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.375rem;
    background: var(--color-surface-alt, #f8fafc);
}

.sr-toolbar-host[b-8hvng13sgl]  .sr-inline-form input { max-width: 22rem; }

.sr-toolbar-host[b-8hvng13sgl]  .sr-inline-note,
.sr-split[b-8hvng13sgl]  .sr-inline-note { font-size: 0.75rem; }

.sr-toolbar-host[b-8hvng13sgl]  .sr-field-label,
.sr-split[b-8hvng13sgl]  .sr-field-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

/* ── Command palette ─────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-palette {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-height: 60vh;
    margin-bottom: 1rem;
    padding: 0.75rem;
    border: 1px solid var(--accent, #2b6cff);
    border-radius: 0.5rem;
    background: var(--color-surface, #fff);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.sr-split[b-8hvng13sgl]  .sr-palette-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-palette-title { margin: 0; font-size: 0.9375rem; }

.sr-split[b-8hvng13sgl]  .sr-palette-close {
    font-size: 1.125rem;
    line-height: 1;
    padding: 0 0.25rem;
}

.sr-split[b-8hvng13sgl]  .sr-palette-body { overflow-y: auto; }

.sr-split[b-8hvng13sgl]  .sr-palette-group { margin-bottom: 0.75rem; }

.sr-split[b-8hvng13sgl]  .sr-palette-phase {
    margin: 0 0 0.25rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-palette-item {
    display: block;
    width: 100%;
    text-align: left;
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 0.25rem;
    padding: 0.3125rem 0.5rem;
    cursor: pointer;
}

.sr-split[b-8hvng13sgl]  .sr-palette-item:hover { background: var(--color-surface-alt, #f8fafc); }

.sr-split[b-8hvng13sgl]  .sr-palette-item-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-palette-tag { font-weight: 700; }

.sr-split[b-8hvng13sgl]  .sr-palette-summary { display: block; font-size: 0.75rem; }

.sr-split[b-8hvng13sgl]  .sr-palette-empty { margin: 0.25rem 0; }

/* ── Row and block controls ──────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-add-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 1rem;
}

.sr-split[b-8hvng13sgl]  .sr-add-row-label { font-size: 0.75rem; }

.sr-split[b-8hvng13sgl]  .sr-section-title .sr-add-command { margin-left: auto; }

.sr-split[b-8hvng13sgl]  .sr-command-row { position: relative; }

.sr-split[b-8hvng13sgl]  .sr-command-header { padding-right: 6rem; }

.sr-split[b-8hvng13sgl]  .sr-command-controls {
    position: absolute;
    top: 0.25rem;
    right: 0.375rem;
    display: flex;
    gap: 0.125rem;
}

.sr-split[b-8hvng13sgl]  .sr-row-btn {
    line-height: 1;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-row-btn:hover:not(:disabled) { background: var(--color-surface-alt, #f8fafc); }

.sr-split[b-8hvng13sgl]  .sr-row-btn:disabled { opacity: 0.35; cursor: not-allowed; }

.sr-split[b-8hvng13sgl]  .sr-row-remove:hover:not(:disabled) { color: #b91c1c; }

.sr-split[b-8hvng13sgl]  .sr-inspector-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-block-rename,
.sr-split[b-8hvng13sgl]  .sr-block-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    margin-top: 0.375rem;
}

/* ── Parameter controls ──────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-param-control {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
}

.sr-split[b-8hvng13sgl]  .sr-param-input,
.sr-split[b-8hvng13sgl]  .sr-param-select { min-width: 6rem; max-width: 100%; }

.sr-split[b-8hvng13sgl]  .sr-param-nested {
    display: inline-flex;
    align-items: baseline;
    gap: 0.375rem;
    font-size: 0.8125rem;
}

.sr-split[b-8hvng13sgl]  .sr-parameters td { vertical-align: middle; }

/* ── Flow view (#840, SR3.2) ─────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-flow {
    display: flex;
    flex-direction: column;
    min-height: 420px;
}

.sr-split[b-8hvng13sgl]  .sr-flow-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-flow-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.1rem 0.5rem;
    border-radius: 100px;
    border: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-surface-alt, #f8fafc);
    color: var(--color-text-secondary);
    font-size: 0.6875rem;
    font-weight: 600;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-flow-legend-sep { opacity: 0.5; }

.sr-split[b-8hvng13sgl]  .sr-flow-swatch {
    display: inline-block;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 3px;
    border: 1.5px solid var(--color-border, #e2e8f0);
    background: #fff;
}

.sr-split[b-8hvng13sgl]  .sr-flow-swatch-srstart { border-color: var(--accent, #2b6cff); }
.sr-split[b-8hvng13sgl]  .sr-flow-swatch-srcompleted { border-radius: 999px; background: var(--color-surface-alt, #f8fafc); }
.sr-split[b-8hvng13sgl]  .sr-flow-swatch-srscript { border-style: dashed; border-color: #a5b4fc; }
.sr-split[b-8hvng13sgl]  .sr-flow-swatch-srmissing { border-color: #b91c1c; }

.sr-split[b-8hvng13sgl]  .sr-flow-canvas { flex: 1; }

/* Node kinds on the canvas — fc-node-srblock keeps the shared FlowCanvas default look. */
.sr-split[b-8hvng13sgl]  .fc-node-srstart { border-color: var(--accent, #2b6cff); border-width: 2px; }
.sr-split[b-8hvng13sgl]  .fc-node-srcompleted {
    background: var(--color-surface-alt, #f8fafc);
    border-color: var(--color-border, #e2e8f0);
    border-radius: 999px;
    box-shadow: none;
}
.sr-split[b-8hvng13sgl]  .fc-node-srscript { border-style: dashed; border-color: #a5b4fc; }
.sr-split[b-8hvng13sgl]  .fc-node-srmissing { border-color: #b91c1c; box-shadow: 0 0 0 1px #fecaca, 0 6px 18px rgba(15, 23, 42, 0.08); }

/* ── Status region ───────────────────────────────────────────────────────── */

.sr-status button[b-8hvng13sgl] { margin-left: 0.5rem; }

/* ── Test bench (#843, SR4.3) ─────────────────────────────────────────────
   The third rail is denser than the other two — a preview grid, a form and four
   result tabs share one 360px column — so everything here is a step smaller than
   the studio's default and leans on whitespace rather than rules to separate. */

.sr-split[b-8hvng13sgl]  .sr-test { font-size: 0.8125rem; }

.sr-split[b-8hvng13sgl]  .sr-test-section { margin-bottom: 1.25rem; }

.sr-split[b-8hvng13sgl]  .sr-test-section + .sr-test-section {
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 1rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-section-heading {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
    margin: 0 0 0.625rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-heading {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
    margin: 0.875rem 0 0.375rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-subheading {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    margin: 0 0 0.25rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-hint,
.sr-split[b-8hvng13sgl]  .sr-test-empty {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    margin: 0.25rem 0 0;
}

.sr-split[b-8hvng13sgl]  .sr-test-empty {
    background: var(--color-surface-alt, #f8fafc);
    border: 1px dashed var(--color-border, #e2e8f0);
    border-radius: 0.25rem;
    padding: 0.625rem 0.75rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-problem {
    display: block;
    border-left: 3px solid #b91c1c;
    background: #fef2f2;
    color: #7f1d1d;
    border-radius: 0.25rem;
    padding: 0.5rem 0.625rem;
    font-size: 0.75rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-status { margin-top: 0.5rem; }

/* ── Workbook: upload, the loaded file, the library ─────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-label {
    display: block;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
    margin-bottom: 0.25rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-field { margin-bottom: 0.75rem; }

.sr-split[b-8hvng13sgl]  .sr-test-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.625rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-loaded {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    margin: 0.625rem 0;
    padding: 0.5rem 0.625rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.25rem;
    background: var(--color-surface-alt, #f8fafc);
}

.sr-split[b-8hvng13sgl]  .sr-test-loaded-name {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.sr-split[b-8hvng13sgl]  .sr-test-badge {
    display: inline-block;
    padding: 0.05rem 0.45rem;
    border-radius: 100px;
    border: 1px solid #c7d2fe;
    background: #eef2ff;
    color: #3730a3;
    font-size: 0.6875rem;
    font-weight: 600;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-test-badge-quiet {
    border-color: var(--color-border, #e2e8f0);
    background: #fff;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-test-sample-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sr-split[b-8hvng13sgl]  .sr-test-sample-row {
    display: flex;
    align-items: flex-start;
    gap: 0.375rem;
    padding: 0.375rem 0;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
}

.sr-split[b-8hvng13sgl]  .sr-test-sample-row:last-child { border-bottom: 0; }

.sr-split[b-8hvng13sgl]  .sr-test-sample-pick {
    flex: 1;
    min-width: 0;
    display: block;
    text-align: left;
    background: none;
    border: 0;
    border-radius: 0.25rem;
    padding: 0.25rem 0.375rem;
    cursor: pointer;
    font: inherit;
}

.sr-split[b-8hvng13sgl]  .sr-test-sample-pick:hover { background: var(--color-surface-alt, #f8fafc); }

.sr-split[b-8hvng13sgl]  .sr-test-sample-on .sr-test-sample-pick {
    background: var(--color-surface-alt, #f1f5f9);
    box-shadow: inset 3px 0 0 var(--accent, #2b6cff);
}

.sr-split[b-8hvng13sgl]  .sr-test-sample-name {
    display: block;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-test-sample-meta,
.sr-split[b-8hvng13sgl]  .sr-test-sample-notes {
    display: block;
    font-size: 0.6875rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-sep { padding: 0 0.25rem; opacity: 0.5; }

.sr-split[b-8hvng13sgl]  .sr-test-sample-delete { flex: none; }

/* ── The preview grid ────────────────────────────────────────────────────
   Scrolls inside its own box: the rail is a fixed column and must never be the
   thing that scrolls sideways. */

.sr-split[b-8hvng13sgl]  .sr-test-grid-scroll {
    overflow-x: auto;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.25rem;
    max-height: 18rem;
    overflow-y: auto;
}

.sr-split[b-8hvng13sgl]  .sr-test-grid {
    border-collapse: collapse;
    font-size: 0.6875rem;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-test-grid th,
.sr-split[b-8hvng13sgl]  .sr-test-grid td {
    border: 1px solid var(--color-border, #e2e8f0);
    padding: 0.15rem 0.375rem;
    text-align: left;
    font-weight: 400;
}

.sr-split[b-8hvng13sgl]  .sr-test-grid-letter,
.sr-split[b-8hvng13sgl]  .sr-test-grid-number,
.sr-split[b-8hvng13sgl]  .sr-test-grid-corner {
    background: var(--color-surface-alt, #f1f5f9);
    color: var(--color-text-secondary);
    font-weight: 600;
    text-align: center;
    position: sticky;
    top: 0;
}

.sr-split[b-8hvng13sgl]  .sr-test-grid-number {
    position: sticky;
    top: auto;
    left: 0;
}

.sr-split[b-8hvng13sgl]  .sr-test-grid-corner { left: 0; z-index: 2; }

.sr-split[b-8hvng13sgl]  .sr-test-grid-cell {
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* The sheet's own first row is what most scripts treat as the header. */
.sr-split[b-8hvng13sgl]  .sr-test-grid-headerrow td {
    font-weight: 600;
    background: #fbfdff;
}

/* ── Run ─────────────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-recording {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
    font-size: 0.6875rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-run-actions {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-top: 0.75rem;
}

/* ── Result summary ──────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-nothing-written {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    border-left: 3px solid #0369a1;
    background: #f0f9ff;
    color: #0c4a6e;
    border-radius: 0.25rem;
    padding: 0.625rem 0.75rem;
    margin-bottom: 0.75rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-nothing-written span { font-size: 0.75rem; }

.sr-split[b-8hvng13sgl]  .sr-test-term {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    border-left: 3px solid var(--sr-term, #475569);
    background: var(--color-surface-alt, #f8fafc);
    border-radius: 0.25rem;
    padding: 0.5rem 0.625rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-term-clean   { --sr-term: #166534; }
.sr-split[b-8hvng13sgl]  .sr-test-term-stopped { --sr-term: #92400e; }
.sr-split[b-8hvng13sgl]  .sr-test-term-error   { --sr-term: #b91c1c; }

.sr-split[b-8hvng13sgl]  .sr-test-term-label { font-weight: 600; color: var(--sr-term, #475569); }
.sr-split[b-8hvng13sgl]  .sr-test-term-detail { font-size: 0.75rem; color: var(--color-text-secondary); }

.sr-split[b-8hvng13sgl]  .sr-test-legacy { margin: 0.5rem 0 0; font-size: 0.75rem; color: var(--color-text-secondary); }

.sr-split[b-8hvng13sgl]  .sr-test-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.375rem 0.75rem;
    margin: 0.75rem 0 0;
}

.sr-split[b-8hvng13sgl]  .sr-test-stats dt {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
    font-weight: 600;
}

.sr-split[b-8hvng13sgl]  .sr-test-stats dd { margin: 0; }

.sr-split[b-8hvng13sgl]  .sr-test-caveats ul { margin: 0; padding-left: 1.1rem; }
.sr-split[b-8hvng13sgl]  .sr-test-caveats li { font-size: 0.75rem; margin-bottom: 0.2rem; }

.sr-split[b-8hvng13sgl]  .sr-test-code { font-weight: 700; }

.sr-split[b-8hvng13sgl]  .sr-test-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

/* ── Result tabs ─────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-tabs { margin-top: 1rem; }

.sr-split[b-8hvng13sgl]  .sr-test-tab-panel { padding-top: 0.25rem; }

/* ── Trace ───────────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-stepper {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-stepper-where { flex: 1; font-size: 0.75rem; }

.sr-split[b-8hvng13sgl]  .sr-test-verdict { font-weight: 600; }

.sr-split[b-8hvng13sgl]  .sr-test-goto {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-goto .sr-test-label { margin: 0; white-space: nowrap; }
.sr-split[b-8hvng13sgl]  .sr-test-goto input { width: 5.5rem; }

.sr-split[b-8hvng13sgl]  .sr-test-nested {
    border-left: 3px solid #a5b4fc;
    background: #eef2ff;
    color: #3730a3;
    border-radius: 0.25rem;
    padding: 0.4rem 0.625rem;
    font-size: 0.75rem;
    margin: 0 0 0.75rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-block { margin-bottom: 0.875rem; }

.sr-split[b-8hvng13sgl]  .sr-test-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.6875rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-table th,
.sr-split[b-8hvng13sgl]  .sr-test-table td {
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    padding: 0.25rem 0.375rem;
    text-align: left;
    vertical-align: top;
    word-break: break-word;
}

.sr-split[b-8hvng13sgl]  .sr-test-table thead th {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
    font-size: 0.625rem;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-test-arrow { padding: 0 0.25rem; color: var(--color-text-secondary); }

.sr-split[b-8hvng13sgl]  .sr-test-faults,
.sr-split[b-8hvng13sgl]  .sr-test-notes { margin: 0; padding-left: 1.1rem; font-size: 0.75rem; }

.sr-split[b-8hvng13sgl]  .sr-test-fault { color: #92400e; }

/* ── Diff ────────────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-kind {
    display: inline-block;
    padding: 0.02rem 0.4rem;
    border-radius: 100px;
    border: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-surface-alt, #f8fafc);
    color: var(--color-text-secondary);
    font-size: 0.625rem;
    font-weight: 600;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-test-kind-value     { border-color: #bae6fd; background: #f0f9ff; color: #0c4a6e; }
.sr-split[b-8hvng13sgl]  .sr-test-kind-format    { border-color: #ddd6fe; background: #f5f3ff; color: #4c1d95; }
.sr-split[b-8hvng13sgl]  .sr-test-kind-structure { border-color: var(--color-border, #e2e8f0); background: #f8fafc; color: #475569; }

/* ── Ledger ──────────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-ledger-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font: inherit;
    color: inherit;
}

.sr-split[b-8hvng13sgl]  .sr-test-caret { color: var(--color-text-secondary); }

.sr-split[b-8hvng13sgl]  .sr-test-ledger-where { display: block; font-size: 0.625rem; }

.sr-split[b-8hvng13sgl]  .sr-test-ledger-payload > td { background: var(--color-surface-alt, #f8fafc); }

.sr-split[b-8hvng13sgl]  .sr-test-kv { margin: 0; }

.sr-split[b-8hvng13sgl]  .sr-test-kv > div {
    display: grid;
    grid-template-columns: minmax(6rem, 40%) minmax(0, 1fr);
    gap: 0.5rem;
    padding: 0.1rem 0;
}

.sr-split[b-8hvng13sgl]  .sr-test-kv dt { color: var(--color-text-secondary); word-break: break-all; }
.sr-split[b-8hvng13sgl]  .sr-test-kv dd { margin: 0; word-break: break-word; }

/* ── Expectations and drift (#844, SR4.4) ─────────────────────────────────
   The rail now carries six result tabs in one 360px column, so the strip wraps
   rather than overflowing, and everything below it borrows the bench's existing
   table, badge and empty-state shapes — a baseline is a diff an operator agreed
   with, and it should look like one. */

.sr-split[b-8hvng13sgl]  .sr-test-tabs { flex-wrap: wrap; row-gap: 0.125rem; }
.sr-split[b-8hvng13sgl]  .sr-test-tabs .sr-tab { padding: 0.35rem 0.5rem; font-size: 0.75rem; }

.sr-split[b-8hvng13sgl]  .sr-test-run-buttons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

/* The pin column is a control, not data: it never wins the table's spare width. */
.sr-split[b-8hvng13sgl]  .sr-test-pin-cell { white-space: nowrap; width: 1%; }

/* ── The two-step baseline removal ──────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-confirm {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.5rem;
    padding: 0.5rem 0.625rem;
    border-left: 3px solid #b91c1c;
    border-radius: 0.25rem;
    background: #fef2f2;
    color: #7f1d1d;
    font-size: 0.75rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-confirm-actions {
    display: inline-flex;
    gap: 0.375rem;
    flex: none;
}

/* ── Run all: the verdict badges ────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-test-state {
    display: inline-block;
    padding: 0.02rem 0.45rem;
    border-radius: 100px;
    border: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-surface-alt, #f8fafc);
    color: var(--color-text-secondary);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-test-state-match { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
.sr-split[b-8hvng13sgl]  .sr-test-state-drift { border-color: #fde68a; background: #fffbeb; color: #92400e; }
.sr-split[b-8hvng13sgl]  .sr-test-state-error { border-color: #fecaca; background: #fef2f2; color: #b91c1c; }
.sr-split[b-8hvng13sgl]  .sr-test-state-none  { border-color: var(--color-border, #e2e8f0); background: #f8fafc; color: #475569; }

/* Loud is the one thing on this rail allowed to shout: a cell an operator called
   correct has moved, so it reads as an alarm rather than as another chip. */
.sr-split[b-8hvng13sgl]  .sr-test-loud {
    display: inline-block;
    margin-left: 0.25rem;
    padding: 0.02rem 0.45rem;
    border-radius: 100px;
    border: 1px solid #fca5a5;
    background: #b91c1c;
    color: #fff;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.sr-split[b-8hvng13sgl]  .sr-test-flag {
    display: inline-block;
    margin-left: 0.25rem;
    padding: 0.02rem 0.45rem;
    border-radius: 100px;
    border: 1px solid #fde68a;
    background: #fffbeb;
    color: #92400e;
    font-size: 0.625rem;
    font-weight: 600;
    white-space: nowrap;
}

/* A comparison badge sits in the same family as a diff kind, one step warmer when it moved. */
.sr-split[b-8hvng13sgl]  .sr-test-cmp-match { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
.sr-split[b-8hvng13sgl]  .sr-test-cmp-moved { border-color: #fde68a; background: #fffbeb; color: #92400e; }

/* The nested cell table inside an unfolded Run all row is a level down, not a peer. */
.sr-split[b-8hvng13sgl]  .sr-test-runall .sr-test-ledger-payload > td { padding: 0.5rem 0.625rem; }
.sr-split[b-8hvng13sgl]  .sr-test-runall .sr-test-notes { margin-bottom: 0.5rem; }

.sr-split[b-8hvng13sgl]  .sr-test-expectations .sr-test-block + .sr-test-block { margin-top: 1rem; }

/* A review select is a control inside a dense table: it takes its own width, not the column's. */
.sr-split[b-8hvng13sgl]  .sr-test-table td select {
    font-size: 0.6875rem;
    padding: 0.1rem 0.25rem;
    max-width: 9rem;
}

/* ── Replay and Run on engine (#849, SR7.1; #850, SR7.2) ──────────────────
   Both tabs are step-by-step rather than a single grid, so the shapes borrowed
   from the rest of the bench — stats, tables, empty states — are separated by
   real space and the only new pieces are the two the bench had no need of
   before: a radio group, and a checkbox that gates a consequence. */

.sr-split[b-8hvng13sgl]  .sr-test-replay .sr-test-block + .sr-test-block,
.sr-split[b-8hvng13sgl]  .sr-test-engine .sr-test-block + .sr-test-block { margin-top: 1.125rem; }

.sr-split[b-8hvng13sgl]  .sr-test-replay-result { margin-top: 0.5rem; }

.sr-split[b-8hvng13sgl]  .sr-test-replay-result .sr-test-block + .sr-test-block { margin-top: 0.875rem; }

/* A fieldset here is a grouping, not a frame — the rail has boxes enough. */
.sr-split[b-8hvng13sgl]  .sr-test-engine fieldset {
    border: 0;
    margin: 0 0 0.75rem;
    padding: 0;
    min-inline-size: 0;
}

.sr-split[b-8hvng13sgl]  .sr-test-engine legend { padding: 0; }

.sr-split[b-8hvng13sgl]  .sr-test-choice {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.sr-split[b-8hvng13sgl]  .sr-test-choice label,
.sr-split[b-8hvng13sgl]  .sr-test-engine .sr-test-field > label:not(.sr-test-label) {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.75rem;
    line-height: 1.35;
    cursor: pointer;
}

.sr-split[b-8hvng13sgl]  .sr-test-choice input[type="radio"],
.sr-split[b-8hvng13sgl]  .sr-test-engine input[type="checkbox"] {
    margin: 0.15rem 0 0;
    flex: none;
}

/* The refusal box reuses the destructive-confirm shape, stacked rather than split:
   a refusal is a reason plus the writes that caused it, not a pair of buttons. */
.sr-split[b-8hvng13sgl]  .sr-test-engine .sr-test-confirm {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
}

.sr-split[b-8hvng13sgl]  .sr-test-engine .sr-test-confirm .sr-test-notes { margin: 0.25rem 0 0; }

/* ── Assist rail (#854, SR10.1) ───────────────────────────────────────────
   The fourth rail is a conversation, so it is the one place in the studio that
   reads top-to-bottom rather than as a form. The transcript scrolls in a
   column-reverse box — newest turn nearest the composer, no JS to pin it — and
   the composer stays put at the foot of the rail. The change card borrows the
   test bench's density and the checks rail's severity colours so a proposal
   looks like the rest of the studio's evidence, not like a chat toy. */

.sr-split[b-8hvng13sgl]  .sr-assist {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    font-size: 0.8125rem;
    min-height: 0;
}

.sr-split[b-8hvng13sgl]  .sr-assist-head {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-assist-heading {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
    margin: 0;
}

.sr-split[b-8hvng13sgl]  .sr-assist-sub {
    font-size: 0.6875rem;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-assist-new { margin-left: auto; }

.sr-split[b-8hvng13sgl]  .sr-assist-messages {
    display: flex;
    flex-direction: column-reverse;
    gap: 0.5rem;
    overflow-y: auto;
    max-height: 56vh;
    min-height: 12rem;
    padding-right: 0.2rem;
}

.sr-split[b-8hvng13sgl]  .sr-assist-bubble {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.5rem;
    padding: 0.5rem 0.625rem;
    max-width: 100%;
}

.sr-split[b-8hvng13sgl]  .sr-assist-user {
    background: #eff6ff;
    border-color: #dbeafe;
    align-self: flex-end;
}

.sr-split[b-8hvng13sgl]  .sr-assist-assistant {
    background: var(--color-surface-alt, #f8fafc);
    border-color: #eef2f7;
    align-self: flex-start;
}

.sr-split[b-8hvng13sgl]  .sr-assist-error {
    background: #fef2f2;
    border-color: #fecaca;
}

.sr-split[b-8hvng13sgl]  .sr-assist-text {
    margin: 0;
    line-height: 1.45;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.sr-split[b-8hvng13sgl]  .sr-assist-thinking {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-assist-spinner {
    width: 12px;
    height: 12px;
    border: 2px solid #cbd5e1;
    border-top-color: #2563eb;
    border-radius: 50%;
    display: inline-block;
    animation: sr-assist-spin-b-8hvng13sgl 0.7s linear infinite;
}

@keyframes sr-assist-spin-b-8hvng13sgl { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
    .sr-split[b-8hvng13sgl]  .sr-assist-spinner { animation: none; }
}

.sr-split[b-8hvng13sgl]  .sr-assist-event {
    margin: 0;
    text-align: center;
    font-size: 0.6875rem;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-assist-empty {
    background: var(--color-surface-alt, #f8fafc);
    border: 1px dashed var(--color-border, #e2e8f0);
    border-radius: 0.25rem;
    padding: 0.625rem 0.75rem;
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-assist-empty p { margin: 0 0 0.375rem; }
.sr-split[b-8hvng13sgl]  .sr-assist-empty p:last-child { margin: 0.375rem 0 0; }
.sr-split[b-8hvng13sgl]  .sr-assist-empty ul { margin: 0; padding-left: 1.1rem; }
.sr-split[b-8hvng13sgl]  .sr-assist-empty li { margin: 0.125rem 0; }

/* ── The change card ─────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-assist-card {
    margin-top: 0.5rem;
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.375rem;
    padding: 0.5rem 0.625rem;
}

.sr-split[b-8hvng13sgl]  .sr-assist-card-note {
    margin: 0 0 0.25rem;
    font-weight: 600;
    color: var(--color-text-primary, #1e293b);
}

.sr-split[b-8hvng13sgl]  .sr-assist-card-block {
    margin: 0 0 0.375rem;
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-assist-card-body { position: relative; }

.sr-split[b-8hvng13sgl]  .sr-assist-card-value {
    margin: 0;
    max-height: 16rem;
    overflow: auto;
    background: var(--color-surface-alt, #f8fafc);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 0.25rem;
    padding: 0.5rem;
    font-size: 0.6875rem;
    line-height: 1.5;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.sr-split[b-8hvng13sgl]  .sr-assist-card-more { padding: 0.125rem 0; font-size: 0.6875rem; }

.sr-split[b-8hvng13sgl]  .sr-assist-card-lint {
    margin: 0.375rem 0 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--sr-sev, var(--color-text-secondary));
}

.sr-split[b-8hvng13sgl]  .sr-assist-lint-clean { --sr-sev: #15803d; }

.sr-split[b-8hvng13sgl]  .sr-assist-card-findings {
    margin: 0.25rem 0 0;
    padding-left: 1.1rem;
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-assist-card-finding { margin: 0.125rem 0; }

.sr-split[b-8hvng13sgl]  .sr-assist-card-actions {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin-top: 0.5rem;
}

.sr-split[b-8hvng13sgl]  .sr-assist-card-state { font-size: 0.75rem; color: var(--color-text-secondary); }
.sr-split[b-8hvng13sgl]  .sr-assist-applied { color: #15803d; font-weight: 600; }

/* ── The composer ────────────────────────────────────────────────────────── */

.sr-split[b-8hvng13sgl]  .sr-assist-input {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 0.625rem;
}

.sr-split[b-8hvng13sgl]  .sr-assist-label {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
}

.sr-split[b-8hvng13sgl]  .sr-assist-row {
    display: flex;
    gap: 0.375rem;
}

.sr-split[b-8hvng13sgl]  .sr-assist-row input {
    flex: 1;
    min-width: 0;
    font-size: 0.8125rem;
}
/* /Components/Pages/StagePresetEdit.razor.rz.scp.css */
/* Compact breadcrumb above the editor title — keeps the operator oriented back to the
   Stages list without a full nav rail. */
.breadcrumb[b-csqusi4bio] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.breadcrumb a[b-csqusi4bio] {
    color: #475569;
    text-decoration: none;
}

.breadcrumb a:hover[b-csqusi4bio] {
    text-decoration: underline;
}

/* Footer action bar: primary save on the left, destructive delete pushed to the right. */
.form-actions[b-csqusi4bio] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
}

/* Muted disabled-stage chip — gives the "disabled" badge a calm grey rather than the
   default badge shape inheriting page colour. */
.badge-muted[b-csqusi4bio] {
    background: #f1f5f9;
    color: #475569;
}

/* Outline variant of the danger button so a one-click "Delete preset" reads as available
   but not alarming until confirmed. */
.btn-danger-outline[b-csqusi4bio] {
    background: transparent;
    border: 1px solid #fca5a5;
    color: #b91c1c;
}

.btn-danger-outline:hover[b-csqusi4bio] {
    background: #fef2f2;
    border-color: #f87171;
}
/* /Components/Pages/StagePresets.razor.rz.scp.css */
/* Link-styled delete trigger inside the per-row action area — mirrors Classifiers.razor.css
   so destructive row actions read identically across the Configure pages. */
.table-link-danger[b-b7rnay6e7d] {
    color: #b91c1c;
}

.table-link-danger:hover[b-b7rnay6e7d] {
    color: #7f1d1d;
    text-decoration: underline;
}

/* Compact status chips for the table. Same rounded-pill shape and muted palette as the
   global status badges, kept local so the Stages list stays self-contained. */
.pill[b-b7rnay6e7d] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.pill-muted[b-b7rnay6e7d]   { background: #f1f5f9; color: #475569; }
.pill-success[b-b7rnay6e7d] { background: #dcfce7; color: #166534; }
.pill-warning[b-b7rnay6e7d] { background: #fef3c7; color: #92400e; }
/* /Components/Pages/SystemHealth.razor.rz.scp.css */
/* System health (/work/system). Restrained by design: this page is read when something is wrong,
   so colour is reserved for the findings and everything else stays quiet and scannable. */

.sys-header-actions[b-nhfstng0a9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sys-window-picker[b-nhfstng0a9] {
    display: inline-flex;
    gap: 0.25rem;
    margin-right: 0.25rem;
}

.sys-verdict[b-nhfstng0a9] {
    margin-bottom: 1rem;
}

/* ── Findings ─────────────────────────────────────────────────────────────── */

.sys-reasons[b-nhfstng0a9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.sys-reason[b-nhfstng0a9] {
    padding: 0.85rem 1rem;
    border-left: 3px solid var(--border, #e2e8f0);
}

.sys-reason--critical[b-nhfstng0a9] { border-left-color: var(--danger, #dc2626); }
.sys-reason--warning[b-nhfstng0a9] { border-left-color: var(--warning, #d97706); }
.sys-reason--info[b-nhfstng0a9] { border-left-color: var(--accent, #6366f1); }

.sys-reason-head[b-nhfstng0a9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.sys-reason-title[b-nhfstng0a9] {
    font-weight: 600;
    color: var(--text-strong, #0f172a);
}

.sys-reason-detail[b-nhfstng0a9] {
    margin: 0;
    font-size: 0.85rem;
    line-height: 1.5;
    color: var(--text-muted, #64748b);
}

/* ── Identity strip ───────────────────────────────────────────────────────── */

.sys-identity[b-nhfstng0a9] {
    padding: 0.9rem 1.25rem;
    margin-bottom: 1.25rem;
}

.sys-identity-grid[b-nhfstng0a9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.75rem 1.5rem;
    margin: 0;
}

.sys-identity-grid dt[b-nhfstng0a9] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted, #64748b);
    margin-bottom: 0.15rem;
}

.sys-identity-grid dd[b-nhfstng0a9] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--text-strong, #0f172a);
    overflow-wrap: anywhere;
}

/* ── Metric cards ─────────────────────────────────────────────────────────── */

.sys-card-grid[b-nhfstng0a9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.sys-metric-card[b-nhfstng0a9] {
    padding: 1.1rem 1.25rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 108px;
}

.sys-metric-title[b-nhfstng0a9] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted, #64748b);
}

.sys-metric-value[b-nhfstng0a9] {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--text-strong, #0f172a);
    font-variant-numeric: tabular-nums;
}

.sys-metric-sub[b-nhfstng0a9] {
    font-size: 0.78rem;
    line-height: 1.4;
    margin-top: auto;
}

.sys-tone-neutral[b-nhfstng0a9] { border-left: 3px solid var(--border, #e2e8f0); }
.sys-tone-good[b-nhfstng0a9] { border-left: 3px solid var(--success, #16a34a); }
.sys-tone-warn[b-nhfstng0a9] { border-left: 3px solid var(--warning, #d97706); }
.sys-tone-bad[b-nhfstng0a9] { border-left: 3px solid var(--danger, #dc2626); }
.sys-tone-bad .sys-metric-value[b-nhfstng0a9] { color: var(--danger, #dc2626); }

/* ── Charts ───────────────────────────────────────────────────────────────── */

.sys-chart-grid[b-nhfstng0a9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.sys-chart-card[b-nhfstng0a9] {
    padding: 0.9rem 1.1rem 0.75rem;
}

.sys-chart-head[b-nhfstng0a9] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.sys-chart-title[b-nhfstng0a9] {
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--text-muted, #64748b);
    margin: 0;
}

.sys-chart-legend[b-nhfstng0a9] {
    display: flex;
    gap: 0.75rem;
    font-size: 0.75rem;
    color: var(--text-muted, #64748b);
}

.sys-legend-item[b-nhfstng0a9] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.sys-legend-swatch[b-nhfstng0a9] {
    width: 0.65rem;
    height: 0.15rem;
    border-radius: 999px;
    background: currentColor;
}

.sys-chart[b-nhfstng0a9] {
    width: 100%;
    height: 110px;
    display: block;
    overflow: visible;
}

.sys-grid-line[b-nhfstng0a9] {
    stroke: var(--border, #e2e8f0);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.sys-series[b-nhfstng0a9] {
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Two series per chart at most — the primary reading and its context. */
.sys-series-a[b-nhfstng0a9] { stroke: var(--accent, #6366f1); color: var(--accent, #6366f1); }
.sys-series-b[b-nhfstng0a9] { stroke: var(--text-muted, #94a3b8); color: var(--text-muted, #94a3b8); }

/* The vertical ceiling sits on the top gridline rather than under the plot, where it would read as
   part of the time axis. Overlaid in HTML so the stretched viewBox cannot distort it. */
.sys-chart-plot[b-nhfstng0a9] {
    position: relative;
}

.sys-chart-ceiling[b-nhfstng0a9] {
    position: absolute;
    top: 0;
    left: 0;
    font-size: 0.68rem;
    line-height: 1;
    color: var(--text-muted, #94a3b8);
    background: var(--surface, #fff);
    padding-right: 0.25rem;
    pointer-events: none;
}

.sys-chart-axis[b-nhfstng0a9] {
    display: flex;
    justify-content: space-between;
    font-size: 0.7rem;
    color: var(--text-muted, #94a3b8);
    margin-top: 0.15rem;
}

.sys-chart-empty[b-nhfstng0a9] {
    font-size: 0.8rem;
    min-height: 110px;
    display: flex;
    align-items: center;
}

.sys-chart-caption[b-nhfstng0a9] {
    font-size: 0.72rem;
    line-height: 1.4;
    margin: 0.4rem 0 0;
}

/* ── Work in process ──────────────────────────────────────────────────────── */

.sys-work[b-nhfstng0a9] {
    margin-bottom: 1.25rem;
}

.sys-pipeline-strip[b-nhfstng0a9] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.85rem 1.25rem 0;
}

.sys-pipeline-chip[b-nhfstng0a9] {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    padding: 0.3rem 0.65rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 999px;
    background: var(--surface-sunken, #f8fafc);
    font-size: 0.8rem;
}

.sys-pipeline-count[b-nhfstng0a9] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-strong, #0f172a);
}

.sys-pipeline-name[b-nhfstng0a9] {
    color: var(--text-muted, #64748b);
}

/* A document nobody has touched for longer than the ageing threshold. */
.sys-row-stale td[b-nhfstng0a9] {
    background: color-mix(in srgb, var(--warning, #d97706) 6%, transparent);
}

.sys-sweep p[b-nhfstng0a9] {
    margin: 0;
    font-size: 0.8rem;
}

.sys-footnote[b-nhfstng0a9] {
    font-size: 0.75rem;
    line-height: 1.6;
    margin-top: 1rem;
}
/* /Components/Pages/TabularProfileEditor.razor.rz.scp.css */
/* Paired column mappers (lookup-enrich "Match on" / "Bring back"). */

.pair-group[b-g66rbmbwbz] {
    margin: 0.75rem 0;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    background: var(--color-surface-alt, #fbfbfd);
}

.pair-group-title[b-g66rbmbwbz] {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--color-text-secondary, #64748b);
}

/* Two inputs + arrow + remove, aligned in a grid so the header captions
   sit directly above their columns. */
.pair-row[b-g66rbmbwbz] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 1.25rem minmax(0, 1fr) 2rem;
    align-items: center;
    gap: 0.5rem;
    margin: 0.35rem 0;
}

.pair-head[b-g66rbmbwbz] {
    margin-bottom: 0.15rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-text-secondary, #64748b);
}

.pair-arrow[b-g66rbmbwbz] {
    text-align: center;
    color: var(--color-text-secondary, #94a3b8);
}

.pair-remove[b-g66rbmbwbz] {
    padding: 0.35rem 0.55rem;
}
/* /Components/Pages/TemplateMarketplace.razor.rz.scp.css */
/* Strategy 3.14 — Marketplace & Templates page. */

.filter-row[b-qivlr4vkl3] {
    display: flex;
    gap: 0.8rem;
    align-items: flex-end;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.filter-row .form-label[b-qivlr4vkl3] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin: 0;
    min-width: 200px;
}

.template-grid[b-qivlr4vkl3] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 0.8rem;
}

.template-card[b-qivlr4vkl3] {
    background: white;
    border: 1px solid var(--border-soft, #e1e6ed);
    border-radius: 8px;
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.template-card-head[b-qivlr4vkl3] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.template-card-head h2[b-qivlr4vkl3] {
    margin: 0;
    font-size: 1.05rem;
}

.template-vendor[b-qivlr4vkl3] {
    margin: 0;
    font-size: 0.85rem;
}

.template-description[b-qivlr4vkl3] {
    margin: 0;
    color: var(--text-strong, #232a33);
    font-size: 0.92rem;
    line-height: 1.4;
}

.template-fields[b-qivlr4vkl3] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    font-size: 0.78rem;
}

.template-fields code[b-qivlr4vkl3] {
    background: var(--surface-quiet, #f5f7fa);
    padding: 0.1rem 0.4rem;
    border-radius: 3px;
}

.template-actions[b-qivlr4vkl3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: auto;
}

.template-verified[b-qivlr4vkl3] {
    font-size: 0.78rem;
}
/* /Components/Pages/Upload.razor.rz.scp.css */
/* ── Pipeline Dock — page shell (Backlog #59) ─────────────────────────── */

.dock-page[b-1tr986xmng] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-bottom: 2.5rem;
}

.dock-tabs[b-1tr986xmng] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: -0.25rem;
}

.dock-tab[b-1tr986xmng] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.6rem 1rem;
    font-family: var(--font-subtitle);
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
}

.dock-tab:hover[b-1tr986xmng] {
    color: var(--color-text-primary);
}

.dock-tab.is-active[b-1tr986xmng] {
    color: var(--color-brand-teal);
    border-bottom-color: var(--color-brand-teal);
    font-weight: 600;
}

.dock-page-header[b-1tr986xmng] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.dock-page-titles h1[b-1tr986xmng] {
    margin: 0;
}

.dock-page-titles .page-subtitle[b-1tr986xmng] {
    margin: 0.25rem 0 0;
    max-width: 56ch;
}

.dock-page-docmx[b-1tr986xmng] {
    align-self: flex-end;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    color: var(--color-text-primary);
    padding: 0.55rem 0.9rem;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: background 120ms ease, border-color 120ms ease;
}

.dock-page-docmx:hover[b-1tr986xmng] {
    background: var(--color-surface-raised);
    border-color: var(--color-brand);
}

.dock-page-docmx.is-open[b-1tr986xmng] {
    background: #eef4fb;
    border-color: var(--color-brand);
    color: var(--color-brand);
}

.dock-page-docmx-caret[b-1tr986xmng] {
    font-size: 0.7rem;
    opacity: 0.7;
}

.dock-toolbar[b-1tr986xmng] {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    gap: 0.5rem;
    align-items: center;
    padding: 0.6rem 0;
    background: linear-gradient(to bottom, var(--color-surface-raised) 80%, rgba(248, 250, 252, 0));
}

.dock-search[b-1tr986xmng] {
    flex: 1;
    max-width: 28rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    font-size: 0.9rem;
    color: var(--color-text-primary);
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.dock-search:focus[b-1tr986xmng] {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(7, 70, 132, 0.15);
}

.dock-search-clear[b-1tr986xmng] {
    background: transparent;
    border: 0;
    font-size: 1.1rem;
    color: var(--color-text-secondary);
    cursor: pointer;
    padding: 0 0.4rem;
}

.dock-search-clear:hover[b-1tr986xmng] {
    color: var(--color-brand);
}

.dock-docmx-drawer[b-1tr986xmng] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    overflow: hidden;
    animation: dock-drawer-in-b-1tr986xmng 200ms cubic-bezier(0.2, 0.8, 0.4, 1);
}

.dock-docmx-drawer-body[b-1tr986xmng] {
    padding: 1.1rem 1.25rem 1.25rem;
}

.dock-docmx-drawer h2[b-1tr986xmng] {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-family: var(--font-subtitle);
}

.dock-docmx-row[b-1tr986xmng] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-end;
    margin-top: 0.6rem;
    flex-wrap: wrap;
}

.dock-docmx-row label[b-1tr986xmng] {
    display: block;
    font-size: 0.8rem;
    color: var(--color-text-secondary);
    margin-bottom: 0.25rem;
}

.dock-docmx-input[b-1tr986xmng] {
    width: 12rem;
}

.dock-muted[b-1tr986xmng] {
    color: var(--color-text-secondary);
    font-size: 0.85rem;
    margin: 0;
}

@keyframes dock-drawer-in-b-1tr986xmng {
    from { transform: translateY(-4px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}
/* /Components/Pages/Work.razor.rz.scp.css */
/* ── Dashboard header ── */

.dashboard-header[b-ffrnhu4mtu] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.75rem;
}

.dashboard-header-controls[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pipeline-picker[b-ffrnhu4mtu] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.3rem 0.6rem;
    box-shadow: var(--shadow-card);
}

.pipeline-picker-label[b-ffrnhu4mtu] {
    font-family: var(--font-subtitle);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
}

.pipeline-picker select[b-ffrnhu4mtu] {
    border: none;
    background: transparent;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    cursor: pointer;
    padding: 0.1rem 0.15rem;
    max-width: 16rem;
}

.pipeline-picker select:focus-visible[b-ffrnhu4mtu] {
    outline: 2px solid var(--color-brand);
    outline-offset: 1px;
    border-radius: 3px;
}

.range-selector[b-ffrnhu4mtu] {
    display: inline-flex;
    align-items: center;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.25rem;
    box-shadow: var(--shadow-card);
}

.range-selector button[b-ffrnhu4mtu] {
    border: none;
    background: transparent;
    padding: 0.4rem 0.85rem;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    cursor: pointer;
    border-radius: calc(var(--radius) * 0.65);
    transition: background 0.15s, color 0.15s;
}

.range-selector button:hover[b-ffrnhu4mtu] {
    color: var(--color-text-primary);
}

.range-selector button.is-active[b-ffrnhu4mtu] {
    background: var(--color-brand);
    color: #fff;
}

/* ── KPI cards ── */

.dashboard-cards[b-ffrnhu4mtu] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 1100px) {
    .dashboard-cards[b-ffrnhu4mtu] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .dashboard-cards[b-ffrnhu4mtu] { grid-template-columns: 1fr; }
}

.stat-card[b-ffrnhu4mtu] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.25rem 1.25rem 1.1rem;
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
    position: relative;
    overflow: hidden;
}

.stat-card[b-ffrnhu4mtu]::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--color-brand-teal);
    opacity: 0.85;
}

.stat-card:hover[b-ffrnhu4mtu] {
    border-color: var(--color-brand-teal);
    box-shadow: 0 4px 12px rgba(7, 70, 132, 0.08);
}

.stat-card-head[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.stat-card .stat-label[b-ffrnhu4mtu] {
    font-family: var(--font-subtitle);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
}

.stat-card .stat-icon[b-ffrnhu4mtu] {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: rgba(14, 165, 198, 0.1);
    color: var(--color-brand);
}

.stat-card .stat-icon svg[b-ffrnhu4mtu] {
    width: 16px;
    height: 16px;
}

.stat-card .stat-value[b-ffrnhu4mtu] {
    font-family: var(--font-title);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin-top: 0.1rem;
}

.stat-card .stat-sub[b-ffrnhu4mtu] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    margin-top: 0.15rem;
}

/* Alert variant for exceptions card */
.stat-card--alert[b-ffrnhu4mtu]::before {
    background: var(--color-down);
}

.stat-card--alert .stat-icon[b-ffrnhu4mtu] {
    background: rgba(239, 68, 68, 0.1);
    color: var(--color-down);
}

.stat-card--ok[b-ffrnhu4mtu]::before {
    background: var(--color-healthy);
}

.stat-card--ok .stat-icon[b-ffrnhu4mtu] {
    background: rgba(34, 197, 94, 0.1);
    color: var(--color-healthy);
}

/* ── Main grid (chart + side panel) ── */

.dashboard-grid[b-ffrnhu4mtu] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 1100px) {
    .dashboard-grid[b-ffrnhu4mtu] { grid-template-columns: 1fr; }
}

/* ── Chart card ── */

.chart-card .card-header[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.chart-meta[b-ffrnhu4mtu] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}

.chart-container[b-ffrnhu4mtu] {
    padding: 1rem 1.5rem 1.25rem;
}

.chart-empty[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 220px;
    color: var(--color-text-secondary);
    font-size: 0.875rem;
}

.chart-legend[b-ffrnhu4mtu] {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border);
}

.legend-item[b-ffrnhu4mtu] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}

.legend-dot[b-ffrnhu4mtu] {
    width: 10px;
    height: 10px;
    border-radius: 2px;
    display: inline-block;
}

/* ── Quick stats side panel ── */

.quick-stats[b-ffrnhu4mtu] {
    display: flex;
    flex-direction: column;
}

.quick-stats .card-body[b-ffrnhu4mtu] {
    padding: 0.5rem 0;
}

.quick-stat-row[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1.5rem;
    border-bottom: 1px solid var(--color-border);
}

.quick-stat-row:last-child[b-ffrnhu4mtu] {
    border-bottom: none;
}

.quick-stat-label[b-ffrnhu4mtu] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.quick-stat-label .label[b-ffrnhu4mtu] {
    font-size: 0.875rem;
    color: var(--color-text-primary);
    font-weight: 500;
}

.quick-stat-label .meta[b-ffrnhu4mtu] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

.quick-stat-value[b-ffrnhu4mtu] {
    font-family: var(--font-title);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.quick-stat-value.muted[b-ffrnhu4mtu] {
    color: var(--color-text-secondary);
    font-weight: 600;
}

/* ── Two-column row (insights + accuracy) ── */

.insights-grid[b-ffrnhu4mtu] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

@media (max-width: 900px) {
    .insights-grid[b-ffrnhu4mtu] { grid-template-columns: 1fr; }
}

/* ── Insight items ── */

.insight-list[b-ffrnhu4mtu] {
    padding: 0.5rem 0;
}

.insight-item[b-ffrnhu4mtu] {
    padding: 0.85rem 1.5rem;
    border-bottom: 1px solid var(--color-border);
}

.insight-item:last-child[b-ffrnhu4mtu] {
    border-bottom: none;
}

.insight-item strong[b-ffrnhu4mtu] {
    font-size: 0.875rem;
    color: var(--color-text-primary);
    font-weight: 600;
    display: block;
    margin-bottom: 0.2rem;
}

.insight-item p[b-ffrnhu4mtu] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.5;
}

/* ── Accuracy badges (extends app.css .badge) ── */

.badge-success[b-ffrnhu4mtu] { background: #dcfce7; color: #166534; }
.badge-warning[b-ffrnhu4mtu] { background: #fef3c7; color: #92400e; }
.badge-danger[b-ffrnhu4mtu]  { background: #fee2e2; color: #991b1b; }

.section-heading[b-ffrnhu4mtu] {
    font-family: var(--font-subtitle);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
    margin: 0 0 0.6rem;
    padding: 0 1.5rem;
}

.section-heading + .data-table[b-ffrnhu4mtu] {
    margin-bottom: 1rem;
}

.declining-list[b-ffrnhu4mtu] {
    padding: 0 0 0.5rem;
}

/* ── Empty / loading state ── */

.dashboard-loading[b-ffrnhu4mtu],
.dashboard-empty[b-ffrnhu4mtu] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 3rem 1.5rem;
    text-align: center;
    color: var(--color-text-secondary);
    box-shadow: var(--shadow-card);
}

.dashboard-loading .spinner[b-ffrnhu4mtu] {
    margin: 0 auto 0.75rem;
}

/* Cards spacing under main grid */
.dashboard-table-card[b-ffrnhu4mtu] {
    margin-bottom: 1.5rem;
}

/* ── Fleet console (A-1.5a) ───────────────────────────────────────────────
   Operational view on /work — refreshed every 30 s. Sits above the analytics
   roll-up so the in-flight strip is the first thing operators see. */

.fleet-console[b-ffrnhu4mtu] {
    margin-bottom: 2rem;
}

.fleet-console-header[b-ffrnhu4mtu] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.fleet-console-header .section-heading[b-ffrnhu4mtu] {
    margin: 0;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
}

.fleet-console-meta[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.8125rem;
}

.fleet-strip[b-ffrnhu4mtu] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.fleet-stage-tile[b-ffrnhu4mtu] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.875rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 70px;
    transition: border-color 120ms ease, transform 120ms ease;
}

.fleet-stage-tile:hover[b-ffrnhu4mtu] {
    border-color: var(--color-brand-teal);
    transform: translateY(-1px);
}

.fleet-stage-tile--skeleton[b-ffrnhu4mtu] {
    background: linear-gradient(90deg, var(--color-surface) 0%, var(--color-surface-raised) 50%, var(--color-surface) 100%);
    background-size: 200% 100%;
    animation: fleet-skeleton-b-ffrnhu4mtu 1.4s ease-in-out infinite;
}

@keyframes fleet-skeleton-b-ffrnhu4mtu {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.fleet-stage-tile-label[b-ffrnhu4mtu] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fleet-stage-tile-count[b-ffrnhu4mtu] {
    font-family: var(--font-title);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.fleet-stage-tile--empty .fleet-stage-tile-count[b-ffrnhu4mtu] {
    color: var(--color-text-secondary);
}

.fleet-stage-tile--total[b-ffrnhu4mtu] {
    background: var(--color-brand);
    border-color: var(--color-brand);
}

.fleet-stage-tile--total .fleet-stage-tile-label[b-ffrnhu4mtu],
.fleet-stage-tile--total .fleet-stage-tile-count[b-ffrnhu4mtu] {
    color: white;
}

.fleet-tiles[b-ffrnhu4mtu] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.fleet-tile[b-ffrnhu4mtu] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.875rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.fleet-tile-label[b-ffrnhu4mtu] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.fleet-tile-value[b-ffrnhu4mtu] {
    font-family: var(--font-title);
    font-size: 1.5rem;
    font-weight: 700;
}

.fleet-tile-meta[b-ffrnhu4mtu] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

a.fleet-tile:hover[b-ffrnhu4mtu] {
    border-color: var(--color-brand-teal);
}

.fleet-tile--alert[b-ffrnhu4mtu] {
    border-color: var(--color-degraded);
    background: #fff8eb;
}

.fleet-tile--alert .fleet-tile-value[b-ffrnhu4mtu] {
    color: #b45309;
}

.fleet-feeds[b-ffrnhu4mtu] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.fleet-feed-card[b-ffrnhu4mtu] {
    margin: 0;
}

.fleet-feed-card .card-header[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.fleet-feed-card .card-link[b-ffrnhu4mtu] {
    font-size: 0.8125rem;
}

.data-table.data-table--compact th[b-ffrnhu4mtu],
.data-table.data-table--compact td[b-ffrnhu4mtu] {
    padding: 0.4rem 0.65rem;
    font-size: 0.8125rem;
}

@media (max-width: 1100px) {
    .fleet-strip[b-ffrnhu4mtu] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .fleet-feeds[b-ffrnhu4mtu] {
        grid-template-columns: 1fr;
    }
}

/* ── Global document search ── */

.dashboard-search[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.45rem 0.6rem 0.45rem 0.85rem;
    box-shadow: var(--shadow-card);
    margin-bottom: 1.75rem;
}

.dashboard-search-icon[b-ffrnhu4mtu] {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    color: var(--color-text-secondary);
}

.dashboard-search-input[b-ffrnhu4mtu] {
    flex: 1 1 auto;
    border: none;
    background: transparent;
    font-family: var(--font-body);
    font-size: 0.95rem;
    color: var(--color-text-primary);
    padding: 0.25rem 0;
}

.dashboard-search-input:focus[b-ffrnhu4mtu] {
    outline: none;
}

/* ── Drill cards ── */

.dashboard-drill[b-ffrnhu4mtu] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 2rem;
}

@media (max-width: 1100px) {
    .dashboard-drill[b-ffrnhu4mtu] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .dashboard-drill[b-ffrnhu4mtu] { grid-template-columns: 1fr; }
}

.drill-card[b-ffrnhu4mtu] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.9rem 1rem;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-card);
    transition: border-color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.drill-card:hover[b-ffrnhu4mtu] {
    border-color: var(--color-brand-teal);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(7, 70, 132, 0.08);
}

.drill-card-icon[b-ffrnhu4mtu] {
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(14, 165, 198, 0.1);
    color: var(--color-brand);
}

.drill-card-icon svg[b-ffrnhu4mtu] {
    width: 18px;
    height: 18px;
}

.drill-card-body[b-ffrnhu4mtu] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.drill-card-title[b-ffrnhu4mtu] {
    font-family: var(--font-subtitle);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-text-primary);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.drill-card-count[b-ffrnhu4mtu] {
    font-family: var(--font-body);
    font-size: 0.7rem;
    font-weight: 700;
    color: #b45309;
    background: #fff8eb;
    border-radius: 999px;
    padding: 0.05rem 0.45rem;
    white-space: nowrap;
}

.drill-card-meta[b-ffrnhu4mtu] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    line-height: 1.35;
}

.drill-card--alert[b-ffrnhu4mtu] {
    border-color: var(--color-degraded);
}

.drill-card--alert .drill-card-icon[b-ffrnhu4mtu] {
    background: #fff8eb;
    color: #b45309;
}
/* /Components/Pages/WorkDate.razor.rz.scp.css */
/* Intentionally empty. Dashboard primitives (.range-selector, .stat-card,
   .dashboard-cards, .dashboard-loading, .dashboard-table-card, .chart-meta)
   live in wwwroot/app.css so the cockpit, /work/date, and the pipeline /
   capture-type / entity drill-downs share one definition. */
/* /Components/Pages/WorkforceRegistry.razor.rz.scp.css */
/* Digital Workforce Console (#447) — fleet table, kind chips and the drill-down drawer.
   Pill classes are re-declared here because Blazor scopes component CSS (mirrors AutonomyGrades). */

.pill[b-avn2gjmmhw] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.pill-monitor[b-avn2gjmmhw]  { background: #f1f5f9; color: #475569; }
.pill-enforce[b-avn2gjmmhw]  { background: #dbeafe; color: #1e40af; }
.pill-template[b-avn2gjmmhw] { background: #ede9fe; color: #6d28d9; }
.pill-off[b-avn2gjmmhw]      { background: #fee2e2; color: #b91c1c; }
.pill-kind[b-avn2gjmmhw]     { background: #ecfdf5; color: #047857; }

/* Kind filter chips */
.registry-filters[b-avn2gjmmhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.chip[b-avn2gjmmhw] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.75rem;
    border-radius: 100px;
    border: 1px solid var(--color-border, #e2e8f0);
    background: #fff;
    color: #334155;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.chip:hover:not(:disabled)[b-avn2gjmmhw] {
    border-color: #94a3b8;
    background: #f8fafc;
}

.chip:disabled[b-avn2gjmmhw] {
    opacity: 0.5;
    cursor: default;
}

.chip-active[b-avn2gjmmhw] {
    background: #1e293b;
    border-color: #1e293b;
    color: #fff;
}

.chip-count[b-avn2gjmmhw] {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.05rem 0.4rem;
    border-radius: 100px;
    background: rgba(148, 163, 184, 0.25);
}

.chip-active .chip-count[b-avn2gjmmhw] {
    background: rgba(255, 255, 255, 0.22);
}

/* Cell content */
.actor-name[b-avn2gjmmhw] {
    font-weight: 600;
    color: #0f172a;
}

.actor-id[b-avn2gjmmhw] {
    font-size: 0.72rem;
    color: #94a3b8;
    margin-top: 0.1rem;
}

.chip-list[b-avn2gjmmhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.cap-chip[b-avn2gjmmhw],
.pack-chip[b-avn2gjmmhw] {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.5rem;
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 500;
    white-space: nowrap;
}

.cap-chip[b-avn2gjmmhw] {
    background: #f1f5f9;
    color: #475569;
}

/* A derived (not authored) capability reads slightly dashed to signal the phase-1 caveat. */
.cap-chip-derived[b-avn2gjmmhw] {
    border: 1px dashed #cbd5e1;
    background: #f8fafc;
}

.cap-derived-mark[b-avn2gjmmhw] {
    margin-left: 0.25rem;
    color: #94a3b8;
    font-weight: 700;
}

.pack-chip[b-avn2gjmmhw] {
    background: #eff6ff;
    color: #1d4ed8;
}

.grade-caveat[b-avn2gjmmhw] {
    margin-left: 0.4rem;
    font-size: 0.7rem;
    color: #94a3b8;
    white-space: nowrap;
}

/* Drill-down drawer */
.drill-row > td[b-avn2gjmmhw] {
    background: #f8fafc;
    padding: 1.1rem 1.25rem;
}

.drill-cols[b-avn2gjmmhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

.drill-col[b-avn2gjmmhw] {
    flex: 1 1 22rem;
    min-width: 18rem;
}

.drill-heading[b-avn2gjmmhw] {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin: 0 0 0.5rem;
}

.drill-dl[b-avn2gjmmhw] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.3rem 1rem;
    margin: 0;
}

.drill-dl dt[b-avn2gjmmhw] {
    font-weight: 600;
    color: #475569;
    font-size: 0.8rem;
}

.drill-dl dd[b-avn2gjmmhw] {
    margin: 0;
    font-size: 0.8rem;
    color: #0f172a;
}

.drill-decisions[b-avn2gjmmhw] {
    margin-top: 1.25rem;
}

.drill-decisions-table[b-avn2gjmmhw] {
    margin-top: 0.5rem;
}

/* ── Page header actions (view toggle + Autonomy grades link side-by-side) ── */

.page-header-actions[b-avn2gjmmhw] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

/* View toggle — Table | Cards (#449) */
.view-toggle[b-avn2gjmmhw] {
    display: inline-flex;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.view-toggle-btn[b-avn2gjmmhw] {
    padding: 0.35rem 0.85rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: #475569;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: background 0.1s ease, color 0.1s ease;
    border-radius: 0;
}

.view-toggle-btn:first-child[b-avn2gjmmhw] {
    border-right: 1px solid var(--color-border, #e2e8f0);
}

.view-toggle-btn:hover:not(.view-toggle-active)[b-avn2gjmmhw] {
    background: #f8fafc;
    color: #1e293b;
}

.view-toggle-active[b-avn2gjmmhw] {
    background: #1e293b;
    color: #fff;
}

/* ── Role Cards grid (#449) ── */

.role-cards-grid[b-avn2gjmmhw] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr));
    gap: 1rem;
}

@media (max-width: 600px) {
    .role-cards-grid[b-avn2gjmmhw] { grid-template-columns: 1fr; }
}

.role-card[b-avn2gjmmhw] {
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 10px);
    box-shadow: var(--shadow-card, 0 1px 3px rgba(0,0,0,.06));
    padding: 1.1rem 1.2rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.role-card:hover[b-avn2gjmmhw] {
    border-color: #94a3b8;
    box-shadow: 0 4px 12px rgba(7, 70, 132, 0.07);
}

/* Header: large persona name + kind pill + real name */
.role-card-header[b-avn2gjmmhw] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.role-card-persona[b-avn2gjmmhw] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
    line-height: 1.25;
}

.role-card-meta[b-avn2gjmmhw] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.role-card-real-name[b-avn2gjmmhw] {
    font-size: 0.78rem;
    color: #64748b;
}

/* Grade + activation pills row */
.role-card-pills[b-avn2gjmmhw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

/* Declared-scope chips in the card */
.role-card-scope[b-avn2gjmmhw] {
    /* inherits .chip-list flex wrap */
}

/* Decision count + cost line */
.role-card-stats[b-avn2gjmmhw] {
    font-size: 0.8rem;
    color: #475569;
    display: flex;
    gap: 0.9rem;
    flex-wrap: wrap;
}

/* Action buttons row */
.role-card-actions[b-avn2gjmmhw] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.1rem;
}

/* Inline persona name editor */
.role-card-name-editor[b-avn2gjmmhw] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.75rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

.role-card-name-editor .form-label[b-avn2gjmmhw] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #475569;
    margin: 0;
}

.role-card-name-buttons[b-avn2gjmmhw] {
    display: flex;
    gap: 0.4rem;
    margin-top: 0.1rem;
}
/* /Components/Pages/WorkHistory.razor.rz.scp.css */
/* History — search-first layout. Distinct from /work, which keeps daily KPIs.
   This sheet only owns the bits that aren't already global (filter rows live
   in app.css; status badges and tables live in app.css too). */

.history-search[b-9z4r4mdh5f] {
    margin-bottom: 1.25rem;
}

.history-search .filter-row[b-9z4r4mdh5f] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1rem;
    align-items: flex-end;
}

.history-search .filter-row + .filter-row[b-9z4r4mdh5f] {
    margin-top: 0.85rem;
}

.history-search .filter-field[b-9z4r4mdh5f] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 0 1 200px;
    min-width: 0;
}

.history-search .filter-field--grow[b-9z4r4mdh5f] {
    flex: 1 1 320px;
}

.history-search .filter-field label[b-9z4r4mdh5f] {
    font-family: var(--font-subtitle);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
}

.history-search .filter-field input[b-9z4r4mdh5f],
.history-search .filter-field select[b-9z4r4mdh5f] {
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.875rem;
    background: var(--color-surface);
    color: var(--color-text-primary);
}

.history-search .filter-field-action[b-9z4r4mdh5f] {
    display: flex;
    flex: 0 0 auto;
}

.history-date-row[b-9z4r4mdh5f] {
    align-items: flex-end;
}

.history-presets[b-9z4r4mdh5f] {
    display: inline-flex;
    align-items: center;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.25rem;
    box-shadow: var(--shadow-card);
    gap: 0.15rem;
    height: fit-content;
}

.history-presets button[b-9z4r4mdh5f] {
    border: none;
    background: transparent;
    padding: 0.4rem 0.75rem;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    cursor: pointer;
    border-radius: calc(var(--radius) * 0.65);
    transition: background 0.15s, color 0.15s;
}

.history-presets button:hover[b-9z4r4mdh5f] {
    color: var(--color-text-primary);
}

.history-presets button.is-active[b-9z4r4mdh5f] {
    background: var(--color-brand);
    color: #fff;
}

/* Result summary + monthly trend chart. Two-column on desktop, stacked on
   small screens so the chart never gets squished below readability. */

.history-summary-grid[b-9z4r4mdh5f] {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 1100px) {
    .history-summary-grid[b-9z4r4mdh5f] { grid-template-columns: 1fr; }
}

.history-totals[b-9z4r4mdh5f] {
    display: flex;
    flex-direction: column;
    padding: 0.5rem 0;
}

.history-total[b-9z4r4mdh5f] {
    padding: 0.85rem 1.5rem;
    border-bottom: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    position: relative;
}

.history-total:last-child[b-9z4r4mdh5f] {
    border-bottom: none;
}

.history-total[b-9z4r4mdh5f]::before {
    content: "";
    position: absolute;
    inset: 0.85rem auto 0.85rem 0;
    width: 3px;
    border-radius: 2px;
    background: var(--color-brand-teal);
    opacity: 0.85;
}

.history-total--alert[b-9z4r4mdh5f]::before { background: var(--color-down); }
.history-total--ok[b-9z4r4mdh5f]::before    { background: var(--color-healthy); }

.history-total-label[b-9z4r4mdh5f] {
    font-family: var(--font-subtitle);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
}

.history-total-value[b-9z4r4mdh5f] {
    font-family: var(--font-title);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.15;
    letter-spacing: -0.01em;
}

.history-total-meta[b-9z4r4mdh5f] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}

.history-trend .card-header[b-9z4r4mdh5f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.history-trend .chart-meta[b-9z4r4mdh5f] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}

.history-trend .chart-container[b-9z4r4mdh5f] {
    padding: 0.85rem 1.25rem 1.1rem;
}

.history-trend .chart-empty[b-9z4r4mdh5f] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 200px;
    color: var(--color-text-secondary);
    font-size: 0.875rem;
}

/* Results pagination row. */

.load-more-row[b-9z4r4mdh5f] {
    display: flex;
    justify-content: center;
    padding: 1rem 1.5rem 1.25rem;
}

.child-row td[b-9z4r4mdh5f] {
    background: rgba(14, 165, 198, 0.03);
}

.child-indent[b-9z4r4mdh5f] {
    color: var(--color-text-secondary);
    margin-right: 0.4rem;
}
/* /Components/Playground/PlaygroundPreparationSection.razor.rz.scp.css */
.prep-sub[b-og9a10pdd2] {
    margin: 0.25rem 0 0;
    color: #64748b;
    font-size: 0.85rem;
}

.prep-empty[b-og9a10pdd2] {
    padding: 1.25rem 0.25rem;
    color: #64748b;
    font-size: 0.85rem;
}

/* ── Prepared-sample banner ─────────────────────────────────────────── */
.prep-adopted-banner[b-og9a10pdd2] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin: 0 0 1rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
}

.prep-adopted-text[b-og9a10pdd2] {
    flex: 1 1 20rem;
    font-size: 0.85rem;
    color: #1e3a8a;
    line-height: 1.45;
}

.prep-badge-adopted[b-og9a10pdd2] {
    background: #dbeafe;
    color: #1d4ed8;
    white-space: nowrap;
}

/* ── Profile picker ─────────────────────────────────────────────────── */
.prep-pick[b-og9a10pdd2] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.prep-pick-label[b-og9a10pdd2] {
    font-weight: 600;
    color: #475569;
    font-size: 0.85rem;
}

.prep-pick-select[b-og9a10pdd2] {
    min-width: 16rem;
    max-width: 22rem;
}

.prep-desc[b-og9a10pdd2] {
    margin: 0.7rem 0 0.5rem;
    color: #475569;
    font-size: 0.85rem;
}

/* ── Step chips ─────────────────────────────────────────────────────── */
.prep-steps-chips[b-og9a10pdd2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.25rem 0 0.25rem;
}

.prep-chip[b-og9a10pdd2] {
    display: inline-block;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    background: #eef2f6;
    color: #334155;
    font-size: 0.74rem;
    font-weight: 600;
}

.prep-chip-noop[b-og9a10pdd2] {
    background: #f1f5f9;
    color: #64748b;
    font-weight: 500;
}

/* ── Result summary ─────────────────────────────────────────────────── */
.prep-result-summary[b-og9a10pdd2] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 1rem 0 0.75rem;
    font-size: 0.88rem;
    color: #334155;
    flex-wrap: wrap;
}

.prep-badge[b-og9a10pdd2] {
    display: inline-block;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.prep-badge-changed[b-og9a10pdd2] { background: #dcfce7; color: #166534; }
.prep-badge-noop[b-og9a10pdd2] { background: #f1f5f9; color: #475569; }

.prep-removed[b-og9a10pdd2] {
    font-size: 0.85rem;
    color: #334155;
    margin: 0 0 0.75rem;
}

/* ── Side-by-side compare ───────────────────────────────────────────── */
.prep-compare-nav[b-og9a10pdd2] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0.9rem 0 0.6rem;
    font-size: 0.85rem;
}

.prep-compare-grid[b-og9a10pdd2] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.prep-compare-pane[b-og9a10pdd2] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.prep-compare-pane figcaption[b-og9a10pdd2] {
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
}

.prep-compare-pane img[b-og9a10pdd2] {
    width: 100%;
    height: auto;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.prep-compare-placeholder[b-og9a10pdd2] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    border: 1px dashed #cbd5e1;
    border-radius: 6px;
    color: #94a3b8;
    font-size: 0.85rem;
}

/* ── Removed-page indicators ─────────────────────────────────────────── */
.prep-removed-tag[b-og9a10pdd2] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.prep-removed-caption[b-og9a10pdd2] {
    color: #b91c1c !important;
}

.prep-compare-removed[b-og9a10pdd2] {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 200px;
    padding: 1rem;
    border: 1px dashed #fca5a5;
    border-radius: 6px;
    background: repeating-linear-gradient(45deg, #fef2f2, #fef2f2 10px, #fee2e2 10px, #fee2e2 20px);
    color: #b91c1c;
    font-size: 0.85rem;
}

/* #1087: a sample that won't open — the one-click Repair sits beside the explanation. */
.prep-damaged[b-og9a10pdd2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin: 0 0 1rem;
}
/* /Components/Playground/SignalsPanel.razor.rz.scp.css */
/* Scoped styles for the Playground Signals tab (#90). */

.signals-actions[b-7352uzjj7i] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.signals-badges[b-7352uzjj7i] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-bottom: 0.85rem;
}

.signals-grid[b-7352uzjj7i] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.signal-group[b-7352uzjj7i] {
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
    padding: 0.6rem 0.75rem;
}

.signal-group-title[b-7352uzjj7i] {
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted, #6b7280);
    margin-bottom: 0.4rem;
}

.signal-row[b-7352uzjj7i] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.18rem 0;
    font-size: 0.88rem;
    border-top: 1px solid var(--border-subtle, #f3f4f6);
}

.signal-row:first-of-type[b-7352uzjj7i] {
    border-top: none;
}

.signal-label[b-7352uzjj7i] {
    color: var(--text-muted, #6b7280);
}

.signal-value[b-7352uzjj7i] {
    font-weight: 600;
    text-align: right;
    word-break: break-word;
}

.signals-hint[b-7352uzjj7i] {
    margin-top: 0.75rem;
    font-size: 0.85rem;
}

.signals-meta[b-7352uzjj7i] {
    font-size: 0.8rem;
}

/* Per-signal origin marker — a small "AI" pill on vision-derived signals. */
.signal-ai[b-7352uzjj7i] {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0 0.3rem;
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.03em;
    color: #6d28d9;
    background: #ede9fe;
    border: 1px solid #ddd6fe;
    border-radius: 4px;
    vertical-align: middle;
}

.signals-doctype[b-7352uzjj7i] {
    margin-bottom: 0.75rem;
    padding: 0.5rem 0.75rem;
    background: var(--color-surface-raised, #f9fafb);
    border: 1px solid var(--border, #e5e7eb);
    border-left: 3px solid #6d28d9;
    border-radius: 6px;
    font-size: 0.95rem;
}

.signals-legend[b-7352uzjj7i] {
    margin-top: 0.85rem;
    font-size: 0.8rem;
}

/* /Components/Preparation/PreparationRunLog.razor.rz.scp.css */
.prep-log[b-dm166ubzfs] {
    background: #0f172a;
    border: 1px solid #1e293b;
    border-radius: 8px;
    padding: 0.5rem 0.25rem;
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
    font-size: 0.76rem;
    line-height: 1.5;
    max-height: 320px;
    overflow-y: auto;
}

.prep-log-empty[b-dm166ubzfs] {
    color: #94a3b8;
    font-style: italic;
    padding: 0.75rem 1rem;
}

.prep-log-line[b-dm166ubzfs] {
    display: grid;
    grid-template-columns: 1.6rem 1.2rem minmax(8rem, max-content) 1fr max-content;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.18rem 0.6rem;
    color: #cbd5e1;
    white-space: nowrap;
}

.prep-log-entry + .prep-log-entry[b-dm166ubzfs] {
    border-top: 1px solid rgba(148, 163, 184, 0.08);
}

/* Effective settings/parameters each step ran with — a wrapped, muted sub-line. */
.prep-log-params[b-dm166ubzfs] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem 0.9rem;
    padding: 0.05rem 0.6rem 0.3rem 3.3rem; /* indent past the index + icon columns */
    white-space: normal;
}

.prep-log-param[b-dm166ubzfs] {
    color: #64748b;
}

.prep-log-param.is-override[b-dm166ubzfs] {
    color: #93c5fd; /* operator changed this from the default */
}

.prep-log-index[b-dm166ubzfs] {
    color: #64748b;
    text-align: right;
}

.prep-log-icon[b-dm166ubzfs] {
    text-align: center;
    font-weight: 700;
}

.prep-log-changed .prep-log-icon[b-dm166ubzfs] { color: #4ade80; }
.prep-log-noop .prep-log-icon[b-dm166ubzfs] { color: #64748b; }
.prep-log-fail .prep-log-icon[b-dm166ubzfs] { color: #f87171; }

.prep-log-label[b-dm166ubzfs] {
    color: #e2e8f0;
    font-weight: 600;
}

.prep-log-detail[b-dm166ubzfs] {
    color: #cbd5e1;
    overflow: hidden;
    text-overflow: ellipsis;
}

.prep-log-noop .prep-log-detail[b-dm166ubzfs] { color: #94a3b8; font-style: italic; }
.prep-log-fail .prep-log-detail[b-dm166ubzfs] { color: #fca5a5; }

.prep-log-meta[b-dm166ubzfs] {
    color: #64748b;
    text-align: right;
}

/* Summary line after a fused group (#823): the shared size change and time of the one pass. */
.prep-log-group[b-dm166ubzfs] { color: #94a3b8; }
.prep-log-group .prep-log-icon[b-dm166ubzfs] { color: #93c5fd; }
.prep-log-group .prep-log-label[b-dm166ubzfs] { color: #93c5fd; font-weight: 600; }
.prep-log-group .prep-log-detail[b-dm166ubzfs] { color: #94a3b8; }
/* /Components/Preparation/PreparationTestPanel.razor.rz.scp.css */
.card-subtitle[b-rs38redf9q] {
    margin: 0.25rem 0 0;
    color: #64748b;
    font-size: 0.85rem;
}

/* ── Dropzone ───────────────────────────────────────────────────────── */
.prep-dropzone[b-rs38redf9q] {
    position: relative;
    border: 2px dashed #cbd5e1;
    border-radius: 10px;
    background: #f8fafc;
    transition: border-color 0.15s, background 0.15s;
}

.prep-dropzone-over[b-rs38redf9q] {
    border-color: #0ea5e9;
    background: #f0f9ff;
}

/* InputFile renders its own <input> as a child component, so the scope attribute
   doesn't reach it — ::deep makes this rule apply to that child input. Without it the
   input renders at default size and drops land on the page (browser opens the PDF). */
.prep-dropzone[b-rs38redf9q]  .prep-file-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.prep-dropzone-inner[b-rs38redf9q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 1.75rem 1rem;
    text-align: center;
    color: #475569;
    pointer-events: none;
}

.prep-dropzone-icon[b-rs38redf9q] {
    font-size: 1.4rem;
    color: #0ea5e9;
}

/* ── Loaded file chip ───────────────────────────────────────────────── */
.prep-file-chip[b-rs38redf9q] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

.prep-file-name[b-rs38redf9q] {
    font-weight: 600;
    color: #1e293b;
}

.prep-file-actions[b-rs38redf9q] {
    margin-left: auto;
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

/* ── Page scope ─────────────────────────────────────────────────────── */
.prep-scope[b-rs38redf9q] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 0.6rem;
    padding: 0.5rem 0.85rem;
    font-size: 0.85rem;
    color: #334155;
    background: #f8fafc;
    border: 1px solid #eef2f6;
    border-radius: 8px;
}

.prep-scope-label[b-rs38redf9q] {
    font-weight: 600;
    color: #475569;
}

.prep-scope-opt[b-rs38redf9q] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    cursor: pointer;
}

.prep-scope-range[b-rs38redf9q] {
    width: 8rem;
}

.prep-scope-hint[b-rs38redf9q] {
    margin-left: auto;
    color: #94a3b8;
    font-size: 0.78rem;
}

/* ── Result summary ─────────────────────────────────────────────────── */
.prep-result-summary[b-rs38redf9q] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 1rem 0 0.75rem;
    font-size: 0.88rem;
    color: #334155;
    flex-wrap: wrap;
}

.prep-badge[b-rs38redf9q] {
    display: inline-block;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.prep-badge-changed[b-rs38redf9q] { background: #dcfce7; color: #166534; }
.prep-badge-noop[b-rs38redf9q] { background: #f1f5f9; color: #475569; }

/* ── Metrics table ──────────────────────────────────────────────────── */
.prep-metrics[b-rs38redf9q] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
}

.prep-metrics th[b-rs38redf9q],
.prep-metrics td[b-rs38redf9q] {
    text-align: left;
    padding: 0.4rem 0.6rem;
    border-bottom: 1px solid #eef2f6;
}

.prep-metrics thead th[b-rs38redf9q] {
    color: #64748b;
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.prep-metrics td:first-child[b-rs38redf9q] { color: #475569; font-weight: 500; }
.prep-metrics td:last-child[b-rs38redf9q] { color: #0369a1; font-variant-numeric: tabular-nums; }

.prep-removed[b-rs38redf9q] {
    font-size: 0.85rem;
    color: #334155;
    margin: 0 0 0.75rem;
}

.prep-section-heading[b-rs38redf9q] {
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    margin: 1.1rem 0 0.5rem;
}

/* ── Side-by-side compare ───────────────────────────────────────────── */
.prep-compare-nav[b-rs38redf9q] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.6rem;
    font-size: 0.85rem;
}

.prep-compare-grid[b-rs38redf9q] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.prep-compare-pane[b-rs38redf9q] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.prep-compare-pane figcaption[b-rs38redf9q] {
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
}

.prep-compare-pane img[b-rs38redf9q] {
    width: 100%;
    height: auto;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.prep-compare-placeholder[b-rs38redf9q] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    border: 1px dashed #cbd5e1;
    border-radius: 6px;
    color: #94a3b8;
    font-size: 0.85rem;
}

/* ── Document preview (pre-run) ──────────────────────────────────────── */
.prep-preview-pane[b-rs38redf9q] {
    max-width: 460px;
    margin: 0 auto;
}

.prep-preview-pane img[b-rs38redf9q] {
    width: 100%;
    height: auto;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

/* ── Removed-page indicators ─────────────────────────────────────────── */
.prep-removed-tag[b-rs38redf9q] {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.prep-removed-caption[b-rs38redf9q] {
    color: #b91c1c !important;
}

.prep-compare-removed[b-rs38redf9q] {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 200px;
    padding: 1rem;
    border: 1px dashed #fca5a5;
    border-radius: 6px;
    background: repeating-linear-gradient(45deg, #fef2f2, #fef2f2 10px, #fee2e2 10px, #fee2e2 20px);
    color: #b91c1c;
    font-size: 0.85rem;
}

/* ── AI: suggest steps ──────────────────────────────────────────────── */
.prep-ai[b-rs38redf9q] {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid #e0e7ff;
    border-radius: 8px;
    background: #f5f7ff;
}

.prep-ai-label[b-rs38redf9q] {
    display: block;
    font-weight: 600;
    color: #3730a3;
    font-size: 0.9rem;
}

.prep-ai-hint[b-rs38redf9q] {
    margin: 0.15rem 0 0.6rem;
    color: #64748b;
    font-size: 0.82rem;
}

.prep-ai-row[b-rs38redf9q] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.prep-ai-input[b-rs38redf9q] {
    flex: 1;
    min-width: 0;
}

.prep-ai-result[b-rs38redf9q] {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid #e0e7ff;
}

.prep-ai-rationale[b-rs38redf9q] {
    margin: 0 0 0.5rem;
    color: #334155;
    font-size: 0.85rem;
}

.prep-ai-steps[b-rs38redf9q] {
    margin: 0 0 0.6rem;
    padding-left: 1.3rem;
    font-size: 0.85rem;
    color: #334155;
}

.prep-ai-steps li[b-rs38redf9q] {
    margin-bottom: 0.2rem;
}

.prep-ai-step-kind[b-rs38redf9q] {
    font-weight: 600;
    color: #1e293b;
}

.prep-ai-step-settings[b-rs38redf9q] {
    margin-left: 0.4rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.78rem;
    color: #6366f1;
}

.prep-ai-step-why[b-rs38redf9q] {
    margin-left: 0.35rem;
    color: #64748b;
}

.prep-ai-actions[b-rs38redf9q] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}
/* /Components/Shared/AgentFolderPickerModal.razor.rz.scp.css */
/* Agent folder picker — sits inside the shared .modal-card shell (app.css).

   These rules duplicate FolderPickerModal.razor.css on purpose: Blazor scoped CSS is scoped to the
   component that owns the file, so the sibling's stylesheet never applied here and this modal has
   been rendering unstyled since #738 (folder rows as <ul> bullets). Keeping a stylesheet per
   component preserves the isolation; the shared shell still comes from app.css. If these two ever
   need to move together, hoist them into app.css rather than reaching across components. */

.folder-picker[b-9g59appmj1] {
    width: min(560px, 92vw);
}

.folder-picker-bar[b-9g59appmj1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.folder-picker-current[b-9g59appmj1] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.8125rem;
    color: var(--text-secondary, #475569);
}

/* Pinned to the right of the bar — an action on the folder, not part of the trail. */
.folder-picker-new[b-9g59appmj1] {
    flex: 0 0 auto;
    margin-left: auto;
}

.folder-picker-create[b-9g59appmj1] {
    margin-bottom: 0.75rem;
    padding: 0.625rem 0.75rem;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: var(--radius, 8px);
    background: var(--surface-subtle, #f8fafc);
}

.folder-picker-create > label[b-9g59appmj1] {
    display: block;
    margin-bottom: 0.375rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary, #475569);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.folder-picker-create-row[b-9g59appmj1] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.folder-picker-create-row > input[b-9g59appmj1] {
    flex: 1 1 auto;
    min-width: 0;
}

.folder-picker-create-error[b-9g59appmj1] {
    margin: 0.5rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-danger, #b42318);
}

.folder-picker-list[b-9g59appmj1] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 40vh;
    overflow-y: auto;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: var(--radius, 8px);
}

.folder-picker-list > li + li[b-9g59appmj1] {
    border-top: 1px solid var(--border, #e2e8f0);
}

.folder-picker-item[b-9g59appmj1] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: none;
    border: 0;
    text-align: left;
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--text-primary, #0f172a);
}

.folder-picker-item:hover[b-9g59appmj1],
.folder-picker-item:focus-visible[b-9g59appmj1] {
    background: var(--surface-hover, #f1f5f9);
}

.folder-picker-item-name[b-9g59appmj1] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.folder-picker-empty[b-9g59appmj1] {
    padding: 0.75rem;
    font-size: 0.875rem;
}

/* What's actually in the folder — a quiet strip under the list, not a second panel competing
   with it. */
.folder-picker-detail[b-9g59appmj1] {
    margin-top: 0.625rem;
}

.folder-picker-detail-toggle[b-9g59appmj1] {
    display: flex;
    align-items: baseline;
    gap: 0.375rem;
    width: 100%;
    padding: 0;
    background: none;
    border: 0;
    text-align: left;
    cursor: pointer;
    color: var(--text-secondary, #475569);
}

.folder-picker-detail-toggle:hover .folder-picker-detail-summary[b-9g59appmj1],
.folder-picker-detail-toggle:focus-visible .folder-picker-detail-summary[b-9g59appmj1] {
    color: var(--text-primary, #0f172a);
    text-decoration: underline;
}

.folder-picker-detail-caret[b-9g59appmj1] {
    flex: 0 0 auto;
    font-size: 0.6875rem;
}

.folder-picker-detail-summary[b-9g59appmj1] {
    margin: 0;
    font-size: 0.8125rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.folder-picker-detail-note[b-9g59appmj1] {
    margin: 0.375rem 0 0;
    font-size: 0.75rem;
}

.folder-picker-files[b-9g59appmj1] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    max-height: 30vh;
    overflow-y: auto;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: var(--radius, 8px);
}

.folder-picker-files > li[b-9g59appmj1] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.3125rem 0.75rem;
    font-size: 0.8125rem;
}

.folder-picker-files > li + li[b-9g59appmj1] {
    border-top: 1px solid var(--border, #e2e8f0);
}

.folder-picker-file-name[b-9g59appmj1] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-primary, #0f172a);
}

.folder-picker-file-meta[b-9g59appmj1] {
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary, #475569);
}

.folder-picker-footer[b-9g59appmj1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.folder-picker-selected[b-9g59appmj1] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.8125rem;
    color: var(--text-secondary, #475569);
}

.folder-picker-actions[b-9g59appmj1] {
    display: flex;
    gap: 0.5rem;
    flex: 0 0 auto;
}
/* /Components/Shared/AgentReturnPathHelp.razor.rz.scp.css */
/* Agent-return path helper (#739). Sits directly under the destination's Output folder field, so it
   reads as guidance attached to that field rather than another card: no border box around the whole
   block, one hairline-bordered reference panel, and hint-sized type throughout. Scoped to this
   component — the shared button/link styling still comes from app.css. */

.agent-return-help[b-5cv5eg1fwp] {
    margin: -0.25rem 0 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #64748b);
    max-width: 46rem;
}

.agent-return-help code[b-5cv5eg1fwp] {
    font-size: 0.78125rem;
    color: var(--color-text-primary, #0f172a);
    word-break: break-all;
}

/* ── Reference panel: what the agent's own paths look like ── */

.arh-ref[b-5cv5eg1fwp] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 0.5rem);
    background: var(--color-surface-raised, #f8fafc);
    padding: 0.625rem 0.75rem;
    margin-bottom: 0.625rem;
}

.arh-ref-head[b-5cv5eg1fwp] {
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
    margin-bottom: 0.5rem;
}

.arh-ref-row + .arh-ref-row[b-5cv5eg1fwp] {
    margin-top: 0.625rem;
    padding-top: 0.625rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
}

.arh-ref-agent[b-5cv5eg1fwp] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.arh-ref-agent code[b-5cv5eg1fwp] {
    font-weight: 600;
}

.arh-stale[b-5cv5eg1fwp] {
    color: var(--color-degraded, #f59e0b);
    font-size: 0.75rem;
    white-space: nowrap;
}

/* Label / value pairs — the label column stays narrow so the paths line up and stay scannable. */
.arh-paths[b-5cv5eg1fwp] {
    display: grid;
    grid-template-columns: minmax(0, 7.5rem) minmax(0, 1fr);
    gap: 0.125rem 0.75rem;
    margin: 0;
}

.arh-paths dt[b-5cv5eg1fwp] {
    font-weight: 600;
}

.arh-paths dd[b-5cv5eg1fwp] {
    margin: 0;
    min-width: 0;
}

.arh-dd-note[b-5cv5eg1fwp] {
    font-style: italic;
}

.arh-ref-actions[b-5cv5eg1fwp] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-top: 0.4375rem;
}

/* The suggested path rides inside its button, so it must not inherit the block word-break. */
.arh-ref-actions code[b-5cv5eg1fwp] {
    word-break: normal;
}

/* ── Rules and live checks ── */

.arh-rules[b-5cv5eg1fwp] {
    margin: 0;
    padding-left: 1.1rem;
}

.arh-rules li + li[b-5cv5eg1fwp] {
    margin-top: 0.1875rem;
}

.arh-rules strong[b-5cv5eg1fwp] {
    color: var(--color-text-primary, #0f172a);
}

.arh-note[b-5cv5eg1fwp] {
    margin: 0.5rem 0 0;
}

.arh-note-warn[b-5cv5eg1fwp] {
    color: var(--color-text-primary, #0f172a);
    border-left: 3px solid var(--color-degraded, #f59e0b);
    padding-left: 0.5rem;
}

/* ── Browse the agent (#760): one button, or a chooser and a button when several agents qualify ── */

.arh-browse[b-5cv5eg1fwp] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem 0.5rem;
    margin-bottom: 0.625rem;
}

.arh-browse label[b-5cv5eg1fwp] {
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.arh-browse-select[b-5cv5eg1fwp] {
    width: auto;
    min-width: 12rem;
}
/* /Components/Shared/DocumentPeekPanel.razor.rz.scp.css */
/* #728: operations-console peek drawer — a calm right-hand panel over the grid. */

.peek-backdrop[b-p4ehe5gf75] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.32);
    z-index: 940;
}

.peek-panel[b-p4ehe5gf75] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(34rem, 94vw);
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    border-left: 1px solid var(--color-border);
    box-shadow: -12px 0 32px rgba(15, 23, 42, 0.18);
    z-index: 941;
    animation: peek-slide-in-b-p4ehe5gf75 0.16s ease-out;
    outline: none;
}

@keyframes peek-slide-in-b-p4ehe5gf75 {
    from { transform: translateX(1.5rem); opacity: 0.4; }
    to   { transform: translateX(0); opacity: 1; }
}

.peek-header[b-p4ehe5gf75] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--color-border);
}

.peek-header-text[b-p4ehe5gf75] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    min-width: 0;
}

.peek-title[b-p4ehe5gf75] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-text-primary);
    max-width: 24rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.peek-close[b-p4ehe5gf75] {
    border: none;
    background: none;
    font-size: 1.4rem;
    line-height: 1;
    color: var(--color-text-secondary);
    cursor: pointer;
    padding: 0.1rem 0.35rem;
    border-radius: 6px;
}

.peek-close:hover[b-p4ehe5gf75] {
    color: var(--color-text-primary);
    background: var(--color-surface-raised);
}

.peek-body[b-p4ehe5gf75] {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.25rem 1.5rem;
}

.peek-note[b-p4ehe5gf75] {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    padding: 0.6rem 0.8rem;
    font-size: 0.85rem;
    margin-bottom: 1rem;
}

.peek-exception[b-p4ehe5gf75] {
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 8px;
    padding: 0.75rem 0.9rem;
    margin-bottom: 1rem;
}

.peek-exception-title[b-p4ehe5gf75] {
    font-weight: 600;
    color: #b91c1c;
    font-size: 0.9rem;
}

.peek-exception-stage[b-p4ehe5gf75] {
    font-weight: 400;
    color: var(--color-text-secondary);
    margin-left: 0.35rem;
}

.peek-exception-reason[b-p4ehe5gf75] {
    font-size: 0.85rem;
    color: var(--color-text-primary);
    margin-top: 0.25rem;
    overflow-wrap: anywhere;
}

.peek-exception-meta[b-p4ehe5gf75] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    margin-top: 0.4rem;
}

.peek-facts[b-p4ehe5gf75] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.7rem 1.25rem;
    margin: 0 0 1.25rem;
}

.peek-fact dt[b-p4ehe5gf75] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
    margin-bottom: 0.15rem;
}

.peek-fact dd[b-p4ehe5gf75] {
    margin: 0;
    font-size: 0.88rem;
    color: var(--color-text-primary);
    overflow-wrap: anywhere;
}

.peek-fact--wide[b-p4ehe5gf75] {
    grid-column: 1 / -1;
}

.peek-path[b-p4ehe5gf75] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.8rem;
}

.peek-section[b-p4ehe5gf75] {
    margin-bottom: 1.25rem;
}

.peek-section-title[b-p4ehe5gf75] {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-secondary);
    margin: 0 0 0.5rem;
}

.peek-timeline[b-p4ehe5gf75] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.peek-stage[b-p4ehe5gf75] {
    display: grid;
    grid-template-columns: 1.25rem 1fr auto;
    align-items: baseline;
    gap: 0.35rem;
    font-size: 0.85rem;
    padding: 0.25rem 0.4rem;
    border-radius: 6px;
}

.peek-stage--ok .peek-stage-icon[b-p4ehe5gf75] { color: var(--color-healthy); }
.peek-stage--failed[b-p4ehe5gf75] { background: #fef2f2; }
.peek-stage--failed .peek-stage-icon[b-p4ehe5gf75] { color: var(--color-down); }
.peek-stage--running[b-p4ehe5gf75] { background: var(--color-surface-raised); }
.peek-stage--running .peek-stage-icon[b-p4ehe5gf75] { color: var(--color-brand-teal); }

.peek-stage-name[b-p4ehe5gf75] {
    color: var(--color-text-primary);
}

.peek-stage-time[b-p4ehe5gf75] {
    font-size: 0.78rem;
    white-space: nowrap;
}

.peek-stage-error[b-p4ehe5gf75] {
    grid-column: 2 / -1;
    font-size: 0.78rem;
    color: #b91c1c;
    overflow-wrap: anywhere;
}

.peek-fields[b-p4ehe5gf75] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.peek-fields th[b-p4ehe5gf75] {
    text-align: left;
    font-weight: 500;
    color: var(--color-text-secondary);
    padding: 0.3rem 0.75rem 0.3rem 0;
    vertical-align: top;
    white-space: nowrap;
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.peek-fields td[b-p4ehe5gf75] {
    padding: 0.3rem 0;
    color: var(--color-text-primary);
    overflow-wrap: anywhere;
}

.peek-fields tr + tr th[b-p4ehe5gf75],
.peek-fields tr + tr td[b-p4ehe5gf75] {
    border-top: 1px solid var(--color-border);
}

.peek-more[b-p4ehe5gf75] {
    font-size: 0.78rem;
    margin: 0.4rem 0 0;
}

.peek-exports[b-p4ehe5gf75] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.85rem;
}

.peek-export[b-p4ehe5gf75] {
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
    flex-wrap: wrap;
}

.peek-export--failed[b-p4ehe5gf75] { color: #b91c1c; }

.peek-footer[b-p4ehe5gf75] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1.25rem;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface-raised);
}

.peek-footer-hint[b-p4ehe5gf75] {
    font-size: 0.82rem;
    color: var(--color-text-secondary);
}

.peek-footer-link[b-p4ehe5gf75] {
    margin-left: auto;
}
/* /Components/Shared/DroppedPdfNotice.razor.rz.scp.css */
.dropped-pdf-notice[b-5uw5c1r92x] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    margin-top: 0.75rem;
}

.dropped-pdf-text[b-5uw5c1r92x] {
    flex: 1 1 22rem;
    line-height: 1.45;
}

.dropped-pdf-ai[b-5uw5c1r92x] {
    margin-left: 0.25rem;
    font-size: 0.8rem;
    opacity: 0.8;
}

.dropped-pdf-actions[b-5uw5c1r92x] {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
}

.dropped-pdf-log[b-5uw5c1r92x] {
    flex-basis: 100%;
    margin: 0.25rem 0 0;
    padding-left: 1.1rem;
    font-size: 0.82rem;
    opacity: 0.85;
}
/* /Components/Shared/Flow/AiDraftPanel.razor.rz.scp.css */
/* AI co-designer draft panel — harvested from FlowDesigner.razor.css (fs-draft-*). Scoped to this component.
   The trigger lives inline in the studio toolbar; the editor opens as a popover anchored to it (like the
   node palette) so expanding it never pushes the canvas down. */
.fs-draft[b-besfiiq5mn] { position: relative; }
.fs-draft-open[b-besfiiq5mn] { font-size: 0.8rem; white-space: nowrap; }
.fs-draft-open.is-open[b-besfiiq5mn] { background: #eef2f7; }
.fs-draft-panel[b-besfiiq5mn] {
    position: absolute; top: calc(100% + 6px); left: 0; z-index: 30;
    width: min(46rem, 78vw);
    border: 1px solid var(--color-border); border-radius: var(--radius); background: #fbfdff;
    padding: 0.85rem 1rem; display: flex; flex-direction: column; gap: 0.55rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
}
.fs-draft-label[b-besfiiq5mn] { font-size: 0.78rem; color: var(--color-text-secondary); }
.fs-draft-text[b-besfiiq5mn] { width: 100%; font-size: 0.85rem; padding: 0.5rem 0.6rem; border: 1px solid var(--color-border);
    border-radius: var(--radius); resize: vertical; font-family: inherit; }
.fs-draft-actions[b-besfiiq5mn] { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.fs-draft-rationale[b-besfiiq5mn] { font-size: 0.76rem; }
.fs-draft-setup[b-besfiiq5mn] { margin: 0.2rem 0 0; padding-left: 1.1rem; font-size: 0.78rem; color: var(--color-text-secondary); }
.fs-draft-setup a[b-besfiiq5mn] { font-weight: 600; }
.fs-draft-refine[b-besfiiq5mn] { display: flex; flex-direction: column; gap: 0.4rem; border-top: 1px dashed var(--color-border);
    padding-top: 0.6rem; }
.fs-draft-refine .btn[b-besfiiq5mn] { align-self: flex-start; }

/* #691 B5: optional sample-file attachment on the draft panel. */
.fs-draft-sample[b-besfiiq5mn] { display: flex; align-items: center; gap: .6rem; margin: .4rem 0 .6rem; font-size: .8rem; flex-wrap: wrap; }
/* /Components/Shared/Flow/FlowAssistantPane.razor.rz.scp.css */
.fa-pane[b-dts8u33o3n] { display: flex; flex-direction: column; flex: 1; min-height: 0; }

.fa-toolbar[b-dts8u33o3n] { display: flex; justify-content: flex-end; padding: 0.5rem 1.1rem 0; }

.fa-messages[b-dts8u33o3n] {
    flex: 1; min-height: 260px; max-height: 68vh; overflow-y: auto;
    display: flex; flex-direction: column-reverse; gap: 0.6rem; padding: 1rem 1.1rem;
}
.fa-bubble[b-dts8u33o3n] { max-width: 94%; border-radius: 12px; padding: 0.5rem 0.7rem; font-size: 0.84rem; line-height: 1.45; }
.fa-user[b-dts8u33o3n] { align-self: flex-end; background: var(--color-brand); color: #fff; border-bottom-right-radius: 4px; }
.fa-assistant[b-dts8u33o3n] { align-self: flex-start; background: #f3f4f6; color: var(--color-text); border-bottom-left-radius: 4px; }
.fa-error[b-dts8u33o3n] { align-self: flex-start; background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; }
.fa-text[b-dts8u33o3n] { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.fa-caret[b-dts8u33o3n] { animation: fa-blink-b-dts8u33o3n 1s steps(2, start) infinite; }
@keyframes fa-blink-b-dts8u33o3n { to { visibility: hidden; } }
.fa-event[b-dts8u33o3n] { align-self: center; margin: 0; font-size: 0.74rem; color: var(--color-text-secondary); text-align: center; }
.fa-empty[b-dts8u33o3n] { align-self: center; text-align: center; max-width: 85%; }

/* ── Change card (propose-then-apply) ─────────────────────────────────────────── */
.fa-card[b-dts8u33o3n] { margin-top: 0.55rem; border: 1px solid var(--color-border); border-radius: 10px; background: #fff; padding: 0.6rem 0.75rem; }
.fa-card-note[b-dts8u33o3n] { margin: 0 0 0.35rem; font-weight: 600; font-size: 0.8rem; color: var(--color-text); }
.fa-card-ops[b-dts8u33o3n] { margin: 0 0 0.45rem; padding-left: 1.1rem; font-size: 0.78rem; color: var(--color-text); }
.fa-card-ops li[b-dts8u33o3n] { margin: 0.1rem 0; }
.fa-card-setup[b-dts8u33o3n] { margin: 0 0 0.45rem; padding-left: 1.1rem; font-size: 0.75rem; color: var(--color-text-secondary); }
.fa-card-actions[b-dts8u33o3n] { display: flex; gap: 0.55rem; align-items: center; flex-wrap: wrap; }
.fa-card-state[b-dts8u33o3n] { font-size: 0.76rem; color: var(--color-text-secondary); }
.fa-card-applied[b-dts8u33o3n] { color: #15803d; font-weight: 600; }
.fa-card-stale[b-dts8u33o3n] { color: #b45309; }

/* ── Attachments + seed chips ─────────────────────────────────────────────────── */
.fa-attachments[b-dts8u33o3n] { padding: 0.45rem 1.1rem 0.15rem; border-top: 1px dashed var(--color-border); display: flex; flex-direction: column; gap: 0.35rem; }
.fa-attachment[b-dts8u33o3n] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.fa-attachment-name[b-dts8u33o3n] { font-size: 0.76rem; color: var(--color-text); font-weight: 600; }
.fa-chip[b-dts8u33o3n] {
    border: 1px solid var(--color-border); background: #f9fafb; cursor: pointer;
    padding: 0.18rem 0.55rem; border-radius: 999px; font-size: 0.73rem; color: var(--color-text);
}
.fa-chip:hover[b-dts8u33o3n] { background: #eef2f7; }
.fa-chip-x[b-dts8u33o3n] { padding: 0.18rem 0.4rem; color: var(--color-text-secondary); }
.fa-attach[b-dts8u33o3n] { cursor: pointer; align-self: center; font-size: 1rem; padding: 0.3rem 0.4rem; border-radius: 8px; }
.fa-attach:hover[b-dts8u33o3n] { background: #eef2f7; }
.fa-attach[b-dts8u33o3n]  input[type="file"] { display: none; }

/* ── Context strip + composer ─────────────────────────────────────────────────── */
.fa-context[b-dts8u33o3n] { margin: 0; padding: 0.35rem 1.1rem; font-size: 0.74rem; color: var(--color-text-secondary); border-top: 1px dashed var(--color-border); }
.fa-composer[b-dts8u33o3n] { display: flex; gap: 0.5rem; padding: 0.7rem 1.1rem; border-top: 1px solid var(--color-border); }
.fa-input[b-dts8u33o3n] { flex: 1; min-width: 0; padding: 0.45rem 0.6rem; border: 1px solid var(--color-border); border-radius: 8px; font-size: 0.85rem; }
.fa-input:focus[b-dts8u33o3n] { outline: 2px solid var(--color-brand); outline-offset: 1px; }

/* #691: inline adjust box on a pending change card. */
.fa-card-adjust[b-dts8u33o3n] { display: flex; gap: .4rem; margin-top: .5rem; }
.fa-card-adjust input[b-dts8u33o3n] { flex: 1; min-width: 0; font: inherit; font-size: .8rem; padding: .3rem .45rem; border: 1px solid #cbd5e1; border-radius: 6px; }
/* /Components/Shared/Flow/FlowPreviewStrip.razor.rz.scp.css */
/* Live preview strip — harvested from FlowDesigner.razor.css (fs-preview / fs-edge / fs-grid / fs-trace).
   Scoped to this component; fs-hint comes from DataStudio.razor.css's ::deep rules. */

.fs-preview[b-i19avmwwoz] { margin-top: 1.25rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: #fff;
    box-shadow: var(--shadow-card); padding: 1.1rem 1.25rem; }
.fs-preview-head[b-i19avmwwoz] { display: flex; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; }
.fs-preview-head h2[b-i19avmwwoz] { font-family: var(--font-title); font-size: 1.05rem; margin: 0; }
.fs-preview-toggle[b-i19avmwwoz] { display: inline-flex; align-items: baseline; gap: 0.45rem; border: 0; background: transparent;
    cursor: pointer; padding: 0; color: inherit; }
.fs-preview-caret[b-i19avmwwoz] { font-size: 0.8rem; color: var(--color-text-secondary); }
.fs-preview-status[b-i19avmwwoz] { font-size: 0.82rem; color: var(--color-text-muted, #64748b); display: inline-flex; align-items: center; gap: 0.4rem; }
.fs-preview-refresh[b-i19avmwwoz] { border: 1px solid var(--color-border); border-radius: var(--radius); background: #fff; font-size: 0.75rem;
    font-weight: 600; padding: 0.25rem 0.6rem; cursor: pointer; color: var(--color-text-secondary); }
.fs-preview-refresh:hover:not(:disabled)[b-i19avmwwoz] { background: #f6f8fb; color: var(--color-text); }
.fs-preview-refresh:disabled[b-i19avmwwoz] { opacity: 0.55; cursor: default; }
.fs-preview-spin[b-i19avmwwoz] { width: 0.7rem; height: 0.7rem; border: 2px solid #cbd5e1; border-top-color: #0ea5c6; border-radius: 50%;
    display: inline-block; animation: fs-spin-b-i19avmwwoz 0.7s linear infinite; }
@keyframes fs-spin-b-i19avmwwoz { to { transform: rotate(360deg); } }
.fs-preview-error[b-i19avmwwoz] { color: #b91c1c; font-size: 0.85rem; margin: 0.4rem 0 0; }

.fs-preview-edges[b-i19avmwwoz] { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.85rem; }
.fs-edge-chip[b-i19avmwwoz] { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 0.25rem; text-align: left;
    border: 1px solid var(--color-border); border-radius: var(--radius); background: #fcfdff; padding: 0.45rem 0.65rem;
    cursor: pointer; transition: border-color 0.12s, box-shadow 0.12s; }
.fs-edge-chip:hover[b-i19avmwwoz] { border-color: #94a3b8; }
.fs-edge-chip.is-selected[b-i19avmwwoz] { border-color: #0ea5c6; box-shadow: 0 0 0 2px rgba(14,165,198,0.18); background: #f0fbfe; }
.fs-edge-chip.is-warn[b-i19avmwwoz] { border-color: #f59e0b; }
.fs-edge-chip.is-error[b-i19avmwwoz] { border-color: #dc2626; background: #fef2f2; }
.fs-edge-label[b-i19avmwwoz] { font-size: 0.82rem; font-weight: 600; color: #1e293b; }
.fs-edge-arrow[b-i19avmwwoz] { color: #94a3b8; margin: 0 0.15rem; }
.fs-edge-badges[b-i19avmwwoz] { display: inline-flex; gap: 0.3rem; flex-wrap: wrap; }
.fs-edge-badge[b-i19avmwwoz] { font-size: 0.7rem; padding: 0.05rem 0.4rem; border-radius: 999px; background: #eef2f7; color: #475569; }
.fs-badge-issue[b-i19avmwwoz] { background: #fef3c7; color: #92400e; }
.fs-badge-flag[b-i19avmwwoz] { background: #fde68a; color: #78350f; }
.fs-badge-err[b-i19avmwwoz] { background: #fee2e2; color: #b91c1c; }

.fs-edge-grid[b-i19avmwwoz] { margin-top: 0.9rem; border-top: 1px solid var(--color-border); padding-top: 0.75rem; }
.fs-edge-grid-head[b-i19avmwwoz] { display: flex; align-items: baseline; gap: 0.6rem; flex-wrap: wrap; }
.fs-edge-grid-head h3[b-i19avmwwoz] { font-family: var(--font-title); font-size: 0.95rem; margin: 0; }
.fs-edge-grid-head .fs-drawer-close[b-i19avmwwoz] { margin-left: auto; }
.fs-drawer-close[b-i19avmwwoz] { border: 0; background: transparent; font-size: 1rem; color: var(--color-text-secondary); cursor: pointer; padding: 0.2rem 0.4rem; border-radius: 6px; }
.fs-drawer-close:hover[b-i19avmwwoz] { background: #eef2f7; color: var(--color-text-primary); }
.fs-grid-scroll[b-i19avmwwoz] { margin-top: 0.55rem; max-height: 340px; overflow: auto; border: 1px solid var(--color-border); border-radius: var(--radius); }
.fs-grid[b-i19avmwwoz] { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
.fs-grid thead th[b-i19avmwwoz] { position: sticky; top: 0; background: #f8fafc; text-align: left; padding: 0.35rem 0.55rem;
    border-bottom: 1px solid var(--color-border); font-weight: 600; white-space: nowrap; z-index: 1; }
.fs-grid td[b-i19avmwwoz] { padding: 0.25rem 0.55rem; border-bottom: 1px solid #eef2f7; height: 30px; box-sizing: border-box;
    white-space: nowrap; max-width: 22rem; overflow: hidden; text-overflow: ellipsis; }
.fs-grid-idx[b-i19avmwwoz] { color: #94a3b8; font-variant-numeric: tabular-nums; text-align: right; }
.fs-cell[b-i19avmwwoz] { border: 0; background: transparent; padding: 0; font: inherit; color: #0369a1; cursor: pointer;
    text-decoration: underline dotted; max-width: 22rem; overflow: hidden; text-overflow: ellipsis; }
.fs-cell:hover[b-i19avmwwoz] { color: #0ea5c6; text-decoration: underline; }

.fs-trace[b-i19avmwwoz] { margin-top: 0.9rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: #f8fafc; padding: 0.75rem 0.9rem; }
.fs-trace-head[b-i19avmwwoz] { display: flex; align-items: baseline; gap: 0.6rem; }
.fs-trace-head h3[b-i19avmwwoz] { font-family: var(--font-title); font-size: 0.92rem; margin: 0; }
.fs-trace-head .fs-drawer-close[b-i19avmwwoz] { margin-left: auto; }
.fs-trace-steps[b-i19avmwwoz] { list-style: none; margin: 0.55rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.fs-trace-step[b-i19avmwwoz] { display: flex; align-items: center; gap: 0.55rem; font-size: 0.8rem; padding: 0.3rem 0.45rem;
    background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius); }
.fs-trace-step.is-fail[b-i19avmwwoz] { border-color: #fca5a5; background: #fef2f2; }
.fs-trace-n[b-i19avmwwoz] { flex: 0 0 1.2rem; color: #94a3b8; font-variant-numeric: tabular-nums; text-align: right; }
.fs-trace-kind[b-i19avmwwoz] { flex: 0 0 auto; font-weight: 600; color: #334155; }
.fs-trace-io[b-i19avmwwoz] { flex: 1; color: #475569; }
.fs-trace-io code[b-i19avmwwoz] { background: #eef2f7; padding: 0.05rem 0.3rem; border-radius: var(--radius); font-size: 0.76rem; }
.fs-trace-err[b-i19avmwwoz] { flex: 0 0 auto; color: #b91c1c; font-size: 0.75rem; }
/* /Components/Shared/Flow/Inspectors/HelpHint.razor.rz.scp.css */
/* HelpHint — self-styled (not via DataStudio's ::deep fs-hint rules) so it reads the same in every
   host pane. The detail block is a calm inline callout, not an overlay. */

.hh-line[b-lnq7puajwv] {
    font-size: 0.78rem;
    margin: 0.25rem 0 0;
    color: var(--color-text-secondary);
}

.hh-toggle[b-lnq7puajwv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    margin-left: 0.3rem;
    padding: 0;
    border: 1px solid var(--color-border-strong, #cbd5e1);
    border-radius: 50%;
    background: transparent;
    color: var(--color-text-secondary, #64748b);
    font-family: Georgia, 'Times New Roman', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 0.68rem;
    line-height: 1;
    cursor: pointer;
    vertical-align: text-bottom;
}

.hh-toggle:hover[b-lnq7puajwv] { color: var(--color-primary, #1d4ed8); border-color: currentColor; }

.hh-toggle[aria-expanded="true"][b-lnq7puajwv] {
    background: var(--color-primary, #1d4ed8);
    border-color: var(--color-primary, #1d4ed8);
    color: #fff;
}

.hh-detail[b-lnq7puajwv] {
    margin: 0.4rem 0 0.5rem;
    padding: 0.5rem 0.7rem;
    border-left: 2px solid var(--color-border-strong, #cbd5e1);
    background: var(--color-surface-alt, #f8fafc);
    border-radius: 0 6px 6px 0;
}

.hh-detail[b-lnq7puajwv]  p {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    margin: 0 0 0.4rem;
}

.hh-detail[b-lnq7puajwv]  p:last-child { margin-bottom: 0; }
/* /Components/Shared/Flow/Inspectors/PostingInspector.razor.rz.scp.css */
/* Posting inspector — harvested from FlowDesigner.razor.css (fs-posting-* / fs-rule-* drawer). Scoped to this
   component's markup; the shared fs-field/fs-hint primitives come from DataStudio.razor.css's ::deep rules. */

.fs-drawer-h[b-85jujfiwis] { font-family: var(--font-subtitle, 'Hind', sans-serif); font-size: 0.78rem; text-transform: uppercase;
    letter-spacing: 0.05em; color: var(--color-text-secondary); margin: 0.6rem 0 0; }

.fs-x[b-85jujfiwis] { border: 0; background: transparent; color: var(--color-text-secondary); cursor: pointer; font-size: 0.85rem; }
.fs-x:hover[b-85jujfiwis] { color: var(--color-down, #dc2626); }

/* Needs-input prompt: calm amber, not an error. */
.fs-hint.fs-needs-input-hint[b-85jujfiwis] {
    margin: 0.5rem 0; padding: 0.55rem 0.7rem; border-radius: 8px;
    background: #fffbeb; border: 1px solid #fcd34d; color: #92400e;
}
.fs-hint.fs-needs-input-hint strong[b-85jujfiwis] { color: #92400e; }

/* Upstream recipe fields available to reference in a posting line. */
.fs-avail[b-85jujfiwis] { display: flex; flex-direction: column; gap: 0.35rem; padding: 0.5rem 0.6rem; background: #fffbeb;
    border: 1px solid #fde68a; border-radius: var(--radius); }
.fs-avail-label[b-85jujfiwis] { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 700; color: #b45309; }
.fs-avail-chips[b-85jujfiwis] { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.fs-avail-chip[b-85jujfiwis] { font-size: 0.76rem; font-weight: 600; color: #92400e; background: #fef3c7; border: 1px solid #fcd34d;
    padding: 0.1rem 0.45rem; border-radius: 999px; }
.fs-avail .fs-hint[b-85jujfiwis] { color: #92400e; }

.fs-chip[b-85jujfiwis] { border: 1px dashed #cbd5e1; background: #fff; border-radius: 999px; padding: 0.25rem 0.6rem; font-size: 0.76rem;
    cursor: pointer; color: var(--color-text-secondary); align-self: flex-start; }
.fs-chip:hover[b-85jujfiwis] { border-color: var(--color-brand-teal); color: var(--color-brand); }
.fs-chip-sm[b-85jujfiwis] { padding: 0.1rem 0.5rem; font-size: 0.72rem; }

.fs-step-moves[b-85jujfiwis] { display: inline-flex; align-items: center; gap: 0.1rem; flex-shrink: 0; }
.fs-step-moves .fs-x[b-85jujfiwis] { font-size: 0.9rem; padding: 0.1rem 0.25rem; line-height: 1; }
.fs-step-moves .fs-x:disabled[b-85jujfiwis] { opacity: 0.3; cursor: default; }

/* ── Posting rule editor ────────────────────────────────────────────────────── */
.fs-rule[b-85jujfiwis] { border: 1px solid var(--color-border); border-radius: var(--radius); padding: 0.55rem 0.6rem; background: #fcfdff;
    display: flex; flex-direction: column; gap: 0.4rem; }
.fs-rule-head[b-85jujfiwis] { display: flex; align-items: center; gap: 0.4rem; }
.fs-rule-when[b-85jujfiwis] { flex: 1; min-width: 0; padding: 0.35rem 0.45rem; border: 1px solid var(--color-border); border-radius: var(--radius);
    font-size: 0.82rem; font-family: var(--font-mono, ui-monospace, monospace); }
.fs-rule-line[b-85jujfiwis] { display: flex; align-items: center; gap: 0.35rem; }
.fs-rule-line input[b-85jujfiwis], .fs-rule-line select[b-85jujfiwis] { padding: 0.3rem 0.4rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.8rem; min-width: 0; }
.fs-rule-acct[b-85jujfiwis] { flex: 1 1 6rem; }
.fs-rule-side[b-85jujfiwis] { flex: 0 0 5.5rem; background: #fff; }
.fs-rule-amt[b-85jujfiwis] { flex: 1 1 7rem; font-family: var(--font-mono, ui-monospace, monospace); }
/* /Components/Shared/Flow/Inspectors/SourceInspector.razor.rz.scp.css */
.src-parse[b-qup4tj5jts] { margin: .6rem 0 .8rem; }
.src-parse-chips[b-qup4tj5jts] { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.src-parse-chip[b-qup4tj5jts] { font-size: .74rem; background: #f1f5f9; border: 1px solid #e2e8f0; color: #334155; border-radius: 6px; padding: .15rem .45rem; white-space: nowrap; }
.src-parse-toggle[b-qup4tj5jts] { font-size: .78rem; }
/* /Components/Shared/Flow/SaveAsTemplateModal.razor.rz.scp.css */
/* Save-as-template modal — harvested from FlowDesigner.razor.css (fs-capture / fs-radio). Scoped to this
   component; the modal-* chrome and fs-field/fs-hint primitives are provided globally / via DataStudio ::deep. */
.fs-drawer-h[b-4rfmraxfwi] { font-family: var(--font-subtitle, 'Hind', sans-serif); font-size: 0.78rem; text-transform: uppercase;
    letter-spacing: 0.05em; color: var(--color-text-secondary); margin: 0.6rem 0 0; }
.modal-body .fs-field[b-4rfmraxfwi] { margin-top: 0.75rem; }
.fs-radio[b-4rfmraxfwi] { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; font-weight: 600; margin-top: 0.6rem; }
.fs-capture[b-4rfmraxfwi] { margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--color-border); }
.fs-capture-list[b-4rfmraxfwi] { list-style: none; margin: 0.4rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.82rem; color: var(--color-text-secondary); }
.fs-capture-list li[b-4rfmraxfwi]::before { content: "▸"; color: #94a3b8; margin-right: 0.4rem; }
.fs-capture-rules[b-4rfmraxfwi] { margin-top: 0.6rem; display: flex; flex-direction: column; gap: 0.45rem; }
.fs-capture-rule[b-4rfmraxfwi] { padding: 0.4rem 0.55rem; background: #f8fafc; border: 1px solid var(--color-border); border-radius: var(--radius); }
.fs-capture-rule-when[b-4rfmraxfwi] { font-size: 0.78rem; color: var(--color-text-secondary); margin-bottom: 0.25rem; }
.fs-capture-line[b-4rfmraxfwi] { display: flex; align-items: baseline; gap: 0.35rem; font-size: 0.78rem; flex-wrap: wrap; }
.fs-capture code[b-4rfmraxfwi] { background: #eef2f7; padding: 0.05rem 0.3rem; border-radius: var(--radius); font-size: 0.76rem; }
/* /Components/Shared/Flow/StudioSuggestionStrip.razor.rz.scp.css */
.sg-strip[b-l8rlegtmiq] { display: flex; flex-direction: column; gap: .4rem; margin: .1rem 0 .85rem; }
.sg-chip[b-l8rlegtmiq] { display: flex; align-items: center; gap: .5rem; border: 1px solid #dbeafe; background: #f6f9ff; border-radius: 8px; padding: .4rem .55rem; }
.sg-spark[b-l8rlegtmiq] { color: #2563eb; font-size: .8rem; flex: none; }
.sg-text[b-l8rlegtmiq] { display: flex; flex-direction: column; gap: .1rem; min-width: 0; flex: 1; }
/* Long unbroken values (filenames, column names) must wrap inside the chip, never slide under the
   buttons — anywhere-wrapping beats truncation here because the value IS the evidence. */
.sg-title[b-l8rlegtmiq] { font-size: .8rem; color: #1e293b; overflow-wrap: anywhere; }
.sg-evidence[b-l8rlegtmiq] { font-size: .72rem; color: #64748b; overflow-wrap: anywhere; }
.sg-apply[b-l8rlegtmiq] { flex: none; font: inherit; font-size: .74rem; font-weight: 600; color: #1d4ed8; background: #fff; border: 1px solid #bfdbfe; border-radius: 6px; padding: .2rem .5rem; cursor: pointer; white-space: nowrap; }
.sg-apply:hover[b-l8rlegtmiq] { background: #eff6ff; }
.sg-apply:disabled[b-l8rlegtmiq] { opacity: .6; cursor: default; }
.sg-dismiss[b-l8rlegtmiq] { flex: none; font: inherit; font-size: .85rem; line-height: 1; color: #94a3b8; background: none; border: none; cursor: pointer; padding: .15rem .25rem; border-radius: 4px; }
.sg-dismiss:hover[b-l8rlegtmiq] { color: #475569; background: #eef2f7; }
.sg-more[b-l8rlegtmiq] { align-self: flex-start; font: inherit; font-size: .74rem; color: #2563eb; background: none; border: none; cursor: pointer; padding: 0 .15rem; }
/* /Components/Shared/FlowCanvas.razor.rz.scp.css */
/* ── Canvas ─────────────────────────────────────────────────────────────────── */
.fc-canvas[b-jnp7si900m] {
    position: relative;
    height: 640px;
    /* Fluid width — fills whatever column it gets. flow-canvas.js fits the graph into that width on
       load, so a narrow column zooms the view out rather than clipping the right border + zoom controls. */
    margin-top: 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    background-color: #fafcff;
    background-image: radial-gradient(circle, #e3e9f2 1px, transparent 1px);
    background-size: 22px 22px;
    overflow: hidden;
    cursor: grab;
    touch-action: none;
}
.fc-canvas.is-panning[b-jnp7si900m] { cursor: grabbing; }

/* The pan/zoom layer — JS sets transform: translate()/scale() here; nodes + edges live inside it. */
.fc-world[b-jnp7si900m] { position: absolute; inset: 0; transform-origin: 0 0; will-change: transform; }

/* ── Zoom controls ──────────────────────────────────────────────────────────── */
.fc-zoom[b-jnp7si900m] { position: absolute; top: 10px; right: 12px; z-index: 5; display: flex; gap: 3px; padding: 3px;
    background: rgba(255, 255, 255, 0.92); border: 1px solid var(--color-border); border-radius: 9px; box-shadow: var(--shadow-card); }
.fc-zoom-btn[b-jnp7si900m] { width: 28px; height: 28px; border: 0; background: transparent; border-radius: 6px; font-size: 1.05rem; line-height: 1;
    cursor: pointer; color: var(--color-text); display: inline-flex; align-items: center; justify-content: center; }
.fc-zoom-btn:hover[b-jnp7si900m] { background: #eef2f7; color: var(--color-brand); }

.fc-edges[b-jnp7si900m] { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.fc-edge[b-jnp7si900m] { fill: none; stroke: #cbd5e1; stroke-width: 2.5; }
.fc-edge-flow[b-jnp7si900m] { fill: none; stroke: url(#fc-flow-grad); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 5 11; animation: fc-flow-b-jnp7si900m 0.9s linear infinite; }

/* Wide transparent hit target over each connector — clickable (select/delete in the inspector) even though
   the svg layer itself ignores pointer events. Selected = a soft teal halo along the edge. */
.fc-edge-hit[b-jnp7si900m] { pointer-events: stroke; stroke: transparent; stroke-width: 16; cursor: pointer; animation: none; }
.fc-edge-hit:hover[b-jnp7si900m] { stroke: rgba(14, 165, 198, 0.12); }
.fc-edge-hit.is-selected[b-jnp7si900m] { stroke: rgba(14, 165, 198, 0.22); }

/* Port label pill near the edge start (matched / unmatched / exceptions / lines). */
.fc-edge-label[b-jnp7si900m] { font-size: 10px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
    fill: #64748b; pointer-events: none; }

/* Click-connect mode: the source keeps focus, legal targets invite the click, the rest step back. */
.fc-canvas.is-connecting .fc-node.fc-connect-illegal[b-jnp7si900m] { opacity: 0.35; }
.fc-canvas.is-connecting .fc-node.fc-connect-legal[b-jnp7si900m] { box-shadow: 0 0 0 2px var(--color-brand-teal, #0ea5c6), 0 10px 26px rgba(15, 23, 42, 0.14); cursor: crosshair; }
.fc-canvas.is-connecting .fc-node.fc-connect-source[b-jnp7si900m] { border-color: var(--color-brand-teal, #0ea5c6); }
/* Hold the chips still while aiming a connection — the idle bob makes targets wobble. */
.fc-canvas.is-connecting .fc-node[b-jnp7si900m] { animation: none; }
/* The legal node currently under the dragged connector answers with a stronger halo. */
.fc-canvas.is-connecting .fc-node.fc-connect-legal.is-connect-hover[b-jnp7si900m] {
    box-shadow: 0 0 0 3px var(--color-brand-teal, #0ea5c6), 0 14px 32px rgba(14, 165, 198, 0.28);
}

/* ── Drag-to-connect port handles ───────────────────────────────────────────── */
/* Out handle on the right edge (one per named port, fanned to match the edge fan-out); a passive
   landing dot on the left. Hidden until the node is hovered or a connection is in flight.
   `is-connect-dragging` lives on .fc-world — Blazor rewrites the canvas element's class mid-drag. */
.fc-port[b-jnp7si900m] {
    position: absolute; box-sizing: border-box;
    width: 14px; height: 14px; border-radius: 999px; padding: 0;
    background: #fff; border: 2px solid var(--color-brand-teal, #0ea5c6);
    opacity: 0; transition: opacity 0.12s, transform 0.12s, box-shadow 0.12s;
    z-index: 3;
}
.fc-port-out[b-jnp7si900m] { right: -7px; top: 50%; transform: translateY(-50%); cursor: crosshair; }
.fc-port-out:hover[b-jnp7si900m] { transform: translateY(-50%) scale(1.35); box-shadow: 0 0 0 4px rgba(14, 165, 198, 0.18); }
.fc-port-in[b-jnp7si900m] { left: -6px; top: 50%; transform: translateY(-50%); width: 11px; height: 11px;
    border-color: #94a3b8; pointer-events: none; }
.fc-node:hover .fc-port[b-jnp7si900m],
.fc-canvas.is-connecting .fc-port[b-jnp7si900m],
.fc-world.is-connect-dragging .fc-port[b-jnp7si900m] { opacity: 1; }
/* No handles mid-mute: an illegal target's ports would only tease. */
.fc-canvas.is-connecting .fc-node.fc-connect-illegal .fc-port[b-jnp7si900m] { opacity: 0; }

/* The rubber band the pointer drags out of a port. */
.fc-edge-temp[b-jnp7si900m] { stroke: var(--color-brand-teal, #0ea5c6); stroke-width: 2.5; stroke-dasharray: 6 6; }
.fc-edge-temp[d=""][b-jnp7si900m] { display: none; }
@keyframes fc-flow-b-jnp7si900m { to { stroke-dashoffset: -32; } }
.fc-canvas.is-running .fc-edge-flow[b-jnp7si900m] { animation-duration: 0.4s; stroke-width: 4; }
.fc-canvas.is-running[b-jnp7si900m] { box-shadow: 0 0 0 2px #bae6fd, var(--shadow-card); }

/* ── Nodes ──────────────────────────────────────────────────────────────────── */
.fc-node[b-jnp7si900m] {
    position: absolute;
    width: 230px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
    padding: 0.85rem 1rem;
    cursor: grab;
    user-select: none;
    touch-action: none;
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.05s;
    animation: fc-bob-b-jnp7si900m 5s ease-in-out infinite;
    z-index: 2;
}
@keyframes fc-bob-b-jnp7si900m { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.fc-node:hover[b-jnp7si900m] { border-color: var(--color-brand-teal); box-shadow: 0 10px 26px rgba(15, 23, 42, 0.14); }
.fc-node.is-selected[b-jnp7si900m] { border-color: var(--color-brand); box-shadow: 0 0 0 2px #dbeafe, 0 10px 26px rgba(15, 23, 42, 0.14); }
.fc-node.is-dragging[b-jnp7si900m] { cursor: grabbing; animation: none; z-index: 20; box-shadow: 0 18px 40px rgba(15, 23, 42, 0.22); }

/* Read-only canvas (run detail): nodes are clickable but not draggable, and hold still. */
.fc-node.fc-no-drag[b-jnp7si900m] { cursor: pointer; animation: none; }

.fc-node-head[b-jnp7si900m] { display: flex; align-items: center; gap: 0.55rem; }
.fc-node-icon[b-jnp7si900m] { display: inline-flex; width: 30px; height: 30px; border-radius: 9px; align-items: center; justify-content: center; flex-shrink: 0; }
.fc-node-icon svg[b-jnp7si900m] { width: 17px; height: 17px; }
.fc-node-title[b-jnp7si900m] { font-family: var(--font-title, 'Roboto', sans-serif); font-weight: 600; font-size: 0.92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fc-node-sub[b-jnp7si900m] { margin-top: 0.3rem; font-size: 0.76rem; color: var(--color-text-secondary); }

/* The node's configuration pill — what it is actually bound to / configured as ("Vendor Details ·
   2542 rows", "3 of 4 fields mapped"). One line, ellipsised; the title attribute carries the full text. */
.fc-node-detail[b-jnp7si900m] {
    margin-top: 0.4rem;
    display: block;
    width: fit-content;
    max-width: 100%;
    padding: 0.14rem 0.55rem;
    border-radius: 999px;
    background: #f1f5f9;
    border: 1px solid var(--color-border);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fc-node-source .fc-node-icon[b-jnp7si900m] { background: #e0f2fe; color: #0369a1; }
.fc-node-recipe .fc-node-icon[b-jnp7si900m] { background: #fef3c7; color: #b45309; }
.fc-node-posting[b-jnp7si900m] { width: 248px; border-color: #bfdbfe; box-shadow: 0 8px 24px rgba(7, 70, 132, 0.16); }
.fc-node-posting .fc-node-icon[b-jnp7si900m] { background: var(--color-brand, #074684); color: #fff; }
.fc-node-posting .fc-node-title[b-jnp7si900m] { color: var(--color-brand, #074684); }
.fc-node-output .fc-node-icon[b-jnp7si900m] { background: #dcfce7; color: #15803d; }

/* ── Status badge (run detail) ──────────────────────────────────────────────── */
.fc-node-badge[b-jnp7si900m] {
    position: absolute; top: -8px; right: -8px;
    width: 22px; height: 22px; border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.72rem; font-weight: 700; line-height: 1;
    background: #eef2f7; color: #475569; border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18);
}
.fc-badge-ok[b-jnp7si900m] { background: #dcfce7; color: #15803d; }
.fc-badge-fail[b-jnp7si900m] { background: #fee2e2; color: #b91c1c; }
.fc-badge-skip[b-jnp7si900m] { background: #f1f5f9; color: #64748b; }
.fc-badge-warn[b-jnp7si900m] { background: #fef3c7; color: #b45309; }
.fc-badge-running[b-jnp7si900m] { background: #e0f2fe; color: #0369a1; animation: fc-badge-pulse-b-jnp7si900m 1s ease-in-out infinite; }
@keyframes fc-badge-pulse-b-jnp7si900m {
    0%, 100% { box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18); }
    50% { box-shadow: 0 0 0 5px rgba(14, 165, 233, 0.25); }
}

/* ── Needs-input cue (AI-drafted node still awaiting an operator value) ──────── */
.fc-node.fc-node-needs-input[b-jnp7si900m] { border-color: #f59e0b; box-shadow: 0 0 0 1px #fde68a, 0 8px 24px rgba(180, 83, 9, 0.16); }
.fc-node-needs[b-jnp7si900m] {
    position: absolute; top: -9px; left: 14px;
    padding: 0.08rem 0.42rem; border-radius: 999px;
    font-size: 0.66rem; font-weight: 700; letter-spacing: 0.01em; line-height: 1.3;
    background: #fef3c7; color: #92400e; border: 1px solid #fcd34d;
    box-shadow: 0 2px 6px rgba(180, 83, 9, 0.18);
}

/* #691: proactive-suggestion cue — deliberately quieter than the needs-input badge. */
.fc-node-spark[b-jnp7si900m] {
    position: absolute; top: -8px; right: 14px;
    font-size: 0.7rem; line-height: 1.3;
    color: #2563eb; background: #eff6ff; border: 1px solid #bfdbfe;
    border-radius: 999px; padding: 0.02rem 0.32rem;
}

@media (prefers-reduced-motion: reduce) { .fc-node[b-jnp7si900m] { animation: none; } .fc-edge-flow[b-jnp7si900m] { animation: none; } .fc-badge-running[b-jnp7si900m] { animation: none; } }
/* /Components/Shared/FlowSourceBindingPanel.razor.rz.scp.css */
/* Shared source-binding panel (#603). Scoped copies of the designer-drawer styles the lifted markup relies
   on — the host pages' scoped .razor.css (FlowDesigner / ReconFlowDesigner) cannot cascade into a child
   component, so the panel carries its own. Class names stay fs-* so the panel reads identically inside
   either designer's inspector. */

.fsb[b-umsuiaaqsg] { display: flex; flex-direction: column; gap: 0.55rem; }

.fs-field[b-umsuiaaqsg] { display: flex; flex-direction: column; gap: 0.3rem; font-size: 0.82rem; font-weight: 600; }
.fs-field input[b-umsuiaaqsg], .fs-field select[b-umsuiaaqsg] { padding: 0.4rem 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.85rem; font-weight: 400; background: #fff; }

.fs-hint[b-umsuiaaqsg] { font-size: 0.78rem; margin: 0; color: var(--color-text-secondary); }
.fs-hint.fs-error[b-umsuiaaqsg] { color: var(--color-danger, #b42318); }

.fs-drawer-h[b-umsuiaaqsg] { font-family: var(--font-subtitle, 'Hind', sans-serif); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-secondary); margin: 0.6rem 0 0; }

/* Bound-source caption + "view sample data" link */
.fs-bound[b-umsuiaaqsg] { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap;
    padding: 0.45rem 0.6rem; background: #f0f9ff; border: 1px solid #bae6fd; border-radius: var(--radius); }
.fs-bound-meta[b-umsuiaaqsg] { font-size: 0.76rem; color: #075985; font-weight: 600; }
.fs-link[b-umsuiaaqsg] { border: 0; background: transparent; color: var(--color-brand, #074684); font-size: 0.78rem; font-weight: 600; cursor: pointer; padding: 0; white-space: nowrap; align-self: flex-start; }
.fs-link:hover[b-umsuiaaqsg] { text-decoration: underline; }

.fs-analysis-row[b-umsuiaaqsg] { display: flex; align-items: center; gap: 0.4rem; }
.fs-analysis-row input[b-umsuiaaqsg] { flex: 1; padding: 0.35rem 0.45rem; border: 1px solid var(--color-border); border-radius: var(--radius); font-size: 0.82rem; }
.fs-arrow[b-umsuiaaqsg] { color: var(--color-text-secondary); }

.fs-chip[b-umsuiaaqsg] { border: 1px dashed #cbd5e1; background: #fff; border-radius: 999px; padding: 0.25rem 0.6rem; font-size: 0.76rem; cursor: pointer; color: var(--color-text-secondary); align-self: flex-start; }
.fs-chip:hover[b-umsuiaaqsg] { border-color: var(--color-brand-teal); color: var(--color-brand); }
.fs-x[b-umsuiaaqsg] { border: 0; background: transparent; color: var(--color-text-secondary); cursor: pointer; font-size: 0.85rem; }
.fs-x:hover[b-umsuiaaqsg] { color: var(--color-down, #dc2626); }

.fs-run-row[b-umsuiaaqsg] { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.2rem; }
/* /Components/Shared/FolderPickerModal.razor.rz.scp.css */
/* Folder picker — sits inside the shared .modal-card shell (app.css). Only the
   picker-specific layout lives here; backdrop/card/header/footer come from app.css. */

.folder-picker[b-vo8gh59kx0] {
    width: min(560px, 92vw);
}

.folder-picker-bar[b-vo8gh59kx0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.folder-picker-current[b-vo8gh59kx0] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.8125rem;
    color: var(--text-secondary, #475569);
}

.folder-picker-list[b-vo8gh59kx0] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 48vh;
    overflow-y: auto;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: var(--radius, 8px);
}

.folder-picker-list > li + li[b-vo8gh59kx0] {
    border-top: 1px solid var(--border, #e2e8f0);
}

.folder-picker-item[b-vo8gh59kx0] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: none;
    border: 0;
    text-align: left;
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--text-primary, #0f172a);
}

.folder-picker-item:hover[b-vo8gh59kx0],
.folder-picker-item:focus-visible[b-vo8gh59kx0] {
    background: var(--surface-hover, #f1f5f9);
}

.folder-picker-item-name[b-vo8gh59kx0] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.folder-picker-empty[b-vo8gh59kx0] {
    padding: 0.75rem;
    font-size: 0.875rem;
}

.folder-picker-footer[b-vo8gh59kx0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.folder-picker-selected[b-vo8gh59kx0] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.8125rem;
    color: var(--text-secondary, #475569);
}

.folder-picker-actions[b-vo8gh59kx0] {
    display: flex;
    gap: 0.5rem;
    flex: 0 0 auto;
}
/* /Components/Shared/GovernanceAlertQuietHours.razor.rz.scp.css */
.gov-alert-quiet[b-5h5hqt3ya5] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}

.gov-alert-quiet__field[b-5h5hqt3ya5] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.gov-alert-quiet__note[b-5h5hqt3ya5] {
    grid-column: 1 / -1;
    margin: 0;
}
/* /Components/Shared/GovernanceImportPanel.razor.rz.scp.css */
/* #1190: governance import preview. */
.gov-import__intro[b-14eqgaqvcx] { margin-bottom: 0.75rem; }
.gov-import__gap[b-14eqgaqvcx] { margin-top: 1rem; }
.gov-import__hint[b-14eqgaqvcx] { margin: 0.25rem 0 0.9rem; font-size: 0.85rem; }
.gov-import__group[b-14eqgaqvcx] { margin-bottom: 0.75rem; }
.gov-import__group-head[b-14eqgaqvcx] { padding: 0.5rem 0.85rem; }
.gov-import__group-head h3[b-14eqgaqvcx] { margin: 0; font-size: 0.95rem; }
.gov-import__group-body[b-14eqgaqvcx] { padding: 0.5rem 0.85rem; }
.gov-import__item[b-14eqgaqvcx] { padding: 0.35rem 0; border-bottom: 1px solid var(--border-subtle, #e5e7eb); }
.gov-import__item:last-child[b-14eqgaqvcx] { border-bottom: none; }
.gov-import__line[b-14eqgaqvcx] { display: flex; align-items: center; gap: 0.6rem; }
.gov-import__id[b-14eqgaqvcx] { font-size: 0.8rem; }
.gov-import__badge[b-14eqgaqvcx] { margin-left: auto; }
.gov-import__toggle[b-14eqgaqvcx] { margin: 0.25rem 0 0.4rem 1.6rem; }
.gov-import__note[b-14eqgaqvcx] { margin: 0.2rem 0 0 1.6rem; font-size: 0.85rem; }
.gov-import__conflicts[b-14eqgaqvcx] { margin: 0.3rem 0 0 1.6rem; padding-left: 1.1rem; font-size: 0.85rem; color: var(--danger-text, #991b1b); }
.gov-import__actions[b-14eqgaqvcx] { margin-top: 0.75rem; display: flex; gap: 0.75rem; align-items: center; }
.gov-import__map-pick[b-14eqgaqvcx] { margin-left: auto; display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; }
.gov-import__map-pick select[b-14eqgaqvcx] { min-width: 16rem; max-width: 26rem; }
.gov-import__note--open[b-14eqgaqvcx] { color: var(--danger-text, #991b1b); }
/* /Components/Shared/GovernanceTransferActions.razor.rz.scp.css */
/* #1190: Export all governance and Import on the Governance hub. */
.gov-transfer-actions[b-db67j2b0lr] { display: flex; gap: 0.5rem; flex-wrap: wrap; justify-content: flex-end; }
.gov-transfer-actions__message[b-db67j2b0lr] { margin: 0.4rem 0 0; font-size: 0.85rem; text-align: right; }
.gov-import-dialog[b-db67j2b0lr] { max-width: 56rem; width: 100%; }
/* /Components/Shared/ItemExportHost.razor.rz.scp.css */
.item-export-dialog[b-0bpb4lx7zg] {
    width: min(32rem, 100%);
}

.item-export-dialog .modal-body[b-0bpb4lx7zg] {
    padding: 1rem 1.25rem;
}

.item-export-dialog .modal-footer[b-0bpb4lx7zg] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--color-border);
}
/* /Components/Shared/Lineage/FieldLineagePanel.razor.rz.scp.css */
/* Strategy 3.2 — Lineage View styling. Calm, dense, scan-friendly. */

.lineage-panel[b-w498haf5gu] {
    border: 1px solid var(--border-soft, #e1e6ed);
    border-radius: 6px;
    padding: 0.9rem 1.1rem;
    background: var(--surface-quiet, #fafbfd);
    margin: 0.5rem 0;
}

.lineage-header[b-w498haf5gu] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    margin-bottom: 0.55rem;
}

.lineage-summary[b-w498haf5gu] {
    font-size: 0.85rem;
}

.lineage-row[b-w498haf5gu] {
    display: grid;
    grid-template-columns: 8rem 1fr;
    gap: 0.5rem;
    padding: 0.35rem 0;
    border-top: 1px dashed var(--border-soft, #e1e6ed);
}

.lineage-label[b-w498haf5gu] {
    font-size: 0.8rem;
    color: var(--text-muted, #5a6675);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.data-table-compact[b-w498haf5gu] {
    width: 100%;
    font-size: 0.84rem;
}

.data-table-compact th[b-w498haf5gu],
.data-table-compact td[b-w498haf5gu] {
    padding: 0.3rem 0.5rem;
}

.lineage-winner[b-w498haf5gu] {
    background: rgba(63, 144, 96, 0.06);
    font-weight: 500;
}

.lineage-loser[b-w498haf5gu] {
    color: var(--text-muted, #5a6675);
}

.lineage-ai-details[b-w498haf5gu] {
    margin-top: 0.6rem;
}

.lineage-ai-call[b-w498haf5gu] {
    border-left: 3px solid #c8d1de;
    padding: 0.4rem 0.6rem;
    margin: 0.3rem 0;
    background: white;
}

.lineage-ai-meta[b-w498haf5gu] {
    font-size: 0.82rem;
}

.lineage-pre[b-w498haf5gu] {
    background: #1d242c;
    color: #e9eef5;
    padding: 0.6rem 0.8rem;
    border-radius: 4px;
    overflow: auto;
    max-height: 22rem;
    font-size: 0.82rem;
    line-height: 1.45;
    white-space: pre-wrap;
}

.lineage-ai-note[b-w498haf5gu] {
    font-size: 0.82rem;
    margin: 0.4rem 0 0;
    font-style: italic;
}
/* /Components/Shared/ModelTestResultBadge.razor.rz.scp.css */
.model-test-result[b-bwcra650no] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
    margin-top: 0.4rem;
}

.model-test-meta[b-bwcra650no] {
    font-weight: 400;
    opacity: 0.85;
}

.model-test-message[b-bwcra650no] {
    font-size: 0.82rem;
    color: var(--text-muted, #6b7280);
}

.model-test-message code[b-bwcra650no] {
    font-size: 0.78rem;
    padding: 0.05rem 0.3rem;
    border-radius: 3px;
    background: var(--surface-subtle, #f3f4f6);
}

.model-test-reply[b-bwcra650no] {
    font-size: 0.82rem;
    font-style: italic;
    color: var(--text-muted, #6b7280);
}

/* The reason a test failed. Selectable so an operator can copy the provider's exact wording into a
   support ticket, and wrapped rather than truncated — the actionable sentence is often at the end. */
.model-test-error[b-bwcra650no] {
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--danger-text, #991b1b);
    background: var(--danger-surface, #fef2f2);
    border: 1px solid var(--danger-border, #fecaca);
    border-left-width: 3px;
    border-radius: 4px;
    padding: 0.5rem 0.65rem;
    max-width: 60rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    user-select: text;
}
/* /Components/Shared/Recon/ReconDependencyBanner.razor.rz.scp.css */
/* Inter-rec dependency banner (#188): calm amber notice, matching the #182 truncation banner tones. */
.recon-dep-banner[b-6a9gzwkvgw] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.7rem 0.9rem;
    margin: 0 0 1rem;
    border: 1px solid #f0d492;
    border-radius: 8px;
    background: #fdf6e7;
    color: #7a5a12;
}

.recon-dep-banner svg[b-6a9gzwkvgw] {
    flex: none;
    margin-top: 0.1rem;
}

.recon-dep-body[b-6a9gzwkvgw] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.85rem;
    line-height: 1.45;
}

.recon-dep-item[b-6a9gzwkvgw] {
    display: inline;
    margin-right: 0.35rem;
}
/* /Components/Shared/Recon/ReconFluxPanel.razor.rz.scp.css */
.recon-flux .card-header[b-arre5pl16l] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.recon-flux-vs[b-arre5pl16l] {
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

.recon-flux-headline[b-arre5pl16l] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-bottom: 1rem;
}

.recon-flux-stat[b-arre5pl16l] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.recon-flux-stat-label[b-arre5pl16l] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted, #64748b);
}

.recon-flux-stat-value[b-arre5pl16l] {
    font-size: 1.5rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.recon-flux-bands[b-arre5pl16l] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    border-top: 1px solid var(--border, #e2e8f0);
    padding-top: 0.75rem;
}

.recon-flux-band[b-arre5pl16l] {
    display: grid;
    grid-template-columns: 1fr auto 1.25rem auto auto;
    align-items: center;
    gap: 0.5rem;
    font-variant-numeric: tabular-nums;
}

.recon-flux-band-label[b-arre5pl16l] {
    font-weight: 500;
}

.recon-flux-band-arrow[b-arre5pl16l] {
    text-align: center;
    color: var(--muted, #94a3b8);
}

.recon-flux-band-delta[b-arre5pl16l] {
    text-align: right;
    min-width: 6ch;
    font-weight: 600;
}

/* A rise in variance / exceptions is a worsening (warm); a fall is an improvement (cool). Flat is neutral. */
.is-worse[b-arre5pl16l] { color: var(--danger, #dc2626); }
.is-better[b-arre5pl16l] { color: var(--success, #16a34a); }
.is-flat[b-arre5pl16l] { color: var(--muted, #64748b); }
/* /Components/Shared/Recon/ReconKpiCard.razor.rz.scp.css */
.recon-kpi[b-opsn14mc9c] {
    padding: 1rem 1.1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-height: 132px;
}

.recon-kpi-label[b-opsn14mc9c] {
    font-family: var(--font-subtitle, 'Hind', sans-serif);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-secondary, #64748b);
}

.recon-kpi-value[b-opsn14mc9c] {
    font-family: var(--font-title, 'Roboto', sans-serif);
    font-size: 1.9rem;
    font-weight: 600;
    line-height: 1.05;
    color: var(--color-text-primary, #0f172a);
}

.recon-kpi-value.is-good[b-opsn14mc9c] { color: var(--color-healthy, #22c55e); }
.recon-kpi-value.is-warn[b-opsn14mc9c] { color: var(--color-degraded, #f59e0b); }
.recon-kpi-value.is-bad[b-opsn14mc9c]  { color: var(--color-down, #ef4444); }

.recon-kpi-sub[b-opsn14mc9c] {
    font-size: 0.8rem;
}

.recon-kpi-spark[b-opsn14mc9c] {
    margin-top: auto;
}

.recon-kpi-bar[b-opsn14mc9c] {
    margin-top: auto;
    height: 6px;
    border-radius: 999px;
    background: #eef2f7;
    overflow: hidden;
}

.recon-kpi-bar > span[b-opsn14mc9c] {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--color-healthy, #22c55e);
    transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.recon-kpi-trend[b-opsn14mc9c] {
    align-self: flex-start;
    margin-top: 0.15rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.recon-kpi-trend.is-up[b-opsn14mc9c] { color: var(--color-healthy, #22c55e); }
.recon-kpi-trend.is-down[b-opsn14mc9c] { color: var(--color-down, #ef4444); }
.recon-kpi-trend.is-flat[b-opsn14mc9c] { color: var(--color-text-secondary, #64748b); }
/* /Components/Shared/Recon/ReconLineagePanel.razor.rz.scp.css */
.recon-lineage[b-kr0mq56gqb] {
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
    margin: 0.75rem 0;
    font-size: 0.85rem;
}

.recon-lineage-summary[b-kr0mq56gqb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.85rem;
    cursor: pointer;
    font-weight: 600;
    color: var(--text-strong, #1f2937);
    list-style: none;
}

.recon-lineage-summary[b-kr0mq56gqb]::-webkit-details-marker { display: none; }
.recon-lineage-summary svg[b-kr0mq56gqb] { color: var(--muted, #6b7280); flex: none; }

.recon-lineage-badge[b-kr0mq56gqb] {
    margin-left: auto;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
}

.recon-lineage-badge.is-exact[b-kr0mq56gqb] { background: #e7f6ec; color: #1a7f45; }
.recon-lineage-badge.is-drifted[b-kr0mq56gqb] { background: #fdf2e3; color: #9a5b00; }

.recon-lineage-rows[b-kr0mq56gqb] {
    margin: 0;
    padding: 0.25rem 0.85rem 0.75rem;
    display: grid;
    gap: 0.35rem;
}

.recon-lineage-row[b-kr0mq56gqb] {
    display: grid;
    grid-template-columns: 9.5rem 1fr;
    gap: 0.75rem;
    align-items: baseline;
}

.recon-lineage-row dt[b-kr0mq56gqb] { color: var(--muted, #6b7280); margin: 0; }

.recon-lineage-row dd[b-kr0mq56gqb] {
    margin: 0;
    color: var(--text-strong, #1f2937);
    font-variant-numeric: tabular-nums;
    word-break: break-word;
}

.recon-lineage-actions[b-kr0mq56gqb] {
    padding: 0 0.85rem 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
}

.recon-lineage-drift[b-kr0mq56gqb] {
    margin: 0;
    color: #9a5b00;
    font-size: 0.8rem;
}
/* /Components/Shared/Recon/ReconSparkline.razor.rz.scp.css */
.recon-spark[b-c9br20wzdo] {
    width: 100%;
    height: 28px;
    display: block;
    overflow: visible;
}

.recon-spark-line[b-c9br20wzdo] {
    fill: none;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.recon-spark-fill[b-c9br20wzdo] {
    fill-opacity: 0.12;
    stroke: none;
}
/* /Components/Shared/Recon/ReconTruncationBanner.razor.rz.scp.css */
/* Row-cap truncation banner (#182): calm amber notice, consistent with the app's warning tones. */
.recon-trunc-banner[b-tkdjzw5bnx] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.7rem 0.9rem;
    margin: 0 0 1rem;
    border: 1px solid #f0d492;
    border-radius: 8px;
    background: #fdf6e7;
    color: #7a5a12;
}

.recon-trunc-banner svg[b-tkdjzw5bnx] {
    flex: none;
    margin-top: 0.1rem;
}

.recon-trunc-body[b-tkdjzw5bnx] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    font-size: 0.85rem;
    line-height: 1.45;
}

.recon-trunc-item[b-tkdjzw5bnx] {
    display: inline;
    margin-right: 0.35rem;
}
/* /Components/Shared/ReferenceDataPreviewModal.razor.rz.scp.css */
/* The sample grid scrolls both ways inside a framed viewport. Classic (always-visible) scrollbars
   are forced on: macOS overlay scrollbars stay hidden until you scroll, which makes a wide sample
   read as if there were no more columns. Cells don't wrap — the grid keeps each record on one row
   and relies on the horizontal scrollbar instead. */
.preview-scroll[b-6u7xx9ldkn] {
    overflow: auto;
    max-height: 60vh;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.preview-scroll[b-6u7xx9ldkn]::-webkit-scrollbar { width: 11px; height: 11px; }
.preview-scroll[b-6u7xx9ldkn]::-webkit-scrollbar-track { background: var(--color-surface-raised, #f1f5f9); }
.preview-scroll[b-6u7xx9ldkn]::-webkit-scrollbar-thumb {
    background: #c3ccd9;
    border-radius: 8px;
    border: 2px solid var(--color-surface-raised, #f1f5f9);
}
.preview-scroll[b-6u7xx9ldkn]::-webkit-scrollbar-thumb:hover { background: #9aa7b8; }
.preview-scroll[b-6u7xx9ldkn]::-webkit-scrollbar-corner { background: var(--color-surface-raised, #f1f5f9); }

/* Firefox has no ::-webkit-scrollbar; give it thin coloured scrollbars instead. Guarded so the
   standard properties don't override the WebKit styling in Chromium (which supports both). */
@supports not selector(::-webkit-scrollbar) {
    .preview-scroll[b-6u7xx9ldkn] { scrollbar-width: thin; scrollbar-color: #c3ccd9 var(--color-surface-raised, #f1f5f9); }
}

.preview-scroll th[b-6u7xx9ldkn],
.preview-scroll td[b-6u7xx9ldkn] { white-space: nowrap; }

/* The header survives vertical scrolling — 50 sample rows are useless without column names. */
.preview-scroll thead th[b-6u7xx9ldkn] {
    position: sticky;
    top: 0;
    background: var(--color-surface, #fff);
    z-index: 1;
}
/* /Components/Shared/SignalConditionEditor.razor.rz.scp.css */
/* Signal guard editor (#799). Sits inside an extraction-profile step card, so it stays flush with
   the surrounding form rows rather than boxing itself: one tinted rail marks the condition list as
   a nested block, and the rows themselves wrap on narrow laptops instead of scrolling sideways. */

.sig-guard[b-pcexf2bhfq] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ── Condition rows ── */

.sig-guard-tests[b-pcexf2bhfq] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-left: 0.75rem;
    border-left: 2px solid var(--color-border, #e2e8f0);
}

.sig-guard-test[b-pcexf2bhfq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.sig-guard-test select[b-pcexf2bhfq] {
    width: auto;
    min-width: 9rem;
}

.sig-guard-value[b-pcexf2bhfq] {
    width: 7rem;
}

.sig-guard-unit[b-pcexf2bhfq] {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #64748b);
    margin-left: -0.15rem;
}

.sig-guard-remove[b-pcexf2bhfq] {
    padding: 0.125rem 0.4rem;
    line-height: 1;
}

/* Hints and warnings break to their own full-width line so a long explanation never squeezes the
   controls it belongs to. */
.sig-guard-hint[b-pcexf2bhfq],
.sig-guard-warning[b-pcexf2bhfq] {
    flex-basis: 100%;
    font-size: 0.8125rem;
}

.sig-guard-warning[b-pcexf2bhfq] {
    color: var(--color-degraded, #f59e0b);
    font-weight: 600;
}

.sig-guard-add[b-pcexf2bhfq] {
    align-self: flex-start;
    padding: 0.25rem 0.6rem;
    font-size: 0.8125rem;
}

/* ── Origin badge: is this signal free, or does it need a vision call? ── */

.sig-guard-origin[b-pcexf2bhfq] {
    display: inline-block;
    padding: 0.05rem 0.35rem;
    border-radius: 0.25rem;
    border: 1px solid var(--color-border, #e2e8f0);
    background: var(--color-surface-raised, #f8fafc);
    color: var(--color-text-secondary, #64748b);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    cursor: help;
}

/* An AI signal is the one that can be absent at runtime, so it is the one that gets colour. */
.sig-guard-origin-vision[b-pcexf2bhfq] {
    border-color: var(--color-brand-teal, #0ea5c6);
    color: var(--color-brand-teal, #0ea5c6);
    background: transparent;
}

/* ── Plain-English summary ── */

.sig-guard-summary[b-pcexf2bhfq] {
    margin: 0.15rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #64748b);
}

.sig-guard-summary strong[b-pcexf2bhfq] {
    color: var(--color-text-primary, #0f172a);
}
/* /Components/Shared/StudioImportButton.razor.rz.scp.css */
.studio-import-dialog[b-1thzm41uab] {
    width: min(48rem, 100%);
}

.studio-import-dialog .modal-body[b-1thzm41uab] {
    padding: 1rem 1.25rem;
    overflow-y: auto;
}

.studio-import-dialog .modal-footer[b-1thzm41uab] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid var(--color-border);
}
/* /Components/Shared/TabularRegionPicker.razor.rz.scp.css */
.trp[b-rwmbjis047] { display: flex; flex-direction: column; gap: .6rem; margin-top: .6rem; }
.trp-field[b-rwmbjis047] { display: flex; align-items: center; gap: .4rem; font-size: .82rem; color: #475569; }
.trp-field select[b-rwmbjis047] { font: inherit; padding: .3rem .45rem; border: 1px solid #cbd5e1; border-radius: 6px; background: #fff; }
.trp-headerless[b-rwmbjis047] { display: flex; align-items: center; gap: .45rem; font-size: .82rem; color: #475569; cursor: pointer; }
.trp-hint[b-rwmbjis047] { font-size: .78rem; color: #64748b; margin: 0; }
.trp-scroll[b-rwmbjis047] { overflow-x: auto; border: 1px solid #eef2f7; border-radius: 8px; }
.trp-raw[b-rwmbjis047] { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: .8rem; }
.trp-raw td[b-rwmbjis047] { padding: .3rem .55rem; border-bottom: 1px solid #f1f5f9; white-space: nowrap; max-width: 16rem; overflow: hidden; text-overflow: ellipsis; }
.trp-raw tr[b-rwmbjis047] { cursor: pointer; }
.trp-raw tr:hover td[b-rwmbjis047] { background: #f8fbff; }
.trp-rownum[b-rwmbjis047] { color: #94a3b8; font-variant-numeric: tabular-nums; background: #f8fafc; text-align: right; position: sticky; left: 0; }
.trp-is-header td[b-rwmbjis047] { background: #dbeafe !important; color: #1e3a8a; font-weight: 600; }
.trp-is-skipped td[b-rwmbjis047] { color: #cbd5e1; }
.trp-is-data td[b-rwmbjis047] { color: #475569; }
.trp-actions[b-rwmbjis047] { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.trp-startrow[b-rwmbjis047] { width: 5rem; padding: .3rem .45rem; border: 1px solid #cbd5e1; border-radius: 6px; font: inherit; }
/* /Components/Shared/WorkDrillDownBody.razor.rz.scp.css */
/* Reuses the cockpit's KPI/chart primitives. Kept here scoped to the shared
   component so any drill-down page that embeds <WorkDrillDownBody> picks them
   up without depending on Work.razor's own scoped sheet. */

.dashboard-cards[b-hhl1vtybdj] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 1100px) {
    .dashboard-cards[b-hhl1vtybdj] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .dashboard-cards[b-hhl1vtybdj] { grid-template-columns: 1fr; }
}

.stat-card[b-hhl1vtybdj] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 1.25rem 1.25rem 1.1rem;
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    transition: border-color 0.15s, box-shadow 0.15s;
    position: relative;
    overflow: hidden;
}

.stat-card[b-hhl1vtybdj]::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--color-brand-teal);
    opacity: 0.85;
}

.stat-card-head[b-hhl1vtybdj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.stat-card .stat-label[b-hhl1vtybdj] {
    font-family: var(--font-subtitle);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-secondary);
}

.stat-card .stat-value[b-hhl1vtybdj] {
    font-family: var(--font-title);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin-top: 0.1rem;
}

.stat-card .stat-sub[b-hhl1vtybdj] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
    margin-top: 0.15rem;
}

.stat-card--alert[b-hhl1vtybdj]::before { background: var(--color-down); }
.stat-card--ok[b-hhl1vtybdj]::before    { background: var(--color-healthy); }

/* Chart card */

.chart-card .card-header[b-hhl1vtybdj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.chart-meta[b-hhl1vtybdj] {
    font-size: 0.78rem;
    color: var(--color-text-secondary);
}

.chart-container[b-hhl1vtybdj] {
    padding: 1rem 1.5rem 1.25rem;
}

.chart-empty[b-hhl1vtybdj] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 220px;
    color: var(--color-text-secondary);
    font-size: 0.875rem;
}

.dashboard-table-card[b-hhl1vtybdj] {
    margin-bottom: 1.5rem;
}

.dashboard-loading[b-hhl1vtybdj] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 3rem 1.5rem;
    text-align: center;
    color: var(--color-text-secondary);
    box-shadow: var(--shadow-card);
}

.dashboard-loading .spinner[b-hhl1vtybdj] {
    margin: 0 auto 0.75rem;
}

/* Cost accountability: two side-by-side rollup tables (service + stage). */
.dashboard-grid[b-hhl1vtybdj] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 900px) {
    .dashboard-grid[b-hhl1vtybdj] { grid-template-columns: 1fr; }
}

/* Colour key aligning the service-cost table rows to the daily chart series. */
.cost-swatch[b-hhl1vtybdj] {
    display: inline-block;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 2px;
    margin-right: 0.5rem;
    vertical-align: middle;
}

.data-table tfoot td[b-hhl1vtybdj] {
    border-top: 2px solid var(--color-border);
    font-variant-numeric: tabular-nums;
}
/* /Components/Shared/WorkersPanel.razor.rz.scp.css */
.workers-panel[b-bu9canhjuo] {
    margin-bottom: 1.5rem;
}

/* Hint band between the card header and the table — same horizontal rhythm as the header. */
.workers-hint[b-bu9canhjuo] {
    padding: 0.4rem 1.5rem 0.6rem;
    border-bottom: 1px solid var(--color-border);
}

.workers-host[b-bu9canhjuo] {
    margin-left: 0.4rem;
    font-size: 0.78rem;
}

/* Heartbeat freshness dot (moved from Live.razor.css when the panel became shared). */
.hb-dot[b-bu9canhjuo] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 0.5rem;
    vertical-align: middle;
}
.hb-dot--ok[b-bu9canhjuo] { background: #16a34a; box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15); }
.hb-dot--warn[b-bu9canhjuo] { background: #d97706; box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.15); }
.hb-dot--error[b-bu9canhjuo] { background: #dc2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15); }
.hb-dot--muted[b-bu9canhjuo] { background: #94a3b8; box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.15); }
/* /Components/Shared/WorkGrid.razor.rz.scp.css */
.work-grid[b-d9hwga0h2y] {
    overflow: hidden;
}

.work-grid-filters[b-d9hwga0h2y] {
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface);
}

.work-grid-empty[b-d9hwga0h2y] {
    padding: 1.5rem;
    text-align: center;
}

.work-grid-pager[b-d9hwga0h2y] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 1rem;
    border-top: 1px solid var(--color-border);
    background: var(--color-surface);
}

.work-grid-pager-info[b-d9hwga0h2y] {
    font-size: 0.85rem;
    color: var(--color-text-secondary);
}

.work-grid-pager-controls[b-d9hwga0h2y] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.work-grid-pager-size[b-d9hwga0h2y] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
}

.work-grid-pager-size select[b-d9hwga0h2y] {
    padding: 0.25rem 0.5rem;
    border: 1px solid var(--color-border);
    border-radius: 0.35rem;
    background: var(--color-surface-raised);
    font-size: 0.85rem;
}

/* ── Skeleton rows ───────────────────────────────────────────────────────── */

.work-grid-skeleton-row td[b-d9hwga0h2y] {
    padding: 0.875rem 1rem;
}

.work-grid-skeleton-bar[b-d9hwga0h2y] {
    display: block;
    height: 0.75rem;
    border-radius: 0.25rem;
    background: linear-gradient(
        90deg,
        rgba(15, 23, 42, 0.06) 0%,
        rgba(15, 23, 42, 0.12) 50%,
        rgba(15, 23, 42, 0.06) 100%
    );
    background-size: 200% 100%;
    animation: work-grid-skeleton-shimmer-b-d9hwga0h2y 1.4s linear infinite;
}

@keyframes work-grid-skeleton-shimmer-b-d9hwga0h2y {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
/* /Components/SolutionDesign/SdAgentWorkings.razor.rz.scp.css */
/* #1133 M6: "Show the workings", calm and secondary to the review it sits under. */
.sd-workings[b-h1tdqlo4cv] {
    margin-top: 0.4rem;
}

.sd-workings__toggle[b-h1tdqlo4cv] {
    font-size: 0.8rem;
}

.sd-workings__panel[b-h1tdqlo4cv] {
    margin-top: 0.35rem;
    padding: 0.45rem 0.65rem;
    border-left: 3px solid var(--color-border, #d1d5db);
    font-size: 0.8125rem;
}

.sd-workings__attempt + .sd-workings__attempt[b-h1tdqlo4cv] {
    margin-top: 0.5rem;
}

.sd-workings__summary[b-h1tdqlo4cv] {
    margin: 0 0 0.25rem;
    font-weight: 500;
}

.sd-workings__line[b-h1tdqlo4cv] {
    margin: 0 0 0.25rem;
}

.sd-workings__error[b-h1tdqlo4cv] {
    color: var(--color-danger, #b91c1c);
}

.sd-workings__steps[b-h1tdqlo4cv] {
    margin: 0 0 0.25rem;
    padding-left: 1.2rem;
}

.sd-workings__steps li[b-h1tdqlo4cv] {
    margin: 0.1rem 0;
    overflow-wrap: anywhere;
}

.sd-workings__gap[b-h1tdqlo4cv] {
    /* Not a list item, so it takes no number and the steps around it keep theirs. */
    display: block;
    list-style: none;
    font-style: italic;
}
/* /Components/SolutionDesign/SdAnsweredQuestions.razor.rz.scp.css */
.sd-answered[b-7h50vmxpna] {
    margin: 0 0 0.75rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
    font-size: 0.9rem;
}

.sd-answered > summary[b-7h50vmxpna] {
    cursor: pointer;
    font-weight: 600;
}

.sd-answered__none[b-7h50vmxpna] {
    margin: 0.5rem 0;
}

.sd-answered__list[b-7h50vmxpna] {
    list-style: none;
    margin: 0.5rem 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.sd-answered__item[b-7h50vmxpna] {
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 6px;
}

.sd-answered__item p[b-7h50vmxpna] {
    margin: 0.25rem 0;
}

.sd-answered__question[b-7h50vmxpna] {
    font-weight: 600;
}

.sd-answered__changes[b-7h50vmxpna] {
    margin: 0.25rem 0;
    padding-left: 1.1rem;
    color: var(--text-muted, #6b7280);
}

.sd-answered__actions[b-7h50vmxpna] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 0.4rem;
}

.sd-answered__confirm[b-7h50vmxpna] {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.sd-answered__undone[b-7h50vmxpna] {
    margin-top: 0.5rem;
}

.sd-answered__undone ul[b-7h50vmxpna] {
    margin: 0.4rem 0 0;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.25rem;
}
/* /Components/SolutionDesign/SdApplyWalk.razor.rz.scp.css */
.sd-walk__head[b-f4odx86kpw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.sd-walk__hint[b-f4odx86kpw] {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
}

.sd-walk__notice[b-f4odx86kpw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.sd-walk[b-f4odx86kpw] {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.6rem;
}

.sd-walk__step[b-f4odx86kpw] {
    display: flex;
    gap: 0.9rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
}

.sd-walk__step.is-next[b-f4odx86kpw] {
    border-color: #2563eb;
    box-shadow: 0 0 0 1px #2563eb inset;
}

.sd-walk__step.is-selected[b-f4odx86kpw] {
    background: #f8fafc;
}

.sd-walk__number[b-f4odx86kpw] {
    flex: 0 0 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: #f1f5f9;
    color: #334155;
    font-weight: 600;
    font-size: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.sd-walk__body[b-f4odx86kpw] {
    flex: 1 1 auto;
    min-width: 0;
}

.sd-walk__line[b-f4odx86kpw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sd-walk__name[b-f4odx86kpw] {
    font-weight: 600;
}

.sd-walk__note[b-f4odx86kpw] {
    margin: 0.35rem 0 0;
    font-size: 0.875rem;
}

.sd-walk__actions[b-f4odx86kpw] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.sd-walk__confirm[b-f4odx86kpw] {
    margin-top: 0.5rem;
    max-width: 32rem;
}

.sd-walk__label[b-f4odx86kpw] {
    display: block;
    font-size: 0.85rem;
    margin-bottom: 0.25rem;
}

.sd-walk__chip--pending[b-f4odx86kpw] { background: #e0f2fe; color: #075985; }
.sd-walk__chip--applied[b-f4odx86kpw] { background: #dcfce7; color: #166534; }
.sd-walk__chip--skipped[b-f4odx86kpw] { background: #f1f5f9; color: #475569; }
.sd-walk__chip--stale[b-f4odx86kpw] { background: #fef3c7; color: #92400e; }
.sd-walk__chip--no-adapter[b-f4odx86kpw] { background: #f8fafc; color: #64748b; border: 1px dashed #cbd5e1; }
.sd-walk__chip--team[b-f4odx86kpw] { background: #eef2ff; color: #3730a3; border: 1px solid #c7d2fe; }
.sd-walk__chip--next[b-f4odx86kpw] { background: #2563eb; color: #fff; }

/* How the design works (#1046): what you will do at this step. */
.sd-walk__todo[b-f4odx86kpw] {
    margin: 0.3rem 0 0;
    font-size: 0.875rem;
}

.sd-walk__todo-label[b-f4odx86kpw] {
    font-weight: 600;
    color: var(--color-text-secondary);
}

/* The plan (#1069): what you can do next, the state of each part, what it waits on. */
.sd-plan__summary[b-f4odx86kpw] {
    margin: 1rem 0 0;
    padding: 0.8rem 1rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: #f8fafc;
}

.sd-plan__title[b-f4odx86kpw] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.sd-plan__ready[b-f4odx86kpw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    list-style: none;
    margin: 0.4rem 0 0;
    padding: 0;
}

.sd-plan__counts[b-f4odx86kpw] {
    margin: 0.35rem 0 0;
    font-size: 0.875rem;
}

.sd-plan__warning[b-f4odx86kpw] {
    color: #92400e;
}

.sd-plan__not-needed[b-f4odx86kpw] {
    margin-top: 1.25rem;
}

.sd-plan__not-needed ul[b-f4odx86kpw] {
    margin: 0.4rem 0 0;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.25rem;
}

.sd-walk__step.is-blocked[b-f4odx86kpw] {
    background: #fcfcfd;
}

.sd-walk__help[b-f4odx86kpw] {
    margin: 0.25rem 0 0.5rem;
    font-size: 0.8rem;
}

.sd-plan__chip--ready[b-f4odx86kpw] { background: #e0f2fe; color: #075985; }
.sd-plan__chip--in-progress[b-f4odx86kpw] { background: #ede9fe; color: #5b21b6; }
.sd-plan__chip--blocked[b-f4odx86kpw] { background: #fef3c7; color: #92400e; }
.sd-plan__chip--done[b-f4odx86kpw] { background: #dcfce7; color: #166534; }
.sd-plan__chip--skipped[b-f4odx86kpw] { background: #f1f5f9; color: #475569; }
/* /Components/SolutionDesign/SdAreaReview.razor.rz.scp.css */
/* One design area's review (#1198): a quiet tool row above the part cards. */
.sd-area-review[b-nm0bb8w3u6] {
    margin: 0 0 0.85rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface-raised);
    display: grid;
    gap: 0.4rem;
}

.sd-area-review__row[b-nm0bb8w3u6],
.sd-area-review__choices[b-nm0bb8w3u6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.sd-area-review__status[b-nm0bb8w3u6] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.sd-area-review__reason[b-nm0bb8w3u6] {
    min-width: 18rem;
    flex: 1;
}

.sd-area-review__history ol[b-nm0bb8w3u6] {
    margin: 0.4rem 0 0 1.25rem;
    padding: 0;
    display: grid;
    gap: 0.2rem;
    font-size: 0.85rem;
}

/* The review chips: calm, distinct from a part's evidence status. */
.sd-review--draft[b-nm0bb8w3u6]         { background: var(--color-surface); color: var(--color-text-secondary); border: 1px solid var(--color-border); }
.sd-review--inreview[b-nm0bb8w3u6]      { background: #e0f2fe; color: #075985; }
.sd-review--needsdecision[b-nm0bb8w3u6] { background: #fef3c7; color: #92400e; }
.sd-review--agreed[b-nm0bb8w3u6]        { background: #dcfce7; color: #166534; }
/* /Components/SolutionDesign/SdAssignChip.razor.rz.scp.css */
/* Assign (#1154): a small button that opens a form beneath it; once assigned, one quiet line. */
.sd-assign[b-ntjnnujjr0] {
    position: relative;
    display: inline-block;
}

.sd-assign__pop[b-ntjnnujjr0] {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 20;
    min-width: 18rem;
    display: grid;
    gap: 0.5rem;
    margin-top: 0.25rem;
    padding: 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.sd-assign__actions[b-ntjnnujjr0] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

.sd-assign__held[b-ntjnnujjr0] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.85rem;
}

.sd-assign__error[b-ntjnnujjr0] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--color-danger, #b42318);
}
/* /Components/SolutionDesign/SdBrief.razor.rz.scp.css */
/* The brief (#1165): a readiness meter, then the sections as calm cards with their guidance folded in. */
.sd-brief__header[b-yij13w1zl0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.sd-brief__readiness[b-yij13w1zl0] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 18rem;
}

.sd-brief__meter[b-yij13w1zl0] {
    flex: 1;
    height: 0.5rem;
    border-radius: 999px;
    background: var(--color-surface-raised);
    overflow: hidden;
}

.sd-brief__meter span[b-yij13w1zl0] {
    display: block;
    height: 100%;
    background: var(--color-brand);
}

.sd-brief__lead[b-yij13w1zl0] {
    margin: 0 0 0.75rem;
}

.sd-brief__publish[b-yij13w1zl0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface-raised);
}

.sd-brief__publish p[b-yij13w1zl0] {
    margin: 0;
}

.sd-brief__sections[b-yij13w1zl0] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 1rem;
}

.sd-brief__section[b-yij13w1zl0] {
    padding: 1rem 1.25rem;
    border: 1px solid var(--color-border);
    border-left-width: 4px;
    border-radius: var(--radius);
    background: var(--color-surface);
}

.sd-brief__section.is-filled[b-yij13w1zl0] {
    border-left-color: var(--color-brand);
}

.sd-brief__section.is-editing[b-yij13w1zl0] {
    box-shadow: 0 0 0 2px var(--color-brand-teal);
}

.sd-brief__section-head[b-yij13w1zl0] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem 0.75rem;
}

.sd-brief__title[b-yij13w1zl0] {
    margin: 0;
    font-size: 1.05rem;
}

.sd-brief__status--agreed[b-yij13w1zl0] {
    background: var(--color-brand);
    color: #fff;
}

.sd-brief__status--needsdecision[b-yij13w1zl0] {
    background: #b45309;
    color: #fff;
}

.sd-brief__guidance[b-yij13w1zl0] {
    margin: 0.35rem 0;
}

.sd-brief__questions[b-yij13w1zl0] {
    margin: 0 0 0.5rem;
}

.sd-brief__questions ul[b-yij13w1zl0] {
    margin: 0.25rem 0 0;
    padding-left: 1.25rem;
}

.sd-brief__text[b-yij13w1zl0] {
    margin: 0.5rem 0;
}

.sd-brief__empty[b-yij13w1zl0] {
    margin: 0.5rem 0;
}

.sd-brief__editor[b-yij13w1zl0] {
    display: grid;
    gap: 0.5rem;
    margin: 0.5rem 0;
}

.sd-brief__editor-bar[b-yij13w1zl0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sd-brief__editor-bar .is-active[b-yij13w1zl0] {
    font-weight: 600;
    text-decoration: underline;
}

.sd-brief__textarea[b-yij13w1zl0] {
    font-family: inherit;
    min-height: 12rem;
}

.sd-brief__preview[b-yij13w1zl0] {
    min-height: 6rem;
    padding: 0.75rem 1rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
}

.sd-brief__actions[b-yij13w1zl0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.sd-brief__tools[b-yij13w1zl0] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    align-items: center;
}

.sd-brief__writing[b-yij13w1zl0] {
    background: var(--color-brand-teal);
    color: #fff;
}

.sd-brief__question[b-yij13w1zl0],
.sd-brief__history[b-yij13w1zl0] {
    margin-top: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
    display: grid;
    gap: 0.5rem;
}

.sd-brief__history ul[b-yij13w1zl0] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.25rem;
}

.sd-brief__history-text[b-yij13w1zl0] {
    padding: 0.5rem 0.75rem;
    background: var(--color-surface-raised);
    border-radius: var(--radius);
}

.sd-mention[b-yij13w1zl0] {
    position: relative;
}

.sd-mention__list[b-yij13w1zl0] {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 20;
    min-width: 16rem;
    max-height: 18rem;
    overflow: auto;
    list-style: none;
    margin: 0.25rem 0 0;
    padding: 0.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.sd-mention__choice[b-yij13w1zl0] {
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: left;
    padding: 0.4rem 0.6rem;
    border: 0;
    background: none;
    border-radius: var(--radius);
    cursor: pointer;
}

.sd-mention__label[b-yij13w1zl0] {
    font-weight: 600;
}

.sd-mention__detail[b-yij13w1zl0] {
    font-size: 0.8rem;
}

.sd-brief__section.is-highlighted[b-yij13w1zl0] {
    box-shadow: 0 0 0 2px var(--color-brand-teal);
}

/* ── guided (#1178): one section at a time ── */
.sd-brief--guided[b-yij13w1zl0] {
    border: 0;
    box-shadow: none;
}

.sd-brief--guided .card-header[b-yij13w1zl0] {
    padding-left: 0;
    padding-right: 0;
}

.sd-brief--guided .card-body[b-yij13w1zl0] {
    padding-left: 0;
    padding-right: 0;
}

.sd-brief__guided-head[b-yij13w1zl0] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin: 0 0 0.75rem;
}

.sd-brief__dots[b-yij13w1zl0] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 0.3rem;
}

.sd-brief__dot[b-yij13w1zl0] {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-secondary);
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.sd-brief__dot.is-filled[b-yij13w1zl0] {
    border-color: var(--color-brand);
    color: var(--color-brand);
}

.sd-brief__dot.is-current[b-yij13w1zl0] {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff;
}

.sd-brief__attach[b-yij13w1zl0] {
    margin-left: auto;
}

.sd-brief__section--guided[b-yij13w1zl0] {
    border-left-width: 1px;
}

.sd-brief__section--guided .sd-brief__title[b-yij13w1zl0] {
    font-size: 1.15rem;
}

.sd-brief__section--guided .sd-brief__guidance[b-yij13w1zl0] {
    color: var(--color-text-primary);
    margin: 0.5rem 0;
}

.sd-brief__prompts[b-yij13w1zl0] {
    margin: 0 0 0.75rem;
    padding-left: 1.25rem;
    color: var(--color-text-secondary);
}

.sd-brief__more[b-yij13w1zl0] {
    display: inline-block;
}

.sd-brief__more summary[b-yij13w1zl0] {
    cursor: pointer;
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.85rem;
}

.sd-brief__more[open] summary[b-yij13w1zl0] {
    margin-bottom: 0.5rem;
}

.sd-brief__finish[b-yij13w1zl0] {
    margin: 1rem 0 0;
    flex-direction: column;
    align-items: flex-start;
}

.sd-brief__finish p[b-yij13w1zl0] {
    margin: 0;
}

.sd-brief__finish-note[b-yij13w1zl0] {
    margin: 1rem 0 0;
}
/* /Components/SolutionDesign/SdBuildScope.razor.rz.scp.css */
/* The scope of the build (#1069): the parts in dependency order, each with its choice. Calm, scannable cards. */
.sd-build__lead[b-9gridx76b3] {
    margin: 0 0 1rem;
    color: var(--color-text-secondary);
}

.sd-build__sub[b-9gridx76b3] {
    margin: 0 0 0.4rem;
    font-size: 0.95rem;
    font-weight: 600;
}

.sd-build__contradictions[b-9gridx76b3],
.sd-build__message[b-9gridx76b3] {
    margin: 0 0 1rem;
}

.sd-build__contradictions ul[b-9gridx76b3] {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: 0.35rem;
}

.sd-build__contradictions li[b-9gridx76b3] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem;
}

.sd-build__message p[b-9gridx76b3] {
    margin: 0;
}

.sd-build__error[b-9gridx76b3] {
    margin: 0 0 0.75rem;
    color: #b91c1c;
}

.sd-build__confirm-line[b-9gridx76b3] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
    margin: 0 0 1rem;
}

.sd-build__parts[b-9gridx76b3] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.sd-part[b-9gridx76b3] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.875rem 1.125rem;
}

.sd-part.is-selected[b-9gridx76b3] {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 1px var(--color-brand);
}

.sd-part--notneeded[b-9gridx76b3] {
    background: #f8fafc;
}

.sd-part__head[b-9gridx76b3] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.sd-part__kind[b-9gridx76b3] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.sd-part__name[b-9gridx76b3] {
    font-weight: 600;
    color: var(--color-text-primary);
    text-decoration: none;
}

.sd-part__name:hover[b-9gridx76b3],
.sd-part__name:focus-visible[b-9gridx76b3] {
    color: var(--color-brand);
    text-decoration: underline;
}

.sd-part__chip[b-9gridx76b3] {
    margin-left: auto;
}

.sd-part__chip--build[b-9gridx76b3]    { background: #dcfce7; color: #166534; }
.sd-part__chip--team[b-9gridx76b3]     { background: #eef2ff; color: #3730a3; border: 1px solid #c7d2fe; }
.sd-part__chip--existing[b-9gridx76b3] { background: #e0f2fe; color: #075985; }
.sd-part__chip--notneeded[b-9gridx76b3] { background: #f1f5f9; color: #475569; }

.sd-part__summary[b-9gridx76b3],
.sd-part__deps[b-9gridx76b3],
.sd-part__why[b-9gridx76b3],
.sd-part__readonly[b-9gridx76b3] {
    margin: 0.45rem 0 0;
    font-size: 0.875rem;
}

.sd-part__summary[b-9gridx76b3] {
    color: var(--color-text-secondary);
}

.sd-part__contradiction[b-9gridx76b3] {
    margin: 0.45rem 0 0;
    padding: 0.35rem 0.6rem;
    border-left: 3px solid #f59e0b;
    background: #fffbeb;
    color: #92400e;
    font-size: 0.875rem;
}

.sd-part__evidence[b-9gridx76b3] {
    margin: 0.6rem 0 0;
}

.sd-part__evidence > summary[b-9gridx76b3] {
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--color-text-secondary);
}

.sd-part__claims[b-9gridx76b3] {
    margin: 0.5rem 0;
    padding-left: 1.1rem;
    font-size: 0.875rem;
}

.sd-part__choices[b-9gridx76b3] {
    margin: 0.75rem 0 0;
    padding: 0.6rem 0 0;
    border: 0;
    border-top: 1px solid var(--color-border);
}

.sd-part__legend[b-9gridx76b3] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    margin-bottom: 0.35rem;
}

.sd-part__options[b-9gridx76b3] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.25rem;
}

.sd-part__option[b-9gridx76b3] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    cursor: pointer;
}

.sd-part__reason[b-9gridx76b3] {
    margin: 0.6rem 0 0;
    display: grid;
    gap: 0.3rem;
    max-width: 40rem;
}

.sd-part__label[b-9gridx76b3] {
    font-size: 0.8125rem;
    font-weight: 600;
}

.sd-part__count[b-9gridx76b3] {
    font-size: 0.75rem;
    justify-self: end;
}

.sd-part__actions[b-9gridx76b3] {
    margin: 0.6rem 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.sd-part__consequence[b-9gridx76b3] {
    font-size: 0.875rem;
    font-weight: 500;
}

/* Use an existing one (#1069, slice 4): search by name, the objects found, and "Enter its id". */
.sd-part__existing[b-9gridx76b3] {
    margin: 0.25rem 0 0;
    font-weight: 500;
}

.sd-part__find[b-9gridx76b3] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.sd-part__find-line[b-9gridx76b3] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    max-width: 36rem;
}

.sd-part__candidates[b-9gridx76b3] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.sd-part__candidate[b-9gridx76b3] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.sd-part__candidate.is-picked[b-9gridx76b3] {
    border-color: var(--color-brand);
}

.sd-part__candidate-name[b-9gridx76b3] {
    font-weight: 500;
}

.sd-part__candidate-detail[b-9gridx76b3] {
    flex: 1 1 auto;
}

.sd-part__picked[b-9gridx76b3] {
    margin: 0;
}
/* /Components/SolutionDesign/SdClaimReview.razor.rz.scp.css */
.sd-review[b-4p7phcw0nh] {
    margin: 0.5rem 0 0.25rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-left: 3px solid var(--color-border, #d1d5db);
    border-radius: 6px;
    background: var(--surface, #fff);
    font-size: 0.875rem;
}

.sd-review--proposal[b-4p7phcw0nh] {
    border-left-color: var(--color-primary, #2563eb);
}

.sd-review--accepted[b-4p7phcw0nh],
.sd-review--dismissed[b-4p7phcw0nh],
.sd-review--notexplained[b-4p7phcw0nh] {
    padding: 0.35rem 0.8rem;
}

.sd-review__title[b-4p7phcw0nh] {
    margin: 0 0 0.4rem;
    font-size: 0.875rem;
    font-weight: 600;
}

.sd-review__facts[b-4p7phcw0nh] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.25rem 0.75rem;
    margin: 0 0 0.4rem;
}

.sd-review__facts dt[b-4p7phcw0nh] {
    font-weight: 500;
    color: var(--text-muted, #6b7280);
}

.sd-review__facts dd[b-4p7phcw0nh] {
    margin: 0;
}

.sd-review__result[b-4p7phcw0nh] {
    margin: 0.25rem 0;
    font-weight: 500;
}

.sd-review__reasoning[b-4p7phcw0nh] {
    margin: 0.25rem 0;
    white-space: pre-line;
}

.sd-review__line[b-4p7phcw0nh] {
    margin: 0;
}

.sd-review__actions[b-4p7phcw0nh] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.sd-review__problems[b-4p7phcw0nh] {
    margin: 0.4rem 0 0;
    padding-left: 1.1rem;
    color: var(--color-danger, #b91c1c);
}

/* #1128 S2: the investigator's reasoning is light markdown (#1125), kept as calm as the pane's. The HTML comes from a
   MarkupString, so the rules reach the children with ::deep. */
.sd-md[b-4p7phcw0nh]  > :first-child { margin-top: 0; }
.sd-md[b-4p7phcw0nh]  > :last-child { margin-bottom: 0; }
.sd-md[b-4p7phcw0nh]  p { margin: 0 0 0.45rem; }
.sd-md[b-4p7phcw0nh]  :is(h4, h5, h6) { margin: 0.5rem 0 0.25rem; font-size: 0.85rem; font-weight: 600; }
.sd-md[b-4p7phcw0nh]  :is(ul, ol) { margin: 0 0 0.45rem; padding-left: 1.15rem; }
.sd-md[b-4p7phcw0nh]  code { font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace); font-size: 0.78rem; padding: 0.05rem 0.25rem; border-radius: 4px; background: var(--color-surface-raised); border: 1px solid var(--color-border); }

.sd-review__question[b-4p7phcw0nh] {
    margin: 0.5rem 0 0;
    padding: 0.5rem 0.65rem;
    border-left: 3px solid var(--color-border);
}

.sd-review__question p[b-4p7phcw0nh] { margin: 0; }

.sd-review__question-title[b-4p7phcw0nh] {
    margin: 0 0 0.2rem;
    font-size: 0.8rem;
    font-weight: 600;
}
/* /Components/SolutionDesign/SdClientAsk.razor.rz.scp.css */
/* Ask the client (#1156): a quiet block under the question's actions. */
.sd-client-ask[b-1xc4n3b5kg] {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--color-border);
}

.sd-client-ask__line[b-1xc4n3b5kg] {
    margin: 0 0 0.5rem;
}

.sd-client-ask__quote[b-1xc4n3b5kg] {
    margin: 0.25rem 0 0.75rem;
    padding: 0.5rem 0.75rem;
    border-left: 3px solid var(--color-brand);
    background: var(--color-surface-raised);
    white-space: pre-wrap;
}

.sd-client-ask__form[b-1xc4n3b5kg] {
    display: grid;
    gap: 0.6rem;
}

.sd-client-ask__new[b-1xc4n3b5kg] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.sd-client-ask__preview[b-1xc4n3b5kg] {
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.sd-client-ask__preview p[b-1xc4n3b5kg] {
    margin: 0 0 0.35rem;
}

.sd-client-ask__tick[b-1xc4n3b5kg] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.sd-client-ask__actions[b-1xc4n3b5kg] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.sd-client-ask__error[b-1xc4n3b5kg] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--color-danger, #b42318);
}

.sd-client-ask__result[b-1xc4n3b5kg] {
    margin: 0.5rem 0 0;
    padding-left: 1.1rem;
}
/* /Components/SolutionDesign/SdClientContacts.razor.rz.scp.css */
/* Client contacts (#1156). */
.sd-contacts[b-4wby0e1vx8] {
    margin-top: 1rem;
}

.sd-contacts__list[b-4wby0e1vx8] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: grid;
    gap: 0.4rem;
}

.sd-contacts__add[b-4wby0e1vx8] {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 0.5rem;
    align-items: end;
}

.sd-contacts__error[b-4wby0e1vx8] {
    margin: 0.5rem 0 0;
    font-size: 0.85rem;
    color: var(--color-danger, #b42318);
}
/* /Components/SolutionDesign/SdDecisionList.razor.rz.scp.css */
.sd-decisions[b-9hasvq5gsy] {
    margin-bottom: 1.5rem;
}

.sd-decisions__list[b-9hasvq5gsy] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.6rem;
}

.sd-decision[b-9hasvq5gsy] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
}

.sd-decision__body p[b-9hasvq5gsy] {
    margin: 0 0 0.25rem;
}

.sd-decision__what[b-9hasvq5gsy] {
    font-weight: 600;
}

.sd-decision__why[b-9hasvq5gsy],
.sd-decision__when[b-9hasvq5gsy] {
    font-size: 0.9rem;
}

.sd-decision__actions[b-9hasvq5gsy] {
    flex-shrink: 0;
}

.sd-decision__confirm[b-9hasvq5gsy] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.sd-decisions__result[b-9hasvq5gsy] {
    margin-top: 0.75rem;
}

.sd-decisions__withdrawn[b-9hasvq5gsy] {
    margin-top: 0.75rem;
    font-size: 0.9rem;
}
/* /Components/SolutionDesign/SdDeliverables.razor.rz.scp.css */
/* What the scope of works asks for (#1099): a calm strip of chips above the claims and the parts. */
.sd-asks[b-pwtxnvycpy] {
    margin: 0 0 1rem;
}

.sd-asks__title[b-pwtxnvycpy] {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-weight: 600;
}

.sd-asks__lead[b-pwtxnvycpy] {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
}

.sd-asks__list[b-pwtxnvycpy] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.sd-asks__chip[b-pwtxnvycpy] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid var(--color-border, #e5e7eb);
    border-left: 3px solid #0369a1;
    border-radius: 999px;
    background: var(--color-surface, #fff);
    font-size: 0.875rem;
}

.sd-asks__kind[b-pwtxnvycpy] {
    background: #f0f9ff;
    color: #0369a1;
}

.sd-asks__name[b-pwtxnvycpy] {
    font-weight: 600;
}

.sd-asks__cites[b-pwtxnvycpy] {
    font-size: 0.8125rem;
}

.sd-asks__docmx[b-pwtxnvycpy] {
    margin: 0.75rem 0 0;
    font-size: 0.875rem;
}

.sd-asks__docmx-chip[b-pwtxnvycpy] {
    background: #f0fdfa;
    color: #0f766e;
}
/* /Components/SolutionDesign/SdDesignElementCard.razor.rz.scp.css */
.sd-element[b-m1flkgpvyc] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.875rem 1.125rem;
}

.sd-element.is-selected[b-m1flkgpvyc] {
    border-color: var(--color-brand);
}

.sd-element__head[b-m1flkgpvyc] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.sd-element__kind[b-m1flkgpvyc] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.sd-element__title[b-m1flkgpvyc] {
    border: none;
    background: transparent;
    padding: 0;
    font: inherit;
    font-weight: 600;
    color: var(--color-text-primary);
    text-align: left;
    cursor: pointer;
    flex: 1 1 16rem;
}

.sd-element__title:hover[b-m1flkgpvyc] {
    color: var(--color-brand);
}

.sd-element__summary[b-m1flkgpvyc] {
    margin: 0.5rem 0 0;
    color: var(--color-text-secondary);
}

/* What it uses (#1065): one quiet line under the summary. */
.sd-element__uses[b-m1flkgpvyc] {
    margin: 0.4rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
}

.sd-element__owner[b-m1flkgpvyc],
.sd-element__deps[b-m1flkgpvyc] {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
}

.sd-element__gaps[b-m1flkgpvyc] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.875rem;
}

.sd-element__gaps li[b-m1flkgpvyc] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sd-element__details[b-m1flkgpvyc] {
    margin-top: 0.6rem;
    font-size: 0.875rem;
}

.sd-element__details summary[b-m1flkgpvyc] {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-element__details ul[b-m1flkgpvyc] {
    margin: 0.4rem 0 0;
    padding-left: 1.25rem;
}

.sd-element__payload[b-m1flkgpvyc] {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-border);
}

.sd-element__payload p[b-m1flkgpvyc] {
    margin: 0 0 0.4rem;
}

.sd-element__table[b-m1flkgpvyc] {
    width: 100%;
    margin: 0.4rem 0 0.6rem;
}

.sd-element__stages[b-m1flkgpvyc] {
    margin: 0 0 0.4rem 1.25rem;
    padding: 0;
}

.sd-element__sides[b-m1flkgpvyc] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 0.3rem 0.75rem;
    margin: 0 0 0.5rem;
}

.sd-element__sides dt[b-m1flkgpvyc] {
    color: var(--color-text-secondary);
    font-weight: 600;
}

.sd-element__sides dd[b-m1flkgpvyc] {
    margin: 0;
}

.sd-element__handoff[b-m1flkgpvyc] {
    margin: 0.6rem 0 0;
    font-size: 0.875rem;
}

.sd-element__handoff--applied[b-m1flkgpvyc] {
    color: #166534;
    font-weight: 600;
}

.sd-element__actions[b-m1flkgpvyc] {
    margin-top: 0.6rem;
    display: flex;
    gap: 0.5rem;
}

/* The studio that builds the part and whether the scope of works asks for it (#1197). */
.sd-element__studio[b-m1flkgpvyc] { background: var(--color-surface-raised); color: var(--color-text-secondary); border: 1px solid var(--color-border); }
.sd-element__asked[b-m1flkgpvyc]  { background: #e0e7ff; color: #3730a3; }

/* Status and severity chips: the page's scoped styles do not reach a child component, so they live here too. */
.sd-status--contradicted[b-m1flkgpvyc] { background: #fee2e2; color: #991b1b; }
.sd-status--blocked[b-m1flkgpvyc]      { background: #ffedd5; color: #9a3412; }
.sd-status--assumed[b-m1flkgpvyc]      { background: #fef3c7; color: #92400e; }
.sd-status--stated[b-m1flkgpvyc]       { background: #e0f2fe; color: #075985; }
.sd-status--answered[b-m1flkgpvyc]     { background: #ede9fe; color: #5b21b6; }
.sd-status--grounded[b-m1flkgpvyc]     { background: #dcfce7; color: #166534; }

.sd-sev--fatal[b-m1flkgpvyc] { background: #fee2e2; color: #991b1b; }
.sd-sev--major[b-m1flkgpvyc] { background: #ffedd5; color: #9a3412; }
.sd-sev--minor[b-m1flkgpvyc] { background: #fef3c7; color: #92400e; }
.sd-sev--info[b-m1flkgpvyc]  { background: #f1f5f9; color: #475569; }

.sd-element__pinned[b-m1flkgpvyc] {
    background: #eef2ff;
    color: #3730a3;
    border: 1px solid #c7d2fe;
}

/* Scope of the build (#1069): a part your team builds. */
.sd-element__team[b-m1flkgpvyc] {
    background: #eef2ff;
    color: #3730a3;
    border: 1px solid #c7d2fe;
}

/* Discuss (#1036): opens the assistant on this element. */
.sd-element__discuss[b-m1flkgpvyc] { margin-left: auto; }

.sd-element__question[b-m1flkgpvyc] {
    border: 1px solid var(--warning-border, #f5c26b);
    background: var(--warning-bg, #fff7e6);
    color: var(--warning-text, #7a4b00);
    border-radius: 999px;
    padding: 0.05rem 0.55rem;
    font-size: 0.8rem;
    cursor: pointer;
}

/* How the design works (#1046): what it does, what you will do, how it connects, what settles it. */
.sd-element__explain[b-m1flkgpvyc] {
    display: grid;
    gap: 0.35rem;
    margin: 0.5rem 0 0.25rem;
    font-size: 0.875rem;
}

.sd-element__explain-item[b-m1flkgpvyc] {
    display: grid;
    grid-template-columns: 11rem minmax(0, 1fr);
    gap: 0.75rem;
}

.sd-element__explain dt[b-m1flkgpvyc] {
    color: var(--color-text-secondary);
    font-weight: 600;
}

.sd-element__explain dd[b-m1flkgpvyc] {
    margin: 0;
}

.sd-element__unblock[b-m1flkgpvyc] {
    padding: 0.4rem 0.6rem;
    border-radius: var(--radius, 6px);
    background: var(--warning-bg, #fff7e6);
}

.sd-element__unblock--blocked[b-m1flkgpvyc] { background: #ffedd5; }
.sd-element__unblock--contradicted[b-m1flkgpvyc] { background: #fee2e2; }

.sd-element__unblock-btn[b-m1flkgpvyc] {
    margin-left: 0.5rem;
}

@media (max-width: 720px) {
    .sd-element__explain-item[b-m1flkgpvyc] { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; }
}

/* Try it (#1066): the latest trial in one line, coloured by its status and said in words. */
.sd-element__tried[b-m1flkgpvyc] {
    margin: 0.4rem 0 0;
    font-size: 0.8125rem;
    font-weight: 600;
}

.sd-element__tried--good[b-m1flkgpvyc] { color: #166534; }
.sd-element__tried--problems[b-m1flkgpvyc] { color: #92400e; }
.sd-element__tried--failed[b-m1flkgpvyc] { color: #991b1b; }
.sd-element__tried--notavailable[b-m1flkgpvyc] { color: var(--color-text-secondary); }
/* /Components/SolutionDesign/SdDesignFlow.razor.rz.scp.css */
/* How the parts connect (#1196): quiet lines, boxes that read like the part cards. */
.sd-flow[b-4nqvevh2c3] {
    margin: 0 0 1.5rem;
}

.sd-flow__caption[b-4nqvevh2c3] {
    display: grid;
    gap: 0.15rem;
    margin-bottom: 0.75rem;
}

.sd-flow__heading[b-4nqvevh2c3] {
    margin: 0;
    font-size: 1.05rem;
}

.sd-flow__scroll[b-4nqvevh2c3] {
    overflow-x: auto;
    padding: 0.5rem 0;
}

.sd-flow__canvas[b-4nqvevh2c3] {
    position: relative;
    width: 100%;
}

.sd-flow__lines[b-4nqvevh2c3] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.sd-flow__lines path[b-4nqvevh2c3] {
    fill: none;
    stroke: var(--color-border-strong, #94a3b8);
    stroke-width: 1.5;
}

.sd-flow__node[b-4nqvevh2c3] {
    position: absolute;
    box-sizing: border-box;
    display: grid;
    align-content: center;
    gap: 0.1rem;
    padding: 0.35rem 0.6rem 0.35rem 0.75rem;
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
    color: var(--color-text-primary);
    font-family: var(--font-body);
    text-align: left;
    overflow: hidden;
}

button.sd-flow__node[b-4nqvevh2c3] {
    cursor: pointer;
}

button.sd-flow__node:hover[b-4nqvevh2c3],
button.sd-flow__node:focus-visible[b-4nqvevh2c3] {
    border-color: var(--color-brand);
    z-index: 1;
}

/* A small notch where the arrows arrive. */
.sd-flow__node.has-input[b-4nqvevh2c3]::before {
    content: "";
    position: absolute;
    left: -1px;
    top: calc(50% - 4px);
    border: 4px solid transparent;
    border-left-color: var(--color-border-strong, #94a3b8);
}

.sd-flow__node--arrival[b-4nqvevh2c3],
.sd-flow__node--output[b-4nqvevh2c3] {
    background: var(--color-surface-raised);
    border-left-color: var(--color-brand);
}

.sd-flow__title[b-4nqvevh2c3] {
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sd-flow__where[b-4nqvevh2c3] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* The left edge carries the part's status, in the status chips' colours. */
.sd-flow__node--grounded[b-4nqvevh2c3]     { border-left-color: #16a34a; }
.sd-flow__node--answered[b-4nqvevh2c3]     { border-left-color: #7c3aed; }
.sd-flow__node--stated[b-4nqvevh2c3]       { border-left-color: #0284c7; }
.sd-flow__node--assumed[b-4nqvevh2c3]      { border-left-color: #d97706; }
.sd-flow__node--blocked[b-4nqvevh2c3]      { border-left-color: #ea580c; }
.sd-flow__node--contradicted[b-4nqvevh2c3] { border-left-color: #dc2626; }
/* /Components/SolutionDesign/SdDesignGlance.razor.rz.scp.css */
/* The design at a glance (#1195): a calm label column and short answers, one row each. */
.sd-glance[b-alaee949ss] {
    margin: 0 0 1.5rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface-raised);
}

.sd-glance__heading[b-alaee949ss] {
    margin: 0 0 0.75rem;
    font-size: 1.05rem;
}

.sd-glance__grid[b-alaee949ss] {
    display: grid;
    gap: 0.65rem;
    margin: 0;
}

.sd-glance__row[b-alaee949ss] {
    display: grid;
    grid-template-columns: 9.5rem minmax(0, 1fr);
    gap: 1rem;
    align-items: baseline;
}

.sd-glance__row + .sd-glance__row[b-alaee949ss] {
    padding-top: 0.65rem;
    border-top: 1px solid var(--color-border);
}

.sd-glance__row dt[b-alaee949ss] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-glance__row dd[b-alaee949ss] {
    margin: 0;
    min-width: 0;
}

.sd-glance__builds[b-alaee949ss],
.sd-glance__open[b-alaee949ss] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.4rem;
}

.sd-glance__where[b-alaee949ss] {
    display: inline-block;
    min-width: 11rem;
    font-weight: 600;
}

.sd-glance__open li[b-alaee949ss] {
    display: grid;
    gap: 0.15rem;
}

.sd-glance__open-head[b-alaee949ss] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.sd-glance__name[b-alaee949ss] {
    font-weight: 600;
    text-align: left;
}

.sd-glance__open-text[b-alaee949ss] {
    color: var(--color-text-secondary);
}

.sd-glance__answer[b-alaee949ss] {
    justify-self: start;
    padding-left: 0;
}

@media (max-width: 720px) {
    .sd-glance__row[b-alaee949ss] {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.25rem;
    }

    .sd-glance__where[b-alaee949ss] {
        min-width: 0;
        margin-right: 0.5rem;
    }
}

/* Status chips: the page's scoped styles do not reach a child component, so they live here too. */
.sd-status--contradicted[b-alaee949ss] { background: #fee2e2; color: #991b1b; }
.sd-status--blocked[b-alaee949ss]      { background: #ffedd5; color: #9a3412; }
.sd-status--assumed[b-alaee949ss]      { background: #fef3c7; color: #92400e; }
/* /Components/SolutionDesign/SdDiscussButton.razor.rz.scp.css */
.sd-discuss[b-j1rkd0gls7] {
    display: inline-flex; align-items: center; gap: 0.3rem;
    padding: 0.1rem 0.5rem; border: 1px solid var(--color-border); border-radius: 999px;
    background: var(--color-surface); color: var(--color-brand);
    font-family: inherit; font-size: 0.72rem; font-weight: 600; line-height: 1.4; white-space: nowrap; cursor: pointer;
}
.sd-discuss:hover[b-j1rkd0gls7] { background: var(--color-surface-raised); }
.sd-discuss:focus-visible[b-j1rkd0gls7] { outline: 2px solid var(--color-brand); outline-offset: 1px; }
.sd-discuss.has-discussion[b-j1rkd0gls7] { border-color: var(--color-brand); }
.sd-discuss__marker[b-j1rkd0gls7] { width: 0.5rem; height: 0.5rem; border-radius: 50%; border: 2px solid var(--color-brand); background: transparent; }
.sd-discuss.is-closed .sd-discuss__marker[b-j1rkd0gls7] { background: var(--color-brand); }
/* /Components/SolutionDesign/SdDocMxPicker.razor.rz.scp.css */
/* Add from DocMX (#1146). */
.sd-docmx__form[b-ujcxpn0mqz] {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.sd-docmx__lookup[b-ujcxpn0mqz] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.5rem;
}

.sd-docmx__lookup .sd-field[b-ujcxpn0mqz] {
    min-width: 16rem;
}

.sd-docmx__found[b-ujcxpn0mqz] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
}

.sd-docmx__preview[b-ujcxpn0mqz] {
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    display: grid;
    gap: 0.5rem;
}

.sd-docmx__preview p[b-ujcxpn0mqz] {
    margin: 0;
}

.sd-docmx__facets[b-ujcxpn0mqz] {
    border: 0;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.4rem;
}

.sd-docmx__facets legend[b-ujcxpn0mqz] {
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.sd-docmx__facet[b-ujcxpn0mqz] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

.sd-docmx__facet.is-empty[b-ujcxpn0mqz] {
    opacity: 0.6;
}

.sd-docmx__role[b-ujcxpn0mqz] {
    max-width: 20rem;
}

.sd-docmx__actions[b-ujcxpn0mqz] {
    display: flex;
    justify-content: flex-end;
}

.sd-docmx__error[b-ujcxpn0mqz] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--color-danger, #b42318);
}
/* /Components/SolutionDesign/SdDownloadMenu.razor.rz.scp.css */
.sd-download[b-yzpys1qr7h] {
    position: relative;
    display: inline-block;
}

.sd-download__menu[b-yzpys1qr7h] {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 60;
    min-width: 15rem;
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.14);
    padding: 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sd-download__group[b-yzpys1qr7h] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sd-download__group + .sd-download__group[b-yzpys1qr7h] {
    border-top: 1px solid var(--color-border, #e2e8f0);
    padding-top: 0.35rem;
}

.sd-download__group-name[b-yzpys1qr7h] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-muted, #64748b);
    padding: 0.15rem 0.7rem;
}

.sd-download__item[b-yzpys1qr7h] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    text-align: left;
    padding: 0.4rem 0.7rem;
    border: 0;
    border-radius: 6px;
    background: none;
    color: inherit;
    font: inherit;
    cursor: pointer;
}

.sd-download__item:hover:not(:disabled)[b-yzpys1qr7h],
.sd-download__item:focus-visible[b-yzpys1qr7h] {
    background: var(--color-surface-muted, #f1f5f9);
    outline: none;
}

.sd-download__item:disabled[b-yzpys1qr7h] {
    cursor: not-allowed;
    color: var(--color-text-muted, #64748b);
}

.sd-download__reason[b-yzpys1qr7h] {
    font-size: 0.75rem;
}

.sd-download__error[b-yzpys1qr7h] {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    min-width: 15rem;
    margin: 0;
    font-size: 0.8rem;
    color: var(--color-danger, #b91c1c);
}
/* /Components/SolutionDesign/SdDriftStrip.razor.rz.scp.css */
.sd-drift[b-1zvikhug2g] {
    margin-bottom: 1rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
}

.sd-drift__head[b-1zvikhug2g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sd-drift__title[b-1zvikhug2g] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.sd-drift__summary[b-1zvikhug2g] {
    margin: 0.5rem 0 0;
}

.sd-drift__summary.is-open[b-1zvikhug2g] {
    color: #92400e;
    font-weight: 600;
}

.sd-drift__message[b-1zvikhug2g] {
    margin: 0.4rem 0 0;
    color: #166534;
}

.sd-drift__error[b-1zvikhug2g] {
    margin: 0.5rem 0 0;
    color: #b91c1c;
}

.sd-drift__list[b-1zvikhug2g] {
    list-style: none;
    margin: 0.6rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.sd-drift__entry[b-1zvikhug2g] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.sd-drift__sentence[b-1zvikhug2g] {
    flex: 1 1 20rem;
    min-width: 0;
}

.sd-drift__chip--changed[b-1zvikhug2g] {
    background: #fef3c7;
    color: #92400e;
}

.sd-drift__chip--missing[b-1zvikhug2g] {
    background: #fee2e2;
    color: #991b1b;
}

.sd-drift__chip--notchecked[b-1zvikhug2g] {
    background: #f1f5f9;
    color: #475569;
}
/* /Components/SolutionDesign/SdElementTrialPanel.razor.rz.scp.css */
/* Try it (#1066): the Inspector's trial panel. Quiet until a trial runs; the status chip carries the colour, in words too. */
.sd-trial[b-035loaci17] {
    margin-top: 0.75rem;
}

.sd-trial__intro[b-035loaci17] {
    margin: 0 0 0.5rem;
    font-size: 0.8125rem;
}

.sd-trial__actions[b-035loaci17],
.sd-trial__next[b-035loaci17] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 0;
}

.sd-trial__progress[b-035loaci17] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin: 0.5rem 0;
}

.sd-trial__error[b-035loaci17] {
    color: #b42318;
    margin: 0.5rem 0;
}

.sd-trial__result[b-035loaci17] {
    border: 1px solid var(--color-border);
    border-left-width: 3px;
    border-radius: var(--radius);
    padding: 0.6rem 0.75rem;
    margin-top: 0.5rem;
}

.sd-trial__result--good[b-035loaci17] { border-left-color: #16a34a; }
.sd-trial__result--problems[b-035loaci17] { border-left-color: #d97706; }
.sd-trial__result--failed[b-035loaci17] { border-left-color: #dc2626; }

.sd-trial__head[b-035loaci17] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-weight: 600;
}

.sd-trial__when[b-035loaci17] {
    margin: 0.25rem 0 0.4rem;
    font-size: 0.8125rem;
}

.sd-trial__stale[b-035loaci17] {
    margin: 0 0 0.4rem;
    padding: 0.35rem 0.5rem;
    background: #fffbeb;
    border-radius: var(--radius);
    font-size: 0.8125rem;
}

.sd-trial__summary[b-035loaci17] {
    margin: 0 0 0.5rem;
    padding-left: 1.1rem;
    font-size: 0.875rem;
}

.sd-trial__sub[b-035loaci17] {
    margin: 0.6rem 0 0.3rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-trial__samples[b-035loaci17] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sd-trial__sample[b-035loaci17] {
    border-top: 1px solid var(--color-border);
    padding: 0.35rem 0;
}

.sd-trial__sample summary[b-035loaci17] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.sd-trial__file[b-035loaci17] {
    overflow-wrap: anywhere;
}

.sd-trial__sentence[b-035loaci17] {
    margin: 0.3rem 0;
    font-size: 0.8125rem;
}

.sd-trial__badge[b-035loaci17] {
    font-size: 0.6875rem;
    white-space: nowrap;
}

.sd-trial__badge--good[b-035loaci17] { background: #dcfce7; color: #166534; }
.sd-trial__badge--problems[b-035loaci17] { background: #fef3c7; color: #92400e; }
.sd-trial__badge--failed[b-035loaci17] { background: #fee2e2; color: #991b1b; }
.sd-trial__badge--notavailable[b-035loaci17] { background: var(--color-surface-muted, #f1f5f9); color: var(--color-text-secondary); }

.sd-trial__tab-note[b-035loaci17] {
    font-size: 0.8125rem;
}

[b-035loaci17] .sd-trial-preview__scroll {
    overflow-x: auto;
    max-width: 100%;
}

[b-035loaci17] .sd-trial-preview {
    font-size: 0.75rem;
    margin: 0.3rem 0;
}

[b-035loaci17] .sd-trial-preview td {
    white-space: nowrap;
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-035loaci17] .sd-trial-preview__more {
    font-size: 0.75rem;
    margin: 0 0 0.3rem;
}
/* /Components/SolutionDesign/SdEvidenceTable.razor.rz.scp.css */
.sd-evidence[b-ruq1lke09m] {
    width: 100%;
    margin: 0 0 0.75rem;
    font-size: 0.8125rem;
}

.sd-evidence__cell[b-ruq1lke09m] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    white-space: nowrap;
}

.sd-evidence__quote[b-ruq1lke09m] {
    max-width: 32rem;
}

.sd-evidence__none[b-ruq1lke09m],
.sd-evidence__more[b-ruq1lke09m] {
    margin: 0.25rem 0 0.5rem;
    font-size: 0.8125rem;
}
/* /Components/SolutionDesign/SdFileTable.razor.rz.scp.css */
.sd-file-table[b-hdkmct0x3b] {
    width: 100%;
}

.sd-file-table__refused[b-hdkmct0x3b] {
    color: var(--color-down);
}

.sd-sr-only[b-hdkmct0x3b] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/SolutionDesign/SdFindingCard.razor.rz.scp.css */
.sd-finding[b-xblc3i0s27] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.875rem 1.125rem;
}

.sd-finding.is-selected[b-xblc3i0s27] {
    border-color: var(--color-brand);
}

.sd-finding__head[b-xblc3i0s27] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.sd-finding__rank[b-xblc3i0s27] {
    font-weight: 700;
    color: var(--color-text-secondary);
    min-width: 1.25rem;
}

.sd-finding__title[b-xblc3i0s27] {
    border: none;
    background: transparent;
    padding: 0;
    font: inherit;
    font-weight: 600;
    color: var(--color-text-primary);
    text-align: left;
    cursor: pointer;
    flex: 1 1 20rem;
}

.sd-finding__title:hover[b-xblc3i0s27] {
    color: var(--color-brand);
}

.sd-finding__affects[b-xblc3i0s27] {
    font-size: 0.8125rem;
    white-space: nowrap;
}

.sd-finding__summary[b-xblc3i0s27] {
    margin: 0.5rem 0 0;
    color: var(--color-text-secondary);
}

.sd-finding__body[b-xblc3i0s27] {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border);
}

.sd-finding__body p[b-xblc3i0s27] {
    margin: 0 0 0.5rem;
}

.sd-quote[b-xblc3i0s27] {
    font-style: italic;
    color: var(--color-text-secondary);
}

/* Severity chips: a word in a restrained colour, never a code. */
.sd-sev--fatal[b-xblc3i0s27] { background: #fee2e2; color: #991b1b; }
.sd-sev--major[b-xblc3i0s27] { background: #ffedd5; color: #9a3412; }
.sd-sev--minor[b-xblc3i0s27] { background: #fef3c7; color: #92400e; }
.sd-sev--info[b-xblc3i0s27]  { background: #f1f5f9; color: #475569; }
/* /Components/SolutionDesign/SdGovernanceProfile.razor.rz.scp.css */
.sd-gov[b-ejkjztztes] {
    margin-bottom: 1rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
}

.sd-gov__head[b-ejkjztztes] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sd-gov__title[b-ejkjztztes] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
}

.sd-gov__line[b-ejkjztztes] {
    margin: 0.5rem 0 0;
}

.sd-gov__choose[b-ejkjztztes] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.75rem;
    flex-wrap: wrap;
}

.sd-gov__choose .form-select[b-ejkjztztes] {
    max-width: 24rem;
}

.sd-gov__hint[b-ejkjztztes] {
    margin: 0.4rem 0 0;
    font-size: 0.85rem;
}

.sd-gov__message[b-ejkjztztes] {
    margin: 0.4rem 0 0;
    color: #166534;
}

.sd-gov__error[b-ejkjztztes] {
    margin: 0.5rem 0 0;
    color: #b91c1c;
}
/* /Components/SolutionDesign/SdGuidedPath.razor.rz.scp.css */
/* The guided path (#1178): a step rail on the left, one calm step on the right. */
.sd-guide[b-aff6c68u4e] {
    display: grid;
    grid-template-columns: 15rem minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.sd-guide__rail[b-aff6c68u4e] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
    position: sticky;
    top: calc(var(--app-header-height, 56px) + 1rem);
}

.sd-guide__button[b-aff6c68u4e] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.55rem 0.75rem;
    border: 1px solid transparent;
    border-radius: var(--radius);
    background: transparent;
    color: var(--color-text-secondary);
    text-align: left;
    font-family: var(--font-body);
    font-size: 0.9rem;
    cursor: pointer;
}

.sd-guide__button:hover[b-aff6c68u4e],
.sd-guide__button:focus-visible[b-aff6c68u4e] {
    border-color: var(--color-border);
    color: var(--color-text-primary);
}

.sd-guide__step.is-selected .sd-guide__button[b-aff6c68u4e] {
    background: var(--color-surface);
    border-color: var(--color-border);
    box-shadow: var(--shadow-card);
    color: var(--color-text-primary);
    font-weight: 600;
}

.sd-guide__mark[b-aff6c68u4e] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    flex: none;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    font-size: 0.8rem;
    font-weight: 600;
}

.sd-guide__step.is-done .sd-guide__mark[b-aff6c68u4e] {
    background: var(--color-healthy);
    border-color: var(--color-healthy);
    color: #fff;
}

.sd-guide__step.is-current .sd-guide__mark[b-aff6c68u4e] {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff;
}

.sd-guide__step.is-later .sd-guide__name[b-aff6c68u4e] {
    color: var(--color-text-secondary);
}

.sd-guide__body[b-aff6c68u4e] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    padding: 1.5rem 1.75rem 1.75rem;
    min-width: 0;
}

.sd-guide__top[b-aff6c68u4e] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.85rem;
}

.sd-guide__switch[b-aff6c68u4e] {
    display: inline-flex;
    gap: 0.5rem;
}

.sd-guide__title[b-aff6c68u4e] {
    margin: 0.35rem 0 0.4rem;
    font-size: 1.4rem;
}

.sd-guide__lead[b-aff6c68u4e] {
    margin: 0 0 1.25rem;
    font-size: 1.05rem;
    color: var(--color-text-secondary);
}

.sd-guide__intro[b-aff6c68u4e] {
    margin: 0 0 1.25rem;
    padding: 0.85rem 1rem;
    border-left: 4px solid var(--color-brand);
    background: var(--color-surface-raised);
    border-radius: var(--radius);
}

.sd-guide__running[b-aff6c68u4e] {
    margin: 0 0 1rem;
}

.sd-guide__not-yet[b-aff6c68u4e] {
    padding: 1rem 1.25rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
    display: grid;
    gap: 0.75rem;
    justify-items: start;
}

.sd-guide__not-yet p[b-aff6c68u4e] {
    margin: 0;
}

.sd-guide__done[b-aff6c68u4e] {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    background: var(--color-surface-raised);
}

.sd-guide__actions[b-aff6c68u4e] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin: 1rem 0 0;
}

.sd-guide__links[b-aff6c68u4e] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin: 0.5rem 0;
}

.sd-guide__list[b-aff6c68u4e],
.sd-guide__process[b-aff6c68u4e] {
    margin: 0.5rem 0 0.75rem 1.25rem;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.sd-guide__files[b-aff6c68u4e] {
    list-style: none;
    margin: 0.25rem 0 1rem;
    padding: 0;
    display: grid;
    gap: 0.25rem;
}

.sd-guide__files .muted[b-aff6c68u4e] {
    margin-left: 0.5rem;
    font-size: 0.85rem;
}

/* What the last add did (#1181), then what is here now. */
.sd-guide__upload-note[b-aff6c68u4e] {
    margin: 1rem 0 0.5rem;
    padding: 0.6rem 0.9rem;
    border-left: 4px solid var(--color-healthy);
    background: var(--color-surface-raised);
    border-radius: var(--radius);
}

.sd-guide__subtitle[b-aff6c68u4e] {
    margin: 1.25rem 0 0.25rem;
    font-size: 1rem;
    font-weight: 400;
}

/* The investigating agents' findings after a check (#1128, #1130). */
.sd-guide__agents[b-aff6c68u4e] {
    margin: 1rem 0;
    padding: 0.75rem 1rem;
    border-left: 4px solid var(--color-brand);
    background: var(--color-surface-raised);
    border-radius: var(--radius);
}

.sd-guide__agents p[b-aff6c68u4e] {
    margin: 0 0 0.35rem;
}


.sd-guide__ask[b-aff6c68u4e],
.sd-guide__attach[b-aff6c68u4e] {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
    display: grid;
    gap: 0.5rem;
    justify-items: start;
}

.sd-guide__ask p[b-aff6c68u4e],
.sd-guide__attach p[b-aff6c68u4e] {
    margin: 0;
}

.sd-guide__footer[b-aff6c68u4e] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.sd-guide__footer > :only-child[b-aff6c68u4e] {
    margin-left: auto;
}

@media (max-width: 60rem) {
    .sd-guide[b-aff6c68u4e] {
        grid-template-columns: 1fr;
    }

    .sd-guide__rail[b-aff6c68u4e] {
        position: static;
        display: flex;
        flex-wrap: wrap;
    }

    .sd-guide__step[b-aff6c68u4e] {
        flex: 1 1 10rem;
    }
}

/* The design's areas on the Design step (#1197): one line each, the full parts on the Design tab. */
.sd-guide__areas[b-aff6c68u4e] {
    margin: 0.5rem 0 0.75rem 1.25rem;
    padding: 0;
    display: grid;
    gap: 0.6rem;
}

.sd-guide__area-head[b-aff6c68u4e] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.sd-guide__area-what[b-aff6c68u4e] {
    display: block;
    color: var(--color-text-secondary);
}

.sd-status--contradicted[b-aff6c68u4e] { background: #fee2e2; color: #991b1b; }
.sd-status--blocked[b-aff6c68u4e]      { background: #ffedd5; color: #9a3412; }
.sd-status--assumed[b-aff6c68u4e]      { background: #fef3c7; color: #92400e; }
/* /Components/SolutionDesign/SdHandOffCard.razor.rz.scp.css */
.sd-handoff[b-321jgz4vvz] {
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-brand, #2563eb);
    border-radius: var(--radius, 10px);
    padding: 0.875rem 1.125rem;
    margin: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    font-size: 0.875rem;
}

.sd-handoff__head[b-321jgz4vvz] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.sd-handoff__kind[b-321jgz4vvz] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sd-handoff__title[b-321jgz4vvz] {
    font-size: 1.05rem;
    margin: 0;
}

.sd-handoff__engagement[b-321jgz4vvz],
.sd-handoff__hint[b-321jgz4vvz],
.sd-handoff__summary[b-321jgz4vvz] {
    margin: 0;
}

.sd-handoff__label[b-321jgz4vvz] {
    margin: 0 0 0.3rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-handoff__details summary[b-321jgz4vvz] {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-handoff__details p[b-321jgz4vvz] {
    margin: 0.4rem 0 0.2rem;
}

.sd-handoff__lines[b-321jgz4vvz],
.sd-handoff__notes[b-321jgz4vvz],
.sd-handoff__blockers ul[b-321jgz4vvz],
.sd-handoff__permissions[b-321jgz4vvz] {
    margin: 0.3rem 0 0;
    padding-left: 1.25rem;
}

.sd-handoff__blockers[b-321jgz4vvz] {
    border-left: 3px solid #9a3412;
    padding-left: 0.75rem;
}

.sd-handoff__permissions[b-321jgz4vvz] {
    color: #9a3412;
    list-style: none;
    padding: 0;
}

.sd-handoff__done[b-321jgz4vvz] {
    background: #dcfce7;
    color: #166534;
}

.sd-handoff__actions[b-321jgz4vvz] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.sd-handoff__back[b-321jgz4vvz] {
    margin-left: auto;
}

.sd-handoff__skip[b-321jgz4vvz] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
}
/* /Components/SolutionDesign/SdInvestigateFailures.razor.rz.scp.css */
.sd-investigate[b-2i1w1s2yge] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-left: 0.5rem;
}

.sd-investigate__progress[b-2i1w1s2yge] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.5rem;
    margin: 0;
}

.sd-investigate__error[b-2i1w1s2yge] {
    color: var(--color-danger, #b42318);
}
/* /Components/SolutionDesign/SdMappingChecklist.razor.rz.scp.css */
.sd-mapping[b-x71pgeuma5] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.5rem;
    font-size: 0.875rem;
}

.sd-mapping__label[b-x71pgeuma5] {
    margin: 0;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-mapping__empty[b-x71pgeuma5],
.sd-mapping__evidence[b-x71pgeuma5],
.sd-mapping__note[b-x71pgeuma5],
.sd-mapping__cost[b-x71pgeuma5] {
    margin: 0;
}

.sd-mapping__table[b-x71pgeuma5] {
    width: 100%;
}

.sd-mapping__unknown[b-x71pgeuma5] {
    margin-left: 0.4rem;
    background: var(--color-warning-surface, #fff7ed);
    color: var(--color-warning-text, #9a3412);
}

.sd-mapping__plan[b-x71pgeuma5] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.75rem;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius, 10px);
}

.sd-mapping__plan fieldset[b-x71pgeuma5] {
    border: 0;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.sd-mapping__choice[b-x71pgeuma5] {
    display: flex;
    gap: 0.45rem;
    align-items: baseline;
}

.sd-mapping__cost[b-x71pgeuma5] {
    font-weight: 600;
}

.sd-mapping__actions[b-x71pgeuma5] {
    display: flex;
    gap: 0.5rem;
}

.sd-mapping__result p[b-x71pgeuma5] {
    margin: 0;
}
/* /Components/SolutionDesign/SdMembers.razor.rz.scp.css */
/* People (#1142): the owner and the named members, each with a role. Calm list, controls to the right. */
.sd-people__lead[b-vpne2hbk7s] {
    margin: 0 0 1rem;
}

.sd-people__list[b-vpne2hbk7s] {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.sd-people__person[b-vpne2hbk7s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 0.875rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

.sd-people__name[b-vpne2hbk7s] {
    font-weight: 600;
    margin-right: auto;
}

.sd-people__role[b-vpne2hbk7s] {
    width: auto;
}

.sd-people__add[b-vpne2hbk7s] {
    margin-bottom: 1rem;
}

.sd-people__label[b-vpne2hbk7s] {
    display: block;
    font-weight: 600;
    margin-bottom: 0.375rem;
}

.sd-people__controls[b-vpne2hbk7s] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.sd-people__hint[b-vpne2hbk7s] {
    margin: 0.375rem 0 0;
}

.sd-people__restrict[b-vpne2hbk7s] {
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border);
}

/* Spend and budget (#1145). */
.sd-spend[b-vpne2hbk7s] {
    margin-top: 1rem;
}

.sd-spend__total[b-vpne2hbk7s] {
    margin: 0 0 0.75rem;
}

.sd-spend__people[b-vpne2hbk7s] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.sd-spend__people li[b-vpne2hbk7s] {
    display: flex;
    gap: 0.75rem;
    align-items: baseline;
}

.sd-spend__budget[b-vpne2hbk7s] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-end;
    max-width: 24rem;
}
/* /Components/SolutionDesign/SdModelChoice.razor.rz.scp.css */
/* The engagement's Models option (#1133, M3), inside the page's .sd-option box. */

.sd-model-choice[b-7639xkanmq] {
    margin: 0;
    padding: 0;
    border: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1.25rem;
}

.sd-model-choice__legend[b-7639xkanmq] {
    float: left;
    width: auto;
    margin: 0 0.5rem 0 0;
    padding: 0;
    font-size: 1rem;
    font-weight: 600;
}

.sd-model-choice__radio[b-7639xkanmq] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.sd-model-choice__pick select[b-7639xkanmq] {
    min-width: 18rem;
}

.sd-model-choice__help[b-7639xkanmq] {
    margin: 0.25rem 0 0;
    font-size: 0.875rem;
}

.sd-model-choice__refusal[b-7639xkanmq] {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    color: #92400e;
}
/* /Components/SolutionDesign/SdModelLine.razor.rz.scp.css */
.sd-model-line[b-i7mxm4aj0q] {
    display: block;
    font-size: 0.82rem;
    color: var(--text-muted, #6b7280);
    margin-top: 0.15rem;
}

.sd-model-line--stale[b-i7mxm4aj0q] {
    color: var(--warning-text, #92400e);
}
/* /Components/SolutionDesign/SdOperandReadings.razor.rz.scp.css */
.sd-readings[b-2ewhaa3qih] {
    width: 100%;
    margin: 0 0 0.6rem;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.sd-readings caption[b-2ewhaa3qih] {
    caption-side: top;
    text-align: left;
    font-weight: 600;
    font-size: 0.8125rem;
    padding-bottom: 0.25rem;
    color: var(--color-text-muted, #475569);
}

.sd-readings th[b-2ewhaa3qih],
.sd-readings td[b-2ewhaa3qih] {
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    text-align: left;
    vertical-align: top;
}

.sd-readings th[b-2ewhaa3qih] {
    font-weight: 600;
    color: var(--color-text-muted, #475569);
}

.sd-readings tr.is-decided td[b-2ewhaa3qih] {
    background: #f8fafc;
}

.sd-readings__value[b-2ewhaa3qih] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.sd-readings__note[b-2ewhaa3qih] {
    font-size: 0.75rem;
    margin-top: 0.15rem;
}

.sd-readings__used[b-2ewhaa3qih] {
    display: inline-block;
    padding: 0.05rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    border: 1px solid #94a3b8;
    color: #334155;
    background: #fff;
}
/* /Components/SolutionDesign/SdOperatorParts.razor.rz.scp.css */
/* Your team's parts (#1072): work done outside the system, under the parts of the build. Same calm cards as the parts. */
.sd-own[b-amat6mzb0p] {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}

.sd-own__title[b-amat6mzb0p] {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 600;
}

.sd-own__lead[b-amat6mzb0p] {
    margin: 0 0 1rem;
}

.sd-own__message[b-amat6mzb0p] {
    margin: 0 0 1rem;
}

.sd-own__message p[b-amat6mzb0p] {
    margin: 0;
}

.sd-own__list[b-amat6mzb0p] {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.sd-own__part[b-amat6mzb0p] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.875rem 1.125rem;
}

.sd-own__part.is-selected[b-amat6mzb0p] {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 1px var(--color-brand);
}

.sd-own__head[b-amat6mzb0p] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.sd-own__tag[b-amat6mzb0p] {
    background: #eef2ff;
    color: #3730a3;
}

.sd-own__name[b-amat6mzb0p] {
    font-weight: 600;
}

.sd-own__description[b-amat6mzb0p],
.sd-own__links[b-amat6mzb0p],
.sd-own__contradiction[b-amat6mzb0p] {
    margin: 0.4rem 0 0;
}

.sd-own__contradiction[b-amat6mzb0p] {
    color: #92400e;
}

.sd-own__actions[b-amat6mzb0p],
.sd-own__form-actions[b-amat6mzb0p] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 0.75rem;
}

.sd-own__form[b-amat6mzb0p] {
    display: grid;
    gap: 0.4rem;
    max-width: 56rem;
    background: var(--color-surface);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
    padding: 1rem 1.125rem;
}

.sd-own__form-title[b-amat6mzb0p] {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 600;
}

.sd-own__label[b-amat6mzb0p] {
    font-size: 0.875rem;
    font-weight: 600;
    margin-top: 0.4rem;
}

.sd-own__pickers[b-amat6mzb0p] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1rem;
    margin-top: 0.4rem;
}

.sd-own__picker[b-amat6mzb0p] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.5rem 0.75rem 0.75rem;
    margin: 0;
    max-height: 16rem;
    overflow-y: auto;
}

.sd-own__option[b-amat6mzb0p] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.2rem 0;
}

.sd-own__kind[b-amat6mzb0p] {
    font-size: 0.8rem;
}

.sd-own__error[b-amat6mzb0p] {
    margin: 0.4rem 0 0;
    color: #b91c1c;
}
/* /Components/SolutionDesign/SdOperatorQuestions.razor.rz.scp.css */
.sd-oq[b-ve4y2tdern] {
    margin: 0 0 0.75rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
    font-size: 0.9rem;
}

.sd-oq > summary[b-ve4y2tdern] {
    cursor: pointer;
    font-weight: 600;
}

.sd-oq__none[b-ve4y2tdern] {
    margin: 0.5rem 0;
}

.sd-oq__list[b-ve4y2tdern] {
    list-style: none;
    margin: 0.5rem 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.sd-oq__item[b-ve4y2tdern] {
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 6px;
}

.sd-oq__head[b-ve4y2tdern] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.sd-oq__text[b-ve4y2tdern],
.sd-oq__answer[b-ve4y2tdern] {
    margin: 0.3rem 0 0;
}

.sd-oq__actions[b-ve4y2tdern] {
    display: flex;
    gap: 0.25rem;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.sd-oq__form[b-ve4y2tdern] {
    display: grid;
    gap: 0.4rem;
    margin-top: 0.6rem;
}

.sd-oq__form textarea[b-ve4y2tdern],
.sd-oq__form select[b-ve4y2tdern] {
    width: 100%;
}

.sd-oq__audiences[b-ve4y2tdern] {
    display: flex;
    gap: 1rem;
    border: 0;
    margin: 0;
    padding: 0;
}

.sd-oq__audiences legend[b-ve4y2tdern] {
    font-size: 0.85rem;
    margin-bottom: 0.2rem;
}

.sd-oq__buttons[b-ve4y2tdern] {
    display: flex;
    gap: 0.5rem;
}
/* /Components/SolutionDesign/SdOverviewArea.razor.rz.scp.css */
/* The Overview (#1152): a journey strip, then four calm cards. */
.sd-journey[b-jb44u4af0z] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
}

.sd-journey__step[b-jb44u4af0z] {
    flex: 1 1 8rem;
}

.sd-journey__button[b-jb44u4af0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
    color: var(--color-text-secondary);
    text-align: left;
    cursor: pointer;
}

.sd-journey__button:hover[b-jb44u4af0z],
.sd-journey__button:focus-visible[b-jb44u4af0z] {
    border-color: var(--color-brand);
}

.sd-journey__mark[b-jb44u4af0z] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    font-size: 0.8rem;
    flex: none;
}

.sd-journey__step.is-done .sd-journey__mark[b-jb44u4af0z] {
    background: var(--color-healthy);
    border-color: var(--color-healthy);
    color: #fff;
}

.sd-journey__step.is-current .sd-journey__button[b-jb44u4af0z] {
    border-color: var(--color-brand);
    color: var(--color-text-primary);
    font-weight: 600;
}

.sd-journey__step.is-current .sd-journey__mark[b-jb44u4af0z] {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff;
}

.sd-overview__grid[b-jb44u4af0z] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: 1rem;
}

.sd-overview__next[b-jb44u4af0z] {
    grid-column: 1 / -1;
}

.sd-overview__activity[b-jb44u4af0z] {
    grid-column: 1 / -1;
}

.sd-overview__lead[b-jb44u4af0z] {
    margin: 0 0 0.75rem;
    font-size: 1.05rem;
}

.sd-overview__reason[b-jb44u4af0z] {
    margin-left: 0.75rem;
}

.sd-overview__list[b-jb44u4af0z] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.4rem;
}

.sd-overview__list strong[b-jb44u4af0z] {
    margin-right: 0.35rem;
}

.sd-overview__log[b-jb44u4af0z] {
    list-style: none;
    margin: 0 0 0.5rem;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

.sd-overview__technical[b-jb44u4af0z] {
    margin-top: 1.25rem;
    color: var(--color-text-secondary);
}

.sd-overview__technical summary[b-jb44u4af0z] {
    cursor: pointer;
}

/* The engagement's own words and its due date (#1153), above the cards. */
.sd-overview__about[b-jb44u4af0z] {
    margin: 0 0 1rem;
}

.sd-overview__due[b-jb44u4af0z] {
    margin-right: 0.5rem;
}

.sd-overview__description[b-jb44u4af0z] {
    margin: 0.5rem 0 0.25rem;
    white-space: pre-wrap;
}

.sd-overview__details-edit[b-jb44u4af0z] {
    display: grid;
    gap: 0.75rem;
    max-width: 40rem;
}

.sd-overview__details-actions[b-jb44u4af0z] {
    display: flex;
    gap: 0.5rem;
}

/* The brief's checklist (#1168): one line per section, ticked when written. */
.sd-overview__checklist[b-jb44u4af0z] {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.15rem;
}

.sd-overview__checklist li[b-jb44u4af0z] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.sd-overview__checklist li.is-done .sd-overview__tick[b-jb44u4af0z] {
    color: var(--color-brand);
}
/* /Components/SolutionDesign/SdPortalFile.razor.rz.scp.css */
.sd-portal-file[b-me7qx3b1qy] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.4rem 0 0;
}

.sd-portal-file .sd-walk__help[b-me7qx3b1qy],
.sd-portal-file .sd-walk__note[b-me7qx3b1qy] {
    flex-basis: 100%;
    margin: 0;
}

.sd-portal-file__button[b-me7qx3b1qy] {
    position: relative;
    cursor: pointer;
}

/* The native control stays in the accessibility tree and takes the click through its label. */
[b-me7qx3b1qy] .sd-portal-file__input {
    position: absolute;
    inset: 0;
    opacity: 0;
    width: 100%;
    cursor: pointer;
}
/* /Components/SolutionDesign/SdPortalLink.razor.rz.scp.css */
.sd-portal-link[b-lmv6bf0bt7] {
    margin: 0.4rem 0 0;
}

.sd-portal-link__found[b-lmv6bf0bt7] {
    margin: 0.35rem 0 0;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 6px;
    background: #f8fafc;
}

.sd-portal-link__list[b-lmv6bf0bt7] {
    list-style: none;
    margin: 0.5rem 0;
    padding: 0;
    display: grid;
    gap: 0.4rem;
}

.sd-portal-link__item[b-lmv6bf0bt7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.sd-portal-link__name[b-lmv6bf0bt7] {
    font-weight: 600;
}

.sd-portal-link__detail[b-lmv6bf0bt7] {
    font-size: 0.85rem;
}

.sd-portal-link__ask[b-lmv6bf0bt7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.5rem 0;
}

.sd-portal-link__input[b-lmv6bf0bt7] {
    width: 8rem;
}
/* /Components/SolutionDesign/SdReferenceTableCard.razor.rz.scp.css */
.sd-ref[b-a02otriz14] {
    display: grid;
    gap: 0.45rem;
    font-size: 0.875rem;
}

.sd-ref p[b-a02otriz14] {
    margin: 0;
}

.sd-ref__head[b-a02otriz14] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.sd-ref__name[b-a02otriz14] {
    font-weight: 600;
}

.sd-ref__marked[b-a02otriz14] {
    background: #f1f5f9;
    color: #475569;
}

.sd-ref__why[b-a02otriz14] {
    font-size: 0.8rem;
}

.sd-ref__preview-wrap[b-a02otriz14] {
    max-height: 16rem;
    overflow: auto;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 6px;
}

.sd-ref__preview[b-a02otriz14] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

.sd-ref__preview th[b-a02otriz14],
.sd-ref__preview td[b-a02otriz14] {
    padding: 0.3rem 0.5rem;
    text-align: left;
    border-bottom: 1px solid var(--border-color, #e5e7eb);
    vertical-align: top;
}

.sd-ref__preview thead th[b-a02otriz14] {
    position: sticky;
    top: 0;
    background: var(--sow-reference-bg, #f8fafc);
    font-weight: 600;
}

.sd-ref__uses[b-a02otriz14] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.6rem;
}

.sd-ref__label[b-a02otriz14] {
    font-weight: 600;
}

.sd-ref__edit[b-a02otriz14] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.4rem;
    padding-top: 0.25rem;
}

.sd-ref__rename[b-a02otriz14] {
    flex: 1 1 12rem;
}
/* /Components/SolutionDesign/SdSampleViewer.razor.rz.scp.css */
.sd-viewer__head[b-5t7dfqwrkb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sd-viewer__actions[b-5t7dfqwrkb] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* The sheet or the document scrolls in its own box (#1126), which fits the space below the top bar. */
.sd-viewer[b-5t7dfqwrkb] {
    --sd-viewer-box-height: calc(100vh - var(--app-header-height, 56px) - 9rem);
}

@supports (height: 100dvh) {
    .sd-viewer[b-5t7dfqwrkb] {
        --sd-viewer-box-height: calc(100dvh - var(--app-header-height, 56px) - 9rem);
    }
}

.sd-viewer__box[b-5t7dfqwrkb] {
    max-height: max(18rem, var(--sd-viewer-box-height));
    overflow-y: auto;
    overscroll-behavior: contain;
}

.sd-viewer__box:focus-visible[b-5t7dfqwrkb] {
    outline: 2px solid var(--color-brand, #074684);
    outline-offset: 2px;
}

.sd-viewer__show[b-5t7dfqwrkb] {
    margin: 0 0 0.5rem;
}

.sd-viewer__more .sd-viewer__show[b-5t7dfqwrkb] {
    margin: 0 0 0 0.5rem;
}

.sd-viewer__problem[b-5t7dfqwrkb] {
    color: #b91c1c;
}

.sd-viewer__sheets[b-5t7dfqwrkb] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.6rem;
}

.sd-viewer__sheet[b-5t7dfqwrkb] {
    padding: 0.15rem 0.6rem;
    font-size: 0.8rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 999px;
    color: var(--color-text-secondary, #64748b);
    text-decoration: none;
}

.sd-viewer__sheet.is-current[b-5t7dfqwrkb] {
    border-color: var(--color-brand, #074684);
    color: var(--color-brand, #074684);
    font-weight: 600;
}

.sd-viewer__place[b-5t7dfqwrkb] {
    margin: 0 0 0.5rem;
}

.sd-viewer__more[b-5t7dfqwrkb] {
    margin: 0 0 0.4rem;
    font-size: 0.8rem;
}

.sd-viewer__grid-wrap[b-5t7dfqwrkb] {
    overflow: auto;
    margin-bottom: 0.5rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 0.5rem);
}

/* Separate borders, so the frozen column letters and line numbers keep theirs while the grid scrolls under them. */
.sd-viewer__grid[b-5t7dfqwrkb] {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
}

.sd-viewer__grid th[b-5t7dfqwrkb],
.sd-viewer__grid td[b-5t7dfqwrkb] {
    padding: 0.25rem 0.5rem;
    border-right: 1px solid var(--color-border, #e2e8f0);
    border-bottom: 1px solid var(--color-border, #e2e8f0);
    white-space: nowrap;
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sd-viewer__grid thead th[b-5t7dfqwrkb],
.sd-viewer__line[b-5t7dfqwrkb] {
    background: var(--color-surface-raised, #f8fafc);
    color: var(--color-text-secondary, #64748b);
    font-weight: 500;
    text-align: center;
}

.sd-viewer__grid thead th[b-5t7dfqwrkb] {
    position: sticky;
    top: 0;
    z-index: 2;
}

.sd-viewer__grid .sd-viewer__line[b-5t7dfqwrkb] {
    position: sticky;
    left: 0;
    z-index: 1;
}

.sd-viewer__grid thead th.sd-viewer__corner[b-5t7dfqwrkb] {
    left: 0;
    z-index: 3;
}

.sd-viewer__grid tr.is-header td[b-5t7dfqwrkb] {
    background: #eef2ff;
    font-weight: 600;
}

.sd-viewer__grid td.is-cited[b-5t7dfqwrkb] {
    outline: 2px solid var(--color-brand, #074684);
    outline-offset: -2px;
    background: var(--color-highlight, #fff3c4);
}

.sd-viewer__grid td.is-cited mark[b-5t7dfqwrkb] {
    background: transparent;
    font-weight: 600;
}

.sd-viewer__page[b-5t7dfqwrkb] {
    max-width: 56rem;
    padding: 0 1rem 0.5rem;
    line-height: 1.6;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 0.5rem);
}

.sd-viewer__doc-page + .sd-viewer__doc-page[b-5t7dfqwrkb] {
    border-top: 1px dashed var(--color-border, #e2e8f0);
}

.sd-viewer__page-heading[b-5t7dfqwrkb] {
    position: sticky;
    top: 0;
    margin: 0 -1rem 0.4rem;
    padding: 0.4rem 1rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--color-text-secondary, #64748b);
    background: var(--color-surface, #fff);
}

.sd-viewer__heading[b-5t7dfqwrkb] {
    font-weight: 600;
    margin: 0.75rem 0 0.3rem;
}

.sd-viewer__para[b-5t7dfqwrkb] {
    margin: 0 0 0.5rem;
}

.sd-viewer__page mark[b-5t7dfqwrkb] {
    background: var(--color-highlight, #fff3c4);
    box-shadow: 0 0 0 2px var(--color-highlight, #fff3c4);
    border-radius: 0.125rem;
}
/* /Components/SolutionDesign/SdScopeDocument.razor.rz.scp.css */
/* The living scope of works (#1048): the document, a coverage strip on the left and coloured notes in the right margin.
   One colour per kind of note, always with its icon and word; a claim's note is tinted by its verdict. */

.sow[b-hkbfyivv4r] {
    --sow-claim: #4c6ef5;
    --sow-claim-bg: #eef2ff;
    --sow-question: #d97706;
    --sow-question-bg: #fffbeb;
    --sow-change: #7c3aed;
    --sow-change-bg: #f5f3ff;
    --sow-decision: #be185d;
    --sow-decision-bg: #fdf2f8;
    --sow-element: #0f766e;
    --sow-element-bg: #f0fdfa;
    --sow-reference: #64748b;
    --sow-reference-bg: #f8fafc;
    --sow-deliverable: #0369a1;
    --sow-deliverable-bg: #f0f9ff;
    --sow-designed: #0f766e;
    --sow-claimed: #a5b4fc;
    --sow-unused: #fbbf24;
}

.sow-tools[b-hkbfyivv4r] {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius, 0.5rem);
    background: var(--color-surface-raised, #f8fafc);
}

.sow-legend[b-hkbfyivv4r] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.sow-legend__title[b-hkbfyivv4r] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text-secondary, #64748b);
    margin-right: 0.25rem;
}

.sow-chip[b-hkbfyivv4r] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.6rem;
    font-size: 0.8rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-left: 3px solid var(--sow-kind, #94a3b8);
    border-radius: 999px;
    background: var(--color-surface, #fff);
    color: var(--color-text-secondary, #64748b);
    cursor: pointer;
}

.sow-chip.is-on[b-hkbfyivv4r] {
    background: var(--sow-kind-bg, #f8fafc);
    color: var(--color-text-primary, #0f172a);
}

.sow-chip:not(.is-on)[b-hkbfyivv4r] {
    text-decoration: line-through;
    opacity: 0.75;
}

.sow-chip:focus-visible[b-hkbfyivv4r],
.sow-note__head:focus-visible[b-hkbfyivv4r],
.sow-stack__count:focus-visible[b-hkbfyivv4r] {
    outline: 2px solid var(--color-brand, #074684);
    outline-offset: 2px;
}

.sow-chip__icon[b-hkbfyivv4r] {
    color: var(--sow-kind, #94a3b8);
    font-weight: 700;
}

.sow-chip__count[b-hkbfyivv4r] {
    font-variant-numeric: tabular-nums;
    color: var(--color-text-secondary, #64748b);
}

.sow-filters[b-hkbfyivv4r] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.sow-filter[b-hkbfyivv4r] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
}

.sow-coverage-key[b-hkbfyivv4r] {
    margin: 0;
    font-size: 0.8rem;
}

.sow-key[b-hkbfyivv4r] {
    display: inline-block;
    width: 0.6rem;
    height: 0.6rem;
    margin: 0 0.15rem 0 0.5rem;
    border-radius: 2px;
    vertical-align: baseline;
}

.sow-key:first-child[b-hkbfyivv4r] {
    margin-left: 0;
}

.sow-fallback[b-hkbfyivv4r] {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
}

/* ── the document ───────────────────────────────────────────────────────── */

.sow-doc[b-hkbfyivv4r] {
    line-height: 1.6;
}

.sow-row[b-hkbfyivv4r] {
    display: grid;
    grid-template-columns: 4px minmax(0, 1fr) minmax(12rem, 15rem);
    column-gap: 1rem;
    align-items: start;
}

.sow-strip[b-hkbfyivv4r] {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    gap: 1px;
    padding: 0.2rem 0;
}

.sow-strip__mark[b-hkbfyivv4r] {
    flex: 1 1 0;
    min-height: 0.35rem;
    border-radius: 2px;
}

.sow-cov--designed[b-hkbfyivv4r] { background: var(--sow-designed); }
.sow-cov--claimed[b-hkbfyivv4r] { background: var(--sow-claimed); }
.sow-cov--unused[b-hkbfyivv4r] { background: repeating-linear-gradient(180deg, var(--sow-unused) 0 3px, transparent 3px 5px); }
.sow-cov--structure[b-hkbfyivv4r] { background: transparent; }

.sow-key.sow-cov--unused[b-hkbfyivv4r] { background: var(--sow-unused); }

.sow-text[b-hkbfyivv4r] {
    min-width: 0;
    max-width: 52rem;
}

.sow-h[b-hkbfyivv4r] {
    margin: 1rem 0 0.4rem;
    font-weight: 600;
    color: var(--color-text-primary, #0f172a);
}

.sow-h--1[b-hkbfyivv4r] { font-size: 1.1rem; }
.sow-h--2[b-hkbfyivv4r] { font-size: 1rem; }
.sow-h--3[b-hkbfyivv4r] { font-size: 0.95rem; }

.sow-p[b-hkbfyivv4r],
.sow-step[b-hkbfyivv4r],
.sow-li[b-hkbfyivv4r],
.sow-contents[b-hkbfyivv4r] {
    margin: 0 0 0.6rem;
}

.sow-step[b-hkbfyivv4r],
.sow-li[b-hkbfyivv4r] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 0.5rem;
}

.sow-body[b-hkbfyivv4r] {
    /* One text column: the sentences flow inline, never as separate grid items (a step's sentences were
       auto-placed into the marker column and squeezed). */
    min-width: 0;
}

.sow-li[b-hkbfyivv4r] {
    margin-left: calc(1.25rem + var(--sow-level, 0) * 1.25rem);
    margin-bottom: 0.3rem;
}

.sow-marker[b-hkbfyivv4r] {
    font-variant-numeric: tabular-nums;
    color: var(--color-text-secondary, #64748b);
    min-width: 1.25rem;
}

.sow-contents[b-hkbfyivv4r] {
    margin-bottom: 0.15rem;
    padding-left: 1rem;
    font-size: 0.85rem;
    color: var(--color-text-secondary, #64748b);
}

.sow-table-wrap[b-hkbfyivv4r] {
    overflow-x: auto;
    margin: 0.25rem 0 0.9rem;
}

.sow-table[b-hkbfyivv4r] {
    border-collapse: collapse;
    font-size: 0.875rem;
    min-width: 50%;
}

.sow-table th[b-hkbfyivv4r],
.sow-table td[b-hkbfyivv4r] {
    padding: 0.35rem 0.6rem;
    border: 1px solid var(--color-border, #e2e8f0);
    text-align: left;
    vertical-align: top;
}

.sow-table thead th[b-hkbfyivv4r] {
    background: var(--color-surface-raised, #f8fafc);
    font-weight: 600;
}

/* A cell with structure of its own (#1201): its paragraphs, list items and nested table sit one under another, close
   together, so the cell reads as it does in Word. */
.sow-cell > .sow-p[b-hkbfyivv4r],
.sow-cell > .sow-step[b-hkbfyivv4r],
.sow-cell > .sow-li[b-hkbfyivv4r] {
    margin: 0 0 0.3rem;
}

.sow-cell > .sow-li[b-hkbfyivv4r] {
    margin-left: calc(0.25rem + var(--sow-level, 0) * 1rem);
}

.sow-cell > :last-child[b-hkbfyivv4r] {
    margin-bottom: 0;
}

.sow-table-wrap--nested[b-hkbfyivv4r] {
    margin: 0.1rem 0 0.3rem;
    overflow-x: visible;
}

.sow-table--nested[b-hkbfyivv4r] {
    min-width: 100%;
    font-size: inherit;
}

.sow-table--nested th[b-hkbfyivv4r],
.sow-table--nested td[b-hkbfyivv4r] {
    padding: 0.25rem 0.5rem;
}

/* A sentence with notes is tinted lightly; the one whose note is open, a little more. */
.sow-s--noted[b-hkbfyivv4r] {
    background: rgba(76, 110, 245, 0.07);
    border-bottom: 1px dotted rgba(76, 110, 245, 0.45);
}

.sow-s--focus[b-hkbfyivv4r] {
    background: rgba(76, 110, 245, 0.16);
}

/* ── the notes ──────────────────────────────────────────────────────────── */

.sow-margin[b-hkbfyivv4r] {
    display: grid;
    gap: 0.4rem;
    padding: 0.15rem 0 0.4rem;
}

.sow-stack[b-hkbfyivv4r] {
    display: grid;
    gap: 0.25rem;
    border-radius: 6px;
    scroll-margin-top: 6rem;
}

.sow-stack.is-stacked .sow-note[b-hkbfyivv4r] {
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08), 3px 3px 0 -1px var(--color-surface, #fff), 3px 3px 0 0 var(--color-border, #e2e8f0);
}

.sow-stack__count[b-hkbfyivv4r] {
    justify-self: start;
    padding: 0 0.4rem;
    font-size: 0.72rem;
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: 999px;
    background: var(--color-surface, #fff);
    color: var(--color-text-secondary, #64748b);
    cursor: pointer;
}

/* A link landed here: the notes pulse twice. Without motion, a steady ring. */
.sow-stack.is-hit[b-hkbfyivv4r] {
    outline: 2px solid var(--color-highlight, #f5c518);
    outline-offset: 2px;
    animation: sow-pulse-b-hkbfyivv4r 1.1s ease-out 2;
}

@keyframes sow-pulse-b-hkbfyivv4r {
    0% { box-shadow: 0 0 0 0 rgba(245, 197, 24, 0.55); }
    100% { box-shadow: 0 0 0 10px rgba(245, 197, 24, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .sow-stack.is-hit[b-hkbfyivv4r] { animation: none; }
}

.sow-note[b-hkbfyivv4r] {
    border: 1px solid var(--color-border, #e2e8f0);
    border-left: 3px solid var(--sow-kind, #94a3b8);
    border-radius: 6px;
    background: var(--sow-kind-bg, #f8fafc);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    font-size: 0.8rem;
}

.sow-note--claim[b-hkbfyivv4r] { --sow-kind: var(--sow-claim); --sow-kind-bg: var(--sow-claim-bg); }
.sow-note--question[b-hkbfyivv4r] { --sow-kind: var(--sow-question); --sow-kind-bg: var(--sow-question-bg); }
.sow-note--change[b-hkbfyivv4r] { --sow-kind: var(--sow-change); --sow-kind-bg: var(--sow-change-bg); }
.sow-note--decision[b-hkbfyivv4r] { --sow-kind: var(--sow-decision); --sow-kind-bg: var(--sow-decision-bg); }
.sow-note--element[b-hkbfyivv4r] { --sow-kind: var(--sow-element); --sow-kind-bg: var(--sow-element-bg); }
.sow-note--reference[b-hkbfyivv4r] { --sow-kind: var(--sow-reference); --sow-kind-bg: var(--sow-reference-bg); }
.sow-note--deliverable[b-hkbfyivv4r] { --sow-kind: var(--sow-deliverable); --sow-kind-bg: var(--sow-deliverable-bg); }

/* A claim's note is tinted by its verdict; the kind's colour stays on its edge. */
.sow-note.sow-verdict--good[b-hkbfyivv4r] { background: #f0fdf4; }
.sow-note.sow-verdict--bad[b-hkbfyivv4r] { background: #fef2f2; }
.sow-note.sow-verdict--warn[b-hkbfyivv4r] { background: #fffbeb; }
.sow-note.sow-verdict--neutral[b-hkbfyivv4r] { background: #f8fafc; }

.sow-note__head[b-hkbfyivv4r] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    column-gap: 0.35rem;
    row-gap: 0.15rem;
    width: 100%;
    padding: 0.3rem 0.5rem;
    border: 0;
    background: transparent;
    text-align: left;
    color: var(--color-text-primary, #0f172a);
    cursor: pointer;
}

.sow-note__icon[b-hkbfyivv4r] {
    color: var(--sow-kind, #94a3b8);
    font-weight: 700;
}

.sow-note__label[b-hkbfyivv4r] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

.sow-tone[b-hkbfyivv4r] {
    grid-column: 2;
    justify-self: start;
    padding: 0 0.4rem;
    border-radius: 999px;
    font-size: 0.7rem;
}

.sow-tone--good[b-hkbfyivv4r] { background: #dcfce7; color: #166534; }
.sow-tone--bad[b-hkbfyivv4r] { background: #fee2e2; color: #991b1b; }
.sow-tone--warn[b-hkbfyivv4r] { background: #fef3c7; color: #92400e; }
.sow-tone--neutral[b-hkbfyivv4r] { background: #f1f5f9; color: #475569; }

.sow-note__body[b-hkbfyivv4r] {
    padding: 0 0.5rem 0.45rem;
    border-top: 1px solid var(--color-border, #e2e8f0);
}

.sow-note__summary[b-hkbfyivv4r] {
    margin: 0.35rem 0;
    line-height: 1.45;
}

.sow-note__studio[b-hkbfyivv4r] {
    margin: 0 0 0.3rem;
}

.sow-note__actions[b-hkbfyivv4r] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

@media (max-width: 1100px) {
    .sow-row[b-hkbfyivv4r] {
        grid-template-columns: 4px minmax(0, 1fr);
    }

    .sow-margin[b-hkbfyivv4r] {
        grid-column: 2;
        grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
    }
}

/* ── the changes, drawn inline (#1042), and the sentence a link opened (#1044) ── */

.sd-sow__mark del[b-hkbfyivv4r] {
    color: #a4262c;
    text-decoration-thickness: 1px;
}

.sd-sow__mark ins[b-hkbfyivv4r] {
    color: #1f4e99;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    background: #eef4ff;
}

.sd-sow__mark.is-rejected[b-hkbfyivv4r] {
    opacity: 0.85;
}

.sd-sow__ref[b-hkbfyivv4r] {
    margin-left: 0.15rem;
    font-size: 0.7rem;
    color: var(--color-text-secondary, #64748b);
}

.sd-sow__hit[b-hkbfyivv4r] {
    background: var(--color-highlight, #fff3c4);
    box-shadow: 0 0 0 2px var(--color-highlight, #fff3c4);
    border-radius: 0.125rem;
    scroll-margin-top: 6rem;
}

/* Suggest wording (#1143): a sentence that may take a suggestion, and the link that offers it. */
.sow-s--suggestable[b-hkbfyivv4r] {
    cursor: pointer;
}

.sow-s--suggestable:hover[b-hkbfyivv4r] {
    background: var(--color-surface-raised);
}

.sow-suggest[b-hkbfyivv4r] {
    margin-left: 0.35rem;
    font-size: 0.85rem;
}
/* /Components/SolutionDesign/SdScopeOfWorks.razor.rz.scp.css */
.sd-sow__head[b-1035bn2v1j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.sd-sow__toggle[b-1035bn2v1j] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    font-weight: 400;
}

.sd-sow__lead[b-1035bn2v1j] {
    margin: 0 0 0.35rem;
}

.sd-sow__note[b-1035bn2v1j] {
    margin: 0 0 1rem;
    font-size: 0.85rem;
}

.sd-sow__warning[b-1035bn2v1j] {
    margin: 0 0 0.75rem;
    color: #92400e;
}

.sd-sow__message[b-1035bn2v1j] {
    margin: 0 0 0.75rem;
    color: #166534;
}

.sd-sow__error[b-1035bn2v1j] {
    margin: 0 0 0.75rem;
    color: #b91c1c;
}

.sd-sow__sub[b-1035bn2v1j] {
    margin: 1.25rem 0 0.6rem;
    font-size: 0.95rem;
    font-weight: 600;
}

.sd-sow__changes[b-1035bn2v1j] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.sd-sow__change[b-1035bn2v1j] {
    padding: 0.75rem 1rem;
    border: 1px solid var(--border-color, #e5e7eb);
    border-radius: 8px;
    background: var(--surface, #fff);
}

.sd-sow__change.is-rejected[b-1035bn2v1j] {
    background: var(--surface-muted, #f9fafb);
}

.sd-sow__change-head[b-1035bn2v1j] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
}

.sd-sow__number[b-1035bn2v1j] {
    font-weight: 600;
}

.sd-sow__kind--replace[b-1035bn2v1j] {
    background: #e0e7ff;
    color: #3730a3;
}

.sd-sow__kind--insert[b-1035bn2v1j] {
    background: #dcfce7;
    color: #166534;
}

.sd-sow__kind--remove[b-1035bn2v1j] {
    background: #fee2e2;
    color: #991b1b;
}

.sd-sow__cites[b-1035bn2v1j] {
    font-size: 0.8rem;
}

.sd-sow__label[b-1035bn2v1j] {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted, #6b7280);
}

.sd-sow__original[b-1035bn2v1j],
.sd-sow__new[b-1035bn2v1j] {
    margin: 0.3rem 0;
}

.sd-sow__original del[b-1035bn2v1j],
.sd-sow__mark del[b-1035bn2v1j] {
    color: #a4262c;
    text-decoration-thickness: 1px;
}

.sd-sow__new ins[b-1035bn2v1j],
.sd-sow__mark ins[b-1035bn2v1j] {
    color: #1f4e99;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    background: #eef4ff;
}

.sd-sow__edit[b-1035bn2v1j] {
    display: block;
    margin: 0.4rem 0;
}

.sd-sow__actions[b-1035bn2v1j] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

/* The revised text itself is SdScopeDocument (#1048), with its own styles. */
.sd-sow__doc[b-1035bn2v1j] {
    margin-top: 0.25rem;
}

.sd-sow__heading[b-1035bn2v1j] {
    margin: 1rem 0 0.4rem;
    font-weight: 600;
}

.sd-sow__heading--1[b-1035bn2v1j] {
    font-size: 1.05rem;
}

.sd-sow__p[b-1035bn2v1j] {
    margin: 0 0 0.6rem;
}

.sd-sow__mark.is-rejected[b-1035bn2v1j] {
    opacity: 0.85;
}

.sd-sow__ref[b-1035bn2v1j] {
    margin-left: 0.15rem;
    font-size: 0.7rem;
    color: var(--text-muted, #6b7280);
}

/* A sentence opened from a quote elsewhere (#1044). */
.sd-sow__hit[b-1035bn2v1j] {
    background: var(--color-highlight, #fff3c4);
    box-shadow: 0 0 0 2px var(--color-highlight, #fff3c4);
    border-radius: 0.125rem;
    scroll-margin-top: 6rem;
}

/* Suggestions (#1143): the form above the changes, and a decision with its note. */
.sd-sow__suggest[b-1035bn2v1j] {
    margin-bottom: 1rem;
}

.sd-sow__decision[b-1035bn2v1j] {
    margin: 0.25rem 0 0.5rem;
}

.sd-sow__decide[b-1035bn2v1j] {
    margin: 0.5rem 0;
    display: grid;
    gap: 0.5rem;
}
/* /Components/SolutionDesign/SdScratchPad.razor.rz.scp.css */
/* The scratch pad (#1143): a composer, then notes as calm cards; a pinned note sits first and is marked. */
.sd-pad__lead[b-tpn33ha0m7] {
    margin: 0 0 0.75rem;
}

.sd-pad__composer[b-tpn33ha0m7] {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.sd-pad__composer-actions[b-tpn33ha0m7] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.sd-pad__list[b-tpn33ha0m7] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.sd-pad__note[b-tpn33ha0m7] {
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface);
}

.sd-pad__note.is-pinned[b-tpn33ha0m7] {
    border-color: var(--color-brand);
}

.sd-pad__note.is-highlighted[b-tpn33ha0m7] {
    box-shadow: 0 0 0 2px var(--color-brand-teal);
}

.sd-pad__head[b-tpn33ha0m7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.sd-pad__who[b-tpn33ha0m7] {
    font-weight: 600;
}

.sd-pad__when[b-tpn33ha0m7] {
    font-size: 0.85rem;
}

.sd-pad__text[b-tpn33ha0m7] {
    margin: 0.25rem 0 0.5rem;
}

.sd-pad__edit[b-tpn33ha0m7] {
    display: grid;
    gap: 0.5rem;
    margin: 0.25rem 0 0.5rem;
}

.sd-pad__actions[b-tpn33ha0m7] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.sd-mention[b-tpn33ha0m7] {
    position: relative;
}

.sd-mention__list[b-tpn33ha0m7] {
    position: absolute;
    bottom: 100%;
    left: 0;
    z-index: 20;
    min-width: 16rem;
    max-height: 18rem;
    overflow: auto;
    list-style: none;
    margin: 0 0 0.25rem;
    padding: 0.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.sd-mention__choice[b-tpn33ha0m7] {
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: left;
    padding: 0.4rem 0.6rem;
    border: 0;
    background: none;
    border-radius: var(--radius);
    cursor: pointer;
}

.sd-mention__choice:hover[b-tpn33ha0m7],
.sd-mention__choice:focus-visible[b-tpn33ha0m7] {
    background: var(--color-surface-raised);
}

.sd-mention__label[b-tpn33ha0m7] {
    font-weight: 600;
}

.sd-mention__detail[b-tpn33ha0m7] {
    font-size: 0.8rem;
}
/* /Components/SolutionDesign/SdSpecReference.razor.rz.scp.css */
.sd-specref[b-5zjybmzocp] {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.sd-specref__lead[b-5zjybmzocp] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.sd-specref__quote[b-5zjybmzocp] {
    margin: 0;
    padding: 0.5rem 0.75rem;
    border-left: 3px solid var(--color-border-strong, var(--color-border));
    background: var(--color-surface-muted, rgba(0, 0, 0, 0.03));
    border-radius: 0 0.375rem 0.375rem 0;
    font-size: 0.875rem;
    line-height: 1.45;
}

.sd-specref__place[b-5zjybmzocp] {
    margin: 0;
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.sd-specref__sep[b-5zjybmzocp] {
    padding: 0 0.125rem;
}

.sd-specref__actions[b-5zjybmzocp] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 1rem;
    font-size: 0.75rem;
}

.sd-specref__context summary[b-5zjybmzocp] {
    cursor: pointer;
    color: var(--color-link, var(--color-primary));
}

.sd-specref__context[open][b-5zjybmzocp] {
    flex-basis: 100%;
}

.sd-specref__context-body[b-5zjybmzocp] {
    margin-top: 0.375rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: 0.375rem;
    font-size: 0.8125rem;
}

.sd-specref__context-body p[b-5zjybmzocp] {
    margin: 0 0 0.375rem;
}

.sd-specref__context-heading[b-5zjybmzocp] {
    font-weight: 600;
}

.sd-specref__context-line[b-5zjybmzocp] {
    color: var(--color-text-muted);
}

.sd-specref__cited[b-5zjybmzocp] {
    background: var(--color-highlight, #fff3c4);
    padding: 0 0.125rem;
}

.sd-specref__open[b-5zjybmzocp] {
    color: var(--color-link, var(--color-primary));
}

.sd-specref--compact .sd-specref__quote[b-5zjybmzocp] {
    font-size: 0.8125rem;
    padding: 0.25rem 0.5rem;
}
/* /Components/SolutionDesign/SdStationeryHandOffCard.razor.rz.scp.css */
.sd-handoff[b-rjzco57dij] {
    background: var(--color-surface, #ffffff);
    border: 1px solid var(--color-brand, #2563eb);
    border-radius: var(--radius, 10px);
    padding: 0.875rem 1.125rem;
    margin: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    font-size: 0.875rem;
}

.sd-handoff__head[b-rjzco57dij] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.sd-handoff__kind[b-rjzco57dij] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sd-handoff__title[b-rjzco57dij] {
    font-size: 1.05rem;
    margin: 0;
}

.sd-handoff__engagement[b-rjzco57dij],
.sd-handoff__hint[b-rjzco57dij],
.sd-handoff__summary[b-rjzco57dij] {
    margin: 0;
}

.sd-handoff__label[b-rjzco57dij] {
    margin: 0 0 0.3rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-handoff__details summary[b-rjzco57dij] {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-handoff__details p[b-rjzco57dij] {
    margin: 0.4rem 0 0.2rem;
}

.sd-handoff__lines[b-rjzco57dij],
.sd-handoff__notes[b-rjzco57dij],
.sd-handoff__blockers ul[b-rjzco57dij],
.sd-handoff__permissions[b-rjzco57dij] {
    margin: 0.3rem 0 0;
    padding-left: 1.25rem;
}

.sd-handoff__blockers[b-rjzco57dij] {
    border-left: 3px solid #9a3412;
    padding-left: 0.75rem;
}

.sd-handoff__permissions[b-rjzco57dij] {
    color: #9a3412;
    list-style: none;
    padding: 0;
}

.sd-handoff__done[b-rjzco57dij] {
    background: #dcfce7;
    color: #166534;
}

.sd-handoff__actions[b-rjzco57dij] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.sd-handoff__back[b-rjzco57dij] {
    margin-left: auto;
}


.sd-stationery-handoff[b-rjzco57dij] {
    margin: 0 0 1rem;
}

.sd-stationery-handoff__fields[b-rjzco57dij] {
    list-style: none;
    margin: 0.4rem 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
}

.sd-stationery-handoff__fields li[b-rjzco57dij] {
    display: inline-flex;
    gap: 0.35rem;
    color: var(--color-text-secondary);
}

.sd-stationery-handoff__fields li.is-placed[b-rjzco57dij] {
    color: #166534;
}
/* /Components/SolutionDesign/SdStatusBadge.razor.rz.scp.css */
.sd-status--samples[b-2nh1f2mlu1] {
    background: #e0f2fe;
    color: #075985;
}

.sd-status--claims[b-2nh1f2mlu1] {
    background: #ede9fe;
    color: #5b21b6;
}

.sd-status--designed[b-2nh1f2mlu1] {
    background: #ccfbf1;
    color: #115e59;
}

.sd-status--applying[b-2nh1f2mlu1] {
    background: #fef3c7;
    color: #92400e;
}

.sd-status--applied[b-2nh1f2mlu1] {
    background: #dcfce7;
    color: #166534;
}
/* /Components/SolutionDesign/SdUploadPicker.razor.rz.scp.css */
.sd-picker[b-lnhafqh6l0] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem;
}

.sd-picker__field[b-lnhafqh6l0] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 14rem;
}

.sd-picker__label[b-lnhafqh6l0] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sd-picker__button[b-lnhafqh6l0] {
    position: relative;
    cursor: pointer;
}

/* The native control stays in the accessibility tree and takes the click through its label. */
[b-lnhafqh6l0] .sd-picker__input {
    position: absolute;
    inset: 0;
    opacity: 0;
    width: 100%;
    cursor: pointer;
}

.sd-picker__hint[b-lnhafqh6l0] {
    flex-basis: 100%;
    margin: 0;
}

/* One example or several (#1181): two plain choices, then the name when the files belong together. */
.sd-picker__set[b-lnhafqh6l0] {
    flex-basis: 100%;
    border: 0;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
}

.sd-picker__set legend[b-lnhafqh6l0] {
    padding: 0;
    margin-bottom: 0.25rem;
}

.sd-picker__choice[b-lnhafqh6l0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.sd-picker__pending[b-lnhafqh6l0] {
    flex-basis: 100%;
    display: grid;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
}

.sd-picker__pending-text[b-lnhafqh6l0] {
    margin: 0;
}

.sd-picker__pending-actions[b-lnhafqh6l0] {
    display: flex;
    gap: 0.5rem;
}

.sd-picker__error[b-lnhafqh6l0] {
    flex-basis: 100%;
    margin: 0;
    color: var(--color-down);
}

/* Drop zone (#1153): the file input covers it, so a drop or a click both reach the input. */
.sd-drop[b-lnhafqh6l0] {
    position: relative;
    display: block;
    padding: 1.25rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
    text-align: center;
    color: var(--color-text-secondary);
    cursor: pointer;
}

.sd-drop:hover[b-lnhafqh6l0],
.sd-drop:focus-within[b-lnhafqh6l0] {
    border-color: var(--color-brand);
    color: var(--color-text-primary);
}

.sd-drop__input[b-lnhafqh6l0] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
/* /Components/SolutionDesign/Skills/SkillCoveragePanel.razor.rz.scp.css */
.skill-coverage[b-24vlyutvef] {
    margin-bottom: 1rem;
}

.skill-coverage__summary[b-24vlyutvef] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
    padding: 0.875rem 1.25rem;
}

.skill-coverage__title[b-24vlyutvef] {
    display: inline;
    font-size: 1.0625rem;
    margin: 0;
}

.skill-coverage__counts[b-24vlyutvef] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.skill-coverage__body[b-24vlyutvef] {
    padding-top: 0;
}

.skill-coverage__h3[b-24vlyutvef] {
    font-size: 0.9375rem;
    margin: 1rem 0 0.375rem;
}

.skill-coverage__list[b-24vlyutvef] {
    margin: 0;
    padding-left: 1.25rem;
}

.skill-coverage__list li[b-24vlyutvef] {
    margin-bottom: 0.25rem;
}

.skill-coverage__list li .muted[b-24vlyutvef] {
    margin-left: 0.5rem;
}

.skill-coverage__inline[b-24vlyutvef] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
/* /Components/SolutionDesign/Skills/SkillDiffList.razor.rz.scp.css */
.skill-diff__title[b-vgtywhaxfz] {
    font-size: 0.875rem;
    font-weight: 600;
    margin: 0.75rem 0 0.25rem;
    color: var(--color-text-secondary);
}

.skill-diff__title:first-child[b-vgtywhaxfz] {
    margin-top: 0;
}

.skill-diff__list[b-vgtywhaxfz] {
    margin: 0;
    padding-left: 1.25rem;
}

.skill-diff__list li[b-vgtywhaxfz] {
    margin-bottom: 0.25rem;
}

.skill-diff__name[b-vgtywhaxfz] {
    font-weight: 600;
}
/* /Components/SolutionDesign/Skills/SkillEditor.razor.rz.scp.css */
.skill-editor__head[b-80c1ibuw4p] {
    margin-bottom: 1rem;
}

.skill-editor__title[b-80c1ibuw4p] {
    margin: 0;
    font-size: 1.25rem;
}

.skill-editor__id[b-80c1ibuw4p] {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
}

.skill-editor__grid[b-80c1ibuw4p] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1rem 1.5rem;
    margin-bottom: 1rem;
}

.skill-field[b-80c1ibuw4p] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    min-width: 0;
}

.skill-field > label[b-80c1ibuw4p],
.skill-kinds > legend[b-80c1ibuw4p] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.skill-field textarea[b-80c1ibuw4p] {
    resize: vertical;
    width: 100%;
}

.skill-field .form-hint[b-80c1ibuw4p] {
    margin: 0;
}

.skill-field--toggle[b-80c1ibuw4p] {
    justify-content: flex-end;
}

.skill-toggle[b-80c1ibuw4p] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
}

.skill-kinds[b-80c1ibuw4p] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.5rem 0.75rem 0.75rem;
    margin: 0;
}

.skill-kinds__list[b-80c1ibuw4p] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.25rem 1rem;
    max-height: 14rem;
    overflow-y: auto;
}

.skill-kinds__item[b-80c1ibuw4p] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
}

.skill-editor__read[b-80c1ibuw4p] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.5rem 1.5rem;
    margin: 0 0 1rem;
}

.skill-editor__read dt[b-80c1ibuw4p] {
    font-weight: 600;
    color: var(--color-text-secondary);
}

.skill-editor__read dd[b-80c1ibuw4p] {
    margin: 0;
}

.skill-editor__prose[b-80c1ibuw4p] {
    white-space: pre-wrap;
}

.skill-editor__phrases[b-80c1ibuw4p] {
    margin: 0;
    padding-left: 1.125rem;
}

.skill-editor__produces[b-80c1ibuw4p] {
    margin: 0 0 1rem;
}

.skill-guidance[b-80c1ibuw4p] {
    border-top: 1px solid var(--color-border);
    padding-top: 1rem;
}

.skill-guidance__title[b-80c1ibuw4p] {
    margin: 0 0 0.25rem;
    font-size: 1rem;
}

.skill-guidance .form-hint[b-80c1ibuw4p] {
    margin: 0 0 0.5rem;
}

.skill-guidance__seg[b-80c1ibuw4p] {
    margin-bottom: 0.5rem;
}

.skill-guidance__label[b-80c1ibuw4p] {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    margin-bottom: 0.25rem;
}

.skill-guidance__text[b-80c1ibuw4p] {
    width: 100%;
    resize: vertical;
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.8125rem;
    line-height: 1.5;
}

.skill-guidance__seg--fixed[b-80c1ibuw4p] {
    display: flex;
    gap: 0.625rem;
    align-items: flex-start;
    padding: 0.5rem 0.75rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface-muted, #f8fafc);
}

.skill-guidance__fixed[b-80c1ibuw4p] {
    flex: 0 0 auto;
}

.skill-guidance__fixed-text[b-80c1ibuw4p],
.skill-guidance__seg--read[b-80c1ibuw4p] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.8125rem;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
}
/* /Components/SolutionDesign/Skills/SkillProposalsPanel.razor.rz.scp.css */
.skill-proposals[b-0dcc0cjjey] {
    margin-bottom: 1rem;
}

.skill-proposals__title[b-0dcc0cjjey] {
    font-size: 1.0625rem;
    margin: 0 0 0.375rem;
}

.skill-proposals__list[b-0dcc0cjjey] {
    margin: 0.5rem 0 0;
    padding: 0;
    list-style: none;
}

.skill-proposals__item[b-0dcc0cjjey] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.625rem 0;
    border-top: 1px solid var(--color-border);
}

.skill-proposals__text[b-0dcc0cjjey] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.75rem;
}

.skill-proposals__name[b-0dcc0cjjey] {
    font-weight: 600;
}

.skill-proposals__why[b-0dcc0cjjey] {
    flex-basis: 100%;
    font-size: 0.875rem;
}

.skill-proposals__actions[b-0dcc0cjjey] {
    display: flex;
    gap: 0.5rem;
}
/* /Components/SolutionDesign/Skills/SkillVersionNotice.razor.rz.scp.css */
.skill-notice[b-jg68qs3n9k] {
    margin-bottom: 1rem;
}

.skill-notice__text[b-jg68qs3n9k] {
    margin: 0 0 0.375rem;
}

.skill-notice__actions[b-jg68qs3n9k] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    font-size: 0.875rem;
}

.skill-notice__diff[b-jg68qs3n9k] {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--color-border);
}
/* /Components/SolutionDesign/SolutionDesignAssistantPane.razor.rz.scp.css */
.sd-assistant[b-mpwa6qu1qj] { display: flex; flex-direction: column; gap: 0.75rem; min-height: 0; }

.sd-assistant__toolbar[b-mpwa6qu1qj] { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.sd-assistant__hint[b-mpwa6qu1qj] { font-size: 0.8rem; }

.sd-assistant__messages[b-mpwa6qu1qj] {
    display: flex; flex-direction: column-reverse; gap: 0.6rem;
    min-height: 240px; max-height: 60vh; overflow-y: auto;
    padding: 0.25rem 0.1rem;
}

.sd-bubble[b-mpwa6qu1qj] { max-width: 94%; border-radius: 10px; padding: 0.5rem 0.75rem; font-size: 0.85rem; line-height: 1.45; }
.sd-bubble--user[b-mpwa6qu1qj] { align-self: flex-end; background: var(--color-brand); color: #fff; border-bottom-right-radius: 4px; }
.sd-bubble--assistant[b-mpwa6qu1qj] { align-self: flex-start; background: var(--color-surface-raised); color: var(--color-text-primary); border: 1px solid var(--color-border); border-bottom-left-radius: 4px; }
.sd-bubble--error[b-mpwa6qu1qj] { align-self: flex-start; background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.sd-bubble__who[b-mpwa6qu1qj] { display: block; font-size: 0.7rem; font-weight: 600; opacity: 0.8; margin-bottom: 0.15rem; }
.sd-bubble__text[b-mpwa6qu1qj] { margin: 0; overflow-wrap: anywhere; }
.sd-bubble__text--plain[b-mpwa6qu1qj] { white-space: pre-wrap; }

/* #1125: the model's prose as markdown, kept calm: small bold headings, compact lists, no big type. The HTML comes from
   a MarkupString, so these rules are written against the pane's own wrapper and reach the children with ::deep. */
.sd-md[b-mpwa6qu1qj]  > :first-child { margin-top: 0; }
.sd-md[b-mpwa6qu1qj]  > :last-child { margin-bottom: 0; }
.sd-md[b-mpwa6qu1qj]  p { margin: 0 0 0.45rem; }
.sd-md[b-mpwa6qu1qj]  :is(h4, h5, h6) { margin: 0.6rem 0 0.25rem; font-family: var(--font-body); font-size: 0.85rem; font-weight: 600; line-height: 1.35; color: inherit; }
.sd-md[b-mpwa6qu1qj]  h6 { font-size: 0.8rem; }
.sd-md[b-mpwa6qu1qj]  :is(ul, ol) { margin: 0 0 0.45rem; padding-left: 1.15rem; }
.sd-md[b-mpwa6qu1qj]  li { margin: 0 0 0.15rem; }
.sd-md[b-mpwa6qu1qj]  li > :is(ul, ol) { margin: 0.15rem 0 0; }
.sd-md[b-mpwa6qu1qj]  li > p { margin: 0; }
.sd-md[b-mpwa6qu1qj]  code { font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace); font-size: 0.78rem; padding: 0.05rem 0.25rem; border-radius: 4px; background: var(--color-surface-raised); border: 1px solid var(--color-border); }
.sd-md[b-mpwa6qu1qj]  pre { margin: 0 0 0.45rem; padding: 0.45rem 0.55rem; max-height: 16rem; overflow: auto; border-radius: 6px; background: var(--color-surface-raised); border: 1px solid var(--color-border); white-space: pre; }
.sd-md[b-mpwa6qu1qj]  pre code { padding: 0; border: 0; background: none; font-size: 0.75rem; }
.sd-md[b-mpwa6qu1qj]  blockquote { margin: 0 0 0.45rem; padding-left: 0.6rem; border-left: 3px solid var(--color-border); color: var(--color-text-secondary); }
.sd-md[b-mpwa6qu1qj]  hr { margin: 0.5rem 0; border: 0; border-top: 1px solid var(--color-border); }
.sd-md[b-mpwa6qu1qj]  a { color: var(--color-brand); text-decoration: underline; }
/* While a reply streams, the caret follows the last paragraph instead of dropping to a line of its own. */
.sd-md.is-streaming[b-mpwa6qu1qj]  > p:nth-last-child(2) { display: inline; }
.sd-bubble__caret[b-mpwa6qu1qj] { animation: sd-blink-b-mpwa6qu1qj 1s steps(2, start) infinite; }
@keyframes sd-blink-b-mpwa6qu1qj { to { visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .sd-bubble__caret[b-mpwa6qu1qj] { animation: none; } }

.sd-assistant__event[b-mpwa6qu1qj] { align-self: center; margin: 0; max-width: 90%; font-size: 0.75rem; color: var(--color-text-secondary); text-align: center; }
.sd-assistant__empty[b-mpwa6qu1qj] { align-self: center; text-align: center; max-width: 90%; font-size: 0.85rem; }
.sd-assistant__error[b-mpwa6qu1qj] { margin: 0; color: #991b1b; font-size: 0.8rem; }

.sd-card[b-mpwa6qu1qj] { margin-top: 0.55rem; border: 1px solid var(--color-border); border-radius: var(--radius, 8px); background: var(--color-surface); padding: 0.65rem 0.75rem; color: var(--color-text-primary); }
.sd-card.is-stale[b-mpwa6qu1qj] { border-style: dashed; }
.sd-card__title[b-mpwa6qu1qj] { margin: 0 0 0.25rem; font-size: 0.85rem; font-weight: 600; }
.sd-card__summary[b-mpwa6qu1qj] { margin: 0 0 0.45rem; font-size: 0.8rem; }
.sd-card__payload[b-mpwa6qu1qj] { margin: 0 0 0.5rem; font-size: 0.75rem; }
.sd-card__payload summary[b-mpwa6qu1qj] { cursor: pointer; color: var(--color-brand); }
.sd-card__payload pre[b-mpwa6qu1qj] { margin: 0.35rem 0 0; max-height: 220px; overflow: auto; padding: 0.5rem; background: var(--color-surface-raised); border-radius: 6px; font-family: var(--font-mono); white-space: pre-wrap; overflow-wrap: anywhere; }
.sd-card__problems[b-mpwa6qu1qj] { margin: 0 0 0.5rem; padding-left: 1.1rem; font-size: 0.78rem; color: #991b1b; }
.sd-card__actions[b-mpwa6qu1qj] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.sd-card__state[b-mpwa6qu1qj] { margin: 0; font-size: 0.78rem; color: var(--color-text-secondary); }
.sd-card__state--applied[b-mpwa6qu1qj] { color: #166534; font-weight: 600; }
.sd-card__state--stale[b-mpwa6qu1qj] { flex-basis: 100%; color: #92400e; }

.sd-assistant__composer[b-mpwa6qu1qj] { display: flex; flex-direction: column; gap: 0.4rem; border-radius: var(--radius, 8px); transition: box-shadow 120ms ease; }
.sd-assistant__composer.is-dragover[b-mpwa6qu1qj] { box-shadow: 0 0 0 2px var(--color-brand); background: var(--color-surface-raised); }
.sd-assistant__input[b-mpwa6qu1qj] { width: 100%; resize: vertical; min-height: 4.5rem; padding: 0.5rem 0.6rem; border: 1px solid var(--color-border); border-radius: var(--radius, 8px); font-family: var(--font-body); font-size: 0.85rem; background: var(--color-surface); color: var(--color-text-primary); }
.sd-assistant__input:focus[b-mpwa6qu1qj] { outline: 2px solid var(--color-brand); outline-offset: 1px; }
.sd-assistant__send[b-mpwa6qu1qj] { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.sd-assistant__keys[b-mpwa6qu1qj] { margin-right: auto; font-size: 0.72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }

/* Open questions (#1013): the card asked now, the suggested answers, the parked list and the "claims changed" bar. */
.sd-question[b-mpwa6qu1qj] { margin-top: 0; border-color: var(--color-brand); }
.sd-question__head[b-mpwa6qu1qj] { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; margin-bottom: 0.3rem; font-size: 0.72rem; color: var(--color-text-secondary); }
.sd-question__found[b-mpwa6qu1qj] { display: flex; flex-direction: column; gap: 0.35rem; margin: 0 0 0.55rem; padding: 0.5rem 0.6rem; border: 1px dashed var(--color-border); border-radius: 6px; font-size: 0.8rem; }
.sd-question__found-note[b-mpwa6qu1qj] { margin: 0; color: var(--color-text-secondary); }
.sd-question__nav[b-mpwa6qu1qj] { display: flex; gap: 0.4rem; margin: 0 0 0.5rem; }
.sd-question__count[b-mpwa6qu1qj] { font-weight: 600; }
.sd-question__kind[b-mpwa6qu1qj] { text-transform: uppercase; letter-spacing: 0.04em; }
.sd-question__evidence[b-mpwa6qu1qj] { margin: 0 0 0.55rem; font-size: 0.75rem; }
.sd-question__evidence summary[b-mpwa6qu1qj] { cursor: pointer; color: var(--color-brand); }
.sd-question__suggestions[b-mpwa6qu1qj] { display: flex; flex-direction: column; gap: 0.35rem; margin: 0 0 0.55rem; }
.sd-suggestion[b-mpwa6qu1qj] { display: flex; flex-direction: column; align-items: flex-start; gap: 0.1rem; width: 100%; text-align: left; padding: 0.4rem 0.6rem; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface-raised); color: var(--color-text-primary); cursor: pointer; font: inherit; font-size: 0.8rem; }
.sd-suggestion:hover:not(:disabled)[b-mpwa6qu1qj] { border-color: var(--color-brand); }
.sd-suggestion:focus-visible[b-mpwa6qu1qj] { outline: 2px solid var(--color-brand); outline-offset: 1px; }
.sd-suggestion:disabled[b-mpwa6qu1qj] { opacity: 0.6; cursor: default; }
.sd-suggestion__value[b-mpwa6qu1qj] { font-weight: 600; overflow-wrap: anywhere; }
.sd-suggestion__reason[b-mpwa6qu1qj] { font-size: 0.72rem; color: var(--color-text-secondary); overflow-wrap: anywhere; }
.sd-suggestion--previous[b-mpwa6qu1qj] { border-color: var(--color-brand); box-shadow: inset 3px 0 0 var(--color-brand); }
.sd-question__free[b-mpwa6qu1qj] { display: flex; gap: 0.4rem; align-items: center; margin: 0 0 0.5rem; }
.sd-question__input[b-mpwa6qu1qj] { flex: 1; min-width: 0; padding: 0.4rem 0.6rem; border: 1px solid var(--color-border); border-radius: 6px; font-family: var(--font-body); font-size: 0.85rem; background: var(--color-surface); color: var(--color-text-primary); }
.sd-question__input:focus[b-mpwa6qu1qj] { outline: 2px solid var(--color-brand); outline-offset: 1px; }
.sd-parked[b-mpwa6qu1qj] { font-size: 0.78rem; color: var(--color-text-secondary); }
.sd-parked summary[b-mpwa6qu1qj] { cursor: pointer; }
.sd-parked ul[b-mpwa6qu1qj] { margin: 0.25rem 0 0; padding-left: 1rem; }
.sd-parked li[b-mpwa6qu1qj] { display: flex; justify-content: space-between; gap: 0.5rem; align-items: baseline; }
.sd-assistant__changed[b-mpwa6qu1qj] { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; padding: 0.5rem 0.75rem; border: 1px solid var(--color-border); border-radius: var(--radius, 8px); background: var(--color-surface-raised); font-size: 0.8rem; }

/* Amendments (#1024): the change plan in sections, the collapsed patch, and the disabled Apply with its sentence. */
.sd-amendment__rationale[b-mpwa6qu1qj] { margin: 0 0 0.35rem; font-size: 0.8rem; font-style: italic; color: var(--color-text-secondary); }
.sd-amendment__summary[b-mpwa6qu1qj] { margin: 0 0 0.5rem; font-size: 0.8rem; font-weight: 600; }
.sd-amendment__working[b-mpwa6qu1qj] { margin: 0 0 0.5rem; font-size: 0.78rem; }
.sd-amendment__notes[b-mpwa6qu1qj] { margin: 0 0 0.5rem; padding-left: 1.1rem; font-size: 0.75rem; color: #92400e; }
.sd-amendment__section[b-mpwa6qu1qj] { margin: 0 0 0.55rem; }
.sd-amendment__section h4[b-mpwa6qu1qj] { margin: 0 0 0.2rem; font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-text-secondary); }
.sd-amendment__section ul[b-mpwa6qu1qj] { margin: 0; padding-left: 1.1rem; font-size: 0.78rem; }
.sd-amendment__section li[b-mpwa6qu1qj] { margin-bottom: 0.15rem; overflow-wrap: anywhere; }
.sd-amendment__section p[b-mpwa6qu1qj] { margin: 0; font-size: 0.78rem; }
.sd-card__state--next[b-mpwa6qu1qj] { flex-basis: 100%; }

/* A discussion (#1036): the item the thread is anchored to, above its messages. */
.sd-discussion[b-mpwa6qu1qj] { display: flex; flex-direction: column; gap: 0.3rem; padding: 0.55rem 0.7rem; border: 1px solid var(--color-border); border-left: 3px solid var(--color-brand); border-radius: var(--radius, 8px); background: var(--color-surface-raised); }
.sd-discussion__head[b-mpwa6qu1qj] { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.sd-discussion__kind[b-mpwa6qu1qj] { font-size: 0.72rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-text-secondary); }
.sd-discussion__item[b-mpwa6qu1qj] { margin: 0; font-size: 0.85rem; font-weight: 600; color: var(--color-text-primary); overflow-wrap: anywhere; }
.sd-discussion__closed[b-mpwa6qu1qj] { margin: 0; font-size: 0.78rem; color: #166534; font-weight: 600; }

/* Screenshots (#1041): thumbnails in a turn, the ones in hand before send, the picker and the full-size view. */
.sd-shots[b-mpwa6qu1qj] { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.4rem 0 0; padding: 0; list-style: none; }
.sd-shot[b-mpwa6qu1qj] { display: block; padding: 0; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface); cursor: zoom-in; overflow: hidden; }
.sd-shot:focus-visible[b-mpwa6qu1qj] { outline: 2px solid var(--color-brand); outline-offset: 1px; }
.sd-shot img[b-mpwa6qu1qj], .sd-shot-pending img[b-mpwa6qu1qj] { display: block; width: 96px; height: 72px; object-fit: cover; }
.sd-shot--missing[b-mpwa6qu1qj] { cursor: default; padding: 0.35rem 0.5rem; font-size: 0.72rem; max-width: 12rem; }
.sd-shots--pending[b-mpwa6qu1qj] { margin: 0; }
.sd-shot-pending[b-mpwa6qu1qj] { display: flex; flex-direction: column; align-items: center; gap: 0.1rem; border: 1px solid var(--color-border); border-radius: 6px; padding: 0.25rem; background: var(--color-surface-raised); }
.sd-shot-pick[b-mpwa6qu1qj] { margin: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 2rem; height: 2rem; border: 1px solid var(--color-border); border-radius: 6px; color: var(--color-text-secondary); background: var(--color-surface); }
.sd-shot-pick:hover[b-mpwa6qu1qj] { color: var(--color-brand); border-color: var(--color-brand); }
/* The picker's own input stays in the tab order but out of sight (#1044): InputFile is a child component, so ::deep. */
.sd-shot-pick[b-mpwa6qu1qj]  .sd-shot-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; opacity: 0; }
.sd-shot-pick:focus-within[b-mpwa6qu1qj] { outline: 2px solid var(--color-brand); outline-offset: 1px; }
.sd-shot-viewer[b-mpwa6qu1qj] { position: fixed; inset: 0; z-index: 1050; display: flex; align-items: center; justify-content: center; padding: 1.5rem; background: rgba(15, 23, 42, 0.6); }
.sd-shot-viewer__frame[b-mpwa6qu1qj] { display: flex; flex-direction: column; gap: 0.5rem; max-width: min(1200px, 100%); max-height: 100%; padding: 0.75rem; border-radius: var(--radius, 8px); background: var(--color-surface); box-shadow: 0 12px 32px rgba(15, 23, 42, 0.3); }
.sd-shot-viewer__head[b-mpwa6qu1qj] { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.sd-shot-viewer__name[b-mpwa6qu1qj] { font-size: 0.85rem; font-weight: 600; color: var(--color-text-primary); overflow-wrap: anywhere; }
.sd-shot-viewer__frame img[b-mpwa6qu1qj] { display: block; max-width: 100%; max-height: calc(100vh - 9rem); object-fit: contain; }
.sd-shot-viewer__note[b-mpwa6qu1qj] { margin: 0; font-size: 0.75rem; }

/* #1044: the pane splits into the conversation and the composer, sized by a horizontal splitter. */
.sd-assistant--split[b-mpwa6qu1qj] {
    display: grid;
    grid-template-rows: minmax(0, 1fr) 0.75rem var(--sd-composer-height, auto);
    gap: 0;
    /* #1125: the pane gives the assistant the visible height under the top bar; it fills it, so the composer sits at the
       bottom and only the conversation scrolls. */
    flex: 1 1 0;
    min-height: 0;
}
.sd-assistant__top[b-mpwa6qu1qj] { display: flex; flex-direction: column; gap: 0.75rem; min-height: 0; overflow-y: auto; padding-right: 0.15rem; }
.sd-assistant--split .sd-assistant__messages[b-mpwa6qu1qj] { max-height: none; flex: 1 1 auto; min-height: 10rem; }
.sd-assistant__bottom[b-mpwa6qu1qj] { min-height: 0; overflow-y: auto; }
.sd-assistant__bottom .sd-assistant__input[b-mpwa6qu1qj] { min-height: 3.5rem; }
.sd-assistant__splitter[b-mpwa6qu1qj] { cursor: row-resize; border-radius: 0.375rem; touch-action: none;
    background: linear-gradient(var(--color-border), var(--color-border)) center / 3rem 2px no-repeat; }
.sd-assistant__splitter:hover[b-mpwa6qu1qj], .sd-assistant__splitter.dragging[b-mpwa6qu1qj] { background-color: var(--color-surface-raised); }
.sd-assistant__splitter:focus-visible[b-mpwa6qu1qj] { outline: 2px solid var(--color-brand); outline-offset: -2px; }

/* #1044: the plain question card. */
.sd-question__headline[b-mpwa6qu1qj] { font-size: 0.95rem; }
.sd-question__why[b-mpwa6qu1qj] { margin: 0 0 0.5rem; font-size: 0.8rem; }
.sd-question__why-label[b-mpwa6qu1qj] { font-weight: 600; }
.sd-question__explain[b-mpwa6qu1qj] { margin: 0.5rem 0; }
.sd-question__detail[b-mpwa6qu1qj] { margin: 0.35rem 0; font-size: 0.75rem; }
.sd-question__group-label[b-mpwa6qu1qj] { margin: 0 0 0.25rem; font-size: 0.75rem; font-weight: 600; color: var(--color-text-secondary); }
.sd-question__varies[b-mpwa6qu1qj] { margin: 0 0 0.6rem; padding: 0.5rem 0.6rem; border: 1px dashed var(--color-brand); border-radius: 6px; }
.sd-question__chips[b-mpwa6qu1qj] { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.sd-chip[b-mpwa6qu1qj] { padding: 0.15rem 0.5rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface-raised); font: inherit; font-size: 0.72rem; cursor: pointer; color: var(--color-text-primary); }
.sd-chip:hover:not(:disabled)[b-mpwa6qu1qj] { border-color: var(--color-brand); }
.sd-chip:focus-visible[b-mpwa6qu1qj] { outline: 2px solid var(--color-brand); outline-offset: 1px; }
.sd-question__actions[b-mpwa6qu1qj] { padding-top: 0.4rem; border-top: 1px solid var(--color-border); }
.sd-discussion__explain[b-mpwa6qu1qj] { margin-top: 0.4rem; }
.sd-bubble__refs[b-mpwa6qu1qj] { display: grid; gap: 0.4rem; margin-top: 0.4rem; padding-top: 0.4rem; border-top: 1px solid var(--color-border); }

/* A colleague's turn (#1150): the other side, the quiet colour; the author's name is the label. */
.sd-bubble--other[b-mpwa6qu1qj] {
    background: var(--color-surface-raised);
    color: var(--color-text-primary);
    align-self: flex-start;
}

.sd-bubble__for[b-mpwa6qu1qj] {
    margin-left: 0.5rem;
    font-size: 0.8rem;
}

.sd-assistant__archives[b-mpwa6qu1qj] {
    width: auto;
    font-size: 0.85rem;
}

/* Mentions (#1151): the picker opens above the composer's toolbar. */
.sd-mention[b-mpwa6qu1qj] {
    position: relative;
}

.sd-mention__list[b-mpwa6qu1qj] {
    position: absolute;
    bottom: 100%;
    left: 0;
    z-index: 20;
    min-width: 16rem;
    max-height: 18rem;
    overflow: auto;
    list-style: none;
    margin: 0 0 0.25rem;
    padding: 0.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.sd-mention__choice[b-mpwa6qu1qj] {
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: left;
    padding: 0.4rem 0.6rem;
    border: 0;
    background: none;
    border-radius: var(--radius);
    cursor: pointer;
}

.sd-mention__choice:hover[b-mpwa6qu1qj],
.sd-mention__choice:focus-visible[b-mpwa6qu1qj] {
    background: var(--color-surface-raised);
}

.sd-mention__label[b-mpwa6qu1qj] {
    font-weight: 600;
}

.sd-mention__detail[b-mpwa6qu1qj] {
    font-size: 0.8rem;
}
/* /Components/Studio/DecisionBenchPanel.razor.rz.scp.css */
/* #994 slice 7: the Rule Studio decision bench. Calm, compact, scannable. */
.decision-bench[b-iwevoq9h88] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.decision-bench-heading[b-iwevoq9h88] {
    margin: 0;
    font-size: 1rem;
}

.decision-bench-intro[b-iwevoq9h88],
.decision-bench-cost[b-iwevoq9h88] {
    margin: 0;
    font-size: 0.85rem;
}

.decision-bench-controls[b-iwevoq9h88] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.decision-bench-label[b-iwevoq9h88] {
    font-weight: 600;
    font-size: 0.85rem;
}

.decision-bench-controls .form-select[b-iwevoq9h88] {
    min-width: 16rem;
    max-width: 100%;
}

.decision-bench-errors[b-iwevoq9h88],
.decision-bench-notes[b-iwevoq9h88] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.85rem;
}

.decision-bench-card[b-iwevoq9h88] {
    margin: 0;
}

.decision-bench-card-header[b-iwevoq9h88] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.decision-bench-card-title[b-iwevoq9h88] {
    margin: 0;
    font-size: 0.95rem;
}

.decision-bench-card-question[b-iwevoq9h88] {
    margin: 0.2rem 0 0;
    font-size: 0.8rem;
}

.decision-bench-card-rules[b-iwevoq9h88] {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.85rem;
}

.decision-bench-reason[b-iwevoq9h88],
.decision-bench-agrees[b-iwevoq9h88] {
    margin-left: 0.4rem;
    font-size: 0.8rem;
}

.decision-bench-not-benchable dl[b-iwevoq9h88] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.25rem 1rem;
    margin: 0.4rem 0 0;
    font-size: 0.85rem;
}

.decision-bench-not-benchable dd[b-iwevoq9h88] {
    margin: 0;
}
/* /Components/Studio/RecipeAssistantPane.razor.rz.scp.css */
.ra-pane[b-svp7sxljk3] { display: flex; flex-direction: column; }
.ra-body[b-svp7sxljk3] { display: flex; flex-direction: column; gap: .6rem; min-height: 0; }
.ra-messages[b-svp7sxljk3] {
    display: flex; flex-direction: column-reverse; gap: .5rem;
    overflow-y: auto; max-height: 52vh; min-height: 12rem; padding-right: .2rem;
}
.ra-bubble[b-svp7sxljk3] { border-radius: 10px; padding: .5rem .7rem; max-width: 100%; }
.ra-user[b-svp7sxljk3] { background: #eff6ff; border: 1px solid #dbeafe; align-self: flex-end; }
.ra-assistant[b-svp7sxljk3] { background: #f8fafc; border: 1px solid #eef2f7; align-self: flex-start; }
.ra-error[b-svp7sxljk3] { background: #fef2f2; border-color: #fecaca; }
.ra-text[b-svp7sxljk3] { margin: 0; font-size: .84rem; white-space: pre-wrap; word-break: break-word; }
.ra-thinking[b-svp7sxljk3] { display: inline-flex; align-items: center; gap: .4rem; color: #64748b; }
.ra-thinking .spinner[b-svp7sxljk3] {
    width: 12px; height: 12px; border: 2px solid #cbd5e1; border-top-color: #2563eb;
    border-radius: 50%; animation: ra-spin-b-svp7sxljk3 .7s linear infinite; display: inline-block;
}
@keyframes ra-spin-b-svp7sxljk3 { to { transform: rotate(360deg); } }
.ra-event[b-svp7sxljk3] { font-size: .72rem; color: #94a3b8; text-align: center; margin: 0; }
.ra-empty[b-svp7sxljk3] { margin: 0; }

.ra-card[b-svp7sxljk3] { margin-top: .5rem; background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: .5rem .6rem; }
.ra-card-note[b-svp7sxljk3] { margin: 0 0 .3rem; font-size: .8rem; font-weight: 600; color: #1e293b; }
.ra-card-ops[b-svp7sxljk3] { margin: 0 0 .4rem; padding-left: 1.1rem; font-size: .78rem; color: #475569; }
.ra-card-actions[b-svp7sxljk3] { display: flex; align-items: center; gap: .4rem; }
.ra-card-state[b-svp7sxljk3] { font-size: .78rem; color: #94a3b8; }
.ra-applied[b-svp7sxljk3] { color: #15803d; font-weight: 600; }

.ra-input[b-svp7sxljk3] { display: flex; gap: .4rem; }
.ra-input input[b-svp7sxljk3] { flex: 1; min-width: 0; }
/* /Components/Studio/TransformChainEditor.razor.rz.scp.css */
/* Add-step menu — revealed only after pressing "+ Add step", so nothing looks pre-configured. */
.step-add-menu[b-adnidu4dd8] {
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 8px;
    padding: 0.6rem 0.75rem 0.75rem;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 32rem;
}

.step-add-menu-head[b-adnidu4dd8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.step-add-choice[b-adnidu4dd8] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    text-align: left;
    width: 100%;
    height: auto;
}

.step-add-choice-title[b-adnidu4dd8] {
    font-weight: 600;
}

.step-add-choice.is-open[b-adnidu4dd8] {
    background: #eef2ff;
    border-color: #c7d2fe;
}

.step-add-ai-panel[b-adnidu4dd8] {
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 8px;
    padding: 0.6rem 0.75rem;
    background: #fff;
}

/* "or pick a transform" divider. */
.step-add-or[b-adnidu4dd8] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    color: #94a3b8;
    font-size: 0.8rem;
}

.step-add-or[b-adnidu4dd8]::before,
.step-add-or[b-adnidu4dd8]::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--border, #e2e8f0);
}

.step-add-pick[b-adnidu4dd8] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.step-add-pick select[b-adnidu4dd8] {
    max-width: 18rem;
}
/* /Components/Upload/ClassifyDock.razor.rz.scp.css */
.cd-shell[b-avdhjoy1cx] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cd-controls[b-avdhjoy1cx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    align-items: end;
    padding: 1rem 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
}

.cd-control[b-avdhjoy1cx] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    flex: 1 1 220px;
    min-width: 180px;
}

.cd-control-narrow[b-avdhjoy1cx] {
    flex: 0 1 200px;
}

/* Clear results — pushed to the trailing edge of the controls bar, aligned to the
   bottom of the select boxes (the bar is align-items: end). */
.cd-clear[b-avdhjoy1cx] {
    margin-left: auto;
    align-self: end;
    height: 38px;
    padding: 0 0.9rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s, background 0.2s;
}

.cd-clear:hover:not(:disabled)[b-avdhjoy1cx] {
    border-color: var(--color-brand-teal);
    color: var(--color-text-primary);
}

.cd-clear:disabled[b-avdhjoy1cx] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* InputFile is scoped inside its own component, so the scoped attribute selector
   won't match without `::deep`. Stretch it across the dropzone so the browser
   accepts native drag-and-drop and clicks open the file picker. */
[b-avdhjoy1cx] .cd-file-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

/* Animation canvas — three stacked rows the cards travel through. */
.cd-canvas[b-avdhjoy1cx] {
    position: relative;
    height: 540px;
    background: linear-gradient(180deg, var(--color-surface) 0%, var(--color-surface-raised) 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    padding: 1.25rem;
    overflow: hidden;
}

.cd-row[b-avdhjoy1cx] {
    position: absolute;
    left: 1.25rem;
    right: 1.25rem;
    display: flex;
    justify-content: center;
}

.cd-row-drop[b-avdhjoy1cx] { top: 1.25rem; height: 92px; }
.cd-row-classifier[b-avdhjoy1cx] { top: 50%; transform: translateY(-50%); height: 76px; }
/* Pipeline row spreads its columns evenly across the canvas so the floating
   card's (idx + 0.5) / count positioning hits the centre of each column. */
.cd-row-pipelines[b-avdhjoy1cx] { bottom: 1.25rem; height: 180px; gap: 0.75rem; justify-content: stretch; flex-wrap: nowrap; align-items: stretch; }

.cd-dropzone[b-avdhjoy1cx] {
    position: relative;
    flex: 1;
    border: 2px dashed var(--color-border);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    color: var(--color-text-secondary);
    font-size: 0.9rem;
    background: var(--color-surface);
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s, background 0.2s;
}

.cd-dropzone:hover[b-avdhjoy1cx] {
    border-color: var(--color-brand-teal);
    color: var(--color-text-primary);
}

.cd-dropzone.is-disabled[b-avdhjoy1cx] {
    opacity: 0.6;
    cursor: not-allowed;
}

.cd-dropzone-glyph[b-avdhjoy1cx] {
    font-size: 1.4rem;
    color: var(--color-brand);
}

.cd-classifier[b-avdhjoy1cx] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1.25rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
    min-width: 280px;
    position: relative;
    transition: box-shadow 0.2s, border-color 0.2s;
}

.cd-classifier.is-busy[b-avdhjoy1cx] {
    border-color: var(--color-brand-teal);
    box-shadow: 0 0 0 4px rgba(14, 165, 198, 0.12), 0 4px 16px rgba(7, 70, 132, 0.12);
}

.cd-classifier-icon[b-avdhjoy1cx] {
    font-size: 1.4rem;
    width: 2rem;
    text-align: center;
}

.cd-classifier-sub[b-avdhjoy1cx] {
    color: var(--color-text-secondary);
    font-size: 0.78rem;
}

.cd-spinner[b-avdhjoy1cx] {
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    border: 2px solid rgba(14, 165, 198, 0.25);
    border-top-color: var(--color-brand-teal);
    animation: cd-spin-b-avdhjoy1cx 0.9s linear infinite;
    margin-left: auto;
}

@keyframes cd-spin-b-avdhjoy1cx {
    to { transform: rotate(360deg); }
}

/* Pipeline columns ─ one per resolved pipeline since the classifier started running. */
.cd-pipeline-col[b-avdhjoy1cx] {
    flex: 1 1 0;
    min-width: 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 0.6rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
    overflow: hidden;
}

.cd-pipeline-col.is-default[b-avdhjoy1cx] {
    border-style: dashed;
    border-color: var(--color-brand);
}

.cd-pipeline-head[b-avdhjoy1cx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--color-text-primary);
}

.cd-pipeline-target[b-avdhjoy1cx] {
    font-size: 0.72rem;
    color: var(--color-text-secondary);
    font-weight: 400;
    margin-top: 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 160px;
}

.cd-pipeline-count[b-avdhjoy1cx] {
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--color-surface-raised);
    color: var(--color-text-secondary);
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
}

.cd-pipeline-placeholder[b-avdhjoy1cx] {
    flex: 1;
    text-align: center;
    color: var(--color-text-secondary);
    font-size: 0.85rem;
    padding-top: 1.25rem;
}

.cd-pipeline-chips[b-avdhjoy1cx] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    overflow-y: auto;
    max-height: 140px;
}

.cd-chip[b-avdhjoy1cx] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.35rem 0.55rem;
    border-radius: 0.5rem;
    background: var(--color-surface-raised);
    font-size: 0.78rem;
    color: var(--color-text-primary);
    border: 1px solid var(--color-border);
}

.cd-chip-row[b-avdhjoy1cx] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.cd-chip.is-clickable[b-avdhjoy1cx] {
    cursor: pointer;
    transition: background 120ms ease, border-color 120ms ease, transform 120ms ease;
}

.cd-chip.is-clickable:hover[b-avdhjoy1cx] {
    background: var(--color-surface);
    border-color: var(--color-brand-teal);
    transform: translateX(1px);
}

.cd-chip.is-clickable:focus-visible[b-avdhjoy1cx] {
    outline: none;
    border-color: var(--color-brand-teal);
    box-shadow: 0 0 0 3px rgba(14, 165, 198, 0.15);
}

.cd-chip-open[b-avdhjoy1cx] {
    margin-left: auto;
    color: var(--color-text-secondary);
    font-size: 1rem;
    line-height: 1;
}

.cd-chip.is-clickable:hover .cd-chip-open[b-avdhjoy1cx] {
    color: var(--color-brand-teal);
}

.cd-chip-trace[b-avdhjoy1cx] {
    font-size: 0.72rem;
    color: var(--color-text-secondary);
    margin-top: 0.15rem;
}

.cd-chip-trace summary[b-avdhjoy1cx] {
    display: flex;
    gap: 0.4rem;
    cursor: pointer;
    list-style: none;
    align-items: center;
}

.cd-chip-trace summary[b-avdhjoy1cx]::-webkit-details-marker { display: none; }

.cd-chip-trace summary[b-avdhjoy1cx]::before {
    content: "▸";
    font-size: 0.6rem;
    color: var(--color-text-secondary);
    transition: transform 120ms ease;
}

.cd-chip-trace[open] summary[b-avdhjoy1cx]::before {
    transform: rotate(90deg);
}

.cd-tier[b-avdhjoy1cx] {
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-secondary);
}

.cd-tier-rules[b-avdhjoy1cx] { background: #ecfdf5; border-color: #a7f3d0; color: #047857; }
.cd-tier-ai[b-avdhjoy1cx] { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }
.cd-tier-fallback[b-avdhjoy1cx] { background: #fff7ed; border-color: #fed7aa; color: #c2410c; }
.cd-tier-default[b-avdhjoy1cx] { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }

.cd-conf[b-avdhjoy1cx] {
    font-weight: 600;
    color: var(--color-text-primary);
}

.cd-model[b-avdhjoy1cx] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.68rem;
    color: var(--color-text-secondary);
}

.cd-trace-line[b-avdhjoy1cx] {
    margin-top: 0.25rem;
    line-height: 1.35;
    word-break: break-word;
}

.cd-trace-line.cd-trace-warn[b-avdhjoy1cx] { color: #c2410c; }
.cd-trace-line.muted[b-avdhjoy1cx] { color: var(--color-text-secondary); font-size: 0.68rem; }

.cd-chip-dot[b-avdhjoy1cx] {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--color-text-secondary);
    flex-shrink: 0;
}

.cd-chip-routing .cd-chip-dot[b-avdhjoy1cx],
.cd-chip-queued .cd-chip-dot[b-avdhjoy1cx] { background: #3b82f6; animation: cd-pulse-b-avdhjoy1cx 1.2s infinite; }
.cd-chip-ocr .cd-chip-dot[b-avdhjoy1cx] { background: #6366f1; animation: cd-pulse-b-avdhjoy1cx 1.2s infinite; }
.cd-chip-extracting .cd-chip-dot[b-avdhjoy1cx] { background: #8b5cf6; animation: cd-pulse-b-avdhjoy1cx 1.2s infinite; }
.cd-chip-exporting .cd-chip-dot[b-avdhjoy1cx] { background: #f59e0b; animation: cd-pulse-b-avdhjoy1cx 1.2s infinite; }
.cd-chip-done .cd-chip-dot[b-avdhjoy1cx] { background: #22c55e; }
.cd-chip-error .cd-chip-dot[b-avdhjoy1cx] { background: #ef4444; }

@keyframes cd-pulse-b-avdhjoy1cx {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.45; }
}

.cd-chip-name[b-avdhjoy1cx] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cd-chip-phase[b-avdhjoy1cx] {
    font-size: 0.7rem;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Floating animation cards — absolutely positioned, transition on left/top. */
.cd-fly[b-avdhjoy1cx] {
    position: absolute;
    transform: translate(-50%, -50%);
    background: var(--color-surface);
    border: 1px solid var(--color-brand-teal);
    border-radius: var(--radius);
    padding: 0.45rem 0.7rem;
    font-size: 0.78rem;
    color: var(--color-text-primary);
    box-shadow: 0 4px 14px rgba(7, 70, 132, 0.15);
    z-index: 4;
    pointer-events: none;
    max-width: 160px;
    transition:
        left 800ms cubic-bezier(0.45, 0.05, 0.55, 0.95),
        top 800ms cubic-bezier(0.45, 0.05, 0.55, 0.95),
        box-shadow 200ms ease;
}

.cd-fly-dropped[b-avdhjoy1cx] { transition: none; }
.cd-fly-atclassifier[b-avdhjoy1cx] {
    box-shadow: 0 0 0 4px rgba(14, 165, 198, 0.2), 0 4px 16px rgba(7, 70, 132, 0.18);
}
.cd-fly-routing[b-avdhjoy1cx] { transition-duration: 800ms; }
.cd-fly-landed[b-avdhjoy1cx] { opacity: 0; transition: opacity 200ms ease; }

.cd-fly-name[b-avdhjoy1cx] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Upload/DocChip.razor.rz.scp.css */
/* ── DocChip — phase-driven animated pill (Backlog #59) ──────────────── */

.dock-chip[b-kqgeaumz1l] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid var(--color-border);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
    font-size: 0.7rem;
    color: var(--color-text-primary);
    line-height: 1;
    max-width: 100%;
    cursor: default;
    animation: dock-chip-enter-b-kqgeaumz1l 320ms cubic-bezier(0.2, 0.8, 0.4, 1);
    transition: background 250ms cubic-bezier(0.45, 0.05, 0.55, 0.95),
                border-color 250ms ease,
                color 250ms ease,
                box-shadow 250ms ease,
                transform 250ms ease;
}

.dock-chip-glyph[b-kqgeaumz1l] {
    font-size: 0.85rem;
    line-height: 1;
}

.dock-chip-name[b-kqgeaumz1l] {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 12ch;
}

.dock-chip-phase[b-kqgeaumz1l] {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--color-text-secondary);
}

/* ── Phase-specific colour treatments ───────────────────────────────── */

.dock-chip-dropped[b-kqgeaumz1l] {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.dock-chip-routing[b-kqgeaumz1l] {
    background: #e0e7ff;
    border-color: #818cf8;
    color: #3730a3;
}

.dock-chip-routing .dock-chip-phase[b-kqgeaumz1l] { color: #4338ca; }

.dock-chip-queued[b-kqgeaumz1l] {
    background: #fef9c3;
    border-color: #facc15;
    color: #854d0e;
}

.dock-chip-queued .dock-chip-phase[b-kqgeaumz1l] { color: #92400e; }

.dock-chip-ocr[b-kqgeaumz1l] {
    background: #cffafe;
    border-color: #06b6d4;
    color: #0c4a6e;
    animation: dock-chip-enter-b-kqgeaumz1l 320ms cubic-bezier(0.2, 0.8, 0.4, 1),
               dock-chip-pulse-b-kqgeaumz1l 1.4s ease-in-out infinite;
}

.dock-chip-ocr .dock-chip-phase[b-kqgeaumz1l] { color: #0e7490; }

.dock-chip-extracting[b-kqgeaumz1l] {
    background: #ccfbf1;
    border-color: #14b8a6;
    color: #134e4a;
    animation: dock-chip-enter-b-kqgeaumz1l 320ms cubic-bezier(0.2, 0.8, 0.4, 1),
               dock-chip-pulse-b-kqgeaumz1l 1.2s ease-in-out infinite;
}

.dock-chip-extracting .dock-chip-phase[b-kqgeaumz1l] { color: #0f766e; }

.dock-chip-exporting[b-kqgeaumz1l] {
    background: #dcfce7;
    border-color: #22c55e;
    color: #14532d;
}

.dock-chip-exporting .dock-chip-phase[b-kqgeaumz1l] { color: #15803d; }

.dock-chip-done[b-kqgeaumz1l] {
    background: #22c55e;
    border-color: #16a34a;
    color: #ffffff;
    cursor: pointer;
}

.dock-chip-done .dock-chip-phase[b-kqgeaumz1l] { color: rgba(255, 255, 255, 0.85); }

.dock-chip-done:hover[b-kqgeaumz1l] {
    transform: translateY(-1px);
    box-shadow: 0 2px 5px rgba(22, 163, 74, 0.35);
}

.dock-chip-error[b-kqgeaumz1l] {
    background: #fee2e2;
    border-color: #ef4444;
    color: #7f1d1d;
    cursor: pointer;
    animation: dock-chip-enter-b-kqgeaumz1l 320ms cubic-bezier(0.2, 0.8, 0.4, 1),
               dock-chip-shake-b-kqgeaumz1l 380ms cubic-bezier(0.36, 0.07, 0.19, 0.97) 1;
}

.dock-chip-error .dock-chip-phase[b-kqgeaumz1l] { color: #991b1b; }

/* ── Keyframes ─────────────────────────────────────────────────────── */

@keyframes dock-chip-enter-b-kqgeaumz1l {
    from { opacity: 0; transform: translateY(8px) scale(0.92); }
    to   { opacity: 1; transform: translateY(0)   scale(1); }
}

@keyframes dock-chip-pulse-b-kqgeaumz1l {
    0%, 100% { box-shadow: 0 0 0 0 rgba(6, 182, 212, 0.4); }
    50%      { box-shadow: 0 0 0 4px rgba(6, 182, 212, 0); }
}

@keyframes dock-chip-shake-b-kqgeaumz1l {
    10%, 90% { transform: translate3d(-1px, 0, 0); }
    20%, 80% { transform: translate3d(2px, 0, 0); }
    30%, 50%, 70% { transform: translate3d(-3px, 0, 0); }
    40%, 60% { transform: translate3d(3px, 0, 0); }
}
/* /Components/Upload/EntityGroup.razor.rz.scp.css */
/* ── EntityGroup — collapsible section per entity (Backlog #59) ──────── */

.dock-group[b-319vfcy3zk] {
    margin-bottom: 1.5rem;
}

.dock-group-header[b-319vfcy3zk] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    width: 100%;
    background: transparent;
    border: 0;
    padding: 0.5rem 0 0.6rem;
    cursor: pointer;
    text-align: left;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text-primary);
}

.dock-group-header:hover[b-319vfcy3zk] {
    color: var(--color-brand);
}

.dock-group-caret[b-319vfcy3zk] {
    width: 1rem;
    font-size: 0.85rem;
    color: var(--color-text-secondary);
}

.dock-group-title[b-319vfcy3zk] {
    font-family: var(--font-subtitle);
    font-size: 1rem;
    font-weight: 600;
}

.dock-group-count[b-319vfcy3zk] {
    font-size: 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 0 0.5rem;
    color: var(--color-text-secondary);
}

.dock-group-sub[b-319vfcy3zk] {
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

.dock-group-grid[b-319vfcy3zk] {
    display: grid;
    /* Fixed column width — `1fr` was stretching a lone card to fill the entire
       row, which read as a giant empty drop-zone instead of one of N cards.
       `auto-fill` of 260px tracks lays out as many cards as fit and leaves the
       rest blank. */
    grid-template-columns: repeat(auto-fill, 260px);
    gap: 0.85rem;
    padding-top: 0.85rem;
    justify-content: start;
}

.dock-group.is-collapsed .dock-group-header[b-319vfcy3zk] {
    border-bottom-color: transparent;
}

/* Section-level "File this section's drops under" picker — Unbound bucket only.
   Replaces the per-card dropdown so every unbound card in the bucket shares the
   one selection. Sits between the header and the card grid. */
.dock-group-entity-row[b-319vfcy3zk] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0.85rem 0 0.25rem;
    padding: 0.55rem 0.75rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    flex-wrap: wrap;
}

.dock-group-entity-row label[b-319vfcy3zk] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-text-secondary);
    font-weight: 600;
}

.dock-group-entity-select[b-319vfcy3zk] {
    flex: 0 1 260px;
    min-width: 200px;
    padding: 0.35rem 0.55rem;
    font-size: 0.85rem;
    border: 1px solid var(--color-border);
    border-radius: 0.35rem;
    background: var(--color-surface);
    color: var(--color-text-primary);
    cursor: pointer;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.dock-group-entity-select:focus[b-319vfcy3zk] {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(7, 70, 132, 0.15);
}

.dock-group-entity-hint[b-319vfcy3zk] {
    font-size: 0.75rem;
    color: #b8731f;
}
/* /Components/Upload/EntityPickerFlyout.razor.rz.scp.css */
/* ── EntityPickerFlyout — slides up over the dock (Backlog #59) ───────── */

.dock-flyout-scrim[b-3m5vo27ahd] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.32);
    backdrop-filter: blur(2px);
    z-index: 60;
    animation: dock-flyout-fade-b-3m5vo27ahd 180ms ease-out;
}

.dock-flyout[b-3m5vo27ahd] {
    position: fixed;
    left: 50%;
    bottom: 2.5rem;
    transform: translateX(-50%);
    width: min(36rem, calc(100vw - 2rem));
    max-height: 70vh;
    overflow: auto;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0.75rem;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.18);
    z-index: 61;
    animation: dock-flyout-rise-b-3m5vo27ahd 240ms cubic-bezier(0.2, 0.8, 0.4, 1);
}

.dock-flyout-header[b-3m5vo27ahd] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem 1.25rem 0.75rem;
    border-bottom: 1px solid var(--color-border);
}

.dock-flyout-eyebrow[b-3m5vo27ahd] {
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-size: 0.7rem;
    color: var(--color-text-secondary);
    margin-bottom: 0.1rem;
}

.dock-flyout-header h3[b-3m5vo27ahd] {
    margin: 0;
    font-family: var(--font-subtitle);
    font-size: 1.05rem;
}

.dock-flyout-sub[b-3m5vo27ahd] {
    margin: 0.25rem 0 0;
    font-size: 0.85rem;
    color: var(--color-text-secondary);
}

.dock-flyout-close[b-3m5vo27ahd] {
    background: transparent;
    border: 0;
    font-size: 1.4rem;
    line-height: 1;
    color: var(--color-text-secondary);
    cursor: pointer;
    padding: 0.2rem 0.45rem;
    border-radius: 0.4rem;
}

.dock-flyout-close:hover[b-3m5vo27ahd] {
    background: var(--color-surface-raised);
    color: var(--color-brand);
}

.dock-flyout-list[b-3m5vo27ahd] {
    list-style: none;
    padding: 0.5rem;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.dock-flyout-option[b-3m5vo27ahd] {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    color: var(--color-text-primary);
    font-size: 0.9rem;
    text-align: left;
    cursor: pointer;
    transition: background 120ms ease, border-color 120ms ease, transform 120ms ease;
}

.dock-flyout-option:hover[b-3m5vo27ahd],
.dock-flyout-option:focus-visible[b-3m5vo27ahd] {
    border-color: var(--color-brand);
    background: #eef4fb;
    outline: none;
    transform: translateY(-1px);
}

.dock-flyout-option-name[b-3m5vo27ahd] {
    font-weight: 500;
}

.dock-flyout-option-id[b-3m5vo27ahd] {
    font-size: 0.7rem;
    color: var(--color-text-secondary);
    font-variant-numeric: tabular-nums;
}

@keyframes dock-flyout-rise-b-3m5vo27ahd {
    from { opacity: 0; transform: translate(-50%, 14px); }
    to   { opacity: 1; transform: translate(-50%, 0); }
}

@keyframes dock-flyout-fade-b-3m5vo27ahd {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* /Components/Upload/PipelineCard.razor.rz.scp.css */
/* ── PipelineCard — single drop-zone (Backlog #59) ───────────────────── */

.pipeline-card[b-x7ealppbvo] {
    position: relative;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    padding: 0.85rem 0.9rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.pipeline-card:hover[b-x7ealppbvo] {
    border-color: var(--color-brand);
    box-shadow: 0 4px 10px rgba(7, 70, 132, 0.08);
    transform: translateY(-1px);
}

.pipeline-card-header[b-x7ealppbvo] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.pipeline-card-star[b-x7ealppbvo] {
    background: transparent;
    border: 0;
    color: #c9c2a7;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.2rem;
    transition: color 120ms ease, transform 120ms ease;
}

.pipeline-card-star:hover[b-x7ealppbvo] {
    color: #d49a17;
    transform: scale(1.15);
}

.pipeline-card.is-favourite .pipeline-card-star[b-x7ealppbvo] {
    color: #d49a17;
}

.pipeline-card-title-block[b-x7ealppbvo] {
    flex: 1;
    min-width: 0;
}

.pipeline-card-title[b-x7ealppbvo] {
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--color-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pipeline-card-sub[b-x7ealppbvo] {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    margin-top: 0.15rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.pipeline-card-badge[b-x7ealppbvo] {
    font-size: 0.65rem;
    background: #eef0f4;
    color: #4b5563;
    border-radius: 999px;
    padding: 0.05rem 0.45rem;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.pipeline-card-badge.warn[b-x7ealppbvo] {
    background: #fff3df;
    color: #b8731f;
}

.pipeline-card-drop[b-x7ealppbvo] {
    position: relative;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
    background: var(--color-surface-raised);
    padding: 0.6rem 0.5rem;
    /* Compact fixed height — the hidden `<input type=file>` overlays the whole
       area via `::deep .pipeline-card-input`, so the drop zone needs to read
       as an inline target rather than dominate the card. */
    min-height: 3.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 150ms ease, background 150ms ease;
}

.pipeline-card-drop-label[b-x7ealppbvo] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--color-text-secondary);
    cursor: pointer;
    text-align: center;
}

.pipeline-card-drop-glyph[b-x7ealppbvo] {
    font-size: 1.1rem;
    color: var(--color-brand);
    line-height: 1;
    animation: pipeline-card-glyph-idle-b-x7ealppbvo 4.5s ease-in-out infinite;
}

.pipeline-card:hover .pipeline-card-drop-glyph[b-x7ealppbvo],
.pipeline-card.is-drag-over .pipeline-card-drop-glyph[b-x7ealppbvo] {
    animation-play-state: paused;
}

@keyframes pipeline-card-glyph-idle-b-x7ealppbvo {
    0%, 100% { transform: translateY(0); opacity: 0.85; }
    50%      { transform: translateY(3px); opacity: 1; }
}

/* `<InputFile>` renders its `<input type=file>` inside its own component scope,
   so a plain `.pipeline-card-input` rule here is rewritten to
   `.pipeline-card-input[b-xxx]` and never matches the actual `<input>`. `::deep`
   pierces the boundary so the native chooser is properly hidden under the
   drop-zone label rather than sitting in the flex flow. */
[b-x7ealppbvo] .pipeline-card-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.pipeline-card-bind-cta[b-x7ealppbvo] {
    font-size: 0.75rem;
    color: #b8731f;
    text-decoration: none;
    font-weight: 500;
    align-self: flex-start;
}

.pipeline-card-bind-cta:hover[b-x7ealppbvo] {
    text-decoration: underline;
}

/* ── Unbound-card entity picker (Backlog #59 follow-up) ─────────────── */

.pipeline-card-entity-row[b-x7ealppbvo] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-top: 0.1rem;
}

.pipeline-card-entity-row label[b-x7ealppbvo] {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-text-secondary);
}

.pipeline-card-entity-select[b-x7ealppbvo] {
    width: 100%;
    padding: 0.35rem 0.45rem;
    font-size: 0.8rem;
    color: var(--color-text-primary);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0.35rem;
    cursor: pointer;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.pipeline-card-entity-select:focus[b-x7ealppbvo] {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(7, 70, 132, 0.15);
}

/* ── Drag-over halo + queue rail (Slice B) ───────────────────────────── */

.pipeline-card.is-drag-over[b-x7ealppbvo] {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(7, 70, 132, 0.18), 0 6px 16px rgba(7, 70, 132, 0.12);
    transform: translateY(-2px);
}

.pipeline-card.is-drag-over .pipeline-card-drop[b-x7ealppbvo] {
    border-color: var(--color-brand);
    background: #eef4fb;
}

.pipeline-card-rail[b-x7ealppbvo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding-top: 0.15rem;
    min-height: 1.4rem;
}

.pipeline-card-rail-more[b-x7ealppbvo] {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: var(--color-surface-raised);
    border: 1px dashed var(--color-border);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--color-text-secondary);
}

/* /Components/Upload/PipelineDock.razor.rz.scp.css */
/* ── Pipeline Dock — gallery shell (Backlog #59) ─────────────────────── */

.dock-muted[b-uhbqux5kz2] {
    color: var(--color-text-secondary);
    font-size: 0.9rem;
    margin: 0.25rem 0;
}

.dock-empty[b-uhbqux5kz2] {
    text-align: center;
    color: var(--color-text-secondary);
    padding: 2rem 1rem;
    background: var(--color-surface);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius);
}
/* /Components/Upload/RecentUploadsTray.razor.rz.scp.css */
/* ── RecentUploadsTray — fixed strip at the page bottom (Backlog #59) ── */

.dock-recents[b-ds01c8onfp] {
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    z-index: 5;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 0.6rem;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.10);
    padding: 0.55rem 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-width: 24rem;
    animation: dock-recents-in-b-ds01c8onfp 240ms cubic-bezier(0.2, 0.8, 0.4, 1);
}

.dock-recents-eyebrow[b-ds01c8onfp] {
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-size: 0.65rem;
    color: var(--color-text-secondary);
}

.dock-recents-list[b-ds01c8onfp] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.dock-recents-item[b-ds01c8onfp] {
    width: 100%;
    text-align: left;
    background: transparent;
    border: 0;
    padding: 0.3rem 0.45rem;
    border-radius: 0.4rem;
    color: var(--color-text-primary);
    cursor: pointer;
    transition: background 120ms ease;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.dock-recents-item:hover[b-ds01c8onfp] {
    background: var(--color-surface-raised);
}

.dock-recents-name[b-ds01c8onfp] {
    font-size: 0.8rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dock-recents-meta[b-ds01c8onfp] {
    font-size: 0.65rem;
    color: var(--color-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dock-recents-clear[b-ds01c8onfp] {
    align-self: flex-end;
    background: transparent;
    border: 0;
    color: var(--color-text-secondary);
    font-size: 0.65rem;
    cursor: pointer;
    padding: 0.1rem 0.3rem;
}

.dock-recents-clear:hover[b-ds01c8onfp] {
    color: var(--color-brand);
    text-decoration: underline;
}

@keyframes dock-recents-in-b-ds01c8onfp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}
