/* /Components/Admin/BackendCapabilityMatrix.razor.rz.scp.css */
/* BackendCapabilityMatrix — catalogue table accents. */

:deep(.cap-yes)[b-cxqtbl9w88] {
    color: var(--color-success-text, #198754);
    font-weight: var(--fw-semibold, 600);
}

:deep(.cap-no)[b-cxqtbl9w88] {
    color: var(--color-text-muted);
}

:deep(code.mono)[b-cxqtbl9w88] {
    font-family: var(--font-mono);
    font-size: var(--fs-small, 0.8125rem);
}
/* /Components/AgentPrompts/PromptPreview.razor.rz.scp.css */
/* PromptPreview — token-only, both modes. RadzenSplitter replaced with a
   screen-local two-pane CSS grid; <pre><code> wrap/scroll preserved. */

.prompt-preview-container[b-p9dzp3ms37] {
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}

.prompt-preview-grid[b-p9dzp3ms37] {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 1px;
    background: var(--color-divider);
}

.prompt-pane[b-p9dzp3ms37] {
    background: var(--color-surface-1);
    padding: var(--space-4);
}

.prompt-pane-title[b-p9dzp3ms37] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    margin-bottom: var(--space-3);
}

.prompt-pane-sub[b-p9dzp3ms37] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-regular);
}

.muted[b-p9dzp3ms37] {
    color: var(--color-text-muted);
}

.code-block[b-p9dzp3ms37] {
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: var(--space-4);
    max-height: 500px;
    overflow: auto;
}

.code-block pre[b-p9dzp3ms37] {
    margin: 0;
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    white-space: pre-wrap;
    word-wrap: break-word;
}

.code-block code[b-p9dzp3ms37] {
    background: none;
    padding: 0;
    color: inherit;
}

.preview-content[b-p9dzp3ms37] {
    background: var(--color-surface-2);
}
/* /Components/AgentPrompts/PromptTemplateForm.razor.rz.scp.css */
/* PromptTemplateForm — tokenized replacement for the removed Bootstrap
   `text-danger` helper on the validation summary. */

.form-validation-summary[b-mba9ids05z] {
    color: var(--color-danger-text);
}

.form-validation-summary[b-mba9ids05z]  ul {
    color: var(--color-danger-text);
}
/* /Components/AgentPrompts/PromptTemplateListItem.razor.rz.scp.css */
/* PromptTemplateListItem — mockup facit 05-prompts.html:72-82.
   Token-only, both dark/light. Replaces the removed Bootstrap
   card-text/text-muted + raw clock icon. */

.prompt-card[b-peibgnu1gg] {
    margin-bottom: 0;
}

.prompt-flex[b-peibgnu1gg] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.prompt-color-mark[b-peibgnu1gg] {
    flex: 0 0 auto;
}

.prompt-mark[b-peibgnu1gg] {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border-radius: var(--radius-sm);
    display: grid;
    place-items: center;
    background: var(--color-info-soft);
    border: 1px solid var(--color-info-line);
    color: var(--color-info-text);
    font-size: 13px;
}

.prompt-main[b-peibgnu1gg] {
    flex: 1;
    min-width: 0;
}

.prompt-titleline[b-peibgnu1gg] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.prompt-name[b-peibgnu1gg] {
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.prompt-desc[b-peibgnu1gg] {
    font-size: var(--fs-sm);
    margin: 4px 0 8px;
}

.mono[b-peibgnu1gg] {
    font-family: var(--font-mono);
}

.muted[b-peibgnu1gg] {
    color: var(--color-text-muted);
}

.tag[b-peibgnu1gg] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    font-size: var(--fs-micro);
    font-family: var(--font-mono);
    border-radius: var(--radius-xs);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    color: var(--color-text-secondary);
}

.cluster[b-peibgnu1gg] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
}

.prompt-stamp[b-peibgnu1gg] {
    font-size: var(--fs-xs);
}

.prompt-actions[b-peibgnu1gg] {
    flex: 0 0 auto;
    flex-wrap: nowrap;
}
/* /Components/AgentPrompts/PromptVariableReference.razor.rz.scp.css */
/* PromptVariableReference — token-only, both modes. The .variable-button
   carries its full chrome here (Bootstrap btn-* removed); group titles
   replace the removed text-primary/success/info helpers. */

.variable-hint[b-jn774xzu4g] {
    font-size: var(--fs-sm);
    margin-bottom: var(--space-3);
}

.muted[b-jn774xzu4g] {
    color: var(--color-text-muted);
}

.variable-list[b-jn774xzu4g] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.variable-button[b-jn774xzu4g] {
    text-align: left;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    font-size: var(--fs-sm);
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: background .14s var(--ease), border-color .14s var(--ease);
}

.variable-button:hover[b-jn774xzu4g] {
    background: var(--color-surface-2);
    border-color: var(--color-border-strong);
}

.variable-button:focus-visible[b-jn774xzu4g] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.variable-button code[b-jn774xzu4g] {
    font-family: var(--font-mono);
    font-weight: var(--fw-semibold);
    color: var(--color-accent-text);
    background: none;
    padding: 0;
}

.variable-description[b-jn774xzu4g] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    margin-left: var(--space-2);
}

.variable-group-title[b-jn774xzu4g] {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    margin-bottom: var(--space-2);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.vg-ticket[b-jn774xzu4g] {
    color: var(--color-accent-text);
}

.vg-repo[b-jn774xzu4g] {
    color: var(--color-success-text);
}

.vg-plan[b-jn774xzu4g] {
    color: var(--color-info-text);
}
/* /Components/Agents/AgentChat.razor.rz.scp.css */
.agent-assistant-panel[b-miyrgfd0h0] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background-color: var(--color-surface-1);
    color: var(--color-text);
    padding: 1rem;
}

.agent-assistant-meta[b-miyrgfd0h0] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
    color: var(--color-text-secondary);
    font-size: 0.875rem;
}

.agent-assistant-meta .meta-item[b-miyrgfd0h0] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.agent-assistant-actions[b-miyrgfd0h0] {
    display: flex;
    justify-content: flex-end;
}
/* /Components/Agents/AgentFollowUpQuestion.razor.rz.scp.css */
.follow-up-question[b-x38ujmophb] {
    padding: 1rem;
    border-top: 1px solid var(--border-color);
    background-color: var(--color-warning-bg);
    border-radius: 0 0 8px 8px;
}

.question-header[b-x38ujmophb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    color: var(--color-warning-text);
}

.question-header i[b-x38ujmophb] {
    font-size: 1.25rem;
}

.question-header strong[b-x38ujmophb] {
    font-weight: 600;
}

.follow-up-question p[b-x38ujmophb] {
    margin-bottom: 1rem;
    padding-left: 1.75rem;
    color: var(--text-color-primary);
}

.answer-input[b-x38ujmophb] {
    display: flex;
    gap: 0.5rem;
    padding-left: 1.75rem;
}

.answer-input .form-control[b-x38ujmophb] {
    flex: 1;
}
/* /Components/Agents/AgentMessage.razor.rz.scp.css */
.agent-message[b-tgxmwvypu1] {
    margin-bottom: 1rem;
    padding: 0.75rem;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.agent-message.user[b-tgxmwvypu1] {
    background-color: var(--chat-user-bg);
    color: var(--chat-user-text);
    margin-left: 20%;
    align-self: flex-end;
}

.agent-message.assistant[b-tgxmwvypu1] {
    background-color: var(--chat-assistant-bg);
    margin-right: 20%;
    align-self: flex-start;
}

.agent-message.tool[b-tgxmwvypu1] {
    background-color: var(--chat-tool-bg);
    font-style: italic;
    border-left: 3px solid var(--chat-tool-border);
}

.agent-message.reasoning[b-tgxmwvypu1] {
    background-color: var(--chat-reasoning-bg);
    font-style: italic;
    border-left: 3px solid var(--chat-reasoning-border);
}

.message-user[b-tgxmwvypu1],
.message-assistant[b-tgxmwvypu1],
.message-tool[b-tgxmwvypu1],
.message-reasoning[b-tgxmwvypu1] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
}

.message-user i[b-tgxmwvypu1],
.message-assistant i[b-tgxmwvypu1],
.message-tool i[b-tgxmwvypu1],
.message-reasoning i[b-tgxmwvypu1] {
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.message-user span[b-tgxmwvypu1],
.message-tool span[b-tgxmwvypu1],
.message-reasoning span[b-tgxmwvypu1] {
    flex: 1;
}

.message-assistant div[b-tgxmwvypu1] {
    flex: 1;
}

.message-time[b-tgxmwvypu1] {
    font-size: 0.75rem;
    opacity: 0.7;
    margin-left: auto;
    align-self: flex-end;
}

.agent-message.user .message-time[b-tgxmwvypu1] {
    color: var(--chat-user-text);
}
/* /Components/Agents/PhaseAgentOutputPanel.razor.rz.scp.css */
/* PhaseAgentOutputPanel — sequential entry point (AC-18), token-only. */
.phase-agent-output[b-a1vlmddtm7] {
    position: relative;
    min-width: 0;
    max-width: 100%;
}

.agent-status-bar[b-a1vlmddtm7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}

.claim-machine[b-a1vlmddtm7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.claim-machine-label[b-a1vlmddtm7] {
    font-weight: 600;
}

.claim-machine-name[b-a1vlmddtm7] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
}

.agent-actions[b-a1vlmddtm7] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.scope-note[b-a1vlmddtm7] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: var(--space-3);
    margin-bottom: 0;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.scope-note i[b-a1vlmddtm7] {
    flex: none;
    margin-top: 3px;
}

.mode-footnote[b-a1vlmddtm7] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 0 0 var(--space-3);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.mode-footnote i[b-a1vlmddtm7] {
    flex: none;
    margin-top: 3px;
}

.mode-footnote a[b-a1vlmddtm7] {
    color: var(--color-accent);
}

.solo-inspector-host[b-a1vlmddtm7] {
    position: relative;
    min-height: 420px;
}

/* AgentInspector sizes itself against a positioned, sized container (the team drawer). In the
   solo host its wrapper would collapse to 0px and clip the transcript, so fill the host. */
.solo-inspector-host[b-a1vlmddtm7]  .inspector-wrap {
    position: absolute;
    inset: 0;
}

/* Over the team tree the drawer is a min(560px, 72%) side panel; in the solo host there is nothing
   to keep in view beside it, so the transcript takes the full width of the panel. */
.solo-inspector-host[b-a1vlmddtm7]  .inspector {
    width: 100%;
    min-width: min(420px, 100%);
    border-left: none;
    border-radius: var(--radius-lg);
}
/* /Components/Agents/TeamPanel.razor.rz.scp.css */
/* TeamPanel chrome — facit .team-panel meters/toolbar/empty (token-only). */
.inspector-host[b-ptjp533qqm] {
    position: relative;
}

[b-ptjp533qqm] .team-panel {
    border-color: var(--color-border-strong);
}

[b-ptjp533qqm] .team-panel .card-header {
    background: var(--color-surface-1);
    border-bottom: 1px solid var(--color-divider);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.team-title[b-ptjp533qqm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}

.team-title h4[b-ptjp533qqm] {
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    margin: 0;
}

.team-header-actions[b-ptjp533qqm] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 1px;
}

.live-pill[b-ptjp533qqm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    font-weight: var(--fw-medium);
    background: var(--color-success-soft);
    border: 1px solid var(--color-success-line);
    color: var(--color-success-text);
}

.live-pill .beacon[b-ptjp533qqm] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-success);
    animation: team-beacon-b-ptjp533qqm 1.6s var(--ease) infinite;
}

.live-pill.is-recovering[b-ptjp533qqm] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

.live-pill.is-recovering .beacon[b-ptjp533qqm] {
    background: var(--color-warning);
}

.live-pill.is-idle[b-ptjp533qqm] {
    background: var(--color-neutral-soft);
    border-color: var(--color-neutral-line);
    color: var(--color-text-muted);
}

.live-pill.is-idle .beacon[b-ptjp533qqm] {
    background: var(--color-text-faint);
    animation: none;
}

.live-pill.is-held[b-ptjp533qqm] {
    background: var(--color-info-soft);
    border-color: var(--color-info-line);
    color: var(--color-info-text);
}

.live-pill.is-held .beacon[b-ptjp533qqm] {
    background: var(--color-info);
    animation: none;
}

.live-pill.is-not-live[b-ptjp533qqm] {
    color: var(--color-warning, #b58105);
    border-color: color-mix(in srgb, var(--color-warning, #b58105) 35%, transparent);
    background: color-mix(in srgb, var(--color-warning, #b58105) 10%, transparent);
}

.live-pill.is-not-live .beacon[b-ptjp533qqm] {
    background: var(--color-warning, #b58105);
    animation: none;
}

@keyframes team-beacon-b-ptjp533qqm {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.35; transform: scale(0.75); }
}

.team-meters[b-ptjp533qqm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-5);
    padding: var(--space-3) var(--space-5);
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-divider);
    margin: calc(var(--space-3) * -1) calc(var(--space-3) * -1) var(--space-3);
}

.team-toolbar[b-ptjp533qqm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    margin: 0 calc(var(--space-3) * -1) var(--space-3);
}

.team-toolbar.repo-toolbar[b-ptjp533qqm] {
    margin-top: calc(var(--space-3) * -1);
}

.count-strip[b-ptjp533qqm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.count[b-ptjp533qqm] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
}

.count b[b-ptjp533qqm] {
    font-family: var(--font-mono);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

[b-ptjp533qqm] .count-dot {
    margin-top: 0;
}

.spacer[b-ptjp533qqm] {
    flex: 1 1 auto;
}

.xs[b-ptjp533qqm] {
    font-size: var(--fs-xs);
}

.muted[b-ptjp533qqm] {
    color: var(--color-text-muted);
}

.faint[b-ptjp533qqm] {
    color: var(--color-text-faint);
}

.seg[b-ptjp533qqm] {
    display: inline-flex;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.seg button[b-ptjp533qqm] {
    background: transparent;
    border: 0;
    padding: 4px var(--space-3);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    cursor: pointer;
}

.seg button.on[b-ptjp533qqm] {
    background: var(--color-surface-3);
    color: var(--color-text);
}

.repo-legend[b-ptjp533qqm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.repo-legend .item[b-ptjp533qqm] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.team-notice[b-ptjp533qqm] {
    margin-bottom: var(--space-3);
}

.recovery-steps[b-ptjp533qqm] {
    list-style: none;
    margin: 0 0 var(--space-3);
    padding: var(--space-3) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
}

.recovery-steps li[b-ptjp533qqm] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-text-secondary);
}

.recovery-steps .ok[b-ptjp533qqm] {
    color: var(--color-success-text);
}

.recovery-steps .busy[b-ptjp533qqm] {
    color: var(--color-warning-text);
}

.recovery-steps .todo[b-ptjp533qqm] {
    color: var(--color-text-faint);
}

.empty-state[b-ptjp533qqm] {
    text-align: center;
    padding: var(--space-7) var(--space-5);
}

.empty-state .empty-ico[b-ptjp533qqm] {
    font-size: 30px;
    color: var(--color-text-faint);
}

.empty-state h5[b-ptjp533qqm] {
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    margin-top: var(--space-3);
}

.empty-state p[b-ptjp533qqm] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    margin-top: var(--space-2);
}

.recipe-preview[b-ptjp533qqm] {
    margin-top: var(--space-5);
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.recipe-preview-title[b-ptjp533qqm] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    margin-bottom: var(--space-2);
}

.recipe-row[b-ptjp533qqm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-1);
}

.recipe-row.is-lead[b-ptjp533qqm] {
    border-style: solid;
    border-color: var(--color-accent-line);
}

.recipe-row .node-name[b-ptjp533qqm] {
    font-weight: var(--fw-semibold);
    font-size: var(--fs-sm);
}

.recipe-row .node-role[b-ptjp533qqm] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /Components/Artefacts/ArtefactMarkdownPanel.razor.rz.scp.css */
.artefact-panel[b-lgnb1keyeq] {
    padding: 0.75rem 0;
}

.artefact-panel-header[b-lgnb1keyeq] {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-color);
}

.artefact-panel-header .filename[b-lgnb1keyeq] {
    font-family: var(--font-family-mono);
    font-weight: 600;
}
/* /Components/Artefacts/ArtefactSideBySideView.razor.rz.scp.css */
.side-by-side[b-hvrkf9nzf4] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.side-by-side > .pane[b-hvrkf9nzf4] {
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 1rem;
    overflow-x: auto;
}

.side-by-side .pane-header[b-hvrkf9nzf4] {
    border-bottom: 1px solid var(--bs-border-color);
    padding-bottom: 0.5rem;
    margin-bottom: 0.75rem;
    font-size: 0.95rem;
}

@media (max-width: 992px) {
    .side-by-side[b-hvrkf9nzf4] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Artefacts/ArtefactVersionPicker.razor.rz.scp.css */
.version-select[b-qs76jl3wz1] {
    max-width: 280px;
}
/* /Components/Artefacts/PlanApprovalPanel.razor.rz.scp.css */
.reject-form[b-l0ersiooyr] {
    border-top: var(--border-width) solid var(--border-color);
    padding-top: var(--space-md);
}
/* /Components/Artefacts/PrdApprovalPanel.razor.rz.scp.css */
.reject-form[b-l7nq9kwr2v] {
    border-top: var(--border-width) solid var(--border-color);
    padding-top: var(--space-md);
}
/* /Components/Artefacts/QaAnswersEditor.razor.rz.scp.css */
/* Component-isolated styles for QaAnswersEditor. */
/* /Components/Artefacts/TestPlanApprovalPanel.razor.rz.scp.css */
/* Component-isolated styles for TestPlanApprovalPanel. */
.reject-form[b-riws3b8mim] {
    border-top: var(--border-width) solid var(--border-color);
    padding-top: var(--space-md);
}
/* /Components/Artefacts/TicketArtefactsTabs.razor.rz.scp.css */
.artefact-tab-body[b-e4ff9s6t3p] {
    min-height: 400px;
}
/* /Components/Artefacts/TicketMdEditor.razor.rz.scp.css */
/* Component-isolated styles for TicketMdEditor (Epic 08 convention). */
/* /Components/Auth/AuthCenterColumn.razor.rz.scp.css */
/* Centered auth column (replaces bootstrap row/col on EmptyLayout auth
   screens). Token-only width + centering. */
.auth-center[b-3vb71oc7ho] {
    display: flex;
    justify-content: center;
}

.auth-col[b-3vb71oc7ho] {
    width: 100%;
    max-width: 480px;
}

.auth-col-wide[b-3vb71oc7ho] {
    max-width: 720px;
}
/* /Components/Auth/UserProfileDropdown.razor.rz.scp.css */
.profile-dropdown[b-96mt7297c0] {
    position: relative;
}

.profile-toggle[b-96mt7297c0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    background: none;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    font-size: 0.875rem;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.profile-toggle:hover[b-96mt7297c0] {
    background-color: var(--color-surface-2);
    border-color: var(--color-border-soft);
    color: var(--color-text);
}

.profile-dropdown.show .profile-toggle[b-96mt7297c0] {
    background-color: var(--color-surface-2);
    border-color: var(--color-border);
}

.profile-name[b-96mt7297c0] {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-chevron[b-96mt7297c0] {
    font-size: 0.625rem;
    transition: transform 0.15s ease;
}

.profile-dropdown.show .profile-chevron[b-96mt7297c0] {
    transform: rotate(180deg);
}

.profile-backdrop[b-96mt7297c0] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
}

.profile-menu[b-96mt7297c0] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 1001;
    min-width: 200px;
    padding: 0.375rem 0;
    margin: 0.25rem 0 0;
    list-style: none;
    background-color: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
}

.profile-menu-item[b-96mt7297c0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 1rem;
    border: none;
    background: none;
    color: var(--color-text);
    font-size: 0.875rem;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.profile-menu-item:hover[b-96mt7297c0] {
    background-color: var(--color-surface-2);
    color: var(--color-text);
    text-decoration: none;
}

.profile-menu-form[b-96mt7297c0] {
    display: contents;
}

.profile-divider[b-96mt7297c0] {
    margin: 0.375rem 0;
    border-top: 1px solid var(--color-border-soft);
}

@media (max-width: 768px) {
    .profile-toggle[b-96mt7297c0] { min-height: var(--control-h-lg); }
}
/* /Components/Backlog/BacklogTree.razor.rz.scp.css */
/* Backlog treegrid frame and the quick-add composer row — facit .tree / .tree-row.is-composer
   (backlog.html:880, 906-908). Row and cell styles live in UI/Backlog/BacklogTreeRow.
   Extra columns scroll sideways inside the frame. It is positioned so the header's visually hidden "Add" label
   (absolutely positioned) is clipped with the rows instead of widening the page. */
.tree[b-qdxgfu05o4] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    position: relative;
    overflow-x: auto;
}

.is-composer[b-qdxgfu05o4] {
    display: flex;
    align-items: center;
    padding: var(--space-1) var(--space-3) var(--space-1) calc(var(--space-3) + 22px);
    border-bottom: 1px solid var(--color-border-soft);
    background: var(--color-bg-sunken);
    box-shadow: inset 0 0 0 1px var(--color-accent);
}

.is-composer[b-qdxgfu05o4]  .quick-add {
    flex: 1 1 auto;
    min-width: 0;
}
/* /Components/Billing/CreditUsageCard.razor.rz.scp.css */
/* Two-up credit summary grid (replaces bootstrap row/col). */
.credit-grid[b-2fh5mloq6r] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
}

@media (max-width: 575px) {
    .credit-grid[b-2fh5mloq6r] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Billing/SubscriptionCard.razor.rz.scp.css */
/* Two-up subscription summary grid (replaces bootstrap row/col). */
.sub-grid[b-m12g9f8rn3] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
}

@media (max-width: 575px) {
    .sub-grid[b-m12g9f8rn3] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Billing/UserCountManager.razor.rz.scp.css */
/* Two-up user-count / price-preview grid (replaces bootstrap row/col). */
.ucm-grid[b-pxuogzpdyo] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
    align-items: center;
}

@media (max-width: 575px) {
    .ucm-grid[b-pxuogzpdyo] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Code/GitDiffViewer.razor.rz.scp.css */
.diff-viewer[b-hzr9xcgtb8] {
    font-family: var(--font-family-mono);
    font-size: var(--font-size-sm);
}

.diff-controls[b-hzr9xcgtb8] {
    display: flex;
    align-items: center;
    padding: var(--space-sm);
    background-color: var(--bg-color-alt);
    border-radius: var(--border-radius-sm);
}

.file-stats-summary[b-hzr9xcgtb8] {
    display: inline-flex;
    gap: var(--space-sm);
}

.diff-output[b-hzr9xcgtb8] {
    max-height: 600px;
    overflow-y: auto;
    border: var(--border-width) solid var(--border-color);
    border-radius: var(--border-radius-sm);
    background-color: var(--bg-color);
}

/* Diff table styles */
[b-hzr9xcgtb8] .diff-table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
}

[b-hzr9xcgtb8] .file-diff-section {
    margin-bottom: var(--space-lg);
}

[b-hzr9xcgtb8] .file-header {
    padding: var(--space-sm) var(--space-md);
    background-color: var(--bg-color-alt);
    border-bottom: var(--border-width-thick) solid var(--border-color);
    font-weight: var(--font-weight-semibold);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

[b-hzr9xcgtb8] .file-header.file-added {
    background-color: var(--file-added-bg);
    border-color: var(--file-added-border);
}

[b-hzr9xcgtb8] .file-header.file-deleted {
    background-color: var(--file-deleted-bg);
    border-color: var(--file-deleted-border);
}

[b-hzr9xcgtb8] .file-header.file-modified {
    background-color: var(--file-modified-bg);
    border-color: var(--file-modified-border);
}

[b-hzr9xcgtb8] .file-path {
    font-family: var(--font-family-mono);
}

[b-hzr9xcgtb8] .file-stats {
    font-size: var(--font-size-sm);
    color: var(--text-color-muted);
}

[b-hzr9xcgtb8] .diff-line-content {
    padding: 2px 10px;
    white-space: pre-wrap;
    word-break: break-all;
}

[b-hzr9xcgtb8] .diff-line-added {
    background-color: var(--diff-added-bg);
}

[b-hzr9xcgtb8] .diff-line-added .diff-line-content {
    background-color: var(--diff-added-line);
}

[b-hzr9xcgtb8] .diff-line-deleted {
    background-color: var(--diff-deleted-bg);
}

[b-hzr9xcgtb8] .diff-line-deleted .diff-line-content {
    background-color: var(--diff-deleted-line);
}

[b-hzr9xcgtb8] .diff-line-hunk-header {
    background-color: var(--diff-hunk-bg);
    color: var(--diff-hunk-color);
    font-weight: var(--font-weight-semibold);
}

[b-hzr9xcgtb8] .diff-line-unchanged {
    background-color: var(--bg-color);
}
/* /Components/Comments/InlineCommentPanel.razor.rz.scp.css */
.inline-comment-panel[b-yzmrxmwjxq] {
    background-color: white;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.panel-header[b-yzmrxmwjxq] {
    padding: 1rem;
    border-bottom: 1px solid #dee2e6;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.panel-body[b-yzmrxmwjxq] {
    padding: 1rem;
    overflow-y: auto;
    flex: 1;
}

.anchor-comment-group[b-yzmrxmwjxq] {
    padding: 0.75rem;
    border: 1px solid #e9ecef;
    border-radius: 0.375rem;
    cursor: pointer;
    transition: all 0.2s;
}

.anchor-comment-group:hover[b-yzmrxmwjxq] {
    background-color: #f8f9fa;
    border-color: #0d6efd;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.text-snippet[b-yzmrxmwjxq] {
    background-color: #f8f9fa;
    padding: 0.5rem;
    border-radius: 0.25rem;
    border-left: 3px solid #0d6efd;
    font-style: italic;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.comment-preview[b-yzmrxmwjxq] {
    padding: 0.5rem;
    background-color: #ffffff;
    border-radius: 0.25rem;
}

.comment-content[b-yzmrxmwjxq] {
    color: #6c757d;
    margin-top: 0.25rem;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.anchor-list[b-yzmrxmwjxq] {
    max-height: calc(100vh - 300px);
}

.empty-state[b-yzmrxmwjxq]  i {
    opacity: 0.3;
}

.empty-state[b-yzmrxmwjxq]  .empty-state-icon {
    font-size: 2rem;
}
/* /Components/Connections/ConnectAgentTabs.razor.rz.scp.css */
.conn-tab-lead[b-yme551uea4] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-3);
}

.conn-step-num[b-yme551uea4] {
    display: inline-grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-surface-3);
    color: var(--color-text-secondary);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    margin-right: var(--space-2);
}

.conn-fallback[b-yme551uea4] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--fs-sm);
    margin-top: var(--space-2);
}
/* /Components/Connections/ConnectedAgentsTable.razor.rz.scp.css */
/* ConnectedAgentsTable — facit mockups/connections-page.html region connected-agents. */
.conn-agents.has-rows[b-qnh4l8j5rz]  .card-body {
    padding: 0;
}

/* The facit's flush table: it fits the card and wraps on a wide screen, and scrolls inside the card on a
   narrow one, so Revoke stays reachable at 375px. */
.conn-agents.has-rows[b-qnh4l8j5rz]  .data-table-wrap {
    border: none;
    border-radius: 0;
    overflow-x: auto;
}

.conn-agent-cell[b-qnh4l8j5rz] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.conn-agent-cell strong[b-qnh4l8j5rz] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
    white-space: nowrap;
}

.conn-agent-detail[b-qnh4l8j5rz] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    white-space: nowrap;
}

.conn-agents[b-qnh4l8j5rz]  tr.is-revoked td {
    color: var(--color-text-muted);
}

.conn-reason[b-qnh4l8j5rz] {
    min-width: 220px;
    font-size: var(--fs-xs);
    color: var(--color-danger-text);
}

.conn-reason.is-muted[b-qnh4l8j5rz] {
    color: var(--color-text-muted);
}
/* /Components/Connections/CopyableCommand.razor.rz.scp.css */
.copy-line[b-7vkwjr9pp1] {
    display: flex;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
    align-items: stretch;
}

.copy-line .form-control[b-7vkwjr9pp1] {
    flex: 1;
    min-width: 0;
}

.copy-line-block[b-7vkwjr9pp1] {
    align-items: flex-start;
}

.copy-line-code[b-7vkwjr9pp1] {
    flex: 1;
    min-width: 0;
}

@media (max-width: 480px) {
    .copy-line[b-7vkwjr9pp1] {
        flex-wrap: wrap;
    }
}

.mono[b-7vkwjr9pp1] {
    font-family: var(--font-mono);
}
/* /Components/Connections/LinkMachineCard.razor.rz.scp.css */
/* LinkMachineCard — facit mockups/connections-page.html region linked-machines (first card). */
.worker-muted[b-4d0ngt9akw] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

.mono[b-4d0ngt9akw] {
    font-family: var(--font-mono);
}
/* /Components/Connections/MachinesTable.razor.rz.scp.css */
/* MachinesTable — facit mockups/connections-page.html region linked-machines ("Your machines"). */
.conn-machines.has-rows[b-4ur8ee8mwp]  .card-body {
    padding: 0;
}

/* The facit's flush table: it fits the card on a wide screen and scrolls inside it on a narrow one. */
.conn-machines.has-rows[b-4ur8ee8mwp]  .data-table-wrap {
    border: none;
    border-radius: 0;
    overflow-x: auto;
}

.conn-machines[b-4ur8ee8mwp]  tr.is-revoked td {
    color: var(--color-text-muted);
}

.worker-strong[b-4ur8ee8mwp] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.worker-muted[b-4ur8ee8mwp] {
    color: var(--color-text-muted);
}

.mono[b-4ur8ee8mwp] {
    font-family: var(--font-mono);
}
/* /Components/Connections/StaticMcpTokenCard.razor.rz.scp.css */
.static-token-anchor[b-thelt3lu9h] {
    scroll-margin-top: var(--space-6);
}

.static-token-muted[b-thelt3lu9h] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

.static-token-strong[b-thelt3lu9h] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.static-token-alert-content[b-thelt3lu9h] {
    min-width: 0;
    flex: 1;
}

.static-token-alert-body[b-thelt3lu9h] {
    margin: var(--space-2) 0;
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
}

.static-token-repo-list[b-thelt3lu9h] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.static-token-repo-item[b-thelt3lu9h] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
    cursor: pointer;
}

.static-token-repo-item:last-child[b-thelt3lu9h] {
    border-bottom: none;
}

.static-token-repo-text[b-thelt3lu9h] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: var(--fs-sm);
}

.static-token-repo-text .static-token-muted[b-thelt3lu9h] {
    font-size: var(--fs-xs);
}

/* The "Save your token" alert shape (worker-token-alert); the alert div is rendered by AlertMessage. */
.static-token-anchor[b-thelt3lu9h]  .static-token-alert {
    display: flex;
    gap: var(--space-3);
    padding: var(--space-4);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-warning);
    background: var(--color-surface-1);
    color: var(--color-text);
    margin-bottom: var(--space-4);
}

.static-token-anchor[b-thelt3lu9h]  .static-token-alert > .bi {
    flex-shrink: 0;
    color: var(--color-warning-text);
}
/* /Components/Discovery/DecisionList.razor.rz.scp.css */
.decision-list[b-tg2h9xmzge] {
    border-top: 1px solid var(--color-divider);
    padding-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.decision-list-head[b-tg2h9xmzge] {
    font-size: 0.75rem;
    font-weight: 600;
}

.decision-item[b-tg2h9xmzge] {
    border: 1px solid var(--color-border);
    border-radius: 0.35rem;
    padding: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.decision-item-head[b-tg2h9xmzge] {
    display: flex;
    gap: 0.35rem;
    font-size: 0.82rem;
    line-height: 1.3;
}

.decision-item-number[b-tg2h9xmzge] {
    font-weight: 600;
    color: var(--color-text-muted);
}

.decision-item-question[b-tg2h9xmzge] {
    color: var(--color-text);
}

.decision-item-default[b-tg2h9xmzge] {
    font-size: 0.72rem;
    color: var(--color-text-muted);
}

.decision-item-default-label[b-tg2h9xmzge] {
    font-weight: 600;
}

.decision-item-actions[b-tg2h9xmzge] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
/* /Components/Discovery/DiscoveryCard.razor.rz.scp.css */
.discovery-card-head[b-buln0cstqn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.discovery-card-key[b-buln0cstqn] {
    font-weight: 600;
    text-decoration: none;
    color: var(--color-accent-text);
}

.discovery-card-title[b-buln0cstqn] {
    font-size: 0.9rem;
    line-height: 1.3;
    color: var(--color-text);
}

.discovery-card-meta[b-buln0cstqn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
}

.discovery-card-actions[b-buln0cstqn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.discovery-card-generating[b-buln0cstqn] {
    display: flex;
    align-items: center;
}

.discovery-card-form[b-buln0cstqn] {
    border-top: 1px solid var(--color-divider);
    padding-top: 0.5rem;
}

.discovery-card-form-actions[b-buln0cstqn] {
    display: flex;
    justify-content: flex-end;
    gap: 0.35rem;
}

.discovery-card-compliance[b-buln0cstqn] {
    border-top: 1px solid var(--color-divider);
    padding-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.discovery-card-compliance-body[b-buln0cstqn] {
    white-space: pre-wrap;
    font-size: 0.72rem;
    margin: 0;
    max-height: 8rem;
    overflow-y: auto;
}

.discovery-card-compliance-link[b-buln0cstqn] {
    font-size: 0.72rem;
}
/* /Components/EpicPlanning/DecisionAnswerComposer.razor.rz.scp.css */
/* DecisionAnswerComposer — facit state 3. Real radios, token-only. */

.answer-composer[b-f5xohtqtz0] {
    min-width: 0;
}

.panel-hd[b-f5xohtqtz0] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    background: var(--color-surface-2);
}

.panel-hd h3[b-f5xohtqtz0] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    line-height: var(--lh-snug);
}

.panel-bd.stack[b-f5xohtqtz0] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-5);
}

.sp[b-f5xohtqtz0] {
    flex: 1;
}

.opt-group[b-f5xohtqtz0] {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.opt[b-f5xohtqtz0] {
    display: flex;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    cursor: pointer;
    align-items: flex-start;
}

.opt + .opt[b-f5xohtqtz0] {
    margin-top: var(--space-2);
}

.opt:hover[b-f5xohtqtz0] {
    border-color: var(--color-border-strong);
    background: var(--color-surface-2);
}

.opt.on[b-f5xohtqtz0] {
    border-color: var(--color-accent);
    background: var(--color-accent-soft);
    box-shadow: var(--shadow-focus);
}

.opt input[type="radio"][b-f5xohtqtz0] {
    flex: none;
    width: 15px;
    height: 15px;
    margin-top: 2px;
    accent-color: var(--color-accent);
}

.opt-t[b-f5xohtqtz0] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.opt-d[b-f5xohtqtz0] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    margin-top: 2px;
    line-height: var(--lh-snug);
}

.opt.free .opt-t[b-f5xohtqtz0] {
    color: var(--color-accent-text);
}

.grow[b-f5xohtqtz0] {
    flex: 1;
    min-width: 0;
}

.ta[b-f5xohtqtz0] {
    width: 100%;
    margin-top: var(--space-2);
    padding: var(--space-3);
    resize: vertical;
    min-height: 74px;
    background: var(--color-bg-sunken);
    color: var(--color-text);
    border: 1px solid var(--color-accent-line);
    border-radius: var(--radius-sm);
    font: var(--fw-regular) var(--fs-sm) / var(--lh-normal) var(--font-sans);
}

.ta:focus[b-f5xohtqtz0] {
    outline: none;
    box-shadow: var(--shadow-focus);
    border-color: var(--color-accent);
}

.prf-inline[b-f5xohtqtz0] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.meta.faint[b-f5xohtqtz0] {
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
}

.chip[b-f5xohtqtz0] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-micro) / 1 var(--font-mono);
    white-space: nowrap;
}

.chip.warn[b-f5xohtqtz0] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

.sr-only[b-f5xohtqtz0] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/EpicPlanning/DecisionInbox.razor.rz.scp.css */
/* DecisionInbox — facit state 2 .dec rows. Token-only. */

.decision-inbox[b-3crkysrd8c] {
    min-width: 0;
}

.panel-hd[b-3crkysrd8c] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    background: var(--color-surface-2);
}

.panel-hd h3[b-3crkysrd8c] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.panel-bd.flush[b-3crkysrd8c] {
    padding: 0;
}

.sp[b-3crkysrd8c] {
    flex: 1;
}

.meta[b-3crkysrd8c] {
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
}

.dec[b-3crkysrd8c] {
    display: flex;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
}

.dec:last-child[b-3crkysrd8c] {
    border-bottom: 0;
}

.dec:hover[b-3crkysrd8c] {
    background: var(--color-surface-2);
}

.dec-main[b-3crkysrd8c] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.dec-q[b-3crkysrd8c] {
    font-size: var(--fs-body);
    font-weight: var(--fw-medium);
    line-height: var(--lh-snug);
    color: var(--color-text);
}

.dec-def[b-3crkysrd8c] {
    display: flex;
    gap: var(--space-2);
    align-items: baseline;
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.dec-binds[b-3crkysrd8c] {
    display: flex;
    gap: var(--space-1);
    flex-wrap: wrap;
    align-items: center;
}

.dec-act[b-3crkysrd8c] {
    flex: none;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    align-items: stretch;
    width: 132px;
}

@media (max-width: 900px) {
    .dec[b-3crkysrd8c] {
        flex-wrap: wrap;
    }

    .dec-act[b-3crkysrd8c] {
        width: 100%;
        flex-direction: row;
    }
}

.lbl[b-3crkysrd8c] {
    font: var(--fw-semibold) var(--fs-micro) / 1 var(--font-sans);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--color-text-faint);
}

.chip[b-3crkysrd8c] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-micro) / 1 var(--font-mono);
    white-space: nowrap;
}

.chip.acc[b-3crkysrd8c] {
    background: var(--color-accent-soft);
    border-color: var(--color-accent-line);
    color: var(--color-accent-text);
}

.chip.warn[b-3crkysrd8c] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

.chip.ok[b-3crkysrd8c] {
    background: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.chip.info[b-3crkysrd8c] {
    background: var(--color-info-soft);
    border-color: var(--color-info-line);
    color: var(--color-info-text);
}

.chip.dang[b-3crkysrd8c] {
    background: var(--color-danger-soft);
    border-color: var(--color-danger-line);
    color: var(--color-danger-text);
}

.more[b-3crkysrd8c] {
    padding: var(--space-3) var(--space-5);
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
    border-top: 1px solid var(--color-divider);
}
/* /Components/EpicPlanning/DecomposeWizard.razor.rz.scp.css */
/* DecomposeWizard — facit state 9. Badge/DataTable/MicroLabel/Button chrome comes from
   /UI/*; what remains here is the wizard's own layout and typography. */

.decompose-wizard[b-i3jq5xct67] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0.25rem 0;
}

.decompose-heading[b-i3jq5xct67] {
    font-size: 1.05rem;
    margin: 0 0 0.5rem;
}

.decompose-lead[b-i3jq5xct67],
.decompose-commit-warn[b-i3jq5xct67] {
    color: var(--color-text-muted);
    margin: 0 0 0.75rem;
}

.decompose-commit-warn[b-i3jq5xct67] {
    color: var(--color-danger, #cf222e);
    font-weight: 500;
}

.decompose-slice-list[b-i3jq5xct67] {
    margin: 0;
    padding-left: 1.1rem;
}

.decompose-slice-list li[b-i3jq5xct67] {
    margin-bottom: 0.35rem;
}

.decompose-actions[b-i3jq5xct67] {
    padding-top: 0.25rem;
    border-top: 1px solid var(--color-border);
}

.decompose-note[b-i3jq5xct67],
.decompose-faint[b-i3jq5xct67] {
    font-size: 0.78rem;
    color: var(--color-text-faint);
}

.decompose-warn[b-i3jq5xct67] {
    font-size: 0.82rem;
    color: var(--color-danger, #cf222e);
    font-weight: 500;
}

.decompose-wave[b-i3jq5xct67] {
    list-style: none;
    margin-bottom: 0.6rem;
}

.decompose-wave-slices[b-i3jq5xct67] {
    margin: 0.25rem 0 0;
    padding-left: 1.1rem;
}

.decompose-ack[b-i3jq5xct67] {
    margin-top: 0.5rem;
}

.decompose-stale[b-i3jq5xct67] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.decompose-ack-label[b-i3jq5xct67] {
    font-size: 0.85rem;
}

.decompose-mono[b-i3jq5xct67] {
    font-family: var(--font-mono);
}
/* /Components/EpicPlanning/EpicCoverageTab.razor.rz.scp.css */
.epic-coverage-tab[b-5n0s7djsda] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.epic-coverage-hd[b-5n0s7djsda] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.epic-coverage-title[b-5n0s7djsda] {
    font-size: 1rem;
    margin: 0 0.5rem 0 0;
}

.epic-coverage-table[b-5n0s7djsda] {
    width: 100%;
    margin-bottom: 0;
}

.epic-coverage-table tr.unplaced td[b-5n0s7djsda] {
    background: var(--color-warning-soft);
}

.epic-ac[b-5n0s7djsda] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-weight: 600;
    margin-right: 0.35rem;
}

.epic-chip[b-5n0s7djsda] {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    color: var(--color-text-muted);
    white-space: nowrap;
}

.epic-chip-sample[b-5n0s7djsda] {
    border-style: dashed;
}

.epic-chip-ok[b-5n0s7djsda] {
    color: var(--color-success-text, #1a7f37);
    border-color: var(--color-success, #1a7f37);
}

.epic-chip-warn[b-5n0s7djsda] {
    color: var(--color-warning-text, #9a6700);
    border-color: var(--color-warning, #d9a23b);
}

.epic-chip-info[b-5n0s7djsda] {
    color: var(--color-info-text, #0969da);
    border-color: var(--color-info, #0969da);
}

.warn-cell[b-5n0s7djsda] {
    color: var(--color-warning-text, #9a6700);
}

.epic-alert[b-5n0s7djsda] {
    border-radius: 8px;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
}

.epic-alert-warn[b-5n0s7djsda] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning, #d9a23b);
}

.epic-alert p[b-5n0s7djsda] {
    margin: 0.35rem 0 0;
    color: var(--color-text-muted);
    font-size: 0.9rem;
}
/* /Components/EpicPlanning/EpicCriteriaTab.razor.rz.scp.css */
.epic-criteria-tab[b-qbc5gzdwii] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.criteria-hd[b-qbc5gzdwii] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.criteria-title[b-qbc5gzdwii] {
    font-size: 1rem;
    margin: 0 0.5rem 0 0;
}

.criteria-table[b-qbc5gzdwii] {
    width: 100%;
    margin-bottom: 0;
}

.criteria-table tr.removed td[b-qbc5gzdwii] {
    color: var(--color-text-muted);
    text-decoration-color: var(--color-text-muted);
}

.criteria-table tr.removed .criterion-label[b-qbc5gzdwii] {
    text-decoration: line-through;
}

.criterion-label[b-qbc5gzdwii] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-weight: 600;
    margin-right: 0.35rem;
}

.criteria-actions-col[b-qbc5gzdwii] {
    width: 14rem;
}

.criteria-actions[b-qbc5gzdwii] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    align-items: center;
}

.criteria-origin[b-qbc5gzdwii],
.criteria-note[b-qbc5gzdwii] {
    color: var(--color-text-muted);
    font-size: 0.85rem;
}

.split-part[b-qbc5gzdwii] {
    border-left: 2px solid var(--color-border);
    padding-left: 0.6rem;
}

.criteria-error[b-qbc5gzdwii] {
    color: var(--color-danger-text, #b42318);
    font-size: 0.9rem;
    margin: 0;
}

.criteria-add[b-qbc5gzdwii] {
    border-top: 1px solid var(--color-border);
    padding-top: 0.75rem;
}

.criteria-add-warning[b-qbc5gzdwii] {
    color: var(--color-warning-text, #9a6700);
    font-size: 0.85rem;
    margin: 0 0 0.5rem;
}

.in-agreement[b-qbc5gzdwii] {
    color: var(--color-text-muted);
    font-size: 0.9rem;
    margin: 0;
}

.divergence[b-qbc5gzdwii] {
    border: 1px solid var(--color-warning, #d9a23b);
    background: var(--color-warning-soft);
    border-radius: 8px;
    padding: 0.75rem 1rem;
}

.divergence-title[b-qbc5gzdwii] {
    font-size: 0.95rem;
    margin: 0;
}

.divergence-lede[b-qbc5gzdwii] {
    color: var(--color-text-muted);
    font-size: 0.85rem;
    margin: 0.35rem 0 0.75rem;
}

.difference[b-qbc5gzdwii] {
    border-top: 1px solid var(--color-border);
    padding-top: 0.6rem;
}

.difference-hd[b-qbc5gzdwii] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.difference-label[b-qbc5gzdwii] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-weight: 600;
}

.difference-text[b-qbc5gzdwii] {
    font-size: 0.9rem;
    margin: 0.3rem 0 0;
}

.difference-side[b-qbc5gzdwii] {
    display: inline-block;
    min-width: 5.5rem;
    color: var(--color-text-muted);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.difference-citations[b-qbc5gzdwii] {
    font-size: 0.85rem;
    margin: 0.4rem 0 0.6rem;
    padding-left: 1.2rem;
}

.difference-citations-none[b-qbc5gzdwii] {
    color: var(--color-text-muted);
    font-size: 0.85rem;
    margin: 0.4rem 0 0.6rem;
}
/* /Components/EpicPlanning/EpicDecisionsTab.razor.rz.scp.css */
/* EpicDecisionsTab — host layout for list / drill-in. Token-only. */

.epic-decisions-tab[b-0ueksb3s1z] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-4) 0;
}

.list-view[b-0ueksb3s1z] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.filter-bar[b-0ueksb3s1z] {
    padding: 0 var(--space-5);
}

.drill[b-0ueksb3s1z] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    padding: 0 var(--space-5);
}

.drill-sep[b-0ueksb3s1z] {
    color: var(--color-text-faint);
    font-size: var(--fs-sm);
}

.drill-here[b-0ueksb3s1z] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.chip[b-0ueksb3s1z] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-micro) / 1 var(--font-mono);
    white-space: nowrap;
}

.chip.acc[b-0ueksb3s1z] {
    background: var(--color-accent-soft);
    border-color: var(--color-accent-line);
    color: var(--color-accent-text);
}
/* /Components/EpicPlanning/EpicFacitTab.razor.rz.scp.css */
.epic-facit-tab[b-ucwsvz6bs8] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.epic-facit-hd[b-ucwsvz6bs8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.epic-facit-title[b-ucwsvz6bs8] {
    font-size: 1rem;
    margin: 0 0.5rem 0 0;
}

.epic-facit-kit[b-ucwsvz6bs8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    padding: 0.45rem 0.7rem;
}

.epic-facit-kit-cell[b-ucwsvz6bs8] {
    font-size: 0.8rem;
    color: var(--color-text-muted);
}

.epic-facit-promote-action[b-ucwsvz6bs8] {
    margin-top: 0.6rem;
}

.epic-facit-claim[b-ucwsvz6bs8] {
    display: grid;
    grid-template-columns: minmax(14rem, 2fr) minmax(10rem, 1fr) auto;
    gap: 0.75rem;
    align-items: end;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    padding: 0.75rem 0.9rem 0.1rem;
}

@media (max-width: 720px) {
    .epic-facit-claim[b-ucwsvz6bs8] {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
}

.epic-facit-body[b-ucwsvz6bs8] {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(16rem, 1.4fr);
    gap: 1rem;
}

@media (max-width: 720px) {
    .epic-facit-body[b-ucwsvz6bs8] {
        grid-template-columns: 1fr;
    }
}

.epic-region-sketch[b-ucwsvz6bs8] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.epic-region-block[b-ucwsvz6bs8] {
    border: 1px dashed var(--color-border-strong);
    border-radius: 6px;
    padding: 0.5rem 0.65rem;
    min-height: 2.4rem;
    background: var(--color-surface-muted, transparent);
}

.epic-region-block.claimed[b-ucwsvz6bs8] {
    border-style: solid;
    border-color: var(--color-accent, var(--color-primary));
    background: color-mix(in srgb, var(--color-accent, var(--color-primary)) 12%, transparent);
}

.epic-region-block.wait[b-ucwsvz6bs8] {
    border-color: var(--color-warning, #d9a23b);
    background: var(--color-warning-soft);
}

.epic-region-tag[b-ucwsvz6bs8] {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    font-family: var(--font-mono, ui-monospace, monospace);
}

.epic-anchor[b-ucwsvz6bs8] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-weight: 600;
}

.epic-chip[b-ucwsvz6bs8] {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    color: var(--color-text-muted);
    white-space: nowrap;
}

.epic-chip-acc[b-ucwsvz6bs8] {
    color: var(--color-accent-text, var(--color-primary));
    border-color: var(--color-accent, var(--color-primary));
}

.epic-chip-sample[b-ucwsvz6bs8] {
    border-style: dashed;
}

.epic-chip-ok[b-ucwsvz6bs8] {
    color: var(--color-success-text, #1a7f37);
    border-color: var(--color-success, #1a7f37);
}

.epic-chip-warn[b-ucwsvz6bs8] {
    color: var(--color-warning-text, #9a6700);
    border-color: var(--color-warning, #d9a23b);
}

.epic-chip-muted[b-ucwsvz6bs8] {
    opacity: 0.65;
}
/* /Components/EpicPlanning/EpicOverviewTab.razor.rz.scp.css */
/* EpicOverviewTab — overview body layout. */

.epic-overview[b-qxsdcubqqh] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.panel-bd[b-qxsdcubqqh] {
    padding: var(--space-4) var(--space-5);
}

.panel-bd.divided[b-qxsdcubqqh] {
    border-top: 1px solid var(--color-divider);
}

.more[b-qxsdcubqqh] {
    margin-top: var(--space-3);
    color: var(--color-text-faint);
    font-size: var(--fs-xs);
}
/* /Components/EpicPlanning/EpicShell.razor.rz.scp.css */
/* EpicShell — panel chrome matching facit .panel / .panel-hd. */

.epic-shell[b-fr2pcgh4a1] {
    min-width: 0;
}

.panel[b-fr2pcgh4a1] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.panel-hd[b-fr2pcgh4a1] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    background: var(--color-surface-2);
}

.epic-title[b-fr2pcgh4a1] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    line-height: var(--lh-snug);
}

.sp[b-fr2pcgh4a1] {
    flex: 1;
}

.dot[b-fr2pcgh4a1] {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-pill);
    flex: none;
    background: var(--color-text-faint);
}

.dot.run[b-fr2pcgh4a1] {
    background: var(--color-accent);
}

.chip[b-fr2pcgh4a1] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-1);
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-micro) / 1 var(--font-mono);
    white-space: nowrap;
}

.chip.acc[b-fr2pcgh4a1] {
    background: var(--color-accent-soft);
    border-color: var(--color-accent-line);
    color: var(--color-accent-text);
}

.chip.warn[b-fr2pcgh4a1] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

.tab-placeholder[b-fr2pcgh4a1] {
    padding: var(--space-5);
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

[b-fr2pcgh4a1] .epic-tabs {
    padding: 0 var(--space-5);
    margin-top: 0;
}
/* /Components/EpicPlanning/FirstCutEntryPanel.razor.rz.scp.css */
/* FirstCutEntryPanel — facit region explicit-first-cut. Token-only.
   Card/Badge/AlertMessage/MicroLabel chrome comes from /UI/*; what is left here
   is only what is specific to this surface. */

.first-cut-entry[b-i1448ch2hn] {
    min-width: 0;
}

.first-cut-title[b-i1448ch2hn] {
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
}

.first-cut-dot[b-i1448ch2hn] {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-pill);
    background: var(--color-warning-line);
}

.first-cut-note[b-i1448ch2hn] {
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
}

.first-cut-mono[b-i1448ch2hn] {
    font-family: var(--font-mono);
}
/* /Components/EpicPlanning/NeverReachedYouPanel.razor.rz.scp.css */
/* NeverReachedYouPanel — facit state 5. Token-only. */

.stack[b-a60oretl66] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.panel[b-a60oretl66] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.panel-hd[b-a60oretl66] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    background: var(--color-surface-2);
}

.panel-hd h3[b-a60oretl66] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
}

.panel-bd[b-a60oretl66] {
    padding: var(--space-4) var(--space-5);
}

.panel-bd.flush[b-a60oretl66] {
    padding: 0;
}

.sp[b-a60oretl66] {
    flex: 1;
}

.meta[b-a60oretl66] {
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
}

.meta.faint[b-a60oretl66] {
    color: var(--color-text-faint);
}

.faint[b-a60oretl66] {
    color: var(--color-text-faint);
}

.dec-q.q-lead[b-a60oretl66] {
    font-size: var(--fs-body);
    font-weight: var(--fw-medium);
    margin-bottom: var(--space-3);
    color: var(--color-text);
}

.prf-inline[b-a60oretl66] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.lbl[b-a60oretl66] {
    font: var(--fw-semibold) var(--fs-micro) / 1 var(--font-sans);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--color-text-faint);
}

.auto[b-a60oretl66] {
    display: flex;
    gap: var(--space-3);
    align-items: baseline;
    padding: var(--space-3) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    font-size: var(--fs-sm);
}

.auto:last-child[b-a60oretl66] {
    border-bottom: 0;
}

.auto-q[b-a60oretl66] {
    flex: 1;
    color: var(--color-text-secondary);
}

.auto-a[b-a60oretl66] {
    color: var(--color-text);
    font-weight: var(--fw-medium);
}

.auto-why[b-a60oretl66] {
    display: block;
    margin-top: 2px;
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
}

.chip[b-a60oretl66] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-micro) / 1 var(--font-mono);
    white-space: nowrap;
}

.chip.acc[b-a60oretl66] {
    background: var(--color-accent-soft);
    border-color: var(--color-accent-line);
    color: var(--color-accent-text);
}

.chip.ok[b-a60oretl66] {
    background: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.chip.info[b-a60oretl66] {
    background: var(--color-info-soft);
    border-color: var(--color-info-line);
    color: var(--color-info-text);
}

.more[b-a60oretl66] {
    padding: var(--space-3) var(--space-5);
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
}

.empty-line[b-a60oretl66] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.empty-line.pad[b-a60oretl66] {
    padding: var(--space-4) var(--space-5);
}

.merged-pair + .merged-pair[b-a60oretl66] {
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-divider);
}
/* /Components/EpicPlanning/PropagationConsequences.razor.rz.scp.css */
/* PropagationConsequences — facit state 4. Token-only.
   AlertMessage/Card/Badge/MicroLabel supply the banner, panel and pill chrome; what
   remains here is the per-effect row typography specific to this surface. */

.conseq-banner[b-vuwusz271r] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.conseq-title[b-vuwusz271r] {
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
}

.conseq-detail[b-vuwusz271r] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.conseq-effect[b-vuwusz271r] {
    padding: var(--space-2) 0;
    border-bottom: 1px dashed var(--color-border);
}

.conseq-effect:last-child[b-vuwusz271r] {
    border-bottom: 0;
}

.conseq-file[b-vuwusz271r] {
    font: var(--fw-medium) var(--fs-sm) / 1 var(--font-mono);
    color: var(--color-text-secondary);
}

.conseq-diff[b-vuwusz271r] {
    display: flex;
    gap: var(--space-1);
    font: var(--fw-semibold) var(--fs-micro) / 1 var(--font-mono);
}

.conseq-added[b-vuwusz271r] {
    color: var(--color-success-text);
}

.conseq-deleted[b-vuwusz271r] {
    color: var(--color-danger-text);
}

.conseq-more[b-vuwusz271r] {
    padding: var(--space-3) 0 0;
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
}
/* /Components/EpicPlanning/RefusalInterstitial.razor.rz.scp.css */
/* RefusalInterstitial — the dialog shell is the shared /UI Modal and Badge/AlertMessage/DataTable
   chrome comes from /UI/*; only the refusal's own typography is specific to this surface. Colours
   are theme tokens, so the dialog follows light and dark with the rest of the app. */

.refusal-lead[b-cvo0p0j6tj] {
    margin: 0 0 0.75rem;
    color: var(--color-text-muted);
}

.refusal-alert-title[b-cvo0p0j6tj] {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    color: inherit;
}

.refusal-alert-body[b-cvo0p0j6tj] {
    font-size: 0.9rem;
}

.refusal-mono[b-cvo0p0j6tj] {
    font-family: var(--font-mono);
}
/* /Components/Errors/ErrorDetail.razor.rz.scp.css */
/* Error severity header — Epic 17 locked treatment: soft tint + dark
   readable text + a thin colored accent rule. Never a saturated fill.
   Token-only. (Card primitive owns the same idiom for its own variants;
   this component hand-rolls its header, so it carries the matching rule.) */

.severity-header[b-m6qsrod6re] {
    width: 100%;
    border-left: 3px solid transparent;
}

/* Restores the spacing the removed Bootstrap `me-2` gave the severity glyph
   (now the pure-UI Icon primitive). Token-only. */
.severity-header[b-m6qsrod6re]  .severity-icon {
    margin-right: var(--space-2);
}

.severity-header.is-danger[b-m6qsrod6re] {
    background-color: var(--color-danger-soft);
    color: var(--color-danger-text);
    border-left-color: var(--color-danger);
}

.severity-header.is-warning[b-m6qsrod6re] {
    background-color: var(--color-warning-soft);
    color: var(--color-warning-text);
    border-left-color: var(--color-warning);
}

.severity-header.is-info[b-m6qsrod6re] {
    background-color: var(--color-info-soft);
    color: var(--color-info-text);
    border-left-color: var(--color-info);
}

.severity-header.is-secondary[b-m6qsrod6re] {
    background-color: var(--color-neutral-soft);
    color: var(--color-text-secondary);
    border-left-color: var(--color-text-muted);
}
/* /Components/Feedback/FeedbackModal.razor.rz.scp.css */
.feedback-form[b-q92m94gstn] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3, 0.75rem);
}

.category-options[b-q92m94gstn] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-2, 0.5rem);
    margin-top: 0.25rem;
}

.category-radio[b-q92m94gstn] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background-color: var(--color-surface-1);
    color: var(--color-text-secondary);
    font-size: 0.875rem;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.category-radio input[type="radio"][b-q92m94gstn] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.category-radio:hover[b-q92m94gstn] {
    background-color: var(--color-surface-2);
    border-color: var(--color-border-soft);
    color: var(--color-text);
}

.category-radio.selected[b-q92m94gstn] {
    border-color: var(--color-accent);
    background-color: var(--color-surface-2);
    color: var(--color-text);
    font-weight: 500;
}

.category-radio:focus-within[b-q92m94gstn] {
    outline: 2px solid var(--color-accent);
    outline-offset: 1px;
}

.feedback-screenshot-preview[b-q92m94gstn] {
    max-width: 100%;
    max-height: 180px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background-color: var(--color-surface-1);
    display: block;
    margin-top: var(--space-2, 0.5rem);
}

.screenshot-preview-container[b-q92m94gstn] {
    padding: var(--space-2, 0.5rem);
    border-radius: var(--radius-sm);
    background-color: var(--color-surface-1);
    border: 1px solid var(--color-border);
}
/* /Components/Feedback/FeedbackTriggerButton.razor.rz.scp.css */
.feedback-trigger-btn[b-t616g0z4yy] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.625rem;
    background: none;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    font-size: 0.875rem;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.feedback-trigger-btn:hover[b-t616g0z4yy] {
    background-color: var(--color-surface-2);
    border-color: var(--color-border-soft);
    color: var(--color-text);
}

.feedback-trigger-btn:focus-visible[b-t616g0z4yy] {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.feedback-trigger-text[b-t616g0z4yy] {
    white-space: nowrap;
}

/* Icon-only below 641px, so the hit area grows to a 44px touch target. */
@media (max-width: 640px) {
    .feedback-trigger-btn[b-t616g0z4yy] {
        justify-content: center;
        min-width: var(--control-h-lg);
        min-height: var(--control-h-lg);
    }

    .feedback-trigger-text[b-t616g0z4yy] {
        display: none;
    }
}
/* /Components/Filters/SavedViewsMenu.razor.rz.scp.css */
/* SavedViewsMenu — facit .opt .star / .owner-tag / .pop-foot (board.html:802-808, 1003-1004). */

.saved-views-pop[b-c9de758cc2] {
    min-width: 260px;
}

.view-name[b-c9de758cc2] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.saved-views[b-c9de758cc2]  .view-icon {
    font-size: 12px;
    color: var(--color-text-muted);
}

.saved-views[b-c9de758cc2]  .view-icon.is-default {
    color: var(--color-warning);
}

.owner-tag[b-c9de758cc2] {
    margin-left: auto;
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.views-foot[b-c9de758cc2] {
    border-top: 1px solid var(--color-border-soft);
    margin-top: var(--space-1);
    padding: var(--space-1);
    display: flex;
    gap: var(--space-2);
}

.view-actions[b-c9de758cc2] {
    display: flex;
    flex-direction: column;
}

.view-actions[b-c9de758cc2]  .overflow-menu__item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    padding: 6px var(--space-2);
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-text);
    font-size: var(--fs-sm);
    text-align: left;
    cursor: pointer;
}

.view-actions[b-c9de758cc2]  .overflow-menu__item:hover,
.view-actions[b-c9de758cc2]  .overflow-menu__item:focus-visible {
    background: var(--color-surface-2);
}

.view-actions[b-c9de758cc2]  .overflow-menu__item .bi {
    font-size: 13px;
    color: var(--color-text-muted);
}

.view-actions[b-c9de758cc2]  .overflow-menu__item.is-danger {
    color: var(--color-danger);
}
/* /Components/Filters/SaveViewDialog.razor.rz.scp.css */
/* SaveViewDialog — facit .saved-summary and .radio-line .sub (board.html:999-1001). */

.save-view[b-xng39g3qkh]  .radio-card-group {
    gap: var(--space-2);
}

.save-view[b-xng39g3qkh]  .option-sublabel {
    display: block;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.saved-summary[b-xng39g3qkh] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
}
/* /Components/Filters/TicketFilterBar.razor.rz.scp.css */
/* Facit .filter-stack / .filter-row / .search / .filter-chip-bar (board.html:770-791). */
.filter-stack[b-leqex5ar9p] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
}

.filter-row[b-leqex5ar9p] {
    display: flex;
    gap: var(--space-2);
    align-items: center;
    flex-wrap: wrap;
}

.filter-spacer[b-leqex5ar9p] {
    flex: 1 1 auto;
}

.filter-search[b-leqex5ar9p] {
    position: relative;
    flex: 1 1 220px;
    max-width: 320px;
}

.filter-search[b-leqex5ar9p]  i {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: var(--color-text-muted);
    pointer-events: none;
}

.filter-search[b-leqex5ar9p]  input {
    height: var(--control-h-sm);
    font-size: var(--fs-sm);
    padding-left: 32px;
    width: 100%;
}

.filter-row[b-leqex5ar9p]  .seg-option {
    height: var(--control-h-sm);
}

.filter-chip-bar[b-leqex5ar9p] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.who[b-leqex5ar9p] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

@media (max-width: 600px) {
    .filter-search[b-leqex5ar9p] {
        max-width: none;
    }
}
/* /Components/Hosting/AiResearchWarning.razor.rz.scp.css */
.ai-research-warning[b-1nzcbb04bv] {
    display: flex;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 2px solid var(--bs-warning);
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bs-warning) 12%, transparent);
    margin-bottom: 1.25rem;
}

.ai-research-warning__icon[b-1nzcbb04bv] {
    font-size: 1.5rem;
    color: var(--bs-warning-text-emphasis, #997404);
    flex-shrink: 0;
}

.ai-research-warning__title[b-1nzcbb04bv] {
    margin: 0 0 0.5rem;
    font-size: 1.05rem;
    font-weight: 700;
}

.ai-research-warning__lead[b-1nzcbb04bv] {
    margin-bottom: 0.5rem;
}

.ai-research-warning__list[b-1nzcbb04bv] {
    margin: 0;
    padding-left: 1.25rem;
}
/* /Components/Hosting/CandidateChips.razor.rz.scp.css */
.vendor-chip-strip[b-pexhfec3wn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.vendor-chip[b-pexhfec3wn] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--color-border, #d0d7de);
    background: var(--color-surface, #fff);
    font-size: var(--fs-sm, 0.875rem);
}

.vendor-chip.is-yours[b-pexhfec3wn] {
    border-color: var(--color-accent-border, #9ec5fe);
    background: var(--color-accent-bg, #eef5ff);
}

.vendor-chip .micro[b-pexhfec3wn] {
    font-size: 0.75rem;
    opacity: 0.7;
}

.group-title[b-pexhfec3wn] {
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
/* /Components/Hosting/CapabilityMatrix.razor.rz.scp.css */
.capability-matrix__scroll[b-cvmvb5e847] {
    max-width: 100%;
}

.capability-matrix__table[b-cvmvb5e847] {
    --mtx-sticky-bg: var(--bs-body-bg, #fff);
    border-collapse: separate;
    border-spacing: 0;
    min-width: 36rem;
}

.capability-matrix__sticky-col[b-cvmvb5e847] {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--mtx-sticky-bg);
    min-width: 12rem;
    max-width: 18rem;
    box-shadow: 1px 0 0 var(--bs-border-color, #dee2e6);
}

.capability-matrix__table thead .capability-matrix__sticky-col[b-cvmvb5e847] {
    z-index: 3;
}

.capability-matrix__need[b-cvmvb5e847] {
    text-align: center;
    white-space: nowrap;
    font-size: 0.85rem;
    min-width: 5.5rem;
}

.capability-matrix__cell[b-cvmvb5e847] {
    text-align: center;
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
}

.capability-matrix__name-line[b-cvmvb5e847] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.capability-matrix__display-name[b-cvmvb5e847] {
    font-weight: 600;
}

.capability-matrix__subtitle[b-cvmvb5e847] {
    margin-top: 0.15rem;
}

.capability-matrix__filter-reason[b-cvmvb5e847] {
    margin-top: 0.25rem;
    color: var(--bs-secondary-color, #6c757d);
    font-style: italic;
}

.capability-matrix__row.is-filtered[b-cvmvb5e847] {
    opacity: 0.55;
}

.capability-matrix__row.is-filtered .capability-matrix__display-name[b-cvmvb5e847] {
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

.m[b-cvmvb5e847] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    min-height: 1.4rem;
    border-radius: 0.25rem;
    font-weight: 700;
    line-height: 1;
}

.m-y[b-cvmvb5e847] {
    color: var(--bs-success-text-emphasis, #0a3622);
    background: color-mix(in srgb, var(--bs-success) 18%, transparent);
}

.m-p[b-cvmvb5e847] {
    color: var(--bs-warning-text-emphasis, #664d03);
    background: color-mix(in srgb, var(--bs-warning) 18%, transparent);
}

.m-n[b-cvmvb5e847] {
    color: var(--bs-danger-text-emphasis, #58151c);
    background: color-mix(in srgb, var(--bs-danger) 16%, transparent);
}

.m-u[b-cvmvb5e847] {
    color: var(--bs-secondary-color, #6c757d);
    background: color-mix(in srgb, var(--bs-secondary) 14%, transparent);
    border: 1px dashed var(--bs-border-color, #adb5bd);
}

.capability-matrix__legend .m[b-cvmvb5e847] {
    margin-right: 0.15rem;
}
/* /Components/Hosting/ChecklistTicketDiff.razor.rz.scp.css */
.checklist-ticket-diff[b-wh1br9x82h] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3);
    background: var(--color-surface-2, var(--color-surface));
}

.checklist-ticket-diff__grid[b-wh1br9x82h] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
}

.checklist-ticket-diff__label[b-wh1br9x82h] {
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
    margin-bottom: var(--space-1);
}

.checklist-ticket-diff__title[b-wh1br9x82h] {
    font-weight: var(--fw-medium);
    color: var(--color-text);
    margin-bottom: var(--space-1);
}

.checklist-ticket-diff__detail[b-wh1br9x82h] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.checklist-ticket-diff__col--decision[b-wh1br9x82h] {
    border-left: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
    padding-left: var(--space-3);
    padding-right: var(--space-3);
}

.checklist-ticket-diff__done[b-wh1br9x82h] {
    margin-top: var(--space-2);
}

@media (max-width: 900px) {
    .checklist-ticket-diff__grid[b-wh1br9x82h] {
        grid-template-columns: 1fr;
    }

    .checklist-ticket-diff__col--decision[b-wh1br9x82h] {
        border-left: none;
        border-right: none;
        border-top: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
        padding: var(--space-2) 0;
    }
}
/* /Components/Hosting/CostScenarioTable.razor.rz.scp.css */
.cost-scenario-table[b-zb1c5ham6s] {
    margin-bottom: 1.25rem;
}

.ai-inline-chip[b-zb1c5ham6s] {
    display: inline-block;
    margin-left: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bs-warning-text-emphasis, #997404);
}
/* /Components/Hosting/DecisionDocumentPreview.razor.rz.scp.css */
.decision-document-preview[b-qrjwebjv06] {
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    overflow: hidden;
    margin-bottom: 1.25rem;
}

.decision-document-preview__header[b-qrjwebjv06] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border-bottom: 1px solid var(--bs-border-color);
}
/* /Components/Hosting/EvidenceChip.razor.rz.scp.css */
.evidence-chip[b-al4q9zphcl] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    padding: 0.2rem 0.45rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 999px;
    background: var(--bs-body-bg, #fff);
    font-size: 0.85rem;
    max-width: 100%;
}

.evidence-chip__link[b-al4q9zphcl] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    text-decoration: none;
    color: inherit;
    min-width: 0;
}

.evidence-chip__claim[b-al4q9zphcl] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 28rem;
}

.evidence-chip__date[b-al4q9zphcl] {
    font-size: 0.75rem;
}
/* /Components/Hosting/GovernanceFindings.razor.rz.scp.css */
.governance-legal[b-51qthxfx9u] {
    display: flex;
    gap: 0.5rem;
    padding: var(--space-3, 0.75rem);
    margin-bottom: var(--space-3, 0.75rem);
    border-radius: var(--radius-md, 0.5rem);
    border: 1px solid var(--color-danger-border, #f1aeb5);
    background: var(--color-danger-bg, #fdecee);
    color: var(--color-danger-text, #842029);
}

.governance-reg[b-51qthxfx9u] {
    margin-bottom: var(--space-3, 0.75rem);
}

.governance-reg-head[b-51qthxfx9u] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.35rem;
}

.governance-reg-name[b-51qthxfx9u] {
    font-weight: 600;
}

.governance-reg-req[b-51qthxfx9u] {
    margin: 0 0 0.35rem;
    padding-left: 1.25rem;
}

.governance-evidence[b-51qthxfx9u] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: var(--fs-sm, 0.875rem);
    color: var(--color-text-secondary, #5c6570);
    font-family: var(--font-mono, ui-monospace, monospace);
}

.governance-table-title[b-51qthxfx9u] {
    font-weight: 600;
    margin: var(--space-3, 0.75rem) 0 var(--space-2, 0.5rem);
}
/* /Components/Hosting/HostingDecisionStep.razor.rz.scp.css */
.hosting-decision-step[b-m2imigi75o] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.hosting-decision-step__actions[b-m2imigi75o] {
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--bs-border-color);
}
/* /Components/Hosting/HostingEntryGate.razor.rz.scp.css */
.entry-grid[b-9kmown8brd] {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 960px) {
    .entry-grid[b-9kmown8brd] {
        grid-template-columns: 1fr;
    }
}

.entry-lead[b-9kmown8brd] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    line-height: var(--lh-normal);
    max-width: 70ch;
}

.group-title[b-9kmown8brd] {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-muted);
    margin-top: var(--space-4);
    margin-bottom: var(--space-2);
}

.does-list[b-9kmown8brd] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.does-list li[b-9kmown8brd] {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.does-list .m[b-9kmown8brd] {
    flex: 0 0 auto;
    width: 1.25rem;
    text-align: center;
    font-weight: var(--fw-semibold);
}

.does-list .m.yes[b-9kmown8brd] {
    color: var(--color-success);
}

.does-list .m.no[b-9kmown8brd] {
    color: var(--color-danger);
}

.prereq[b-9kmown8brd] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.prereq-i[b-9kmown8brd] {
    display: flex;
    gap: var(--space-3);
    align-items: flex-start;
}

.prereq-m[b-9kmown8brd] {
    flex: 0 0 auto;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
}

.prereq-i.ok .prereq-m[b-9kmown8brd] {
    background: color-mix(in srgb, var(--color-success) 18%, transparent);
    color: var(--color-success);
}

.prereq-i.miss .prereq-m[b-9kmown8brd] {
    background: color-mix(in srgb, var(--color-danger) 18%, transparent);
    color: var(--color-danger);
}

.prereq-t[b-9kmown8brd] {
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.prereq-d[b-9kmown8brd] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.entry-footer[b-9kmown8brd] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2);
    width: 100%;
}

.entry-estimate[b-9kmown8brd] {
    margin-right: auto;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.form-help[b-9kmown8brd] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.mono[b-9kmown8brd] {
    font-family: var(--font-mono);
}
/* /Components/Hosting/HostingNeedsStep.razor.rz.scp.css */
.hosting-needs-step[b-d9aut46gt2] {
    max-width: 56rem;
}

.hosting-needs-step h2[b-d9aut46gt2] {
    letter-spacing: 0.01em;
}

.hosting-needs-step [data-testid="hosting-needs-step-1b"][b-d9aut46gt2] {
    border-top: 1px solid var(--bs-border-color);
    padding-top: 1.25rem;
}

.hosting-needs-step [data-testid="hosting-needs-awaiting"][b-d9aut46gt2] {
    max-width: 40rem;
}

.hosting-needs-step :deep(.stat-count-strip)[b-d9aut46gt2] {
    min-width: 12rem;
}
/* /Components/Hosting/HostingQuestionRoundPanel.razor.rz.scp.css */
.hosting-question-round .qa-round[b-40gsblh7gk] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4, 1rem);
}

.q-card[b-40gsblh7gk] {
    border: 1px solid var(--color-border, #d0d7de);
    border-left: 4px solid var(--color-accent, #0d6efd);
    border-radius: var(--radius-md, 0.5rem);
    padding: var(--space-3, 0.75rem) var(--space-4, 1rem);
    background: var(--color-surface, #fff);
}

.q-head[b-40gsblh7gk] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.q-no[b-40gsblh7gk] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-weight: 700;
    min-width: 2.5rem;
}

.q-no.always[b-40gsblh7gk] {
    color: var(--color-accent, #0d6efd);
}

.q-title[b-40gsblh7gk] {
    font-weight: 600;
    flex: 1 1 auto;
}

.q-why[b-40gsblh7gk] {
    color: var(--color-text-secondary, #5c6570);
    font-size: var(--fs-sm, 0.875rem);
    margin-bottom: 0.75rem;
}

.group-title[b-40gsblh7gk] {
    font-weight: 600;
    font-size: var(--fs-sm, 0.875rem);
    margin: 0.5rem 0 0.35rem;
}

.consequence[b-40gsblh7gk] {
    margin-top: var(--space-3, 0.75rem);
    padding: var(--space-3, 0.75rem);
    border-radius: var(--radius-md, 0.5rem);
    background: var(--color-surface-muted, #f6f8fa);
    border: 1px solid var(--color-border, #d0d7de);
    font-size: var(--fs-sm, 0.875rem);
}
/* /Components/Hosting/HostingRequirementLadder.razor.rz.scp.css */
.requirement-ladder__rungs[b-hiup8v31l4] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.requirement-ladder__rung[b-hiup8v31l4] {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    padding: 0.75rem 1rem;
    background: var(--bs-body-bg, #fff);
}

.requirement-ladder__rung.is-target[b-hiup8v31l4] {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: inset 3px 0 0 var(--bs-primary, #0d6efd);
    background: color-mix(in srgb, var(--bs-primary) 6%, transparent);
}

.requirement-ladder__rung-h[b-hiup8v31l4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.requirement-ladder__rung-n[b-hiup8v31l4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.85rem;
    background: var(--bs-secondary-bg, #e9ecef);
}

.requirement-ladder__rung.is-target .requirement-ladder__rung-n[b-hiup8v31l4] {
    background: var(--bs-primary, #0d6efd);
    color: var(--bs-primary-bg-subtle, #fff);
}

.requirement-ladder__rung-t[b-hiup8v31l4] {
    font-weight: 600;
}

.requirement-ladder__reqs[b-hiup8v31l4] {
    margin: 0;
    padding-left: 1.25rem;
}

.requirement-ladder__score[b-hiup8v31l4] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
    font-weight: 600;
}
/* /Components/Hosting/HostingRerunAppendOutcome.razor.rz.scp.css */
.hosting-rerun-append-outcome .mono[b-b1phssoq0a] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
}
/* /Components/Hosting/HostingRerunHub.razor.rz.scp.css */
.hosting-rerun-hub .saved-answers-grid[b-j01azpdip8] {
    display: grid;
    gap: 0.5rem;
}

.hosting-rerun-hub .saved-answer-item[b-j01azpdip8] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.375rem;
}

.hosting-rerun-hub .saved-answer-name[b-j01azpdip8] {
    font-weight: 600;
}

.hosting-rerun-hub .saved-answer-value[b-j01azpdip8] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}
/* /Components/Hosting/HostingSuggestedNextCard.razor.rz.scp.css */
.suggest-lead[b-29pvdmdmgr] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    max-width: 70ch;
}

.suggest-lines[b-29pvdmdmgr] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.suggest-line[b-29pvdmdmgr] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: var(--space-3);
    align-items: start;
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.suggest-main[b-29pvdmdmgr] {
    min-width: 0;
}

.suggest-t[b-29pvdmdmgr] {
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.suggest-d[b-29pvdmdmgr] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.suggest-acts[b-29pvdmdmgr] {
    display: flex;
    align-items: center;
}
/* /Components/Hosting/LateCandidatePanel.razor.rz.scp.css */
.late-candidate-panel__will ul[b-nrqs3bzmpa],
.late-candidate-panel__will-not ul[b-nrqs3bzmpa] {
    margin-bottom: 0;
    padding-left: 1.25rem;
}

.late-candidate-panel .vendor-chip-strip[b-nrqs3bzmpa] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
/* /Components/Hosting/MandatedPlatformQuestion.razor.rz.scp.css */
.hosting-mandated-platform[b-0i0qz3igsf] {
    max-width: 48rem;
}

.hosting-mandated-platform :deep(.radio-option)[b-0i0qz3igsf] {
    margin-bottom: 0.75rem;
}

.hosting-mandated-platform :deep(.option-content h4)[b-0i0qz3igsf] {
    font-size: 1rem;
}

.hosting-mandated-platform .form-text[b-0i0qz3igsf] {
    margin-top: 0.25rem;
}

.hosting-mandated-platform [data-testid="hosting-platform-freetext"][b-0i0qz3igsf] {
    border-top: 1px solid var(--bs-border-color);
    padding-top: 1rem;
}
/* /Components/Hosting/NeedsInventoryEditor.razor.rz.scp.css */
.hosting-needs-inventory .hosting-needs-group-heading[b-h2j5hw1esz] {
    letter-spacing: 0.01em;
}

.hosting-needs-inventory .hosting-need-area[b-h2j5hw1esz] {
    scroll-margin-top: 1rem;
}

.hosting-needs-inventory .hosting-need-evidence[b-h2j5hw1esz] {
    color: var(--bs-secondary-color);
}

.hosting-needs-inventory .hosting-evidence-chip[b-h2j5hw1esz] {
    font-family: var(--bs-font-monospace);
    font-size: 0.75rem;
}

.hosting-needs-inventory .hosting-needs-taxonomy[b-h2j5hw1esz] {
    background: var(--bs-tertiary-bg);
}
/* /Components/Hosting/PlatformDeclarationDiff.razor.rz.scp.css */
.platform-declaration-diff__area[b-s9jyzm4wgc] {
    display: grid;
    gap: 0.5rem;
}
/* /Components/Hosting/PlatformLockGrid.razor.rz.scp.css */
.hosting-platform-lock-grid[b-ij0n728wpy] {
    max-width: 52rem;
}

.hosting-platform-lock-grid fieldset[b-ij0n728wpy] {
    border: 0;
    padding: 0;
    margin: 0;
}

.hosting-platform-lock-grid legend[b-ij0n728wpy] {
    float: none;
    width: auto;
}

.hosting-platform-lock-grid code[b-ij0n728wpy] {
    font-size: 0.75rem;
}

.hosting-platform-lock-grid .form-check[b-ij0n728wpy] {
    margin-bottom: 0.35rem;
}
/* /Components/Hosting/ProjectOverviewSteps.razor.rz.scp.css */
.ov-steps[b-2ednu10rny] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.ov-step[b-2ednu10rny] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: var(--space-3);
    align-items: start;
    padding: var(--space-3);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
}

.ov-step.is-next[b-2ednu10rny] {
    border-color: color-mix(in srgb, var(--color-accent) 45%, var(--color-border));
    background: color-mix(in srgb, var(--color-accent) 8%, transparent);
}

.ov-m[b-2ednu10rny] {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    background: var(--color-surface-muted);
    color: var(--color-text-muted);
}

.ov-m.done[b-2ednu10rny] {
    background: color-mix(in srgb, var(--color-success) 18%, transparent);
    color: var(--color-success);
}

.ov-m.next[b-2ednu10rny] {
    background: color-mix(in srgb, var(--color-accent) 18%, transparent);
    color: var(--color-accent);
}

.ov-b[b-2ednu10rny] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.ov-t[b-2ednu10rny] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.ov-d[b-2ednu10rny] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.step-acts[b-2ednu10rny] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.form-help[b-2ednu10rny] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /Components/Hosting/ResearchPhasePanel.razor.rz.scp.css */
.research-progress[b-jysuto63t3] {
    height: 0.5rem;
}
/* /Components/Hosting/SelfHostingEffortPanel.razor.rz.scp.css */
.self-hosting-effort[b-h3qr1579u2] {
    margin-top: var(--space-3, 0.75rem);
    padding: var(--space-3, 0.75rem);
    border-radius: var(--radius-md, 0.5rem);
    border: 1px solid var(--color-warning-border, #f0c36d);
    background: var(--color-warning-bg, #fff8e8);
    color: var(--color-text, inherit);
}

.self-hosting-effort-title[b-h3qr1579u2] {
    font-weight: 600;
    margin-bottom: var(--space-2, 0.5rem);
}

.self-hosting-effort-list[b-h3qr1579u2] {
    margin: 0 0 var(--space-2, 0.5rem);
    padding-left: 1.25rem;
}

.self-hosting-effort-note[b-h3qr1579u2] {
    margin: 0;
    font-size: var(--fs-sm, 0.875rem);
    color: var(--color-warning-text, #8a5a00);
}
/* /Components/Hosting/SettledAreasPanel.razor.rz.scp.css */
.settled-areas-panel[b-yduklh3ggj] {
    margin-bottom: var(--space-4, 1rem);
    padding: var(--space-3, 0.75rem);
    border-radius: var(--radius-md, 0.5rem);
    border: 1px solid var(--color-info-border, #9ec5fe);
    background: var(--color-info-bg, #eef5ff);
}

.settled-areas-heading[b-yduklh3ggj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-2, 0.5rem);
}

.settled-areas-title[b-yduklh3ggj] {
    font-weight: 600;
}

.settled-area-line[b-yduklh3ggj] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.35rem 0;
    border-top: 1px solid color-mix(in srgb, var(--color-info-border, #9ec5fe) 50%, transparent);
}

.settled-area-name[b-yduklh3ggj] {
    font-weight: 600;
}

.settled-area-value[b-yduklh3ggj] {
    color: var(--color-text-secondary, #5c6570);
    font-size: var(--fs-sm, 0.875rem);
}
/* /Components/Hosting/SetupChecklist.razor.rz.scp.css */
.setup-checklist__item[b-q9xc9m5kle] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3);
    background: var(--color-surface);
}

.setup-checklist__row[b-q9xc9m5kle] {
    display: flex;
    gap: var(--space-3);
    justify-content: space-between;
    align-items: flex-start;
}

.setup-checklist__title[b-q9xc9m5kle] {
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.setup-checklist__detail[b-q9xc9m5kle] {
    margin-top: var(--space-1);
}

.setup-checklist__select[b-q9xc9m5kle] {
    cursor: pointer;
    min-width: 0;
    flex: 1;
}

.setup-checklist__linked[b-q9xc9m5kle] {
    min-width: 0;
    flex: 1;
}

.setup-checklist__ticket-link[b-q9xc9m5kle] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: var(--fs-sm);
}

.setup-checklist__actions[b-q9xc9m5kle] {
    position: sticky;
    bottom: 0;
    padding: var(--space-3) 0;
    background: linear-gradient(to top, var(--color-bg, var(--color-surface)) 70%, transparent);
}
/* /Components/Hosting/SupersededRecommendation.razor.rz.scp.css */
.superseded-recommendation[b-pq5062d1bw] {
    display: grid;
    gap: 0.5rem;
    padding: 0.75rem;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.375rem;
}

.superseded-recommendation__was[b-pq5062d1bw],
.superseded-recommendation__now[b-pq5062d1bw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: baseline;
}

.superseded-recommendation .label[b-pq5062d1bw] {
    font-weight: 600;
    min-width: 2.5rem;
}

.superseded-recommendation .is-struck[b-pq5062d1bw] {
    text-decoration: line-through;
    opacity: 0.75;
}
/* /Components/Landing/DemoSection.razor.rz.scp.css */
/* Workflow demo section — mockup .section.alt
   (06-developer-dark-dual/styles.css:1105-1126). Token-only.

   Epic 17 M2 note: the previous fake-IDE / VS-Code syntax-highlight
   palette was intentionally retired. The workflow illustration is now
   the shared token-driven LandingWorkflowArt console panel; this file
   only owns the section frame + centered CTA spacing. */

.section.alt[b-8ftm452ckh] {
    background: var(--color-bg-sunken);
}

.section.alt > .inner[b-8ftm452ckh] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

.section-title[b-8ftm452ckh] {
    text-align: center;
    margin-bottom: var(--space-7);
}

.section-title .kicker[b-8ftm452ckh] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-accent-text);
    display: block;
    margin-bottom: var(--space-2);
}

.section-title h2[b-8ftm452ckh] {
    font-size: 30px;
    letter-spacing: -0.02em;
}

.section-title p[b-8ftm452ckh] {
    color: var(--color-text-muted);
    font-size: var(--fs-body);
    margin-top: var(--space-2);
}

.demo-cta[b-8ftm452ckh] {
    text-align: center;
    margin-top: 32px;
}
/* /Components/Landing/LandingAgentTeamArt.razor.rz.scp.css */
/* LandingAgentTeamArt — the public agent-team art.
   Facit: mockups/landing.html:258-265 (window frame) and :300-381 (team art);
   mockups/landing.html:503-504 for the 640px column drop.
   Canonical tokens only, no colour literals, no images.

   Exactly one keyframe exists, and only the running dot and the live beacon use it —
   the state legend calls running "the only element that animates" (landing.html:785),
   and every settled pill switches the beacon off. */

/* ---------------------------------------------------------------- window frame */

.hero-art[b-msb9wdi05j] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.hero-art .bar[b-msb9wdi05j] {
    height: 30px;
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 var(--space-3);
}

.hero-art .bar i[b-msb9wdi05j] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-border-strong);
    display: block;
}

.bar-title[b-msb9wdi05j] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--color-text-muted);
}

/* The chrome-less renderings (the three getting-started first-run rows) keep the same
   markup path but must add no box of their own, so their shells are layout-transparent.
   The rows wrapper is transparent in every un-railed rendering, which is what lets the
   flat rows inherit the team body's own column gap exactly as the facit draws them. */
.art-shell.is-bare[b-msb9wdi05j],
.team-art.is-bare[b-msb9wdi05j],
.rows[b-msb9wdi05j] {
    display: contents;
}

/* ------------------------------------------------------------------- team body */

.team-art[b-msb9wdi05j] {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.team-strip[b-msb9wdi05j] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-divider);
}

.team-strip .m[b-msb9wdi05j] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.team-strip .m-l[b-msb9wdi05j] {
    font-size: var(--fs-micro);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-faint);
}

.team-strip .m-v[b-msb9wdi05j] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
}

/* ------------------------------------------------------------------ status pill */

.live-pill[b-msb9wdi05j] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    padding: 2px 8px;
    border-radius: var(--radius-pill);
    background: var(--color-success-soft);
    border: 1px solid var(--color-success-line);
    color: var(--color-success-text);
    letter-spacing: var(--tracking-label);
}

.live-pill.is-idle[b-msb9wdi05j] {
    background: var(--color-neutral-soft);
    border-color: var(--color-neutral-line);
    color: var(--color-text-muted);
}

.live-pill.is-waiting[b-msb9wdi05j] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

/* ALL DONE keeps the success palette — the run succeeded. It is told apart from TEAM
   LIVE by a beacon that holds still and by a body with no running dot and no tails. */
.live-pill.is-done[b-msb9wdi05j] {
    background: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.beacon[b-msb9wdi05j] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    animation: beacon-b-msb9wdi05j 1.6s var(--ease) infinite;
}

.live-pill.is-idle .beacon[b-msb9wdi05j],
.live-pill.is-waiting .beacon[b-msb9wdi05j],
.live-pill.is-done .beacon[b-msb9wdi05j] {
    animation: none;
}

@keyframes beacon-b-msb9wdi05j {
    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: .35;
    }
}

/* -------------------------------------------------------------------- state dot */

.state-dot[b-msb9wdi05j] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: none;
    margin-top: 5px;
    box-shadow: 0 0 0 3px transparent;
}

.state-dot.running[b-msb9wdi05j] {
    background: var(--color-success);
    box-shadow: 0 0 0 3px var(--color-success-soft);
    animation: beacon-b-msb9wdi05j 1.6s var(--ease) infinite;
}

.state-dot.waiting[b-msb9wdi05j] {
    background: var(--color-warning);
    box-shadow: 0 0 0 3px var(--color-warning-soft);
}

.state-dot.idle[b-msb9wdi05j] {
    background: transparent;
    border: 2px solid var(--color-info);
}

.state-dot.done[b-msb9wdi05j] {
    background: var(--color-text-faint);
}

.state-dot.queued[b-msb9wdi05j] {
    background: transparent;
    border: 2px dashed var(--color-info);
}

/* ------------------------------------------------------------------- lead card */

.lead-card[b-msb9wdi05j] {
    border: 1px solid var(--color-border-strong);
    border-left: 3px solid var(--color-accent);
    border-radius: var(--radius-md);
    background: var(--color-surface-2);
    padding: var(--space-3);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--space-2) var(--space-3);
    align-items: start;
}

/* The lead keeps its accent stripe once the run is over — it is the element that says
   "a lead agent ran this team" — but dims to the same settled register as its children. */
.lead-card.settled[b-msb9wdi05j] {
    background: transparent;
    opacity: .82;
}

.node-identity[b-msb9wdi05j] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    min-width: 0;
}

.node-name[b-msb9wdi05j] {
    font-weight: var(--fw-semibold);
    font-size: var(--fs-h3);
    color: var(--color-text);
    letter-spacing: -0.01em;
}

.node-role[b-msb9wdi05j] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.node-activity[b-msb9wdi05j] {
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
}

.node-meta[b-msb9wdi05j] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

/* ------------------------------------------------------ connector rail and rows */

.children[b-msb9wdi05j] {
    position: relative;
    margin: var(--space-2) 0 0 var(--space-4);
    padding-left: var(--space-5);
}

.children[b-msb9wdi05j]::before {
    content: "";
    position: absolute;
    left: 0;
    top: calc(var(--space-2) * -1);
    bottom: 22px;
    width: 1px;
    background: var(--color-border-strong);
}

.agent-node[b-msb9wdi05j] {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--space-1) var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    margin-bottom: 6px;
}

/* Scoped to rail rows: the stub is what joins a child to its lead, so a flat rendering
   (not started, waiting on you, a bare first-run row) must not draw one pointing at
   nothing. The prototype leaves it on every row and relies on the frame clipping it. */
.children > .agent-node[b-msb9wdi05j]::before {
    content: "";
    position: absolute;
    left: calc(var(--space-5) * -1);
    top: 22px;
    width: var(--space-5);
    height: 1px;
    background: var(--color-border-strong);
}

.agent-node .line-1[b-msb9wdi05j] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    min-width: 0;
}

/* The output tail is the one place the art truncates: one line, bounded by the row, so
   a long log line can never widen the card. Identity and profile always wrap instead. */
.agent-node .tail[b-msb9wdi05j] {
    grid-column: 2;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.agent-node .right[b-msb9wdi05j] {
    grid-row: 1 / 3;
    grid-column: 3;
    display: flex;
    align-items: center;
}

.timing[b-msb9wdi05j] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    text-align: right;
}

.timing b[b-msb9wdi05j] {
    color: var(--color-text-secondary);
    font-weight: var(--fw-medium);
}

.timing .micro[b-msb9wdi05j] {
    font-size: var(--fs-micro);
}

.agent-node.settled[b-msb9wdi05j] {
    padding: 6px var(--space-3);
    background: transparent;
    opacity: .72;
}

.agent-node.settled .node-name[b-msb9wdi05j] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
}

.agent-node.deferred[b-msb9wdi05j] {
    border-style: dashed;
    border-color: var(--color-info-line);
    background: transparent;
}

.group-label[b-msb9wdi05j] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-3) 0 var(--space-2);
    font-size: var(--fs-micro);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-faint);
}

.group-label[b-msb9wdi05j]::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--color-divider);
}

/* ------------------------------------------------------------------ responsive */

/* Below the mobile breakpoint the timing column drops under the identity line rather
   than squeezing it, so a wrapped three-axis profile keeps its full width. */
@media (max-width: 640px) {
    .agent-node[b-msb9wdi05j] {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .agent-node .right[b-msb9wdi05j] {
        grid-row: auto;
        grid-column: 2;
        justify-content: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .beacon[b-msb9wdi05j],
    .state-dot.running[b-msb9wdi05j] {
        animation: none;
    }
}
/* /Components/Landing/LandingEpicPlanArt.razor.rz.scp.css */
/* LandingEpicPlanArt — facit mockups/landing.html:383-431 (structure) and
   :505-506 (responsive). Token-only, both modes.

   The window chrome below is deliberately re-declared rather than shared:
   CSS isolation scopes every selector to its own component, so the family's
   .hero-art / .bar chrome cannot be inherited from LandingWorkflowArt. The
   values are identical to LandingWorkflowArt.razor.css:4-42.

   Badges and uppercase micro captions are NOT styled here — they come from
   UI/Display/Badge and UI/Display/MicroLabel (B3). The decision round's two
   action labels ARE styled here, deliberately: they are inert art rather than
   controls (D-O15), so they must not be UI/Buttons/Button, and drawing them
   from the same tokens keeps the picture honest without shipping a focusable
   element that cannot fire. No flex-grow declaration lives in this file
   either; the two filler elements use the flex-grow-1 utility in markup (C3). */

.hero-art[b-1x3hvrm8gv] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.bar[b-1x3hvrm8gv] {
    height: 30px;
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 var(--space-3);
}

.bar i[b-1x3hvrm8gv] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-border-strong);
    display: block;
}

.bar-title[b-1x3hvrm8gv] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--color-text-muted);
}

/* The three parts, in the order the markup fixes them. */
.plan-art[b-1x3hvrm8gv] {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

/* ---- 1. Composition meter ------------------------------------------- */

.coverage[b-1x3hvrm8gv] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.cov[b-1x3hvrm8gv] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.cov-bar[b-1x3hvrm8gv] {
    min-width: 160px;
    height: 6px;
    border-radius: var(--radius-pill);
    overflow: hidden;
    display: flex;
    background: var(--color-surface-3);
}

/* One unit per criterion, each an equal share of the track. The proportions
   are the unit counts, so the meter carries no computed width and no inline
   style (C5); adjacent units of the same kind share a colour and read as one
   continuous segment. flex-basis 0 is what makes the shares equal — auto would
   size them by content, and they have none. */
.cov-seg[b-1x3hvrm8gv] {
    flex: 1 1 0;
    min-width: 0;
}

.cov-seg.sole[b-1x3hvrm8gv] {
    background: var(--color-success);
}

.cov-seg.split[b-1x3hvrm8gv] {
    background: var(--color-info);
}

.cov-seg.open[b-1x3hvrm8gv] {
    background: var(--color-warning);
}

.cov-fig[b-1x3hvrm8gv] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
}

.cov-key[b-1x3hvrm8gv] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    font-family: var(--font-mono);
}

.cov-k[b-1x3hvrm8gv] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* Swatch tying each figure to its segment colour. */
.sw[b-1x3hvrm8gv] {
    width: 9px;
    height: 9px;
    border-radius: 2px;
    display: inline-block;
}

.sw.sole[b-1x3hvrm8gv] {
    background: var(--color-success);
}

.sw.split[b-1x3hvrm8gv] {
    background: var(--color-info);
}

.sw.open[b-1x3hvrm8gv] {
    background: var(--color-warning);
}

/* The arithmetic that keeps the meter readable as composition, not progress. */
.cov-sum b[b-1x3hvrm8gv] {
    color: var(--color-text-secondary);
    font-weight: var(--fw-semibold);
}

/* ---- 2. Wave groups -------------------------------------------------- */

.wave[b-1x3hvrm8gv] {
    margin-bottom: var(--space-3);
}

.wave-hd[b-1x3hvrm8gv] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
}

.wave-hd .rule[b-1x3hvrm8gv] {
    height: 1px;
    background: var(--color-divider);
}

.slice-grid[b-1x3hvrm8gv] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(228px, 1fr));
    gap: var(--space-2);
}

.slice[b-1x3hvrm8gv] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    padding: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.slice-top[b-1x3hvrm8gv] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.slice-id[b-1x3hvrm8gv] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
    font-weight: var(--fw-semibold);
}

.slice-title[b-1x3hvrm8gv] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    line-height: var(--lh-snug);
    /* A long title wraps in full — never truncated, never a scrollbar. */
    overflow-wrap: anywhere;
}

.slice-foot[b-1x3hvrm8gv] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

/* The four states. Dependency waiting stays solid with an inset rail;
   decision blocking is dashed amber — the two block causes must never read
   alike, in either mode. */
.slice.done[b-1x3hvrm8gv] {
    opacity: 0.62;
}

.slice.buildable[b-1x3hvrm8gv] {
    border-color: var(--color-accent-line);
    box-shadow: var(--glow-accent);
}

.slice.waiting[b-1x3hvrm8gv] {
    box-shadow: inset 3px 0 0 var(--color-text-faint);
}

.slice.blocked[b-1x3hvrm8gv] {
    border-style: dashed;
    border-color: var(--color-warning-line);
    box-shadow: inset 3px 0 0 var(--color-warning);
}

.dot[b-1x3hvrm8gv] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
}

.dot.done[b-1x3hvrm8gv] {
    background: var(--color-success);
}

.dot.run[b-1x3hvrm8gv] {
    background: var(--color-accent);
    box-shadow: 0 0 0 3px var(--color-accent-soft);
}

.dot.wait[b-1x3hvrm8gv] {
    background: var(--color-text-faint);
}

.dot.block[b-1x3hvrm8gv] {
    background: var(--color-warning);
}

/* ---- 3. Decision round ------------------------------------------------ */

.dec[b-1x3hvrm8gv] {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    gap: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    padding: var(--space-3);
    align-items: center;
}

.dec-rank[b-1x3hvrm8gv] {
    text-align: center;
}

.dec-blocks[b-1x3hvrm8gv] {
    font-family: var(--font-mono);
    font-size: var(--fs-h2);
    font-weight: var(--fw-bold);
    color: var(--color-warning-text);
    display: block;
}

.dec-q[b-1x3hvrm8gv] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    margin-bottom: 4px;
    overflow-wrap: anywhere;
}

.dec-meta[b-1x3hvrm8gv] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.dec-act[b-1x3hvrm8gv] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* The two action labels of the decision round. Non-interactive by design: this
   is a picture of the product's decision surface, so there is nothing to click
   and nothing for the keyboard to reach. Drawn from the same tokens as
   UI/Buttons/Button at its sm tier, minus every interactive affordance — no
   cursor: pointer, no hover, no focus ring — so it never reads as a control
   somebody failed to wire. */
.dec-action[b-1x3hvrm8gv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--control-h-sm);
    padding: 0 var(--space-3);
    gap: 7px;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    white-space: nowrap;
}

.dec-action-lead[b-1x3hvrm8gv] {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
    font-weight: var(--fw-semibold);
}

.dec-action-alt[b-1x3hvrm8gv] {
    background-color: var(--color-surface-2);
    border-color: var(--color-border);
    color: var(--color-text);
}

/* ---- Responsive ------------------------------------------------------- */

@media (max-width: 640px) {
    .dec[b-1x3hvrm8gv] {
        grid-template-columns: 1fr;
    }

    .dec-act[b-1x3hvrm8gv] {
        flex-direction: row;
    }
}
/* /Components/Landing/LandingFeatureCard.razor.rz.scp.css */
/* mockup .feat (06-developer-dark-dual/styles.css:1145-1154). Token-only. */

.feat[b-9uqlyq0egh] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    box-shadow: var(--shadow-sm);
}

.feat .fic[b-9uqlyq0egh] {
    font-size: 18px;
    color: var(--color-accent);
    margin-bottom: var(--space-3);
    display: block;
}

.feat h3[b-9uqlyq0egh] {
    font-size: var(--fs-h3);
    margin-bottom: 6px;
}

.feat p[b-9uqlyq0egh] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    line-height: var(--lh-normal);
}

.feat-link[b-9uqlyq0egh] {
    display: block;
    color: inherit;
    text-decoration: none;
}

.feat-link:hover[b-9uqlyq0egh] {
    border-color: var(--color-accent-line);
}

.feat-link:focus-visible[b-9uqlyq0egh] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.feat .feat-more[b-9uqlyq0egh] {
    display: inline-block;
    margin-top: var(--space-3);
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
}
/* /Components/Landing/LandingProcessArt.razor.rz.scp.css */
/* LandingProcessArt — the process editor drawn as a picture. Token-only, both
   modes.

   The window chrome is deliberately re-declared rather than shared: CSS
   isolation scopes every selector to its own component, so the family's
   .hero-art / .bar chrome cannot be inherited from LandingEpicPlanArt. The
   values are identical to LandingEpicPlanArt.razor.css:17-48.

   Badges and uppercase micro captions are NOT styled here — they come from
   UI/Display/Badge and UI/Display/MicroLabel (B3). The field values and the two
   checkbox rows ARE styled here, deliberately: they are inert art rather than
   controls, so they must not be UI/Forms primitives, and drawing them from the
   same tokens keeps the picture honest without shipping focusable elements that
   cannot fire. No flex-grow declaration lives in this file either; the two
   filler rules use the flex-grow-1 utility in markup (C3). */

.hero-art[b-urs9uy7uzk] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.bar[b-urs9uy7uzk] {
    height: 30px;
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 var(--space-3);
}

.bar i[b-urs9uy7uzk] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-border-strong);
    display: block;
}

.bar-title[b-urs9uy7uzk] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--color-text-muted);
}

/* ---- Two-column body -------------------------------------------------- */

.proc-art[b-urs9uy7uzk] {
    padding: var(--space-4);
}

.proc-cols[b-urs9uy7uzk] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: var(--space-4);
    align-items: start;
}

.proc-left[b-urs9uy7uzk] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-width: 0;
}

/* Every panel of the editor shares one frame. */
.pane[b-urs9uy7uzk] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    padding: var(--space-3);
    min-width: 0;
}

.pane-hd[b-urs9uy7uzk] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
}

.pane-hd .rule[b-urs9uy7uzk] {
    height: 1px;
    background: var(--color-divider);
}

/* ---- Step list --------------------------------------------------------- */

.step-list[b-urs9uy7uzk] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.step[b-urs9uy7uzk] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: var(--space-2) var(--space-3);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* The row the detail pane is showing. The editor rail, not a hover state:
   nothing here responds to a pointer. */
.step.sel[b-urs9uy7uzk] {
    border-color: var(--color-accent-line);
    background: var(--color-accent-soft);
    box-shadow: inset 3px 0 0 var(--color-accent);
}

.step.idle[b-urs9uy7uzk] {
    background: var(--color-surface-2);
}

.step-top[b-urs9uy7uzk] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.step-ord[b-urs9uy7uzk] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    font-weight: var(--fw-bold);
    color: var(--color-accent-text);
}

.step-name[b-urs9uy7uzk] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    overflow-wrap: anywhere;
}

.step-key[b-urs9uy7uzk] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.step-meta[b-urs9uy7uzk] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-secondary);
    overflow-wrap: anywhere;
}

/* ---- Repository bindings ---------------------------------------------- */

.repo[b-urs9uy7uzk] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.repo-name[b-urs9uy7uzk] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text);
}

/* ---- Detail pane ------------------------------------------------------- */

.detail[b-urs9uy7uzk] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.detail-hd[b-urs9uy7uzk] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.detail-title[b-urs9uy7uzk] {
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    margin-bottom: 0;
}

.fields[b-urs9uy7uzk] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2);
}

.field[b-urs9uy7uzk] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

/* Drawn from the same tokens as UI/Forms' text input, minus every interactive
   affordance: no focus ring, no cursor, no tab stop. It is a picture of a
   filled field, not a field. */
.field-val[b-urs9uy7uzk] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-2);
    padding: 5px var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text);
    overflow-wrap: anywhere;
}

.field-val.mono[b-urs9uy7uzk] {
    font-family: var(--font-mono);
}

.field-val.plain[b-urs9uy7uzk] {
    font-family: var(--font-sans);
}

.checks[b-urs9uy7uzk] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.check[b-urs9uy7uzk] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.check-label[b-urs9uy7uzk] {
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
}

/* Same reasoning as .field-val: the box is a drawing of a checkbox, so it has
   no input element behind it and nothing focusable in front of it. */
.box[b-urs9uy7uzk] {
    width: 13px;
    height: 13px;
    border: 1px solid var(--color-border-strong);
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
}

.box.off[b-urs9uy7uzk] {
    background: var(--color-surface-2);
}

.box.on[b-urs9uy7uzk] {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.box.on[b-urs9uy7uzk]::after {
    content: "\2713";
    color: var(--color-text-on-accent);
    font-size: 10px;
    line-height: 1;
}

/* ---- Outcomes ---------------------------------------------------------- */

.outcomes[b-urs9uy7uzk] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.outcome[b-urs9uy7uzk] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    flex-wrap: wrap;
}

.oc-name[b-urs9uy7uzk] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.oc-arrow[b-urs9uy7uzk] {
    color: var(--color-text-faint);
}

.oc-target[b-urs9uy7uzk] {
    color: var(--color-accent-text);
}

/* ---- Prompt bodies ----------------------------------------------------- */

.prompt[b-urs9uy7uzk] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.prompt-line[b-urs9uy7uzk] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    line-height: var(--lh-snug);
    color: var(--color-text-secondary);
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 6px var(--space-2);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

/* ---- Responsive -------------------------------------------------------- */

@media (max-width: 900px) {
    .proc-cols[b-urs9uy7uzk] {
        grid-template-columns: minmax(0, 1fr);
    }

    .fields[b-urs9uy7uzk] {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* /Components/Landing/LandingStepCard.razor.rz.scp.css */
/* mockup .step3 (06-developer-dark-dual/styles.css:1129-1142). Token-only. */

.step3[b-s36iy11ts6] {
    text-align: center;
    padding: var(--space-5);
}

.step3 .ic[b-s36iy11ts6] {
    width: 46px;
    height: 46px;
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    display: grid;
    place-items: center;
    margin: 0 auto var(--space-4);
    font-size: 20px;
    color: var(--color-accent);
}

.step3 h3[b-s36iy11ts6] {
    font-size: var(--fs-h3);
    margin-bottom: 6px;
}

.step3 h3 .n[b-s36iy11ts6] {
    font-family: var(--font-mono);
    color: var(--color-text-muted);
    margin-right: 6px;
}

.step3 p[b-s36iy11ts6] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}
/* /Components/Landing/LandingWorkflowArt.razor.rz.scp.css */
/* mockup .hero-art / .bar / .body / .flow-step
   (06-developer-dark-dual/styles.css:1077-1103). Token-only. */

.hero-art[b-kbz0mb1hs9] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.hero-art.is-console[b-kbz0mb1hs9] {
    max-width: 760px;
    margin: 0 auto;
}

.bar[b-kbz0mb1hs9] {
    height: 30px;
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 var(--space-3);
}

.bar i[b-kbz0mb1hs9] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-border-strong);
    display: block;
}

.bar-title[b-kbz0mb1hs9] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--color-text-muted);
}

.body[b-kbz0mb1hs9] {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.console-body[b-kbz0mb1hs9] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.flow-col[b-kbz0mb1hs9] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.flow-step[b-kbz0mb1hs9] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    padding: 10px var(--space-3);
    font-size: var(--fs-xs);
}

.flow-step .k[b-kbz0mb1hs9] {
    width: 22px;
    height: 22px;
    border-radius: var(--radius-xs);
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
}

.flow-step.ok .k[b-kbz0mb1hs9] {
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
    border: 1px solid var(--color-accent-line);
}

.flow-step.running .k[b-kbz0mb1hs9] {
    background: var(--color-surface-3);
    color: var(--color-text-muted);
}

.flow-step .nm[b-kbz0mb1hs9] {
    color: var(--color-text);
}

.flow-step.running .nm[b-kbz0mb1hs9] {
    color: var(--color-text-muted);
}

.flow-step .st[b-kbz0mb1hs9] {
    margin-left: auto;
    font-family: var(--font-mono);
    color: var(--color-text-muted);
}

.flow-step.running .st[b-kbz0mb1hs9] {
    color: var(--color-accent-text);
}

.console[b-kbz0mb1hs9] {
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    padding: 12px;
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.7;
    color: var(--color-text-muted);
}

.console .prompt[b-kbz0mb1hs9] {
    color: var(--color-accent-text);
}

.console .ok-line[b-kbz0mb1hs9] {
    color: var(--color-success-text);
}

.console .accent-line[b-kbz0mb1hs9] {
    color: var(--color-accent-text);
}

.console .faint-line[b-kbz0mb1hs9] {
    color: var(--color-text-faint);
}

@media (max-width: 768px) {
    .console-body[b-kbz0mb1hs9] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Landing/UseCaseTemplate.razor.rz.scp.css */
/* Epic 50 use-case template — facit
   docs/planning/epic_50_public_discoverability/mockups/use-case-agent-teams.html
   (:550 hero-cta, :555-556 section, :566-571 cta-band, :585-591 window chrome,
   :638-645 prose, :671-674 related, :677-699 and :702-736 template and responsive).
   Token-only, correct in dark and light. Page-authored answer content carries the page's
   scope, so its rules reach it through ::deep. */

/* === Hero === */
.uc-hero[b-o84o5cfw9x] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-8) var(--space-7) var(--space-6);
}

.uc-hero .crumb[b-o84o5cfw9x] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    margin-bottom: var(--space-4);
    display: block;
}

.uc-hero h1[b-o84o5cfw9x] {
    font-size: 38px;
    letter-spacing: -0.02em;
    max-width: 820px;
    margin-bottom: var(--space-3);
}

.uc-hero p[b-o84o5cfw9x] {
    color: var(--color-text-secondary);
    font-size: 15px;
    max-width: 700px;
    line-height: var(--lh-normal);
    margin: 0;
}

.hero-cta[b-o84o5cfw9x] {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
    flex-wrap: wrap;
}

.uc-hero .hero-cta[b-o84o5cfw9x] {
    margin: var(--space-5) 0 0;
}

/* === Section shells === */
.section[b-o84o5cfw9x] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

.section.tight[b-o84o5cfw9x] {
    padding-top: var(--space-6);
    padding-bottom: var(--space-6);
}

/* === Problem and answer === */
.prose[b-o84o5cfw9x] {
    max-width: 760px;
    margin: 0 auto;
}

.prose p[b-o84o5cfw9x],
.uc-answer[b-o84o5cfw9x]  p {
    color: var(--color-text-secondary);
    font-size: 14.5px;
    line-height: var(--lh-normal);
    margin: 0 0 var(--space-3);
}

.uc-problem[b-o84o5cfw9x] {
    border-left: 3px solid var(--color-border-strong);
    padding-left: var(--space-4);
    margin-bottom: var(--space-5);
}

.uc-problem .k[b-o84o5cfw9x],
.uc-answer .k[b-o84o5cfw9x] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-faint);
    display: block;
    margin-bottom: 4px;
}

.uc-answer .k[b-o84o5cfw9x] {
    color: var(--color-accent-text);
}

.uc-answer[b-o84o5cfw9x]  .mono {
    font-family: var(--font-mono);
    font-size: inherit;
}

.uc-answer[b-o84o5cfw9x]  ul.bul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.uc-answer[b-o84o5cfw9x]  ul.bul li {
    position: relative;
    padding-left: var(--space-5);
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    margin-bottom: var(--space-2);
    line-height: var(--lh-snug);
}

.uc-answer[b-o84o5cfw9x]  ul.bul li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--color-success-text);
}

.uc-answer[b-o84o5cfw9x]  ul.bul li b {
    color: var(--color-text);
}

/* === Visual window === */
.hero-art[b-o84o5cfw9x] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.hero-art .bar[b-o84o5cfw9x] {
    height: 30px;
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 var(--space-3);
}

.hero-art .bar i[b-o84o5cfw9x] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-border-strong);
    display: block;
}

.bar-title[b-o84o5cfw9x] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--color-text-muted);
}

.hero-art .body[b-o84o5cfw9x] {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/* === Closing call to action === */
.cta-band[b-o84o5cfw9x] {
    text-align: center;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    max-width: var(--content-max);
    margin: 0 auto var(--space-9);
    box-shadow: var(--shadow-sm);
}

.cta-band h2[b-o84o5cfw9x] {
    font-size: 28px;
    margin-bottom: var(--space-3);
    letter-spacing: -0.02em;
}

.cta-band p[b-o84o5cfw9x] {
    color: var(--color-text-muted);
    margin-bottom: var(--space-5);
}

.cta-band .hero-cta[b-o84o5cfw9x] {
    justify-content: center;
    margin-bottom: 0;
}

/* === Related strip === */
.related[b-o84o5cfw9x] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 var(--space-7) var(--space-7);
}

.related a[b-o84o5cfw9x] {
    display: block;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    background: var(--color-surface-1);
}

.related .rl-k[b-o84o5cfw9x] {
    display: block;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-faint);
}

.related .rl-t[b-o84o5cfw9x] {
    display: block;
    color: var(--color-text);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    margin-top: 2px;
}

/* === Responsive === */
@media (max-width: 991px) {
    .section[b-o84o5cfw9x],
    .related[b-o84o5cfw9x],
    .uc-hero[b-o84o5cfw9x] {
        padding-left: var(--space-5);
        padding-right: var(--space-5);
    }

    .related[b-o84o5cfw9x] {
        grid-template-columns: 1fr;
    }

    .uc-hero h1[b-o84o5cfw9x] {
        font-size: 30px;
    }
}

@media (max-width: 640px) {
    .uc-hero h1[b-o84o5cfw9x] {
        font-size: 26px;
    }

    .section[b-o84o5cfw9x] {
        padding-top: var(--space-7);
        padding-bottom: var(--space-7);
    }

    .cta-band[b-o84o5cfw9x] {
        padding: var(--space-6) var(--space-4);
        margin-left: var(--space-4);
        margin-right: var(--space-4);
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* MainLayout — app shell, mockup 06-developer-dark-dual.
   Token-only, both modes. Visual-only port. */

.app[b-rn8bv9zlcg] {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
    background-color: var(--color-bg-base);
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
}

.page[b-rn8bv9zlcg] {
    min-width: 0;
    max-width: 100%;
}

.sidebar[b-rn8bv9zlcg] {
    background-color: var(--color-sidebar-bg);
    border-right: 1px solid var(--color-border-soft);
    display: flex;
    flex-direction: column;
}

.main[b-rn8bv9zlcg] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

main[b-rn8bv9zlcg] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Topbar — mockup .topbar: right-aligned, hairline, sticky, subtle blur. */
.topbar[b-rn8bv9zlcg] {
    height: var(--topbar-h);
    border-bottom: 1px solid var(--color-border-soft);
    background-color: color-mix(in srgb, var(--color-bg-base) 88%, transparent);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-4);
    padding: 0 var(--space-4);
}

.topbar[b-rn8bv9zlcg]  a,
.topbar[b-rn8bv9zlcg]  .btn-link {
    white-space: nowrap;
    margin-left: var(--space-4);
    text-decoration: none;
    font-size: var(--fs-sm);
}

.topbar[b-rn8bv9zlcg]  a:not(.btn-prf),
.topbar[b-rn8bv9zlcg]  .btn-link {
    color: var(--color-text-secondary);
}

.topbar[b-rn8bv9zlcg]  a:not(.btn-prf):hover,
.topbar[b-rn8bv9zlcg]  .btn-link:hover {
    color: var(--color-text);
}

.topbar[b-rn8bv9zlcg]  a:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 640.98px) {
    .topbar[b-rn8bv9zlcg] {
        justify-content: space-between;
    }

    .topbar[b-rn8bv9zlcg]  a,
    .topbar[b-rn8bv9zlcg]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-rn8bv9zlcg] {
        flex-direction: row;
    }

    .sidebar[b-rn8bv9zlcg] {
        width: var(--sidebar-w);
        flex-shrink: 0;
        height: 100vh;
        position: sticky;
        top: 0;
        overflow-y: auto;
    }

    .topbar[b-rn8bv9zlcg] {
        position: sticky;
        top: 0;
        z-index: 20;
    }

    .topbar.auth[b-rn8bv9zlcg]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .topbar[b-rn8bv9zlcg],
    article[b-rn8bv9zlcg] {
        padding-left: var(--space-6) !important;
        padding-right: var(--space-6) !important;
    }
}

/* Content — mockup .content: centered, max-width, generous padding.
   min-width:0 keeps wide tables from forcing page-level horizontal scroll. */
.content[b-rn8bv9zlcg] {
    flex: 1;
    padding: var(--space-6) var(--space-4);
    max-width: var(--content-max);
    width: 100%;
    min-width: 0;
    margin: 0 auto;
}

/* Exception text keeps its newlines but still wraps inside the alert. */
.error-detail[b-rn8bv9zlcg] {
    white-space: pre-wrap;
}

.blazor-error-boundary[b-rn8bv9zlcg] {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ni42MDYgNTIuMjY1OEwyODkuMTc4IDc0LjgzNjlDMjg5Ljk2OSA3NS42MjkxIDI5MC40NTMgNzYuNzI0OSAyOTAuNDUzIDc3LjkzNjFDMjkwLjQ1MyA3OS4xNDc0IDI4OS45NjkgODAuMjQzMiAyODkuMTc4IDgxLjAzNTNMMjg5LjE3OCA4MS4wMzUzTDI2Ni42MDYgMTAzLjYwN0MyNjUuODEzIDEwNC4zOTkgMjY0LjcxNyAxMDQuODgzIDI2My41MDYgMTA0Ljg4M0MyNjIuMjk0IDEwNC44ODMgMjYxLjE5OCAxMDQuMzk5IDI2MC40MDYgMTAzLjYwN0wyNjAuNDA2IDEwMy42MDdMMjM3LjgzNSA4MS4wMzUzQzIzNy4wNDMgODAuMjQzMiAyMzYuNTU5IDc5LjE0NzQgMjM2LjU1OSA3Ny45MzYxQzIzNi41NTkgNzYuNzI0OSAyMzcuMDQzIDc1LjYyOTEgMjM3LjgzNSA3NC44MzY5TDIzNy44MzUgNzQuODM2OUwyNjAuNDA2IDUyLjI2NThDMjYxLjE5OCA1MS40ODM3IDI2Mi4yOTQgNTEgMjYzLjUwNiA1MVoiIGZpbGw9IiNGRjgwODAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik0yNjMuNTAzIDY2LjUxMzRMMjUzLjk2MyA3Ni4wNTIzTDI1My45NjcgNzYuMDU2NEMyNTQuOTAyIDc2Ljk5MTYgMjU0LjkwNyA3OC40ODQ0IDI1My45NzcgNzkuNDE0NEMyNTMuMDQ3IDgwLjM0NDQgMjUxLjU1NCA4MC4zNDk2IDI1MC42MTkgNzkuNDE5OEwyNDEuMDc4IDg5Ljk1ODdMMjYzLjUwMyA4OS45NTdMMjg1Ljc4NyA4OS45NTdMMjc2LjI0NiA3OS40MTk1QzI3NS4zMTEgNzguNDg5OCAyNzUuMzE2IDc2Ljk5NjggMjc2LjI0NiA3Ni4wNjY4QzI3Ny4xNzYgNzUuMTM2OCAyNzguNjY5IDc1LjE0MjEgMjc5LjYwNCA3Ni4wNzI0TDI3OS42MDcgNzYuMDY5NUwyNzAuMDY1IDY2LjUyODRMMjYzLjUwMyA2Ni41MTM0Wk0yNjMuNjI5IDY4LjcxMzVMMjY4LjU2OCA3My42NTI4TDI2My41MDMgNzguNzE5MUwyNTguNDM2IDczLjY1MjhMMjYzLjYyOSA2OC43MTM1WiIgZmlsbD0iI0ZGRkZGRiIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

.blazor-error-boundary[b-rn8bv9zlcg]::after {
    content: "An error has occurred.";
}

.skip-navigation[b-rn8bv9zlcg] {
    position: absolute;
    top: -40px;
    left: 0;
    background-color: var(--color-accent);
    color: var(--color-text-on-accent);
    padding: 8px 16px;
    text-decoration: none;
    font-weight: 600;
    z-index: var(--z-index-modal);
    transition: top 0.2s ease-in-out;
}

.skip-navigation:focus[b-rn8bv9zlcg] {
    top: 0;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* NavMenu — sidebar chrome, mockup 06-developer-dark-dual.
   Token-only, both modes. Visual-only port; routes/behaviour unchanged. */

.brand[b-7nw3kqwu0w] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-5) var(--space-4) var(--space-4);
}

.brand-mark[b-7nw3kqwu0w] {
    width: 26px;
    height: 26px;
    border-radius: var(--radius-sm);
    background-color: var(--color-accent);
    display: grid;
    place-items: center;
    color: var(--color-text-on-accent);
    font-weight: var(--fw-bold);
    font-size: 13px;
    box-shadow: var(--glow-accent);
}

.brand-name[b-7nw3kqwu0w] {
    font-weight: var(--fw-semibold);
    font-size: 15px;
    letter-spacing: -0.01em;
    color: var(--color-text);
}

.brand[b-7nw3kqwu0w]  .brand-tag {
    margin-left: auto;
}

/* Shown only below 641px (see the media query at the end), so this is the
   mobile size: a 44px touch target for an icon-only control. */
.nav-toggler[b-7nw3kqwu0w] {
    appearance: none;
    cursor: pointer;
    margin-left: auto;
    width: var(--control-h-lg);
    height: var(--control-h-lg);
    display: grid;
    place-items: center;
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background-color: transparent;
}

.nav-toggler:hover[b-7nw3kqwu0w] {
    background-color: var(--color-surface-2);
    color: var(--color-text);
}

/* CSS-drawn hamburger (no icon-font glyph so the first visible `.bi` on
   the page stays a real nav-item icon — ZeroCdn oracle invariant). */
.nav-toggler-bars[b-7nw3kqwu0w],
.nav-toggler-bars[b-7nw3kqwu0w]::before,
.nav-toggler-bars[b-7nw3kqwu0w]::after {
    display: block;
    width: 16px;
    height: 2px;
    background-color: currentColor;
    border-radius: 2px;
}

.nav-toggler-bars[b-7nw3kqwu0w] {
    position: relative;
}

.nav-toggler-bars[b-7nw3kqwu0w]::before,
.nav-toggler-bars[b-7nw3kqwu0w]::after {
    content: "";
    position: absolute;
    left: 0;
}

.nav-toggler-bars[b-7nw3kqwu0w]::before {
    top: -5px;
}

.nav-toggler-bars[b-7nw3kqwu0w]::after {
    top: 5px;
}

/* Worker liveness pill — mockup .worker-pill container. */
.worker-pill[b-7nw3kqwu0w] {
    margin: 0 var(--space-4) var(--space-3);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    background-color: var(--color-surface-1);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    padding: 6px 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Side search — mockup .side-search; the no-JS search-modal trigger. */
.side-search[b-7nw3kqwu0w] {
    margin: 0 var(--space-4) var(--space-4);
}

.side-search-trigger[b-7nw3kqwu0w] {
    width: 100%;
    height: var(--control-h-sm);
    background-color: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-faint);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    padding: 0 var(--space-3);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    cursor: pointer;
    text-align: left;
}

.side-search-btn:hover[b-7nw3kqwu0w] {
    border-color: var(--color-border-strong);
    color: var(--color-text-secondary);
}

/* `nav.nav` collides with Bootstrap's `.nav { display:flex; flex-wrap:wrap }`
   component class, which packs the block-level row anchors side-by-side and
   wraps them multi-per-line. The mockup `.nav` is a plain vertical block;
   force `display:block` (scope-attr specificity beats Bootstrap's bare
   `.nav`) so each `a.nav-item` occupies its own full-width row. */
.nav[b-7nw3kqwu0w] {
    display: block;
    padding: 0 var(--space-2) var(--space-5);
}

.nav-divider[b-7nw3kqwu0w] {
    border: none;
    border-top: 1px solid var(--color-border-soft);
    margin: var(--space-3) var(--space-3) 0;
    opacity: 1;
}

.nav-group-label[b-7nw3kqwu0w] {
    font-size: var(--fs-micro);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-faint);
    padding: var(--space-3) var(--space-3) var(--space-2);
}

/* Nav rows — mockup `.nav-item`. The NavItem child component renders the
   `<a class="nav-item">` via <NavLink>, so the row element is produced by
   a SEPARATE component and never carries NavItem's CSS-isolation scope
   attribute (Blazor does not propagate a parent scope onto a child
   component's root element). The scoped `.nav-item[b-…]` rules therefore
   never match, the anchor falls back to inline `display` and the global
   `a` color/underline, and the rail collapses into wrapping inline links.
   `.nav` is literal markup in NavMenu so it carries this component's
   scope; `::deep` lifts scope-matching for its descendants so the row
   styling applies regardless of which child component rendered it. The
   `a` element selector + specificity here also beats the global
   `a` / `a:hover` rules in cascade-reset.css. */
.nav[b-7nw3kqwu0w]  a.nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px var(--space-3);
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    font-size: var(--fs-body);
    margin: 1px 0;
    text-decoration: none;
    transition: background-color 0.12s var(--ease), color 0.12s var(--ease);
    cursor: pointer;
}

.nav[b-7nw3kqwu0w]  a.nav-item .ico {
    width: 16px;
    text-align: center;
    opacity: 0.8;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nav[b-7nw3kqwu0w]  a.nav-item .nav-label {
    flex: 1;
    min-width: 0;
}

.nav[b-7nw3kqwu0w]  a.nav-item:hover {
    background-color: var(--color-surface-2);
    color: var(--color-text);
}

.nav[b-7nw3kqwu0w]  a.nav-item.active {
    background-color: var(--color-sidebar-active);
    color: var(--color-text);
    box-shadow: inset 2px 0 0 var(--color-accent);
}

.nav[b-7nw3kqwu0w]  a.nav-item.active .ico {
    color: var(--color-accent);
    opacity: 1;
}

.nav[b-7nw3kqwu0w]  a.nav-item .nav-badge-slot {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
}

/* Mobile collapse (no JS): rail hidden until toggled; always shown ≥641px. */
.nav-rail[b-7nw3kqwu0w] {
    display: none;
}

.nav-rail.nav-open[b-7nw3kqwu0w] {
    display: block;
}

@media (min-width: 641px) {
    .nav-toggler[b-7nw3kqwu0w] {
        display: none;
    }

    .nav-rail[b-7nw3kqwu0w] {
        display: block;
    }
}
/* /Components/Layout/PageContainer.razor.rz.scp.css */
/* Full-width interior page wrapper (replaces bootstrap container-fluid).
   Token-only horizontal padding. */
.page-container[b-fajbsgj67j] {
    width: 100%;
    padding-left: var(--space-3);
    padding-right: var(--space-3);
}
/* /Components/Layout/PlatformConsoleLayout.razor.rz.scp.css */
.platform-console-shell[b-7jeauajt7x] {
    width: 100%;
}

.platform-console-badge-row[b-7jeauajt7x] {
    margin-bottom: var(--space-3);
}

.platform-console-body[b-7jeauajt7x] {
    width: 100%;
}
/* /Components/Layout/ProcessBand.razor.rz.scp.css */
.process-band[b-o1b6azb7xf] {
    display: contents;
}
/* /Components/Layout/PublicFooter.razor.rz.scp.css */
/* Public Footer Styles - WCAG AA compliant */

/* Footer link columns + bottom bar (replaces bootstrap row/col). */
.footer-cols[b-vuf5dkwaua] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-5);
}

.footer-bottom[b-vuf5dkwaua] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
}

@media (max-width: 991px) {
    .footer-cols[b-vuf5dkwaua] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .footer-cols[b-vuf5dkwaua] {
        grid-template-columns: 1fr;
    }
}

.footer[b-vuf5dkwaua] {
    background-color: var(--bg-color-secondary);
    border-top: 1px solid var(--border-color);
    color: var(--text-color-secondary);
}

.footer-heading[b-vuf5dkwaua] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-color-primary);
    margin-bottom: 1rem;
}

.footer-links[b-vuf5dkwaua] {
    margin-bottom: 0;
}

.footer-links li[b-vuf5dkwaua] {
    margin-bottom: 0.5rem;
}

.footer-links a[b-vuf5dkwaua] {
    color: var(--text-color-secondary);
    text-decoration: none;
    transition: color 0.2s ease-in-out;
}

.footer-links a:hover[b-vuf5dkwaua] {
    color: var(--brand-primary);
    text-decoration: underline;
}

/* Focus indicators for accessibility (WCAG 2.4.7) */
.footer-links a:focus-visible[b-vuf5dkwaua] {
    outline: 3px solid var(--brand-primary);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px var(--color-accent-line);
}

.footer-divider[b-vuf5dkwaua] {
    border-top: 1px solid var(--border-color);
    margin: 2rem 0;
}

.footer-text[b-vuf5dkwaua] {
    color: var(--text-color-secondary);
    font-size: 0.875rem;
}

/* Social links (facit crawler-view.html .social-links / .social-link). */
.social-links[b-vuf5dkwaua] {
    margin-left: auto;
    display: flex;
    gap: var(--space-2);
    align-items: center;
    flex-wrap: wrap;
}

.social-link[b-vuf5dkwaua] {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1px solid var(--border-color);
    color: var(--text-color-secondary);
    text-decoration: none;
}

.social-link:hover[b-vuf5dkwaua] {
    color: var(--brand-primary);
}

.social-link:focus-visible[b-vuf5dkwaua] {
    outline: 3px solid var(--brand-primary);
    outline-offset: 2px;
}

@media (max-width: 640px) {
    .social-links[b-vuf5dkwaua] {
        margin-left: 0;
    }
}
/* /Components/Layout/PublicLayout.razor.rz.scp.css */
/* Public marketing layout — mockup .public shell (styles.css:1021).
   The sticky/blur chrome lives on .pub-nav (PublicNavigation); the
   header/footer elements are transparent structural wrappers so the
   public shell renders token-driven, not Bootstrap. */

.public[b-ny88rvr8gv] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main[b-ny88rvr8gv] {
    flex: 1 1 auto;
}

footer[b-ny88rvr8gv] {
    margin-top: auto;
}
/* /Components/Layout/PublicNavigation.razor.rz.scp.css */
/* Public marketing nav — mockup .pub-nav / .brand / .links
   (06-developer-dark-dual/styles.css:1022-1036). Token-only chrome,
   no Bootstrap navbar. Public-only: scoped to this component so the
   authenticated app chrome is untouched. */

.pub-nav[b-vgu9arf2fn] {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    padding: var(--space-4) var(--space-7);
    border-bottom: 1px solid var(--color-border-soft);
    position: sticky;
    top: 0;
    background: color-mix(in srgb, var(--color-bg-base) 85%, transparent);
    backdrop-filter: blur(8px);
    z-index: 30;
}

.brand[b-vgu9arf2fn] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    text-decoration: none;
}

.brand-mark[b-vgu9arf2fn] {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-sm);
    background: var(--color-accent);
    color: var(--color-text-on-accent);
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    font-weight: var(--fw-bold);
    letter-spacing: var(--tracking-label);
}

.brand-name[b-vgu9arf2fn] {
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.links[b-vgu9arf2fn] {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    margin-left: auto;
}

.links-inner[b-vgu9arf2fn] {
    display: flex;
    align-items: center;
    gap: var(--space-5);
}

.links[b-vgu9arf2fn]  a:not(.btn-prf) {
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    text-decoration: none;
}

.links[b-vgu9arf2fn]  a:not(.btn-prf):hover {
    color: var(--color-text);
}

.pub-nav[b-vgu9arf2fn]  .pub-nav-login {
    color: var(--color-text-secondary);
}

/* Focus indicators (WCAG 2.4.7) */
.links[b-vgu9arf2fn]  a:focus-visible,
.pub-nav-menu-panel[b-vgu9arf2fn]  a:focus-visible,
.pub-nav-menu > summary:focus-visible[b-vgu9arf2fn],
.brand:focus-visible[b-vgu9arf2fn] {
    outline: none;
    box-shadow: var(--shadow-focus);
    border-radius: var(--radius-xs);
}

/* Mobile menu: native <details> disclosure, so it opens on a static page
   with no circuit and no JavaScript. */
.pub-nav-menu[b-vgu9arf2fn] {
    display: none;
    margin-left: auto;
    position: relative;
}

.pub-nav-menu > summary[b-vgu9arf2fn] {
    list-style: none;
    width: var(--control-h-lg);
    height: var(--control-h-lg);
    cursor: pointer;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    display: grid;
    place-items: center;
    color: var(--color-text-secondary);
    font-size: var(--fs-h2);
}

.pub-nav-menu > summary[b-vgu9arf2fn]::-webkit-details-marker {
    display: none;
}

.pub-nav-menu > summary[b-vgu9arf2fn]::before {
    content: "\2630";
}

.pub-nav-menu[open] > summary[b-vgu9arf2fn]::before {
    content: "\2715";
}

.pub-nav-menu-panel[b-vgu9arf2fn] {
    position: absolute;
    right: 0;
    top: calc(100% + var(--space-2));
    width: min(280px, calc(100vw - 32px));
    background: var(--color-bg-base);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    padding: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.pub-nav-menu-panel[b-vgu9arf2fn]  a:not(.btn-prf) {
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    padding: var(--space-2) 0;
    text-decoration: none;
}

.pub-nav-menu-panel[b-vgu9arf2fn]  .btn-prf {
    width: 100%;
    justify-content: center;
}

@media (max-width: 991px) {
    .links[b-vgu9arf2fn] {
        display: none;
    }

    .pub-nav-menu[b-vgu9arf2fn] {
        display: block;
    }
}
/* /Components/Notices/SafetyModeNotice.razor.rz.scp.css */
/* SafetyModeNotice — the Epic 52 one-time notice on the shared AlertMessage (info). The alert becomes a row of
   icon, text column and close button, as in mockups/admin-notice.html (region admin-safety-notice). Tokens only,
   so it follows light and dark. */

.safety-notice[b-1uqi5kwesf]  .content-notice {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
}

.safety-notice[b-1uqi5kwesf]  .notice-icon {
    flex: none;
    margin-top: 2px;
    font-size: 16px;
    line-height: 1;
}

.notice-body[b-1uqi5kwesf] {
    flex: 1 1 auto;
    min-width: 0;
}

.notice-body p[b-1uqi5kwesf] {
    color: var(--color-text-secondary);
}

.notice-title[b-1uqi5kwesf] {
    color: var(--color-info-text);
    font-weight: var(--fw-semibold);
}

.safety-notice[b-1uqi5kwesf]  .content-notice .btn-close {
    position: static;
    flex: none;
    box-sizing: border-box;
    width: 28px;
    height: 28px;
    padding: 0;
    background-size: 11px;
    margin: -4px -6px 0 0;
}
/* /Components/Platform/Discounts/TenantDiscountCard.razor.rz.scp.css */
.discount-card-header[b-y2evpyhbdj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.discount-note[b-y2evpyhbdj] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.priceid[b-y2evpyhbdj] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
}
/* /Components/Platform/PlatformAccessRefused.razor.rz.scp.css */
.platform-access-refused[b-z3m21t9apu] {
    display: flex;
    justify-content: center;
    padding: var(--space-6) var(--space-4);
}

.platform-access-refused[b-z3m21t9apu]  .empty-state,
.platform-access-refused[b-z3m21t9apu]  .text-center {
    max-width: 520px;
}

.platform-access-refused[b-z3m21t9apu]  .empty-state-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--color-danger-soft);
    border: 1px solid var(--color-danger-line);
    color: var(--color-danger-text);
    font-size: 28px;
    margin-bottom: var(--space-3);
}
/* /Components/Platform/TenantInvitationsCard.razor.rz.scp.css */
.invitations-table[b-6gfti60fpd] {
    font-size: var(--fs-sm);
}

.mono-cell[b-6gfti60fpd] {
    font-family: var(--font-mono);
    word-break: break-all;
}
/* /Components/ProjectInit/GuidedChoicesStep.razor.rz.scp.css */
.guided-choices-footer[b-14t8f2r7nt] {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: stretch;
    gap: 0.5rem;
}

@media (min-width: 768px) {
    .guided-choices-footer[b-14t8f2r7nt] {
        flex-direction: row;
        align-items: center;
    }
}
/* /Components/ProjectInit/RepositoryContentWarning.razor.rz.scp.css */
.repo-content-warning[b-lw9hzc2i3j] {
    display: block;
}

.repo-warning-header[b-lw9hzc2i3j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    flex-wrap: wrap;
    width: 100%;
}

.repo-warning-meta[b-lw9hzc2i3j] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    margin-bottom: var(--space-3);
}

.repo-warning-name[b-lw9hzc2i3j] {
    font-weight: var(--fw-semibold);
}

.repo-when-pair[b-lw9hzc2i3j] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
}

.repo-when-block[b-lw9hzc2i3j] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    background: var(--color-surface-1);
}

.repo-when-block p[b-lw9hzc2i3j] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    margin-top: var(--space-1);
}

@media (max-width: 720px) {
    .repo-when-pair[b-lw9hzc2i3j] {
        grid-template-columns: 1fr;
    }
}
/* /Components/ProjectInit/RepositoryTargetStep.razor.rz.scp.css */
.repository-target-step[b-xd2fgiark6] {
    display: block;
}

.repo-step-header[b-xd2fgiark6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    flex-wrap: wrap;
    width: 100%;
}

.repo-picker-list[b-xd2fgiark6] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.repo-list-caption[b-xd2fgiark6] {
    margin-top: var(--space-2);
    margin-bottom: 0;
    font-size: var(--fs-xs);
}

.repo-no-repo-instructions[b-xd2fgiark6] {
    margin: 0;
    padding-left: 1.25rem;
}

.repo-no-repo-instructions li[b-xd2fgiark6] {
    margin-bottom: var(--space-2);
}
/* /Components/ProjectInit/SummaryStep.razor.rz.scp.css */
.summary-deliv-grid[b-5kujbkrb4f] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: var(--space-3);
}

.summary-deliv-list[b-5kujbkrb4f] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.summary-deliv-list li + li[b-5kujbkrb4f] {
    margin-top: var(--space-1);
}

.summary-deliv-note[b-5kujbkrb4f] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.summary-answers-heading[b-5kujbkrb4f] {
    margin: var(--space-6) 0 var(--space-2);
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.summary-answers[b-5kujbkrb4f] {
    border-top: 1px solid var(--color-divider);
}
/* /Components/Projects/MockupControlSwitches.razor.rz.scp.css */
.mockup-summary[b-87tjzks88v] {
    display: flex;
    gap: var(--space-2, 0.5rem);
    align-items: center;
}

.control-name[b-87tjzks88v] {
    display: block;
    font-weight: 600;
}

.control-detail[b-87tjzks88v] {
    display: block;
    color: var(--text-muted, #9aa4b2);
    font-size: 0.8125rem;
}

.control-note[b-87tjzks88v] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
}

.mockup-table tr.is-off .control-name[b-87tjzks88v] {
    color: var(--text-muted, #9aa4b2);
}

.mockup-alert-title[b-87tjzks88v] {
    font-size: 0.9375rem;
    font-weight: 600;
}
/* /Components/Projects/ProcessChangeImpactPanel.razor.rz.scp.css */
.impact-head[b-55n6836v4j] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
}

.impact-head h3[b-55n6836v4j] {
    font-size: 1rem;
    margin: 0;
}

.impact-name[b-55n6836v4j] {
    font-weight: 600;
}

.impact-why[b-55n6836v4j],
.impact-note[b-55n6836v4j],
.impact-uncounted[b-55n6836v4j],
.impact-none[b-55n6836v4j] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
}

.impact-table tr.is-skipped .impact-name[b-55n6836v4j] {
    color: var(--text-muted, #9aa4b2);
}

.impact-table tr.is-locked .impact-name[b-55n6836v4j] {
    color: var(--success, #2ea043);
}

.mono[b-55n6836v4j] {
    font-family: var(--font-mono, ui-monospace, monospace);
}
/* /Components/Projects/ProcessGuaranteeTable.razor.rz.scp.css */
.invariant-name[b-x0wtbd6ujf] {
    font-weight: 600;
}

.invariant-why[b-x0wtbd6ujf] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
}
/* /Components/Projects/ProcessInvariantList.razor.rz.scp.css */
.invariant-note[b-7pvpo2fanu] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
    border-top: 1px solid var(--border-subtle, #2a2f3a);
    padding-top: var(--space-3, 0.75rem);
}
/* /Components/Projects/ProcessProfileSelector.razor.rz.scp.css */
.profile-cards[b-73sdi8rj8b] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: var(--space-3, 0.75rem);
}

.profile-card[b-73sdi8rj8b] {
    border: 1px solid var(--border-subtle, #2a2f3a);
    border-radius: var(--radius-md, 0.5rem);
    padding: var(--space-3, 0.75rem);
    background: var(--surface-raised, transparent);
}

.profile-card.is-selected[b-73sdi8rj8b] {
    border-color: var(--accent, #4c8dff);
    box-shadow: inset 0 0 0 1px var(--accent, #4c8dff);
}

.profile-card-head[b-73sdi8rj8b] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
}

.profile-card-name[b-73sdi8rj8b] {
    font-weight: 600;
    margin: 0;
}

.profile-card-desc[b-73sdi8rj8b] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
    margin: var(--space-2, 0.5rem) 0;
}

.profile-override-note[b-73sdi8rj8b] {
    border-left: 3px solid var(--info, #4c8dff);
    padding-left: var(--space-3, 0.75rem);
    margin-top: var(--space-3, 0.75rem);
}

.profile-override-note h4[b-73sdi8rj8b] {
    font-size: 0.9375rem;
    margin: 0;
}

.profile-override-note p[b-73sdi8rj8b] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
    margin: var(--space-1, 0.25rem) 0 0;
}

.mono[b-73sdi8rj8b] {
    font-family: var(--font-mono, ui-monospace, monospace);
}
/* /Components/Projects/ProcessStepSwitchTable.razor.rz.scp.css */
.step-summary[b-jvqyh2mjma] {
    display: flex;
    gap: var(--space-2, 0.5rem);
    align-items: center;
}

.step-table tr.is-skipped .mono[b-jvqyh2mjma] {
    text-decoration: line-through;
    color: var(--text-muted, #9aa4b2);
}

.step-table tr.is-sub-row td:first-child[b-jvqyh2mjma] {
    padding-left: var(--space-4, 1rem);
}

.sub-step-marker[b-jvqyh2mjma] {
    color: var(--text-muted, #9aa4b2);
}

.step-rationale[b-jvqyh2mjma] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
}

.chain-strip[b-jvqyh2mjma] {
    border-top: 1px solid var(--border-subtle, #2a2f3a);
    padding-top: var(--space-3, 0.75rem);
}

.chain-label[b-jvqyh2mjma] {
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.6875rem;
    color: var(--text-muted, #9aa4b2);
}

.chain[b-jvqyh2mjma] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2, 0.5rem);
}

.chain-step[b-jvqyh2mjma] {
    border: 1px solid var(--border-subtle, #2a2f3a);
    border-radius: var(--radius-sm, 0.25rem);
    padding: 0.125rem 0.5rem;
    font-size: 0.8125rem;
}

.chain-step.is-off[b-jvqyh2mjma] {
    border-style: dashed;
    text-decoration: line-through;
    color: var(--text-muted, #9aa4b2);
}

.chain-step.is-exit[b-jvqyh2mjma] {
    border-color: var(--success, #2ea043);
}

.chain-arrow[b-jvqyh2mjma] {
    color: var(--text-muted, #9aa4b2);
}

.chain-arrow.is-fork[b-jvqyh2mjma] {
    color: var(--warning, #d29922);
}

.chain-note[b-jvqyh2mjma] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
}

.mono[b-jvqyh2mjma] {
    font-family: var(--font-mono, ui-monospace, monospace);
}
/* /Components/Projects/ProjectAreasCard.razor.rz.scp.css */
/* Areas card (Epic 49): the facit's bordered list and the add line under it. */
.list-card[b-htpcmvfok4] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.add-line[b-htpcmvfok4] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-3);
}

.add-line[b-htpcmvfok4]  .form-control {
    height: var(--control-h-sm);
    font-size: var(--fs-sm);
}

h3[b-htpcmvfok4]  .bi {
    color: var(--color-text-muted);
}
/* /Components/Projects/ProjectForm.razor.rz.scp.css */
/* ProjectForm — mockup 11-projects edit card: mono accent next-key preview
   and the muted micro helper note inside the info alert. Token-only. */

.proj-form-mono[b-fjqhv3rlp7] {
    font-family: var(--font-mono);
    color: var(--color-accent-text);
}

.proj-form-note[b-fjqhv3rlp7] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /Components/Repositories/RepositoryConnectionTest.razor.rz.scp.css */
/* RepositoryConnectionTest — token-only error-details disclosure
   (replaces Bootstrap btn-link/text-danger + pre.bg-light). */

.conn-test-error[b-7tnd9igfhx] {
    margin-top: var(--space-2);
}

.conn-test-error-detail[b-7tnd9igfhx] {
    margin-top: var(--space-2);
    padding: var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-danger-text);
    background: var(--color-danger-soft);
    border: 1px solid var(--color-danger-line);
    border-radius: var(--radius-sm);
    white-space: pre-wrap;
    word-break: break-word;
    overflow: auto;
    max-height: 20rem;
}
/* /Components/Repositories/RepositoryForm.razor.rz.scp.css */
/* RepositoryForm — token-only two-column field grid (replaces Bootstrap
   row / col-md-6). Collapses to a single column on narrow viewports. */

.repo-form-grid[b-a08pgkcu5b] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 var(--space-4);
}

@media (max-width: 768px) {
    .repo-form-grid[b-a08pgkcu5b] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Repositories/RepositoryPicker.razor.rz.scp.css */
.repository-picker-list[b-0fbi7l4xv1] {
    list-style: none;
    margin: var(--space-2, 0.5rem) 0 0;
    padding: 0;
    max-height: 15rem;
    overflow-y: auto;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 0.375rem);
}

/* A <button> does not inherit the page text colour — the UA forces `buttontext`,
   which renders near-black and disappears against the dark surface. The colour
   below is what keeps the option label readable in both themes. */
.repository-picker-option[b-0fbi7l4xv1] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    width: 100%;
    padding: var(--space-2, 0.5rem) var(--space-3, 0.75rem);
    background: transparent;
    color: var(--color-text);
    font: inherit;
    border: 0;
    border-bottom: 1px solid var(--color-divider);
    border-left: 3px solid transparent;
    text-align: left;
    cursor: pointer;
}

.repository-picker-option:hover:not(:disabled)[b-0fbi7l4xv1] {
    background: var(--color-surface-2);
}

.repository-picker-option:focus-visible[b-0fbi7l4xv1] {
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
}

.repository-picker-option.is-selected[b-0fbi7l4xv1] {
    background: var(--color-accent-soft);
    border-left-color: var(--color-accent);
    color: var(--color-accent-text);
    font-weight: 600;
}

.repository-picker-option[b-0fbi7l4xv1]  .repository-picker-glyph {
    color: var(--color-text-muted);
    flex-shrink: 0;
}

.repository-picker-option.is-selected[b-0fbi7l4xv1]  .repository-picker-glyph {
    color: var(--color-accent);
}

.repository-picker-name[b-0fbi7l4xv1] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.repository-picker-option[b-0fbi7l4xv1]  .repository-picker-check {
    color: var(--color-accent);
    flex-shrink: 0;
}

.repository-picker-option:disabled[b-0fbi7l4xv1] {
    cursor: not-allowed;
    opacity: 0.65;
}

.repository-picker-list li:last-child .repository-picker-option[b-0fbi7l4xv1] {
    border-bottom: 0;
}
/* /Components/Repositories/RepositorySafetyModeCard.razor.rz.scp.css */
/* Repository safety mode card (Epic 52 S3). Facit: docs/planning/epic_52_worker_safety_defaults/mockups/repository-safety.html */

.safety-title[b-p7tw0ya4sg] {
    display: inline-flex;
    gap: var(--space-2);
    align-items: center;
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
}

.safety-intro[b-p7tw0ya4sg] {
    margin: 0 0 var(--space-3);
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
}

.safety-choices[b-p7tw0ya4sg] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--space-3);
}

.safety-choice[b-p7tw0ya4sg] {
    text-align: left;
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    color: var(--color-text);
    font: inherit;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    cursor: pointer;
}

.safety-choice .choice-hd[b-p7tw0ya4sg] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.safety-choice .choice-hd h4[b-p7tw0ya4sg] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
}

.safety-choice .radio[b-p7tw0ya4sg] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    flex: none;
    background: var(--color-surface-1);
}

.safety-choice p[b-p7tw0ya4sg] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.safety-choice .choice-action[b-p7tw0ya4sg] {
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
    font-weight: var(--fw-medium);
}

.safety-choice.on[b-p7tw0ya4sg] {
    border-color: var(--color-accent);
    background: var(--color-accent-soft);
    cursor: default;
}

.safety-choice.on .radio[b-p7tw0ya4sg] {
    border: 4px solid var(--color-accent);
}

.safety-choice.is-danger.on[b-p7tw0ya4sg] {
    border-color: var(--color-danger);
    background: var(--color-danger-soft);
}

.safety-choice.is-danger.on .radio[b-p7tw0ya4sg] {
    border-color: var(--color-danger);
}

.safety-choice:disabled[b-p7tw0ya4sg] {
    cursor: not-allowed;
}

.safety-choice:disabled:not(.on)[b-p7tw0ya4sg] {
    opacity: .55;
}

.safety-foot[b-p7tw0ya4sg] {
    margin: var(--space-3) 0 0;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
}

.lock-note[b-p7tw0ya4sg] {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    margin-top: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    background: var(--color-surface-2);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

[b-p7tw0ya4sg] .history {
    margin-top: var(--space-3);
}

.history-row[b-p7tw0ya4sg] {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) auto;
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-2) 0;
    border-top: 1px solid var(--color-border-soft);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.history-row:first-child[b-p7tw0ya4sg] {
    border-top: 0;
}

.history-row .when[b-p7tw0ya4sg] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.history-row .change[b-p7tw0ya4sg] {
    display: inline-flex;
    gap: var(--space-1);
    align-items: center;
    flex-wrap: wrap;
}

.history-empty[b-p7tw0ya4sg] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.confirm-target[b-p7tw0ya4sg] {
    margin: 0 0 var(--space-3);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

@media (max-width: 720px) {
    .safety-choices[b-p7tw0ya4sg] {
        grid-template-columns: minmax(0, 1fr);
    }

    .history-row[b-p7tw0ya4sg] {
        grid-template-columns: minmax(0, 1fr);
        gap: 2px;
    }
}
/* /Components/Search/GlobalSearchModal.razor.rz.scp.css */
/* Global Search Modal Styling */
.modal-dialog[b-xw0sywowxn] {
    max-width: 600px;
}

.modal-body[b-xw0sywowxn] {
    max-height: 60vh;
}

.list-group-item[b-xw0sywowxn] {
    border-left: 3px solid transparent;
    transition: border-color 0.2s ease;
}

.list-group-item:hover[b-xw0sywowxn] {
    border-left-color: #0d6efd;
}

.list-group-item h6[b-xw0sywowxn] {
    color: #0d6efd;
    font-weight: 600;
}

.bi[b-xw0sywowxn] {
    vertical-align: middle;
}

/* Improve search input appearance */
.form-control-lg[b-xw0sywowxn] {
    border-radius: 0.5rem;
}

/* Result section headers */
h6.text-muted[b-xw0sywowxn] {
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Empty state styling */
.display-4[b-xw0sywowxn] {
    font-size: 3rem;
    opacity: 0.5;
}
/* /Components/Settings/GovernancePanel.razor.rz.scp.css */
.governance-panel[b-78vyv9d4j4] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.governance-panel-head[b-78vyv9d4j4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.governance-create[b-78vyv9d4j4],
.governance-edit[b-78vyv9d4j4] {
    border: 1px solid var(--border, #e2e5ea);
    border-radius: var(--radius, 0.5rem);
    padding: 1rem;
}

.governance-create-actions[b-78vyv9d4j4] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

.governance-list[b-78vyv9d4j4] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.governance-item[b-78vyv9d4j4] {
    border: 1px solid var(--border, #e2e5ea);
    border-radius: var(--radius, 0.5rem);
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.governance-item-head[b-78vyv9d4j4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.governance-item-name[b-78vyv9d4j4] {
    font-weight: 600;
}

.governance-item-version[b-78vyv9d4j4] {
    color: var(--text-muted, #6c757d);
    font-family: var(--font-mono, monospace);
    font-size: 0.8rem;
}

.governance-item-actions[b-78vyv9d4j4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.governance-history[b-78vyv9d4j4] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.governance-history-meta[b-78vyv9d4j4] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 0.85rem;
}

.governance-history-content[b-78vyv9d4j4] {
    background: var(--surface-alt, #f6f8fa);
    border-radius: var(--radius, 0.5rem);
    padding: 0.75rem;
    white-space: pre-wrap;
    word-break: break-word;
    margin: 0.25rem 0 0;
    font-size: 0.8rem;
}
/* /Components/Settings/UserStatistics.razor.rz.scp.css */
/* Two-up stat grid (replaces bootstrap row/col). */
.user-stats-grid[b-1g19gf5n7s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
}

@media (max-width: 575px) {
    .user-stats-grid[b-1g19gf5n7s] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Tenants/TenantConfigEditor.razor.rz.scp.css */
/* Tokenized replacement for the removed inline
   style="font-size: 0.875rem" on the JSON config textarea
   (invariant 13 — no inline font-size literal). */
.config-json[b-jg5rfo7jz1] {
    font-size: var(--font-size-sm);
}

/* Tokenized replacement for the removed Bootstrap
   `form-text text-muted` helper class. */
.config-help[b-jg5rfo7jz1] {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /Components/Tenants/TenantForm.razor.rz.scp.css */
/* TenantForm — token-only form layout replacing Bootstrap row/col-md-*.
   .form-stack = full-width single field; .form-pair = responsive 2-up
   grid that collapses to 1-up on narrow widths. */

.form-stack[b-5phipftoxh] {
    margin-bottom: var(--space-3);
}

.form-pair[b-5phipftoxh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    margin-bottom: var(--space-3);
}

.form-actions[b-5phipftoxh] {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-5);
}

@media (max-width: 720px) {
    .form-pair[b-5phipftoxh] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Tickets/AddDependencyDialog.razor.rz.scp.css */
/* Dialog content uses form + Modal primitives; keep wrap-safe for narrow widths. */
:host[b-cr6y6eqgye], [b-cr6y6eqgye] .form-select, [b-cr6y6eqgye] .form-control {
    min-width: 0;
    max-width: 100%;
}
/* /Components/Tickets/BoardTicketCard.razor.rz.scp.css */
/* BoardTicketCard — the mockup `.ticket-card` skin (06-developer-dark-dual/styles.css) plus the Epic 49 org row,
   epic card and context state (board.html:850-856, :992-993). Token-only, both modes. */

.board-card[b-imxp9h1p9v] {
    display: block;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3);
    box-shadow: var(--shadow-xs);
    color: inherit;
}

.board-card:hover[b-imxp9h1p9v] {
    border-color: var(--color-border-strong);
}

.board-card.is-epic[b-imxp9h1p9v] {
    box-shadow: inset 0 0 0 1px var(--color-accent-line);
}

.board-card.is-context[b-imxp9h1p9v] {
    opacity: .55;
}

.board-card-failed .board-card[b-imxp9h1p9v] {
    border-color: var(--color-danger);
}

.board-card-cancelled .board-card[b-imxp9h1p9v] {
    border-color: var(--color-text-muted);
}

.board-card-header[b-imxp9h1p9v] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
    min-width: 0;
}

/* The status pill shrinks inside the card and ends in an ellipsis; the key and the phase pill keep their width. */
.board-card-header[b-imxp9h1p9v]  .badge {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.board-card-header[b-imxp9h1p9v]  .badge.ms-1,
.board-card-header .ticket-key[b-imxp9h1p9v] {
    flex: none;
}

.ticket-key[b-imxp9h1p9v] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    font-weight: var(--fw-medium);
}

a.ticket-key[b-imxp9h1p9v] {
    color: var(--color-accent-text);
}

.board-card-title[b-imxp9h1p9v] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--color-text);
    line-height: var(--lh-snug);
    margin-bottom: 0.5rem;
}

.board-card-footer[b-imxp9h1p9v] {
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.repo-name[b-imxp9h1p9v] {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    color: var(--color-text-muted);
}

.board-card-org[b-imxp9h1p9v] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid var(--color-border-soft);
    flex-wrap: wrap;
    min-width: 0;
}

.board-card-org[b-imxp9h1p9v]  .type {
    margin-left: 0;
}

.who[b-imxp9h1p9v] {
    display: inline-flex;
    align-items: center;
    margin-left: auto;
    min-width: 0;
}

.av[b-imxp9h1p9v] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    font-size: 9px;
    font-weight: var(--fw-semibold);
    flex: none;
}

.av.is-empty[b-imxp9h1p9v] {
    background: transparent;
    border: 1px dashed var(--color-text-faint);
    color: var(--color-text-faint);
}
/* /Components/Tickets/BuiltInProcessRail.razor.rz.scp.css */
/* Ticket page simplification S6 (AC-16) — facit detail-next-action `.phase-line`:
   "Step N of M · phase · state", one line above the compact rail. */
.process-phase-line[b-pt4vh6r8iw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.process-phase-line__step[b-pt4vh6r8iw] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.process-phase-line__name[b-pt4vh6r8iw] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.process-phase-state[b-pt4vh6r8iw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 1px var(--space-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
}

.process-phase-state[b-pt4vh6r8iw]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}

.process-phase-state.is-waiting[b-pt4vh6r8iw] {
    color: var(--color-warning-text);
    border-color: var(--color-warning-line);
    background: var(--color-warning-soft);
}

.process-phase-state.is-ready[b-pt4vh6r8iw] {
    color: var(--color-accent-text);
    border-color: var(--color-accent);
    background: var(--color-accent-soft);
}

.process-phase-state.is-running[b-pt4vh6r8iw] {
    color: var(--color-info-text);
    border-color: var(--color-info-line);
    background: var(--color-info-soft);
}

.process-phase-state.is-queued[b-pt4vh6r8iw] {
    color: var(--color-text-muted);
    background: var(--color-surface-2);
}

.process-phase-state.is-halted[b-pt4vh6r8iw] {
    color: var(--color-danger-text);
    border-color: var(--color-danger-line);
    background: var(--color-danger-soft);
}
/* /Components/Tickets/CreateTicketDialog.razor.rz.scp.css */
/* Facit width (tickets.html:524): Bootstrap's default modal-dialog is 500px. */
.create-ticket-dialog[b-qhkn0qo696]  .modal-dialog {
    max-width: 600px;
}
/* /Components/Tickets/CreateTicketForm.razor.rz.scp.css */
/* CreateTicketForm — facit `create-dialog-*` regions (ticket page simplification mockups).
   The footer lives inside the form so its submit button submits it; a dialog host renders the
   whole form in its body. Token-only, both modes. */

.create-ticket-body[b-r3ak55hucw] {
    padding-bottom: var(--space-4);
}

.defaults-line[b-r3ak55hucw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    padding: var(--space-2) var(--space-3);
}

.defaults-line > span[b-r3ak55hucw] {
    flex: 1 1 0;
    min-width: 0;
}

.defaults-line b[b-r3ak55hucw] {
    color: var(--color-text-secondary);
    font-weight: var(--fw-medium);
}

.defaults-line .mono[b-r3ak55hucw] {
    font-family: var(--font-mono);
}

.create-ticket-footer[b-r3ak55hucw] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border-soft);
}

.create-ticket-footer-spacer[b-r3ak55hucw] {
    flex: 1;
}

/* Facit board.html "create-dialog-area": Area and Assignee in two equal columns below Run on, stacked on a
   phone. Grid2's own columns are the page layout's 1.4fr / 1fr. */
.create-ticket-body[b-r3ak55hucw]  .grid-2.create-ticket-organisation {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3);
    margin-top: 0;
}

@media (max-width: 600px) {
    .create-ticket-body[b-r3ak55hucw]  .grid-2.create-ticket-organisation {
        grid-template-columns: 1fr;
    }
}
/* /Components/Tickets/DeliverableStepsPanel.razor.rz.scp.css */
.delivery-strip[b-4e4wri0lsi] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
    background: var(--color-surface-2);
    margin: calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) var(--space-4);
}

.delivery-strip-item[b-4e4wri0lsi] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 4.5rem;
}

.delivery-strip-figure[b-4e4wri0lsi] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    line-height: var(--lh-tight);
    color: var(--color-text);
    word-break: break-all;
}

.delivery-strip-label[b-4e4wri0lsi] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    text-transform: lowercase;
}

.deliverable-steps[b-4e4wri0lsi] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.deliverable-step[b-4e4wri0lsi] {
    padding: var(--space-3);
    border: 1px solid var(--color-divider);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
}

.deliverable-step-head[b-4e4wri0lsi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.deliverable-step-order[b-4e4wri0lsi] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.deliverable-step-title[b-4e4wri0lsi] {
    font-weight: var(--fw-semibold);
    flex: 1 1 auto;
}

.deliverable-step-desc[b-4e4wri0lsi] {
    margin: var(--space-2) 0 0;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.deliverable-step-meta[b-4e4wri0lsi] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.deliverable-step-interrupt[b-4e4wri0lsi] {
    color: var(--color-warning, #b45309);
}

.deliverable-steps-resume[b-4e4wri0lsi] {
    margin-top: var(--space-4);
    display: flex;
    justify-content: flex-start;
}
/* /Components/Tickets/DependencyList.razor.rz.scp.css */
.dep-card-header[b-auxt7los5u] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    min-width: 0;
    width: 100%;
}

.dep-card-header-actions[b-auxt7los5u] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.dep-section-title[b-auxt7los5u] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    min-width: 0;
}

.dep-held-alert[b-auxt7los5u] {
    overflow-wrap: anywhere;
    min-width: 0;
}

.dependency-card[b-auxt7los5u] {
    min-width: 0;
}

@media (max-width: 560px) {
    .dep-card-header[b-auxt7los5u] {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Ticket page simplification S6 (AC-18): section headings are at most --fs-h3 (14px). */
.dep-card-header h5[b-auxt7los5u] {
    font-size: var(--fs-h3);
}

/* Facit detail-side-details `.dep-compact`: one row — label, "None", Add. */
.dep-compact[b-auxt7los5u] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    font-size: var(--fs-sm);
}

.dep-compact[b-auxt7los5u]  .btn-prf {
    margin-left: auto;
}
/* /Components/Tickets/GovernanceSnapshotPanel.razor.rz.scp.css */
.governance-snapshot[b-5efyi1icoi] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.governance-snapshot-item[b-5efyi1icoi] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.governance-snapshot-name[b-5efyi1icoi] {
    font-weight: 600;
}

.governance-compliance h6[b-5efyi1icoi] {
    margin-bottom: 0.5rem;
}

.governance-decisions[b-5efyi1icoi] {
    border-top: 1px solid var(--border, #e2e5ea);
    padding-top: 0.75rem;
    margin-top: 0.75rem;
}

.governance-decisions h6[b-5efyi1icoi] {
    margin-bottom: 0.5rem;
}

.governance-decisions-list[b-5efyi1icoi] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.governance-decisions-head[b-5efyi1icoi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
}

.governance-decisions-number[b-5efyi1icoi] {
    font-weight: 600;
    color: var(--text-muted, #6c757d);
}

.governance-decisions-answer[b-5efyi1icoi] {
    font-size: 0.8rem;
}

.governance-decisions-answer-label[b-5efyi1icoi] {
    font-weight: 600;
}

.governance-decisions-meta[b-5efyi1icoi] {
    font-size: 0.72rem;
    color: var(--text-muted, #6c757d);
}
/* /Components/Tickets/NextActionCallout.razor.rz.scp.css */
/* Responsive action bar (replaces bootstrap d-flex flex-md-row).
   Stacks on narrow, row on wide. */
.next-action-bar[b-db3rsvzwho] {
    display: flex;
    flex-direction: column;
}

@media (min-width: 768px) {
    .next-action-bar[b-db3rsvzwho] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

/* Running state (ticket page simplification AC-14) — facit `.next-action-bar.is-running`:
   info tint, spinner + running step, worker chip at the end, no action. */
.next-action-bar--running[b-db3rsvzwho] {
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-info-line);
    border-radius: var(--radius-md);
    background: var(--color-info-soft);
}

.next-action-bar--running[b-db3rsvzwho]  .next-action-running-indicator {
    flex: 1 1 240px;
    min-width: 0;
    margin: 0;
}

/* Ticket page simplification S6 (AC-18) — facit `.decision-card`: the one decision card. Section
   headings on the page are at most --fs-h3 (14px); only the page title is larger. */
.next-action-title[b-db3rsvzwho],
.next-action-bar h5[b-db3rsvzwho] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.next-action-body[b-db3rsvzwho] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.next-action-meta[b-db3rsvzwho] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.next-action-idle[b-db3rsvzwho] {
    display: flex;
    flex: 1 1 240px;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

/* E-2: one line when the agent backend is unavailable. */
.next-action-warning[b-db3rsvzwho] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-2) 0 0;
    font-size: var(--fs-xs);
    color: var(--color-warning-text);
}
/* /Components/Tickets/NextPhaseAgentPicker.razor.rz.scp.css */
/* Facit select-mock.is-changed: a backend chosen for this ticket is outlined in the warning tone. */
.next-agent-changed[b-noew1dnf4u]  .form-select {
    border-color: var(--color-warning-line);
}

/* The chip sits a half step under the help line (facit "mt-2"), not a full FormSelectField mb-3 below it. */
.next-agent-source[b-noew1dnf4u] {
    margin-top: calc(-1 * var(--space-2));
}
/* /Components/Tickets/NextStepPromptEditor.razor.rz.scp.css */
/* The decision card's "Review prompt" body, below the card's action row. */
.next-step-prompt[b-p5ynj7egyb] {
    margin-top: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border);
}

.next-step-prompt-note[b-p5ynj7egyb] {
    margin: 0 0 var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

/* The composed prompt is long; keep the field readable without taking over the page. */
.next-step-prompt[b-p5ynj7egyb]  textarea {
    max-height: 60vh;
    font-size: var(--fs-body);
    line-height: 1.5;
}

/* /Components/Tickets/PlanningHistoryPanel.razor.rz.scp.css */
/* Component-isolated styles for PlanningHistoryPanel (Epic 08 convention).
   The former .planning-history-content rule was dead (no markup referenced
   it) and has been removed per Epic 17 Batch B. */
/* /Components/Tickets/PlanQaSplitPanel.razor.rz.scp.css */
@media (max-width: 991px) {
    /* Stack columns under 992px - GridLayout already does this, this is fallback */
    [b-og5tc8tmbf] .row > [class^="col-"] {
        flex: 0 0 100%;
        max-width: 100%;
    }
}
/* /Components/Tickets/ProcessCheckpointPanel.razor.rz.scp.css */
.process-checkpoint-panel__title[b-pg18cqyzkh] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.process-checkpoint-panel__facts[b-pg18cqyzkh] {
    row-gap: 0.5rem;
}

.process-checkpoint-panel__artefacts.artefact-strip[b-pg18cqyzkh] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.process-checkpoint-panel__artefacts .artefact-chip[b-pg18cqyzkh] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.6rem;
    border-radius: var(--radius-sm, 6px);
    border: 1px solid var(--color-border, #232f3e);
    background: var(--color-surface-2, #19222e);
    font-size: 0.85rem;
}

.process-checkpoint-panel__actions[b-pg18cqyzkh] {
    width: 100%;
    justify-content: flex-end;
}
/* /Components/Tickets/ProcessOutcomeChoiceDialog.razor.rz.scp.css */
/* Dialog body spacing is handled by Modal + FormSelectField; keep file for C2 isolation. */
/* /Components/Tickets/ProcessRunHeader.razor.rz.scp.css */
.process-run-header[b-ixaiv5ku35] {
    margin-bottom: 1rem;
}

.process-run-header__facts[b-ixaiv5ku35] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    font-size: 0.875rem;
    color: var(--color-text-muted, #6c757d);
}

.process-run-header__not-taken[b-ixaiv5ku35] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    font-size: 0.8125rem;
    color: var(--color-text-muted, #6c757d);
    opacity: 0.7;
}

.process-run-header__not-taken-item em[b-ixaiv5ku35] {
    font-style: normal;
    font-weight: 600;
    margin-left: 0.25rem;
}
/* /Components/Tickets/ProcessRunTabs.razor.rz.scp.css */
.process-run-tabs__facts[b-ilssyu1mzu] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
    gap: 0.75rem 1.25rem;
    margin: 0 0 1rem;
}

.process-run-tabs__facts dt[b-ilssyu1mzu] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted, #6c757d);
    margin: 0;
}

.process-run-tabs__facts dd[b-ilssyu1mzu] {
    margin: 0.15rem 0 0;
}

.process-run-tabs__step.is-current[b-ilssyu1mzu] {
    outline: 1px solid var(--color-accent, #0d6efd);
    border-radius: var(--radius-sm, 0.25rem);
}

.process-run-tabs__step + .process-run-tabs__step[b-ilssyu1mzu] {
    margin-top: 0.5rem;
}
/* /Components/Tickets/PullRequestPanel.razor.rz.scp.css */
/* Pull-request panel composes shared /UI/* primitives; no extra styling. */
/* /Components/Tickets/QuestionAnswerForm.razor.rz.scp.css */
.question-header[b-ylanniz50e] {
    font-size: var(--fs-h2);
    color: var(--color-text-secondary);
}

.question-text[b-ylanniz50e] {
    padding: var(--space-3);
    background-color: var(--color-bg-sunken);
    border-left: var(--space-1) solid var(--color-warning);
    margin-bottom: var(--space-4);
}

.answer-input[b-ylanniz50e] {
    padding-left: var(--space-4);
}

.qa-answered-counter[b-ylanniz50e] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--color-text-secondary);
}

.qa-question-default[b-ylanniz50e] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    font-size: var(--fs-body);
    color: var(--color-text-secondary);
    margin-bottom: var(--space-3);
}

.qa-question-default-label[b-ylanniz50e] {
    font-weight: 600;
}
/* /Components/Tickets/ReleaseTicketDialog.razor.rz.scp.css */
/* Dialog body containment — long mono branch names must wrap (mockups/README.md:44-54). */
:host[b-sfkeu6lgo7] {
    min-width: 0;
}
/* /Components/Tickets/ReviewCommentThread.razor.rz.scp.css */
/* ReviewCommentThread — Epic 19 stage grouping. Token-only; mirrors
   mockup-1.html .cmt-origin-group / .cmt-origin-label without copying its
   planning-only inline <style>. */

.cmt-origin-group[b-zu44dxxmyc] {
    margin-bottom: var(--space-5);
}

.cmt-origin-label[b-zu44dxxmyc] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    margin: 0 0 var(--space-2);
    padding-bottom: var(--space-1);
    border-bottom: 1px dashed var(--color-border);
}
/* /Components/Tickets/RoutingSignalPanel.razor.rz.scp.css */
.routing-signal[b-icir6cfrb0] {
    margin: 0;
}

.routing-signal-field[b-icir6cfrb0] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.25rem 0;
}

.routing-signal-field dt[b-icir6cfrb0] {
    min-width: 6rem;
    margin: 0;
    font-weight: 600;
}

.routing-signal-field dd[b-icir6cfrb0] {
    margin: 0;
}

.routing-signal-provenance[b-icir6cfrb0] {
    margin: 0.75rem 0 0;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color, #6c757d);
}
/* /Components/Tickets/SubtaskCard.razor.rz.scp.css */
/* Borderless link-style icon button (replaces bootstrap btn btn-link).
   Token-only; preserves the inline checkbox/action affordance. */
.subtask-icon-action[b-m4z17n33w5] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: inherit;
    line-height: 1;
}

.subtask-icon-action:disabled[b-m4z17n33w5] {
    cursor: default;
    opacity: 0.6;
}

.subtask-icon-action-primary[b-m4z17n33w5] {
    color: var(--color-accent);
}

.subtask-icon-action-danger[b-m4z17n33w5] {
    color: var(--color-danger);
}

.subtask-blocks-icon[b-m4z17n33w5] {
    color: var(--color-warning);
}

.subtask-dep-done[b-m4z17n33w5] {
    color: var(--color-success);
}

.subtask-dep-pending[b-m4z17n33w5] {
    color: var(--color-text-muted);
}
/* /Components/Tickets/SuccessCriteriaEditor.razor.rz.scp.css */
/* Criterion editor field grid (replaces bootstrap row/col). */
.criterion-grid[b-5ib2dj3943] {
    display: grid;
    grid-template-columns: 3fr 1.5fr 1.5fr 1fr auto;
    gap: var(--space-3);
    align-items: start;
}

@media (max-width: 991px) {
    .criterion-grid[b-5ib2dj3943] {
        grid-template-columns: 1fr 1fr;
    }

    .criterion-col-desc[b-5ib2dj3943] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575px) {
    .criterion-grid[b-5ib2dj3943] {
        grid-template-columns: 1fr;
    }
}

.success-criteria-editor[b-5ib2dj3943] {
    border: var(--border-width) solid var(--border-color);
    border-radius: var(--border-radius);
    padding: var(--space-md);
    background-color: var(--bg-color-secondary);
}

[b-5ib2dj3943] .criterion-card {
    border-left: 3px solid var(--bootstrap-primary);
    background-color: var(--color-surface-1);
}

.criteria-list[b-5ib2dj3943] {
    max-height: 500px;
    overflow-y: auto;
}
/* /Components/Tickets/TeamDiscussionSection.razor.rz.scp.css */
/* Borderless link-style collapse toggle (replaces bootstrap btn
   btn-link). Token-only. */
.discussion-collapse-toggle[b-eu034cp0pa] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--color-text-secondary);
    line-height: 1;
}

.discussion-collapse-toggle:hover[b-eu034cp0pa] {
    color: var(--color-text);
}

/* Participant avatars container */
.participant-avatars[b-eu034cp0pa] {
    gap: 0;
}

/* Participant avatar wrapper for overlapping effect.
   The -8px pull-in is the intentional avatar-stack overlap. */
.participant-avatar-wrapper[b-eu034cp0pa] {
    margin-left: -8px;
    border: 2px solid var(--bg-color-primary);
    border-radius: 50%;
}

.participant-avatar-wrapper:first-child[b-eu034cp0pa] {
    margin-left: 0;
}

/* Ensure collapse button doesn't get focus ring (collapse toggle is a
   raw btn-link, so this rule is still required). */
.btn-link:focus[b-eu034cp0pa] {
    box-shadow: none;
}
/* /Components/Tickets/TestingGatePanel.razor.rz.scp.css */
.test-output[b-3z3kk2cq5k] {
    max-height: 480px;
    overflow-y: auto;
}
/* /Components/Tickets/TicketActionsMenu.razor.rz.scp.css */
/* The blocked-Delete reason under the menu item — facit `.dropdown-reason`. */
.ticket-actions-reason[b-0jwv4k7w8i] {
    margin: 0;
    padding: 0 var(--space-2) var(--space-2) calc(var(--space-2) + 22px);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /Components/Tickets/TicketActivityFeed.razor.rz.scp.css */
/* Overlapping participant avatars (mirrors TeamDiscussionSection's stack effect,
   ticket page simplification S5). */
.activity-participant-avatar[b-x6hhwb491n] {
    border: 2px solid var(--bg-color-primary);
    border-radius: 50%;
}

.activity-participant-avatar:not(:first-child)[b-x6hhwb491n] {
    margin-left: -8px;
}

.activity-toolbar[b-x6hhwb491n] {
    flex-wrap: wrap;
    gap: 0.5rem;
}
/* /Components/Tickets/TicketAssigneeEditor.razor.rz.scp.css */
/* Facit ticket-detail.html ".av.is-empty": the dashed empty avatar beside "Unassigned". Avatar always
   renders initials, so the empty disc is this row's own. */
.assignee-empty[b-oqkwit90ch] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    flex: none;
    font-size: 9px;
    border: 1px dashed var(--color-text-faint);
    color: var(--color-text-faint);
}
/* /Components/Tickets/TicketDescriptionBlock.razor.rz.scp.css */
/* Ticket page simplification S6 (AC-15) — facit detail-description / detail-description-empty. */
.ticket-purpose__summary[b-g2pcevvqmc] {
    margin: 0 0 var(--space-2);
    font-size: var(--fs-body);
    color: var(--color-text);
}

.ticket-purpose__empty[b-g2pcevvqmc] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-3);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.ticket-purpose[b-g2pcevvqmc]  .disclosure-body {
    padding-top: var(--space-2);
}
/* /Components/Tickets/TicketDetailsCard.razor.rz.scp.css */
/* Epic 49 AC-12 (facit ticket-detail.html "detail-status-overflow-fix"): the status badge wraps inside the
   Details value cell. A modifier on this card only; Badge keeps nowrap everywhere else. The rows are built
   with RenderTreeBuilder and carry no scope attribute, hence ::deep. */
section[b-u39dccst1c]  .status-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

section[b-u39dccst1c]  .status-cell .badge {
    white-space: normal;
    overflow-wrap: anywhere;
    max-width: 100%;
    text-align: left;
    line-height: var(--lh-snug);
}

/* Epic 52 AC-7 E2E fix: a long author name wraps inside the Details card instead of overflowing it. The
   wrapper is a block-level flex row and its name is the shrinkable child; the avatar keeps its size through its own flex: none. */
section[b-u39dccst1c]  .author-value {
    min-width: 0;
}

section[b-u39dccst1c]  .author-value > .author-name {
    min-width: 0;
}
/* /Components/Tickets/TicketDiffViewer.razor.rz.scp.css */
.ticket-diff-viewer[b-m0mh0nwp5s] {
    padding: var(--space-md);
}

/* Side-by-side original/updated diff (replaces bootstrap row/col). */
.diff-grid[b-m0mh0nwp5s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 768px) {
    .diff-grid[b-m0mh0nwp5s] {
        grid-template-columns: 1fr;
    }
}

.diff-panel[b-m0mh0nwp5s] {
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    height: 100%;
}

.original-panel[b-m0mh0nwp5s] {
    background-color: var(--color-warning-soft);
}

.updated-panel[b-m0mh0nwp5s] {
    background-color: var(--color-info-soft);
}

.diff-header[b-m0mh0nwp5s] {
    padding: var(--space-md);
    border-bottom: 2px solid var(--border-color);
    background-color: var(--bg-color-primary);
    border-radius: var(--border-radius) var(--border-radius) 0 0;
}

.diff-header h5[b-m0mh0nwp5s] {
    margin: 0;
    font-weight: var(--font-weight-semibold);
}

.diff-content[b-m0mh0nwp5s] {
    padding: var(--space-md);
}

.content-box[b-m0mh0nwp5s] {
    padding: var(--space-sm);
    background-color: var(--bg-color-primary);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    min-height: 50px;
}

.content-box.changed[b-m0mh0nwp5s] {
    border-left: 4px solid var(--color-warning);
    background-color: var(--color-warning-soft);
}

.criterion-item[b-m0mh0nwp5s] {
    padding: var(--space-sm);
    background-color: var(--bg-color-secondary);
    border-radius: var(--border-radius-sm);
}

.markdown-content[b-m0mh0nwp5s] {
    font-size: var(--font-size-base);
}

.markdown-content h1[b-m0mh0nwp5s],
.markdown-content h2[b-m0mh0nwp5s],
.markdown-content h3[b-m0mh0nwp5s],
.markdown-content h4[b-m0mh0nwp5s] {
    margin-top: var(--space-sm);
    margin-bottom: var(--space-sm);
}

.markdown-content ul[b-m0mh0nwp5s],
.markdown-content ol[b-m0mh0nwp5s] {
    margin-bottom: var(--space-sm);
    padding-left: var(--space-lg);
}

.markdown-content code[b-m0mh0nwp5s] {
    background-color: var(--code-bg);
    padding: 0.2rem 0.4rem;
    border-radius: var(--border-radius-sm);
}

.markdown-content pre[b-m0mh0nwp5s] {
    background-color: var(--code-bg);
    padding: var(--space-sm);
    border-radius: var(--border-radius-sm);
    overflow-x: auto;
}
/* /Components/Tickets/TicketHeader.razor.rz.scp.css */
/* Header description / metadata split (replaces bootstrap row/col). */
.ticket-header-grid[b-ubpntnex7j] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 768px) {
    .ticket-header-grid[b-ubpntnex7j] {
        grid-template-columns: 1fr;
    }
}

/* Tabulated label/value list (replaces bootstrap dl.row + col-sm-*). */
.ticket-detail-list[b-ubpntnex7j] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--space-2) var(--space-3);
    margin-bottom: 0;
}

.ticket-detail-list dt[b-ubpntnex7j] {
    font-weight: var(--fw-semibold);
    color: var(--color-text-muted);
}

.ticket-detail-list dd[b-ubpntnex7j] {
    margin-bottom: 0;
}

.description-content[b-ubpntnex7j] {
    white-space: pre-wrap;
    word-wrap: break-word;
}

.ticket-metadata dl[b-ubpntnex7j] {
    font-size: var(--font-size-sm);
}

.ticket-metadata dt[b-ubpntnex7j] {
    font-weight: var(--font-weight-semibold);
    color: var(--text-color-muted);
}

.ticket-metadata dd[b-ubpntnex7j] {
    margin-bottom: var(--space-sm);
}
/* /Components/Tickets/TicketQuickAddRow.razor.rz.scp.css */
/* Ported from tickets.html:582-585 onto tokens (ticket page simplification S3 / AC-7). */
.quick-add[b-m6r3fe45dz],
.quick-add.active[b-m6r3fe45dz] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    height: 42px;
    padding: 0 var(--space-3);
    border: 1px solid var(--color-border);
    border-top: 0;
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    color: var(--color-text-muted);
    text-align: left;
}

.quick-add[b-m6r3fe45dz] {
    background-color: var(--color-surface-1);
}

.quick-add:hover[b-m6r3fe45dz] {
    background-color: var(--color-bg-sunken);
}

.quick-add.active[b-m6r3fe45dz] {
    background-color: var(--color-bg-sunken);
    box-shadow: inset 0 0 0 1px var(--color-accent);
}

[b-m6r3fe45dz] .quick-add-input {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
}

.quick-add-kbd[b-m6r3fe45dz] {
    font-family: var(--font-mono, monospace);
    font-size: 0.75rem;
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 2px 6px;
}

.quick-add[b-m6r3fe45dz]  .bi,
.quick-add.active[b-m6r3fe45dz]  .bi {
    font-size: 0.9rem;
}
/* /Components/Tickets/TicketRunOnPicker.razor.rz.scp.css */
/* Facit run-on.html "Inline picker card": a sibling of the owner picker with an accent border. */
.exec-run-on-picker-host[b-satdqulhbt]  .exec-run-on-picker {
    min-width: 0;
    border-color: var(--color-accent-line);
}
/* /Components/Tickets/TicketStatusTransition.razor.rz.scp.css */
.current-status[b-j1sdm9zop8] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm);
    background: var(--bg-color-secondary);
    border-radius: var(--border-radius);
}

.status-label[b-j1sdm9zop8],
.transition-label[b-j1sdm9zop8] {
    font-weight: var(--font-weight-medium);
    color: var(--text-color-secondary);
    font-size: var(--font-size-sm);
}

.transition-section[b-j1sdm9zop8] {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.transition-buttons[b-j1sdm9zop8] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
}

.transition-buttons .btn[b-j1sdm9zop8] {
    display: inline-flex;
    align-items: center;
    font-size: var(--font-size-sm);
}

.no-transitions[b-j1sdm9zop8] {
    font-size: var(--font-size-sm);
    padding: var(--space-sm) 0;
}

.loading-indicator[b-j1sdm9zop8] {
    color: var(--text-color-secondary);
    font-size: var(--font-size-sm);
    padding: var(--space-sm) 0;
}
/* /Components/Tickets/TicketStepWaivers.razor.rz.scp.css */
.waiver-summary[b-cixfaqqhtj] {
    display: flex;
    gap: var(--space-2, 0.5rem);
    align-items: center;
}

.waiver-table tr.is-skipped .mono[b-cixfaqqhtj] {
    text-decoration: line-through;
    color: var(--color-text-muted, #9aa4b2);
}

.waiver-reason[b-cixfaqqhtj] {
    color: var(--color-warning-text, #d29922);
    font-size: 0.875rem;
}

.waiver-none[b-cixfaqqhtj],
.waiver-note[b-cixfaqqhtj] {
    color: var(--color-text-muted, #9aa4b2);
    font-size: 0.875rem;
}

.mono[b-cixfaqqhtj] {
    font-family: var(--font-mono, ui-monospace, monospace);
}

/* The panel sits in the ticket page's 320px side column (More details, AC-13): long step keys
   such as "RequirementDefinition" and the reason text must wrap instead of widening the table. */
.waiver-table th[b-cixfaqqhtj],
.waiver-table td[b-cixfaqqhtj] {
    overflow-wrap: anywhere;
}
/* /Components/Tickets/TicketTable.razor.rz.scp.css */
/* Ported from the facit's DataTable rules (tickets.html:566-580, 598-608; Epic 49 board.html:575-605).
   Column widths are set on the <col> elements (S2); DataTable itself owns hover/zebra/padding. */

.col-key[b-fd604eqihl] {
    width: 96px;
}

.col-status[b-fd604eqihl] {
    width: 170px;
}

.col-wait[b-fd604eqihl] {
    width: 130px;
}

.col-area[b-fd604eqihl] {
    width: 140px;
}

.col-who[b-fd604eqihl] {
    width: 160px;
}

.col-upd[b-fd604eqihl] {
    width: 96px;
}

tr.ticket-row[b-fd604eqihl] {
    /* stretched-link anchors to the nearest positioned ancestor (S2-Q9). */
    position: relative;
}

tr.ticket-row-new[b-fd604eqihl] {
    background: var(--color-accent-soft);
}

.ticket-key a.stretched-link[b-fd604eqihl] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
    text-decoration: none;
}

.ticket-title[b-fd604eqihl] {
    color: var(--color-text);
    font-weight: var(--fw-medium);
}

.ticket-error[b-fd604eqihl] {
    color: var(--color-danger-text);
    display: inline-flex;
    gap: 4px;
    align-items: center;
    font-size: var(--fs-xs);
    margin-left: var(--space-2);
}

.who[b-fd604eqihl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.who-name[b-fd604eqihl] {
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 900px) {
    .col-area[b-fd604eqihl],
    .col-who[b-fd604eqihl],
    .col-upd[b-fd604eqihl],
    .col-area-head[b-fd604eqihl],
    .col-who-head[b-fd604eqihl],
    .col-upd-head[b-fd604eqihl],
    .col-area-cell[b-fd604eqihl],
    .col-who-cell[b-fd604eqihl],
    .col-upd-cell[b-fd604eqihl] {
        display: none;
    }
}

@media (max-width: 600px) {
    .col-wait[b-fd604eqihl],
    .col-wait-head[b-fd604eqihl],
    .col-wait-cell[b-fd604eqihl] {
        display: none;
    }
}
/* /Components/Tickets/TicketTokenUsagePanel.razor.rz.scp.css */
/* The Total row closes the per-phase rows (facit region ticket-token-usage). Its first cell is a
   row header (th scope="row"), so the DataTable column-header look is undone for it. */
tr.is-total td[b-rekwm8gfdq],
tr.is-total th[b-rekwm8gfdq] {
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    border-top: 1px solid var(--color-border);
}

tr.is-total th[b-rekwm8gfdq] {
    padding: var(--space-3) var(--space-4);
    font-size: inherit;
    text-transform: none;
    letter-spacing: normal;
    background: transparent;
    border-bottom: none;
}
/* /Components/Tickets/TicketUpdateEditor.razor.rz.scp.css */
.ticket-update-editor[b-01q4642p5k] {
    padding: var(--space-md);
}
/* /Components/Tickets/TicketUpdatePreview.razor.rz.scp.css */
.preview-box[b-awng19lckq] {
    padding: 1rem;
    background-color: var(--color-bg-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}

.success-criteria-preview[b-awng19lckq] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 1rem;
    background-color: var(--color-surface-1);
}

.priority-group[b-awng19lckq] {
    border-left: 3px solid var(--color-accent);
    padding-left: 1rem;
}

.priority-heading[b-awng19lckq] {
    font-weight: 600;
    margin-bottom: 0.75rem;
    color: var(--color-text-secondary);
}

.criterion-card[b-awng19lckq] {
    padding: 0.75rem;
    background-color: var(--color-bg-sunken);
    border-radius: var(--radius-xs);
}

.criterion-badges[b-awng19lckq] {
    margin-bottom: 0.5rem;
}

.criterion-description[b-awng19lckq] {
    color: var(--color-text);
}

.markdown-content[b-awng19lckq] {
    font-size: 0.95rem;
}

.markdown-content h1[b-awng19lckq],
.markdown-content h2[b-awng19lckq],
.markdown-content h3[b-awng19lckq],
.markdown-content h4[b-awng19lckq] {
    margin-top: 1rem;
    margin-bottom: 0.5rem;
}

.markdown-content ul[b-awng19lckq],
.markdown-content ol[b-awng19lckq] {
    margin-bottom: 1rem;
    padding-left: 2rem;
}

.markdown-content code[b-awng19lckq] {
    background-color: var(--color-bg-sunken);
    padding: 0.2rem 0.4rem;
    border-radius: var(--radius-xs);
    font-size: 0.9em;
}

.markdown-content pre[b-awng19lckq] {
    background-color: var(--color-bg-sunken);
    padding: 1rem;
    border-radius: var(--radius-sm);
    overflow-x: auto;
}

.markdown-content pre code[b-awng19lckq] {
    background-color: transparent;
    padding: 0;
}

.action-buttons[b-awng19lckq] {
    margin-top: 2rem;
}

.reject-form-container[b-awng19lckq] {
    padding: 1rem;
    background-color: var(--color-warning-soft);
    border: 1px solid var(--color-warning);
    border-radius: var(--radius-sm);
}

.tab-pane-content[b-awng19lckq] {
    min-height: 300px;
}
/* /Components/Tickets/UntrustedTicketApprovalBlock.razor.rz.scp.css */
/* Epic 52 (facit ticket-safety.html ticket-untrusted-start-work): the approval block inside the decision card. */
.untrusted-approval[b-6zjybuvu8j] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-warning-line);
    border-radius: var(--radius-sm);
    background: var(--color-surface-1);
}

.approval-flag[b-6zjybuvu8j] {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    margin: 0;
    font-size: var(--fs-sm);
    /* As the facit renders it: the decision card's paragraph colour, the lead in body text. */
    color: var(--color-text-secondary);
}

.approval-flag strong[b-6zjybuvu8j] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.approval-facts[b-6zjybuvu8j] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-2) var(--space-4);
}

.fact[b-6zjybuvu8j] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.fact .term[b-6zjybuvu8j],
.block-label[b-6zjybuvu8j] {
    font-size: var(--fs-micro);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-text-muted);
    font-weight: var(--fw-semibold);
}

.fact .val[b-6zjybuvu8j] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text);
    overflow-wrap: anywhere;
}

.fact-note[b-6zjybuvu8j] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

/* The whole stored description, never truncated; long text scrolls inside the focusable box. */
.ticket-text[b-6zjybuvu8j] {
    max-height: 260px;
    overflow: auto;
    padding: var(--space-3);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    background: var(--color-bg-sunken);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.approval-actions[b-6zjybuvu8j],
.reject-actions[b-6zjybuvu8j] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.approval-actions .hint[b-6zjybuvu8j] {
    flex: 1 1 220px;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.reject-form[b-6zjybuvu8j] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border-soft);
}

.lock-note[b-6zjybuvu8j] {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    background: var(--color-surface-2);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}
/* /Components/Tickets/WorkflowTimeline.razor.rz.scp.css */
/* Component-specific overrides for WorkflowTimeline */

.timeline-details[b-0zx4t1grd1] {
    margin-top: var(--space-sm);
    display: flex;
    align-items: center;
}

.timeline-reason[b-0zx4t1grd1] {
    padding: var(--space-sm);
    background-color: var(--bg-color-secondary);
    border-radius: var(--border-radius-sm);
}
/* /Components/Workers/AgentDetectionTable.razor.rz.scp.css */
/* AgentDetectionTable — epic 33 AC-6 detection report. Tokens only. */

.agent-detection-table[b-segplxxi62] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
    max-width: 100%;
}

.agent-detection-loading[b-segplxxi62] {
    padding: var(--space-2) 0;
}

.agent-detection-empty-state[b-segplxxi62] {
    text-align: center;
    padding: var(--space-5) var(--space-3);
}

.agent-detection-empty-heading[b-segplxxi62] {
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
    color: var(--color-text-primary);
    margin: 0 0 var(--space-2);
}

.agent-detection-summary[b-segplxxi62] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.agent-detection-badges[b-segplxxi62] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
}

.agent-detection-meta[b-segplxxi62] {
    font-size: var(--fs-sm);
}

.agent-detection-name[b-segplxxi62] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-weight: var(--fw-medium);
    color: var(--color-text-primary);
}

.agent-detection-path[b-segplxxi62] {
    font-size: var(--fs-micro);
    margin-top: var(--space-1);
    overflow-wrap: anywhere;
    word-break: break-word;
}

.agent-detection-new-badge[b-segplxxi62] {
    font-size: var(--fs-micro);
}
/* /Components/Workers/WorkerStatusChip.razor.rz.scp.css */
.worker-chip[b-qfxdofy7sh] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-1);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-tight);
    max-width: 100%;
    min-width: 0;
    justify-content: center;
}

/* ::deep reaches the Badge primitive's scoped .badge element (state +
   agent pills are now child components; CSS isolation would otherwise
   scope this rule to this component's own DOM only). */
.worker-chip[b-qfxdofy7sh]  .badge {
    font-weight: var(--font-weight-medium);
}

.worker-chip-loading[b-qfxdofy7sh] {
    background-color: var(--bg-color-hover);
    color: var(--text-color-muted);
    padding: 0.35em 0.65em;
}

.worker-chip-agents[b-qfxdofy7sh] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-1);
    max-width: 100%;
    min-width: 0;
    justify-content: center;
}

/* ::deep reaches the agent pill's class, which is forwarded (via
   CssClassMerge) onto the Badge primitive's scoped .badge root; CSS
   isolation would otherwise scope this rule to this component's own DOM
   only and the agent-pill sizing/cursor would not apply. */
.worker-chip[b-qfxdofy7sh]  .worker-agent-pill {
    font-size: var(--font-size-xs);
    cursor: default;
}
/* /Components/Workflows/EventDetail.razor.rz.scp.css */
/* EventDetail — Epic 17 M2 Package C. Restores the horizontal spacing the
   removed Bootstrap `mx-2` gave the state-transition arrow glyph, without a
   raw Bootstrap utility class. Token-only. */

[b-os60sp294d] .event-transition-arrow {
    margin-left: var(--space-2);
    margin-right: var(--space-2);
    color: var(--color-text-muted);
}
/* /Components/Workflows/EventLogFilter.razor.rz.scp.css */
/* EventLogFilter — Epic 17 M2 Package C. Lets the search field's icon +
   input + clear button sit on one row inside the FilterBar without any
   Bootstrap input-group markup. Token-only. */

.event-search[b-9bz4vwcmox] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
}

.event-search[b-9bz4vwcmox]  .icon-text-label {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.event-search[b-9bz4vwcmox]  input {
    flex: 1;
}
/* /Components/Workflows/EventStatistics.razor.rz.scp.css */
/* EventStatistics — distribution column width. */

.distribution-col[b-bn4d1p9byd] {
    width: 60%;
}
/* /Pages/About.razor.rz.scp.css */
/* Public About page — Epic 28 facit
   (docs/planning/epic_28_public_positioning_agent_teams/mockups/about.html:
   .page-hero / .section / .section.alt / .section-title / .grid3 / .grid2 /
   .card / .cta-band). Token-only, correct in dark and light; the pre-Epic-17
   marketing chrome (gradient hero, hard-coded brand colours, Bootstrap grid)
   is retired. */

/* === Hero === */
.page-hero[b-6sn90fwrk9] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-8) var(--space-7) var(--space-6);
    text-align: center;
}

.page-hero h1[b-6sn90fwrk9] {
    font-size: 38px;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-3);
}

.page-hero p[b-6sn90fwrk9] {
    color: var(--color-text-secondary);
    font-size: 15px;
    max-width: 640px;
    margin: 0 auto;
}

/* === Section shells === */
.section[b-6sn90fwrk9] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

/* The mission sits in the same drawn region as the hero, so it follows it on
   the hero's own rhythm instead of opening a second full section gap. */
.section.section-tight-top[b-6sn90fwrk9] {
    padding-top: 0;
}

.section.alt[b-6sn90fwrk9] {
    max-width: none;
    background: var(--color-bg-sunken);
    padding: 0;
}

.about-inner[b-6sn90fwrk9] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

.section-title[b-6sn90fwrk9] {
    text-align: center;
    margin-bottom: var(--space-7);
}

.section-title .kicker[b-6sn90fwrk9] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-accent-text);
    display: block;
    margin-bottom: var(--space-2);
}

.section-title h2[b-6sn90fwrk9] {
    font-size: 30px;
    letter-spacing: -0.02em;
}

/* === Mission and story: narrow reading columns === */
.about-mission[b-6sn90fwrk9],
.about-story[b-6sn90fwrk9] {
    max-width: 760px;
    margin: 0 auto;
}

.about-mission[b-6sn90fwrk9] {
    text-align: center;
    margin-top: var(--space-7);
}

.about-story[b-6sn90fwrk9] {
    margin-top: var(--space-7);
}

.about-mission h2[b-6sn90fwrk9],
.about-story h2[b-6sn90fwrk9] {
    font-size: 26px;
    margin-bottom: var(--space-4);
}

.about-story h2[b-6sn90fwrk9] {
    text-align: center;
}

.about-mission p[b-6sn90fwrk9] {
    color: var(--color-text-secondary);
    font-size: 15px;
    line-height: var(--lh-normal);
}

.about-story p[b-6sn90fwrk9] {
    color: var(--color-text-secondary);
    font-size: 14.5px;
    line-height: var(--lh-normal);
    margin-bottom: var(--space-3);
}

.about-story p:last-child[b-6sn90fwrk9] {
    margin-bottom: 0;
}

.about-story b[b-6sn90fwrk9] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

/* === Card grids === */
.about-value-grid[b-6sn90fwrk9] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}

.about-tech-grid[b-6sn90fwrk9] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
}

.about-value-grid h3[b-6sn90fwrk9],
.about-tech-grid h3[b-6sn90fwrk9] {
    font-size: var(--fs-h2);
    margin-bottom: var(--space-2);
}

.about-value-grid p[b-6sn90fwrk9],
.about-tech-grid p[b-6sn90fwrk9] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    line-height: var(--lh-normal);
}

.about-glyph[b-6sn90fwrk9] {
    color: var(--color-accent);
}

/* === CTA band === */
.cta-band[b-6sn90fwrk9] {
    text-align: center;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    max-width: var(--content-max);
    margin: 0 auto var(--space-9);
    box-shadow: var(--shadow-sm);
}

.cta-band h2[b-6sn90fwrk9] {
    font-size: 28px;
    margin-bottom: var(--space-3);
    letter-spacing: -0.02em;
}

.cta-band p[b-6sn90fwrk9] {
    color: var(--color-text-muted);
    margin-bottom: var(--space-5);
}

.about-cta-actions[b-6sn90fwrk9] {
    display: flex;
    gap: var(--space-3);
    justify-content: center;
    flex-wrap: wrap;
}

/* === Responsive === */
@media (max-width: 991px) {
    .page-hero h1[b-6sn90fwrk9] {
        font-size: 30px;
    }

    .about-value-grid[b-6sn90fwrk9],
    .about-tech-grid[b-6sn90fwrk9] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Admin/Billing/ChangePlan.razor.rz.scp.css */
/* Plan Change Page Styles */

/* Layout grids (replace bootstrap row/col). */
.changeplan-current[b-7p9d9qptty] {
    max-width: 66%;
    margin-left: auto;
    margin-right: auto;
}

.changeplan-current-split[b-7p9d9qptty] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    align-items: center;
}

.changeplan-grid[b-7p9d9qptty] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}

.changeplan-compare[b-7p9d9qptty] {
    display: grid;
    grid-template-columns: 5fr 2fr 5fr;
    gap: var(--space-3);
    align-items: center;
}

.changeplan-compare-arrow[b-7p9d9qptty] {
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (max-width: 991px) {
    .changeplan-current[b-7p9d9qptty] {
        max-width: 100%;
    }

    .changeplan-grid[b-7p9d9qptty] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .changeplan-current-split[b-7p9d9qptty],
    .changeplan-compare[b-7p9d9qptty] {
        grid-template-columns: 1fr;
    }
}

.modal.show[b-7p9d9qptty] {
    animation: fadeIn-b-7p9d9qptty 0.2s ease-in-out;
}

@keyframes fadeIn-b-7p9d9qptty {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.modal-dialog[b-7p9d9qptty] {
    animation: slideIn-b-7p9d9qptty 0.3s ease-out;
}

@keyframes slideIn-b-7p9d9qptty {
    from {
        transform: translateY(-50px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.card.border-primary[b-7p9d9qptty] {
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}
/* /Pages/Admin/Billing/Index.razor.rz.scp.css */
/* Billing Dashboard Styles */

/* Card grids (replace bootstrap row/col). */
.billing-grid[b-09xh38f9fr] {
    margin-bottom: var(--space-5);
}

.billing-manage-layout[b-09xh38f9fr] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-5);
    align-items: start;
    margin-bottom: var(--space-5);
}

@media (max-width: 991px) {
    .billing-manage-layout[b-09xh38f9fr] {
        grid-template-columns: 1fr;
    }
}

.modal.show[b-09xh38f9fr] {
    animation: fadeIn-b-09xh38f9fr 0.2s ease-in-out;
}

@keyframes fadeIn-b-09xh38f9fr {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.modal-dialog[b-09xh38f9fr] {
    animation: slideIn-b-09xh38f9fr 0.3s ease-out;
}

@keyframes slideIn-b-09xh38f9fr {
    from {
        transform: translateY(-50px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.billing-discount-header[b-09xh38f9fr] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    width: 100%;
}

.discount-note[b-09xh38f9fr] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /Pages/Admin/Processes/BuiltIn.razor.rz.scp.css */
.editor-grid[b-un4e488w03] {
    display: grid;
    grid-template-columns: minmax(280px, 5fr) minmax(320px, 7fr);
    gap: var(--space-4);
    align-items: start;
}

.editor-col-right[b-un4e488w03] {
    position: sticky;
    top: calc(var(--topbar-h) + var(--space-4));
}

/* ≥900px is desktop: the editor column stays sticky (commit 77cd1b52). */
@media (max-width: 899.98px) {
    .editor-grid[b-un4e488w03] {
        grid-template-columns: 1fr;
    }

    .editor-col-right[b-un4e488w03] {
        position: static;
    }
}
/* /Pages/Admin/Processes/Edit.razor.rz.scp.css */
.editor-grid[b-j83q5dg7an] {
    display: grid;
    grid-template-columns: minmax(280px, 5fr) minmax(320px, 7fr);
    gap: var(--space-4);
    align-items: start;
}

.editor-col-right[b-j83q5dg7an] {
    position: sticky;
    top: calc(var(--topbar-h) + var(--space-4));
}

/* ≥900px is desktop: the editor column stays sticky (commit 77cd1b52). */
@media (max-width: 899.98px) {
    .editor-grid[b-j83q5dg7an] {
        grid-template-columns: 1fr;
    }

    .editor-col-right[b-j83q5dg7an] {
        position: static;
    }
}
/* /Pages/Admin/Processes/Index.razor.rz.scp.css */
.starter-preview-json[b-wbwmne26x3] {
    white-space: pre-wrap;
    max-height: 24rem;
    overflow: auto;
}

#starter-library:focus[b-wbwmne26x3] {
    outline: none;
}
/* /Pages/Admin/Projects/Process.razor.rz.scp.css */
.lead-note[b-q9f5huz891] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.9375rem;
}

.step-count-chips[b-q9f5huz891] {
    display: flex;
    gap: var(--space-2, 0.5rem);
    align-items: center;
}

.save-actions[b-q9f5huz891] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    border-top: 1px solid var(--border-subtle, #2a2f3a);
    padding-top: var(--space-3, 0.75rem);
}

.save-note[b-q9f5huz891] {
    color: var(--text-muted, #9aa4b2);
    font-size: 0.875rem;
    margin-right: auto;
}
/* /Pages/AgentPrompts/Edit.razor.rz.scp.css */
/* AgentPrompts Edit — token-only. Inner two-up info/reference grid and
   clone-action spacing replacing Bootstrap mb-3 / grid columns. */

.clone-action[b-utyyfcfo0r] {
    margin-bottom: var(--space-4);
}

.edit-inner-grid[b-utyyfcfo0r] {
    grid-template-columns: 1fr 1fr;
}

@media (max-width: 1080px) {
    .edit-inner-grid[b-utyyfcfo0r] {
        grid-template-columns: 1fr;
    }
}

/* Local label/value description grammar (mockup quiet pairs). */
.desc[b-utyyfcfo0r] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.desc-line[b-utyyfcfo0r] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.desc-line dt[b-utyyfcfo0r] {
    font-size: var(--fs-micro);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-muted);
}

.desc-line dd[b-utyyfcfo0r] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text);
}
/* /Pages/AgentPrompts/Index.razor.rz.scp.css */
/* AgentPrompts Index — mockup facit 05-prompts.html:64-132. Field
   widths and list gap match the mockup .toolbar / .col grammar.
   Token-only. */

.prompts-field-fixed[b-t56sihontw] {
    flex: 0 0 240px;
}

.prompts-field-grow[b-t56sihontw] {
    flex: 1;
    min-width: 160px;
}

.templates-list[b-t56sihontw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

/* Step heading inside a process group. Quieter than the Section title above
   it, so the two read as a hierarchy rather than as two peer headings. */
.prompt-step-heading[b-t56sihontw] {
    margin: var(--space-4) 0 var(--space-2);
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    color: var(--color-text-muted);
}

.prompt-step-heading:first-child[b-t56sihontw] {
    margin-top: 0;
}

/* The rows under one step keep the list gap grammar unchanged. */
.prompt-step-rows[b-t56sihontw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
/* /Pages/AgentPrompts/Preview.razor.rz.scp.css */
/* AgentPrompts Preview — token-only. Badge cluster + sample-data toggle
   replacing Bootstrap d-flex/form-switch chrome. */

.cluster[b-ydbfz35svm] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    align-items: center;
}

.preview-meta-card[b-ydbfz35svm] {
    margin-bottom: 0;
}

.sample-toggle[b-ydbfz35svm] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    cursor: pointer;
}

/* Local label/value description grammar (mockup quiet pairs). */
.desc[b-ydbfz35svm] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.desc-line[b-ydbfz35svm] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.desc-line dt[b-ydbfz35svm] {
    font-size: var(--fs-micro);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-muted);
}

.desc-line dd[b-ydbfz35svm] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text);
}
/* /Pages/Auth/SelectTenant.razor.rz.scp.css */
/* Bootstrap's bg-primary-subtle is not remapped by the app's [data-theme] tokens, so a selected
   row stayed a light fill under light text in dark mode. The accent tokens follow the theme. */
.picker-row-wrapper[b-wy3rdpjixg] {
    border: 1px solid var(--color-border);
}

.picker-row-wrapper.is-selected[b-wy3rdpjixg] {
    background: var(--color-accent-soft);
    border-color: var(--color-accent);
}
/* /Pages/Dashboard.razor.rz.scp.css */
/* Dashboard — page-local layout helpers, mockup 06-developer-dual.
   Token-only, both modes. Structural styling lives in pure-UI
   components (StatGrid/Grid2/Card/Donut/RateBar/ActivityItem). */

.dashboard[b-78t9dq7rti] {
    display: block;
}

/* Full-width cards below the two-up grids (Awaiting / Quick Actions). */
.dashboard[b-78t9dq7rti]  .dash-card-wide {
    margin-top: var(--space-5);
}

/* Rates card divider — mockup `.divider`. */
.dash-divider[b-78t9dq7rti] {
    height: 1px;
    background-color: var(--color-divider);
    border: none;
    margin: var(--space-5) 0;
}

/* Rates card 3-up mini totals — mockup centered row. */
.mini-stats[b-78t9dq7rti] {
    display: flex;
    text-align: center;
}

.mini-stat[b-78t9dq7rti] {
    flex: 1;
}

.mini-val[b-78t9dq7rti] {
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: var(--fw-semibold);
    line-height: var(--lh-tight);
}

.mini-val-success[b-78t9dq7rti] {
    color: var(--color-success-text);
}

.mini-val-warning[b-78t9dq7rti] {
    color: var(--color-warning-text);
}

.mini-val-danger[b-78t9dq7rti] {
    color: var(--color-danger-text);
}

.mini-lbl[b-78t9dq7rti] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    margin-top: var(--space-1);
}

/* Workflow duration rows. */
.duration-stat[b-78t9dq7rti] {
    margin-bottom: var(--space-4);
}

.duration-stat:last-child[b-78t9dq7rti] {
    margin-bottom: 0;
}

.duration-lbl[b-78t9dq7rti] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.duration-val[b-78t9dq7rti] {
    font-size: var(--fs-h2);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    margin-top: var(--space-1);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.duration-val-success[b-78t9dq7rti] {
    color: var(--color-success-text);
}

.duration-val-warning[b-78t9dq7rti] {
    color: var(--color-warning-text);
}

.activity-list[b-78t9dq7rti] {
    display: flex;
    flex-direction: column;
}

.card-action[b-78t9dq7rti] {
    margin-top: var(--space-4);
    display: flex;
    justify-content: center;
}

/* Quick Actions — even tile grid of secondary buttons. */
.quick-actions[b-78t9dq7rti] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-3);
}

.quick-actions[b-78t9dq7rti]  .quick-action {
    width: 100%;
}

@media (max-width: 1080px) {
    .quick-actions[b-78t9dq7rti] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .quick-actions[b-78t9dq7rti] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Discovery/Board.razor.rz.scp.css */
.discovery-header[b-neajajpgjp] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
}

.discovery-header-save[b-neajajpgjp] {
    padding-bottom: 1rem;
}

.discovery-archived[b-neajajpgjp] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.discovery-archived li[b-neajajpgjp] {
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
}

.discovery-archived-title[b-neajajpgjp] {
    color: var(--color-text-muted);
    font-size: 0.85rem;
}
/* /Pages/Documentation.razor.rz.scp.css */
/* Public documentation page — Epic 28 facit
   (docs/planning/epic_28_public_positioning_agent_teams/mockups/documentation.html:
   .page-hero :424-426, .doc-layout / .toc / .toc-nav :441-447, .doc-sec and
   ul.bul :448-454). Token-only, correct in dark and light.

   The pre-Epic-28 shell is retired with the copy it framed: a bootstrap-width
   container, the borrowed .legal-layout grid, and ~140 lines of
   .markdown-content rules that styled a class no element on this page ever
   carried — under CSS isolation they could never match anything.

   The shell classes are re-declared here rather than shared, exactly as
   About.razor.css, Features.razor.css and GettingStarted.razor.css each declare
   their own: C4 keeps component selectors out of global CSS. The duplication is
   already recorded for S8's AC-9 construction audit.

   Table chrome is UI/Display/DataTable's, not this page's — nothing here styles
   a th or a td. */

/* === Hero === */
.page-hero[b-bm7qxtp3id] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-8) var(--space-7) var(--space-6);
    text-align: center;
}

.page-hero h1[b-bm7qxtp3id] {
    font-size: 38px;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-3);
}

.page-hero p[b-bm7qxtp3id] {
    color: var(--color-text-secondary);
    font-size: 15px;
    max-width: 640px;
    margin: 0 auto;
}

/* === Two-column doc shell === */
.doc-layout[b-bm7qxtp3id] {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: var(--space-6);
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 var(--space-7) var(--space-9);
}

.doc-layout > *[b-bm7qxtp3id] {
    min-width: 0;
}

/* === Sticky contents === */
.toc[b-bm7qxtp3id] {
    position: sticky;
    top: calc(var(--topbar-h) + var(--space-4));
    align-self: start;
}

.toc h3[b-bm7qxtp3id] {
    font-size: var(--fs-h2);
    margin-bottom: var(--space-3);
}

.toc-nav[b-bm7qxtp3id] {
    display: flex;
    flex-direction: column;
}

.toc-nav a[b-bm7qxtp3id] {
    display: block;
    padding: 5px var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    border-radius: var(--radius-xs);
    text-decoration: none;
}

.toc-nav a.sub[b-bm7qxtp3id] {
    padding-left: var(--space-5);
    color: var(--color-text-muted);
    font-size: var(--fs-xs);
}

.toc-nav a.on[b-bm7qxtp3id] {
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
}

.toc-nav a:hover[b-bm7qxtp3id] {
    color: var(--color-accent-text);
}

/* === Sections === */
.doc-sec[b-bm7qxtp3id] {
    display: block;
    margin-bottom: var(--space-6);
    scroll-margin-top: calc(var(--topbar-h) + var(--space-4));
}

.doc-sec h2[b-bm7qxtp3id] {
    font-size: 24px;
    margin-bottom: var(--space-4);
}

.doc-sec h3[b-bm7qxtp3id] {
    font-size: var(--fs-h2);
    margin: var(--space-5) 0 var(--space-2);
    scroll-margin-top: calc(var(--topbar-h) + var(--space-4));
}

.doc-sec p[b-bm7qxtp3id] {
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    margin-bottom: var(--space-3);
    line-height: var(--lh-normal);
}

/* The facit's dotted list: an accent middot in the gutter, not a disc. */
.doc-sec ul.bul[b-bm7qxtp3id] {
    list-style: none;
    margin: 0 0 var(--space-3);
    padding: 0;
}

.doc-sec ul.bul li[b-bm7qxtp3id] {
    position: relative;
    padding-left: var(--space-4);
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    line-height: var(--lh-normal);
    margin-bottom: 6px;
}

.doc-sec ul.bul li[b-bm7qxtp3id]::before {
    content: "\00B7";
    position: absolute;
    left: 6px;
    color: var(--color-accent-text);
}

/* === Section furniture === */
.doc-lead[b-bm7qxtp3id] {
    color: var(--color-text-secondary);
    margin-bottom: var(--space-4);
}

.doc-mono[b-bm7qxtp3id] {
    font-family: var(--font-mono);
}

/* The state and phase tables read as reference, so the first column stays on one
   line down to the phone breakpoint, where it is allowed to wrap. */
td.doc-mono[b-bm7qxtp3id] {
    color: var(--color-text);
    white-space: nowrap;
}

.doc-art[b-bm7qxtp3id] {
    margin-bottom: var(--space-4);
}

.doc-axes[b-bm7qxtp3id] {
    margin-top: var(--space-4);
}

.doc-profile-key[b-bm7qxtp3id] {
    margin-bottom: var(--space-3);
}

.doc-action[b-bm7qxtp3id],
.doc-back-to-top[b-bm7qxtp3id] {
    margin-bottom: 0;
}

.doc-back-to-top[b-bm7qxtp3id] {
    display: flex;
    justify-content: center;
    margin-top: var(--space-4);
}

/* === Responsive === */
@media (max-width: 991px) {
    .page-hero h1[b-bm7qxtp3id] {
        font-size: 30px;
    }

    .doc-layout[b-bm7qxtp3id] {
        grid-template-columns: 1fr;
        padding: 0 var(--space-5) var(--space-8);
    }

    /* Stacked, the contents card is a list at the top of the page rather than a
       rail beside it, so it must not stick. */
    .toc[b-bm7qxtp3id] {
        position: static;
    }
}

@media (max-width: 640px) {
    .doc-sec h2[b-bm7qxtp3id] {
        font-size: 21px;
    }

    td.doc-mono[b-bm7qxtp3id] {
        white-space: normal;
    }
}
/* /Pages/Dpa.razor.rz.scp.css */
/* Data Processing Agreement page — token-based chrome. */

.dpa-hero[b-nppsfpkaqc] {
    background: linear-gradient(135deg, var(--bg-color-secondary) 0%, var(--bg-color-tertiary) 100%);
}

.toc-sidebar[b-nppsfpkaqc] {
    top: 20px;
}

/* Legal-page two-column layout (replaces bootstrap row/col) */
.legal-layout[b-nppsfpkaqc] {
    display: grid;
    grid-template-columns: 25% 1fr;
    gap: var(--space-5);
}

@media (max-width: 991px) {
    .legal-layout[b-nppsfpkaqc] {
        grid-template-columns: 1fr;
    }
}

.toc-nav[b-nppsfpkaqc] {
    display: flex;
    flex-direction: column;
}

.toc-item[b-nppsfpkaqc] {
    display: block;
    padding: var(--space-2) var(--space-3);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
}

.toc-item:hover[b-nppsfpkaqc] {
    color: var(--color-accent);
    background: var(--color-surface-2);
}
/* /Pages/Errors/Index.razor.rz.scp.css */
/* Errors/Index — Epic 17 M2 Package C. Token-only column sizing for the
   DataTable that replaced the RadzenDataGrid. No Bootstrap utilities. */

.error-select-col[b-jdanpvp166] {
    width: 44px;
}

.error-message-cell[b-jdanpvp166] {
    max-width: 400px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.error-created-cell[b-jdanpvp166] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    white-space: nowrap;
}

.error-pager[b-jdanpvp166] {
    padding: var(--space-3) var(--space-5);
    border-top: 1px solid var(--color-divider);
}
/* /Pages/Features.razor.rz.scp.css */
/* Public Features page — Epic 28 facit
   (docs/planning/epic_28_public_positioning_agent_teams/mockups/features.html:
   .page-hero / .hero-eyebrow / .fblock / .fdetails / .card / .cta-band).
   Token-only, correct in dark and light. The facit's planned block is gone with
   the claim it carried: user-defined workflows ship, so every section on the
   page is a shipped one.

   What this file replaces: a light-only gradient hero, two animated blob shapes,
   white illustration cards with hard-coded rgba shadows, and alternating
   nth-of-type section backgrounds. None of it could resolve in dark mode, which
   is why the page is re-drawn rather than re-tinted. */

/* === Hero === */
.page-hero[b-mfwg663pit] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-8) var(--space-7) var(--space-6);
    text-align: center;
}

.page-hero h1[b-mfwg663pit] {
    font-size: 38px;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-3);
}

.page-hero p[b-mfwg663pit] {
    color: var(--color-text-secondary);
    font-size: 15px;
    max-width: 640px;
    margin: 0 auto;
}

.hero-eyebrow[b-mfwg663pit] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
    background: var(--color-accent-soft);
    border: 1px solid var(--color-accent-line);
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    margin-bottom: var(--space-5);
}

/* === Section shell === */
.section[b-mfwg663pit] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

/* The first feature block follows the hero on the hero's own rhythm instead of
   opening a second full section gap. */
.section.section-tight-top[b-mfwg663pit] {
    padding-top: 0;
}

/* === Feature blocks === */
.fblock[b-mfwg663pit] {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: var(--space-7);
    align-items: center;
    padding: var(--space-7) 0;
    border-top: 1px solid var(--color-divider);
}

.fblock:first-of-type[b-mfwg663pit] {
    border-top: 0;
}

.fblock.rev > .fcopy[b-mfwg663pit] {
    order: 2;
}

/* The two feature visuals hold fixed-composition art: LandingAgentTeamArt and
   LandingEpicPlanArt draw a specimen whose minimum width is set by the longest
   row in it, and D-O2/D-O3 keep that composition inside the components rather
   than letting a page reshape it. A grid item defaults to min-width:auto, so at
   375px the epic-plan art's 407px minimum was stretching the whole .fblock and
   carrying every line of the copy beside it past the viewport — the page
   scrolled sideways on a phone. min-width:0 lets the cell shrink to its column;
   the art then scrolls inside its own box instead of the document scrolling. */
.fvisual[b-mfwg663pit] {
    min-width: 0;
    overflow-x: auto;
}

.fblock h2[b-mfwg663pit] {
    font-size: 24px;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-3);
}

.fglyph[b-mfwg663pit] {
    color: var(--color-accent);
}

.fblock .lead2[b-mfwg663pit] {
    color: var(--color-text-secondary);
    font-size: 14.5px;
    margin-bottom: var(--space-4);
}

.fdetails[b-mfwg663pit] {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

.fdetails li[b-mfwg663pit] {
    display: flex;
    gap: var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    margin-bottom: var(--space-3);
    line-height: var(--lh-snug);
}

.fdetails li:last-child[b-mfwg663pit] {
    margin-bottom: 0;
}

.fdetails li .tick[b-mfwg663pit] {
    color: var(--color-success-text);
    flex: none;
}

.fdetails li b[b-mfwg663pit] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.fblock .card h3[b-mfwg663pit] {
    font-size: var(--fs-h2);
    margin-bottom: var(--space-2);
}

.fblock .card p[b-mfwg663pit] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    line-height: var(--lh-normal);
    margin-bottom: 0;
}

/* === Checkpoint list (Human checkpoints card) ===
   A run's checkpoints in the same three-state vocabulary the agent art uses.
   S1's state dot is private to LandingAgentTeamArt (D-O3) and Epic 24's
   UI/Agents/AgentStateDot takes domain enums, so this list carries its own
   marker; the duplication is recorded for S8's construction audit. */
.cp-list[b-mfwg663pit] {
    list-style: none;
    padding-left: 0;
    margin: var(--space-3) 0 0;
}

.cp-list li[b-mfwg663pit] {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    margin-bottom: var(--space-2);
    line-height: var(--lh-snug);
}

.cp-list li:last-child[b-mfwg663pit] {
    margin-bottom: 0;
}

.cp-list li b[b-mfwg663pit] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.cp-dot[b-mfwg663pit] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
    margin-top: 6px;
}

.cp-dot.done[b-mfwg663pit] {
    background: var(--color-success-text);
}

.cp-dot.waiting[b-mfwg663pit] {
    background: var(--color-warning-text);
}

.cp-dot.queued[b-mfwg663pit] {
    background: transparent;
    border: 1px dashed var(--color-border-strong);
}

/* === MCP connect transcript ===
   The same window chrome the art components draw, in one column. */
.mcp-art[b-mfwg663pit] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.mcp-art .bar[b-mfwg663pit] {
    height: 30px;
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 var(--space-3);
}

.mcp-art .bar i[b-mfwg663pit] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-border-strong);
    display: block;
}

.mcp-art .bar-title[b-mfwg663pit] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--color-text-muted);
}

.mcp-body[b-mfwg663pit] {
    padding: var(--space-4);
}

.mcp-art .console[b-mfwg663pit] {
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    padding: 12px;
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.7;
    color: var(--color-text-muted);
    overflow-x: auto;
}

.mcp-art .console .prompt[b-mfwg663pit] {
    color: var(--color-accent-text);
}

.mcp-art .console .ok-line[b-mfwg663pit] {
    color: var(--color-success-text);
}

.mcp-art .console .accent-line[b-mfwg663pit] {
    color: var(--color-accent-text);
}

.mcp-art .console .faint-line[b-mfwg663pit] {
    color: var(--color-text-faint);
}

/* === CTA band === */
.cta-band[b-mfwg663pit] {
    text-align: center;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    max-width: var(--content-max);
    margin: 0 auto var(--space-9);
    box-shadow: var(--shadow-sm);
}

.cta-band h2[b-mfwg663pit] {
    font-size: 28px;
    margin-bottom: var(--space-3);
    letter-spacing: -0.02em;
}

.cta-band p[b-mfwg663pit] {
    color: var(--color-text-muted);
    margin-bottom: var(--space-5);
}

/* === Responsive === */
@media (max-width: 991px) {
    .page-hero h1[b-mfwg663pit] {
        font-size: 30px;
    }

    .page-hero[b-mfwg663pit],
    .section[b-mfwg663pit] {
        padding-left: var(--space-5);
        padding-right: var(--space-5);
    }

    .fblock[b-mfwg663pit] {
        grid-template-columns: 1fr;
    }

    .fblock.rev > .fcopy[b-mfwg663pit] {
        order: 0;
    }
}
/* /Pages/GettingStarted.razor.rz.scp.css */
/* Public getting-started page — Epic 28 facit
   (docs/planning/epic_28_public_positioning_agent_teams/mockups/getting-started.html:
   .page-hero / .section / .section.alt / .section-title / .steps3 / .grid3 /
   .grid2 / .card / .tbl). Token-only, correct in dark and light; the pre-Epic-28
   page shell (a bootstrap-width container, three bespoke glyph grids and
   text-*-coloured step numbers) is retired with the copy it framed.

   The shell classes are re-declared here rather than shared, exactly as
   About.razor.css and Features.razor.css each declare their own: C4 keeps
   component selectors out of global CSS. The triplication is recorded for S8's
   AC-9 construction audit. */

/* === Hero === */
.page-hero[b-2dhl3phkey] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-8) var(--space-7) var(--space-6);
    text-align: center;
}

.page-hero h1[b-2dhl3phkey] {
    font-size: 38px;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-3);
}

.page-hero p[b-2dhl3phkey] {
    color: var(--color-text-secondary);
    font-size: 15px;
    max-width: 640px;
    margin: 0 auto;
}

/* === Section shells === */
.section[b-2dhl3phkey] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

/* The overview follows the hero inside the same drawn region, so it keeps the
   hero's rhythm instead of opening a second full section gap. */
.section.section-tight-top[b-2dhl3phkey] {
    padding-top: 0;
}

.section.alt[b-2dhl3phkey] {
    max-width: none;
    background: var(--color-bg-sunken);
    padding: 0;
}

.gs-inner[b-2dhl3phkey] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

.section-title[b-2dhl3phkey] {
    text-align: center;
    margin-bottom: var(--space-7);
}

.section-title .kicker[b-2dhl3phkey] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-accent-text);
    display: block;
    margin-bottom: var(--space-2);
}

.section-title h2[b-2dhl3phkey] {
    font-size: 30px;
    letter-spacing: -0.02em;
}

.section-title p[b-2dhl3phkey] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    margin-top: var(--space-2);
}

/* === Overview lead === */
.gs-lead[b-2dhl3phkey] {
    max-width: 760px;
    margin: 0 auto;
    text-align: center;
    color: var(--color-text-secondary);
    font-size: 15px;
    line-height: var(--lh-normal);
}

/* === Grids === */
.steps3[b-2dhl3phkey] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-6);
    margin-top: var(--space-7);
}

.grid3[b-2dhl3phkey] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}

.grid2[b-2dhl3phkey] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
}

/* === Cards === */
.gs-state-card h3[b-2dhl3phkey],
.gs-action-card h3[b-2dhl3phkey],
.gs-decision-card h3[b-2dhl3phkey] {
    font-size: var(--fs-h2);
    margin-bottom: var(--space-2);
}

.gs-state-card p[b-2dhl3phkey],
.gs-action-card p[b-2dhl3phkey],
.gs-decision-card p[b-2dhl3phkey] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    line-height: var(--lh-normal);
}

/* The bare first-run rendering sits directly under the prose it explains. */
.gs-state-card p[b-2dhl3phkey] {
    margin-bottom: var(--space-3);
}

.gs-action[b-2dhl3phkey] {
    margin-top: var(--space-3);
    margin-bottom: 0;
}

.gs-decision-card[b-2dhl3phkey] {
    margin-top: var(--space-6);
}

.gs-mono[b-2dhl3phkey] {
    font-family: var(--font-mono);
    color: var(--color-text);
    white-space: nowrap;
}

/* === Responsive === */
@media (max-width: 991px) {
    .page-hero h1[b-2dhl3phkey] {
        font-size: 30px;
    }

    .steps3[b-2dhl3phkey],
    .grid3[b-2dhl3phkey],
    .grid2[b-2dhl3phkey] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    /* A three-column prose table cannot hold a nowrap first column at 375px
       without pushing the row past the viewport. */
    .gs-mono[b-2dhl3phkey] {
        white-space: normal;
    }
}
/* /Pages/HowItWorks.razor.rz.scp.css */
/* Public how-it-works page — Epic 50 facit
   (docs/planning/epic_50_public_discoverability/mockups/how-it-works.html:
   :544-576 page anatomy, :671-674 related strip, :677-700 responsive,
   :703-745 phase flow, human checkpoints and runs-where diagram).
   Token-only, correct in dark and light. Badge and Button styles belong to
   their /UI components and are not repeated here. */

/* === Hero === */
.page-hero[b-sn853bw2zp] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-8) var(--space-7) var(--space-6);
    text-align: center;
}

.page-hero h1[b-sn853bw2zp] {
    font-size: 38px;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-3);
}

.page-hero p[b-sn853bw2zp] {
    color: var(--color-text-secondary);
    font-size: 15px;
    max-width: 680px;
    margin: 0 auto;
}

.hero-eyebrow[b-sn853bw2zp] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
    background: var(--color-accent-soft);
    border: 1px solid var(--color-accent-line);
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    margin-bottom: var(--space-5);
}

.hero-cta[b-sn853bw2zp] {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
    flex-wrap: wrap;
}

/* === Section shells === */
.section[b-sn853bw2zp] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

.section.tight[b-sn853bw2zp] {
    padding-top: var(--space-6);
    padding-bottom: var(--space-6);
}

.section.alt[b-sn853bw2zp] {
    max-width: none;
    background: var(--color-bg-sunken);
    padding: 0;
}

.section.alt > .inner[b-sn853bw2zp] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

.section-title[b-sn853bw2zp] {
    text-align: center;
    margin-bottom: var(--space-7);
}

.section-title .kicker[b-sn853bw2zp] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-accent-text);
    display: block;
    margin-bottom: var(--space-2);
}

.section-title h2[b-sn853bw2zp] {
    font-size: 30px;
    letter-spacing: -0.02em;
}

.section-title p[b-sn853bw2zp] {
    color: var(--color-text-muted);
    font-size: var(--fs-body);
    margin: var(--space-2) auto 0;
    max-width: 680px;
}

/* === Closing call to action === */
.cta-band[b-sn853bw2zp] {
    text-align: center;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    max-width: var(--content-max);
    margin: 0 auto var(--space-9);
    box-shadow: var(--shadow-sm);
}

.cta-band h2[b-sn853bw2zp] {
    font-size: 28px;
    margin-bottom: var(--space-3);
    letter-spacing: -0.02em;
}

.cta-band p[b-sn853bw2zp] {
    color: var(--color-text-muted);
    margin-bottom: var(--space-5);
}

.cta-band .hero-cta[b-sn853bw2zp] {
    justify-content: center;
    margin-bottom: 0;
}

/* === Related strip === */
.related[b-sn853bw2zp] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 var(--space-7) var(--space-7);
}

.related a[b-sn853bw2zp] {
    display: block;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    background: var(--color-surface-1);
}

.related .rl-k[b-sn853bw2zp] {
    display: block;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-faint);
}

.related .rl-t[b-sn853bw2zp] {
    display: block;
    color: var(--color-text);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    margin-top: 2px;
}

.mono[b-sn853bw2zp] {
    font-family: var(--font-mono);
}

/* === Phase flow === */
.kind-legend[b-sn853bw2zp] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: center;
    margin-bottom: var(--space-6);
}

.pf[b-sn853bw2zp] {
    max-width: 960px;
    margin: 0 auto;
    border-bottom: 1px solid var(--color-divider);
}

.pf-row[b-sn853bw2zp] {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) 220px;
    gap: var(--space-4);
    padding: var(--space-4) 0;
    border-top: 1px solid var(--color-divider);
    align-items: start;
}

.pf-num[b-sn853bw2zp] {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    color: var(--color-text-secondary);
}

.pf-row.is-human .pf-num[b-sn853bw2zp] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

.pf-row.is-sub .pf-num[b-sn853bw2zp] {
    width: 34px;
    height: 34px;
    margin-left: 4px;
    font-size: var(--fs-xs);
    border-style: dashed;
}

.pf-row.is-optional .pf-num[b-sn853bw2zp] {
    border-style: dashed;
    color: var(--color-text-muted);
}

.pf-body h3[b-sn853bw2zp] {
    font-size: var(--fs-h2);
    margin-bottom: 4px;
}

.pf-body p[b-sn853bw2zp] {
    margin: 0;
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    line-height: var(--lh-normal);
}

.pf-art[b-sn853bw2zp] {
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.pf-who[b-sn853bw2zp] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
}

.pf-who .who-note[b-sn853bw2zp] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

/* === Human checkpoints === */
.cp-list[b-sn853bw2zp] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
}

.cp[b-sn853bw2zp] {
    border: 1px solid var(--color-warning-line);
    background: var(--color-surface-1);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
    box-shadow: inset 3px 0 0 var(--color-warning);
}

.cp .cp-phase[b-sn853bw2zp] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-warning-text);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.cp h3[b-sn853bw2zp] {
    font-size: var(--fs-h3);
    margin: 4px 0 6px;
}

.cp p[b-sn853bw2zp] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

/* === Runs-where diagram === */
.rw[b-sn853bw2zp] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 56px minmax(0, 1.2fr) 56px minmax(0, 1.2fr);
    gap: var(--space-2);
    align-items: stretch;
}

.rw-node[b-sn853bw2zp] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: var(--space-4);
}

.rw-node.is-server[b-sn853bw2zp] {
    border-color: var(--color-accent-line);
    box-shadow: var(--glow-accent);
}

.rw-node .rw-k[b-sn853bw2zp] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-faint);
}

.rw-node h3[b-sn853bw2zp] {
    font-size: var(--fs-h3);
    margin: 4px 0 var(--space-3);
}

.rw-node ul[b-sn853bw2zp] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rw-node li[b-sn853bw2zp] {
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    padding-left: 16px;
    position: relative;
    margin-bottom: 6px;
    line-height: var(--lh-snug);
}

.rw-node li[b-sn853bw2zp]::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--color-success-text);
}

.rw-node li.never[b-sn853bw2zp]::before {
    content: "\2715";
    color: var(--color-danger-text);
}

.rw-node li.never[b-sn853bw2zp] {
    color: var(--color-text-muted);
}

.rw-arrow[b-sn853bw2zp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    text-align: center;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.rw-arrow .glyph[b-sn853bw2zp] {
    font-size: 20px;
    color: var(--color-accent);
}

.rw-arrow .glyph[b-sn853bw2zp]::before {
    content: "\21C4";
}

/* === Responsive === */
@media (max-width: 991px) {
    .section[b-sn853bw2zp],
    .section.alt > .inner[b-sn853bw2zp],
    .page-hero[b-sn853bw2zp],
    .related[b-sn853bw2zp] {
        padding-left: var(--space-5);
        padding-right: var(--space-5);
    }

    .page-hero h1[b-sn853bw2zp] {
        font-size: 30px;
    }

    .related[b-sn853bw2zp],
    .cp-list[b-sn853bw2zp],
    .rw[b-sn853bw2zp] {
        grid-template-columns: 1fr;
    }

    .pf-row[b-sn853bw2zp] {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    .pf-who[b-sn853bw2zp] {
        grid-column: 2;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
    }

    .rw-arrow[b-sn853bw2zp] {
        flex-direction: row;
        padding: var(--space-1) 0;
    }

    .rw-arrow .glyph[b-sn853bw2zp]::before {
        content: "\21C5";
    }
}

@media (max-width: 640px) {
    .kind-legend[b-sn853bw2zp]  .badge,
    .pf-who[b-sn853bw2zp]  .badge {
        white-space: normal;
    }

    .page-hero h1[b-sn853bw2zp] {
        font-size: 26px;
    }

    .section-title h2[b-sn853bw2zp] {
        font-size: 24px;
    }

    .section[b-sn853bw2zp] {
        padding-top: var(--space-7);
        padding-bottom: var(--space-7);
    }

    .cta-band[b-sn853bw2zp] {
        padding: var(--space-6) var(--space-4);
        margin-left: var(--space-4);
        margin-right: var(--space-4);
    }
}
/* /Pages/Inbox.razor.rz.scp.css */
/* Full-width page wrapper (replaces bootstrap container-fluid). */
.inbox-page[b-domin2u0d3] {
    width: 100%;
    padding-left: var(--space-3);
    padding-right: var(--space-3);
}
/* /Pages/Index.razor.rz.scp.css */
/* Public landing — mockup hero / section / steps3 / feat-grid / cta-band
   (06-developer-dark-dual/01-landing.html, styles.css:1038-1167).
   Token-only; the old gradient/blob/SVG Bootstrap marketing chrome was
   retired in Epic 17 M2. */

/* === Hero === */
.hero[b-vp7pm48vkp] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: var(--space-8);
    align-items: center;
}

.hero-eyebrow[b-vp7pm48vkp] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
    background: var(--color-accent-soft);
    border: 1px solid var(--color-accent-line);
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    margin-bottom: var(--space-5);
}

.hero h1[b-vp7pm48vkp] {
    font-size: 46px;
    line-height: 1.08;
    letter-spacing: -0.025em;
    margin-bottom: var(--space-4);
}

.hero h1 .hl[b-vp7pm48vkp] {
    color: var(--color-accent);
}

.hero p.lead[b-vp7pm48vkp] {
    font-size: 15px;
    color: var(--color-text-secondary);
    line-height: var(--lh-normal);
    margin-bottom: var(--space-6);
    max-width: 480px;
}

.hero-cta[b-vp7pm48vkp] {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.hero-trust[b-vp7pm48vkp] {
    display: flex;
    gap: var(--space-5);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.hero-trust span[b-vp7pm48vkp] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.hero-trust .dot[b-vp7pm48vkp] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-success);
}

/* === Sections === */
.section[b-vp7pm48vkp] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

/* The sunken band goes full-bleed and hands the measure to .inner
   (landing.html:229-230) — the epic-planning section uses it. */
.section.alt[b-vp7pm48vkp] {
    max-width: none;
    background: var(--color-bg-sunken);
    padding: 0;
}

.section.alt > .inner[b-vp7pm48vkp] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

/* Epic 50 use-case links and FAQ sections sit closer together. */
.section.tight[b-vp7pm48vkp] {
    padding-top: var(--space-6);
    padding-bottom: var(--space-6);
}

.section-title[b-vp7pm48vkp] {
    text-align: center;
    margin-bottom: var(--space-7);
}

.section-title .kicker[b-vp7pm48vkp] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-accent-text);
    display: block;
    margin-bottom: var(--space-2);
}

.section-title h2[b-vp7pm48vkp] {
    font-size: 30px;
    letter-spacing: -0.02em;
}

.section-title p[b-vp7pm48vkp] {
    color: var(--color-text-muted);
    font-size: var(--fs-body);
    margin-top: var(--space-2);
}

/* Four steps since Epic 28 re-cut "How it works" (landing.html:236);
   one column below 991px, as before. */
.steps3[b-vp7pm48vkp] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-6);
}

.feat-grid[b-vp7pm48vkp] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}

.uc-links[b-vp7pm48vkp] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
}

/* === CTA band === */
.cta-band[b-vp7pm48vkp] {
    text-align: center;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    max-width: var(--content-max);
    margin: 0 auto var(--space-9);
    box-shadow: var(--shadow-sm);
}

.cta-band h2[b-vp7pm48vkp] {
    font-size: 28px;
    margin-bottom: var(--space-3);
    letter-spacing: -0.02em;
}

.cta-band p[b-vp7pm48vkp] {
    color: var(--color-text-muted);
    margin-bottom: var(--space-5);
}

/* === Responsive === */
@media (max-width: 991px) {
    .hero[b-vp7pm48vkp] {
        grid-template-columns: 1fr;
    }

    .hero h1[b-vp7pm48vkp] {
        font-size: 34px;
    }

    .steps3[b-vp7pm48vkp] {
        grid-template-columns: 1fr;
    }

    .feat-grid[b-vp7pm48vkp],
    .uc-links[b-vp7pm48vkp] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/OAuth/Consent.razor.rz.scp.css */
/* Pages/OAuth/Consent — values from mockups/consent.html (tokens only). The page head is UI/Layout/AuthPageHeader
   and the result card UI/Display/OutcomePanel. */

.consent-identity[b-bf01nk6qeh] {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: var(--space-2) var(--space-4);
    font-size: var(--fs-sm);
    margin-bottom: var(--space-4);
}

.consent-identity dt[b-bf01nk6qeh] {
    color: var(--color-text-muted);
    font-size: var(--fs-xs);
    font-weight: normal;
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    padding-top: 2px;
}

.consent-identity dd[b-bf01nk6qeh] {
    color: var(--color-text);
    overflow-wrap: anywhere;
    margin: 0;
}

@media (max-width: 560px) {
    .consent-identity[b-bf01nk6qeh] {
        grid-template-columns: minmax(0, 1fr);
    }
}

.worker-muted[b-bf01nk6qeh] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

.worker-strong[b-bf01nk6qeh] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.mono[b-bf01nk6qeh] {
    font-family: var(--font-mono);
}

.consent-scope-option[b-bf01nk6qeh] {
    display: flex;
    gap: var(--space-3);
    align-items: flex-start;
}

.consent-scope-option + .consent-scope-option[b-bf01nk6qeh] {
    margin-top: var(--space-2);
}

.consent-scope-text[b-bf01nk6qeh] {
    font-size: var(--fs-sm);
}

.consent-scope-text .worker-muted[b-bf01nk6qeh] {
    display: block;
    font-size: var(--fs-xs);
    margin-top: 2px;
}

.consent-repo-list[b-bf01nk6qeh] {
    margin: var(--space-3) 0 0 calc(15px + var(--space-3));
}

.consent-summary[b-bf01nk6qeh] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    padding: var(--space-3) var(--space-4);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-4);
}

.consent-buttons[b-bf01nk6qeh] {
    display: flex;
    gap: var(--space-2);
    justify-content: flex-end;
    flex-wrap: wrap;
}

/* Bootstrap's form-check-input is not mapped to the theme tokens: an unchecked control vanished on the
   dark surface and a checked one used Bootstrap blue. The facit draws them in the accent colour. */
.form-check-input[b-bf01nk6qeh] {
    border-color: var(--color-text-muted);
}

.form-check-input:checked[b-bf01nk6qeh] {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
}
/* /Pages/OAuth/LinkMachine.razor.rz.scp.css */
/* Pages/OAuth/LinkMachine — values from mockups/link-machine.html (tokens only). The page head is
   UI/Layout/AuthPageHeader, the result pages UI/Display/OutcomePanel. */

/* The code is shown large in mono so it can be compared with the terminal (facit .user-code-input). The
   Inline FormTextField starts from the small control; this sheet sets the large size (CSS_STRATEGY). */
.link-code-field[b-goo0dbpdi4]  .user-code-input {
    font-family: var(--font-mono);
    font-size: var(--fs-h1);
    letter-spacing: 0.2em;
    text-align: center;
    height: var(--control-h-lg);
    text-transform: uppercase;
}

/* The facit marks a wrong code in the danger tone; the app's form reset keeps the neutral border otherwise. */
.link-code-field[b-goo0dbpdi4]  .user-code-input.is-invalid {
    border-color: var(--color-danger);
}

.link-code-field[b-goo0dbpdi4]  .invalid-feedback {
    color: var(--color-danger-text);
}

.link-origin[b-goo0dbpdi4] {
    margin-top: calc(-1 * var(--space-2));
}

.link-warning[b-goo0dbpdi4] {
    color: var(--color-warning-text);
    font-weight: var(--fw-semibold);
}

.worker-strong[b-goo0dbpdi4] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.mono[b-goo0dbpdi4] {
    font-family: var(--font-mono);
}

.link-buttons[b-goo0dbpdi4] {
    display: flex;
    gap: var(--space-2);
    justify-content: flex-end;
    flex-wrap: wrap;
}
/* /Pages/Onboarding/FirstTicket.razor.rz.scp.css */
.onboarding-first-ticket[b-83dn21qqb5] {
    min-height: 80vh;
    display: flex;
    align-items: center;
}

/* Centered onboarding column (replaces bootstrap row/col) */
.onb-col[b-83dn21qqb5] {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* Action card grid (replaces bootstrap row/col) */
.onb-action-grid[b-83dn21qqb5] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (max-width: 768px) {
    .onb-action-grid[b-83dn21qqb5] {
        grid-template-columns: 1fr;
    }
}

.onb-hero-icon[b-83dn21qqb5] {
    font-size: 3rem;
    color: var(--color-accent);
}

.onb-action-icon[b-83dn21qqb5] {
    font-size: 1.5rem;
    color: var(--color-accent);
    display: block;
    margin-bottom: 0.5rem;
}

/* Progress Steps */
.onboarding-progress[b-83dn21qqb5] {
    margin-bottom: 2rem;
}

[b-83dn21qqb5] .progress-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

[b-83dn21qqb5] .step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

[b-83dn21qqb5] .step-number {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-color: var(--color-surface-2);
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.125rem;
    transition: all 0.3s ease;
}

[b-83dn21qqb5] .step.active .step-number {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
    box-shadow: var(--glow-accent);
}

[b-83dn21qqb5] .step.completed .step-number {
    background-color: var(--color-success);
    border-color: var(--color-success);
    color: var(--color-text-on-accent);
}

[b-83dn21qqb5] .step-label {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    font-weight: 500;
    text-align: center;
}

[b-83dn21qqb5] .step.active .step-label {
    color: var(--color-accent-text);
    font-weight: 600;
}

[b-83dn21qqb5] .step.completed .step-label {
    color: var(--color-success-text);
}

[b-83dn21qqb5] .step-line {
    width: 4rem;
    height: 2px;
    background-color: var(--color-border);
    margin: 0 0.5rem;
}

[b-83dn21qqb5] .step-line.active,
[b-83dn21qqb5] .step-line.completed {
    background-color: var(--color-success);
}

@media (max-width: 576px) {
    [b-83dn21qqb5] .progress-steps {
        gap: 0.25rem;
    }

    [b-83dn21qqb5] .step-number {
        width: 2rem;
        height: 2rem;
        font-size: 0.875rem;
    }

    [b-83dn21qqb5] .step-line {
        width: 1.25rem;
        margin: 0 0.25rem;
    }

    [b-83dn21qqb5] .step-label {
        display: none;
    }
}

/* Completion Content */
.completion-content[b-83dn21qqb5] {
    padding: 1rem 0;
}

/* Action Cards */
.action-card[b-83dn21qqb5] {
    transition: all 0.3s ease;
    background-color: var(--color-surface-2);
    border: 1px solid var(--color-border);
    color: var(--color-text);
}

.action-card:hover[b-83dn21qqb5] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--color-accent-line) !important;
}

.action-card i[b-83dn21qqb5] {
    display: block;
    transition: transform 0.3s ease;
}

.action-card:hover i[b-83dn21qqb5] {
    transform: scale(1.1);
}

/* Icon Animation */
.icon i[b-83dn21qqb5] {
    animation: celebrationPulse-b-83dn21qqb5 1s ease-in-out;
}

@keyframes celebrationPulse-b-83dn21qqb5 {
    0% {
        transform: scale(0);
        opacity: 0;
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Button Styling */
.d-grid.gap-2[b-83dn21qqb5] {
    gap: 0.75rem !important;
}

/* Alert Styling */
.alert-success[b-83dn21qqb5] {
    border-radius: 0.5rem;
}
/* /Pages/Onboarding/InviteTeam.razor.rz.scp.css */
.onboarding-invite-team[b-vqq03zmifk] {
    min-height: 80vh;
    display: flex;
    align-items: center;
}

.onb-col[b-vqq03zmifk] {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.onboarding-progress[b-vqq03zmifk] {
    margin-bottom: 2rem;
}

[b-vqq03zmifk] .progress-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

[b-vqq03zmifk] .step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

[b-vqq03zmifk] .step-number {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-color: var(--color-surface-2);
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.125rem;
    transition: all 0.3s ease;
}

[b-vqq03zmifk] .step.active .step-number {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
    box-shadow: var(--glow-accent);
}

[b-vqq03zmifk] .step.completed .step-number {
    background-color: var(--color-success);
    border-color: var(--color-success);
    color: var(--color-text-on-accent);
}

[b-vqq03zmifk] .step-label {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    font-weight: 500;
    text-align: center;
}

[b-vqq03zmifk] .step.active .step-label {
    color: var(--color-accent-text);
    font-weight: 600;
}

[b-vqq03zmifk] .step.completed .step-label {
    color: var(--color-success-text);
}

[b-vqq03zmifk] .step-line {
    width: 4rem;
    height: 2px;
    background-color: var(--color-border);
    margin: 0 0.5rem;
}

[b-vqq03zmifk] .step-line.active {
    background-color: var(--color-accent);
}

[b-vqq03zmifk] .step-line.completed {
    background-color: var(--color-success);
}

@media (max-width: 576px) {
    [b-vqq03zmifk] .progress-steps {
        gap: 0.25rem;
    }

    [b-vqq03zmifk] .step-number {
        width: 2rem;
        height: 2rem;
        font-size: 0.875rem;
    }

    [b-vqq03zmifk] .step-line {
        width: 1.25rem;
        margin: 0 0.25rem;
    }

    [b-vqq03zmifk] .step-label {
        display: none;
    }
}
/* /Pages/Onboarding/RepositorySetup.razor.rz.scp.css */
.onboarding-repository[b-lq851p2a37] {
    min-height: 80vh;
    display: flex;
    align-items: center;
}

/* Centered onboarding column (replaces bootstrap row/col) */
.onb-col[b-lq851p2a37] {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.onb-hero-icon[b-lq851p2a37] {
    font-size: 3rem;
    color: var(--color-accent);
}

/* Progress Steps */
.onboarding-progress[b-lq851p2a37] {
    margin-bottom: 2rem;
}

[b-lq851p2a37] .progress-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

[b-lq851p2a37] .step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

[b-lq851p2a37] .step-number {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-color: var(--color-surface-2);
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.125rem;
    transition: all 0.3s ease;
}

[b-lq851p2a37] .step.active .step-number {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
    box-shadow: var(--glow-accent);
}

[b-lq851p2a37] .step.completed .step-number {
    background-color: var(--color-success);
    border-color: var(--color-success);
    color: var(--color-text-on-accent);
}

[b-lq851p2a37] .step-label {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    font-weight: 500;
    text-align: center;
}

[b-lq851p2a37] .step.active .step-label {
    color: var(--color-accent-text);
    font-weight: 600;
}

[b-lq851p2a37] .step.completed .step-label {
    color: var(--color-success-text);
}

[b-lq851p2a37] .step-line {
    width: 4rem;
    height: 2px;
    background-color: var(--color-border);
    margin: 0 0.5rem;
}

[b-lq851p2a37] .step-line.active {
    background-color: var(--color-accent);
}

@media (max-width: 576px) {
    [b-lq851p2a37] .progress-steps {
        gap: 0.25rem;
    }

    [b-lq851p2a37] .step-number {
        width: 2rem;
        height: 2rem;
        font-size: 0.875rem;
    }

    [b-lq851p2a37] .step-line {
        width: 1.25rem;
        margin: 0 0.25rem;
    }

    [b-lq851p2a37] .step-label {
        display: none;
    }
}

/* Icon Styling */
.icon i[b-lq851p2a37] {
    animation: iconPulse-b-lq851p2a37 2s ease-in-out infinite;
}

@keyframes iconPulse-b-lq851p2a37 {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

/* Alert Styling */
.alert[b-lq851p2a37] {
    border-radius: 0.5rem;
}

.alert ul[b-lq851p2a37] {
    padding-left: 1.5rem;
}

/* Button Spacing */
.d-grid.gap-2[b-lq851p2a37] {
    gap: 0.75rem !important;
}
/* /Pages/Onboarding/Welcome.razor.rz.scp.css */
.onboarding-welcome[b-gzku7ems5v] {
    min-height: 80vh;
    display: flex;
    align-items: center;
}

/* Centered onboarding column + feature grid (replace bootstrap row/col) */
.onb-col[b-gzku7ems5v] {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.onb-feature-grid[b-gzku7ems5v] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
}

@media (max-width: 768px) {
    .onb-feature-grid[b-gzku7ems5v] {
        grid-template-columns: 1fr;
    }
}

.onb-welcome-icon[b-gzku7ems5v] {
    font-size: 4rem;
    color: var(--color-accent);
}

.onb-feature-icon[b-gzku7ems5v] {
    font-size: 2rem;
    color: var(--color-accent);
    display: block;
    margin-bottom: 0.5rem;
}

/* Progress Steps */
.onboarding-progress[b-gzku7ems5v] {
    margin-bottom: 2rem;
}

[b-gzku7ems5v] .progress-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

[b-gzku7ems5v] .step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

[b-gzku7ems5v] .step-number {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-color: var(--color-surface-2);
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.125rem;
    transition: all 0.3s ease;
}

[b-gzku7ems5v] .step.active .step-number {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
    box-shadow: var(--glow-accent);
}

[b-gzku7ems5v] .step-label {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    font-weight: 500;
    text-align: center;
}

[b-gzku7ems5v] .step.active .step-label {
    color: var(--color-accent-text);
    font-weight: 600;
}

[b-gzku7ems5v] .step-line {
    width: 4rem;
    height: 2px;
    background-color: var(--color-border);
    margin: 0 0.5rem;
}

@media (max-width: 576px) {
    [b-gzku7ems5v] .progress-steps {
        gap: 0.25rem;
    }

    [b-gzku7ems5v] .step-number {
        width: 2rem;
        height: 2rem;
        font-size: 0.875rem;
    }

    [b-gzku7ems5v] .step-line {
        width: 1.25rem;
        margin: 0 0.25rem;
    }

    [b-gzku7ems5v] .step-label {
        display: none;
    }
}

/* Welcome Icon */
.welcome-icon[b-gzku7ems5v] {
    animation: welcomeBounce-b-gzku7ems5v 1s ease-in-out;
}

@keyframes welcomeBounce-b-gzku7ems5v {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

/* Feature Boxes */
.feature-box[b-gzku7ems5v] {
    border-radius: 0.5rem;
    transition: all 0.3s ease;
    background-color: var(--color-surface-2);
    border: 1px solid var(--color-border);
    color: var(--color-text);
}

.feature-box:hover[b-gzku7ems5v] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--color-accent-line);
}

.feature-box i[b-gzku7ems5v] {
    transition: transform 0.3s ease;
}

.feature-box:hover i[b-gzku7ems5v] {
    transform: scale(1.1);
}

/* Content Styling */
.onboarding-content[b-gzku7ems5v] {
    padding: 1rem 0;
}

.onboarding-content .alert[b-gzku7ems5v] {
    border-radius: 0.5rem;
}
/* /Pages/Onboarding/WorkerSetup.razor.rz.scp.css */
.onboarding-worker[b-nhfcfkpq8z] {
    min-height: 80vh;
    display: flex;
    align-items: center;
}

/* Centered onboarding column (replaces bootstrap row/col) */
.onb-col[b-nhfcfkpq8z] {
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.onb-hero-icon[b-nhfcfkpq8z] {
    font-size: 3rem;
    color: var(--color-accent);
}

/* Progress Steps */
.onboarding-progress[b-nhfcfkpq8z] {
    margin-bottom: 2rem;
}

[b-nhfcfkpq8z] .progress-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

[b-nhfcfkpq8z] .step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

[b-nhfcfkpq8z] .step-number {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background-color: var(--color-surface-2);
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.125rem;
    transition: all 0.3s ease;
}

[b-nhfcfkpq8z] .step.active .step-number {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
    box-shadow: var(--glow-accent);
}

[b-nhfcfkpq8z] .step.completed .step-number {
    background-color: var(--color-success);
    border-color: var(--color-success);
    color: var(--color-text-on-accent);
}

[b-nhfcfkpq8z] .step-label {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    font-weight: 500;
    text-align: center;
}

[b-nhfcfkpq8z] .step.active .step-label {
    color: var(--color-accent-text);
    font-weight: 600;
}

[b-nhfcfkpq8z] .step.completed .step-label {
    color: var(--color-success-text);
}

[b-nhfcfkpq8z] .step-line {
    width: 4rem;
    height: 2px;
    background-color: var(--color-border);
    margin: 0 0.5rem;
}

[b-nhfcfkpq8z] .step-line.active {
    background-color: var(--color-accent);
}

[b-nhfcfkpq8z] .step-line.completed {
    background-color: var(--color-success);
}

@media (max-width: 576px) {
    [b-nhfcfkpq8z] .progress-steps {
        gap: 0.25rem;
    }

    [b-nhfcfkpq8z] .step-number {
        width: 2rem;
        height: 2rem;
        font-size: 0.875rem;
    }

    [b-nhfcfkpq8z] .step-line {
        width: 1.25rem;
        margin: 0 0.25rem;
    }

    [b-nhfcfkpq8z] .step-label {
        display: none;
    }
}

/* Icon Styling */
.icon i[b-nhfcfkpq8z] {
    animation: iconPulse-b-nhfcfkpq8z 2s ease-in-out infinite;
}

@keyframes iconPulse-b-nhfcfkpq8z {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

/* Alert Styling */
.alert[b-nhfcfkpq8z] {
    border-radius: 0.5rem;
}

/* Button Spacing */
.d-grid.gap-2[b-nhfcfkpq8z] {
    gap: 0.75rem !important;
}

.worker-status-block[b-nhfcfkpq8z] {
    background-color: var(--color-surface-2);
    border: 1px solid var(--color-border);
    color: var(--color-text);
}

/* Two-ways connect list */
.onb-connect-list[b-nhfcfkpq8z] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding-left: 1.25rem;
}
/* /Pages/Platform/Diagnostics/Index.razor.rz.scp.css */
.diag[b-viqxacs8qp] {
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-4);
}

.diag-group-title[b-viqxacs8qp] {
    font-size: var(--fs-base);
    font-weight: 600;
    margin-bottom: var(--space-3);
    color: var(--color-text);
}
/* /Pages/Platform/Errors.razor.rz.scp.css */
.platform-error-message[b-5kcpp49opk] {
    max-width: 380px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.platform-error-pager[b-5kcpp49opk] {
    display: flex;
    justify-content: flex-end;
    padding-top: var(--space-3);
}
/* /Pages/Platform/NeedsContact/Index.razor.rz.scp.css */
.machine-meta[b-4861a8nnxm] {
    font-size: var(--fs-xs);
    margin-top: var(--space-1);
}

.rowline[b-4861a8nnxm] {
    gap: var(--space-1);
}

.hint[b-4861a8nnxm] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    margin: 0;
}

.mono[b-4861a8nnxm] {
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
}

.last-active-stale[b-4861a8nnxm] {
    color: var(--color-warning-text);
}
/* /Pages/Platform/NeedsContact/Write.razor.rz.scp.css */
.composer[b-v3atjggbmg] {
    display: grid;
    gap: var(--space-4);
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    align-items: start;
}

.stack[b-v3atjggbmg] {
    display: grid;
    gap: var(--space-4);
}

.composer-to[b-v3atjggbmg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.recipient[b-v3atjggbmg] {
    font-weight: var(--fw-semibold);
}

.hint[b-v3atjggbmg] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    margin: 0;
}

.mono[b-v3atjggbmg] {
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
}

@media (max-width: 960px) {
    .composer[b-v3atjggbmg] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Platform/Plans/Edit.razor.rz.scp.css */
.split[b-o45kbqy5av] {
    display: grid;
    gap: var(--space-4);
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    align-items: start;
}

@media (max-width: 900px) {
    .split[b-o45kbqy5av] {
        grid-template-columns: 1fr;
    }
}

.stack[b-o45kbqy5av] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.money-input[b-o45kbqy5av] {
    display: flex;
    align-items: stretch;
}

.money-prefix[b-o45kbqy5av] {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-3);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-right: none;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    color: var(--color-text-secondary);
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
}

.money-input .form-control[b-o45kbqy5av] {
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.money[b-o45kbqy5av] {
    font-variant-numeric: tabular-nums;
}

.plan-price[b-o45kbqy5av] {
    font-size: var(--fs-h1);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.plan-price-unit[b-o45kbqy5av] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    font-weight: var(--fw-regular);
}

.plan-price-custom[b-o45kbqy5av] {
    font-size: var(--fs-h3);
    color: var(--color-text-secondary);
    font-weight: var(--fw-medium);
}

.flag-box[b-o45kbqy5av] {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    border-radius: var(--radius-xs);
    border: 1px solid var(--color-border-strong);
    background: var(--color-bg-sunken);
    display: inline-grid;
    place-items: center;
}

.flag-box-on[b-o45kbqy5av] {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
}

.flag-box .bi[b-o45kbqy5av] {
    font-size: 10px;
    line-height: 1;
}

.breadcrumb-nav[b-o45kbqy5av] {
    font-size: var(--fs-sm);
}

.breadcrumb[b-o45kbqy5av] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.breadcrumb-item[b-o45kbqy5av] {
    color: var(--color-text-secondary);
    text-decoration: none;
}

.breadcrumb-item.active[b-o45kbqy5av] {
    color: var(--color-text);
    font-weight: var(--fw-medium);
}

.sep[b-o45kbqy5av] {
    color: var(--color-text-muted);
}
/* /Pages/Platform/Plans/Index.razor.rz.scp.css */
.plan-grid[b-mw8r1udh8g] {
    display: grid;
    gap: var(--space-4);
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
}

.plan-card[b-mw8r1udh8g] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    display: flex;
    flex-direction: column;
}

.plan-card-head[b-mw8r1udh8g] {
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2);
}

.plan-card-name[b-mw8r1udh8g] {
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    margin: 0;
}

.plan-card-body[b-mw8r1udh8g] {
    padding: var(--space-4) var(--space-5);
    flex: 1;
}

.plan-card-foot[b-mw8r1udh8g] {
    padding: var(--space-3) var(--space-5);
    border-top: 1px solid var(--color-divider);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    justify-content: flex-end;
}

.plan-price[b-mw8r1udh8g] {
    font-size: var(--fs-h1);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    letter-spacing: -0.02em;
}

.plan-price-unit[b-mw8r1udh8g] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    font-weight: var(--fw-regular);
}

.plan-price-custom[b-mw8r1udh8g] {
    font-size: var(--fs-h3);
    color: var(--color-text-secondary);
    font-weight: var(--fw-medium);
}

.plan-inactive[b-mw8r1udh8g] {
    opacity: 0.72;
    border-style: dashed;
}

.priceid[b-mw8r1udh8g] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    overflow-wrap: anywhere;
}

.priceid-empty[b-mw8r1udh8g] {
    color: var(--color-danger-text);
    font-style: italic;
    font-family: var(--font-sans);
}

.description-list-row[b-mw8r1udh8g] {
    display: flex;
    justify-content: space-between;
    padding: var(--space-1) 0;
    font-size: var(--fs-sm);
}

.description-list-term[b-mw8r1udh8g] {
    color: var(--color-text-muted);
}

.description-list-detail[b-mw8r1udh8g] {
    margin-bottom: 0;
    font-weight: var(--fw-medium);
}
/* /Pages/Platform/StripeEvents/Detail.razor.rz.scp.css */
.mono[b-5vmj67ijdf] {
    font-family: var(--font-mono, monospace);
    font-size: var(--fs-xs, 0.75rem);
}

.hint[b-5vmj67ijdf] {
    font-size: var(--fs-xs, 0.75rem);
    color: var(--color-text-muted, #6c757d);
}
/* /Pages/Platform/StripeEvents/Index.razor.rz.scp.css */
.cursor-pointer[b-pcp7eqfkq0] {
    cursor: pointer;
}

.mono[b-pcp7eqfkq0] {
    font-family: var(--font-mono, monospace);
    font-size: var(--fs-xs, 0.75rem);
}

.hint[b-pcp7eqfkq0] {
    display: block;
    font-size: var(--fs-xs, 0.75rem);
    color: var(--color-text-muted, #6c757d);
    margin-top: var(--space-1, 0.25rem);
}
/* /Pages/Platform/Subscriptions/Index.razor.rz.scp.css */
.subscriptions-table[b-5qzqqh23ql] {
    width: 100%;
}

.tenant-link[b-5qzqqh23ql] {
    color: var(--color-text);
    text-decoration: none;
}

.tenant-link:hover[b-5qzqqh23ql] {
    color: var(--color-accent);
    text-decoration: underline;
}

.num-cell[b-5qzqqh23ql] {
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.num-zero[b-5qzqqh23ql] {
    color: var(--color-text-muted);
}
/* /Pages/Platform/Tenants/Detail.razor.rz.scp.css */
.split[b-44uv34ce7e] {
    display: grid;
    gap: var(--space-4);
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    align-items: start;
}

@media (max-width: 900px) {
    .split[b-44uv34ce7e] {
        grid-template-columns: 1fr;
    }
}

.stack[b-44uv34ce7e] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.description-list[b-44uv34ce7e] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.description-list-row[b-44uv34ce7e] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: var(--space-2);
}

.description-list-term[b-44uv34ce7e] {
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    font-weight: var(--fw-normal);
    margin: 0;
}

.description-list-detail[b-44uv34ce7e] {
    color: var(--color-text);
    font-size: var(--fs-sm);
    margin: 0;
    text-align: end;
}

.mono-cell[b-44uv34ce7e] {
    font-family: var(--font-mono);
    word-break: break-all;
}

.breadcrumb-nav[b-44uv34ce7e] {
    font-size: var(--fs-sm);
}

.breadcrumb[b-44uv34ce7e] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.breadcrumb-item[b-44uv34ce7e] {
    color: var(--color-text-secondary);
    text-decoration: none;
}

.breadcrumb-item.active[b-44uv34ce7e] {
    color: var(--color-text);
    font-weight: var(--fw-medium);
}

.sep[b-44uv34ce7e] {
    color: var(--color-text-muted);
}
/* /Pages/Platform/Tenants/Index.razor.rz.scp.css */
.seg[b-5iwhbsvvqw] {
    display: inline-flex;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--color-bg-sunken);
}

.seg-btn[b-5iwhbsvvqw] {
    border: 0;
    background: transparent;
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    padding: var(--space-1) var(--space-3);
    cursor: pointer;
}

.seg-btn.active[b-5iwhbsvvqw] {
    background: var(--color-surface-1);
    color: var(--color-text-primary);
    font-weight: 600;
}

.filter-bar .form-control[b-5iwhbsvvqw],
.filter-bar .form-select[b-5iwhbsvvqw] {
    background: var(--color-surface-1);
    border-color: var(--color-border);
    color: var(--color-text-primary);
}

.filter-bar .filter-search[b-5iwhbsvvqw] {
    max-width: 280px;
}

.filter-bar .filter-select[b-5iwhbsvvqw] {
    max-width: 160px;
}

.data-table-wrap-scroll[b-5iwhbsvvqw] {
    overflow-x: auto;
    overflow-y: hidden;
}

.data-table-wrap-scroll .data-table[b-5iwhbsvvqw] {
    width: max-content;
    min-width: 100%;
}

.tenant-roster-table .th-sort[b-5iwhbsvvqw] {
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

.tenant-roster-table .th-sort-active[b-5iwhbsvvqw] {
    color: var(--color-text-primary);
    font-weight: 600;
}

.tenant-roster-table .num-cell[b-5iwhbsvvqw] {
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.tenant-roster-table .num-zero[b-5iwhbsvvqw] {
    color: var(--color-text-muted);
}

.tenant-roster-table .last-active-stale[b-5iwhbsvvqw],
.tenant-roster-table .last-active-cold[b-5iwhbsvvqw] {
    color: var(--color-text-muted);
}

.tenant-name[b-5iwhbsvvqw] {
    color: var(--color-text-primary);
}

.hint[b-5iwhbsvvqw] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /Pages/Pricing.razor.rz.scp.css */
/* Pricing Page Styles - Modern Design */

/* Plan grid + FAQ layout (replace bootstrap row/col) */
.pricing-grid[b-hfy6tk4m8a] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-4);
}

@media (max-width: 991px) {
    .pricing-grid[b-hfy6tk4m8a] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .pricing-grid[b-hfy6tk4m8a] {
        grid-template-columns: 1fr;
    }
}

.pricing-faq-inner[b-hfy6tk4m8a] {
    max-width: 66%;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 991px) {
    .pricing-faq-inner[b-hfy6tk4m8a] {
        max-width: 100%;
    }
}

.pricing-check-yes[b-hfy6tk4m8a] {
    color: var(--color-success);
}

.pricing-check-no[b-hfy6tk4m8a] {
    color: var(--color-text-muted);
}

.pricing[b-hfy6tk4m8a] {
    min-height: 80vh;
    background: var(--color-bg-sunken);
}

.pricing h1[b-hfy6tk4m8a] {
    color: var(--color-text);
}

/* Pricing cards */
.pricing-card[b-hfy6tk4m8a] {
    border: 2px solid var(--color-border);
    border-radius: var(--radius-xl);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    background: var(--color-surface-1);
}

/* Make each plan card a full-height flex column so the CTA pins to the bottom
   regardless of how many features a plan lists (equal-height grid rows). The
   .card and .card-body are rendered inside the Card child component, so reach
   them with ::deep anchored on the page-scoped grid item. */
.pricing-grid-item[b-hfy6tk4m8a]  .card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.pricing-grid-item[b-hfy6tk4m8a]  .card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.pricing-card:hover[b-hfy6tk4m8a] {
    transform: translateY(-8px);
    box-shadow: var(--shadow-lg);
}

/* Popular card styling - make it stand out */
.popular-card[b-hfy6tk4m8a] {
    border-color: var(--color-accent);
    border-width: 3px;
    transform: scale(1.02);
    box-shadow: var(--glow-accent);
    z-index: 1;
}

.popular-card:hover[b-hfy6tk4m8a] {
    transform: scale(1.02) translateY(-8px);
    box-shadow: var(--shadow-lg);
    border-color: var(--color-accent-hover);
}

.popular-card[b-hfy6tk4m8a]::before {
    content: '';
    position: absolute;
    top: -3px;
    left: -3px;
    right: -3px;
    height: 8px;
    background: var(--color-accent);
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

/* The badge is the Badge primitive (soft-tint, token-only). ::deep reaches
   its root span; structural emphasis only — the saturated gradient is
   intentionally dropped (Epic-17 reduced palette). */
.popular-badge[b-hfy6tk4m8a]  .badge {
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

/* Price container */
.price-container[b-hfy6tk4m8a] {
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 1.5rem;
}

.price-container h2[b-hfy6tk4m8a] {
    color: var(--color-accent-text);
    font-weight: 800;
}

.popular-card .price-container h2[b-hfy6tk4m8a] {
    color: var(--color-accent);
}

/* Feature list — grows to absorb slack so the CTA aligns across cards. */
.feature-list[b-hfy6tk4m8a] {
    flex: 1 1 auto;
}

.feature-list li[b-hfy6tk4m8a] {
    display: flex;
    align-items: start;
    font-size: 0.95rem;
    padding: 0.25rem 0;
}

.feature-list i[b-hfy6tk4m8a] {
    flex-shrink: 0;
    margin-top: 0.25rem;
}

.feature-list .bi-check-circle-fill[b-hfy6tk4m8a] {
    color: var(--color-success) !important;
}

/* CTA buttons are the Button primitive (token-only chrome); full-width comes
   from the merged `w-100` utility passed on the element. */

/* Responsive design */
@media (max-width: 1199px) {
    .popular-card[b-hfy6tk4m8a] {
        transform: none;
    }

    .popular-card:hover[b-hfy6tk4m8a] {
        transform: translateY(-8px);
    }
}

@media (max-width: 992px) {
    .pricing-card[b-hfy6tk4m8a] {
        margin-bottom: 1.5rem;
    }
}

@media (max-width: 768px) {
    .display-4[b-hfy6tk4m8a] {
        font-size: 2.5rem;
    }

    .price-container[b-hfy6tk4m8a] {
        padding: 1rem 0;
    }
}
/* /Pages/Privacy.razor.rz.scp.css */
/* Privacy Policy page — token-based chrome (moved off inline styles). */

.privacy-hero[b-cl05rao1pv] {
    background: linear-gradient(135deg, var(--bg-color-secondary) 0%, var(--bg-color-tertiary) 100%);
}

.toc-sidebar[b-cl05rao1pv] {
    top: 20px;
}

/* Legal-page two-column layout (replaces bootstrap row/col) */
.legal-layout[b-cl05rao1pv] {
    display: grid;
    grid-template-columns: 25% 1fr;
    gap: var(--space-5);
}

@media (max-width: 991px) {
    .legal-layout[b-cl05rao1pv] {
        grid-template-columns: 1fr;
    }
}

.toc-nav[b-cl05rao1pv] {
    display: flex;
    flex-direction: column;
}

.toc-item[b-cl05rao1pv] {
    display: block;
    padding: var(--space-2) var(--space-3);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
}

.toc-item:hover[b-cl05rao1pv] {
    color: var(--color-accent);
    background: var(--color-surface-2);
}
/* /Pages/Processes/Tickets.razor.rz.scp.css */
.process-ticket-line[b-9flambcii9] {
    cursor: pointer;
}

.process-ticket-line:hover[b-9flambcii9] {
    background: var(--color-surface-hover, rgba(127, 127, 127, 0.08));
}
/* /Pages/Projects/Hosting/Matrix.razor.rz.scp.css */
.hosting-matrix-page[b-1z2gquuvna] {
    width: 100%;
}

.page-header-subtitle .mono[b-1z2gquuvna] {
    font-family: var(--bs-font-monospace, ui-monospace, monospace);
}
/* /Pages/Projects/Index.razor.rz.scp.css */
/* Projects Index — mockup 11-projects `.grid-3` of project `.card`
   (card-head / card-body / card-foot). Token-only, both modes. The shared
   Card primitive supplies the card chrome; this file only adds the 3-up
   grid, equal-height stretch, the card-body field stack, the mono accent
   next-key treatment and the tracker tag. */

.proj-grid[b-vsetwrxhoe] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
    align-items: stretch;
}

@media (max-width: 1080px) {
    .proj-grid[b-vsetwrxhoe] {
        grid-template-columns: 1fr;
    }
}

.proj-card[b-vsetwrxhoe] {
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
}

.proj-card[b-vsetwrxhoe]  .card-body {
    flex: 1;
}

.proj-field[b-vsetwrxhoe] {
    margin-bottom: var(--space-4);
}

.proj-field-label[b-vsetwrxhoe] {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-muted);
    margin-bottom: 6px;
}

.proj-tag[b-vsetwrxhoe] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    font-size: var(--fs-micro);
    font-family: var(--font-mono);
    border-radius: var(--radius-xs);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    color: var(--color-text-secondary);
}

.proj-mono[b-vsetwrxhoe] {
    font-family: var(--font-mono);
}

.proj-next-key[b-vsetwrxhoe] {
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
}

.proj-counts[b-vsetwrxhoe] {
    display: flex;
    gap: var(--space-6);
}
/* /Pages/Repositories/Create.razor.rz.scp.css */
/* Repositories Create — wizard nav row (Back left / primary right),
   mirrors mockup `.card-foot` with justify-content:space-between.
   Token-only. */

.repo-create-stepper[b-hbe2ygm6nf] {
    margin-bottom: var(--space-5);
}

.repo-create-nav[b-hbe2ygm6nf] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-4);
}
/* /Pages/Repositories/Detail.razor.rz.scp.css */
/* Repositories Detail — tabbed overview via shared TabContainer + Grid2;
   token-only inline code / meta styling. */

.repo-detail-grid[b-4z8tt04ari] {
    align-items: start;
}

.repo-detail-mono[b-4z8tt04ari] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    word-break: break-all;
}

.repo-detail-meta[b-4z8tt04ari] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.repo-detail-retry[b-4z8tt04ari] {
    margin-top: var(--space-3);
}
/* /Pages/Repositories/Edit.razor.rz.scp.css */
/* Repositories Edit — two-column layout via shared Grid2; token-only
   inline code styling for the repository-id metadata value. */

.repo-edit-mono[b-x5mjnn5shg] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
}
/* /Pages/Repositories/Index.razor.rz.scp.css */
/* Repositories Index — mockup 09-repositories `.grid-3` of repository
   `.card` (card-head / card-body / card-foot). Token-only, both modes.
   The shared Card primitive supplies the card chrome; this file only
   adds the 3-up grid, equal-height stretch, and the card-body field
   stack / clone-url treatment. */

.repo-grid[b-ulx25bz4en] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
    align-items: stretch;
}

@media (max-width: 1080px) {
    .repo-grid[b-ulx25bz4en] {
        grid-template-columns: 1fr;
    }
}

.repo-card[b-ulx25bz4en] {
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
}

.repo-card[b-ulx25bz4en]  .card-body {
    flex: 1;
}

.repo-field[b-ulx25bz4en] {
    margin-bottom: var(--space-4);
}

.repo-field:last-child[b-ulx25bz4en] {
    margin-bottom: 0;
}

.repo-field-label[b-ulx25bz4en] {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-muted);
    margin-bottom: 6px;
}

.tag[b-ulx25bz4en] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    font-size: var(--fs-micro);
    font-family: var(--font-mono);
    border-radius: var(--radius-xs);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    color: var(--color-text-secondary);
}

.mono[b-ulx25bz4en] {
    font-family: var(--font-mono);
}

.repo-clone-url[b-ulx25bz4en] {
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
    word-break: break-all;
}

.repo-retry[b-ulx25bz4en] {
    margin-top: var(--space-3);
}
/* /Pages/Security.razor.rz.scp.css */
/* Public security page — Epic 50 facit
   (docs/planning/epic_50_public_discoverability/mockups/security.html:
   :544-576 page anatomy, :638-645 prose, :671-674 related strip,
   :676-700 responsive, :702-719 security blocks).
   Token-only, correct in dark and light. Button styles belong to their /UI
   component and the table look to DataTable; neither is repeated here. */

/* === Hero === */
.page-hero[b-b6e4bhtfyf] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-8) var(--space-7) var(--space-6);
    text-align: center;
}

.page-hero h1[b-b6e4bhtfyf] {
    font-size: 38px;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-3);
}

.page-hero p[b-b6e4bhtfyf] {
    color: var(--color-text-secondary);
    font-size: 15px;
    max-width: 680px;
    margin: 0 auto;
}

.hero-eyebrow[b-b6e4bhtfyf] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
    background: var(--color-accent-soft);
    border: 1px solid var(--color-accent-line);
    padding: 4px 10px;
    border-radius: var(--radius-pill);
    margin-bottom: var(--space-5);
}

.hero-cta[b-b6e4bhtfyf] {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
    flex-wrap: wrap;
}

/* === Section shells === */
.section[b-b6e4bhtfyf] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

.section.tight[b-b6e4bhtfyf] {
    padding-top: var(--space-6);
    padding-bottom: var(--space-6);
}

.section.alt[b-b6e4bhtfyf] {
    max-width: none;
    background: var(--color-bg-sunken);
    padding: 0;
}

.section.alt > .inner[b-b6e4bhtfyf] {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: var(--space-9) var(--space-7);
}

.section-title[b-b6e4bhtfyf] {
    text-align: center;
    margin-bottom: var(--space-7);
}

.section-title .kicker[b-b6e4bhtfyf] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-accent-text);
    display: block;
    margin-bottom: var(--space-2);
}

.section-title h2[b-b6e4bhtfyf] {
    font-size: 30px;
    letter-spacing: -0.02em;
    margin: 0;
}

.section-title p[b-b6e4bhtfyf] {
    color: var(--color-text-muted);
    font-size: var(--fs-body);
    margin: var(--space-2) auto 0;
    max-width: 680px;
}

/* === Prose === */
.prose[b-b6e4bhtfyf] {
    max-width: 760px;
    margin: 0 auto;
}

.prose h2[b-b6e4bhtfyf] {
    font-size: 24px;
    letter-spacing: -0.02em;
    margin: var(--space-6) 0 var(--space-3);
}

.prose h3[b-b6e4bhtfyf] {
    font-size: var(--fs-h2);
    margin: var(--space-5) 0 var(--space-2);
}

.prose p[b-b6e4bhtfyf] {
    color: var(--color-text-secondary);
    font-size: 14.5px;
    line-height: var(--lh-normal);
    margin: 0 0 var(--space-3);
}

.prose ul.bul[b-b6e4bhtfyf] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.prose ul.bul li[b-b6e4bhtfyf] {
    position: relative;
    padding-left: var(--space-5);
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    margin-bottom: var(--space-2);
    line-height: var(--lh-snug);
}

.prose ul.bul li[b-b6e4bhtfyf]::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--color-success-text);
}

.prose ul.bul li b[b-b6e4bhtfyf] {
    color: var(--color-text);
}

/* === Closing call to action === */
.cta-band[b-b6e4bhtfyf] {
    text-align: center;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    max-width: var(--content-max);
    margin: 0 auto var(--space-9);
    box-shadow: var(--shadow-sm);
}

.cta-band h2[b-b6e4bhtfyf] {
    font-size: 28px;
    margin-bottom: var(--space-3);
    letter-spacing: -0.02em;
}

.cta-band p[b-b6e4bhtfyf] {
    color: var(--color-text-muted);
    margin-bottom: var(--space-5);
}

.cta-band .hero-cta[b-b6e4bhtfyf] {
    justify-content: center;
    margin-bottom: 0;
}

/* === Related strip === */
/* Four links: the facit's three plus the data processing agreement. */
.related[b-b6e4bhtfyf] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3);
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 var(--space-7) var(--space-7);
}

.related a[b-b6e4bhtfyf] {
    display: block;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    background: var(--color-surface-1);
}

.related .rl-k[b-b6e4bhtfyf] {
    display: block;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-faint);
}

.related .rl-t[b-b6e4bhtfyf] {
    display: block;
    color: var(--color-text);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    margin-top: 2px;
}

/* === What runs where === */
.sec-split[b-b6e4bhtfyf] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}

.sec-col[b-b6e4bhtfyf] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: var(--color-surface-1);
    padding: var(--space-5);
}

.sec-col.is-yours[b-b6e4bhtfyf] {
    border-color: var(--color-success-line);
}

.sec-col.is-ours[b-b6e4bhtfyf] {
    border-color: var(--color-accent-line);
}

.sec-col h3[b-b6e4bhtfyf] {
    font-size: var(--fs-h2);
    margin: 0 0 var(--space-1);
}

.sec-col .sub[b-b6e4bhtfyf] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    display: block;
    margin-bottom: var(--space-3);
}

.sec-col ul[b-b6e4bhtfyf] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sec-col li[b-b6e4bhtfyf] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    padding-left: 18px;
    position: relative;
    margin-bottom: var(--space-2);
    line-height: var(--lh-snug);
}

.sec-col li[b-b6e4bhtfyf]::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--color-success-text);
}

.sec-col li.never[b-b6e4bhtfyf]::before {
    content: "\2715";
    color: var(--color-danger-text);
}

.sec-col li b[b-b6e4bhtfyf] {
    color: var(--color-text);
}

/* === Hosting table ===
   DataTable is the shared skin; the facit's table (.tbl-scroll / table.tbl) differs in radius, header
   colour and divider, cell padding, alignment and bold cells, so those are overridden here, anchored on the
   page-owned .section ancestor and the sec-hosting wrapper class. */
.section[b-b6e4bhtfyf]  .sec-hosting {
    border-radius: var(--radius-md);
}

/* DataTable's scroll wrapper sizes its table to max-content; the facit's table is width:100% (:625), so the
   selector carries the wrapper's own classes to outrank that rule. */
.section[b-b6e4bhtfyf]  .sec-hosting.data-table-wrap-scroll table.data-table {
    width: 100%;
}

.section[b-b6e4bhtfyf]  .sec-hosting th {
    color: var(--color-text-faint);
    border-bottom: 1px solid var(--color-divider);
}

.section[b-b6e4bhtfyf]  .sec-hosting th,
.section[b-b6e4bhtfyf]  .sec-hosting td {
    padding: var(--space-2) var(--space-3);
    vertical-align: top;
}

.section[b-b6e4bhtfyf]  .sec-hosting td b {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.status-y[b-b6e4bhtfyf] {
    color: var(--color-success-text);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    white-space: nowrap;
}

/* === Responsive === */
@media (max-width: 991px) {
    .section[b-b6e4bhtfyf],
    .section.alt > .inner[b-b6e4bhtfyf],
    .page-hero[b-b6e4bhtfyf],
    .related[b-b6e4bhtfyf] {
        padding-left: var(--space-5);
        padding-right: var(--space-5);
    }

    .page-hero h1[b-b6e4bhtfyf] {
        font-size: 30px;
    }

    .related[b-b6e4bhtfyf],
    .sec-split[b-b6e4bhtfyf] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .page-hero h1[b-b6e4bhtfyf] {
        font-size: 26px;
    }

    .section-title h2[b-b6e4bhtfyf] {
        font-size: 24px;
    }

    .section[b-b6e4bhtfyf] {
        padding-top: var(--space-7);
        padding-bottom: var(--space-7);
    }

    .section[b-b6e4bhtfyf]  .sec-hosting.data-table-wrap-scroll table.data-table {
        min-width: 560px;
    }

    .cta-band[b-b6e4bhtfyf] {
        padding: var(--space-6) var(--space-4);
        margin-left: var(--space-4);
        margin-right: var(--space-4);
    }
}
/* /Pages/Settings/Connections.razor.rz.scp.css */
/* Connections page — token-only, both modes. Replaces the old Bootstrap
   nav-pills stepper + --bs-* colors. The stepper itself is now the shared
   WizardStepper primitive; this file styles the screen-local download
   cards, token table, command preview and form rows. Visual only —
   wizard state and worker CLI command strings are owned elsewhere. */

.worker-stepper[b-ty0c812b0w] {
    margin-bottom: var(--space-6);
}

.worker-grid[b-ty0c812b0w] {
    align-items: start;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

/* Direct columns must shrink so Step 5's detection table scrolls internally. */
.worker-grid > *[b-ty0c812b0w] {
    min-width: 0;
    max-width: 100%;
}

.worker-grid > :first-child[b-ty0c812b0w] {
    container-type: inline-size;
}

/* Page shell ----------------------------------------------------------- */

.conn-jump[b-ty0c812b0w] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    margin: calc(-1 * var(--space-4)) 0 var(--space-5);
}

/* The section content pads its top by --space-4; the intro tucks up under the title. */
.conn-section-intro[b-ty0c812b0w] {
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    margin: calc(-1 * var(--space-4) - var(--space-2)) 0 var(--space-4);
    max-width: 760px;
}

.conn-anchor[b-ty0c812b0w] {
    scroll-margin-top: var(--space-6);
}

.worker-muted[b-ty0c812b0w] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

.worker-strong[b-ty0c812b0w] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.mono[b-ty0c812b0w] {
    font-family: var(--font-mono);
}

.worker-alert[b-ty0c812b0w] {
    margin-top: var(--space-4);
}

.worker-divider[b-ty0c812b0w] {
    height: 1px;
    background: var(--color-divider);
    border: none;
    margin: var(--space-5) 0;
}

.worker-docs-links[b-ty0c812b0w]  .worker-dl-action {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    min-height: var(--control-h-sm);
    white-space: normal;
}

/* Step card footer nav ------------------------------------------------- */

.worker-card-nav[b-ty0c812b0w] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
}

/* Token alert ---------------------------------------------------------- */

.worker-token-alert[b-ty0c812b0w] {
    display: flex;
    gap: var(--space-3);
    padding: var(--space-4);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-warning);
    background: var(--color-surface-1);
    margin-bottom: var(--space-4);
}

.worker-token-alert .alert-ico[b-ty0c812b0w] {
    flex-shrink: 0;
    color: var(--color-warning-text);
    font-weight: var(--fw-semibold);
}

.worker-token-alert-body[b-ty0c812b0w] {
    margin: var(--space-2) 0;
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
}

/* Input + action rows -------------------------------------------------- */

.worker-input-line[b-ty0c812b0w] {
    display: flex;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
    align-items: stretch;
}

.worker-input-line .form-control[b-ty0c812b0w] {
    flex: 1;
}

/* Repository list ------------------------------------------------------ */

.worker-repo-list[b-ty0c812b0w] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.worker-repo-item[b-ty0c812b0w] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
    cursor: pointer;
}

.worker-repo-item:last-child[b-ty0c812b0w] {
    border-bottom: none;
}

.worker-repo-item-text[b-ty0c812b0w] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: var(--fs-sm);
}

.worker-repo-item-text .worker-muted[b-ty0c812b0w] {
    font-size: var(--fs-xs);
}

.worker-repo-count[b-ty0c812b0w] {
    margin-top: var(--space-2);
}

/* Config form + preview ------------------------------------------------ */

.worker-field[b-ty0c812b0w] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.worker-cmd-head[b-ty0c812b0w] {
    margin-top: var(--space-5);
}

/* Verify seam ---------------------------------------------------------- */

.worker-verify-seam[b-ty0c812b0w] {
    text-align: center;
    padding: var(--space-6) 0;
    min-width: 0;
    max-width: 100%;
}

.worker-verify-seam p[b-ty0c812b0w] {
    overflow-wrap: anywhere;
}

.worker-verify-chip[b-ty0c812b0w] {
    display: flex;
    justify-content: center;
    margin-top: var(--space-4);
    min-width: 0;
    max-width: 100%;
    flex-wrap: wrap;
}

/* Contain the five-column detection table so scroll stays internal at 375px. */
.worker-verify-table[b-ty0c812b0w] {
    min-width: 0;
    max-width: 100%;
    width: 100%;
    overflow-x: auto;
}

/* Documentation panel -------------------------------------------------- */

.worker-docs-links[b-ty0c812b0w] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.worker-docs-note[b-ty0c812b0w] {
    font-size: var(--fs-xs);
}
/* /Pages/Settings/Integrations.razor.rz.scp.css */
/* Spacing between the two credential cards. */
.settings-integration-grid[b-kwwg8h7xuq] {
    margin-bottom: var(--space-5);
}
/* /Pages/Settings/Profile.razor.rz.scp.css */
/* Profile form / avatar-preview split (replaces bootstrap row/col). */
.profile-info-grid[b-tbkptonz7u] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 768px) {
    .profile-info-grid[b-tbkptonz7u] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Settings/Users/Detail.razor.rz.scp.css */
/* User info / avatar split (replaces bootstrap row/col). */
.user-info-split[b-047ea8lhiv] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 768px) {
    .user-info-split[b-047ea8lhiv] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Settings/Users/Edit.razor.rz.scp.css */
/* User edit details / avatar split (replaces bootstrap row/col). */
.user-edit-split[b-gfuh64cece] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    align-items: start;
}

@media (max-width: 768px) {
    .user-edit-split[b-gfuh64cece] {
        grid-template-columns: 1fr;
    }
}

.user-edit-avatar[b-gfuh64cece] {
    width: 100px;
    height: 100px;
    background: var(--color-surface-2);
    display: flex;
    align-items: center;
    justify-content: center;
}

.user-edit-avatar-icon[b-gfuh64cece] {
    font-size: 50px;
    color: var(--color-text-muted);
}
/* /Pages/Terms.razor.rz.scp.css */
/* Terms of Service page — token-based chrome (moved off inline styles). */

.terms-hero[b-sxunvm9x0h] {
    background: linear-gradient(135deg, var(--bg-color-secondary) 0%, var(--bg-color-tertiary) 100%);
}

.toc-sidebar[b-sxunvm9x0h] {
    top: 20px;
}

/* Legal-page two-column layout (replaces bootstrap row/col) */
.legal-layout[b-sxunvm9x0h] {
    display: grid;
    grid-template-columns: 25% 1fr;
    gap: var(--space-5);
}

@media (max-width: 991px) {
    .legal-layout[b-sxunvm9x0h] {
        grid-template-columns: 1fr;
    }
}

.toc-nav[b-sxunvm9x0h] {
    display: flex;
    flex-direction: column;
}

.toc-item[b-sxunvm9x0h] {
    display: block;
    padding: var(--space-2) var(--space-3);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
}

.toc-item:hover[b-sxunvm9x0h] {
    color: var(--color-accent);
    background: var(--color-surface-2);
}
/* /Pages/Tickets/Index.razor.rz.scp.css */
/* Real-time SignalR connection toast (token-driven, no inline style). */
.connection-toast[b-ulg8mqvznw] {
    z-index: var(--z-index-base);
}

/* Opaque surface: Bootstrap's translucent toast background lets the page show through. */
.connection-toast .toast[b-ulg8mqvznw] {
    --bs-toast-bg: var(--color-surface-1);
    color: var(--color-text);
}

.toast-state-ok[b-ulg8mqvznw] {
    color: var(--success-color);
}

.toast-state-warn[b-ulg8mqvznw] {
    color: var(--warning-color);
}

.toast-state-err[b-ulg8mqvznw] {
    color: var(--danger-color);
}
/* /Pages/UseCases/AgentTeams.razor.rz.scp.css */
/* Agent teams use-case visual — Epic 50 facit
   docs/planning/epic_50_public_discoverability/mockups/use-case-agent-teams.html
   (:623 two-column grid, :618-622 card, :708 grid gap, :731-735 responsive).
   Token-only; the template, buttons and team art own their own styles. */

.uc-team-grid[b-spk6mxl6ua] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}

.uc-split-card h2[b-spk6mxl6ua] {
    font-size: var(--fs-h2);
    margin: 0 0 var(--space-2);
}

.uc-split-card p[b-spk6mxl6ua] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
    margin: 0;
}

.uc-split-card p + p[b-spk6mxl6ua] {
    margin-top: var(--space-2);
}

.uc-split-card .mono[b-spk6mxl6ua] {
    font-family: var(--font-mono);
}

@media (max-width: 991px) {
    .uc-team-grid[b-spk6mxl6ua] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/UseCases/DistributedWorkload.razor.rz.scp.css */
/* Distributed workload use-case visual — Epic 50 facit
   docs/planning/epic_50_public_discoverability/mockups/use-case-distributed-workload.html
   (:721-730 fleet machines, the move row and the state dots).
   Token-only, correct in dark and light. The window chrome belongs to UseCaseTemplate and the
   badges to UI/Display/Badge. */

.machine[b-rxka96ji4h] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-2);
    padding: var(--space-3);
    margin-bottom: var(--space-2);
}

.machine .m-top[b-rxka96ji4h] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.machine .m-name[b-rxka96ji4h] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text);
}

.machine .m-meta[b-rxka96ji4h] {
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    margin-top: 4px;
}

.machine .m-pin[b-rxka96ji4h] {
    margin-top: var(--space-2);
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
    font-size: var(--fs-micro);
    color: var(--color-text-secondary);
}

.live[b-rxka96ji4h] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-success);
    flex: none;
}

.live.off[b-rxka96ji4h] {
    background: var(--color-text-faint);
}

.live.limit[b-rxka96ji4h] {
    background: var(--color-warning);
}

.move-row[b-rxka96ji4h] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    justify-content: center;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    margin: var(--space-2) 0;
    text-align: center;
}

.move-row .arrow[b-rxka96ji4h] {
    color: var(--color-accent);
    font-size: 16px;
}
/* /Pages/UseCases/PoDeveloperCollaboration.razor.rz.scp.css */
/* Product owner and developer use-case visual — Epic 50 facit
   docs/planning/epic_50_public_discoverability/mockups/use-case-po-developer-collaboration.html
   (:592-601 flow step, :713-720 lanes and answer form, :731-735 responsive).
   Token-only, correct in dark and light. The window chrome belongs to UseCaseTemplate and the
   badges to UI/Display/Badge. */

.lanes[b-93dcu6c4de] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--space-3);
}

.lane-head[b-93dcu6c4de] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}

.lane-head .where[b-93dcu6c4de] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.qa-item[b-93dcu6c4de] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    margin-bottom: var(--space-2);
    background: var(--color-surface-2);
}

.qa-item .q[b-93dcu6c4de] {
    font-size: var(--fs-xs);
    color: var(--color-text);
    margin-bottom: 6px;
}

.qa-ans[b-93dcu6c4de] {
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xs);
    padding: 6px 8px;
    min-height: 30px;
}

.qa-ans.empty[b-93dcu6c4de] {
    color: var(--color-text-faint);
}

.qa-submit[b-93dcu6c4de] {
    display: inline-flex;
    align-items: center;
    height: var(--control-h-sm);
    padding: 0 var(--space-3);
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    background: var(--color-accent);
    color: var(--color-text-on-accent);
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    white-space: nowrap;
}

.flow-step[b-93dcu6c4de] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    padding: 10px var(--space-3);
    font-size: var(--fs-xs);
}

.flow-step .k[b-93dcu6c4de] {
    width: 22px;
    height: 22px;
    flex: none;
    border-radius: var(--radius-xs);
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    background: var(--color-surface-3);
    color: var(--color-text-muted);
    border: 1px solid var(--color-border);
}

.flow-step.ok .k[b-93dcu6c4de] {
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
    border-color: var(--color-accent-line);
}

.flow-step.wait .k[b-93dcu6c4de] {
    background: var(--color-warning-soft);
    color: var(--color-warning-text);
    border-color: var(--color-warning-line);
}

.flow-step .nm[b-93dcu6c4de] {
    color: var(--color-text);
}

.flow-step .st[b-93dcu6c4de] {
    margin-left: auto;
    font-family: var(--font-mono);
    color: var(--color-text-muted);
    text-align: right;
}

@media (max-width: 991px) {
    .lanes[b-93dcu6c4de] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Workflows/Events.razor.rz.scp.css */
/* Workflows/Events — Epic 17 M2 Package C. Token-only helpers for the
   DataTable that replaced the RadzenDataGrid, the card-footer pager row,
   and the selected-event detail panel. No Bootstrap utilities. */

.event-time-cell[b-vggxpde5ez] {
    white-space: nowrap;
}

.event-time-rel[b-vggxpde5ez] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.event-na[b-vggxpde5ez] {
    color: var(--color-text-muted);
}

.event-pager[b-vggxpde5ez] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    width: 100%;
}

.event-pager-count[b-vggxpde5ez] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.event-detail-panel[b-vggxpde5ez] {
    margin-top: var(--space-4);
}
/* /Pages/Workflows/Index.razor.rz.scp.css */
/* Workflows/Index — fixed Actions column width (Epic 17 §17.2 Batch F:
   replaces the inline style="width: 100px;" on the table header cell). */

.actions-col[b-2g0w8afxso] {
    width: 100px;
}
/* /UI/Agents/AgentAxisPicker.razor.rz.scp.css */
/* AgentAxisPicker — three-axis row, unsupported markers, struck-through notes (AC-8). */

.agent-axis-picker .axis-row[b-l3mlg5mq1x] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4, 1rem);
}

.agent-axis-picker-compact .axis-row[b-l3mlg5mq1x] {
    grid-template-columns: 1fr;
    gap: var(--space-2, 0.5rem);
}

.agent-axis-picker .axis-head[b-l3mlg5mq1x] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    margin-bottom: var(--space-1, 0.25rem);
}

.agent-axis-picker .axis-ordinal[b-l3mlg5mq1x] {
    font-size: var(--fs-micro, 0.7rem);
    font-weight: var(--fw-semibold, 600);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}

.agent-axis-picker .axis-unsupported :deep(.form-select)[b-l3mlg5mq1x],
.agent-axis-picker .axis-unsupported :deep(.form-control)[b-l3mlg5mq1x] {
    border-color: var(--color-danger, #dc3545);
}

.agent-axis-picker :deep(option.axis-option-unsupported)[b-l3mlg5mq1x] {
    text-decoration: line-through;
    color: var(--color-text-muted);
}

@media (max-width: 767.98px) {
    .agent-axis-picker .axis-row[b-l3mlg5mq1x] {
        grid-template-columns: 1fr;
    }
}
/* /UI/Agents/AgentComposer.razor.rz.scp.css */
/* Composer — facit .composer inside inspector */
.composer[b-r8xmj7qpto] {
    border-top: 1px solid var(--color-divider);
    padding: var(--space-4) var(--space-5);
    background: var(--color-bg-sunken);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.composer-target[b-r8xmj7qpto] {
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    font-family: var(--font-mono);
}

.composer textarea[b-r8xmj7qpto] {
    width: 100%;
    resize: vertical;
    min-height: 4.5rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: var(--space-2) var(--space-3);
    background: var(--color-surface);
    color: var(--color-text);
    font: inherit;
}

.composer textarea:focus[b-r8xmj7qpto] {
    outline: none;
    border-color: var(--color-accent);
    box-shadow: var(--shadow-focus);
}

.composer-actions[b-r8xmj7qpto] {
    display: flex;
    justify-content: flex-end;
}

.composer-undeliverable[b-r8xmj7qpto] {
    font-size: var(--fs-sm);
    padding: var(--space-2) 0;
}

.muted[b-r8xmj7qpto] { color: var(--color-text-secondary); }
/* /UI/Agents/AgentInspector.razor.rz.scp.css */
/* AgentInspector — drawer over the tree, not a modal (token-only). */
.inspector-wrap[b-7e5wwiy5jb] {
    position: relative;
}

.inspector-scrim[b-7e5wwiy5jb] {
    position: absolute;
    inset: 0;
    background: rgba(3, 6, 10, 0.42);
    border-radius: var(--radius-lg);
    z-index: 2;
}

.inspector[b-7e5wwiy5jb] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(560px, 72%);
    background: var(--color-surface-1);
    border-left: 1px solid var(--color-border-strong);
    border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 3;
}

.inspector-head[b-7e5wwiy5jb] {
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
}

.inspector-head-row[b-7e5wwiy5jb] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
}

.inspector-head-main[b-7e5wwiy5jb] {
    min-width: 0;
    flex: 1;
}

[b-7e5wwiy5jb] .inspector-dot {
    margin-top: 6px;
    flex: none;
}

.node-identity[b-7e5wwiy5jb] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    min-width: 0;
}

.node-name[b-7e5wwiy5jb] {
    font-weight: var(--fw-semibold);
    font-size: var(--fs-md);
    color: var(--color-text);
}

.node-meta[b-7e5wwiy5jb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-1);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.inspector-repo[b-7e5wwiy5jb] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.inspector-tabs[b-7e5wwiy5jb] {
    display: flex;
    gap: var(--space-1);
    padding: 0 var(--space-5);
    border-bottom: 1px solid var(--color-divider);
}

.inspector-tabs button[b-7e5wwiy5jb] {
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    padding: var(--space-3);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.inspector-tabs button.on[b-7e5wwiy5jb] {
    color: var(--color-text);
    border-bottom-color: var(--color-accent);
}

.inspector-body[b-7e5wwiy5jb] {
    flex: 1;
    overflow: auto;
    padding: var(--space-4) var(--space-5);
    min-height: 0;
}

.inspector-placeholder[b-7e5wwiy5jb] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.icon-btn[b-7e5wwiy5jb] {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: var(--radius-xs);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-muted);
    cursor: pointer;
    flex: none;
    padding: 0;
}

.icon-btn:hover[b-7e5wwiy5jb] {
    color: var(--color-text);
    border-color: var(--color-border-strong);
}

.composer[b-7e5wwiy5jb] {
    border-top: 1px solid var(--color-divider);
    padding: var(--space-4) var(--space-5);
    background: var(--color-bg-sunken);
}

.mono[b-7e5wwiy5jb] {
    font-family: var(--font-mono);
}
/* /UI/Agents/AgentNode.razor.rz.scp.css */
/* AgentNode — facit .lead-card / .agent-node (token-only). E2 ships no row-actions chrome. */
.lead-card[b-d1toqwiq8g] {
    position: relative;
    border: 1px solid var(--color-border-strong);
    border-left: 3px solid var(--color-accent);
    border-radius: var(--radius-md);
    background: var(--color-surface-2);
    padding: var(--space-4);
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--space-3) var(--space-4);
    align-items: start;
}

.lead-card.is-failed[b-d1toqwiq8g] {
    border-left-color: var(--color-danger);
}

.lead-card.is-recovering[b-d1toqwiq8g] {
    border-left-color: var(--color-warning);
}

.lead-card.is-held[b-d1toqwiq8g] {
    border-left-color: var(--color-info);
}

.lead-body[b-d1toqwiq8g] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.node-identity[b-d1toqwiq8g] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    min-width: 0;
}

.node-name[b-d1toqwiq8g] {
    font-weight: var(--fw-semibold);
    font-size: var(--fs-h3);
    color: var(--color-text);
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.node-role[b-d1toqwiq8g] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.node-activity[b-d1toqwiq8g] {
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.node-meta[b-d1toqwiq8g] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.node-actions[b-d1toqwiq8g] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.agent-node[b-d1toqwiq8g] {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 2px var(--space-3);
    align-items: start;
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-1);
    overflow: hidden;
}

.agent-node:hover[b-d1toqwiq8g] {
    border-color: var(--color-border-strong);
    background: var(--color-surface-2);
}

.agent-node .line-1[b-d1toqwiq8g] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: nowrap;
    min-width: 0;
    overflow: hidden;
}

.agent-node .line-1 > *[b-d1toqwiq8g] {
    flex: none;
}

.agent-node .line-1 .node-name[b-d1toqwiq8g] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.agent-node .line-2[b-d1toqwiq8g] {
    grid-column: 2;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: nowrap;
    min-width: 0;
    overflow: hidden;
}

.agent-node .tail[b-d1toqwiq8g] {
    grid-column: 2;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.agent-node .right[b-d1toqwiq8g] {
    grid-row: 1 / 3;
    grid-column: 3;
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.agent-node .timing[b-d1toqwiq8g] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    text-align: right;
    white-space: nowrap;
}

.agent-node .timing b[b-d1toqwiq8g] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.agent-node .micro[b-d1toqwiq8g] {
    font-size: var(--fs-micro);
    color: var(--color-text-faint);
}

.agent-node .row-actions[b-d1toqwiq8g] {
    display: flex;
    gap: var(--space-1);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.agent-node:hover .row-actions[b-d1toqwiq8g],
.agent-node.selected .row-actions[b-d1toqwiq8g] {
    opacity: 1;
}

.lead-card .node-actions[b-d1toqwiq8g] {
    display: flex;
    gap: var(--space-1);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.lead-card:hover .node-actions[b-d1toqwiq8g],
.lead-card.selected .node-actions[b-d1toqwiq8g] {
    opacity: 1;
}

.btn-xs[b-d1toqwiq8g] {
    font-size: var(--fs-xs);
    padding: 0.15rem 0.45rem;
    border-radius: var(--radius-sm);
    line-height: 1.2;
}

.agent-node.selected[b-d1toqwiq8g] {
    border-color: var(--color-accent);
    box-shadow: var(--shadow-focus);
}

.agent-node.selected .row-actions[b-d1toqwiq8g] {
    opacity: 1;
}

.lead-card.selected[b-d1toqwiq8g] {
    border-color: var(--color-accent);
    box-shadow: var(--shadow-focus);
}

.lead-card[b-d1toqwiq8g],
.agent-node[b-d1toqwiq8g] {
    cursor: pointer;
}

.agent-node.settled[b-d1toqwiq8g] {
    padding: 6px var(--space-3);
    background: transparent;
    opacity: 0.72;
}

.agent-node.settled:hover[b-d1toqwiq8g] {
    opacity: 1;
    background: var(--color-surface-2);
}

.agent-node.settled .line-1[b-d1toqwiq8g] {
    font-size: var(--fs-sm);
}

.agent-node.settled .node-name[b-d1toqwiq8g] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
}

.agent-node.is-failed[b-d1toqwiq8g] {
    border-color: var(--color-danger-line);
    background: var(--color-danger-soft);
    opacity: 1;
}

.agent-node.is-adopting[b-d1toqwiq8g] {
    border-color: var(--color-warning-line);
}

.agent-node.is-held[b-d1toqwiq8g] {
    border-color: var(--color-info-line);
    background: var(--color-info-soft);
    opacity: 1;
}

.provenance[b-d1toqwiq8g] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    padding: 1px 7px;
    border-radius: var(--radius-pill);
    border: 1px solid transparent;
}

.provenance.adopted[b-d1toqwiq8g] {
    background: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.provenance.resumed[b-d1toqwiq8g] {
    background: var(--color-info-soft);
    border-color: var(--color-info-line);
    color: var(--color-info-text);
}

.provenance.lost[b-d1toqwiq8g] {
    background: var(--color-danger-soft);
    border-color: var(--color-danger-line);
    color: var(--color-danger-text);
}
/* /UI/Agents/AgentStateDot.razor.rz.scp.css */
/* AgentStateDot — facit .state-dot (token-only). */
.state-dot[b-vrktyji0ma] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: none;
    margin-top: 5px;
    box-shadow: 0 0 0 3px transparent;
}

.state-dot.running[b-vrktyji0ma] {
    background: var(--color-success);
    animation: agent-beacon-b-vrktyji0ma 1.6s var(--ease) infinite;
    box-shadow: 0 0 0 3px var(--color-success-soft);
}

.state-dot.waiting[b-vrktyji0ma] {
    background: var(--color-warning);
    box-shadow: 0 0 0 3px var(--color-warning-soft);
}

.state-dot.idle[b-vrktyji0ma] {
    background: transparent;
    border: 2px solid var(--color-info);
}

.state-dot.done[b-vrktyji0ma] {
    background: var(--color-text-faint);
}

.state-dot.failed[b-vrktyji0ma] {
    background: var(--color-danger);
    box-shadow: 0 0 0 3px var(--color-danger-soft);
}

.state-dot.killed[b-vrktyji0ma] {
    background: transparent;
    border: 2px solid var(--color-text-faint);
}

.state-dot.adopting[b-vrktyji0ma] {
    background: var(--color-warning);
    animation: agent-beacon-b-vrktyji0ma 1s var(--ease) infinite;
}

/* Was running, hit its account's usage limit — pause glyph (AC-28). Never animates. */
.state-dot.quota-held[b-vrktyji0ma] {
    background: transparent;
    border-radius: 1px;
    animation: none;
    border-left: 3px solid var(--color-info);
    border-right: 3px solid var(--color-info);
    box-shadow: 0 0 0 3px var(--color-info-soft);
}

/* Requested but never admitted — empty dashed ring (AC-23 / AC-28). Never animates. */
.state-dot.quota-deferred[b-vrktyji0ma] {
    background: transparent;
    border: 2px dashed var(--color-info);
    box-shadow: none;
    animation: none;
}

@keyframes agent-beacon-b-vrktyji0ma {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.35; transform: scale(0.75); }
}
/* /UI/Agents/AgentTranscript.razor.rz.scp.css */
/* AgentTranscript — facit newest-first transcript (token-only). */
.agent-transcript[b-6xt65l1zxo] {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-height: 0;
}

.transcript-note[b-6xt65l1zxo] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    padding: 5px var(--space-3);
    margin-bottom: var(--space-3);
}

.transcript-note i[b-6xt65l1zxo] {
    flex: none;
    margin-top: 2px;
}

.transcript[b-6xt65l1zxo] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    line-height: 1.65;
}

.tline[b-6xt65l1zxo] {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: var(--space-3);
    padding: 3px 0;
}

.tline .ts[b-6xt65l1zxo] {
    color: var(--color-text-faint);
}

.tline .tx[b-6xt65l1zxo] {
    color: var(--color-text-secondary);
    white-space: pre-wrap;
    word-break: break-word;
}

.tline.tool .tx[b-6xt65l1zxo] {
    color: var(--color-warning-text);
}

.tline.out .tx[b-6xt65l1zxo] {
    color: var(--color-text);
}

.tline.sys .tx[b-6xt65l1zxo] {
    color: var(--color-info-text);
}

.tline.err .tx[b-6xt65l1zxo] {
    color: var(--color-danger-text);
}

.tline.new[b-6xt65l1zxo] {
    background: var(--color-accent-soft);
    border-radius: var(--radius-xs);
}

.transcript-footer[b-6xt65l1zxo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-3);
    margin-bottom: var(--space-3);
}

.line-count[b-6xt65l1zxo] {
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    font-family: var(--font-mono);
}

.retention-note[b-6xt65l1zxo] {
    margin-bottom: 0;
    margin-top: var(--space-2);
}
/* /UI/Agents/AgentTree.razor.rz.scp.css */
/* AgentTree — facit .agent-tree / .children / .group-label. */
.agent-tree[b-sdqqtmoztw] {
    padding: var(--space-4) var(--space-5) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.children[b-sdqqtmoztw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-left: var(--space-4);
    padding-left: var(--space-4);
    border-left: 1px solid var(--color-divider);
}

.group-label[b-sdqqtmoztw] {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    margin-top: var(--space-2);
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    color: var(--color-text-secondary);
}

.group-label .cap[b-sdqqtmoztw] {
    font-weight: var(--fw-regular);
    color: var(--color-text-faint);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
}
/* /UI/Agents/AttemptHistoryPanel.razor.rz.scp.css */
.attempt-history[b-sddacm2wid] {
    margin-top: 1rem;
    min-width: 0;
    max-width: 100%;
}

.attempt-history-header[b-sddacm2wid] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
    min-width: 0;
}

.attempt-history-header h6[b-sddacm2wid] {
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Timeline lives inside ::deep — keep long refusal copy from expanding the page. */
.attempt-history[b-sddacm2wid]  .timeline {
    min-width: 0;
    max-width: 100%;
}

.attempt-history[b-sddacm2wid]  .timeline-content {
    min-width: 0;
}

.attempt-history[b-sddacm2wid]  .timeline-header {
    flex-wrap: wrap;
    gap: 0.35rem;
    min-width: 0;
}

.attempt-history[b-sddacm2wid]  .timeline-title,
.attempt-history[b-sddacm2wid]  .timeline-body {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}
/* /UI/Agents/BackendUnavailableCallout.razor.rz.scp.css */
.unavail[b-tp2h6a7l39] {
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
    border-radius: var(--radius-md, 0.5rem);
    background: var(--surface-raised, rgba(255, 255, 255, 0.03));
    padding: 1rem 1.1rem;
    margin-top: 0.75rem;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.unavail-head[b-tp2h6a7l39] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.unavail-head h3[b-tp2h6a7l39] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    flex: 1 1 auto;
}

.unavail-health[b-tp2h6a7l39] {
    margin: 0 0 0.75rem;
    padding: 0.55rem 0.7rem;
    border-radius: var(--radius-sm, 0.375rem);
    background: var(--surface-sunken, rgba(0, 0, 0, 0.12));
}

.unavail-health-head[b-tp2h6a7l39] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.4rem;
}

.unavail-health-title[b-tp2h6a7l39] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-secondary, inherit);
}

.unavail-health-chips[b-tp2h6a7l39] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.unavail-diag[b-tp2h6a7l39] {
    margin: 0 0 0.75rem;
    color: var(--text-secondary, inherit);
}

.unavail-fix[b-tp2h6a7l39] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    min-width: 0;
    max-width: 100%;
}

.unavail-fix .form-control[b-tp2h6a7l39] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    min-width: 0;
    flex: 1 1 auto;
    max-width: 100%;
}

.no-subst[b-tp2h6a7l39] {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    margin: 0.85rem 0 0;
    color: var(--text-secondary, inherit);
    min-width: 0;
}

.no-subst span[b-tp2h6a7l39] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.no-subst :deep(strong)[b-tp2h6a7l39] {
    color: var(--text-primary, inherit);
}
/* /UI/Agents/BudgetMeter.razor.rz.scp.css */
/* BudgetMeter — facit .meter (token-only). */
.meter[b-w5l5inhyct] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.meter-label[b-w5l5inhyct] {
    font-size: var(--fs-micro);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-faint);
    font-weight: var(--fw-semibold);
}

.meter-value[b-w5l5inhyct] {
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
    color: var(--color-text);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.meter-bar[b-w5l5inhyct] {
    width: 64px;
    height: 4px;
    border-radius: var(--radius-pill);
    background: var(--color-neutral-soft);
    overflow: hidden;
}

.meter-bar > i[b-w5l5inhyct] {
    display: block;
    height: 100%;
    background: var(--color-accent);
    border-radius: inherit;
}

.meter-bar.is-warn > i[b-w5l5inhyct] {
    background: var(--color-warning);
}

.meter-bar.is-held > i[b-w5l5inhyct] {
    background: var(--color-info);
}

.xs[b-w5l5inhyct] {
    font-size: var(--fs-xs);
}

.muted[b-w5l5inhyct] {
    color: var(--color-text-muted);
}
/* /UI/Agents/DeferredSpawnRow.razor.rz.scp.css */
/* DeferredSpawnRow — facit .recipe-row.is-deferred (token-only, dashed retained). */
.recipe-row.is-deferred[b-tta0ems1c7] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-1);
    padding: var(--space-2) var(--space-3);
    border: 1px dashed var(--color-info-line);
    border-radius: var(--radius-sm);
    background: var(--color-info-soft);
    color: var(--color-info-text);
}

.recipe-row.is-deferred .line[b-tta0ems1c7] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    min-width: 0;
}

.recipe-row.is-deferred .node-name[b-tta0ems1c7] {
    font-weight: var(--fw-semibold);
    font-size: var(--fs-sm);
    color: var(--color-text);
}

.recipe-row.is-deferred .queue[b-tta0ems1c7] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    opacity: 0.8;
    white-space: nowrap;
}

.recipe-row.is-deferred .spacer[b-tta0ems1c7] {
    flex: 1 1 auto;
    min-width: var(--space-2);
}

.recipe-row.is-deferred .xs[b-tta0ems1c7] {
    font-size: var(--fs-xs);
    margin: 0;
    color: var(--color-info-text);
}

.recipe-row.is-deferred .explanation[b-tta0ems1c7] {
    line-height: var(--lh-snug);
}

/* Lift the info badge off the row tint so it stays legible in both themes. */
.recipe-row.is-deferred[b-tta0ems1c7]  .badge-info {
    background: var(--color-surface-1);
}

[b-tta0ems1c7] .deferred-dot {
    margin-top: 0;
}
/* /UI/Agents/DeliveryPill.razor.rz.scp.css */
/* DeliveryPill — facit .msg-pill family (agent-tree-ticket-view.html:389-399). */
.msg-pill[b-ue3295x053] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    padding: 1px 7px;
    border-radius: var(--radius-pill);
    border: 1px dashed transparent;
    white-space: nowrap;
}

.msg-pill.inflight[b-ue3295x053] {
    border-color: var(--color-accent-line);
    color: var(--color-accent-text);
    background: var(--color-accent-soft);
}

.msg-pill.inflight .arrow[b-ue3295x053] {
    animation: slide-b-ue3295x053 1.1s linear infinite;
}

.msg-pill.delivered[b-ue3295x053] {
    border-style: solid;
    border-color: var(--color-success-line);
    color: var(--color-success-text);
    background: var(--color-success-soft);
}

.msg-pill.queued[b-ue3295x053] {
    border-color: var(--color-neutral-line);
    color: var(--color-text-muted);
    background: var(--color-neutral-soft);
}

.msg-pill.failed[b-ue3295x053] {
    border-style: solid;
    border-color: var(--color-danger-line);
    color: var(--color-danger-text);
    background: var(--color-danger-soft);
}

@keyframes slide-b-ue3295x053 {
    0% { transform: translateX(-2px); opacity: 0.4; }
    50% { opacity: 1; }
    100% { transform: translateX(3px); opacity: 0.4; }
}
/* /UI/Agents/ExecProfileChips.razor.rz.scp.css */
/* ExecProfileChips — facit .exec-chips (token-only). */
.exec-chips[b-lh03i0b6p9] {
    display: inline-flex;
    align-items: center;
    gap: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    height: 20px;
}

.exec-chips > span[b-lh03i0b6p9] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    padding: 0 6px;
    line-height: 18px;
    color: var(--color-text-secondary);
}

.exec-chips > span + span[b-lh03i0b6p9] {
    border-left: 1px solid var(--color-border);
}

.exec-chips .harness[b-lh03i0b6p9] {
    font-weight: var(--fw-semibold);
}

.exec-chips .harness.cc[b-lh03i0b6p9] {
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
}

.exec-chips .harness.cx[b-lh03i0b6p9] {
    background: var(--color-info-soft);
    color: var(--color-info-text);
}

.exec-chips .effort[b-lh03i0b6p9] {
    color: var(--color-text-muted);
}

.exec-chips .effort.hi[b-lh03i0b6p9] {
    color: var(--color-warning-text);
}

.exec-chips > span.inherited[b-lh03i0b6p9] {
    font-style: italic;
    text-decoration: underline dotted;
}
/* /UI/Agents/MessageLedger.razor.rz.scp.css */
/* Message ledger — facit details.ledger */
details.ledger[b-8gl1ta91wu] {
    border-top: 1px solid var(--color-divider);
}

details.ledger > summary[b-8gl1ta91wu] {
    cursor: pointer;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-5);
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
}

details.ledger > summary[b-8gl1ta91wu]::-webkit-details-marker { display: none; }
details.ledger > summary:hover[b-8gl1ta91wu] { color: var(--color-text); }
details.ledger[open] > summary[b-8gl1ta91wu] { border-bottom: 1px solid var(--color-divider); }

table.ledger-table[b-8gl1ta91wu] {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
}

table.ledger-table th[b-8gl1ta91wu] {
    text-align: left;
    padding: var(--space-2) var(--space-5);
    color: var(--color-text-faint);
    font-weight: var(--fw-semibold);
}

table.ledger-table td[b-8gl1ta91wu] {
    padding: var(--space-2) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    color: var(--color-text-secondary);
}

table.ledger-table tr:last-child td[b-8gl1ta91wu] { border-bottom: 0; }

.ledger-empty[b-8gl1ta91wu] {
    padding: var(--space-3) var(--space-5);
    font-size: var(--fs-sm);
}

.mono[b-8gl1ta91wu] { font-family: var(--font-mono); }
.xs[b-8gl1ta91wu] { font-size: var(--fs-xs); }
.muted[b-8gl1ta91wu] { color: var(--color-text-secondary); }
/* /UI/Agents/RepoMonogram.razor.rz.scp.css */
/* RepoMonogram — facit .repo-mono / .repo-stack (token-only). */
.repo-mono[b-y21j4an4m3] {
    display: inline-grid;
    place-items: center;
    width: 18px;
    height: 18px;
    flex: none;
    border-radius: var(--radius-xs);
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: var(--fw-bold);
    letter-spacing: 0;
    border: 1px solid;
}

.repo-mono.r1[b-y21j4an4m3] {
    background: var(--repo-1-soft);
    border-color: var(--repo-1-line);
    color: var(--repo-1);
}

.repo-mono.r2[b-y21j4an4m3] {
    background: var(--repo-2-soft);
    border-color: var(--repo-2-line);
    color: var(--repo-2);
}

.repo-mono.r3[b-y21j4an4m3] {
    background: var(--repo-3-soft);
    border-color: var(--repo-3-line);
    color: var(--repo-3);
}

.repo-stack[b-y21j4an4m3] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.repo-name[b-y21j4an4m3] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.star[b-y21j4an4m3] {
    color: var(--color-warning-text);
    font-size: 10px;
}
/* /UI/Agents/TeamStickyBar.razor.rz.scp.css */
/* TeamStickyBar — facit .team-stickybar (token-only). */
.team-stickybar[b-ikrj99sorx] {
    position: sticky;
    top: var(--topbar-h);
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-4);
    margin-bottom: var(--space-3);
    background: color-mix(in srgb, var(--color-surface-1) 92%, transparent);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    backdrop-filter: blur(8px);
}

.live-pill[b-ikrj99sorx] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    font-weight: var(--fw-medium);
    background: var(--color-success-soft);
    border: 1px solid var(--color-success-line);
    color: var(--color-success-text);
}

.live-pill .beacon[b-ikrj99sorx] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-success);
    animation: sticky-beacon-b-ikrj99sorx 1.6s var(--ease) infinite;
}

.live-pill.is-recovering[b-ikrj99sorx] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

.live-pill.is-recovering .beacon[b-ikrj99sorx] {
    background: var(--color-warning);
}

.live-pill.is-idle[b-ikrj99sorx] {
    background: var(--color-neutral-soft);
    border-color: var(--color-neutral-line);
    color: var(--color-text-muted);
}

.live-pill.is-idle .beacon[b-ikrj99sorx] {
    background: var(--color-text-faint);
    animation: none;
}

.live-pill.is-held[b-ikrj99sorx] {
    background: var(--color-info-soft);
    border-color: var(--color-info-line);
    color: var(--color-info-text);
}

.live-pill.is-held .beacon[b-ikrj99sorx] {
    background: var(--color-info);
    animation: none;
}

@keyframes sticky-beacon-b-ikrj99sorx {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.35; transform: scale(0.75); }
}

.count[b-ikrj99sorx] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
}

.count b[b-ikrj99sorx] {
    font-family: var(--font-mono);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

[b-ikrj99sorx] .count-dot {
    margin-top: 0;
}

.spacer[b-ikrj99sorx] {
    flex: 1 1 auto;
}

.mono[b-ikrj99sorx] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
}

.muted[b-ikrj99sorx] {
    color: var(--color-text-muted);
}

.btn-ghost[b-ikrj99sorx] {
    background: transparent;
    border: 0;
    color: var(--color-text-muted);
    font-size: var(--fs-xs);
    text-decoration: none;
    cursor: pointer;
    padding: 2px 6px;
}

.btn-ghost:hover[b-ikrj99sorx] {
    color: var(--color-text);
}

.agents[b-ikrj99sorx] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.agent[b-ikrj99sorx] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
}

.waiting[b-ikrj99sorx] {
    display: flex;
    flex: 1 0 100%;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    padding-top: var(--space-2);
    border-top: 1px solid var(--color-border);
}

.waiting-text[b-ikrj99sorx] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}
/* /UI/Alerts/InfoBox.razor.rz.scp.css */
.alert-heading[b-4r26h54g5b] {
    margin-bottom: 0.75rem;
}

.info-box-content ul[b-4r26h54g5b] {
    margin-bottom: 0;
    padding-left: 1.5rem;
}

.info-box-content li[b-4r26h54g5b] {
    margin-bottom: 0.25rem;
}
/* /UI/Alerts/InviteNudge.razor.rz.scp.css */
.nudge[b-x0udoz5rcm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
    background: var(--color-accent-soft);
    border: 1px solid var(--color-accent-line);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-5);
}

.nudge-mark[b-x0udoz5rcm] {
    width: 34px;
    height: 34px;
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    border: 1px solid var(--color-accent-line);
    display: grid;
    place-items: center;
    color: var(--color-accent-text);
    flex: 0 0 auto;
}

.nudge-text[b-x0udoz5rcm] {
    flex: 1 1 240px;
    min-width: 0;
}

.nudge-title[b-x0udoz5rcm] {
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    display: block;
}

.nudge-sub[b-x0udoz5rcm] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.nudge-actions[b-x0udoz5rcm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}
/* /UI/Alerts/SetupReadinessBanner.razor.rz.scp.css */
.setup-ready[b-ze79xhsp8a] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-success-line);
    background: var(--color-success-soft);
    color: var(--color-success-text);
    font-size: var(--fs-sm);
    margin-bottom: var(--space-4);
}

.setup-ready.is-blocked[b-ze79xhsp8a] {
    border-color: var(--color-warning-line);
    background: var(--color-warning-soft);
    color: var(--color-warning-text);
}
/* /UI/Backlog/BacklogColumnsMenu.razor.rz.scp.css */
/* Facit .pop-head / .opt / .check (backlog.html:1227-1241, board.html:799-808). Token-only, both modes. */
.pop-head[b-nvug44q6bn] {
    font-size: var(--fs-micro);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-text-faint);
    padding: var(--space-2) var(--space-2) var(--space-1);
}

.opt[b-nvug44q6bn] {
    width: 100%;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 6px var(--space-2);
    border-radius: var(--radius-sm);
    font-size: var(--fs-sm);
    color: var(--color-text);
    cursor: pointer;
}

.opt:hover:not(:disabled)[b-nvug44q6bn],
.opt:focus-visible[b-nvug44q6bn] {
    background: var(--color-surface-2);
    outline: none;
}

.opt.is-disabled[b-nvug44q6bn] {
    color: var(--color-text-faint);
    cursor: not-allowed;
}

.opt-label[b-nvug44q6bn] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.opt-hint[b-nvug44q6bn] {
    padding: var(--space-1) var(--space-2) var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.check[b-nvug44q6bn] {
    width: 15px;
    height: 15px;
    border-radius: var(--radius-xs);
    border: 1px solid var(--color-border);
    background: var(--color-bg-sunken);
    display: inline-grid;
    place-items: center;
    flex: none;
}

.check.on[b-nvug44q6bn] {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.check.on[b-nvug44q6bn]::after {
    content: "";
    width: 7px;
    height: 4px;
    border-left: 2px solid var(--color-text-on-accent);
    border-bottom: 2px solid var(--color-text-on-accent);
    transform: rotate(-45deg) translate(1px, -1px);
}
/* /UI/Backlog/BacklogTreeRow.razor.rz.scp.css */
/* Backlog tree rows — facit .tree-head / .tree-row (backlog.html:880-905). Token-only, both modes.
   Cells are fixed-width flex items shared by the header and every row, so any column choice lines up without
   an inline grid template (C5). Every cell has a definite width, so a row is never narrower than its columns:
   extra columns widen the row and the tree scrolls sideways instead of squeezing Name below its 240px. */
.tree-head[b-mollty9zg9],
.tree-row[b-mollty9zg9] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 0 var(--space-3);
    min-width: max-content;
}

.tree-head[b-mollty9zg9] {
    height: 30px;
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-border);
    font-size: var(--fs-micro);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-text-muted);
    font-weight: var(--fw-semibold);
}

.tree-row[b-mollty9zg9] {
    position: relative;
    height: 36px;
    border-bottom: 1px solid var(--color-border-soft);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.tree-row:hover[b-mollty9zg9] {
    background: var(--color-surface-2);
}

.tree-name[b-mollty9zg9] {
    flex: 1 0 auto;
    width: 240px;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.c-status[b-mollty9zg9] { flex: none; width: 132px; min-width: 0; }
.c-phase[b-mollty9zg9] { flex: none; width: 118px; min-width: 0; }
.c-cf[b-mollty9zg9] { flex: none; width: 104px; min-width: 0; }
.c-who[b-mollty9zg9] { flex: none; width: 120px; min-width: 0; }
.c-repo[b-mollty9zg9] { flex: none; width: 110px; min-width: 0; }
.c-updated[b-mollty9zg9] { flex: none; width: 84px; min-width: 0; }
.c-add[b-mollty9zg9] { flex: none; width: 30px; display: flex; justify-content: flex-end; }

.twisty[b-mollty9zg9] {
    position: relative;
    z-index: 2;
    width: 14px;
    height: 14px;
    flex: none;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-text-muted);
    display: grid;
    place-items: center;
    font-size: 10px;
}

button.twisty[b-mollty9zg9] {
    cursor: pointer;
}

.twisty.is-open[b-mollty9zg9]  i {
    transform: rotate(90deg);
}

.ticket-key[b-mollty9zg9] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-accent-text);
    flex: none;
    min-width: 54px;
}

.tree-name[b-mollty9zg9]  .type-epic {
    color: var(--color-warning);
    font-size: 12px;
    flex: none;
}

.t[b-mollty9zg9] {
    color: var(--color-text);
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.lvl-1 .tree-name[b-mollty9zg9] { padding-left: 22px; }
.lvl-2 .tree-name[b-mollty9zg9] { padding-left: 44px; }

.tree-row.is-group[b-mollty9zg9] {
    background: var(--color-bg-sunken);
    height: 34px;
}

.is-group .tree-name[b-mollty9zg9]  .area {
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.is-group .tree-name[b-mollty9zg9]  .area.is-none {
    color: var(--color-text-muted);
}

.grp-count[b-mollty9zg9] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.is-epic .t[b-mollty9zg9] { font-weight: var(--fw-semibold); }
.tree-row.is-context[b-mollty9zg9] { opacity: .55; }
.is-match .t[b-mollty9zg9] { box-shadow: inset 0 -1px 0 var(--color-accent-line); }

.phase[b-mollty9zg9],
.cf[b-mollty9zg9] {
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.phase.is-muted[b-mollty9zg9] { color: var(--color-text-muted); }

.progress-txt[b-mollty9zg9] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.who[b-mollty9zg9] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: var(--fs-xs);
}

.who-name[b-mollty9zg9] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.who[b-mollty9zg9]  .avatar {
    width: 20px;
    height: 20px;
    font-size: var(--fs-micro);
}

.who[b-mollty9zg9]  .avatar.is-empty {
    color: var(--color-text-muted);
    border-style: dashed;
}

.row-add[b-mollty9zg9] {
    position: relative;
    z-index: 2;
    font: inherit;
    font-size: var(--fs-xs);
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xs);
    color: var(--color-text-muted);
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    padding: 0;
    cursor: pointer;
}

.row-add:hover[b-mollty9zg9],
.row-add:focus-visible[b-mollty9zg9] {
    color: var(--color-text);
    border-color: var(--color-border-strong);
}

.c-add[b-mollty9zg9]  .pop-wrap {
    position: relative;
    z-index: 3;
}

.row-menu[b-mollty9zg9]  .overflow-menu__item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    padding: var(--space-2);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    font-size: var(--fs-sm);
    text-decoration: none;
}

.row-menu[b-mollty9zg9]  .overflow-menu__item:hover,
.row-menu[b-mollty9zg9]  .overflow-menu__item:focus-visible {
    background: var(--color-surface-2);
    outline: none;
}

.row-menu-note[b-mollty9zg9] {
    padding: 0 var(--space-2) var(--space-1);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

/* Facit callout: below 900px Phase, custom and Assignee hide; below 600px Status hides too, leaving name and +. */
@media (max-width: 899.98px) {
    .c-phase[b-mollty9zg9],
    .c-cf[b-mollty9zg9],
    .c-who[b-mollty9zg9] {
        display: none;
    }
}

@media (max-width: 599.98px) {
    .c-status[b-mollty9zg9],
    .c-repo[b-mollty9zg9],
    .c-updated[b-mollty9zg9] {
        display: none;
    }
}
/* /UI/Board/BoardColumn.razor.rz.scp.css */
/* BoardColumn — mockup `.board-col` / `.board-col-body` / `.board-empty` (06-developer-dark-dual/styles.css).
   Token-only, both modes. The head is BoardColumnHead; the card skin is BoardTicketCard's own. */

.board-col[b-cbvv4usebo] {
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-lg);
    min-height: 320px;
}

.board-col-body[b-cbvv4usebo] {
    padding: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.board-empty[b-cbvv4usebo] {
    text-align: center;
    padding: var(--space-6) 0;
    color: var(--color-text-faint);
    font-size: var(--fs-xs);
}
/* /UI/Board/BoardColumnHead.razor.rz.scp.css */
/* BoardColumnHead — mockup `.board-col-head` (06-developer-dark-dual/styles.css). Token-only, both modes. */

.board-col-head[b-jhf0pxktuy] {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.board-col-head .tick[b-jhf0pxktuy] {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    flex-shrink: 0;
}

.tick-accent[b-jhf0pxktuy] {
    background: var(--color-accent);
}

.tick-info[b-jhf0pxktuy] {
    background: var(--color-info);
}

.tick-warning[b-jhf0pxktuy] {
    background: var(--color-warning);
}

.tick-success[b-jhf0pxktuy] {
    background: var(--color-success);
}

.tick-danger[b-jhf0pxktuy] {
    background: var(--color-danger);
}

.tick-neutral[b-jhf0pxktuy] {
    background: var(--color-text-muted);
}

.board-col-head h4[b-jhf0pxktuy] {
    font-size: var(--fs-sm);
    margin: 0;
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.board-col-head .desc[b-jhf0pxktuy] {
    font-size: var(--fs-micro);
    color: var(--color-text-faint);
    display: block;
}

.board-col-head .count[b-jhf0pxktuy] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    padding: 0 7px;
}
/* /UI/Board/BoardItemCard.razor.rz.scp.css */
.board-item-card[b-4ds00xxtnr] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem 0.85rem;
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

.board-item-card:hover[b-4ds00xxtnr] {
    border-color: var(--color-border-strong);
}
/* /UI/Board/BoardLayout.razor.rz.scp.css */
/* BoardLayout — mockup `.board` (06-developer-dark-dual/styles.css):
   5-column equal grid, collapses to 1 column on narrow viewports. */

.board[b-egrkj44pyw] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--space-4);
    align-items: start;
}

.board.board-cols-6[b-egrkj44pyw] {
    grid-template-columns: repeat(6, 1fr);
}

.board.board-cols-7[b-egrkj44pyw] {
    grid-template-columns: repeat(7, 1fr);
}

@media (max-width: 1100px) {
    .board[b-egrkj44pyw] {
        grid-template-columns: 1fr;
    }
}
/* /UI/Board/Swimlane.razor.rz.scp.css */
/* Swimlane — facit .lane / .lane-head / .lane-body (board.html:870-878). */

.lane[b-m7uohkyjxg] {
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-3);
    background: var(--color-surface-1);
}

.lane-head[b-m7uohkyjxg] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    padding: var(--space-2) var(--space-3);
    border: 0;
    background: transparent;
    color: var(--color-text);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    text-align: left;
    cursor: pointer;
}

.lane-head .chev[b-m7uohkyjxg] {
    font-size: 12px;
    color: var(--color-text-muted);
    transform: rotate(90deg);
    transition: transform var(--transition-fast);
}

.lane.is-collapsed .lane-head .chev[b-m7uohkyjxg] {
    transform: none;
}

.lane-head[b-m7uohkyjxg]  .area {
    font-size: var(--fs-sm);
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.lane-head[b-m7uohkyjxg]  .area.is-none {
    color: var(--color-text-muted);
}

.lane-head .count[b-m7uohkyjxg] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    font-weight: var(--fw-regular);
}

.lane-head .lane-meta[b-m7uohkyjxg] {
    margin-left: auto;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    font-weight: var(--fw-regular);
}

.lane-body[b-m7uohkyjxg] {
    padding: 0 var(--space-3) var(--space-3);
}

.lane-head[b-m7uohkyjxg]  .lane-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lane-head[b-m7uohkyjxg]  .lane-label.is-none {
    color: var(--color-text-muted);
}
/* /UI/Board/SwimlaneCell.razor.rz.scp.css */
/* SwimlaneCell — facit .swim .cell (board.html:990-991). */

.cell[b-ye9uxd4hbk] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-height: 40px;
    min-width: 0;
}

.cell.is-empty[b-ye9uxd4hbk]::after {
    content: "";
    display: block;
    height: 40px;
    border: 1px dashed var(--color-border-soft);
    border-radius: var(--radius-sm);
}
/* /UI/Board/SwimlaneLayout.razor.rz.scp.css */
/* SwimlaneLayout — facit .swim / .swim-inner / .swim-grid (board.html:984-991, :1010-1011). The lanes and cells
   are child components, so the shared grid reaches them through ::deep. */

.swim[b-8ot1xps4ex] {
    overflow-x: auto;
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-md);
    background: var(--color-bg-sunken);
}

.swim-inner[b-8ot1xps4ex] {
    min-width: 1120px;
    padding: var(--space-2);
}

.swim-inner.is-wide[b-8ot1xps4ex] {
    min-width: 1300px;
}

.swim[b-8ot1xps4ex]  .swim-grid {
    display: grid;
    gap: var(--space-2);
}

.swim[b-8ot1xps4ex]  .swim-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.swim[b-8ot1xps4ex]  .swim-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.swim[b-8ot1xps4ex]  .swim-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.swim[b-8ot1xps4ex]  .swim-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.swim[b-8ot1xps4ex]  .swim-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.swim[b-8ot1xps4ex]  .swim-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.swim[b-8ot1xps4ex]  .swim-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.swim[b-8ot1xps4ex]  .swim-cols-8 { grid-template-columns: repeat(8, minmax(0, 1fr)); }

.swim-head[b-8ot1xps4ex]  .board-col-head {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
}

.swim[b-8ot1xps4ex]  .lane {
    margin: var(--space-2) 0 0;
}

.swim[b-8ot1xps4ex]  .lane-body {
    padding: 0 var(--space-2) var(--space-2);
}
/* /UI/Buttons/Button.razor.rz.scp.css */
/* Button — semantic sized button primitive. Token-only. sm/md tiers only. */

.btn-prf[b-gbbbef5u49] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-family: var(--font-sans);
    font-weight: var(--fw-medium);
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color var(--transition-base),
                border-color var(--transition-base),
                color var(--transition-base),
                transform 0.04s;
}

.btn-prf:active[b-gbbbef5u49] {
    transform: translateY(1px);
}

.btn-prf:focus-visible[b-gbbbef5u49] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.btn-prf:disabled[b-gbbbef5u49],
.btn-prf[disabled][b-gbbbef5u49] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* ---- Size tiers ---- */
.btn-prf-md[b-gbbbef5u49] {
    height: var(--control-h);
    padding: 0 var(--space-4);
    font-size: var(--fs-body);
}

.btn-prf-sm[b-gbbbef5u49] {
    height: var(--control-h-sm);
    padding: 0 var(--space-3);
    font-size: var(--fs-sm);
}

/* ---- Variants ---- */
.btn-prf-primary[b-gbbbef5u49] {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
    font-weight: var(--fw-semibold);
}

.btn-prf-primary:hover[b-gbbbef5u49] {
    background-color: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
}

.btn-prf-primary:active[b-gbbbef5u49] {
    background-color: var(--color-accent-press);
    border-color: var(--color-accent-press);
}

.btn-prf-secondary[b-gbbbef5u49] {
    background-color: var(--color-surface-2);
    border-color: var(--color-border);
    color: var(--color-text);
}

.btn-prf-secondary:hover[b-gbbbef5u49] {
    background-color: var(--color-surface-3);
}

.btn-prf-danger[b-gbbbef5u49] {
    background-color: var(--color-danger);
    border-color: var(--color-danger);
    color: var(--color-text-on-accent);
}

.btn-prf-danger:hover[b-gbbbef5u49] {
    background-color: var(--color-danger-text);
    border-color: var(--color-danger-text);
}

.btn-prf-danger-soft[b-gbbbef5u49] {
    background-color: var(--color-danger-soft);
    border-color: var(--color-danger-line);
    color: var(--color-danger-text);
}

.btn-prf-danger-soft:hover[b-gbbbef5u49] {
    border-color: var(--color-danger-text);
    color: var(--color-danger-text);
}

.btn-prf-ghost[b-gbbbef5u49] {
    background-color: transparent;
    border-color: transparent;
    color: var(--color-text-secondary);
}

.btn-prf-ghost:hover[b-gbbbef5u49] {
    background-color: var(--color-surface-2);
    color: var(--color-text);
}

.btn-prf-ghost-on-dark[b-gbbbef5u49] {
    color: var(--color-text-secondary);
}

.btn-prf-ghost-on-dark:hover[b-gbbbef5u49] {
    background-color: var(--color-sidebar-active);
    color: var(--color-text);
}

@media (max-width: 768px) {
    .btn-prf-md[b-gbbbef5u49],
    .btn-prf-sm[b-gbbbef5u49] { height: var(--control-h-lg); }
}
/* /UI/Buttons/ButtonGroup.razor.rz.scp.css */
/* ButtonGroup — consistent-gap flex cluster. Token-driven spacing only. */

.btn-group-prf[b-6nxnkzm6xh] {
    display: flex;
    gap: var(--space-2);
}

.btn-group-prf-horizontal[b-6nxnkzm6xh] {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
}

.btn-group-prf-vertical[b-6nxnkzm6xh] {
    flex-direction: column;
    align-items: stretch;
}

.btn-group-prf-start[b-6nxnkzm6xh] {
    justify-content: flex-start;
}

.btn-group-prf-end[b-6nxnkzm6xh] {
    justify-content: flex-end;
}

.btn-group-prf-center[b-6nxnkzm6xh] {
    justify-content: center;
}
/* /UI/Buttons/OverflowMenu.razor.rz.scp.css */
/* OverflowMenu — facit `.menu-wrap` / `.dropdown-menu` / `.dropdown-item`
   (ticket page simplification, ticket-detail.html). Token-only, both modes. */

.overflow-menu[b-43n0roj24z] {
    position: relative;
    display: inline-flex;
}

.overflow-menu__backdrop[b-43n0roj24z] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.overflow-menu__panel[b-43n0roj24z] {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    width: 300px;
    max-width: calc(100vw - 2rem);
    padding: var(--space-1);
    background: var(--color-surface-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    z-index: 1041;
}

.overflow-menu__panel.is-open[b-43n0roj24z] {
    display: block;
}

.overflow-menu__panel[b-43n0roj24z]  .overflow-menu__item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    padding: var(--space-2);
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--color-text);
    font: inherit;
    font-size: var(--fs-sm);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.overflow-menu__panel[b-43n0roj24z]  .overflow-menu__item:hover:not(:disabled),
.overflow-menu__panel[b-43n0roj24z]  .overflow-menu__item:focus-visible {
    background: var(--color-surface-2);
    outline: none;
}

.overflow-menu__panel[b-43n0roj24z]  .overflow-menu__item i {
    color: var(--color-text-muted);
    font-size: 14px;
}

.overflow-menu__panel[b-43n0roj24z]  .overflow-menu__item.is-danger {
    color: var(--color-danger-text);
}

.overflow-menu__panel[b-43n0roj24z]  .overflow-menu__item:disabled,
.overflow-menu__panel[b-43n0roj24z]  .overflow-menu__item:disabled i {
    color: var(--color-text-faint);
    cursor: not-allowed;
}

.overflow-menu__panel[b-43n0roj24z]  .overflow-menu__divider {
    height: 1px;
    margin: var(--space-1) 0;
    background: var(--color-border-soft);
}
/* /UI/Cards/Card.razor.rz.scp.css */
/* Card — mockup 06-developer-dual `.card` + `.card-head`/`.card-body`.
   Token-only, both modes. The base `.card` surface/border/radius/shadow
   is set globally (cascade-reset.css) so raw Bootstrap cards match too;
   here we tune the header/body chrome to the mockup spec. */

.card[b-vne6k1ygjj] {
    background-color: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    /* Shrink inside grid/flex so internal scroll wraps can bind to the column. */
    min-width: 0;
    max-width: 100%;
}

.card:hover[b-vne6k1ygjj] {
    border-color: var(--color-border-strong);
}

.card-header[b-vne6k1ygjj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    background-color: var(--color-surface-1);
    color: var(--color-text);
    border-bottom: 1px solid var(--color-divider);
}

/* Header headings are --fs-h3 (14px). Neither the title heading Card builds in C# nor a heading in
   a consumer's HeaderContent carries Card's scope attribute, so a plain `.card-header h2` rule never
   reaches them: ::deep roots the rule at Card's own header instead. :where() keeps it at the
   specificity of one class, so a consumer's own scoped heading rule still wins. A heading that asks
   for its size with a Bootstrap utility (.h1–.h6, .fs-1–.fs-6) keeps it: the exclusion sits inside
   :where() too, so it adds no specificity. */
:where(.card-header)[b-vne6k1ygjj]  :where(h1, h2, h3, h4, h5, h6):where(:not(.h1, .h2, .h3, .h4, .h5, .h6, .fs-1, .fs-2, .fs-3, .fs-4, .fs-5, .fs-6)) {
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    margin: 0;
}

.card-header[b-vne6k1ygjj]  .card-title-heading {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.card-header[b-vne6k1ygjj]  i.bi {
    color: var(--color-text-muted);
}

.card-body[b-vne6k1ygjj] {
    padding: var(--space-5);
    color: var(--color-text);
    min-width: 0;
    max-width: 100%;
}

.card-footer[b-vne6k1ygjj] {
    padding: var(--space-3) var(--space-5);
    background-color: var(--color-surface-1);
    border-top: 1px solid var(--color-divider);
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
}

/* Status header treatment (Epic 17 locked decision 2).
   Soft tint background + dark readable text + a thin colored accent rule.
   Never a saturated bg-* text-white|dark fill. Token-only. */

.card-header.is-primary[b-vne6k1ygjj],
.card-header.is-secondary[b-vne6k1ygjj],
.card-header.is-success[b-vne6k1ygjj],
.card-header.is-danger[b-vne6k1ygjj],
.card-header.is-warning[b-vne6k1ygjj],
.card-header.is-info[b-vne6k1ygjj],
.card-header.is-muted[b-vne6k1ygjj] {
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    border-left: 3px solid transparent;
}

.card-header.is-primary[b-vne6k1ygjj] {
    background-color: var(--color-accent-soft);
    color: var(--color-accent-text);
    border-left-color: var(--color-accent);
}

.card-header.is-secondary[b-vne6k1ygjj] {
    background-color: var(--color-neutral-soft);
    color: var(--color-text-secondary);
    border-left-color: var(--color-text-muted);
}

.card-header.is-success[b-vne6k1ygjj] {
    background-color: var(--color-success-soft);
    color: var(--color-success-text);
    border-left-color: var(--color-success);
}

.card-header.is-danger[b-vne6k1ygjj] {
    background-color: var(--color-danger-soft);
    color: var(--color-danger-text);
    border-left-color: var(--color-danger);
}

.card-header.is-warning[b-vne6k1ygjj] {
    background-color: var(--color-warning-soft);
    color: var(--color-warning-text);
    border-left-color: var(--color-warning);
}

.card-header.is-info[b-vne6k1ygjj] {
    background-color: var(--color-info-soft);
    color: var(--color-info-text);
    border-left-color: var(--color-info);
}

.card-header.is-muted[b-vne6k1ygjj] {
    background-color: var(--color-neutral-soft);
    color: var(--color-text-muted);
    border-left-color: var(--color-border);
}

/* Muted card affordance — a quiet inactive cue (replaces conditional
   border-secondary on TenantListItem). */
.card-muted[b-vne6k1ygjj] {
    border-color: var(--color-border);
    opacity: 0.85;
}
/* /UI/Comments/CommentAnchorIndicator.razor.rz.scp.css */
.comment-anchor-indicator[b-nrnuo2w7js] {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    background-color: rgba(13, 110, 253, 0.1);
    transition: background-color 0.2s;
}

.comment-anchor-indicator:hover[b-nrnuo2w7js] {
    background-color: rgba(13, 110, 253, 0.2);
}

.comment-anchor-indicator i[b-nrnuo2w7js] {
    font-size: 14px;
}
/* /UI/CustomFields/CustomFieldList.razor.rz.scp.css */
.list-card[b-uuhcoluy4m] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.list-card[b-uuhcoluy4m]  .field-row {
    display: grid;
    grid-template-columns: var(--space-4) minmax(0, 1.4fr) calc(var(--space-9) + var(--space-3)) minmax(0, 1fr) calc(var(--space-9) + var(--space-3)) auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border-top: 1px solid var(--color-border-soft);
    font-size: var(--fs-sm);
}

.list-card[b-uuhcoluy4m]  .field-row:first-child {
    border-top: 0;
}

.list-card[b-uuhcoluy4m]  .field-row.is-head {
    font-size: var(--fs-micro);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-text-muted);
    font-weight: var(--fw-semibold);
    background: var(--color-bg-sunken);
}

.list-card[b-uuhcoluy4m]  .field-row.is-archived {
    color: var(--color-text-muted);
}

.list-card[b-uuhcoluy4m]  .field-row.is-archived .fname {
    text-decoration: line-through;
}

.list-card[b-uuhcoluy4m]  .grip {
    color: var(--color-text-faint);
    font-size: var(--fs-xs);
    letter-spacing: calc(var(--space-1) * -0.5);
    user-select: none;
}

.list-card[b-uuhcoluy4m]  .fname {
    color: var(--color-text);
    font-weight: var(--fw-medium);
}

@media (max-width: 899.98px) {
    .list-card[b-uuhcoluy4m]  .field-row {
        grid-template-columns: var(--space-4) minmax(0, 1fr) var(--space-9) auto;
    }

    .list-card[b-uuhcoluy4m]  .c-scope,
    .list-card[b-uuhcoluy4m]  .c-state {
        display: none;
    }
}
/* /UI/CustomFields/CustomFieldOptionsEditor.razor.rz.scp.css */
.opt-editor[b-og3kmgv1hj] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.opt-line[b-og3kmgv1hj] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.opt-line[b-og3kmgv1hj]  .form-control {
    height: var(--control-h-sm);
    font-size: var(--fs-sm);
}

.opt-line.is-archived[b-og3kmgv1hj]  .form-control {
    color: var(--color-text-muted);
    text-decoration: line-through;
}

.grip[b-og3kmgv1hj] {
    color: var(--color-text-faint);
    font-size: var(--fs-xs);
    letter-spacing: calc(var(--space-1) * -0.5);
    min-width: var(--space-3);
    user-select: none;
}
/* /UI/Dialogs/Modal.razor.rz.scp.css */
/* Modal — isolated CSS replacing the removed inline style="display:block"
   and the saturated bg-* text-white header (Epic 17 plan 17.1 §4.2).
   Canonical tokens only. Behavior is unchanged: .modal-shown reproduces
   exactly what the inline `display:block` did (Bootstrap's .modal is
   display:none until shown). The header is the chosen mockup's quiet
   .m-head; a variant only tints a thin bottom rule — never a colored band. */

.modal-shown[b-a0odt28twl] {
    display: block;
}

.modal-quiet-header[b-a0odt28twl] {
    background: var(--color-surface-1);
    color: var(--color-text);
    border-bottom: 1px solid var(--color-divider);
    column-gap: var(--space-3);
}

/* A long title (a move names the ticket and both machines) wraps beside Close, never under or into it. */
.modal-title[b-a0odt28twl] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.modal-quiet-header .btn-close[b-a0odt28twl] {
    flex-shrink: 0;
}

/* Variant = a single restrained accent line, not a saturated header. */
.modal-tone-primary[b-a0odt28twl] {
    border-bottom-color: var(--color-accent-line);
}

.modal-tone-success[b-a0odt28twl] {
    border-bottom-color: var(--color-success-line);
}

.modal-tone-danger[b-a0odt28twl] {
    border-bottom-color: var(--color-danger-line);
}

.modal-tone-warning[b-a0odt28twl] {
    border-bottom-color: var(--color-warning-line);
}

.modal-tone-info[b-a0odt28twl] {
    border-bottom-color: var(--color-info-line);
}

/* Focus-cycle sentinels. Present in the tab order (leading/trailing, tabindex=0)
   or programmatically focusable only (.modal-cycle-end, tabindex=-1); never
   visible, never painted, never a layout box. */
.modal-focus-sentinel[b-a0odt28twl],
.modal-cycle-end[b-a0odt28twl] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
/* /UI/Display/ActivityItem.razor.rz.scp.css */
/* ActivityItem — mockup `.activity-item`. Token-only, both modes. */

.activity-item[b-hv4regvcvz] {
    display: flex;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-divider);
    text-decoration: none;
    color: inherit;
}

.activity-item:last-child[b-hv4regvcvz] {
    border-bottom: none;
}

.activity-item:hover[b-hv4regvcvz] {
    background-color: var(--color-surface-2);
}

.activity-main[b-hv4regvcvz] {
    flex: 1;
    min-width: 0;
}

.activity-top[b-hv4regvcvz] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.activity-id[b-hv4regvcvz] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-accent-text);
}

.activity-title[b-hv4regvcvz] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    margin: 3px 0;
}

.activity-repo[b-hv4regvcvz] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    font-family: var(--font-mono);
}

.activity-time[b-hv4regvcvz] {
    font-size: var(--fs-xs);
    color: var(--color-text-faint);
    white-space: nowrap;
}
/* /UI/Display/ActivitySparkline.razor.rz.scp.css */
.spark[b-jij6t02byg] {
    width: 84px;
    height: 24px;
    display: block;
    overflow: visible;
}

.spark polyline[b-jij6t02byg] {
    fill: none;
    stroke: var(--color-accent);
    stroke-width: 1.5;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.spark .spark-fill[b-jij6t02byg] {
    fill: var(--color-accent-soft);
    stroke: none;
}

.spark-quiet polyline[b-jij6t02byg] {
    stroke: var(--color-text-faint);
}

.spark-quiet .spark-fill[b-jij6t02byg] {
    fill: var(--color-neutral-soft);
}

.spark-lg[b-jij6t02byg] {
    width: 100%;
    height: 96px;
}
/* /UI/Display/AgentProfileLabel.razor.rz.scp.css */
/* AgentProfileLabel — hollow segmented three-axis label.
   Facit: mockups/landing.html:337-348. Canonical tokens only.

   Wrapping, not truncation: the container wraps (flex-wrap) and is bounded by
   max-width, while each segment keeps its own text intact (white-space on the
   segment, never on the container). min-height, never a fixed height — a fixed
   height plus overflow is what clips a "Claude Code · Claude Sonnet · medium"
   label at 375px, and this label must wrap onto a second line instead. */

.agent-profile[b-vrziffks57] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    min-height: 20px;
    max-width: 100%;
}

.agent-profile > span[b-vrziffks57] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    padding: 0 6px;
    line-height: 18px;
    color: var(--color-text-secondary);
    white-space: nowrap;
}

.agent-profile > span + span[b-vrziffks57] {
    border-left: 1px solid var(--color-border);
}

/* Axis 1 — tool. Four tints; an unrecognised tool keeps the neutral segment. */
.ap-tool[b-vrziffks57] {
    font-weight: var(--fw-semibold);
}

.ap-tool.cc[b-vrziffks57] {
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
}

.ap-tool.cx[b-vrziffks57] {
    background: var(--color-info-soft);
    color: var(--color-info-text);
}

.ap-tool.pi[b-vrziffks57] {
    background: var(--color-success-soft);
    color: var(--color-success-text);
}

.ap-tool.cu[b-vrziffks57] {
    background: var(--color-neutral-soft);
    color: var(--color-text-secondary);
}

/* Axis 3 — reasoning effort. The prefix is CSS, so the parameter stays the bare
   value ("xhigh") and no caller has to remember to write the word. */
.ap-effort[b-vrziffks57] {
    color: var(--color-text-muted);
}

.ap-effort[b-vrziffks57]::before {
    content: "effort ";
    color: var(--color-text-faint);
}
/* /UI/Display/AreaPill.razor.rz.scp.css */
/* Area pill (Epic 49): colour comes from a fixed palette of six theme tokens; no free hex. */
.area[b-36xpyq482h] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.area[b-36xpyq482h]::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 2px;
    flex: none;
    background: var(--area-c, var(--color-text-faint));
}

.area.is-none[b-36xpyq482h] {
    color: var(--color-text-faint);
}

.area.is-none[b-36xpyq482h]::before {
    background: transparent;
    border: 1px dashed var(--color-text-faint);
}

.area-teal[b-36xpyq482h] { --area-c: var(--color-accent); }
.area-blue[b-36xpyq482h] { --area-c: var(--color-info); }
.area-green[b-36xpyq482h] { --area-c: var(--color-success); }
.area-amber[b-36xpyq482h] { --area-c: var(--color-warning); }
.area-red[b-36xpyq482h] { --area-c: var(--color-danger); }
.area-grey[b-36xpyq482h] { --area-c: var(--color-text-muted); }

.area.is-archived[b-36xpyq482h] {
    color: var(--color-text-muted);
    font-style: italic;
}
/* /UI/Display/ArtefactViewer.razor.rz.scp.css */
/* ArtefactViewer — Epic 19. Token-only; mirrors mockup-1.html .art-view /
   .art-binary without copying its planning-only inline <style>. */

.artefact-viewer[b-7jw4z5pkca] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    min-height: 240px;
    padding: var(--space-4);
    overflow: auto;
    background: var(--color-surface-2);
}

.artefact-viewer-frame[b-7jw4z5pkca] {
    width: 100%;
    height: 300px;
    border: 0;
    border-radius: var(--radius-sm);
    background: #ffffff;
}

.artefact-viewer-markdown[b-7jw4z5pkca] {
    font-size: var(--fs-sm);
}

.artefact-viewer-binary[b-7jw4z5pkca] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-7);
    text-align: center;
}

.artefact-viewer-binary-glyph[b-7jw4z5pkca] {
    font-size: 2rem;
    color: var(--color-text-secondary);
}

.artefact-viewer-binary-name[b-7jw4z5pkca] {
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
}

.artefact-viewer-binary-mime[b-7jw4z5pkca] {
    font-size: var(--fs-micro);
    color: var(--color-text-secondary);
}

.artefact-viewer-binary-note[b-7jw4z5pkca] {
    margin: 0;
    max-width: 32rem;
    font-size: var(--fs-micro);
    color: var(--color-text-secondary);
}
/* /UI/Display/Avatar.razor.rz.scp.css */
/* Avatar — visual spec from mockup `.avatar`.
   No-JS broken-image fallback: the initials sit in normal flow and the
   <img> is absolutely positioned ON TOP. When the image loads it fully
   covers the initials; when it 404s the browser paints nothing for the
   broken image box, so the initials underneath remain visible. No
   `onerror=`, no script. */

.avatar[b-1qfwtvun37] {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--color-surface-3);
    border: 1px solid var(--color-border);
    color: var(--color-accent-text);
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    overflow: hidden;
    user-select: none;
    flex: none;
}

.avatar-initials[b-1qfwtvun37] {
    grid-area: 1 / 1;
    line-height: 1;
}

.avatar-img[b-1qfwtvun37] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    /* Hide the broken-image glyph/alt box so initials show through on 404. */
    color: transparent;
    font-size: 0;
}

/* Size variants. */
.avatar-sm[b-1qfwtvun37] {
    width: 20px;
    height: 20px;
    font-size: var(--fs-micro);
}

.avatar-md[b-1qfwtvun37] {
    width: 26px;
    height: 26px;
    font-size: var(--fs-xs);
}

.avatar-lg[b-1qfwtvun37] {
    width: 40px;
    height: 40px;
    font-size: var(--fs-sm);
}

/* Profile/detail surfaces — preserves the original 120px avatar footprint. */
.avatar-xl[b-1qfwtvun37] {
    width: 120px;
    height: 120px;
    font-size: var(--fs-display);
}
/* /UI/Display/Badge.razor.rz.scp.css */
/* Badge — soft-tint pill primitive. Token-only (Epic 17 canonical tokens). */

.badge[b-op6tx5jpqm] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    font-weight: var(--fw-medium);
    line-height: var(--lh-tight);
    border-radius: var(--radius-pill);
    border: 1px solid transparent;
    white-space: nowrap;
}

.badge-neutral[b-op6tx5jpqm] {
    background-color: var(--color-neutral-soft);
    border-color: var(--color-neutral-line);
    color: var(--color-text-secondary);
}

.badge-info[b-op6tx5jpqm] {
    background-color: var(--color-info-soft);
    border-color: var(--color-info-line);
    color: var(--color-info-text);
}

.badge-success[b-op6tx5jpqm] {
    background-color: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.badge-warning[b-op6tx5jpqm] {
    background-color: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

.badge-danger[b-op6tx5jpqm] {
    background-color: var(--color-danger-soft);
    border-color: var(--color-danger-line);
    color: var(--color-danger-text);
}

.badge-accent[b-op6tx5jpqm] {
    background-color: var(--color-accent-soft);
    border-color: var(--color-accent-line);
    color: var(--color-accent-text);
}

/* "Nothing allocated yet" — dashed outline, no fill, so an absent value reads as
   deliberately absent rather than as a neutral fact. */
.badge-muted[b-op6tx5jpqm] {
    background-color: transparent;
    border-color: var(--color-border);
    border-style: dashed;
    color: var(--color-text-faint);
}

.badge-remove[b-op6tx5jpqm] {
    display: inline-flex;
    align-items: center;
    padding: 0;
    margin-left: var(--space-1);
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    line-height: 1;
    opacity: 0.7;
}

.badge-remove:hover[b-op6tx5jpqm] {
    opacity: 1;
}
/* /UI/Display/CodeBlock.razor.rz.scp.css */
.code-block[b-zgs3ri0v96] {
    margin-bottom: 16px;
}

.code-block pre[b-zgs3ri0v96] {
    background-color: #f6f8fa;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 16px;
    overflow-x: auto;
    margin: 0;
}

.code-block code[b-zgs3ri0v96] {
    font-family: 'Courier New', 'Consolas', monospace;
    font-size: 13px;
    line-height: 1.5;
    color: #24292f;
    white-space: pre;
    word-break: normal;
    word-wrap: normal;
}

/* Language-specific styling hints (CSS-only, no JavaScript) */
.code-block pre.language-yaml[b-zgs3ri0v96],
.code-block pre.language-yml[b-zgs3ri0v96] {
    background-color: #fff5f5;
}

.code-block pre.language-sql[b-zgs3ri0v96] {
    background-color: #f0f7ff;
}

.code-block pre.language-json[b-zgs3ri0v96] {
    background-color: #fffbeb;
}

.code-block pre.language-csharp[b-zgs3ri0v96],
.code-block pre.language-cs[b-zgs3ri0v96] {
    background-color: #f9f0ff;
}
/* /UI/Display/ConnectionStatusIndicator.razor.rz.scp.css */
/* ConnectionStatusIndicator — facit mockups/connections-page.html `.connect-status*`, theme tokens only. */
.connect-status[b-r3wcsihobl] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    margin-top: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-2);
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
}

.connect-status .spinner-border[b-r3wcsihobl] {
    color: var(--color-accent);
}

.connect-status-text[b-r3wcsihobl] {
    min-width: 0;
    flex: 1 1 200px;
}

.connect-status-title[b-r3wcsihobl] {
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.connect-status-detail[b-r3wcsihobl] {
    color: var(--color-text-muted);
    font-size: var(--fs-xs);
}

.connect-status.is-connected[b-r3wcsihobl] {
    border-color: var(--color-success-line);
    background: var(--color-success-soft);
    color: var(--color-success-text);
}

.connect-status.is-connected .connect-status-title[b-r3wcsihobl] {
    color: var(--color-success-text);
}

.connect-status.is-connected .connect-status-detail[b-r3wcsihobl] {
    color: var(--color-text-secondary);
}
/* /UI/Display/CountStrip.razor.rz.scp.css */
.count-strip[b-fqgbhmq5ur] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid var(--color-divider);
    background: var(--color-surface-2);
}

.count-strip-item[b-fqgbhmq5ur] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 4.5rem;
}

.count-strip-figure[b-fqgbhmq5ur] {
    font-family: var(--font-mono);
    font-size: var(--fs-h2);
    font-weight: var(--fw-semibold);
    line-height: var(--lh-tight);
    color: var(--color-text);
}

.count-strip-label[b-fqgbhmq5ur] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    text-transform: lowercase;
}
/* /UI/Display/DataTable.razor.rz.scp.css */
/* DataTable — visual spec verbatim from the chosen mockup
   (.table-wrap L795-800, table.tbl L801-820). Canonical tokens only.
   ::deep targets the caller-supplied th/td so the row contract stays raw. */

.data-table-wrap[b-3jrew4ykqg] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--color-surface-1);
}

.data-table[b-3jrew4ykqg] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--fs-sm);
}

.data-table[b-3jrew4ykqg]  th {
    text-align: left;
    font-size: var(--fs-micro);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-muted);
    padding: var(--space-3) var(--space-4);
    background: var(--color-bg-sunken);
    border-bottom: 1px solid var(--color-border);
}

.data-table[b-3jrew4ykqg]  td {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
    color: var(--color-text-secondary);
}

/* Numeric column (kit .data-table td.num / th.num): right-aligned, monospaced. */
.data-table[b-3jrew4ykqg]  td.num,
.data-table[b-3jrew4ykqg]  th.num {
    text-align: right;
    font-family: var(--font-mono);
    white-space: nowrap;
}

.data-table[b-3jrew4ykqg]  tr:last-child td {
    border-bottom: none;
}

.data-table[b-3jrew4ykqg]  tbody tr:hover {
    background: var(--color-surface-2);
}

.data-table-striped[b-3jrew4ykqg]  tbody tr:nth-child(even) {
    background: var(--color-surface-2);
}

.data-table-compact[b-3jrew4ykqg]  th,
.data-table-compact[b-3jrew4ykqg]  td {
    padding: var(--space-2) var(--space-3);
}

.data-table-empty[b-3jrew4ykqg] {
    padding: var(--space-6);
    text-align: center;
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

/* Wide tables scroll inside the wrap, not the page (Epic 33 facit decision 13).
   width:100% + min-width:0 bind the wrap to the constrained parent; the table
   may exceed that width so overflow-x engages instead of growing the document. */
.data-table-wrap-scroll[b-3jrew4ykqg] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

/* Let the table grow past the wrap so overflow-x engages at 375px. */
.data-table-wrap-scroll .data-table[b-3jrew4ykqg] {
    width: max-content;
    max-width: none;
    min-width: 100%;
}
/* /UI/Display/DescriptionList.razor.rz.scp.css */
/* DescriptionList — quiet label/value pairs. Canonical tokens only
   (typography + spacing scale from the chosen mockup). Stacked by default;
   .description-list-two-col places the term beside the detail. */

.description-list[b-01rw5ocylv] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.description-list-row[b-01rw5ocylv] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.description-list-term[b-01rw5ocylv] {
    font-size: var(--fs-micro);
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    color: var(--color-text-muted);
}

.description-list-detail[b-01rw5ocylv] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text);
}

.description-list-two-col .description-list-row[b-01rw5ocylv] {
    flex-direction: row;
    align-items: baseline;
    gap: var(--space-4);
}

.description-list-two-col .description-list-term[b-01rw5ocylv] {
    flex: 0 0 33%;
    min-width: 120px;
}

.description-list-two-col .description-list-detail[b-01rw5ocylv] {
    flex: 1;
    min-width: 0;
}

/* Inline — the compact side-card form (facit detail-side-details): sentence-case muted term in a
   108px column, detail beside it. */
.description-list-inline[b-01rw5ocylv] {
    gap: 0;
}

.description-list-inline .description-list-row[b-01rw5ocylv] {
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    gap: var(--space-2);
    padding: 5px 0;
    font-size: var(--fs-sm);
}

.description-list-inline .description-list-term[b-01rw5ocylv] {
    font-size: inherit;
    font-weight: inherit;
    text-transform: none;
    letter-spacing: normal;
}

.description-list-inline .description-list-detail[b-01rw5ocylv] {
    min-width: 0;
    overflow-wrap: anywhere;
}
/* /UI/Display/DiagnosticRow.razor.rz.scp.css */
.diag-row[b-3z4y4s6hgj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-divider);
    gap: var(--space-3);
}

.diag-row:last-child[b-3z4y4s6hgj] {
    border-bottom: none;
}

.diag-info[b-3z4y4s6hgj] {
    min-width: 0;
    flex: 1 1 auto;
}

.diag-key[b-3z4y4s6hgj] {
    font-size: var(--fs-sm);
    font-weight: 500;
    color: var(--color-text);
}

.diag-key-mono[b-3z4y4s6hgj] {
    font-family: var(--font-mono);
}

.diag-why[b-3z4y4s6hgj] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    margin-top: var(--space-1);
}

.diag-badge-wrapper[b-3z4y4s6hgj] {
    flex-shrink: 0;
}

[b-3z4y4s6hgj] .diag-value-mono {
    font-family: var(--font-mono);
}
/* /UI/Display/DiscountChip.razor.rz.scp.css */
.discount[b-ben9hv0fey] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: var(--fs-micro);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    background: var(--color-info-soft);
    border: 1px solid var(--color-info-line);
    color: var(--color-info-text);
    white-space: nowrap;
}

.discount .bi[b-ben9hv0fey] {
    font-size: 0.85em;
    flex-shrink: 0;
}
/* /UI/Display/Donut.razor.rz.scp.css */
/* Donut — mockup `.donut-wrap` / `.donut` / `.legend`. Token-only. */

.donut-wrap[b-tvfytxgqlx] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-7);
    padding: var(--space-5) 0;
}

.donut[b-tvfytxgqlx] {
    width: 168px;
    height: 168px;
    border-radius: 50%;
    position: relative;
    -webkit-mask: radial-gradient(circle 52px at 50% 50%, transparent 98%, #000 100%);
    mask: radial-gradient(circle 52px at 50% 50%, transparent 98%, #000 100%);
}

.legend[b-tvfytxgqlx] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    font-size: var(--fs-sm);
}

.legend .li[b-tvfytxgqlx] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-text-secondary);
}

.legend .sw[b-tvfytxgqlx] {
    width: 10px;
    height: 10px;
    border-radius: 3px;
}

.legend .li-pct[b-tvfytxgqlx] {
    margin-left: 6px;
    font-family: var(--font-mono);
    color: var(--color-text-muted);
}
/* /UI/Display/EmptyState.razor.rz.scp.css */
.empty-state-icon[b-xz3l50l6ib] {
    font-size: 4rem;
    color: var(--color-text-muted);
}
/* /UI/Display/EventTimeline.razor.rz.scp.css */
/* Component-specific overrides for EventTimeline */

.timeline-footer[b-ha1rzvgqpm] {
    margin-top: 10px;
    padding-top: 10px;
    border-top: var(--border-width) solid var(--gray-200);
}
/* /UI/Display/FaqList.razor.rz.scp.css */
/* FAQ list: native <details>, so it opens on a static page with no circuit. */
.faq[b-3pnmtdw22u] {
    max-width: 780px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.faq details[b-3pnmtdw22u] {
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
}

.faq details[open][b-3pnmtdw22u] {
    border-color: var(--color-accent-line);
}

.faq summary[b-3pnmtdw22u] {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
}

.faq summary[b-3pnmtdw22u]::-webkit-details-marker {
    display: none;
}

.faq summary[b-3pnmtdw22u]::after {
    content: "+";
    margin-left: auto;
    font-family: var(--font-mono);
    color: var(--color-accent-text);
    font-size: var(--fs-h2);
}

.faq details[open] summary[b-3pnmtdw22u]::after {
    content: "\2212";
}

.faq summary:focus-visible[b-3pnmtdw22u] {
    outline: none;
    box-shadow: var(--shadow-focus);
    border-radius: var(--radius-md);
}

.faq .faq-q[b-3pnmtdw22u] {
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    margin: 0;
}

.faq .faq-a[b-3pnmtdw22u] {
    padding: 0 var(--space-4) var(--space-4);
    color: var(--color-text-secondary);
    font-size: var(--fs-sm);
    line-height: var(--lh-normal);
}

.faq .faq-a a[b-3pnmtdw22u] {
    color: var(--color-accent-text);
}
/* /UI/Display/IconText.razor.rz.scp.css */
/* IconText — token-driven inline icon + label primitive. */

.icon-text[b-60n3coznv9] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
}

.icon-text > i[b-60n3coznv9] {
    line-height: 1;
}

.icon-text-label[b-60n3coznv9] {
    min-width: 0;
}

/* Token-bound color variants — never hardcode colors. */
.icon-text-default[b-60n3coznv9] {
    color: inherit;
}

.icon-text-accent[b-60n3coznv9] {
    color: var(--color-accent-text);
}

.icon-text-success[b-60n3coznv9] {
    color: var(--color-success-text);
}

.icon-text-warning[b-60n3coznv9] {
    color: var(--color-warning-text);
}

.icon-text-danger[b-60n3coznv9] {
    color: var(--color-danger-text);
}

.icon-text-info[b-60n3coznv9] {
    color: var(--color-info-text);
}

.icon-text-muted[b-60n3coznv9] {
    color: var(--color-text-muted);
}
/* /UI/Display/KanbanColumn.razor.rz.scp.css */
/* KanbanColumn — visual spec from mockup `.board-col` / `.board-col-head`.
   Quiet tone tick + count chip, NO saturated header. Token-only. */

.kanban-col[b-5uqjgdl3oy] {
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-lg);
    min-height: 320px;
}

.kanban-col-head[b-5uqjgdl3oy] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
}

.kanban-col-tick[b-5uqjgdl3oy] {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    flex: none;
    background: var(--color-text-faint);
}

.kanban-col-tick-neutral[b-5uqjgdl3oy] {
    background: var(--color-text-faint);
}

.kanban-col-tick-accent[b-5uqjgdl3oy] {
    background: var(--color-accent);
}

.kanban-col-tick-success[b-5uqjgdl3oy] {
    background: var(--color-success);
}

.kanban-col-tick-warning[b-5uqjgdl3oy] {
    background: var(--color-warning);
}

.kanban-col-tick-danger[b-5uqjgdl3oy] {
    background: var(--color-danger);
}

.kanban-col-tick-info[b-5uqjgdl3oy] {
    background: var(--color-info);
}

.kanban-col-titles[b-5uqjgdl3oy] {
    min-width: 0;
}

.kanban-col-title[b-5uqjgdl3oy] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text);
}

.kanban-col-desc[b-5uqjgdl3oy] {
    display: block;
    font-size: var(--fs-micro);
    color: var(--color-text-faint);
}

/* Positioning hook only — the chip chrome (pill/mono/tint) is now the
   shared Badge primitive rendered inside this wrapper. */
.kanban-col-count[b-5uqjgdl3oy] {
    margin-left: auto;
}

.kanban-col-body[b-5uqjgdl3oy] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-3);
}
/* /UI/Display/MarkdownViewer.razor.rz.scp.css */
/* The markup under .markdown-content is a MarkupString (parsed markdown), which Blazor CSS
   isolation never stamps with the scope attribute. Every descendant selector below must go
   through ::deep to actually reach that content. */
.markdown-content[b-wruuq1bskr] {
    line-height: var(--lh-normal);
    font-size: var(--fs-body);
}

.markdown-content[b-wruuq1bskr]  h1 {
    font-size: var(--fs-h1);
    font-weight: 600;
    margin-top: 16px;
    margin-bottom: 8px;
}

.markdown-content[b-wruuq1bskr]  h2 {
    font-size: var(--fs-h2);
    font-weight: 600;
    margin-top: 20px;
    margin-bottom: 12px;
}

.markdown-content[b-wruuq1bskr]  h3 {
    font-size: var(--fs-h3);
    font-weight: 600;
    margin-top: 16px;
    margin-bottom: 8px;
}

.markdown-content[b-wruuq1bskr]  ul,
.markdown-content[b-wruuq1bskr]  ol {
    padding-left: 24px;
    margin-bottom: 16px;
}

.markdown-content[b-wruuq1bskr]  li {
    margin-bottom: 4px;
}

.markdown-content[b-wruuq1bskr]  code {
    background-color: var(--bg-color-code);
    padding: 2px 6px;
    border-radius: 3px;
    font-family: 'Courier New', monospace;
    font-size: 13px;
}

.markdown-content[b-wruuq1bskr]  pre {
    background-color: var(--bg-color-code);
    padding: 16px;
    border-radius: 6px;
    overflow-x: auto;
    margin-bottom: 16px;
}

.markdown-content[b-wruuq1bskr]  pre code {
    background-color: transparent;
    padding: 0;
}

.markdown-content[b-wruuq1bskr]  table {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 16px;
}

.markdown-content[b-wruuq1bskr]  th,
.markdown-content[b-wruuq1bskr]  td {
    border: 1px solid var(--border-color);
    padding: 8px 12px;
    text-align: left;
}

.markdown-content[b-wruuq1bskr]  th {
    background-color: var(--bg-color-code);
    font-weight: 600;
}

.markdown-content[b-wruuq1bskr]  blockquote {
    border-left: 4px solid var(--border-color);
    padding-left: 16px;
    margin-left: 0;
    margin-bottom: 16px;
    color: var(--text-color-secondary);
}

.markdown-content[b-wruuq1bskr]  p {
    margin-bottom: 12px;
}

.markdown-content[b-wruuq1bskr]  a {
    color: var(--link-color);
    text-decoration: none;
}

.markdown-content[b-wruuq1bskr]  a:hover {
    text-decoration: underline;
}
/* /UI/Display/MicroLabel.razor.rz.scp.css */
/* MicroLabel — uppercase micro caption. Canonical tokens only. */

.micro-label[b-njvuf96z2w] {
    font: var(--fw-semibold) var(--fs-micro) / 1 var(--font-sans);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--color-text-faint);
}
/* /UI/Display/MiniProgress.razor.rz.scp.css */
/* MiniProgress — facit .mini-progress (board.html:864-867). */

.mini-progress[b-536vrojue2] {
    display: inline-flex;
    gap: 2px;
}

.mini-progress i[b-536vrojue2] {
    width: 10px;
    height: 4px;
    border-radius: var(--radius-pill);
    background: var(--color-surface-3);
    display: inline-block;
}

.mini-progress i.done[b-536vrojue2] {
    background: var(--color-success);
}

.mini-progress i.active[b-536vrojue2] {
    background: var(--color-info);
}
/* /UI/Display/MoneyStruck.razor.rz.scp.css */
.money-was[b-l5xkzz2fqa] {
    color: var(--color-text-faint);
    text-decoration: line-through;
    font-variant-numeric: tabular-nums;
}

.money-now[b-l5xkzz2fqa] {
    color: var(--color-text);
    font-variant-numeric: tabular-nums;
    font-weight: var(--fw-medium);
}

.money-stack[b-l5xkzz2fqa] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    align-items: flex-end;
}

.money-pair[b-l5xkzz2fqa] {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-2);
}
/* /UI/Display/MoneyText.razor.rz.scp.css */
.money[b-samm03m6ts] {
    font-variant-numeric: tabular-nums;
}
/* /UI/Display/OutcomePanel.razor.rz.scp.css */
/* The result-card shape of the auth-style flows (facit: consent.html and link-machine.html .consent-result). */
.outcome-panel[b-taref4q1yq] {
    text-align: center;
    padding: var(--space-5) var(--space-3);
}

.outcome-panel[b-taref4q1yq]  .outcome-panel-icon {
    font-size: 40px;
    line-height: 1;
}

.outcome-panel h1[b-taref4q1yq] {
    font-size: var(--fs-h1);
    margin-top: var(--space-3);
}

.outcome-panel-actions[b-taref4q1yq] {
    display: flex;
    gap: var(--space-2);
    justify-content: center;
    flex-wrap: wrap;
}
/* /UI/Display/PhaseProgressBar.razor.rz.scp.css */
.phase-progress-bar[b-s8lns6bb82] {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0.75rem 0.25rem;
    gap: 0.25rem;
    /* Seven fixed steps exceed 375px — scroll the bar, not the page. */
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.phase-step[b-s8lns6bb82] {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 0 0 auto;
    min-width: 70px;
    text-align: center;
}

.phase-step-marker[b-s8lns6bb82] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 0.875rem;
    border: 2px solid var(--bs-secondary, #6c757d);
    background-color: var(--bs-body-bg, #fff);
    color: var(--bs-secondary, #6c757d);
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.phase-step-label[b-s8lns6bb82] {
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: var(--bs-secondary, #6c757d);
    white-space: nowrap;
}

.phase-step-connector[b-s8lns6bb82] {
    flex: 1 1 auto;
    height: 2px;
    background-color: var(--bs-border-color, #dee2e6);
    margin: 0 0.25rem;
    margin-bottom: 1.25rem;
    min-width: 12px;
}

.phase-step-connector.connector-done[b-s8lns6bb82] {
    background-color: var(--bs-success, #198754);
}

.phase-step.phase-done .phase-step-marker[b-s8lns6bb82] {
    background-color: var(--bs-success, #198754);
    border-color: var(--bs-success, #198754);
    color: #fff;
}

.phase-step.phase-done .phase-step-label[b-s8lns6bb82] {
    color: var(--bs-success, #198754);
}

.phase-step.phase-current .phase-step-marker[b-s8lns6bb82] {
    background-color: var(--bs-primary, #0d6efd);
    border-color: var(--bs-primary, #0d6efd);
    color: #fff;
    box-shadow: 0 0 0 4px rgba(13, 110, 253, 0.2);
}

.phase-step.phase-current .phase-step-label[b-s8lns6bb82] {
    color: var(--bs-primary, #0d6efd);
    font-weight: 600;
}

.phase-step.phase-failed .phase-step-marker[b-s8lns6bb82] {
    background-color: var(--bs-danger, #dc3545);
    border-color: var(--bs-danger, #dc3545);
    color: #fff;
}

.phase-step.phase-failed .phase-step-label[b-s8lns6bb82] {
    color: var(--bs-danger, #dc3545);
    font-weight: 600;
}

.phase-step.phase-pending .phase-step-marker[b-s8lns6bb82] {
    background-color: var(--bs-body-bg, #fff);
    border-color: var(--bs-border-color, #dee2e6);
    color: var(--bs-secondary, #6c757d);
}

@media (max-width: 768px) {
    .phase-step[b-s8lns6bb82] {
        min-width: 44px;
    }

    .phase-step-label[b-s8lns6bb82] {
        font-size: 0.65rem;
        max-width: 3.25rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .phase-step-connector[b-s8lns6bb82] {
        min-width: 6px;
        margin: 0 0.1rem;
        margin-bottom: 1.25rem;
    }
}

@media (max-width: 420px) {
    .phase-step[b-s8lns6bb82] {
        min-width: 36px;
    }

    .phase-step-marker[b-s8lns6bb82] {
        width: 28px;
        height: 28px;
        font-size: 0.75rem;
    }

    .phase-step-label[b-s8lns6bb82] {
        max-width: 2.75rem;
        font-size: 0.6rem;
    }
}
/* /UI/Display/PlannedBadge.razor.rz.scp.css */
/* Planned-capability badge — facit
   docs/planning/epic_28_public_positioning_agent_teams/mockups/features.html:447-452.

   Hollow and dashed on purpose: UI/Display/Badge paints a soft background for every
   shipped variant, so an unfilled, dashed pill is the one treatment that cannot be
   skimmed as a shipped claim (Epic 28 D-1). Token-only, correct in both themes. */

.planned-badge[b-d8grfanpjw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    padding: 1px 9px;
    border-radius: var(--radius-pill);
    border: 1px dashed var(--color-info);
    background: transparent;
    color: var(--color-info-text);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
    white-space: nowrap;
}

/* The same "not real yet" vocabulary the queued state dot and the
   decision-blocked slice card use: a ring, never a filled dot. */
.planned-badge[b-d8grfanpjw]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex: none;
    background: transparent;
    border: 2px dashed var(--color-info);
}
/* /UI/Display/ProvenanceStrip.razor.rz.scp.css */
.provenance-strip[b-17foqdt5ea] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-divider);
    background: var(--color-surface-2);
}

@media (max-width: 720px) {
    .provenance-strip[b-17foqdt5ea] {
        grid-template-columns: 1fr;
    }
}

.provenance-item[b-17foqdt5ea] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.provenance-number[b-17foqdt5ea] {
    font-family: var(--font-mono);
    font-size: var(--fs-h1);
    font-weight: var(--fw-semibold);
    line-height: var(--lh-tight);
    color: var(--color-text);
}

.provenance-label[b-17foqdt5ea] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.provenance-desc[b-17foqdt5ea] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    line-height: var(--lh-normal);
}
/* /UI/Display/RateBar.razor.rz.scp.css */
/* RateBar — mockup `.rate-row` / `.bar` / `.rate-val`. Token-only. */

.rate-row[b-ihu0vymt8a] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) 0;
}

.rate-lbl[b-ihu0vymt8a] {
    width: 96px;
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.bar[b-ihu0vymt8a] {
    flex: 1;
    height: 7px;
    background-color: var(--color-bg-sunken);
    border-radius: var(--radius-pill);
    overflow: hidden;
    border: 1px solid var(--color-border-soft);
}

.bar > i[b-ihu0vymt8a] {
    display: block;
    height: 100%;
    border-radius: var(--radius-pill);
}

.bar.success > i[b-ihu0vymt8a] {
    background-color: var(--color-success);
}

.bar.danger > i[b-ihu0vymt8a] {
    background-color: var(--color-danger);
}

.bar.accent > i[b-ihu0vymt8a] {
    background-color: var(--color-accent);
}

.rate-val[b-ihu0vymt8a] {
    width: 52px;
    text-align: right;
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
}

.rate-val.success[b-ihu0vymt8a] {
    color: var(--color-success-text);
}

.rate-val.danger[b-ihu0vymt8a] {
    color: var(--color-danger-text);
}

.rate-val.accent[b-ihu0vymt8a] {
    color: var(--color-accent-text);
}
/* /UI/Display/ReasonChip.razor.rz.scp.css */
.reason[b-clo299mumc] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--fs-xs);
    line-height: 1.3;
    border-radius: var(--radius-sm);
    padding: var(--space-1) var(--space-2);
    border: 1px solid transparent;
    white-space: nowrap;
}

.reason-quiet[b-clo299mumc] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}

.reason-never[b-clo299mumc] {
    background: var(--color-neutral-soft);
    border-color: var(--color-neutral-line);
    color: var(--color-text-muted);
}

.reason-noworker[b-clo299mumc] {
    background: var(--color-danger-soft);
    border-color: var(--color-danger-line);
    color: var(--color-danger-text);
}

.reason .bi[b-clo299mumc] {
    font-size: 0.85em;
    flex-shrink: 0;
}
/* /UI/Display/ReviewerAvatar.razor.rz.scp.css */
.reviewer-avatar[b-icz5iov81g] {
    position: relative;
}

.reviewer-avatar-image[b-icz5iov81g] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.reviewer-avatar-status[b-icz5iov81g] {
    border: 2px solid var(--color-surface-1);
}

.reviewer-avatar-initials[b-icz5iov81g] {
    color: var(--color-text-on-accent);
}

.reviewer-avatar.avatar-sm[b-icz5iov81g] {
    width: 32px;
    height: 32px;
    font-size: 0.75rem;
}

.reviewer-avatar.avatar-md[b-icz5iov81g] {
    width: 48px;
    height: 48px;
    font-size: 1rem;
}

.reviewer-avatar.avatar-lg[b-icz5iov81g] {
    width: 64px;
    height: 64px;
    font-size: 1.25rem;
}
/* /UI/Display/RootTreeListing.razor.rz.scp.css */
.root-tree-listing[b-ty01vaf6rg] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.root-tree-header[b-ty01vaf6rg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.root-tree-title[b-ty01vaf6rg] {
    font-weight: var(--fw-semibold);
    font-size: var(--fs-sm);
}

.root-tree-list[b-ty01vaf6rg] {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-1);
}

.root-tree-entry[b-ty01vaf6rg] {
    display: flex;
    align-items: center;
    padding: var(--space-2) var(--space-3);
    border-bottom: 1px solid var(--color-border-soft);
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
}

.root-tree-entry:last-child[b-ty01vaf6rg] {
    border-bottom: none;
}

.root-tree-entry.is-dir .root-tree-name[b-ty01vaf6rg] {
    font-weight: var(--fw-medium);
}

.root-tree-caption[b-ty01vaf6rg] {
    margin: 0;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /UI/Display/RouteStrip.razor.rz.scp.css */
.route-strip[b-043khhznno] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.route-strip-item[b-043khhznno] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    font-weight: var(--fw-medium);
    line-height: var(--lh-tight);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-secondary);
    white-space: nowrap;
}

.route-strip-item.skipped[b-043khhznno] {
    text-decoration: line-through;
    opacity: 0.7;
    color: var(--color-text-muted);
    border-style: dashed;
}

.route-strip-item.done[b-043khhznno] {
    background: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.route-strip-item.current[b-043khhznno] {
    background: var(--color-accent-soft, var(--color-info-soft));
    border-color: var(--color-accent, var(--color-info-line));
    color: var(--color-accent-text, var(--color-info-text));
    font-weight: var(--fw-semibold);
}

.route-strip-item.pending[b-043khhznno] {
    background: var(--color-surface-1);
    color: var(--color-text-muted);
}

.route-strip-arrow[b-043khhznno] {
    color: var(--color-text-muted);
    font-size: var(--fs-xs);
}
/* /UI/Display/RuleRow.razor.rz.scp.css */
.rule-row[b-tjvudsuga5] {
    display: grid;
    grid-template-columns: 40px 1fr auto;
    gap: var(--space-3);
    align-items: start;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
    background: transparent;
}

.rule-row:last-child[b-tjvudsuga5] {
    border-bottom: 0;
}

.rule-row.off[b-tjvudsuga5] {
    background: var(--color-warning-soft);
}

.rule-row.locked[b-tjvudsuga5] {
    background: var(--color-success-soft);
}

.rule-row.added[b-tjvudsuga5] {
    background: var(--color-accent-soft);
}

.rule-switch[b-tjvudsuga5] {
    width: 36px;
    height: 20px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border-strong);
    background: var(--color-surface-2);
    padding: 0;
    position: relative;
    cursor: pointer;
}

.rule-switch.on[b-tjvudsuga5] {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.rule-switch.no[b-tjvudsuga5] {
    background: var(--color-surface-2);
}

.rule-switch.lock[b-tjvudsuga5] {
    cursor: not-allowed;
    background: var(--color-success);
    border-color: var(--color-success);
    opacity: 0.85;
}

.rule-switch[b-tjvudsuga5]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: var(--radius-pill);
    background: var(--color-surface-1);
}

.rule-switch.on[b-tjvudsuga5]::after {
    left: 18px;
}

.rule-switch.lock[b-tjvudsuga5]::after {
    left: 18px;
}

.rule-row-main[b-tjvudsuga5] {
    min-width: 0;
}

.rule-row-title[b-tjvudsuga5] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: baseline;
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.rule-id[b-tjvudsuga5] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    letter-spacing: var(--tracking-label);
}

.rule-row-desc[b-tjvudsuga5],
.rule-row-reason[b-tjvudsuga5] {
    margin-top: var(--space-1);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    line-height: var(--lh-normal);
}

.rule-row-reason[b-tjvudsuga5] {
    color: var(--color-text-muted);
}

/* Badge chrome comes from UI/Display/Badge; keep only layout hook for the state column. */
[b-tjvudsuga5] .rule-state {
    justify-self: end;
    align-self: start;
}
/* /UI/Display/RunStateIndicator.razor.rz.scp.css */
.run-state[b-fv6fr1j7xk] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text);
}

.run-state .switch-track[b-fv6fr1j7xk] {
    width: 30px;
    height: 17px;
    border-radius: var(--radius-pill);
    background: var(--color-surface-3);
    border: 1px solid var(--color-border);
    position: relative;
    flex: 0 0 auto;
}

.run-state .switch-track[b-fv6fr1j7xk]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--color-text-muted);
}

.run-state.is-on .switch-track[b-fv6fr1j7xk] {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.run-state.is-on .switch-track[b-fv6fr1j7xk]::after {
    left: 15px;
    background: var(--color-text-on-accent);
}
/* /UI/Display/ScreenshotViewer.razor.rz.scp.css */
.screenshot-viewer[b-n08h4wgiw8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.screenshot-viewer-figure[b-n08h4wgiw8] {
    margin: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.screenshot-viewer-image[b-n08h4wgiw8] {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background-color: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.screenshot-viewer-caption[b-n08h4wgiw8] {
    margin-top: var(--space-2);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    text-align: center;
}

.screenshot-viewer-fallback[b-n08h4wgiw8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--space-8);
    border-radius: var(--radius-md);
    border: 1px dashed var(--color-border);
    background-color: var(--color-surface-subtle);
    color: var(--color-text-muted);
    width: 100%;
}

.screenshot-viewer-fallback-icon[b-n08h4wgiw8] {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--space-2);
}

.screenshot-viewer-fallback-text[b-n08h4wgiw8] {
    margin: 0;
    font-size: var(--font-size-sm);
}
/* /UI/Display/SellabilityRow.razor.rz.scp.css */
.sellable[b-6nfuacopm6] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: var(--fs-xs);
    border-radius: var(--radius-sm);
    padding: var(--space-2) var(--space-3);
    margin-top: var(--space-3);
    border: 1px solid transparent;
}

.sellable-yes[b-6nfuacopm6] {
    background: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.sellable-no[b-6nfuacopm6] {
    background: var(--color-danger-soft);
    border-color: var(--color-danger-line);
    color: var(--color-danger-text);
}

.sellable-na[b-6nfuacopm6] {
    background: var(--color-neutral-soft);
    border-color: var(--color-neutral-line);
    color: var(--color-text-muted);
}

.sellable-icon[b-6nfuacopm6] {
    margin-top: 2px;
    flex-shrink: 0;
}
/* /UI/Display/SettingSource.razor.rz.scp.css */
.setting-source[b-a3watnz93i] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--fs-micro);
    font-family: var(--font-mono);
    color: var(--color-text-muted);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-pill);
    padding: 1px var(--space-2);
    white-space: nowrap;
}

.setting-source.is-tenant[b-a3watnz93i] {
    color: var(--color-accent-text);
    border-color: var(--color-accent-line);
    border-style: solid;
    background: var(--color-accent-soft);
}

.setting-source.is-project[b-a3watnz93i] {
    color: var(--color-info-text);
    border-color: var(--color-info-line);
    border-style: solid;
    background: var(--color-info-soft);
}

.setting-source.is-ticket[b-a3watnz93i] {
    color: var(--color-warning-text);
    border-color: var(--color-warning-line);
    border-style: solid;
    background: var(--color-warning-soft);
}

.setting-source[b-a3watnz93i]  .bi {
    font-size: 10px;
}
/* /UI/Display/SetupRow.razor.rz.scp.css */
.setup-row[b-1vwpoydrib] {
    display: grid;
    grid-template-columns: minmax(0, 220px) minmax(0, 1fr) auto;
    gap: var(--space-4);
    align-items: center;
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-divider);
}

.setup-row:last-child[b-1vwpoydrib] {
    border-bottom: none;
}

.setup-row-label[b-1vwpoydrib] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

.setup-row-value[b-1vwpoydrib] {
    color: var(--color-text);
    font-size: var(--fs-sm);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.setup-row-link[b-1vwpoydrib] {
    font-size: var(--fs-sm);
    color: var(--color-accent-text);
    text-decoration: none;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

@media (max-width: 700px) {
    .setup-row[b-1vwpoydrib] {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-1);
    }
}
/* /UI/Display/SetupStepList.razor.rz.scp.css */
.setup-steps[b-sb3k42iyn6] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.setup-steps li[b-sb3k42iyn6] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.setup-steps .is-done[b-sb3k42iyn6] {
    color: var(--color-success-text);
}

.setup-steps .is-todo[b-sb3k42iyn6] {
    color: var(--color-warning-text);
}
/* /UI/Display/StackTraceViewer.razor.rz.scp.css */
.stack-trace-frame-list[b-pwprefi4p9] {
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
    max-height: 500px;
    overflow-y: auto;
}
/* /UI/Display/StatCard.razor.rz.scp.css */
/* StatCard — quiet metric tile. Token-only. Never a saturated fill.

   The card root (.stat-card) is literal Razor markup, so Blazor scoped CSS
   tags it with the component scope attribute. The inner body (.stat-head /
   .stat-label / .stat-icon / .stat-value / .stat-meta) is emitted at
   RUNTIME via RenderTreeBuilder, which Blazor does NOT rewrite with the
   scope attribute. A plain `.stat-head { … }` scoped rule compiles to
   `.stat-head[b-xxx]` and therefore never matches the builder-built
   element (the user-reported symptom: .stat-head fell back to display:block
   so the icon hugged the label instead of being pushed to the right edge).
   `::deep` puts the scope attribute on the .stat-card root only, so these
   descendant rules match the unscoped builder elements. */

.stat-card[b-gvtep0yfq9] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    overflow: hidden;
    min-height: 116px;
    padding: var(--space-5);
    background-color: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    color: var(--color-text);
    text-decoration: none;
}

/* Quiet 2px left rule (the only accent). */
.stat-card[b-gvtep0yfq9]::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 2px;
    background-color: var(--color-border);
}

.stat-card.is-accent[b-gvtep0yfq9]::after {
    background-color: var(--color-accent);
}

.stat-card.is-success[b-gvtep0yfq9]::after {
    background-color: var(--color-success);
}

.stat-card.is-warning[b-gvtep0yfq9]::after {
    background-color: var(--color-warning);
}

.stat-card.is-danger[b-gvtep0yfq9]::after {
    background-color: var(--color-danger);
}

.stat-card.is-info[b-gvtep0yfq9]::after {
    background-color: var(--color-info);
}

.stat-card[b-gvtep0yfq9]  .stat-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    width: 100%;
}

.stat-card[b-gvtep0yfq9]  .stat-label {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-text-muted);
}

.stat-card[b-gvtep0yfq9]  .stat-icon {
    color: var(--color-text-faint);
    font-size: 16px;
}

.stat-card.is-accent[b-gvtep0yfq9]  .stat-icon {
    color: var(--color-accent);
}

.stat-card.is-success[b-gvtep0yfq9]  .stat-icon {
    color: var(--color-success);
}

.stat-card.is-warning[b-gvtep0yfq9]  .stat-icon {
    color: var(--color-warning);
}

.stat-card.is-danger[b-gvtep0yfq9]  .stat-icon {
    color: var(--color-danger);
}

.stat-card.is-info[b-gvtep0yfq9]  .stat-icon {
    color: var(--color-info);
}

.stat-card[b-gvtep0yfq9]  .stat-value {
    font-family: var(--font-mono);
    font-size: var(--fs-display);
    font-weight: var(--fw-semibold);
    line-height: var(--lh-tight);
    letter-spacing: -0.02em;
    color: var(--color-text);
}

.stat-card[b-gvtep0yfq9]  .stat-meta {
    font-size: var(--fs-xs);
    font-family: var(--font-mono);
    color: var(--color-text-muted);
}

.stat-card[b-gvtep0yfq9]  .stat-meta.up {
    color: var(--color-success-text);
}

.stat-card[b-gvtep0yfq9]  .stat-meta.down {
    color: var(--color-danger-text);
}
/* /UI/Display/StatCountStrip.razor.rz.scp.css */
.stat-count-strip[b-4ezbr7h55g] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.stat-count-item[b-4ezbr7h55g] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 7.5rem;
    padding: var(--space-2) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-bg-sunken);
}

.stat-count-figure[b-4ezbr7h55g] {
    font-family: var(--font-mono);
    font-size: var(--fs-h2);
    font-weight: var(--fw-bold);
    line-height: 1.1;
    color: var(--color-text);
}

.stat-count-label[b-4ezbr7h55g] {
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.stat-count-item.is-accent .stat-count-figure[b-4ezbr7h55g] {
    color: var(--color-accent-text);
}

.stat-count-item.is-muted .stat-count-figure[b-4ezbr7h55g] {
    color: var(--color-text-faint);
}
/* /UI/Display/StatusBadge.razor.rz.scp.css */
.status-badge[b-jlft5xvpqy] {
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--border-radius-sm);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
}

/* Workflow state variants */
.status-pending[b-jlft5xvpqy] {
    background-color: var(--gray-200);
    color: var(--gray-700);
}

.status-analyzing[b-jlft5xvpqy] {
    background-color: var(--badge-primary-bg);
    color: var(--badge-primary-text);
}

.status-awaiting-answers[b-jlft5xvpqy] {
    background-color: var(--badge-warning-bg);
    color: var(--badge-warning-text);
}

.status-planning[b-jlft5xvpqy] {
    background-color: var(--badge-info-bg);
    color: var(--badge-info-text);
}

.status-awaiting-approval[b-jlft5xvpqy] {
    background-color: var(--badge-danger-bg);
    color: var(--badge-danger-text);
}

.status-implementing[b-jlft5xvpqy] {
    background-color: var(--badge-success-bg);
    color: var(--badge-success-text);
}

.status-completed[b-jlft5xvpqy] {
    background-color: var(--success-color);
    color: white;
}

.status-failed[b-jlft5xvpqy] {
    background-color: var(--danger-color);
    color: white;
}

.status-cancelled[b-jlft5xvpqy] {
    background-color: var(--gray-600);
    color: white;
}
/* /UI/Display/Timeline.razor.rz.scp.css */
/* Timeline base structure */
.timeline[b-nsjogxo8u1] {
    position: relative;
    padding-left: 40px;
}

.timeline[b-nsjogxo8u1]::before {
    content: '';
    position: absolute;
    left: 15px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--border-color);
}

.timeline-item[b-nsjogxo8u1] {
    position: relative;
    margin-bottom: 30px;
}

.timeline-item:last-child[b-nsjogxo8u1] {
    margin-bottom: 0;
}

/* Timeline marker base */
.timeline-marker[b-nsjogxo8u1] {
    position: absolute;
    left: -40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-color-primary);
    border: 2px solid var(--border-color);
    z-index: 1;
}

/* Marker sizes */
.timeline.marker-small .timeline-marker[b-nsjogxo8u1] {
    width: 20px;
    height: 20px;
    font-size: 0.625rem;
}

.timeline.marker-small[b-nsjogxo8u1] {
    padding-left: 32px;
}

.timeline.marker-small[b-nsjogxo8u1]::before {
    left: 9px;
}

.timeline.marker-small .timeline-marker[b-nsjogxo8u1] {
    left: -32px;
}

.timeline.marker-medium .timeline-marker[b-nsjogxo8u1] {
    width: 32px;
    height: 32px;
    font-size: 1rem;
}

.timeline.marker-large .timeline-marker[b-nsjogxo8u1] {
    width: 44px;
    height: 44px;
    font-size: 1.25rem;
}

.timeline.marker-large[b-nsjogxo8u1] {
    padding-left: 56px;
}

.timeline.marker-large[b-nsjogxo8u1]::before {
    left: 21px;
}

.timeline.marker-large .timeline-marker[b-nsjogxo8u1] {
    left: -56px;
}

/* Marker styles */
.timeline.marker-solid .timeline-marker[b-nsjogxo8u1] {
    color: white;
}

.timeline.marker-bordered .timeline-marker[b-nsjogxo8u1] {
    background: var(--bg-color-primary);
}

.timeline.marker-with-icon .timeline-marker[b-nsjogxo8u1] {
    color: white;
}

/* Marker variants - Solid style */
.timeline.marker-solid .timeline-marker.marker-primary[b-nsjogxo8u1] {
    background-color: var(--bootstrap-primary);
    border-color: var(--bootstrap-primary);
}

.timeline.marker-solid .timeline-marker.marker-success[b-nsjogxo8u1] {
    background-color: var(--bootstrap-success);
    border-color: var(--bootstrap-success);
}

.timeline.marker-solid .timeline-marker.marker-danger[b-nsjogxo8u1] {
    background-color: var(--bootstrap-danger);
    border-color: var(--bootstrap-danger);
}

.timeline.marker-solid .timeline-marker.marker-warning[b-nsjogxo8u1] {
    background-color: var(--bootstrap-warning);
    border-color: var(--bootstrap-warning);
    color: #000;
}

.timeline.marker-solid .timeline-marker.marker-info[b-nsjogxo8u1] {
    background-color: var(--bootstrap-info);
    border-color: var(--bootstrap-info);
    color: #000;
}

.timeline.marker-solid .timeline-marker.marker-secondary[b-nsjogxo8u1] {
    background-color: var(--bootstrap-secondary);
    border-color: var(--bootstrap-secondary);
}

/* Marker variants - Bordered style */
.timeline.marker-bordered .timeline-marker.marker-primary[b-nsjogxo8u1] {
    background: var(--bootstrap-primary-bg-subtle);
    border-color: var(--bootstrap-primary);
    color: var(--bootstrap-primary);
}

.timeline.marker-bordered .timeline-marker.marker-success[b-nsjogxo8u1] {
    background: var(--bootstrap-success-bg-subtle);
    border-color: var(--bootstrap-success);
    color: var(--bootstrap-success);
}

.timeline.marker-bordered .timeline-marker.marker-danger[b-nsjogxo8u1] {
    background: var(--bootstrap-danger-bg-subtle);
    border-color: var(--bootstrap-danger);
    color: var(--bootstrap-danger);
}

.timeline.marker-bordered .timeline-marker.marker-warning[b-nsjogxo8u1] {
    background: var(--bootstrap-warning-bg-subtle);
    border-color: var(--bootstrap-warning);
    color: var(--bootstrap-warning-text);
}

.timeline.marker-bordered .timeline-marker.marker-info[b-nsjogxo8u1] {
    background: var(--bootstrap-info-bg-subtle);
    border-color: var(--bootstrap-primary);
    color: var(--bootstrap-primary);
}

.timeline.marker-bordered .timeline-marker.marker-secondary[b-nsjogxo8u1] {
    background: var(--bootstrap-secondary-bg-subtle);
    border-color: var(--bootstrap-secondary);
    color: var(--bootstrap-secondary);
}

/* Marker variants - WithIcon style */
.timeline.marker-with-icon .timeline-marker.marker-primary[b-nsjogxo8u1] {
    background-color: var(--bootstrap-primary);
    border-color: var(--bootstrap-primary);
}

.timeline.marker-with-icon .timeline-marker.marker-success[b-nsjogxo8u1] {
    background-color: var(--bootstrap-success);
    border-color: var(--bootstrap-success);
}

.timeline.marker-with-icon .timeline-marker.marker-danger[b-nsjogxo8u1] {
    background-color: var(--bootstrap-danger);
    border-color: var(--bootstrap-danger);
}

.timeline.marker-with-icon .timeline-marker.marker-warning[b-nsjogxo8u1] {
    background-color: var(--bootstrap-warning);
    border-color: var(--bootstrap-warning);
    color: #000;
}

.timeline.marker-with-icon .timeline-marker.marker-info[b-nsjogxo8u1] {
    background-color: var(--bootstrap-info);
    border-color: var(--bootstrap-info);
    color: #000;
}

.timeline.marker-with-icon .timeline-marker.marker-secondary[b-nsjogxo8u1] {
    background-color: var(--bootstrap-secondary);
    border-color: var(--bootstrap-secondary);
}

/* Timeline content */
.timeline-content[b-nsjogxo8u1] {
    background: var(--bg-color-primary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 15px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.timeline-header[b-nsjogxo8u1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color-light);
}

.timeline-title[b-nsjogxo8u1] {
    font-weight: 600;
    color: var(--text-color-primary);
}

.timeline-time[b-nsjogxo8u1] {
    font-size: 0.875rem;
}

.timeline-body[b-nsjogxo8u1] {
    color: var(--text-color-secondary);
    margin-bottom: 10px;
}

.timeline-additional[b-nsjogxo8u1] {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border-color-light);
}

/* Custom marker content (e.g. an Avatar) sits on the rail without the default
   icon chrome's background/border (ticket page simplification S5). Selector
   specificity matches the variant rules above (.timeline.marker-* .timeline-marker.marker-*)
   so this always wins regardless of which variant class the item also carries. */
.timeline.marker-solid .timeline-marker.timeline-marker--custom[b-nsjogxo8u1],
.timeline.marker-bordered .timeline-marker.timeline-marker--custom[b-nsjogxo8u1],
.timeline.marker-with-icon .timeline-marker.timeline-marker--custom[b-nsjogxo8u1] {
    background: transparent;
    border: none;
}

/* A non-comment row (event/question/answer) reads as secondary information
   next to a comment (ticket page simplification S5, facit :679). */
.timeline-item.is-event .timeline-body[b-nsjogxo8u1],
.timeline-item.is-event .timeline-additional[b-nsjogxo8u1] {
    color: var(--text-color-secondary);
    opacity: 0.85;
}
/* /UI/Display/TokenFigure.razor.rz.scp.css */
/* A figure the worker did not report reads faint, never as zero. */
.token-unknown[b-sozr4h2w8h] {
    color: var(--color-text-faint);
}
/* /UI/Display/VendorResponseBlock.razor.rz.scp.css */
/* The facit's `.err` block, token for token (app-surfaces.html, outbound-message-detail).
   pre-wrap is load-bearing: an SMTP response carries its own line breaks and folding, and
   collapsing them changes what the administrator is reading. */
.vendor-response[b-fwzpkoa8f8] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    line-height: var(--lh-snug);
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: var(--space-3);
    color: var(--color-danger-text);
    white-space: pre-wrap;
    word-break: break-word;
}
/* /UI/Display/WorkflowProgressIndicator.razor.rz.scp.css */
.workflow-progress-indicator[b-9achrph936] {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    background-color: var(--bs-info-bg-subtle, #cff4fc);
    border: 1px solid var(--bs-info-border-subtle, #9eeaf9);
    border-radius: 0.375rem;
    color: var(--bs-info-text-emphasis, #055160);
    font-size: 0.875rem;
}

.workflow-progress-text[b-9achrph936] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.workflow-progress-dots[b-9achrph936] {
    display: inline-flex;
    margin-left: 0.25rem;
}

.workflow-progress-dots span[b-9achrph936] {
    animation: workflow-dot-blink-b-9achrph936 1.4s infinite both;
}

.workflow-progress-dots span:nth-child(2)[b-9achrph936] {
    animation-delay: 0.2s;
}

.workflow-progress-dots span:nth-child(3)[b-9achrph936] {
    animation-delay: 0.4s;
}

@keyframes workflow-dot-blink-b-9achrph936 {
    0%, 80%, 100% {
        opacity: 0.2;
    }
    40% {
        opacity: 1;
    }
}
/* /UI/Editors/ArtefactMarkdownEditor.razor.rz.scp.css */
.artefact-editor[b-zl5mrl1pvs] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.artefact-editor .pane[b-zl5mrl1pvs] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.artefact-editor textarea[b-zl5mrl1pvs] {
    min-height: 400px;
    font-family: var(--bs-font-monospace);
    font-size: 0.875rem;
    flex: 1;
}

.artefact-editor .preview-pane[b-zl5mrl1pvs] {
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    padding: 0.75rem 1rem;
    overflow: auto;
    min-height: 400px;
    max-height: 600px;
    background: var(--bs-body-bg);
}

@media (max-width: 992px) {
    .artefact-editor[b-zl5mrl1pvs] {
        grid-template-columns: 1fr;
    }
}
/* /UI/Editors/MarkdownEditor.razor.rz.scp.css */
/* Markdown Editor Container
   Toolbar rules live in MarkdownToolbar.razor.css and preview rules in
   MarkdownPreview.razor.css — CSS isolation only reaches markup this component
   owns. */
.markdown-editor[b-q2wplcb17x] {
    border: var(--border-width) solid var(--border-color);
    border-radius: var(--border-radius);
    background: var(--bg-color);
    overflow: hidden;
}

.markdown-editor.view-fullscreen[b-q2wplcb17x] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--z-index-modal);
    border-radius: 0;
    margin: 0;
}

/* Editor Container */
.editor-container[b-q2wplcb17x] {
    display: grid;
    overflow: hidden;
}

.view-split .editor-container[b-q2wplcb17x] {
    grid-template-columns: 1fr 1fr;
}

.view-editor-only .editor-container[b-q2wplcb17x] {
    grid-template-columns: 1fr;
}

.view-preview-only .editor-container[b-q2wplcb17x] {
    grid-template-columns: 1fr;
}

.view-fullscreen .editor-container[b-q2wplcb17x] {
    height: calc(100vh - 50px) !important;
}

/* Editor Pane */
.editor-pane[b-q2wplcb17x] {
    display: flex;
    border-right: var(--border-width) solid var(--border-color);
    overflow: hidden;
    background: var(--bg-color);
}

.view-editor-only .editor-pane[b-q2wplcb17x],
.view-fullscreen .editor-pane[b-q2wplcb17x] {
    border-right: none;
}

.line-numbers[b-q2wplcb17x] {
    padding: var(--space-md) var(--space-sm);
    background: var(--bg-color-alt);
    color: var(--text-color-muted);
    text-align: right;
    font-family: var(--font-family-mono);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-base);
    user-select: none;
    min-width: 3rem;
    border-right: var(--border-width) solid var(--border-color);
    overflow-y: hidden;
}

.editor-textarea[b-q2wplcb17x] {
    flex: 1;
    padding: var(--space-md) var(--space-lg);
    border: none;
    outline: none;
    resize: none;
    font-family: var(--font-family-mono);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-base);
    overflow-y: auto;
    background: var(--bg-color);
    color: var(--text-color);
}

.editor-textarea:focus[b-q2wplcb17x] {
    outline: none;
    box-shadow: none;
}

/* Responsive Design */
@media (max-width: 768px) {
    .view-split .editor-container[b-q2wplcb17x] {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr 1fr;
    }

    .editor-pane[b-q2wplcb17x] {
        border-right: none;
        border-bottom: var(--border-width) solid var(--border-color);
    }
}

@media (max-width: 576px) {
    .line-numbers[b-q2wplcb17x] {
        min-width: 2rem;
        padding: var(--space-md) var(--space-xs);
        font-size: var(--font-size-xs);
    }

    .editor-textarea[b-q2wplcb17x] {
        font-size: var(--font-size-xs);
        padding: var(--space-md);
    }
}
/* /UI/Editors/MarkdownPreview.razor.rz.scp.css */
/* Preview pane
   Lives here, not in MarkdownEditor.razor.css: CSS isolation scopes a rule to
   the component that owns the markup, and this markup is owned by
   MarkdownPreview.

   The heading/element markup under .markdown-preview is a MarkupString (parsed markdown), which
   Blazor CSS isolation never stamps with the scope attribute. Every descendant selector below
   must go through ::deep to actually reach that content. */
.markdown-preview[b-vkylag2axh] {
    padding: var(--space-md) var(--space-lg);
    overflow-y: auto;
    background: var(--bg-color);
    font-size: var(--fs-body);
    line-height: var(--lh-normal);
}

.markdown-preview[b-vkylag2axh]  > :first-child {
    margin-top: 0;
}

.markdown-preview[b-vkylag2axh]  > :last-child {
    margin-bottom: 0;
}

.markdown-preview[b-vkylag2axh]  h1,
.markdown-preview[b-vkylag2axh]  h2,
.markdown-preview[b-vkylag2axh]  h3,
.markdown-preview[b-vkylag2axh]  h4,
.markdown-preview[b-vkylag2axh]  h5,
.markdown-preview[b-vkylag2axh]  h6 {
    margin-top: var(--space-lg);
    margin-bottom: 0.75rem;
    font-weight: var(--font-weight-semibold);
}

.markdown-preview[b-vkylag2axh]  h1 {
    font-size: var(--fs-h1);
}

.markdown-preview[b-vkylag2axh]  h2 {
    font-size: var(--fs-h2);
    border-bottom: var(--border-width) solid var(--gray-200);
    padding-bottom: var(--space-sm);
}

.markdown-preview[b-vkylag2axh]  h3 {
    font-size: var(--fs-h3);
}

.markdown-preview[b-vkylag2axh]  h4 {
    font-size: var(--fs-body);
}

.markdown-preview[b-vkylag2axh]  h5 {
    font-size: var(--font-size-sm);
}

.markdown-preview[b-vkylag2axh]  h6 {
    font-size: var(--font-size-xs);
    color: var(--text-color-muted);
}

.markdown-preview[b-vkylag2axh]  p {
    margin-bottom: var(--space-md);
}

.markdown-preview[b-vkylag2axh]  ul,
.markdown-preview[b-vkylag2axh]  ol {
    margin-bottom: var(--space-md);
    padding-left: var(--space-xl);
}

.markdown-preview[b-vkylag2axh]  li {
    margin-bottom: var(--space-xs);
}

.markdown-preview[b-vkylag2axh]  pre {
    background: var(--code-bg);
    padding: var(--space-md);
    border-radius: var(--border-radius);
    overflow-x: auto;
    margin-bottom: var(--space-md);
    border: var(--border-width) solid var(--code-border);
}

.markdown-preview[b-vkylag2axh]  code {
    background: var(--code-bg);
    padding: 0.2rem 0.4rem;
    border-radius: var(--border-radius-sm);
    font-family: var(--font-family-mono);
    font-size: var(--font-size-sm);
    color: var(--code-text);
}

.markdown-preview[b-vkylag2axh]  pre code {
    background: transparent;
    padding: 0;
    color: inherit;
}

.markdown-preview[b-vkylag2axh]  blockquote {
    padding-left: var(--space-md);
    border-left: var(--border-width-extra-thick) solid var(--border-color);
    color: var(--text-color-muted);
    margin-bottom: var(--space-md);
}

.markdown-preview[b-vkylag2axh]  table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--space-md) 0;
}

.markdown-preview[b-vkylag2axh]  table th,
.markdown-preview[b-vkylag2axh]  table td {
    border: var(--border-width) solid var(--border-color);
    padding: var(--space-sm);
}

.markdown-preview[b-vkylag2axh]  table th {
    background: var(--bg-color-alt);
    font-weight: var(--font-weight-semibold);
}

.markdown-preview[b-vkylag2axh]  table tr:nth-child(even) {
    background: var(--bg-color-alt);
}

.markdown-preview[b-vkylag2axh]  hr {
    border: none;
    border-top: var(--border-width) solid var(--border-color);
    margin: var(--space-lg) 0;
}

.markdown-preview[b-vkylag2axh]  img {
    max-width: 100%;
    height: auto;
    margin: var(--space-md) 0;
}

.markdown-preview[b-vkylag2axh]  a {
    color: var(--link-color);
    text-decoration: none;
}

.markdown-preview[b-vkylag2axh]  a:hover {
    text-decoration: underline;
}

.empty-state[b-vkylag2axh] {
    padding: var(--space-2xl) var(--space-md);
}

.empty-state i[b-vkylag2axh] {
    opacity: 0.3;
}

@media (max-width: 576px) {
    .markdown-preview[b-vkylag2axh] {
        font-size: var(--font-size-sm);
        padding: var(--space-md);
    }
}
/* /UI/Editors/MarkdownToolbar.razor.rz.scp.css */
/* Toolbar
   Lives here, not in MarkdownEditor.razor.css: CSS isolation scopes a rule to
   the component that owns the markup, and this markup is owned by
   MarkdownToolbar. */
.markdown-toolbar[b-vyzmt0bxec] {
    display: flex;
    align-items: center;
    padding: var(--space-sm);
    border-bottom: var(--border-width) solid var(--border-color);
    background: var(--bg-color-alt);
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.toolbar-group[b-vyzmt0bxec] {
    display: flex;
    gap: var(--space-xs);
    align-items: center;
}

.toolbar-separator[b-vyzmt0bxec] {
    width: var(--border-width);
    height: 24px;
    background: var(--border-color);
    margin: 0 var(--space-sm);
}

.toolbar-select-heading[b-vyzmt0bxec] {
    width: 100px;
}

.toolbar-select-viewmode[b-vyzmt0bxec] {
    width: 140px;
}

@media (max-width: 768px) {
    .markdown-toolbar[b-vyzmt0bxec] {
        padding: var(--space-xs);
    }

    .toolbar-separator[b-vyzmt0bxec] {
        display: none;
    }
}

@media (max-width: 576px) {
    .toolbar-group[b-vyzmt0bxec] {
        flex-wrap: wrap;
    }
}
/* /UI/EpicPlanning/CoverageMeter.razor.rz.scp.css */
/* CoverageMeter — facit .cov / .cov-key. Token-only. */

.cov[b-vgt4azxukh] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.lbl[b-vgt4azxukh] {
    font: var(--fw-semibold) var(--fs-micro) / 1 var(--font-sans);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--color-text-faint);
}

.cov-bar[b-vgt4azxukh] {
    flex: 1;
    min-width: 120px;
    height: 6px;
    border-radius: var(--radius-pill);
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border-soft);
    overflow: hidden;
    display: flex;
}

.cov-seg[b-vgt4azxukh] {
    height: 100%;
}

.cov-seg.sole[b-vgt4azxukh] {
    background: var(--color-success);
}

.cov-seg.split[b-vgt4azxukh] {
    background: var(--color-info);
}

.cov-seg.open[b-vgt4azxukh] {
    background: var(--color-warning);
}

.cov-fig[b-vgt4azxukh] {
    font: var(--fw-semibold) var(--fs-sm) / 1 var(--font-mono);
    color: var(--color-text);
    white-space: nowrap;
}

.cov-key[b-vgt4azxukh] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex-wrap: wrap;
    margin-top: var(--space-3);
}

.cov-k[b-vgt4azxukh] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font: var(--fw-medium) var(--fs-xs) / 1 var(--font-mono);
    color: var(--color-text-secondary);
}

.sw[b-vgt4azxukh] {
    width: var(--space-2);
    height: var(--space-2);
    border-radius: var(--radius-xs);
    flex: none;
    display: inline-block;
}

.sw.sole[b-vgt4azxukh] {
    background: var(--color-success);
}

.sw.split[b-vgt4azxukh] {
    background: var(--color-info);
}

.sw.open[b-vgt4azxukh] {
    background: var(--color-warning);
}

.chip[b-vgt4azxukh] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-micro) / 1 var(--font-mono);
    white-space: nowrap;
}

.chip.info[b-vgt4azxukh] {
    background: var(--color-info-soft);
    border-color: var(--color-info-line);
    color: var(--color-info-text);
}

.chip.warn[b-vgt4azxukh] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}
/* /UI/EpicPlanning/DecisionRankGutter.razor.rz.scp.css */
/* DecisionRankGutter — facit .dec-rank. Token-only. */

.dec-rank[b-7edzzt5qv2] {
    flex: none;
    width: 56px;
    text-align: center;
    padding-top: 2px;
}

.dec-blocks[b-7edzzt5qv2] {
    font: var(--fw-bold) var(--fs-h2) / 1 var(--font-mono);
    color: var(--color-text);
}

.dec-blocks.hi[b-7edzzt5qv2] {
    color: var(--color-warning-text);
}

.dec-blocks-l[b-7edzzt5qv2] {
    display: block;
    margin-top: 3px;
    font: var(--fw-medium) var(--fs-micro) / 1 var(--font-sans);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-text-faint);
}
/* /UI/EpicPlanning/FilterChipBar.razor.rz.scp.css */
/* FilterChipBar — D-6 Open/Deferred/Answered. Token-only. */

.filter-chip-bar[b-ljwzgan1l7] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.filter-chip[b-ljwzgan1l7] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-1);
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-xs) / 1 var(--font-sans);
    cursor: pointer;
}

.filter-chip:hover[b-ljwzgan1l7] {
    border-color: var(--color-border-strong);
    background: var(--color-surface-2);
}

.filter-chip.on[b-ljwzgan1l7] {
    border-color: var(--color-accent);
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
    box-shadow: var(--shadow-focus);
}

.filter-chip-count[b-ljwzgan1l7] {
    font: var(--fw-semibold) var(--fs-micro) / 1 var(--font-mono);
    color: inherit;
}
/* /UI/EpicPlanning/SliceCard.razor.rz.scp.css */
.slice-card[b-u311fo0y2y] {
    border: 1px solid var(--color-border);
    border-radius: 8px;
    padding: 0.75rem 0.9rem;
    background: var(--color-surface);
    min-width: 12rem;
    max-width: 18rem;
}

.slice-card-top[b-u311fo0y2y] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.35rem;
}

.slice-card-dot[b-u311fo0y2y] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--color-text-muted);
    flex-shrink: 0;
}

.slice-card-buildable .slice-card-dot[b-u311fo0y2y] {
    background: var(--color-accent, var(--color-primary));
}

.slice-card-id[b-u311fo0y2y] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-weight: 600;
    font-size: 0.85rem;
}

.slice-card-title[b-u311fo0y2y] {
    font-size: 0.9rem;
    margin-bottom: 0.45rem;
    color: var(--color-text);
}

.slice-card-foot[b-u311fo0y2y] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.slice-card-chip[b-u311fo0y2y] {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    color: var(--color-text-muted);
    background: var(--color-surface-muted, transparent);
}

.slice-card-chip-acc[b-u311fo0y2y] {
    color: var(--color-accent-text, var(--color-primary));
    border-color: var(--color-accent, var(--color-primary));
}

.slice-card-chip-ok[b-u311fo0y2y] {
    color: var(--color-success-text, #1a7f37);
    border-color: var(--color-success, #1a7f37);
}

.slice-card-chip-warn[b-u311fo0y2y] {
    color: var(--color-warning-text, #9a6700);
    border-color: var(--color-warning, #d9a23b);
}

.slice-card-chip-info[b-u311fo0y2y] {
    color: var(--color-info-text, #0969da);
    border-color: var(--color-info, #0969da);
}

.slice-card-chip-mono[b-u311fo0y2y] {
    font-family: var(--font-mono, ui-monospace, monospace);
}

.slice-card-superseded[b-u311fo0y2y] {
    opacity: 0.7;
    border-style: dashed;
    border-color: var(--color-border-strong);
}

.slice-card-superseded .slice-card-title[b-u311fo0y2y] {
    text-decoration: line-through;
}

.slice-card-superseded .slice-card-id[b-u311fo0y2y] {
    color: var(--color-text-muted);
}
/* /UI/EpicPlanning/WaveGroup.razor.rz.scp.css */
/* WaveGroup — facit .wave rail. Token-only. */

.wave[b-98pte5ipqf] {
    margin-bottom: var(--space-5);
}

.wave-hd[b-98pte5ipqf] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
}

.wave-hd .rule[b-98pte5ipqf] {
    flex: 1;
    height: 1px;
    background: var(--color-divider);
}

.wave-name[b-98pte5ipqf] {
    font: var(--fw-semibold) var(--fs-xs) / 1 var(--font-sans);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--color-text-muted);
    white-space: nowrap;
}

.slice-row[b-98pte5ipqf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
    gap: var(--space-3);
}

.chip[b-98pte5ipqf] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-2);
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-micro) / 1 var(--font-mono);
    white-space: nowrap;
}

.chip.acc[b-98pte5ipqf] {
    background: var(--color-accent-soft);
    border-color: var(--color-accent-line);
    color: var(--color-accent-text);
}

.chip.ok[b-98pte5ipqf] {
    background: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.chip.warn[b-98pte5ipqf] {
    background: var(--color-warning-soft);
    border-color: var(--color-warning-line);
    color: var(--color-warning-text);
}
/* /UI/Filters/FilterAddMenu.razor.rz.scp.css */
/* Facit .filter-chip.is-add and the + Filter menu (board.html:779-789, 1345-1358). */
.filter-chip.is-add[b-2jixtkgoc2] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-pill);
    border: 1px dashed var(--color-border);
    background: transparent;
    color: var(--color-text-secondary);
    font: var(--fw-medium) var(--fs-xs) / 1.4 var(--font-sans);
    white-space: nowrap;
    cursor: pointer;
}

.filter-chip.is-add:hover[b-2jixtkgoc2],
.filter-chip.is-add:focus-visible[b-2jixtkgoc2] {
    color: var(--color-text);
    border-color: var(--color-accent);
}

.pop-search[b-2jixtkgoc2] {
    position: relative;
    margin: var(--space-1) var(--space-1) var(--space-2);
}

.pop-search i[b-2jixtkgoc2] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: var(--color-text-muted);
    pointer-events: none;
}

.pop-search[b-2jixtkgoc2]  input {
    height: var(--control-h-sm);
    font-size: var(--fs-xs);
    padding-left: 30px;
}

.pop-head[b-2jixtkgoc2] {
    font-size: var(--fs-micro);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-text-faint);
    padding: var(--space-2) var(--space-2) var(--space-1);
}

.opt[b-2jixtkgoc2] {
    width: 100%;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 6px var(--space-2);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    cursor: pointer;
}

.opt:hover[b-2jixtkgoc2],
.opt:focus-visible[b-2jixtkgoc2] {
    background: var(--color-surface-2);
}

.opt i[b-2jixtkgoc2] {
    color: var(--color-text-muted);
}

.opt .sub[b-2jixtkgoc2] {
    margin-left: auto;
    font-size: var(--fs-micro);
    color: var(--color-text-faint);
}

.pop-empty[b-2jixtkgoc2] {
    padding: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}
/* /UI/Filters/FilterChip.razor.rz.scp.css */
/* Facit .filter-chip (board.html:779-789). The pill is a container holding the toggle and the ✕. */
.filter-chip[b-3ob2ohj81u] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface-1);
    color: var(--color-text-secondary);
    white-space: nowrap;
}

.filter-chip.on[b-3ob2ohj81u] {
    border-color: var(--color-accent);
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
}

.filter-chip.is-archived[b-3ob2ohj81u] {
    border-style: dashed;
    color: var(--color-text-muted);
    background: transparent;
}

.chip-toggle[b-3ob2ohj81u],
.chip-x[b-3ob2ohj81u] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    border: 0;
    background: transparent;
    color: inherit;
    font: var(--fw-medium) var(--fs-xs) / 1.4 var(--font-sans);
    cursor: pointer;
}

.chip-toggle[b-3ob2ohj81u] {
    padding: var(--space-1) var(--space-3);
}

.filter-chip.on .chip-toggle[b-3ob2ohj81u] {
    padding-right: 0;
}

.chip-x[b-3ob2ohj81u] {
    padding: var(--space-1) var(--space-2) var(--space-1) 2px;
    opacity: .7;
}

.chip-x:hover[b-3ob2ohj81u],
.chip-x:focus-visible[b-3ob2ohj81u] {
    opacity: 1;
}

.chip-key[b-3ob2ohj81u] {
    color: var(--color-text-muted);
}

.filter-chip.on .chip-key[b-3ob2ohj81u] {
    color: inherit;
    opacity: .8;
}

.chip-val[b-3ob2ohj81u] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.filter-chip.on .chip-val[b-3ob2ohj81u] {
    color: inherit;
}

.filter-chip.is-archived .chip-val[b-3ob2ohj81u] {
    color: var(--color-text-muted);
    text-decoration: line-through;
}

.chip-caret[b-3ob2ohj81u] {
    font-size: 9px;
}

.filter-chip.is-readonly[b-3ob2ohj81u] {
    gap: var(--space-2);
    padding: var(--space-1) var(--space-3);
    font: var(--fw-medium) var(--fs-xs) / 1.4 var(--font-sans);
}
/* /UI/Filters/FilterOptionList.razor.rz.scp.css */
/* Facit .pop .search, .pop-head, .opt, .check, .n, .pop-foot (board.html:494-499, 799-808). */
.pop-search[b-9q8lvvgxh7] {
    position: relative;
    margin: var(--space-1) var(--space-1) var(--space-2);
}

.pop-search i[b-9q8lvvgxh7] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: var(--color-text-muted);
    pointer-events: none;
}

.pop-search[b-9q8lvvgxh7]  input {
    height: var(--control-h-sm);
    font-size: var(--fs-xs);
    padding-left: 30px;
}

.pop-head[b-9q8lvvgxh7] {
    font-size: var(--fs-micro);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--color-text-faint);
    padding: var(--space-2) var(--space-2) var(--space-1);
}

.opt[b-9q8lvvgxh7] {
    width: 100%;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: left;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 6px var(--space-2);
    border-radius: var(--radius-sm);
    font-size: var(--fs-sm);
    color: var(--color-text);
    cursor: pointer;
}

.opt:hover[b-9q8lvvgxh7],
.opt:focus-visible[b-9q8lvvgxh7] {
    background: var(--color-surface-2);
    outline: none;
}

.opt.is-muted[b-9q8lvvgxh7] {
    color: var(--color-text-muted);
}

.opt .n[b-9q8lvvgxh7] {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.opt-label[b-9q8lvvgxh7] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.opt-empty[b-9q8lvvgxh7] {
    padding: 6px var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.check[b-9q8lvvgxh7] {
    width: 15px;
    height: 15px;
    border-radius: var(--radius-xs);
    border: 1px solid var(--color-border);
    background: var(--color-bg-sunken);
    display: inline-grid;
    place-items: center;
    flex: none;
}

.check.on[b-9q8lvvgxh7] {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.check.on[b-9q8lvvgxh7]::after {
    content: "";
    width: 7px;
    height: 4px;
    border-left: 2px solid var(--color-text-on-accent);
    border-bottom: 2px solid var(--color-text-on-accent);
    transform: rotate(-45deg) translate(1px, -1px);
}

.pop-foot[b-9q8lvvgxh7] {
    border-top: 1px solid var(--color-border-soft);
    margin-top: var(--space-1);
    padding: var(--space-1);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    font-size: var(--fs-xs);
}
/* /UI/Filters/FilterPopover.razor.rz.scp.css */
/* Facit .pop-wrap / .pop (board.html:796-800). Token-only, both modes. */
.pop-wrap[b-30zcz5o5hh] {
    position: relative;
    display: inline-flex;
}

.pop-backdrop[b-30zcz5o5hh] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.pop[b-30zcz5o5hh] {
    position: absolute;
    left: 0;
    top: calc(100% + 6px);
    width: 260px;
    max-width: calc(100vw - 2rem);
    background: var(--color-surface-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    padding: var(--space-1);
    z-index: 1041;
}

.pop.is-right[b-30zcz5o5hh] {
    left: auto;
    right: 0;
}
/* /UI/Filters/GroupByMenu.razor.rz.scp.css */
/* GroupByMenu — facit .ctl-label / .select-sm (board.html:791-793). */

.group-by[b-flv5unhp81] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.ctl-label[b-flv5unhp81] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.select-sm[b-flv5unhp81] {
    height: var(--control-h-sm);
    min-width: 120px;
    font-size: var(--fs-xs);
    background: var(--color-bg-sunken);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    padding: 0 var(--space-2);
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    cursor: pointer;
}

.select-sm i[b-flv5unhp81] {
    font-size: 9px;
    margin-left: auto;
    color: var(--color-text-muted);
}
/* /UI/Forms/AcknowledgementCheckbox.razor.rz.scp.css */
.ack-gate[b-8sbgr93vjp] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
    border: 1px solid var(--color-warning-line);
    border-radius: var(--radius-md);
    background: var(--color-warning-soft);
}

.ack-warning[b-8sbgr93vjp] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    line-height: var(--lh-normal);
}

.ack-label[b-8sbgr93vjp] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    cursor: pointer;
    margin: 0;
}

.ack-input[b-8sbgr93vjp] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.ack-check[b-8sbgr93vjp] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-xs);
    background: var(--color-surface-1);
}

.ack-check.on[b-8sbgr93vjp] {
    border-color: var(--color-accent);
    background: var(--color-accent);
    box-shadow: inset 0 0 0 2px var(--color-surface-1);
}

.ack-text[b-8sbgr93vjp] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    line-height: var(--lh-normal);
}

.ack-action[b-8sbgr93vjp] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
}
/* /UI/Forms/AreaColourSwatches.razor.rz.scp.css */
/* Area colour swatches (Epic 49): the same six theme tokens as the area pill. */
.swatch[b-vrh1ikx644] {
    width: 22px;
    height: 22px;
    padding: 0;
    border-radius: var(--radius-sm);
    border: 2px solid transparent;
    background: var(--area-c);
    cursor: pointer;
}

.swatch.on[b-vrh1ikx644] {
    border-color: var(--color-text);
}

.swatch:focus-visible[b-vrh1ikx644] {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.area-teal[b-vrh1ikx644] { --area-c: var(--color-accent); }
.area-blue[b-vrh1ikx644] { --area-c: var(--color-info); }
.area-green[b-vrh1ikx644] { --area-c: var(--color-success); }
.area-amber[b-vrh1ikx644] { --area-c: var(--color-warning); }
.area-red[b-vrh1ikx644] { --area-c: var(--color-danger); }
.area-grey[b-vrh1ikx644] { --area-c: var(--color-text-muted); }
/* /UI/Forms/CheckboxCard.razor.rz.scp.css */
.checkbox-card[b-7mxmfw8omf] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    position: relative;
}

.checkbox-card.on[b-7mxmfw8omf] {
    border-color: var(--color-accent);
}

.checkbox-card.locked[b-7mxmfw8omf] {
    border-color: var(--color-border);
    background: var(--color-surface-1);
}

.checkbox-card.done[b-7mxmfw8omf] {
    border-style: dashed;
    border-color: var(--color-border);
    background: var(--color-surface-2);
    opacity: 0.9;
}

.checkbox-card.off[b-7mxmfw8omf] {
    opacity: 0.85;
}

.checkbox-card-hd[b-7mxmfw8omf] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.checkbox-card-input[b-7mxmfw8omf] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.checkbox-card-control[b-7mxmfw8omf] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-xs);
    background: var(--color-surface-1);
}

.checkbox-card-control.on[b-7mxmfw8omf] {
    border-color: var(--color-accent);
    background: var(--color-accent);
    box-shadow: inset 0 0 0 2px var(--color-surface-1);
}

.checkbox-card-control.lock[b-7mxmfw8omf],
.checkbox-card-control.done[b-7mxmfw8omf] {
    border-color: var(--color-success);
    background: var(--color-success);
    box-shadow: inset 0 0 0 2px var(--color-surface-1);
}

.checkbox-card-title[b-7mxmfw8omf] {
    margin: 0;
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.checkbox-card-badges[b-7mxmfw8omf] {
    display: inline-flex;
    gap: var(--space-2);
    margin-left: auto;
}

.checkbox-card-desc[b-7mxmfw8omf],
.checkbox-card-why[b-7mxmfw8omf] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    line-height: var(--lh-normal);
}

.checkbox-card-why[b-7mxmfw8omf] {
    color: var(--color-text-muted);
}

.checkbox-card-body[b-7mxmfw8omf] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

/* /UI/Forms/FeatureFlagGrid.razor.rz.scp.css */
.flag-grid[b-nd5zgmpxp3] {
    display: grid;
    gap: var(--space-2) var(--space-4);
    grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr));
}

.flag-row[b-nd5zgmpxp3] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    padding: var(--space-1) 0;
    cursor: pointer;
}

.flag-box[b-nd5zgmpxp3] {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    border-radius: var(--radius-xs);
    border: 1px solid var(--color-border-strong);
    background: var(--color-bg-sunken);
    display: inline-grid;
    place-items: center;
}

.flag-box-on[b-nd5zgmpxp3] {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
}

.flag-box .bi[b-nd5zgmpxp3] {
    font-size: 10px;
    line-height: 1;
}
/* /UI/Forms/FormCodeEditor.razor.rz.scp.css */
.code-editor[b-ws8k517dlo] {
    font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
    font-size: 0.9rem;
    line-height: 1.5;
    tab-size: 4;
    white-space: pre;
    overflow-x: auto;
}
/* /UI/Forms/FormTextAreaField.razor.rz.scp.css */
/* Monospace affordance for the text area (Epic 17 token). */
.font-mono[b-9jjm8z3b5w] {
    font-family: var(--font-mono);
}
/* /UI/Forms/InlineEditCell.razor.rz.scp.css */
/* Facit ticket-detail.html ".edit-cell" / ".inline-select" (Epic 49). The pencil is a child
   component's element, so it is reached through ::deep. */

.edit-cell[b-tb0rqzvsff] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.edit-cell-value[b-tb0rqzvsff] {
    min-width: 0;
}

.edit-cell[b-tb0rqzvsff]  .ghost-edit {
    margin-left: auto;
    flex: none;
    color: var(--color-text-faint);
}

.edit-cell[b-tb0rqzvsff]  .ghost-edit .bi {
    font-size: 12px;
}

.inline-select[b-tb0rqzvsff] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}
/* /UI/Forms/InlineNumberEdit.razor.rz.scp.css */
.inline-number-input[b-b29ys77yjj] {
    width: 5rem;
}
/* /UI/Forms/MoneyInput.razor.rz.scp.css */
.money-input[b-kgtv6hwhz3] {
    display: flex;
    align-items: stretch;
}

.money-prefix[b-kgtv6hwhz3] {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-3);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-right: none;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    color: var(--color-text-secondary);
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
}

.money-input .form-control[b-kgtv6hwhz3] {
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
/* /UI/Forms/RadioCardGroup.razor.rz.scp.css */
.radio-card-group[b-t4vvt0nhdr] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.radio-option[b-t4vvt0nhdr] {
    display: flex;
    align-items: flex-start;
    cursor: pointer;
    position: relative;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: var(--space-4);
    background: var(--color-surface-1);
}

.radio-option:hover[b-t4vvt0nhdr] {
    border-color: var(--color-border-strong);
    background: var(--color-surface-2);
}

.radio-option.on[b-t4vvt0nhdr] {
    border-color: var(--color-accent);
    background: var(--color-surface-1);
}

.radio-option.recommended[b-t4vvt0nhdr] {
    border-left: 4px solid var(--color-accent);
}

.radio-option.is-disabled[b-t4vvt0nhdr] {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

.radio-option.is-disabled:hover[b-t4vvt0nhdr] {
    border-color: var(--color-border);
    background: var(--color-surface-1);
}

.radio-option input[type="radio"][b-t4vvt0nhdr] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.radio-control[b-t4vvt0nhdr] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-pill);
    margin-right: var(--space-3);
    margin-top: 2px;
    flex-shrink: 0;
}

.radio-option.on .radio-control[b-t4vvt0nhdr] {
    border-color: var(--color-accent);
}

.radio-dot[b-t4vvt0nhdr] {
    width: 10px;
    height: 10px;
    border-radius: var(--radius-pill);
    background: transparent;
}

.radio-option.on .radio-dot[b-t4vvt0nhdr] {
    background: var(--color-accent);
}

.option-content[b-t4vvt0nhdr] {
    flex-grow: 1;
}

/* Densities */

.density-row .radio-option[b-t4vvt0nhdr] {
    flex-direction: row;
    padding: var(--space-3) var(--space-4);
}

.density-pill[b-t4vvt0nhdr] {
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.density-pill .radio-option[b-t4vvt0nhdr] {
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-pill);
    border-color: var(--color-border-soft);
}

.density-pill .radio-option.on[b-t4vvt0nhdr] {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text-on-accent);
}

/* Card layout specific */
.option-header[b-t4vvt0nhdr] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-1);
}

.option-header h4[b-t4vvt0nhdr] {
    margin: 0;
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
}

.option-description[b-t4vvt0nhdr] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.option-sublabel[b-t4vvt0nhdr] {
    margin-top: var(--space-1);
    display: block;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

/* Row layout specific */
.option-main[b-t4vvt0nhdr] {
    display: flex;
    flex-direction: column;
}

.option-title[b-t4vvt0nhdr] {
    font-weight: var(--fw-medium);
}

.option-desc[b-t4vvt0nhdr] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

/* Grid layout: equal wrapping columns (e.g. the custom field type cards) */
.radio-card-group.layout-grid[b-t4vvt0nhdr] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(calc(var(--space-9) + var(--space-6)), 1fr));
    gap: var(--space-2);
}
/* /UI/Forms/RepositoryChecklist.razor.rz.scp.css */
/* The token form's repository checklist (Pages/Settings/Connections.razor.css), class names kept. */
.worker-muted[b-59ecf8471b] {
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

.worker-strong[b-59ecf8471b] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

.worker-repo-list[b-59ecf8471b] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.worker-repo-item[b-59ecf8471b] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
    cursor: pointer;
}

.worker-repo-item:last-child[b-59ecf8471b] {
    border-bottom: none;
}

.worker-repo-item-text[b-59ecf8471b] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: var(--fs-sm);
}

.worker-repo-item-text .worker-muted[b-59ecf8471b] {
    font-size: var(--fs-xs);
}

/* Bootstrap's form-check-input is not mapped to the theme tokens: an unchecked control vanished on the
   dark surface and a checked one used Bootstrap blue. The facit draws them in the accent colour. */
.form-check-input[b-59ecf8471b] {
    border-color: var(--color-text-muted);
}

.form-check-input:checked[b-59ecf8471b] {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
}
/* /UI/Forms/SegmentedControl.razor.rz.scp.css */
/* Ported from the facit .seg rules (tickets.html:558-562). */
.seg[b-on526qxi6t] {
    display: inline-flex;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--color-bg-sunken);
}

.seg-option[b-on526qxi6t] {
    font: inherit;
    font-size: var(--fs-xs);
    background: transparent;
    border: 0;
    color: var(--color-text-secondary);
    padding: 0 var(--space-3);
    height: var(--control-h);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-right: 1px solid var(--color-border-soft);
    cursor: pointer;
}

a.seg-option[b-on526qxi6t] {
    text-decoration: none;
}

.seg-option i[b-on526qxi6t] {
    font-size: 13px;
}

.seg.view-switch .seg-option[b-on526qxi6t] {
    height: var(--control-h-sm);
}

.seg-option:last-child[b-on526qxi6t] {
    border-right: 0;
}

.seg-option.on[b-on526qxi6t] {
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
    box-shadow: inset 0 -2px 0 var(--color-accent);
}

.seg-count[b-on526qxi6t] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.seg-dot[b-on526qxi6t] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-warning);
    flex: none;
}

@media (max-width: 600px) {
    .seg[b-on526qxi6t] {
        width: 100%;
        overflow-x: auto;
    }
}
/* /UI/Forms/StandardValueRow.razor.rz.scp.css */
.subrow[b-ldsjpdky8g] {
    display: grid;
    grid-template-columns: 200px 1fr 160px;
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
}

.subrow:last-child[b-ldsjpdky8g] {
    border-bottom: 0;
}

@media (max-width: 860px) {
    .subrow[b-ldsjpdky8g] {
        grid-template-columns: 1fr;
        gap: var(--space-2);
    }
    
    .std-col[b-ldsjpdky8g] {
        justify-content: flex-start !important;
    }
}

.subrow-q[b-ldsjpdky8g] {
    font-weight: var(--fw-medium);
    color: var(--color-text);
    font-size: var(--fs-sm);
}

.opts[b-ldsjpdky8g] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.std-col[b-ldsjpdky8g] {
    display: flex;
    justify-content: flex-end;
}

.std[b-ldsjpdky8g] {
    white-space: nowrap;
    font-size: var(--fs-xs);
}

/* States */
.changed-from-standard[b-ldsjpdky8g] {
    background: var(--color-warning-soft);
}

.at-standard[b-ldsjpdky8g] {
    background: transparent;
}

.free-text-wrapper[b-ldsjpdky8g]  .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.free-text-wrapper[b-ldsjpdky8g]  .mb-3 {
    margin-top: 0;
    margin-bottom: 0;
}

/* /UI/Forms/WorkspaceChoiceRow.razor.rz.scp.css */
/* The select-tenant row shape. Bootstrap's bg-primary-subtle is not remapped by the app's [data-theme]
   tokens, so the selected tint uses the accent tokens, which follow the theme. */
.picker-row-wrapper[b-oi2xfqvjr8] {
    border: 1px solid var(--color-border);
    cursor: pointer;
}

.picker-row-wrapper.is-fixed[b-oi2xfqvjr8] {
    cursor: default;
}

.picker-row-wrapper.is-selected[b-oi2xfqvjr8] {
    background: var(--color-accent-soft);
    border-color: var(--color-accent);
}

/* Bootstrap's form-check-input is not mapped to the theme tokens: an unchecked control vanished on the
   dark surface and a checked one used Bootstrap blue. The facit draws them in the accent colour. */
.form-check-input[b-oi2xfqvjr8] {
    border-color: var(--color-text-muted);
}

.form-check-input:checked[b-oi2xfqvjr8] {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
}
/* /UI/Help/ContextualHelp.razor.rz.scp.css */
/* Contextual Help Component Styles */
/* Pure CSS tooltips (no JavaScript required) */

.contextual-help-wrapper[b-gsd4ma31md] {
    position: relative;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin-left: var(--space-xs);
}

.contextual-help-icon[b-gsd4ma31md] {
    color: var(--text-color-muted);
    cursor: help;
    transition: color var(--transition-base);
}

.contextual-help-icon:hover[b-gsd4ma31md] {
    color: var(--link-color);
}

/* Icon size classes */
.contextual-help-icon-small[b-gsd4ma31md] {
    font-size: var(--font-size-sm);
}

.contextual-help-icon-medium[b-gsd4ma31md] {
    font-size: var(--font-size-base);
}

.contextual-help-icon-large[b-gsd4ma31md] {
    font-size: var(--font-size-lg);
}

/* Tooltip container */
.contextual-help-tooltip[b-gsd4ma31md] {
    position: absolute;
    background-color: var(--bg-color);
    border: var(--border-width) solid var(--border-color);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-md);
    padding: 0.75rem;
    min-width: 250px;
    max-width: 350px;
    z-index: var(--z-index-tooltip);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-base);
    text-align: left;

    /* Hidden by default */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    /* Smooth transition */
    transition: opacity var(--transition-base), visibility var(--transition-base), transform var(--transition-base);
}

/* Show tooltip on hover */
.contextual-help-wrapper:hover .contextual-help-tooltip[b-gsd4ma31md] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* Tooltip title */
.contextual-help-tooltip-title[b-gsd4ma31md] {
    font-weight: var(--font-weight-semibold);
    color: var(--text-color);
    margin-bottom: var(--space-sm);
    padding-bottom: var(--space-sm);
    border-bottom: var(--border-width) solid var(--gray-200);
}

/* Tooltip body */
.contextual-help-tooltip-body[b-gsd4ma31md] {
    color: var(--gray-700);
}

/* Tooltip footer (for Learn More links) */
.contextual-help-tooltip-footer[b-gsd4ma31md] {
    margin-top: var(--space-sm);
    padding-top: var(--space-sm);
    border-top: var(--border-width) solid var(--gray-200);
}

.contextual-help-tooltip-footer a[b-gsd4ma31md] {
    color: var(--link-color);
    text-decoration: none;
    font-size: 0.8125rem;
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
}

.contextual-help-tooltip-footer a:hover[b-gsd4ma31md] {
    text-decoration: underline;
}

/* Tooltip arrow (using CSS borders trick) */
.contextual-help-tooltip-arrow[b-gsd4ma31md] {
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
}

/* Position: Top (default) */
.contextual-help-tooltip-top[b-gsd4ma31md] {
    bottom: calc(100% + var(--space-sm));
    left: 50%;
    transform: translateX(-50%) translateY(5px);
}

.contextual-help-wrapper:hover .contextual-help-tooltip-top[b-gsd4ma31md] {
    transform: translateX(-50%) translateY(0);
}

.contextual-help-tooltip-top .contextual-help-tooltip-arrow[b-gsd4ma31md] {
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: var(--space-sm) var(--space-sm) 0 var(--space-sm);
    border-color: var(--bg-color) transparent transparent transparent;
}

.contextual-help-tooltip-top .contextual-help-tooltip-arrow[b-gsd4ma31md]::before {
    content: '';
    position: absolute;
    top: calc(-1 * var(--space-sm));
    left: calc(-1 * var(--space-sm));
    border-width: var(--space-sm) var(--space-sm) 0 var(--space-sm);
    border-style: solid;
    border-color: var(--border-color) transparent transparent transparent;
}

/* Position: Bottom */
.contextual-help-tooltip-bottom[b-gsd4ma31md] {
    top: calc(100% + var(--space-sm));
    left: 50%;
    transform: translateX(-50%) translateY(-5px);
}

.contextual-help-wrapper:hover .contextual-help-tooltip-bottom[b-gsd4ma31md] {
    transform: translateX(-50%) translateY(0);
}

.contextual-help-tooltip-bottom .contextual-help-tooltip-arrow[b-gsd4ma31md] {
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 0 var(--space-sm) var(--space-sm) var(--space-sm);
    border-color: transparent transparent var(--bg-color) transparent;
}

.contextual-help-tooltip-bottom .contextual-help-tooltip-arrow[b-gsd4ma31md]::before {
    content: '';
    position: absolute;
    bottom: -0.5625rem;
    left: calc(-1 * var(--space-sm));
    border-width: 0 var(--space-sm) 0.5625rem var(--space-sm);
    border-style: solid;
    border-color: transparent transparent var(--border-color) transparent;
}

/* Position: Left */
.contextual-help-tooltip-left[b-gsd4ma31md] {
    right: calc(100% + var(--space-sm));
    top: 50%;
    transform: translateY(-50%) translateX(5px);
}

.contextual-help-wrapper:hover .contextual-help-tooltip-left[b-gsd4ma31md] {
    transform: translateY(-50%) translateX(0);
}

.contextual-help-tooltip-left .contextual-help-tooltip-arrow[b-gsd4ma31md] {
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-width: var(--space-sm) 0 var(--space-sm) var(--space-sm);
    border-color: transparent transparent transparent var(--bg-color);
}

.contextual-help-tooltip-left .contextual-help-tooltip-arrow[b-gsd4ma31md]::before {
    content: '';
    position: absolute;
    left: -0.5625rem;
    top: calc(-1 * var(--space-sm));
    border-width: var(--space-sm) 0 var(--space-sm) 0.5625rem;
    border-style: solid;
    border-color: transparent transparent transparent var(--border-color);
}

/* Position: Right */
.contextual-help-tooltip-right[b-gsd4ma31md] {
    left: calc(100% + var(--space-sm));
    top: 50%;
    transform: translateY(-50%) translateX(-5px);
}

.contextual-help-wrapper:hover .contextual-help-tooltip-right[b-gsd4ma31md] {
    transform: translateY(-50%) translateX(0);
}

.contextual-help-tooltip-right .contextual-help-tooltip-arrow[b-gsd4ma31md] {
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-width: var(--space-sm) var(--space-sm) var(--space-sm) 0;
    border-color: transparent var(--bg-color) transparent transparent;
}

.contextual-help-tooltip-right .contextual-help-tooltip-arrow[b-gsd4ma31md]::before {
    content: '';
    position: absolute;
    right: -0.5625rem;
    top: calc(-1 * var(--space-sm));
    border-width: var(--space-sm) 0.5625rem var(--space-sm) 0;
    border-style: solid;
    border-color: transparent var(--border-color) transparent transparent;
}

/* Responsive adjustments for small screens */
@media (max-width: 768px) {
    .contextual-help-tooltip[b-gsd4ma31md] {
        max-width: 280px;
        min-width: 200px;
    }

    /* On mobile, prefer bottom positioning to avoid viewport overflow */
    .contextual-help-tooltip-top[b-gsd4ma31md],
    .contextual-help-tooltip-left[b-gsd4ma31md],
    .contextual-help-tooltip-right[b-gsd4ma31md] {
        bottom: auto;
        top: calc(100% + var(--space-sm));
        left: 50%;
        right: auto;
        transform: translateX(-50%) translateY(-5px);
    }

    .contextual-help-wrapper:hover .contextual-help-tooltip-top[b-gsd4ma31md],
    .contextual-help-wrapper:hover .contextual-help-tooltip-left[b-gsd4ma31md],
    .contextual-help-wrapper:hover .contextual-help-tooltip-right[b-gsd4ma31md] {
        transform: translateX(-50%) translateY(0);
    }

    .contextual-help-tooltip-top .contextual-help-tooltip-arrow[b-gsd4ma31md],
    .contextual-help-tooltip-left .contextual-help-tooltip-arrow[b-gsd4ma31md],
    .contextual-help-tooltip-right .contextual-help-tooltip-arrow[b-gsd4ma31md] {
        bottom: 100%;
        left: 50%;
        top: auto;
        right: auto;
        transform: translateX(-50%);
        border-width: 0 var(--space-sm) var(--space-sm) var(--space-sm);
        border-color: transparent transparent var(--bg-color) transparent;
    }
}
/* /UI/Layout/AnswerReviewRow.razor.rz.scp.css */
.answer-review-row[b-ku4zpao30y] {
    display: grid;
    grid-template-columns: minmax(8rem, 12rem) 1fr auto;
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-divider);
}

.answer-review-row:last-child[b-ku4zpao30y] {
    border-bottom: 0;
}

@media (max-width: 720px) {
    .answer-review-row[b-ku4zpao30y] {
        grid-template-columns: 1fr;
        gap: var(--space-1);
    }
}

.answer-review-label[b-ku4zpao30y] {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.answer-review-value[b-ku4zpao30y] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    min-width: 0;
    word-break: break-word;
}

.answer-review-action[b-ku4zpao30y] {
    justify-self: end;
}
/* /UI/Layout/AuthPageHeader.razor.rz.scp.css */
/* The head of the auth-style pages (facit: consent.html and link-machine.html, tokens only). The facit's
   inline SVG icons are bootstrap-icons glyphs here, so their width/height become a font size. */

.auth-page-mark[b-5k9tbl7lzj] {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
    border: 1px solid var(--color-accent-line);
    margin: 0 auto var(--space-3);
}

.auth-page-mark[b-5k9tbl7lzj]  .bi {
    font-size: 20px;
    line-height: 1;
}

/* The facit sizes the page heading with the h1 token (22px), not Bootstrap's .h3 (28px). */
.auth-page-title[b-5k9tbl7lzj] {
    font-size: var(--fs-h1);
}

.auth-page-signed-in[b-5k9tbl7lzj] {
    display: flex;
    justify-content: center;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0 var(--space-1);
}

.auth-sign-out[b-5k9tbl7lzj] {
    display: inline;
}

.auth-sign-out-link[b-5k9tbl7lzj] {
    background: none;
    border: none;
    padding: 0;
    color: var(--color-accent-text);
    text-decoration: underline;
    cursor: pointer;
    font: inherit;
}
/* /UI/Layout/Disclosure.razor.rz.scp.css */
/* Disclosure — facit `.disclosure` (ticket page simplification mockups). Token-only, both modes. */

.disclosure[b-95xjkrdxu2] {
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    margin-top: var(--space-3);
}

.disclosure-summary[b-95xjkrdxu2] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    padding: var(--space-2) var(--space-3);
    border: 0;
    background: transparent;
    color: var(--color-text-secondary);
    font: inherit;
    font-size: var(--fs-sm);
    text-align: left;
    cursor: pointer;
}

.disclosure-summary:focus-visible[b-95xjkrdxu2] {
    outline: 2px solid var(--color-accent);
    outline-offset: -2px;
    border-radius: var(--radius-sm);
}

[b-95xjkrdxu2] .disclosure-chev {
    font-size: 12px;
    line-height: 1;
    transition: transform var(--transition-fast);
}

.is-open[b-95xjkrdxu2]  .disclosure-chev {
    transform: rotate(90deg);
}

.disclosure-hint[b-95xjkrdxu2] {
    margin-left: auto;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.disclosure-body[b-95xjkrdxu2] {
    padding: var(--space-3) var(--space-3) var(--space-1);
    border-top: 1px solid var(--color-border-soft);
}
/* /UI/Layout/FilterBar.razor.rz.scp.css */
/* FilterBar — visual spec verbatim from the chosen mockup (.toolbar L962-974).
   Canonical tokens only. Layout-only chrome; child controls keep their own
   styling. */

.filter-bar[b-6kozuiw7jt] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    padding: var(--space-3) var(--space-4);
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-5);
    box-shadow: var(--shadow-sm);
}

/* Let direct field children flex to fill the row (mockup .toolbar .field). */
.filter-bar[b-6kozuiw7jt]  .filter-bar-field {
    flex: 1;
    min-width: 160px;
}

.filter-bar-reset[b-6kozuiw7jt] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    height: var(--control-h-sm);
    padding: 0 var(--space-3);
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    font-family: var(--font-sans);
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    cursor: pointer;
    margin-left: auto;
    transition: background .14s var(--ease), border-color .14s var(--ease), color .14s var(--ease);
}

.filter-bar-reset:hover[b-6kozuiw7jt] {
    background: var(--color-surface-2);
    border-color: var(--color-border-strong);
    color: var(--color-text);
}

.filter-bar-reset:focus-visible[b-6kozuiw7jt] {
    outline: none;
    box-shadow: var(--shadow-focus);
}
/* /UI/Layout/Grid2.razor.rz.scp.css */
/* Grid2 — mockup `.grid-2`. Token-only, both modes.
   minmax(0, …) tracks and min-width:0 on items let wide children (tables)
   scroll internally instead of expanding the page (Epic 33 VQA / facit
   decision 13). The items are the caller's markup, so the item rule needs
   ::deep: without it the scope attribute lands on `*` and never matches. */

.grid-2[b-oypxgl4f1y] {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: var(--space-4);
    margin-top: var(--space-5);
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.grid-2[b-oypxgl4f1y]  > * {
    min-width: 0;
    max-width: 100%;
}

@media (max-width: 1080px) {
    .grid-2[b-oypxgl4f1y] {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* /UI/Layout/MainSideLayout.razor.rz.scp.css */
/* MainSideLayout — facit `.detail-grid` (ticket page simplification, ticket-detail.html).
   Main column 1fr, side column 320px; one column below 1100px. Token-only, both modes. */

.main-side-layout[b-do0xe9jwyq] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: var(--space-5);
    align-items: start;
}

.main-side-layout__main[b-do0xe9jwyq],
.main-side-layout__side[b-do0xe9jwyq] {
    min-width: 0;
}

@media (max-width: 1100px) {
    .main-side-layout[b-do0xe9jwyq] {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* /UI/Layout/PageHeader.razor.rz.scp.css */
/* PageHeader — mockup `.page-head` / `.page-title` / `.page-sub`.
   Token-only, both modes. */

.page-header[b-yqwgqfc0f5] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    min-width: 0;
    max-width: 100%;
}

.page-header-title[b-yqwgqfc0f5] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
    flex: 1 1 auto;
}

.page-header-title h1[b-yqwgqfc0f5] {
    margin: 0;
    font-size: var(--fs-h1);
    font-weight: var(--fw-semibold);
    letter-spacing: -0.015em;
    color: var(--color-text);
    min-width: 0;
    overflow-wrap: anywhere;
}

.page-header-title[b-yqwgqfc0f5]  i.bi {
    color: var(--color-accent);
    font-size: 20px;
    flex-shrink: 0;
}

.page-header-actions[b-yqwgqfc0f5] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    min-width: 0;
    max-width: 100%;
}

.page-header-subtitle[b-yqwgqfc0f5] {
    margin-top: -1.25rem;
    margin-bottom: var(--space-6);
    color: var(--color-text-muted);
    font-size: var(--fs-sm);
}

/* Stacked title (Eyebrow / TitleMeta set) — facit `.detail-title` (ticket page simplification). */
.page-header-title--stacked[b-yqwgqfc0f5] {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
}

.page-header-eyebrow[b-yqwgqfc0f5] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.page-header-meta[b-yqwgqfc0f5] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
}
/* /UI/Layout/PickerRow.razor.rz.scp.css */
.picker-row[b-b41jbrp2xx] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-1);
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
}

.picker-row:hover[b-b41jbrp2xx] {
    border-color: var(--color-border-strong);
    background: var(--color-surface-2);
}

.picker-row.on[b-b41jbrp2xx] {
    border-color: var(--color-accent);
    background: var(--color-surface-1);
}

.picker-radio[b-b41jbrp2xx] {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-pill);
    background: transparent;
}

.picker-row.on .picker-radio[b-b41jbrp2xx] {
    border-color: var(--color-accent);
    box-shadow: inset 0 0 0 4px var(--color-accent);
}

.picker-title[b-b41jbrp2xx] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.picker-chips[b-b41jbrp2xx] {
    display: inline-flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.picker-spacer[b-b41jbrp2xx] {
    flex: 1 1 auto;
}

.picker-subtitle[b-b41jbrp2xx] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.picker-subtitle.mono[b-b41jbrp2xx],
.mono[b-b41jbrp2xx] {
    font-family: var(--font-mono);
}

.picker-trailing[b-b41jbrp2xx] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}
/* /UI/Layout/SavedAnswersGrid.razor.rz.scp.css */
.saved-answers-grid[b-1vay1oih66] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3) var(--space-4);
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-2);
}

@media (max-width: 640px) {
    .saved-answers-grid[b-1vay1oih66] {
        grid-template-columns: 1fr;
    }
}

.saved-answer-item[b-1vay1oih66] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.saved-answer-name[b-1vay1oih66] {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: var(--tracking-label);
}

.saved-answer-value[b-1vay1oih66] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    word-break: break-word;
    overflow-wrap: anywhere;
}
/* /UI/Layout/Section.razor.rz.scp.css */
/* Section — mockup `.section-head` quiet header (text + hairline,
   never a colored bar). Token-only, both modes. */

.section[b-gen1c5g0bd] {
    margin-bottom: var(--space-6);
}

.section-header[b-gen1c5g0bd] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin: var(--space-7) 0 var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-divider);
}

.section-collapsible .section-header[b-gen1c5g0bd] {
    cursor: pointer;
}

.section-title[b-gen1c5g0bd] {
    margin: 0;
    font-size: var(--fs-h2);
    font-weight: var(--fw-semibold);
    letter-spacing: -0.01em;
    color: var(--color-text);
}

.section-content[b-gen1c5g0bd] {
    padding: var(--space-4) 0;
}
/* /UI/Layout/SectionBanner.razor.rz.scp.css */
/* SectionBanner — quiet section/card header. Visual spec verbatim from the
   chosen mockup (.section-head L502-523, .card-head L602-611). Canonical
   tokens only — NEVER a saturated colored bar. A tone adds ONLY a thin left
   accent tick + a faint tint, applied via the shared .accent-tick element. */

.section-banner[b-yxoaw4tzi7] {
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
    margin: var(--space-7) 0 var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-divider);
}

.section-banner-text[b-yxoaw4tzi7] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.section-banner-title[b-yxoaw4tzi7] {
    font-size: var(--fs-h2);
    letter-spacing: -0.01em;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
}

.section-banner-glyph[b-yxoaw4tzi7] {
    color: var(--color-text-muted);
}

.section-banner .hint[b-yxoaw4tzi7] {
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.section-banner-actions[b-yxoaw4tzi7] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    align-self: center;
}

/* Thin left accent tick — the ONLY visual a tone adds (no colored band). */
.accent-tick[b-yxoaw4tzi7] {
    width: 3px;
    height: 14px;
    border-radius: var(--radius-pill);
    align-self: center;
    flex: none;
}

.section-banner-info .accent-tick[b-yxoaw4tzi7] {
    background: var(--color-info);
}

.section-banner-success .accent-tick[b-yxoaw4tzi7] {
    background: var(--color-success);
}

.section-banner-warning .accent-tick[b-yxoaw4tzi7] {
    background: var(--color-warning);
}

.section-banner-danger .accent-tick[b-yxoaw4tzi7] {
    background: var(--color-danger);
}

/* Faint tint only — restrained, never saturated. */
.section-banner-info[b-yxoaw4tzi7] {
    background: var(--color-info-soft);
}

.section-banner-success[b-yxoaw4tzi7] {
    background: var(--color-success-soft);
}

.section-banner-warning[b-yxoaw4tzi7] {
    background: var(--color-warning-soft);
}

.section-banner-danger[b-yxoaw4tzi7] {
    background: var(--color-danger-soft);
}
/* /UI/Layout/StatGrid.razor.rz.scp.css */
/* StatGrid — mockup `.stat-grid`. Token-only, both modes. */

.stat-grid[b-7gucb1xwv2] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-4);
}

@media (max-width: 1080px) {
    .stat-grid[b-7gucb1xwv2] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .stat-grid[b-7gucb1xwv2] {
        grid-template-columns: 1fr;
    }
}
/* /UI/Layout/ThemeToggle.razor.rz.scp.css */
/* Theme toggle control — visual spec verbatim from the chosen mockup
   (.theme-toggle, styles.css L263-283). Canonical tokens only.

   The control now renders BOTH directional anchors (switch-to-dark and
   switch-to-light); exactly one is shown per effective theme. Because
   that show/hide depends on the [data-theme] / prefers-color-scheme
   state of the <html> ANCESTOR — which a component-scoped stylesheet
   cannot reliably target — those 4-case rules live in the GLOBAL
   stylesheet (wwwroot/css/app.css), NOT here. This file keeps only the
   pill chrome + the per-option inline-flex layout (the visual the mockup
   applied to its single anchor). */

.theme-toggle[b-kpngu4l1uw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--control-h-sm);
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    color: var(--color-text-secondary);
    font-family: var(--font-sans);
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    cursor: pointer;
    transition: background .14s var(--ease), border-color .14s var(--ease), color .14s var(--ease);
    user-select: none;
}

.theme-toggle:hover[b-kpngu4l1uw] {
    background: var(--color-surface-2);
    border-color: var(--color-border-strong);
    color: var(--color-text);
}

.theme-toggle:focus-visible[b-kpngu4l1uw],
.theme-toggle:focus-within[b-kpngu4l1uw] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

/* NOTE: `display` is intentionally NOT set here. Whether each option is
   shown/hidden (display: inline-flex | none) is owned by the GLOBAL
   4-case affordance rules in wwwroot/css/app.css, which key off the
   <html> ancestor theme state a scoped stylesheet cannot target. The
   shown option gets `display: inline-flex` there; the alignment/spacing
   below applies once it is laid out. */
.theme-toggle-opt[b-kpngu4l1uw] {
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 100%;
    padding: 0 var(--space-3);
    line-height: 1;
    color: inherit;
    text-decoration: none;
}

.theme-toggle-opt:focus-visible[b-kpngu4l1uw] {
    outline: none;
}

.theme-toggle .ic[b-kpngu4l1uw] {
    display: flex;
    align-items: center;
    font-size: 13px;
    line-height: 1;
    color: var(--color-accent);
}

.theme-toggle .lbl[b-kpngu4l1uw] {
    font-family: var(--font-mono);
    line-height: 1;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
}

/* Epic 39 D-4: 44px touch target on phones. The token exists for exactly this
   (tokens/_layout.css:12) and the rule lives here, not in a global @media block,
   because a global rule naming .theme-toggle would be a component-specific
   selector in global CSS (C4). */
/* The option anchor spans the pill's 1px border too, so the target itself is
   44px rather than the 42px inside the border. */
@media (max-width: 768px) {
    .theme-toggle[b-kpngu4l1uw] { height: var(--control-h-lg); }

    .theme-toggle-opt[b-kpngu4l1uw] {
        height: var(--control-h-lg);
        min-width: var(--control-h-lg);
        margin: -1px;
    }
}
/* /UI/Navigation/Breadcrumbs.razor.rz.scp.css */
/* Breadcrumbs — mockup `.breadcrumb` (06-developer-dark-dual/styles.css).
   Scoped, so it wins the cascade over Bootstrap `.breadcrumb`. Token-only,
   both modes. */

.breadcrumb[b-wzs2j3zxzo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
    background: transparent;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    font-family: var(--font-mono);
}

.breadcrumb-nav[b-wzs2j3zxzo] {
    margin-bottom: var(--space-3);
}

.breadcrumb-item[b-wzs2j3zxzo] {
    color: var(--color-text-muted);
    text-decoration: none;
}

a.breadcrumb-item:hover[b-wzs2j3zxzo] {
    color: var(--color-accent-text);
}

.breadcrumb-item.active[b-wzs2j3zxzo] {
    color: var(--color-text-muted);
}

/* Bootstrap injects a `::before` "/" on .breadcrumb-item — suppress it; the
   mockup uses explicit .sep spans instead. */
.breadcrumb-item[b-wzs2j3zxzo]::before {
    content: none;
}

.sep[b-wzs2j3zxzo] {
    opacity: 0.5;
    padding: 0 6px;
    color: var(--color-text-muted);
}
/* /UI/Navigation/NavItem.razor.rz.scp.css */
/* NavItem renders its row via the framework <NavLink> child component.
   Blazor CSS isolation does NOT propagate this component's scope
   attribute onto the <a> that NavLink emits, so element-scoped rules
   here can never match the rendered row. The mockup `.nav-item`
   styling is therefore owned by the sidebar chrome that hosts this
   component — see `.nav ::deep a.nav-item` in
   `Components/Layout/NavMenu.razor.css`. Intentionally no rules here. */
/* /UI/Navigation/RouteTabStrip.razor.rz.scp.css */
.route-tab-strip[b-5t5fcgli9v] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
    border-bottom: 1px solid var(--color-divider);
    margin-bottom: var(--space-5);
}

.route-tab-strip[b-5t5fcgli9v]  a.route-tab {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    text-decoration: none;
}

.route-tab-strip[b-5t5fcgli9v]  a.route-tab:hover {
    color: var(--color-text);
    text-decoration: none;
}

.route-tab-strip[b-5t5fcgli9v]  a.route-tab.active {
    color: var(--color-accent-text);
    border-bottom-color: var(--color-accent);
    font-weight: var(--fw-medium);
}

.route-tab-strip[b-5t5fcgli9v]  a.route-tab i {
    opacity: 0.8;
}
/* /UI/Navigation/TabContainer.razor.rz.scp.css */
/* TabContainer — token-based tab bar styling.
   Bootstrap's --bs-nav-* variables are re-pointed at the canonical tokens
   globally in cascade-reset.css (single source of truth), so nav-link
   colours already pick up the correct values per theme. This file adds
   ONLY the visual shape rules the mockup specifies: accent underline on
   active tab, flush bottom border, transparent backgrounds, correct
   padding and weight. */

/* Tab bar: flush to the canvas, single hairline bottom rule. */
.nav-tabs[b-ri59bkygg0] {
    border-bottom: 1px solid var(--color-divider);
}

/* Tab buttons — shape, padding, transition.
   Colour comes from --bs-nav-link-color redirected in cascade-reset.css. */
.nav-link[b-ri59bkygg0] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    padding: var(--space-2) var(--space-3);
    font-size: var(--fs-body);
    font-weight: var(--fw-medium);
    color: var(--color-text-secondary);
    transition: color .12s var(--ease, ease), border-color .12s var(--ease, ease);
    margin-bottom: -1px;
}

.nav-link:hover[b-ri59bkygg0] {
    border-bottom-color: var(--color-border-strong);
    background: transparent;
    color: var(--color-text);
}

.nav-link.active[b-ri59bkygg0] {
    background: transparent;
    border-bottom: 2px solid var(--color-accent);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.nav-link:disabled[b-ri59bkygg0],
.nav-link.disabled[b-ri59bkygg0] {
    color: var(--color-text-faint);
}

.nav-link:focus-visible[b-ri59bkygg0] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

/* Tab content area. */
.tab-content[b-ri59bkygg0] {
    color: var(--color-text);
}

/* Optional count badge on tab labels (facit .cnt / Decisions open count). */
.tab-badge-count[b-ri59bkygg0] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    min-width: 20px;
    height: 20px;
    margin-left: var(--space-2);
    padding: 0 var(--space-1);
    border-radius: var(--radius-pill);
    background: var(--color-warning-soft);
    border: 1px solid var(--color-warning-line);
    color: var(--color-warning-text);
    font: var(--fw-semibold) var(--fs-micro) / 1 var(--font-mono);
}

.nav-link.active .tab-badge-count[b-ri59bkygg0] {
    background: var(--color-warning);
    border-color: var(--color-warning);
    color: var(--color-bg-base);
}
/* /UI/Navigation/WizardStepper.razor.rz.scp.css */
/* WizardStepper — visual spec verbatim from the chosen mockup
   (.stepper L843, .step L844-863, .step.active L864-869, .step.done .num
   L870). Canonical tokens only. The clickable variant is a <button> reset
   to the same visual as the static .step <div>. */

.stepper[b-am943kbvin] {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.step[b-am943kbvin] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 8px var(--space-4);
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-surface-1);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

/* Button variant: strip native chrome, keep .step look, allow pointer. */
button.step[b-am943kbvin] {
    font-family: var(--font-sans);
    cursor: pointer;
    text-align: left;
    transition: border-color .14s var(--ease), background .14s var(--ease), color .14s var(--ease);
}

button.step:hover[b-am943kbvin] {
    border-color: var(--color-border-strong);
    color: var(--color-text-secondary);
}

button.step:focus-visible[b-am943kbvin] {
    outline: none;
    box-shadow: var(--shadow-focus);
}

.step .num[b-am943kbvin] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: var(--fs-micro);
    font-family: var(--font-mono);
    background: var(--color-surface-3);
    color: var(--color-text-secondary);
}

.step.active[b-am943kbvin] {
    border-color: var(--color-accent-line);
    background: var(--color-accent-soft);
    color: var(--color-accent-text);
}

.step.active .num[b-am943kbvin] {
    background: var(--color-accent);
    color: var(--color-text-on-accent);
}

.step.done .num[b-am943kbvin] {
    background: var(--color-success-soft);
    color: var(--color-success-text);
    border: 1px solid var(--color-success-line);
}
/* /UI/Notifications/ConnectionToast.razor.rz.scp.css */
/* ConnectionToast — fixed bottom-right real-time status pill. Token-only,
   both modes. Replaces raw bootstrap toast/position-fixed spaghetti. */

.conn-toast[b-m40cvasrdm] {
    position: fixed;
    bottom: var(--space-4);
    right: var(--space-4);
    z-index: var(--z-index-base);
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    font-size: var(--fs-xs);
    border-radius: var(--radius-md);
    background: var(--color-surface-1);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
    color: var(--color-text-secondary);
}

.conn-toast-connected .conn-ico[b-m40cvasrdm] {
    color: var(--color-success);
}

.conn-toast-connecting .conn-ico[b-m40cvasrdm] {
    color: var(--color-warning);
}

.conn-toast-disconnected .conn-ico[b-m40cvasrdm] {
    color: var(--color-danger);
}
/* /UI/Notifications/Toast.razor.rz.scp.css */
/* Toast — Epic 17 locked decision: soft tint background + dark readable
   text + a thin colored accent rule. Never a saturated bg-* text-white|dark
   fill. Token-only, same idiom as Card.razor.css.

   The soft tints are translucent, so each variant layers its tint over an
   opaque surface (the page must never show through a toast), and the header
   is transparent so Bootstrap's grey --bs-toast-header-* never repaints it. */

.toast[b-m091gkxqjm] {
    --bs-toast-bg: var(--color-surface-1);
    --bs-toast-header-bg: transparent;
    --bs-toast-header-color: inherit;
    --bs-toast-header-border-color: var(--color-divider);
}

.toast-header[b-m091gkxqjm] {
    background-color: transparent;
    color: inherit;
}

.toast-header .text-muted[b-m091gkxqjm] {
    color: var(--color-text-muted) !important;
}

/* Bootstrap's close X is dark ink; flip it to light in the dark theme. */
:root:not([data-theme="light"]) .toast-header .btn-close[b-m091gkxqjm] {
    filter: invert(1) grayscale(100%) brightness(200%);
}

:root[data-theme="light"] .toast-header .btn-close[b-m091gkxqjm] {
    filter: none;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme="dark"]) .toast-header .btn-close[b-m091gkxqjm] {
        filter: none;
    }
}

.toast.is-success[b-m091gkxqjm],
.toast.is-danger[b-m091gkxqjm],
.toast.is-warning[b-m091gkxqjm],
.toast.is-info[b-m091gkxqjm],
.toast.is-primary[b-m091gkxqjm] {
    border-left: 3px solid transparent;
}

.toast.is-primary[b-m091gkxqjm] {
    background: linear-gradient(var(--color-accent-soft), var(--color-accent-soft)), var(--color-surface-1);
    color: var(--color-accent-text);
    border-left-color: var(--color-accent);
}

.toast.is-success[b-m091gkxqjm] {
    background: linear-gradient(var(--color-success-soft), var(--color-success-soft)), var(--color-surface-1);
    color: var(--color-success-text);
    border-left-color: var(--color-success);
}

.toast.is-danger[b-m091gkxqjm] {
    background: linear-gradient(var(--color-danger-soft), var(--color-danger-soft)), var(--color-surface-1);
    color: var(--color-danger-text);
    border-left-color: var(--color-danger);
}

.toast.is-warning[b-m091gkxqjm] {
    background: linear-gradient(var(--color-warning-soft), var(--color-warning-soft)), var(--color-surface-1);
    color: var(--color-warning-text);
    border-left-color: var(--color-warning);
}

.toast.is-info[b-m091gkxqjm] {
    background: linear-gradient(var(--color-info-soft), var(--color-info-soft)), var(--color-surface-1);
    color: var(--color-info-text);
    border-left-color: var(--color-info);
}

.toast-link[b-m091gkxqjm] {
    font-weight: 600;
    color: inherit;
}
/* /UI/Notifications/ToastContainer.razor.rz.scp.css */
/* Above --z-index-modal (9999) so a toast raised from a dialog stays readable
   over it rather than behind it. */
.toast-container[b-hwb90p9cim] {
    z-index: 11000;
}
/* /UI/Processes/BuiltInProcessStepList.razor.rz.scp.css */
[b-u8n3juiylq] .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.step-list[b-u8n3juiylq] {
    display: flex;
    flex-direction: column;
}
/* /UI/Processes/BuiltInProcessStepRow.razor.rz.scp.css */
/* BuiltInProcessStepRow — facit processes.html `.proc-step-row`: the name and
   rationale take the free width and wrap; the flags stack in a right-aligned
   column so a long run summary stays inside the Steps card at laptop widths. */

.proc-step-main[b-9xjxl52ltu] {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}

.proc-step-flags[b-9xjxl52ltu] {
    flex: 0 1 auto;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-1);
    min-width: 0;
    max-width: 50%;
}

.proc-step-flags[b-9xjxl52ltu]  .badge {
    max-width: 100%;
    white-space: normal;
    text-align: right;
}
/* /UI/Processes/BuiltInStepAgentPromptGroup.razor.rz.scp.css */
.prompt-step-heading[b-1429dv55o9] {
    margin: var(--space-4) 0 var(--space-2);
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    color: var(--color-text-muted);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.prompt-step-heading:first-child[b-1429dv55o9] {
    margin-top: 0;
}

.prompt-fields[b-1429dv55o9] {
    margin-top: var(--space-4);
}
/* /UI/Processes/BuiltInStepEditorPanel.razor.rz.scp.css */
[b-vzzc8plr16] .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.field-grid[b-vzzc8plr16] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 var(--space-4);
}

[b-vzzc8plr16] .agent-prompt-group + .agent-prompt-group {
    margin-top: var(--space-4);
}

@media (max-width: 900px) {
    .field-grid[b-vzzc8plr16] {
        grid-template-columns: 1fr;
    }
}
/* /UI/Processes/ProcessBindingsEditor.razor.rz.scp.css */
/* Denser editor variant of .repo-list / .repo-row (facit :580-584). */

.repo-list[b-4ziysu909y] {
    border: 1px solid var(--color-border, var(--border-color));
    border-radius: var(--radius-md, 0.5rem);
    overflow: hidden;
}

.repo-row[b-4ziysu909y] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    padding: var(--space-2, 0.5rem) var(--space-3, 0.75rem);
    border-bottom: 1px solid var(--color-divider, var(--color-border, var(--border-color)));
    font-size: var(--fs-sm, 0.875rem);
}

.repo-row:last-child[b-4ziysu909y] {
    border-bottom: 0;
}

.repo-name[b-4ziysu909y] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.875rem;
    flex: 1;
    min-width: 0;
}

.step-grip[b-4ziysu909y] {
    color: var(--color-text-faint, var(--color-text-muted));
    font-size: var(--fs-sm, 0.875rem);
    letter-spacing: -2px;
    user-select: none;
}

.repo-ctl[b-4ziysu909y] {
    display: flex;
    gap: 2px;
    margin-left: auto;
}

.binding-add-row[b-4ziysu909y] {
    display: flex;
    gap: var(--space-2, 0.5rem);
    flex-wrap: wrap;
    align-items: flex-end;
}

/* FormSelectField always wraps with mb-3 + a visible label; densify for the facit add row. */
.binding-add-row[b-4ziysu909y]  > .mb-3 {
    margin-bottom: 0;
    flex: 1 1 auto;
    max-width: 260px;
    min-width: 0;
}

.binding-add-row[b-4ziysu909y]  .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.form-hint[b-4ziysu909y] {
    font-size: var(--fs-xs, 0.75rem);
    color: var(--color-text-muted);
}
/* /UI/Processes/ProcessCreateDialog.razor.rz.scp.css */
/* Narrow nav-position field — facit shim (process-authoring.html max-width:120px). */
.nav-position-field[b-c5cnyjd8wj] {
    max-width: 120px;
}
/* /UI/Processes/ProcessHaltedPanel.razor.rz.scp.css */
.process-halted-panel__facts[b-35hrg3i352] {
    width: 100%;
    margin-bottom: var(--space-4, 1rem);
    border-collapse: collapse;
}

.process-halted-panel__facts td[b-35hrg3i352] {
    padding: 0.4rem 0.6rem;
    vertical-align: top;
    border-bottom: 1px solid var(--border-subtle, #e2e8f0);
}

.process-halted-panel__facts td.name[b-35hrg3i352] {
    width: 9rem;
    font-weight: 600;
    color: var(--text-muted, #64748b);
}

.process-halted-panel .mono[b-35hrg3i352] {
    font-family: var(--font-mono, ui-monospace, monospace);
}

.process-halted-panel .faint[b-35hrg3i352] {
    color: var(--text-muted, #64748b);
}

.process-halted-panel .card-footer[b-35hrg3i352] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
/* /UI/Processes/ProcessOutcomeBlock.razor.rz.scp.css */
.process-outcome-block[b-q0w1jg5pz8] {
    margin-top: var(--space-4, 1rem);
}

.process-outcome-block__caption[b-q0w1jg5pz8] {
    margin-top: var(--space-2, 0.5rem);
}
/* /UI/Processes/ProcessOutcomesEditor.razor.rz.scp.css */
.outcomes-editor[b-79du54vopb] {
    margin-top: var(--space-4);
}

.outcomes-heading[b-79du54vopb] {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    margin: 0 0 var(--space-2);
}

.outcome-row[b-79du54vopb] {
    display: flex;
    align-items: flex-end;
    gap: var(--space-2);
    margin-bottom: var(--space-2);
}

.outcome-row[b-79du54vopb]  .mb-3 {
    margin-bottom: 0;
    flex: 1;
    min-width: 0;
}

.outcome-arrow[b-79du54vopb] {
    color: var(--color-text-muted);
    padding-bottom: 0.65rem;
    flex-shrink: 0;
}

.outcomes-actions[b-79du54vopb] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
    margin-top: var(--space-2);
}

.outcomes-hint[b-79du54vopb] {
    font-size: var(--fs-xs);
}
/* /UI/Processes/ProcessPicker.razor.rz.scp.css */
.choice-grid[b-8nidfew0h5] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4, 1rem);
}

@media (max-width: 1080px) {
    .choice-grid[b-8nidfew0h5] {
        grid-template-columns: 1fr;
    }
}

.choice-card[b-8nidfew0h5] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2, 0.5rem);
    border: 2px solid var(--color-border, var(--border-color));
    border-radius: var(--radius-md, 0.5rem);
    padding: var(--space-4, 1rem);
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.choice-card:hover[b-8nidfew0h5] {
    border-color: var(--color-accent);
}

.choice-card.on[b-8nidfew0h5] {
    border-color: var(--color-accent);
    background: var(--color-accent-soft, color-mix(in srgb, var(--color-accent) 12%, transparent));
}

.choice-hd[b-8nidfew0h5] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    flex-wrap: wrap;
}

.choice-hd h4[b-8nidfew0h5] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.choice-desc[b-8nidfew0h5] {
    font-size: 0.875rem;
    color: var(--color-text-secondary, var(--text-color-muted));
    line-height: 1.4;
}

.choice-steps[b-8nidfew0h5] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.75rem;
    color: var(--color-text-faint, var(--text-color-muted));
    margin-top: auto;
}

.radio[b-8nidfew0h5] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--color-border, var(--border-color));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.choice-card.on .radio[b-8nidfew0h5] {
    border-color: var(--color-accent);
}

.choice-card.on .radio[b-8nidfew0h5]::after {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-accent);
}
/* /UI/Processes/ProcessRepositoryList.razor.rz.scp.css */
.repo-list[b-wcum02py8k] {
    border: 1px solid var(--color-border, var(--border-color));
    border-radius: var(--radius-md, 0.5rem);
    overflow: hidden;
}

.repo-row[b-wcum02py8k] {
    display: flex;
    align-items: center;
    gap: var(--space-3, 0.75rem);
    padding: var(--space-3, 0.75rem) var(--space-4, 1rem);
    border-bottom: 1px solid var(--color-border, var(--border-color));
}

.repo-row:last-child[b-wcum02py8k] {
    border-bottom: 0;
}

.repo-name[b-wcum02py8k] {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.875rem;
}
/* /UI/Processes/ProcessStepBacklinkRow.razor.rz.scp.css */
.prompt-link-row[b-92n4q2f60q] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.prompt-link-grow[b-92n4q2f60q] {
    flex: 1 1 auto;
    min-width: 0;
}

.prompt-link-anchor[b-92n4q2f60q] {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: var(--text-sm);
    color: var(--accent);
    text-decoration: none;
}

.prompt-link-anchor:hover[b-92n4q2f60q] {
    text-decoration: underline;
}

.mono[b-92n4q2f60q] {
    font-family: var(--font-mono);
}

.prompt-actions[b-92n4q2f60q] {
    margin-left: auto;
}
/* /UI/Processes/ProcessStepEditorPanel.razor.rz.scp.css */
[b-mvqa7rq9we] .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.field-grid[b-mvqa7rq9we] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 var(--space-4);
}

.field-grid-3[b-mvqa7rq9we] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0 var(--space-4);
}

.expected-output-field[b-mvqa7rq9we] {
    max-width: 260px;
}

.prompt-fields[b-mvqa7rq9we] {
    margin-top: var(--space-4);
}

@media (max-width: 900px) {
    .field-grid[b-mvqa7rq9we],
    .field-grid-3[b-mvqa7rq9we] {
        grid-template-columns: 1fr;
    }

    .expected-output-field[b-mvqa7rq9we] {
        max-width: none;
    }
}
/* /UI/Processes/ProcessStepEditorRow.razor.rz.scp.css */
.step-row[b-zd3qgta6ow] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border-bottom: 1px solid var(--color-divider);
    cursor: pointer;
}

.step-row:last-of-type[b-zd3qgta6ow] {
    border-bottom: 0;
}

.step-row.selected[b-zd3qgta6ow] {
    background: var(--color-surface-3);
    border-radius: var(--radius-sm);
}

.step-grip[b-zd3qgta6ow] {
    color: var(--color-text-faint);
    cursor: grab;
    font-size: var(--fs-sm);
    letter-spacing: -2px;
    user-select: none;
}

.step-ord[b-zd3qgta6ow] {
    color: var(--color-text-muted);
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    width: 16px;
    text-align: right;
    flex-shrink: 0;
}

.step-main[b-zd3qgta6ow] {
    flex: 1;
    min-width: 0;
}

.step-name[b-zd3qgta6ow] {
    font-weight: var(--fw-medium);
    font-size: var(--fs-sm);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.step-key[b-zd3qgta6ow] {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

.step-meta[b-zd3qgta6ow] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-text-muted);
}

.step-ctl[b-zd3qgta6ow] {
    display: flex;
    gap: 2px;
    flex-shrink: 0;
}

.step-ctl[b-zd3qgta6ow]  .btn-prf {
    height: 24px;
    width: 24px;
    padding: 0;
    justify-content: center;
    font-size: var(--fs-xs);
}
/* /UI/Processes/ProcessStepHistory.razor.rz.scp.css */
.process-step-history__list[b-e3r8iwmegy] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3, 0.75rem);
}

.process-step-history__row[b-e3r8iwmegy] {
    display: grid;
    grid-template-columns: 2rem 1fr auto;
    gap: 0.75rem;
    align-items: start;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-subtle, #e2e8f0);
}

.process-step-history__row:last-child[b-e3r8iwmegy] {
    border-bottom: 0;
    padding-bottom: 0;
}

.process-step-history__ord[b-e3r8iwmegy] {
    font-family: var(--font-mono, ui-monospace, monospace);
    color: var(--text-muted, #64748b);
    padding-top: 0.15rem;
}

.process-step-history__name[b-e3r8iwmegy] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.process-step-history__axes[b-e3r8iwmegy] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.25rem;
}

.process-step-history__out[b-e3r8iwmegy] {
    font-size: 0.875rem;
    color: var(--text-muted, #64748b);
}

.process-step-history__out .taken[b-e3r8iwmegy] {
    color: var(--text-default, #0f172a);
    font-weight: 500;
}

.process-step-history__flags[b-e3r8iwmegy] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    align-items: flex-end;
}
/* /UI/Processes/ProcessStepListEditor.razor.rz.scp.css */
[b-6v26tb7a97] .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.step-list[b-6v26tb7a97] {
    display: flex;
    flex-direction: column;
}

.add-step[b-6v26tb7a97] {
    margin: var(--space-3);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
}

.cap-message[b-6v26tb7a97] {
    font-size: var(--fs-xs);
}
/* /UI/Processes/ProcessStepRail.razor.rz.scp.css */
.process-step-rail[b-y5u4pp5uy7] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3, 0.75rem);
    margin-bottom: var(--space-5, 1.25rem);
}

.process-step-rail__item[b-y5u4pp5uy7] {
    min-width: 9rem;
    max-width: 14rem;
    padding: var(--space-3, 0.75rem);
    border: 1px solid var(--color-border, #e2e8f0);
    border-radius: var(--radius-md, 0.5rem);
    background: var(--color-surface-2, #f7f8fa);
    color: var(--color-text, #16181d);
    opacity: 0.85;
}

.process-step-rail__item.is-current[b-y5u4pp5uy7] {
    opacity: 1;
    border-color: var(--color-accent, #3b82f6);
    box-shadow: 0 0 0 1px var(--color-accent, #3b82f6);
}

.process-step-rail__item.is-paused[b-y5u4pp5uy7] {
    opacity: 1;
    border-color: var(--color-warning, #d97706);
    box-shadow: 0 0 0 1px var(--color-warning, #d97706);
    background: color-mix(in srgb, var(--color-warning, #d97706) 8%, transparent);
}

.process-step-rail__item.is-halted[b-y5u4pp5uy7] {
    opacity: 1;
    border-color: var(--color-danger, #dc2626);
    background: color-mix(in srgb, var(--color-danger, #dc2626) 8%, transparent);
}

.process-step-rail__item.is-done[b-y5u4pp5uy7] {
    opacity: 1;
    border-color: var(--color-success, #16a34a);
}

/* Deliberate, not broken: a dashed neutral border reads as "stepped over" beside the solid
   accent/warning/danger/success borders, and never as an error. Every colour here is a theme
   token from tokens/_color.css, so the cards follow light and dark alike. */
.process-step-rail__item.is-skipped[b-y5u4pp5uy7] {
    opacity: 1;
    border-style: dashed;
    border-color: var(--color-text-muted, #64748b);
    background: color-mix(in srgb, var(--color-text-muted, #64748b) 6%, transparent);
}

.process-step-rail__top[b-y5u4pp5uy7] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
}

.process-step-rail__ord[b-y5u4pp5uy7] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.75rem;
    color: var(--color-text-muted, #64748b);
}

.process-step-rail__name[b-y5u4pp5uy7] {
    font-weight: 600;
    font-size: 0.875rem;
}

.process-step-rail__note[b-y5u4pp5uy7] {
    font-size: 0.75rem;
    color: var(--color-text-muted, #64748b);
}

/* Compact — facit `.rail` / `.rail-step` (ticket page simplification, ticket-detail.html): one row
   of thin status bars with the label under each, not cards. Scrolls sideways only when the main
   column is narrower than the steps' 84px minimum. */
.process-step-rail--compact[b-y5u4pp5uy7] {
    /* Containing block for the visually-hidden step notes: without it their absolute boxes
       escape this scroller and widen the whole page at narrow widths. */
    position: relative;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 2px;
    margin-bottom: var(--space-3, 0.75rem);
}

.process-step-rail--compact .process-step-rail__item[b-y5u4pp5uy7],
.process-step-rail--compact .process-step-rail__item.is-current[b-y5u4pp5uy7],
.process-step-rail--compact .process-step-rail__item.is-paused[b-y5u4pp5uy7],
.process-step-rail--compact .process-step-rail__item.is-halted[b-y5u4pp5uy7],
.process-step-rail--compact .process-step-rail__item.is-done[b-y5u4pp5uy7],
.process-step-rail--compact .process-step-rail__item.is-skipped[b-y5u4pp5uy7] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1 0 84px;
    min-width: 84px;
    max-width: none;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    font-size: var(--fs-micro, 10.5px);
    color: var(--color-text-muted, #6b7280);
}

.process-step-rail--compact .process-step-rail__item[b-y5u4pp5uy7]::before {
    content: "";
    height: 4px;
    border-radius: var(--radius-pill, 999px);
    background: var(--color-surface-3, #eef0f3);
}

.process-step-rail--compact .process-step-rail__item.is-done[b-y5u4pp5uy7]::before {
    background: var(--color-success, #16a34a);
}

.process-step-rail--compact .process-step-rail__item.is-current[b-y5u4pp5uy7]::before,
.process-step-rail--compact .process-step-rail__item.is-paused[b-y5u4pp5uy7]::before {
    background: var(--color-warning, #d97706);
}

.process-step-rail--compact .process-step-rail__item.is-halted[b-y5u4pp5uy7]::before {
    background: var(--color-danger, #dc2626);
}

/* Stepped over: the bar is outlined rather than filled, as the full rail's dashed card is. */
.process-step-rail--compact .process-step-rail__item.is-skipped[b-y5u4pp5uy7]::before {
    background: transparent;
    border: 1px dashed var(--color-text-muted, #6b7280);
}

.process-step-rail--compact .process-step-rail__item.is-current[b-y5u4pp5uy7],
.process-step-rail--compact .process-step-rail__item.is-paused[b-y5u4pp5uy7],
.process-step-rail--compact .process-step-rail__item.is-halted[b-y5u4pp5uy7] {
    color: var(--color-text, #16181d);
    font-weight: var(--fw-medium, 500);
}

.process-step-rail--compact .process-step-rail__top[b-y5u4pp5uy7] {
    gap: 0.25rem;
    margin-bottom: 0;
}

.process-step-rail--compact .process-step-rail__ord[b-y5u4pp5uy7],
.process-step-rail--compact .process-step-rail__name[b-y5u4pp5uy7] {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
}

.process-step-rail--compact .process-step-rail__item .btn[b-y5u4pp5uy7] {
    font-size: inherit;
}

/* Labels take a fixed two-line area (full name in the title attribute) so the open link sits on
   the same line in every column whatever the label length. */
.process-step-rail--compact .process-step-rail__top[b-y5u4pp5uy7] {
    align-items: flex-start;
}

.process-step-rail--compact .process-step-rail__name[b-y5u4pp5uy7] {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    min-height: 2.6em;
    line-height: 1.3;
}

.process-step-rail--compact .process-step-rail__open[b-y5u4pp5uy7] {
    margin-top: auto;
    align-self: flex-start;
}
/* /UI/Processes/ProcessValidationProblems.razor.rz.scp.css */
[b-h8cy3ds5ds] .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.table-scroll[b-h8cy3ds5ds] {
    overflow-x: auto;
    width: 100%;
}

.table-scroll[b-h8cy3ds5ds]  .mono {
    font-family: var(--font-mono);
    font-size: var(--fs-xs);
    white-space: nowrap;
}
/* /UI/Processes/ProcessVersionSaveBar.razor.rz.scp.css */
.save-bar[b-s0g6van8bf] {
    position: sticky;
    bottom: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    flex-wrap: wrap;
    padding: var(--space-3) var(--space-4);
    margin-top: var(--space-4);
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
}

.save-bar-message[b-s0g6van8bf] {
    font-size: var(--fs-sm);
    color: var(--color-text);
    flex: 1;
    min-width: 12rem;
}

.save-bar-actions[b-s0g6van8bf] {
    display: flex;
    gap: var(--space-2);
    flex-shrink: 0;
}
/* /UI/Processes/StepPromptLinks.razor.rz.scp.css */
.prompt-link-row[b-ot12pgk60e] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) 0;
}

.prompt-link-row + .prompt-link-row[b-ot12pgk60e] {
    border-top: 1px solid var(--border-subtle);
}

.prompt-link-grow[b-ot12pgk60e] {
    flex: 1 1 auto;
    min-width: 0;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.prompt-link-anchor[b-ot12pgk60e],
.prompt-link-text[b-ot12pgk60e] {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: var(--text-sm);
}

.prompt-link-anchor[b-ot12pgk60e] {
    color: var(--accent);
    text-decoration: none;
}

.prompt-link-anchor:hover[b-ot12pgk60e] {
    text-decoration: underline;
}

.prompt-link-text[b-ot12pgk60e] {
    color: var(--text-muted);
}

.form-hint[b-ot12pgk60e] {
    margin-top: var(--space-2);
    color: var(--text-muted);
    font-size: var(--text-sm);
}
/* /UI/Processes/StepRunByProjectTable.razor.rz.scp.css */
.skip-panel[b-b6q9wftnuc] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-4);
    background: var(--color-surface-2);
    margin-bottom: var(--space-4);
}

.skip-panel h4[b-b6q9wftnuc] {
    margin: 0 0 var(--space-2);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
}

.skip-effect[b-b6q9wftnuc] {
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    margin-top: var(--space-2);
}
/* /UI/Projects/AreaListRow.razor.rz.scp.css */
/* Areas card row (Epic 49): the custom-field list's row grid from the facit. */
.field-row[b-06fz6vp8xt] {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) 110px 110px auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border-top: 1px solid var(--color-border-soft);
    font-size: var(--fs-sm);
}

.field-row:first-child[b-06fz6vp8xt] {
    border-top: 0;
}

.field-row.is-archived[b-06fz6vp8xt] {
    color: var(--color-text-muted);
}

.grip[b-06fz6vp8xt] {
    color: var(--color-text-faint);
    font-size: var(--fs-xs);
    letter-spacing: -2px;
}

.fname[b-06fz6vp8xt] {
    min-width: 0;
    color: var(--color-text);
    font-weight: var(--fw-medium);
}

.inline-select[b-06fz6vp8xt]  .form-control {
    height: var(--control-h-sm);
    font-size: var(--fs-sm);
}

.count[b-06fz6vp8xt] {
    font-size: var(--fs-xs);
}

.count.is-muted[b-06fz6vp8xt] {
    color: var(--color-text-muted);
}

.acts[b-06fz6vp8xt] {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    justify-content: flex-end;
}

@media (max-width: 575.98px) {
    .field-row[b-06fz6vp8xt] {
        grid-template-columns: 18px minmax(0, 1fr) auto;
    }

    .c-state:empty[b-06fz6vp8xt] {
        display: none;
    }

    .c-state[b-06fz6vp8xt],
    .acts[b-06fz6vp8xt] {
        grid-column: 2 / -1;
        justify-content: flex-start;
    }
}
/* /UI/Tickets/AutoReleaseNotice.razor.rz.scp.css */
.handover-meta[b-9zru93f3pe] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.6875rem;
    color: var(--bs-secondary-color, #6c757d);
    margin-top: 0.5rem;
    overflow-wrap: anywhere;
    word-break: break-all;
}

.mono[b-9zru93f3pe] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
}
/* /UI/Tickets/BaseCommitRow.razor.rz.scp.css */
.base-row[b-mottc3cqjc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    min-width: 0;
}

.base-row + .base-row[b-mottc3cqjc] {
    margin-top: 0.25rem;
}

.base-sha[b-mottc3cqjc],
.mono[b-mottc3cqjc] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
    word-break: break-all;
}

.base-row-note[b-mottc3cqjc] {
    flex: 1 0 100%;
    font-size: 0.8125rem;
    color: var(--bs-secondary-color, #6c757d);
}
/* /UI/Tickets/BaseMovedNotice.razor.rz.scp.css */
.base-row[b-4fatnobb2w] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    min-width: 0;
}

.base-sha[b-4fatnobb2w],
.mono[b-4fatnobb2w] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
    word-break: break-all;
}

.base-behind[b-4fatnobb2w] {
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.875rem;
}

.cycle-arrow[b-4fatnobb2w] {
    opacity: 0.7;
}
/* /UI/Tickets/CyclePath.razor.rz.scp.css */
.cycle-path[b-w5r2jjcwbx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    min-width: 0;
}

.cycle-node[b-w5r2jjcwbx] {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
    font-weight: 600;
    text-decoration: none;
}

.cycle-node:hover[b-w5r2jjcwbx] {
    text-decoration: underline;
}

.cycle-arrow[b-w5r2jjcwbx] {
    color: var(--bs-secondary-color, #6c757d);
    flex: 0 0 auto;
}
/* /UI/Tickets/DependencyRow.razor.rz.scp.css */
.dep-row[b-ok9l0nb2ns] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--bs-border-color, rgba(0, 0, 0, 0.08));
    min-width: 0;
}

.dep-row:last-child[b-ok9l0nb2ns] {
    border-bottom: 0;
}

.dep-main[b-ok9l0nb2ns] {
    flex: 1 1 12rem;
    min-width: 0;
}

.dep-head[b-ok9l0nb2ns] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    min-width: 0;
}

.dep-key[b-ok9l0nb2ns] {
    font-weight: 600;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-decoration: none;
}

.dep-key:hover[b-ok9l0nb2ns] {
    text-decoration: underline;
}

.dep-title[b-ok9l0nb2ns] {
    margin-top: 0.25rem;
    color: var(--bs-secondary-color, #6c757d);
    min-width: 0;
    overflow-wrap: anywhere;
}

.dep-gate[b-ok9l0nb2ns] {
    margin-top: 0.35rem;
    font-size: 0.875rem;
    color: var(--bs-secondary-color, #6c757d);
    min-width: 0;
    overflow-wrap: anywhere;
}

.dep-gate-phase[b-ok9l0nb2ns] {
    font-weight: 600;
    color: var(--bs-body-color, inherit);
}

.dep-actions[b-ok9l0nb2ns] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    flex: 0 1 auto;
    min-width: 0;
}

.dep-remove[b-ok9l0nb2ns] {
    line-height: 1;
}

@media (max-width: 560px) {
    .dep-row[b-ok9l0nb2ns] {
        flex-direction: column;
    }

    .dep-actions[b-ok9l0nb2ns] {
        width: 100%;
    }
}
/* /UI/Tickets/DevelopmentSummary.razor.rz.scp.css */
.dev-row[b-dbtq0p3qu3] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 5px 0;
    font-size: var(--fs-sm);
    min-width: 0;
}

.dev-row[b-dbtq0p3qu3]  .dev-icon,
.dev-empty[b-dbtq0p3qu3]  .dev-icon {
    font-size: 14px;
    color: var(--color-text-muted);
    flex: none;
}

.dev-mono[b-dbtq0p3qu3] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.dev-sub[b-dbtq0p3qu3] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    padding-left: 22px;
}

.dev-empty[b-dbtq0p3qu3] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}
/* /UI/Tickets/EpicSliceFold.razor.rz.scp.css */
/* EpicSliceFold — facit .epic-children / .epic-toggle / .child-row (board.html:857-863). */

.epic-children[b-6kbefbiutz] {
    margin-top: var(--space-2);
    border-top: 1px solid var(--color-border-soft);
    padding-top: var(--space-2);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.epic-toggle-row[b-6kbefbiutz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.epic-toggle[b-6kbefbiutz] {
    font: inherit;
    font-size: var(--fs-xs);
    background: transparent;
    border: 0;
    padding: 0;
    color: var(--color-text-secondary);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}

.epic-toggle i[b-6kbefbiutz] {
    font-size: 10px;
    transition: transform var(--transition-fast);
}

.epic-toggle.is-open i[b-6kbefbiutz] {
    transform: rotate(90deg);
}

.child-row[b-6kbefbiutz] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-secondary);
    min-width: 0;
}

.child-row .ticket-key[b-6kbefbiutz] {
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    color: var(--color-accent-text);
    flex: none;
}

.child-row .grow[b-6kbefbiutz] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /UI/Tickets/HandoverEntry.razor.rz.scp.css */
.handover-item[b-zjp99cstdb] {
    display: flex;
    gap: 0.75rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    min-width: 0;
}

.handover-item:last-child[b-zjp99cstdb] {
    border-bottom: none;
}

.handover-time[b-zjp99cstdb] {
    flex: 0 0 auto;
}

.handover-body[b-zjp99cstdb] {
    min-width: 0;
    flex: 1 1 auto;
}

.handover-head[b-zjp99cstdb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.handover-meta[b-zjp99cstdb] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.6875rem;
    color: var(--bs-secondary-color, #6c757d);
    margin-top: 0.25rem;
    overflow-wrap: anywhere;
    word-break: break-all;
}

.handover-trigger[b-zjp99cstdb] {
    font-size: 0.8125rem;
}

.mono[b-zjp99cstdb] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
}
/* /UI/Tickets/HandoverHistoryList.razor.rz.scp.css */
.handover-list[b-p68ucl4mtx] {
    min-width: 0;
    overflow-x: hidden;
}
/* /UI/Tickets/HeldWorkItemCallout.razor.rz.scp.css */
/* Containment only — Bootstrap utilities handle layout (C3). */
:host[b-ivhiewzvk3], .held-callout-root[b-ivhiewzvk3] {
    min-width: 0;
}
/* /UI/Tickets/PinChip.razor.rz.scp.css */
.pin-chip[b-qgxh9g7ngc] {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}
/* /UI/Tickets/ProvenancePill.razor.rz.scp.css */
/* Epic 31 / facit vocabulary — same class names as AgentNode provenance pills. */
.provenance[b-8gvkdot2ta] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    padding: 1px 7px;
    border-radius: var(--radius-pill);
    border: 1px solid transparent;
}

.provenance.adopted[b-8gvkdot2ta] {
    background: var(--color-success-soft);
    border-color: var(--color-success-line);
    color: var(--color-success-text);
}

.provenance.resumed[b-8gvkdot2ta] {
    background: var(--color-info-soft);
    border-color: var(--color-info-line);
    color: var(--color-info-text);
}

.provenance.lost[b-8gvkdot2ta] {
    background: var(--color-danger-soft);
    border-color: var(--color-danger-line);
    color: var(--color-danger-text);
}
/* /UI/Tickets/ReasonQuote.razor.rz.scp.css */
/* A person's reason, quoted under a handover entry or a "Moved to another machine" timeline row. */
.handover-reason[b-h1pd2nzd4h] {
    font-size: 0.875rem;
    color: var(--bs-secondary-color, #6c757d);
    margin-top: 0.25rem;
    overflow-wrap: anywhere;
}

.handover-reason-quote[b-h1pd2nzd4h] {
    border-left: 2px solid var(--bs-border-color-translucent, #adb5bd);
    padding-left: 0.75rem;
    color: var(--bs-body-color, #212529);
}
/* /UI/Tickets/RejectedTicketCard.razor.rz.scp.css */
/* Epic 52 (facit ticket-safety.html ticket-rejected): replaces the decision card of a rejected ticket. */
.rejected-card[b-n54weppcjk] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-danger-line);
    border-radius: var(--radius-md);
    background: var(--color-danger-soft);
}

.rejected-card .grow[b-n54weppcjk] {
    flex: 1 1 260px;
    min-width: 0;
}

.rejected-card h2[b-n54weppcjk] {
    margin: 0;
    font-size: var(--fs-h3);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
}

.rejected-card p[b-n54weppcjk] {
    margin: 2px 0 0;
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.rejected-card .reason[b-n54weppcjk] {
    color: var(--color-text);
}

.rejected-card[b-n54weppcjk]  .lead {
    flex: none;
    font-size: 18px;
    color: var(--color-danger-text);
}
/* /UI/Tickets/ReleaseDisclosure.razor.rz.scp.css */
.release-disclosure[b-t2j5dvxkg2] {
    border: 1px solid var(--color-info-line, #9eeaf9);
    background: var(--color-info-soft, #cff4fc);
    border-radius: var(--radius-md, 0.5rem);
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    color: var(--color-info-text, #055160);
    min-width: 0;
    overflow-wrap: anywhere;
}

.release-disclosure ul[b-t2j5dvxkg2] {
    margin: 0.5rem 0 0;
    padding-left: 1rem;
}

.release-disclosure li[b-t2j5dvxkg2] {
    margin-bottom: 0.25rem;
}

.release-disclosure-fail[b-t2j5dvxkg2] {
    font-size: 0.8125rem;
}

.mono[b-t2j5dvxkg2] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
    overflow-wrap: anywhere;
}
/* /UI/Tickets/SandboxWorkerCallout.razor.rz.scp.css */
/* ticket-safety.html region ticket-upgrade-worker-callout: a text column beside the icon, the body in secondary text. */
.alert-text[b-75jp98dt9u] {
    min-width: 0;
}

.body[b-75jp98dt9u] {
    color: var(--color-text-secondary);
}

/* Repository and machine names in the body, as the facit draws them. */
.mono[b-75jp98dt9u] {
    font-family: var(--font-mono);
    overflow-wrap: anywhere;
}
/* /UI/Tickets/TicketExecutionSummary.razor.rz.scp.css */
.exec-grid[b-72wn35cdcf] {
    display: grid;
    gap: var(--space-3, 0.75rem);
    min-width: 0;
}

.exec-slot[b-72wn35cdcf] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1, 0.25rem);
}

.exec-slot-label[b-72wn35cdcf] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--bs-secondary-color, #6c757d);
}

.exec-slot-value[b-72wn35cdcf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.exec-slot-value > *[b-72wn35cdcf] {
    min-width: 0;
}

.exec-owner-name[b-72wn35cdcf] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.exec-slot-note[b-72wn35cdcf] {
    font-size: 0.8125rem;
    color: var(--bs-secondary-color, #6c757d);
}

.mono[b-72wn35cdcf] {
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
}

/* Epic 47 machine slot phrases: "Any machine", "Pinned by … to …", "Ran on …" */
.exec-any-machine[b-72wn35cdcf],
.exec-pin-sentence[b-72wn35cdcf] {
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.exec-pin-sentence .mono[b-72wn35cdcf] {
    color: var(--color-text);
    font-weight: var(--fw-semibold);
}

/* Facit base slot: Base commit (N .base-row) + Local branch */
.exec-base-details[b-72wn35cdcf] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3, 0.75rem);
    min-width: 0;
}

.exec-base-details-row[b-72wn35cdcf] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1, 0.25rem);
    min-width: 0;
}

.exec-base-details-term[b-72wn35cdcf] {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--bs-secondary-color, #6c757d);
}

.exec-base-details-detail[b-72wn35cdcf] {
    margin: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.exec-base-details-detail[data-testid="exec-local-branch"][b-72wn35cdcf] {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.5rem;
}

.wip-branch[b-72wn35cdcf] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--bs-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.8125rem;
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border: 1px solid var(--bs-border-color, #dee2e6);
    color: var(--bs-secondary-color, #6c757d);
    word-break: break-all;
}
/* /UI/Tickets/TicketTypeMarker.razor.rz.scp.css */
/* Facit .type (board.html:829-831). */
.type[b-amke9hn4ej] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: var(--space-2);
    font-size: var(--fs-micro);
    font-family: var(--font-mono);
    font-weight: var(--fw-regular);
    color: var(--color-text-muted);
    white-space: nowrap;
}

.type i[b-amke9hn4ej] {
    font-size: 11px;
}

.type.is-epic[b-amke9hn4ej] {
    color: var(--color-accent-text);
}
/* /UI/Workers/FleetQueueSharePanel.razor.rz.scp.css */
.fleet-queue-share[b-ixtj9qrsgm] {
    margin-top: var(--space-4);
    min-width: 0;
    max-width: 100%;
}

.fleet-queue-share h3[b-ixtj9qrsgm] {
    font-size: 1rem;
    font-weight: var(--fw-semibold, 600);
    line-height: 1.2;
}

.fleet-queue-share[b-ixtj9qrsgm]  .card-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.queue-next[b-ixtj9qrsgm] {
    border: 1px solid var(--color-accent-line);
    background: var(--color-accent-soft);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    min-width: 0;
}

.queue-next-head[b-ixtj9qrsgm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.queue-next-reason[b-ixtj9qrsgm] {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.queue-order[b-ixtj9qrsgm] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.queue-order-item[b-ixtj9qrsgm] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-2);
    min-width: 0;
}

.queue-rank[b-ixtj9qrsgm] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-surface-2);
    border: 1px solid var(--color-border);
    color: var(--color-text-muted);
    font-family: var(--font-mono);
    font-size: var(--fs-micro);
    display: inline-grid;
    place-items: center;
}

.queue-why[b-ixtj9qrsgm] {
    flex: 1 1 200px;
    min-width: 0;
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    overflow-wrap: anywhere;
}

.queue-user[b-ixtj9qrsgm] {
    border-top: 1px solid var(--color-divider);
    padding: var(--space-3) 0;
    min-width: 0;
}

.queue-user:first-of-type[b-ixtj9qrsgm] {
    border-top: none;
    padding-top: 0;
}

.queue-user:last-of-type[b-ixtj9qrsgm] {
    padding-bottom: 0;
}

.queue-user-head[b-ixtj9qrsgm] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.queue-user-name[b-ixtj9qrsgm] {
    color: var(--color-text);
    font-weight: var(--fw-medium);
}

.queue-items[b-ixtj9qrsgm] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    margin-top: var(--space-2);
    min-width: 0;
}

.queue-item[b-ixtj9qrsgm] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-2);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
    min-width: 0;
}

.queue-item-key[b-ixtj9qrsgm] {
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
}

.queue-item-next .queue-item-key[b-ixtj9qrsgm] {
    color: var(--color-accent-text);
}

.queue-item-title[b-ixtj9qrsgm] {
    flex: 1 1 160px;
    min-width: 0;
    color: var(--color-text-secondary);
    overflow-wrap: anywhere;
}

.queue-compare[b-ixtj9qrsgm] {
    border: 1px solid var(--color-border);
    background: var(--color-bg-sunken);
    border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
    font-size: var(--fs-sm);
    color: var(--color-text-secondary);
    overflow-wrap: anywhere;
}

.micro[b-ixtj9qrsgm] {
    font-size: var(--fs-micro);
}
/* /UI/Workers/HeldWorkItemRow.razor.rz.scp.css */
.held-row[b-chgvw3hohd] {
    min-width: 0;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--prf-border-subtle, rgba(255, 255, 255, 0.08));
}

.held-row:last-child[b-chgvw3hohd] {
    border-bottom: 0;
}

.held-row-main[b-chgvw3hohd] {
    min-width: 0;
}

.held-label[b-chgvw3hohd] {
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 0.75rem;
    color: var(--prf-warning, #e6b450);
}

.held-meta[b-chgvw3hohd] {
    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

.mono[b-chgvw3hohd] {
    font-family: var(--prf-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    overflow-wrap: anywhere;
    word-break: break-word;
}

.min-w-0[b-chgvw3hohd] {
    min-width: 0;
}
/* /UI/Workers/SandboxUpgradeNote.razor.rz.scp.css */
/* workers.html region fleet-upgrade-note (.sandbox-note), on the theme tokens; layout via d-flex flex-column gap-1 mt-2. */
.sandbox-note[b-hfc2jrdswz] {
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-warning-line);
    background: var(--color-warning-soft);
    border-radius: var(--radius-sm);
    font-size: var(--fs-xs);
    color: var(--color-warning-text);
    max-width: 420px;
}

.sandbox-note b[b-hfc2jrdswz] {
    font-weight: var(--fw-semibold);
}

.sandbox-note .body[b-hfc2jrdswz] {
    color: var(--color-text-secondary);
}

.mono[b-hfc2jrdswz] {
    font-family: var(--font-mono);
    overflow-wrap: anywhere;
}
/* /UI/Workers/WorkerFleetCard.razor.rz.scp.css */
.worker-fleet-card[b-v3xyozokzn] {
    min-width: 0;
}

.card-header-row[b-v3xyozokzn] {
    min-width: 0;
    width: 100%;
}

.machine-name[b-v3xyozokzn] {
    font-weight: 600;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.agent-pills[b-v3xyozokzn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    min-width: 0;
}

.section-label[b-v3xyozokzn] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--prf-text-muted, inherit);
    margin-bottom: 0.35rem;
}

.fleet-offline-alert[b-v3xyozokzn] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.mono[b-v3xyozokzn] {
    font-family: var(--prf-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    overflow-wrap: anywhere;
    word-break: break-word;
}

.min-w-0[b-v3xyozokzn] {
    min-width: 0;
}

@media (max-width: 560px) {
    :deep(.description-list)[b-v3xyozokzn] {
        grid-template-columns: 1fr;
    }
}
/* /UI/Workers/WorkerFleetTable.razor.rz.scp.css */
.machine-cell[b-tkfxl7oep9],
.running-cell[b-tkfxl7oep9] {
    min-width: 0;
}

.machine-name[b-tkfxl7oep9] {
    font-weight: 600;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.machine-meta[b-tkfxl7oep9] {
    font-size: 0.75rem;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.agent-pills[b-tkfxl7oep9] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    min-width: 0;
}

.held-state[b-tkfxl7oep9] {
    font-size: 0.8rem;
    color: var(--prf-text-muted, inherit);
    overflow-wrap: anywhere;
}

.mono[b-tkfxl7oep9] {
    font-family: var(--prf-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    overflow-wrap: anywhere;
    word-break: break-word;
}

.fleet-placeholder-row td[b-tkfxl7oep9] {
    min-width: 0;
}
/* /UI/Workers/WorkerLivenessBadge.razor.rz.scp.css */
.liveness[b-6tqiil2go4] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
    flex-wrap: wrap;
}

.liveness-dot[b-6tqiil2go4] {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    flex-shrink: 0;
    box-sizing: border-box;
}

.liveness-online .liveness-dot[b-6tqiil2go4] {
    background: var(--prf-success, #3dd68c);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--prf-success, #3dd68c) 55%, transparent);
    animation: liveness-pulse-b-6tqiil2go4 1.6s ease-out infinite;
}

.liveness-stale .liveness-dot[b-6tqiil2go4] {
    background: transparent;
    border: 2px solid var(--prf-warning, #e6b450);
}

.liveness-offline .liveness-dot[b-6tqiil2go4] {
    background: transparent;
    border: 2px dashed var(--prf-danger, #f07178);
}

.liveness-label[b-6tqiil2go4] {
    font-size: 0.75rem;
    text-transform: lowercase;
    letter-spacing: 0.02em;
}

.liveness-last-seen[b-6tqiil2go4] {
    font-size: 0.75rem;
    min-width: 0;
}

@keyframes liveness-pulse-b-6tqiil2go4 {
    0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--prf-success, #3dd68c) 55%, transparent);
    }
    70% {
        box-shadow: 0 0 0 0.35rem transparent;
    }
    100% {
        box-shadow: 0 0 0 0 transparent;
    }
}
/* /UI/Workers/WorkerTokenInventoryTable.razor.rz.scp.css */
/* Owner cell stacks display name over email. */
.worker-token-owner[b-gs75gvoxdw] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.worker-token-owner-name[b-gs75gvoxdw] {
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.worker-token-owner-email[b-gs75gvoxdw] {
    font-size: 0.8125rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Scope list may be long — wrap rather than stretch the table. */
.worker-token-scope[b-gs75gvoxdw] {
    display: inline-block;
    max-width: 16rem;
    white-space: normal;
    overflow-wrap: anywhere;
}

.worker-token-prefix[b-gs75gvoxdw] {
    font-size: 0.8125rem;
}

/* A grant row names its agent in the Token cell (a grant has rotating tokens, so no single prefix). */
.worker-token-agent[b-gs75gvoxdw] {
    color: var(--color-text);
    white-space: nowrap;
}
