/* /Components/Agent/AgentApprovalCard.razor.rz.scp.css */
/*
   Card-owned styles. These used to sit in AgentChatPanel.razor.css, where CSS isolation gave them
   that component's scope attribute and the selectors never matched anything this component renders.
*/
.agent-approval-card[b-y82qkzifnb] {
    border: 1px solid #2d3640;
    margin-bottom: 12px;
}

/*
   Tool arguments are JSON, which routinely has no whitespace to wrap on — so `pre-wrap` alone
   leaves one long unbreakable line that the panel clips, and only the first few parameters are ever
   visible. `anywhere` lets it break mid-token; the height cap keeps a large payload from burying
   the Approve and Reject buttons.
*/
.agent-approval-args[b-y82qkzifnb] {
    display: block;
    max-height: 12rem;
    overflow-y: auto;
    padding: 6px 8px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.04);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.75rem;
    line-height: 1.45;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.agent-approval-summary[b-y82qkzifnb] {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
/* /Components/Agent/AgentChatPanel.razor.rz.scp.css */
.agent-chat-panel[b-kx7jitjttp] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    font-size: 0.8125rem;
}

.agent-chat-panel[b-kx7jitjttp]  .mud-typography-subtitle1 {
    font-size: 0.875rem;
}

.agent-chat-panel[b-kx7jitjttp]  .mud-typography-body1 {
    font-size: 0.8125rem;
}

.agent-chat-panel[b-kx7jitjttp]  .mud-typography-body2 {
    font-size: 0.75rem;
}

.agent-chat-panel[b-kx7jitjttp]  .mud-typography-caption {
    font-size: 0.6875rem;
}

.agent-chat-header-icon[b-kx7jitjttp] {
    opacity: 0.85;
}

.agent-active-agent-menu[b-kx7jitjttp] {
    max-width: 180px;
}

.agent-active-agent-menu[b-kx7jitjttp]  .mud-button-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.agent-chat-header[b-kx7jitjttp] {
    flex: 0 0 auto;
    padding: 16px 16px 12px;
    border-bottom: 1px solid var(--mud-palette-divider);
}

.agent-session-history-panel[b-kx7jitjttp] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 12px 16px 16px;
}

.agent-session-history-empty[b-kx7jitjttp] {
    padding: 24px 8px;
    text-align: center;
}

.agent-session-history-list[b-kx7jitjttp] {
    padding-bottom: 8px;
}

.agent-session-history-list[b-kx7jitjttp]  .agent-session-history-item {
    padding: 12px 14px;
    border-radius: 8px;
    cursor: pointer;
    border: 1px solid #2d3640;
    background: #151a20;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.agent-session-history-list[b-kx7jitjttp]  .agent-session-history-item:hover {
    background: #1a2330;
    border-color: #3a4654;
}

.agent-session-history-list[b-kx7jitjttp]  .agent-session-history-item-active {
    background: #1a2330;
    border-color: #4a6fa5;
}

.agent-session-history-title[b-kx7jitjttp] {
    font-weight: 500;
    line-height: 1.35;
}

.agent-session-history-meta[b-kx7jitjttp] {
    margin-top: 4px;
}

.agent-chat-header-details[b-kx7jitjttp] {
    display: block;
}

.agent-chat-body[b-kx7jitjttp] {
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.agent-chat-scroll[b-kx7jitjttp] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px 16px;
    scroll-behavior: smooth;
}

.agent-chat-banner[b-kx7jitjttp] {
    margin-bottom: 12px;
}

.agent-chat-status[b-kx7jitjttp] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    min-height: 20px;
}

.agent-chat-status-spinner[b-kx7jitjttp] {
    flex: 0 0 auto;
}

.agent-chat-status-tool[b-kx7jitjttp] {
    min-width: 0;
    overflow: hidden;
}

.agent-chat-status-tool-name[b-kx7jitjttp] {
    font-family: monospace;
    font-size: 0.75rem;
    opacity: 0.95;
}

.agent-chat-status-tool-args[b-kx7jitjttp] {
    opacity: 0.65;
    font-size: 0.7rem;
    font-family: monospace;
}

.agent-chat-thread[b-kx7jitjttp] {
    padding-bottom: 8px;
}

.agent-chat-message[b-kx7jitjttp] {
    border-radius: 8px;
    margin-bottom: 4px;
}

.agent-chat-message-user[b-kx7jitjttp] {
    background: #edf3fb;
    border: 1px solid #d6e1ef;
}

.agent-chat-message-assistant[b-kx7jitjttp] {
    background: #ffffff;
    border: 1px solid #e5e0d8;
}

.agent-chat-composer[b-kx7jitjttp] {
    min-height: 0;
    max-height: min(45vh, 360px);
    padding: 12px 16px 16px;
    border-top: 1px solid var(--mud-palette-divider);
    background: var(--mud-palette-background);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.agent-chat-composer-box[b-kx7jitjttp] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: 0;
    padding: 10px 12px 8px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 12px;
    background: var(--mud-palette-surface);
    overflow: hidden;
}

.agent-chat-attachment-chip[b-kx7jitjttp] {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    max-width: 100%;
    padding: 2px 4px 2px 8px;
    border-radius: 8px;
    background: var(--mud-palette-background-grey);
    color: var(--mud-palette-text-secondary);
    font-size: 0.75rem;
}

.agent-chat-attachment-name[b-kx7jitjttp] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.agent-chat-attachment-clear[b-kx7jitjttp] {
    flex: 0 0 auto;
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    color: var(--mud-palette-text-secondary) !important;
}

.agent-chat-composer-field[b-kx7jitjttp] {
    flex: 0 1 auto;
    min-height: 0;
}

.agent-chat-composer[b-kx7jitjttp]  .agent-chat-composer-field.mud-input-control {
    margin-top: 0;
}

.agent-chat-composer[b-kx7jitjttp]  .agent-chat-composer-field .mud-input-control-input-container {
    margin: 0;
}

.agent-chat-composer[b-kx7jitjttp]  .agent-chat-composer-field .mud-input {
    margin: 0;
    padding: 0;
}

.agent-chat-composer[b-kx7jitjttp]  textarea.mud-input-slot {
    color: var(--mud-palette-text-primary);
    font-size: 0.8125rem;
    line-height: 1.4;
    max-height: 14rem;
    overflow-y: auto;
    resize: none;
    padding: 2px 0 4px !important;
}

.agent-chat-composer[b-kx7jitjttp]  textarea.mud-input-slot::placeholder {
    color: var(--mud-palette-text-secondary);
    opacity: 1;
}

.agent-chat-composer-toolbar[b-kx7jitjttp] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    flex: 0 0 auto;
}

.agent-chat-composer-toolbar[b-kx7jitjttp]  .mud-file-upload {
    display: inline-flex;
    margin: 0;
}

.agent-chat-attach-btn[b-kx7jitjttp] {
    color: #8a8f98 !important;
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
}

.agent-chat-attach-btn:hover:not(:disabled)[b-kx7jitjttp] {
    color: var(--mud-palette-text-primary) !important;
    background: transparent !important;
}

.agent-chat-send-btn[b-kx7jitjttp] {
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: #111111 !important;
    color: #ffffff !important;
}

.agent-chat-send-btn:hover:not(:disabled)[b-kx7jitjttp] {
    background: #000000 !important;
    color: #ffffff !important;
}

.agent-chat-send-btn:disabled[b-kx7jitjttp] {
    background: #d0d4da !important;
    color: #ffffff !important;
    opacity: 1;
}

.agent-chat-composer[b-kx7jitjttp]  .mud-button-root {
    box-shadow: none;
}

/* Scoped CSS: parent selector required — markdown renders in AgentMessagePart. */
.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body {
    font-size: 0.8125rem;
    line-height: 1.45;
}

.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body .mud-typography-h1,
.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body h1.mud-typography-h1 {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body .mud-typography-h2,
.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body h2.mud-typography-h2 {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.35;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body .mud-typography-h3,
.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body h3.mud-typography-h3 {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body .mud-typography-h4,
.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body h4.mud-typography-h4 {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body .mud-typography-h5,
.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body .mud-typography-h6,
.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body h5.mud-typography-h5,
.agent-chat-thread[b-kx7jitjttp]  .agent-markdown-body h6.mud-typography-h6 {
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

/*
   The pinned approval strip, between the scrolling log and the composer. The panel is a grid whose
   explicit rows are header / body / composer, so this lands in an implicit auto row — which is what
   we want: it takes only the height it needs and never steals it from the log.

   Capped in viewport units rather than percent: a percentage max-height resolves against an
   auto-sized grid row, which is indefinite, so it would be ignored and several gated tickets at once
   could push the composer off-screen.
*/
.agent-chat-approvals[b-kx7jitjttp] {
    min-height: 0;
    max-height: 40vh;
    overflow-y: auto;
    padding: 8px 16px 0;
    border-top: 1px solid #2d3640;
}

.agent-part-thinking[b-kx7jitjttp] {
    opacity: 0.85;
}
/* /Components/Agent/AgentMessagePart.razor.rz.scp.css */
.agent-markdown-body[b-w6qt5dhpui] {
    font-size: 0.875rem;
    line-height: 1.45;
}

.agent-markdown-body[b-w6qt5dhpui]  .mud-typography-h1,
.agent-markdown-body[b-w6qt5dhpui]  h1.mud-typography-h1 {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

.agent-markdown-body[b-w6qt5dhpui]  .mud-typography-h2,
.agent-markdown-body[b-w6qt5dhpui]  h2.mud-typography-h2 {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.35;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

.agent-markdown-body[b-w6qt5dhpui]  .mud-typography-h3,
.agent-markdown-body[b-w6qt5dhpui]  h3.mud-typography-h3 {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

.agent-markdown-body[b-w6qt5dhpui]  .mud-typography-h4,
.agent-markdown-body[b-w6qt5dhpui]  h4.mud-typography-h4 {
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}

.agent-markdown-body[b-w6qt5dhpui]  .mud-typography-h5,
.agent-markdown-body[b-w6qt5dhpui]  .mud-typography-h6,
.agent-markdown-body[b-w6qt5dhpui]  h5.mud-typography-h5,
.agent-markdown-body[b-w6qt5dhpui]  h6.mud-typography-h6 {
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0.55em 0 0.25em;
    letter-spacing: normal;
}
/* /Components/Auth/TwoFactorDialog.razor.rz.scp.css */
.two-factor-dialog[b-nj98ie8l70] {
    min-width: 320px;
}

.two-factor-qr[b-nj98ie8l70] {
    display: flex;
    justify-content: center;
}

/* The QR is rendered at twelve pixels a module, which is larger than the dialog needs. Scaling it
   down in CSS keeps every module a whole number of source pixels, so it stays sharp. */
.two-factor-qr img[b-nj98ie8l70] {
    width: 200px;
    height: 200px;
    image-rendering: pixelated;
    background: #ffffff;
    padding: 8px;
    border-radius: 4px;
}

.two-factor-recovery-codes[b-nj98ie8l70] {
    padding: 16px;
}

.two-factor-recovery-code[b-nj98ie8l70] {
    font-family: monospace;
    letter-spacing: 0.08em;
    min-width: 120px;
    text-align: center;
}
/* /Components/Development/AssigneeMenu.razor.rz.scp.css */
/* The classes sit on plain elements written in this file, so the scope attribute reaches them. A
   rule on a MudMenuItem would compile against nothing. */
.assignee-menu-activator[b-rvfr39kadn] {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.375rem;
    border: 1px solid transparent;
    border-radius: var(--mud-default-borderradius);
    cursor: pointer;
}

.assignee-menu-activator:hover[b-rvfr39kadn] {
    background: var(--mud-palette-action-default-hover);
    border-color: var(--mud-palette-lines-inputs);
}

.assignee-menu-caption[b-rvfr39kadn] {
    padding: 0.25rem 1rem;
    color: var(--mud-palette-text-secondary);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
/* /Components/Development/FeatureStatusMenu.razor.rz.scp.css */
/* The class sits on a plain div written in this file, so the scope attribute reaches it. A rule on
   the MudMenuItem itself would not compile against anything. */
.feature-status-option[b-xixjyi6xel] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

.feature-status-option-action[b-xixjyi6xel] {
    flex: 1 1 auto;
    white-space: nowrap;
}

.feature-status-option-arrow[b-xixjyi6xel] {
    color: var(--mud-palette-text-secondary);
}
/* /Components/Development/InlineEditRow.razor.rz.scp.css */
.inline-edit-row[b-7epxlrpqoc] {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr);
    align-items: center;
    column-gap: 0.5rem;
    min-height: 2.25rem;
}

.inline-edit-label[b-7epxlrpqoc] {
    color: var(--mud-palette-text-secondary);
    font-size: 0.8125rem;
}

.inline-edit-body[b-7epxlrpqoc] {
    min-width: 0;
}

/* The font-size is set here, not on the value fragment, so a plain span written by the parent page
   inherits it. A MudText would print its own size instead and break the column. */
.inline-edit-value[b-7epxlrpqoc] {
    font-size: 0.8125rem;
    padding: 0.25rem 0.5rem;
    border: 1px solid transparent;
    border-radius: var(--mud-default-borderradius);
    overflow-wrap: anywhere;
}

.inline-edit-value-clickable[b-7epxlrpqoc] {
    cursor: pointer;
}

.inline-edit-value-clickable:hover[b-7epxlrpqoc],
.inline-edit-value-clickable:focus-visible[b-7epxlrpqoc] {
    background: var(--mud-palette-action-default-hover);
    border-color: var(--mud-palette-lines-inputs);
    outline: none;
}
/* /Components/Development/MarkdownSpecPanel.razor.rz.scp.css */
/* Spec markdown uses browser-default heading sizes; scale to portal typography. */
.markdown-spec-content[b-kiavwhlei8] {
    font-size: 0.875rem;
    line-height: 1.45;
}

.markdown-spec-tab-panel[b-kiavwhlei8] {
    padding-top: 0.75rem;
}

.markdown-spec-preview[b-kiavwhlei8] {
    min-height: 8rem;
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body {
    font-size: 0.875rem;
    line-height: 1.45;
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body p,
.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body li,
.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body td,
.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body th {
    font-size: 0.875rem;
}

.markdown-spec-editor[b-kiavwhlei8]  textarea,
.markdown-spec-editor[b-kiavwhlei8]  .mud-input-slot,
.markdown-spec-editor[b-kiavwhlei8]  .mud-input-root {
    font-family: var(--mud-typography-monospace-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace) !important;
    font-size: 0.8125rem;
    line-height: 1.5;
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body h1 {
    font-size: var(--mud-typography-h4-size);
    font-family: var(--mud-typography-h4-family);
    font-weight: var(--mud-typography-h4-weight);
    line-height: var(--mud-typography-h4-lineheight);
    letter-spacing: var(--mud-typography-h4-letterspacing);
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body h2 {
    font-size: var(--mud-typography-h5-size);
    font-family: var(--mud-typography-h5-family);
    font-weight: var(--mud-typography-h5-weight);
    line-height: var(--mud-typography-h5-lineheight);
    letter-spacing: var(--mud-typography-h5-letterspacing);
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body h3 {
    font-size: var(--mud-typography-h6-size);
    font-family: var(--mud-typography-h6-family);
    font-weight: var(--mud-typography-h6-weight);
    line-height: var(--mud-typography-h6-lineheight);
    letter-spacing: var(--mud-typography-h6-letterspacing);
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body h4 {
    font-size: var(--mud-typography-subtitle1-size);
    font-family: var(--mud-typography-subtitle1-family);
    font-weight: var(--mud-typography-subtitle1-weight);
    line-height: var(--mud-typography-subtitle1-lineheight);
    letter-spacing: var(--mud-typography-subtitle1-letterspacing);
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body h5 {
    font-size: var(--mud-typography-subtitle2-size);
    font-family: var(--mud-typography-subtitle2-family);
    font-weight: var(--mud-typography-subtitle2-weight);
    line-height: var(--mud-typography-subtitle2-lineheight);
    letter-spacing: var(--mud-typography-subtitle2-letterspacing);
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body h6 {
    font-size: var(--mud-typography-body1-size);
    font-family: var(--mud-typography-body1-family);
    font-weight: 600;
    line-height: var(--mud-typography-body1-lineheight);
    letter-spacing: var(--mud-typography-body1-letterspacing);
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body table tr:nth-child(odd) {
    background-color: rgba(255, 255, 255, 0.11);
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body table tr:nth-child(even) {
    background-color: transparent;
}

.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body pre,
.markdown-spec-content[b-kiavwhlei8]  .mud-markdown-body pre > code {
    background-color: #0d1117;
    color: #e6edf3;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 6px;
}

/*
    The mention suggestion list is absolutely positioned against this element, so it hangs under
    the editor instead of pushing the Save buttons down while it is open.
*/
.markdown-spec-editor-host[b-kiavwhlei8] {
    position: relative;
}

/*
    A rounded tabs container clips what leaves it, which cuts the suggestion list off at the bottom
    edge of the editor. The rounding it gives up is on a container whose panels round themselves.
*/
.markdown-spec-tabs-host[b-kiavwhlei8]  .mud-tabs.mud-tabs-rounded {
    overflow: visible;
}

/* A picture written inside a sentence stays in the markdown, so cap it where it is rendered.
   MudMarkdown is a child component and never carries MarkdownWithMedia's own scope. */
.markdown-spec-content[b-kiavwhlei8]  img {
    max-width: 100%;
    max-height: 320px;
    object-fit: contain;
}
/* /Components/Development/MarkdownWithMedia.razor.rz.scp.css */
.markdown-media[b-nyfo05vtkb] {
    margin: 0.75rem 0;
}

/* The thumbnail a picture or a clip is shown as. Clicking it opens the file at full size. */
.markdown-media-thumb[b-nyfo05vtkb] {
    position: relative;
    display: block;
    max-width: 100%;
    padding: 0;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 8px;
    overflow: hidden;
    background: var(--mud-palette-background-gray);
    cursor: pointer;
    line-height: 0;
}

.markdown-media-thumb:hover[b-nyfo05vtkb] {
    border-color: var(--mud-palette-primary);
}

.markdown-media-thumb:focus-visible[b-nyfo05vtkb] {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 2px;
}

.markdown-media-thumb-item[b-nyfo05vtkb] {
    display: block;
    width: 440px;
    max-width: 100%;
    height: 280px;
    object-fit: cover;
    background: #000;
}

/* The badge that marks a thumbnail as a clip rather than a picture. */
.markdown-media-play[b-nyfo05vtkb] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: rgba(0, 0, 0, 0.35);
}

.markdown-media-player[b-nyfo05vtkb] {
    display: block;
    width: 100%;
    max-width: 420px;
    border-radius: 8px;
    background: #000;
}

audio.markdown-media-player[b-nyfo05vtkb] {
    background: transparent;
}

.markdown-media-caption[b-nyfo05vtkb] {
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    max-width: 440px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Development/MentionAutocomplete.razor.rz.scp.css */
.mention-suggestions[b-0cgnzbdkz7] {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 20;
    max-height: 15rem;
    overflow-y: auto;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 4px;
    background: var(--mud-palette-surface);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);
}

.mention-suggestion[b-0cgnzbdkz7] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    cursor: pointer;
    font-size: 0.8125rem;
}

.mention-suggestion:hover[b-0cgnzbdkz7],
.mention-suggestion-active[b-0cgnzbdkz7] {
    background: var(--mud-palette-action-default-hover);
}

.mention-suggestion-name[b-0cgnzbdkz7] {
    font-weight: 500;
    white-space: nowrap;
}

.mention-suggestion-email[b-0cgnzbdkz7] {
    color: var(--mud-palette-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Development/PriorityChipMenu.razor.rz.scp.css */
/* The class sits on a plain span written in this file, so the scope attribute reaches it. The chip
   inside it draws no pointer of its own, and a value that opens a menu has to say so. */
.chip-menu-activator[b-38zoprfw2x] {
    display: inline-flex;
    cursor: pointer;
}

.priority-option[b-38zoprfw2x] {
    display: flex;
    align-items: center;
    width: 100%;
}
/* /Components/Development/StatusLabel.razor.rz.scp.css */
.status-label-dot[b-vr47d3oyse] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    flex-shrink: 0;
}
/* /Components/Development/WorkActivity.razor.rz.scp.css */
.work-activity-panel[b-mvpl64swwm] {
    padding-top: 0.75rem;
}
/* /Components/Development/WorkComments.razor.rz.scp.css */
.work-comment-body[b-oz80nk4c1t] {
    font-size: 0.875rem;
    line-height: 1.5;
    margin-top: 4px;
}

/* MudMarkdown renders a paragraph as body1, which is 1rem and larger than the rest of the page.
   Hold every run of comment text at the size the description panel uses. */
.work-comment-body[b-oz80nk4c1t]  .mud-markdown-body {
    font-size: 0.875rem;
    line-height: 1.5;
}

.work-comment-body[b-oz80nk4c1t]  p,
.work-comment-body[b-oz80nk4c1t]  li,
.work-comment-body[b-oz80nk4c1t]  td,
.work-comment-body[b-oz80nk4c1t]  th,
.work-comment-body[b-oz80nk4c1t]  blockquote {
    font-size: 0.875rem;
}

.work-comment-body[b-oz80nk4c1t]  .mud-typography-h1,
.work-comment-body[b-oz80nk4c1t]  .mud-typography-h2,
.work-comment-body[b-oz80nk4c1t]  .mud-typography-h3,
.work-comment-body[b-oz80nk4c1t]  .mud-typography-h4,
.work-comment-body[b-oz80nk4c1t]  .mud-typography-h5,
.work-comment-body[b-oz80nk4c1t]  .mud-typography-h6 {
    font-size: 0.9375rem;
    font-weight: 600;
    margin: 0.5em 0 0.2em;
    letter-spacing: normal;
    line-height: 1.35;
}

.work-comment-body[b-oz80nk4c1t]  p {
    margin: 0 0 0.5em;
}

.work-comment-body[b-oz80nk4c1t]  p:last-child {
    margin-bottom: 0;
}

.work-comment-body[b-oz80nk4c1t]  code {
    font-size: 0.8125rem;
    padding: 1px 4px;
    border-radius: 3px;
}

.work-comment-body[b-oz80nk4c1t]  pre {
    font-size: 0.8125rem;
    padding: 10px 12px;
    border-radius: 6px;
    overflow-x: auto;
    margin: 0.5em 0;
}

/* The mention suggestion list hangs under the field it belongs to. */
.work-comment-editor[b-oz80nk4c1t] {
    position: relative;
}

/* A picture written inside a sentence stays in the markdown, so cap it where it is rendered.
   MudMarkdown is a child component and never carries MarkdownWithMedia's own scope. */
.work-comment-body[b-oz80nk4c1t]  img {
    max-width: 100%;
    max-height: 320px;
    object-fit: contain;
}
/* /Components/Development/WorkHistory.razor.rz.scp.css */
.work-history-entry[b-scgl084r6q] {
    border-left: 2px solid var(--mud-palette-divider);
    padding-left: 0.75rem;
}
/* /Components/Development/WorkStatusChipMenu.razor.rz.scp.css */
/* The class sits on a plain span written in this file, so the scope attribute reaches it. The chip
   inside it draws no pointer of its own, and a value that opens a menu has to say so. */
.chip-menu-activator[b-n2lpv8haa5] {
    display: inline-flex;
    cursor: pointer;
}

.work-status-option[b-n2lpv8haa5] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

.work-status-option-action[b-n2lpv8haa5] {
    flex: 1 1 auto;
    white-space: nowrap;
}

.work-status-option-arrow[b-n2lpv8haa5] {
    color: var(--mud-palette-text-secondary);
}
/* /Components/Development/WorkStatusMenu.razor.rz.scp.css */
/* The class sits on a plain div written in this file, so the scope attribute reaches it. A rule on
   the MudMenuItem itself would not compile against anything. */
.work-status-option[b-zu8h1za873] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

.work-status-option-action[b-zu8h1za873] {
    flex: 1 1 auto;
    white-space: nowrap;
}

.work-status-option-arrow[b-zu8h1za873] {
    color: var(--mud-palette-text-secondary);
}
/* /Components/Dialogs/EnvironmentFlowDialog.razor.rz.scp.css */
.environment-flow-pipeline[b-lzgava257l] {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    overflow-x: auto;
    padding-bottom: 0.25rem;
}

.environment-flow-stage[b-lzgava257l] {
    flex: 1 1 0;
    min-width: 180px;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.environment-flow-stage-title[b-lzgava257l] {
    text-align: center;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.environment-flow-card[b-lzgava257l] {
    padding: 0.75rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.environment-flow-empty[b-lzgava257l] {
    text-align: center;
    padding: 1rem 0.5rem;
}

.environment-flow-arrow[b-lzgava257l] {
    display: flex;
    align-items: center;
    color: var(--mud-palette-text-secondary);
    padding-top: 2rem;
}
/* /Components/Dialogs/ExperimentDialog.razor.rz.scp.css */
.experiment-dialog-form[b-ppo4jvlot7] {
    min-width: 420px;
}

.experiment-dialog-section[b-ppo4jvlot7] {
    letter-spacing: 0.08em;
    font-weight: 600;
    margin-top: 0.25rem;
}

.experiment-variation-block[b-ppo4jvlot7] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-background-grey);
}

@media (max-width: 600px) {
    .experiment-dialog-form[b-ppo4jvlot7] {
        min-width: unset;
    }
}
/* /Components/Dialogs/FeatureFlagDialog.razor.rz.scp.css */
.flag-dialog-form[b-opzo65tsk0] {
    min-width: 420px;
}

.flag-dialog-section[b-opzo65tsk0] {
    letter-spacing: 0.08em;
    font-weight: 600;
    margin-top: 0.25rem;
}

@media (max-width: 600px) {
    .flag-dialog-form[b-opzo65tsk0] {
        min-width: unset;
    }
}
/* /Components/Dialogs/GameDialog.razor.rz.scp.css */
.game-dialog-form[b-riywmxqm8u] {
    min-width: 420px;
}

@media (max-width: 600px) {
    .game-dialog-form[b-riywmxqm8u] {
        min-width: unset;
    }
}
/* /Components/Dialogs/MediaViewerDialog.razor.rz.scp.css */
.media-viewer[b-l1x08lnuye] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 0;
}

/* The dialog is the frame. The picture or the clip fills it without overflowing it. */
.media-viewer-item[b-l1x08lnuye] {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

video.media-viewer-item[b-l1x08lnuye] {
    background: #000;
}
/* /Components/Dialogs/MemberDialog.razor.rz.scp.css */
.member-dialog-form[b-kehfhb3jm1] {
    min-width: 420px;
}

@media (max-width: 600px) {
    .member-dialog-form[b-kehfhb3jm1] {
        min-width: unset;
    }
}
/* /Components/Dialogs/RoleDialog.razor.rz.scp.css */
.role-dialog-form[b-8b4toz54dn] {
    min-width: 0;
}

.role-permission-group[b-8b4toz54dn] {
    padding: 0.75rem 1rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-background-grey);
}

.role-permission-group-label[b-8b4toz54dn] {
    letter-spacing: 0.08em;
    font-weight: 600;
}
/* /Components/Layout/LoginLayout.razor.rz.scp.css */
.login-shell[b-qaodfmt4r9] {
    min-height: 100vh;
    background: #101215;
}

.login-main[b-qaodfmt4r9] {
    min-height: 100vh;
}

#blazor-error-ui[b-qaodfmt4r9] {
    background: #7f1d1d;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    color: #fee2e2;
}

#blazor-error-ui .dismiss[b-qaodfmt4r9] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.portal-shell[b-6dp6yo6ook] {
    min-height: 100vh;
    background: var(--mud-palette-background);
}

.portal-context[b-6dp6yo6ook] {
    color: var(--mud-palette-text-secondary);
}

.portal-context-stack[b-6dp6yo6ook] {
    max-width: min(900px, 72vw);
}

.portal-context-select[b-6dp6yo6ook] {
    min-width: 180px;
}

.portal-protected-env[b-6dp6yo6ook] {
    margin-left: 8px;
    color: #f59e0b;
    font-size: 0.75rem;
}

.portal-account-menu[b-6dp6yo6ook] {
    text-transform: none;
    letter-spacing: normal;
    max-width: 200px;
}

.portal-main[b-6dp6yo6ook] {
    min-height: 100vh;
}

.portal-main-with-agent[b-6dp6yo6ook] {
    margin-right: 492px;
}

.portal-agent-shell[b-6dp6yo6ook] {
    position: fixed;
    top: 64px;
    right: 16px;
    bottom: 16px;
    width: 460px;
    z-index: 1200;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
    transform: translateX(0);
    transition: top 0.22s ease, bottom 0.22s ease, height 0.22s ease, transform 0.22s ease, opacity 0.22s ease, box-shadow 0.22s ease;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.portal-agent-shell.is-expanded[b-6dp6yo6ook] {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
}

.portal-agent-shell.is-hidden[b-6dp6yo6ook] {
    transform: translateX(calc(100% + 24px));
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
}

@media (max-width: 960px) {
    .portal-main-with-agent[b-6dp6yo6ook] {
        margin-right: 0;
    }

    .portal-agent-shell[b-6dp6yo6ook] {
        top: 56px;
        right: 8px;
        bottom: 8px;
        width: min(460px, calc(100vw - 16px));
    }
}

@media (max-width: 640.98px) {
    .portal-context[b-6dp6yo6ook] {
        display: none;
    }

    .portal-context-select[b-6dp6yo6ook] {
        min-width: 120px;
    }

    .portal-agent-shell[b-6dp6yo6ook] {
        top: 52px;
        right: 0;
        bottom: 0;
        width: 100vw;
        border-radius: 12px 12px 0 0;
    }
}

#blazor-error-ui[b-6dp6yo6ook] {
    background: #7f1d1d;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    color: #fee2e2;
}

    #blazor-error-ui .dismiss[b-6dp6yo6ook] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.portal-nav[b-rhk6n0jrq1] {
    padding: 12px 8px;
}

.portal-nav-section[b-rhk6n0jrq1] {
    color: var(--mud-palette-text-secondary);
    letter-spacing: 0;
    padding: 6px 10px 4px 14px;
    font-size: 0.6875rem;
}

.portal-nav[b-rhk6n0jrq1]  .mud-nav-link {
    border-radius: 6px;
    padding: 4px 10px;
    margin: 1px 0;
    min-height: 0;
    font-size: 0.8125rem;
}

.portal-nav[b-rhk6n0jrq1]  .mud-nav-link.active {
    color: var(--mud-palette-primary);
}

.portal-nav[b-rhk6n0jrq1]  .mud-nav-link.active .mud-nav-link-icon {
    color: var(--mud-palette-primary);
}
/* /Components/Pages/Admin/ApprovalRequestTable.razor.rz.scp.css */
.approvals-payload[b-pso1jyxzoj] {
    margin: 0;
    padding: 0.75rem;
    max-height: 20rem;
    overflow: auto;
    border-radius: 4px;
    background: var(--mud-palette-background-grey);
    font-family: var(--mud-typography-caption-family, monospace);
    font-size: 0.8rem;
    white-space: pre-wrap;
    word-break: break-word;
}
/* /Components/Pages/Admin/Environments.razor.rz.scp.css */
.environments-page[b-lgyubnj1gn] {
    max-width: 920px;
}

.environments-flow-panel[b-lgyubnj1gn],
.environments-panel[b-lgyubnj1gn] {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.environments-flow-pipeline[b-lgyubnj1gn] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.environments-flow-stage[b-lgyubnj1gn] {
    flex: 1 1 140px;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.environments-flow-stage-label[b-lgyubnj1gn] {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.environments-flow-chips[b-lgyubnj1gn] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    min-height: 1.75rem;
}

.environments-flow-arrow[b-lgyubnj1gn] {
    color: var(--mud-palette-text-secondary);
}

.environments-empty[b-lgyubnj1gn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.environments-cell-name[b-lgyubnj1gn] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.environments-slug[b-lgyubnj1gn] {
    font-family: var(--mud-typography-monospace-family, monospace);
}

[b-lgyubnj1gn] .environments-table td {
    vertical-align: middle;
}
/* /Components/Pages/Admin/Games.razor.rz.scp.css */
.games-page[b-xrbq1pg0u6] {
    max-width: 920px;
}

.games-panel[b-xrbq1pg0u6] {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.games-empty[b-xrbq1pg0u6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.games-cell-name[b-xrbq1pg0u6] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.games-slug[b-xrbq1pg0u6] {
    font-family: var(--mud-typography-monospace-family, monospace);
}

[b-xrbq1pg0u6] .games-table td {
    vertical-align: middle;
}
/* /Components/Pages/Admin/Members.razor.rz.scp.css */
.members-page[b-qv0ysa37i6] {
    max-width: 920px;
}

.members-panel[b-qv0ysa37i6] {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.members-search[b-qv0ysa37i6] {
    max-width: 280px;
}

.members-empty[b-qv0ysa37i6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.members-cell-name[b-qv0ysa37i6] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

[b-qv0ysa37i6] .members-table td {
    vertical-align: middle;
}
/* /Components/Pages/Admin/Roles.razor.rz.scp.css */
.roles-page[b-wf792aowy5] {
    max-width: 920px;
}

.roles-panel[b-wf792aowy5] {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.roles-empty[b-wf792aowy5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.roles-cell-name[b-wf792aowy5] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.roles-slug[b-wf792aowy5] {
    font-family: var(--mud-typography-monospace-family, monospace);
}

[b-wf792aowy5] .roles-table td {
    vertical-align: middle;
}
/* /Components/Pages/Development/FeatureHub.razor.rz.scp.css */
/* The class is on a plain div, so the scope attribute reaches it. A rule aimed at the MudPaper
   around it would compile against nothing. */
.feature-details[b-gqn3an0uc0] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

/* A key is one token however narrow the column gets. Its hyphen is a wrap opportunity. */
.work-key[b-gqn3an0uc0] {
    white-space: nowrap;
}
/* /Components/Pages/Development/Features.razor.rz.scp.css */
/*
    A key is one token however narrow the column gets. A feature key holds hyphens, and each one is
    a wrap opportunity, so player-progression would otherwise break across two lines.
*/
.feature-key[b-nytautm5e0] {
    white-space: nowrap;
}
/* /Components/Pages/Development/IssueCreate.razor.rz.scp.css */
.issue-create-page[b-mehif94nsg] {
    gap: 1.5rem;
}

.issue-back-link[b-mehif94nsg] {
    align-self: flex-start;
    padding-inline: 0;
}

.issue-create-sidebar[b-mehif94nsg] {
    position: sticky;
    top: 1rem;
}

.issue-create-select[b-mehif94nsg] {
    margin-bottom: 0;
}

/* The class sits on a plain div, not on the MudCheckBox: a scoped stylesheet only reaches elements
   written in this file, so ::deep needs a real HTML ancestor to hang off. */
.issue-create-another[b-mehif94nsg]  .mud-typography {
    font-size: 0.8125rem;
}

/* The description is the reason this page exists, so give the editor room to breathe. */
.issue-create-editor[b-mehif94nsg]  textarea {
    min-height: 22rem;
}

.issue-create-sidebar[b-mehif94nsg]  .mud-input-control {
    margin-top: 0;
}

.issue-create-sidebar[b-mehif94nsg]  .mud-input-label {
    font-size: 0.8125rem;
}

@media (max-width: 959.98px) {
    .issue-create-sidebar[b-mehif94nsg] {
        position: static;
    }

    .issue-create-editor[b-mehif94nsg]  textarea {
        min-height: 14rem;
    }
}
/* /Components/Pages/Development/IssueDetail.razor.rz.scp.css */
.issue-detail-page[b-1orpt8mkmf] {
    gap: 1.5rem;
}

.issue-back-link[b-1orpt8mkmf] {
    align-self: flex-start;
    padding-inline: 0;
}

.issue-header[b-1orpt8mkmf] {
    gap: 1rem;
}

.issue-header-copy[b-1orpt8mkmf] {
    flex: 1 1 0;
    min-width: 0;
}

.issue-key[b-1orpt8mkmf] {
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.issue-title[b-1orpt8mkmf] {
    line-height: 1.15;
}

.issue-tags[b-1orpt8mkmf] {
    margin-top: 0.25rem;
}

.issue-tag[b-1orpt8mkmf] {
    background: rgba(122, 140, 165, 0.08);
    border-color: rgba(122, 140, 165, 0.28);
    color: var(--mud-palette-text-primary);
    font-weight: 500;
}

.issue-sidebar[b-1orpt8mkmf] {
    position: sticky;
    top: 1rem;
}

/* The class is on a plain div, so the scope attribute reaches it. The panel's own MudPaper carries
   .issue-sidebar, which is a component tag and gets no scope attribute at all. */
.issue-details[b-1orpt8mkmf] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.issue-sidebar-select[b-1orpt8mkmf] {
    margin-bottom: 0;
}

.issue-sidebar-save[b-1orpt8mkmf] {
    align-self: flex-start;
    margin-top: 0.25rem;
    padding: 0.375rem 0.875rem;
}

.issue-sidebar[b-1orpt8mkmf]  .mud-input-control {
    margin-top: 0;
}

.issue-sidebar[b-1orpt8mkmf]  .mud-input-label {
    font-size: 0.8125rem;
}

@media (max-width: 959.98px) {
    .issue-sidebar[b-1orpt8mkmf] {
        position: static;
    }
}
/* /Components/Pages/Development/Issues.razor.rz.scp.css */
/*
    A key is one token however narrow the column gets. Its hyphens are wrap opportunities, so
    GRAVITY-LOOT-I-5 would otherwise break across two lines.
*/
.issue-key[b-qgcewq630f] {
    white-space: nowrap;
}

/*
    The query bar holds a language, not prose. A monospace face is what makes an unbalanced
    parenthesis visible before the parser has to say so.
*/
.iql-bar input[b-qgcewq630f] {
    font-family: var(--mud-typography-caption-family, monospace);
    font-size: 0.9rem;
}

/*
    A value that opens an editor has to look like one. The points cell holds a number or an em
    dash, and neither carries an affordance of its own, so the target is drawn on hover and on
    keyboard focus.
*/
.cell-editable[b-qgcewq630f] {
    display: inline-block;
    min-width: 2rem;
    padding: 0.125rem 0.375rem;
    border: 1px solid transparent;
    border-radius: var(--mud-default-borderradius);
    cursor: pointer;
}

.cell-editable:hover[b-qgcewq630f],
.cell-editable:focus-visible[b-qgcewq630f] {
    background: var(--mud-palette-action-default-hover);
    border-color: var(--mud-palette-lines-inputs);
    outline: none;
}
/* /Components/Pages/Development/Mentions.razor.rz.scp.css */
.mention-row[b-n7p8o45376] {
    border-left: 3px solid transparent;
    padding-left: 0.75rem;
}

.mention-row-unread[b-n7p8o45376] {
    border-left-color: var(--mud-palette-primary);
}
/* /Components/Pages/Development/RunDetail.razor.rz.scp.css */
.run-log-header[b-dqpxs50nk0] {
    border-bottom: 1px solid #2d3640;
    background: #151a20;
}

.run-log-body[b-dqpxs50nk0] {
    font-family: monospace;
    font-size: 0.8125rem;
    line-height: 1.55;
    background: #0e1318;
    max-height: 600px;
    overflow-y: auto;
    padding: 12px 0;
}

.run-log-empty[b-dqpxs50nk0] {
    padding: 16px 16px;
}

.run-log-entry[b-dqpxs50nk0] {
    display: flex;
    gap: 12px;
    padding: 1px 16px;
    white-space: pre-wrap;
    word-break: break-word;
}

.run-log-entry:hover[b-dqpxs50nk0] {
    background: rgba(255, 255, 255, 0.03);
}

.run-log-time[b-dqpxs50nk0] {
    flex: 0 0 auto;
    color: #5a7a9a;
    user-select: none;
}

.run-log-message[b-dqpxs50nk0] {
    flex: 1 1 auto;
    color: #c8d0da;
}
/* /Components/Pages/Development/TaskDetail.razor.rz.scp.css */
/* The class is on a plain div, so the scope attribute reaches it. A rule aimed at the MudPaper
   around it would compile against nothing. */
.task-details[b-ltz5t3elyx] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}
/* /Components/Pages/DevOps/Incidents.razor.rz.scp.css */
.devops-backtrace pre[b-eqcs0nmkyj] {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.85rem;
}
/* /Components/Pages/DevOps/Monitoring.razor.rz.scp.css */
.monitoring-resource-name[b-g6fhe7jpj4] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.85rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    max-width: 280px;
}

.monitoring-page .mud-progress-linear[b-g6fhe7jpj4] {
    height: 4px;
}
/* /Components/Pages/DevOps/Services.razor.rz.scp.css */
.devops-openapi pre[b-sj8a04l8k9],
.devops-code-block pre[b-sj8a04l8k9] {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.85rem;
}

.devops-json-editor textarea[b-sj8a04l8k9] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.devops-trace-tree[b-sj8a04l8k9] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.devops-trace-node[b-sj8a04l8k9] {
    padding: 0.35rem 0.5rem;
    border-radius: 4px;
    cursor: pointer;
}

.devops-trace-node:hover[b-sj8a04l8k9] {
    background: rgba(128, 128, 128, 0.12);
}

.devops-trace-node-selected[b-sj8a04l8k9] {
    background: rgba(25, 118, 210, 0.12);
}

/* The cluster error's technical detail. It wraps rather than scrolls sideways, because an
   exception is read top to bottom and a horizontal scrollbar hides the end of every line. */
.devops-cluster-detail[b-sj8a04l8k9] {
    white-space: pre-wrap;
    word-break: break-word;
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.4;
}
/* /Components/Pages/ForgotPassword.razor.rz.scp.css */
.reset-page[b-u4vf3n7ici] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding-top: 48px;
    padding-bottom: 48px;
}

.reset-panel[b-u4vf3n7ici] {
    background: #181a1f;
    border: 1px solid #2b3038;
    border-radius: 6px;
    padding: 28px;
}
/* /Components/Pages/Invite.razor.rz.scp.css */
.invite-page[b-f7k3zaaxfl] {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    padding-top: 48px;
    padding-bottom: 48px;
}

.invite-panel[b-f7k3zaaxfl] {
    background: #181a1f;
    border: 1px solid #2b3038;
    border-radius: 6px;
    padding: 28px;
}
/* /Components/Pages/LiveOps/Analytics.razor.rz.scp.css */
.analytics-tabs-shell[b-t8fn2gefxz] {
    overflow: hidden;
}
/* /Components/Pages/LiveOps/AnalyticsEventsTab.razor.rz.scp.css */
.analytics-properties[b-d0n3q70dfg] {
    font-family: var(--mud-typography-monospace-family, monospace);
    font-size: 0.75rem;
    max-width: 28rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* /Components/Pages/LiveOps/AnalyticsKpisTab.razor.rz.scp.css */
.analytics-kpi-card[b-nu0b0gqhj6] {
    min-height: 5.5rem;
}

.analytics-kpi-charts[b-nu0b0gqhj6] {
    margin-top: 0.5rem;
}

.analytics-kpi-chart[b-nu0b0gqhj6] {
    width: 100%;
    overflow-x: auto;
}

.analytics-kpi-chart[b-nu0b0gqhj6]  .mud-chart-xaxis text {
    font-size: 0.7rem;
}
/* /Components/Pages/LiveOps/Experiments.razor.rz.scp.css */
.experiments-page[b-h2tsock0xa] {
    max-width: 920px;
}

.experiments-panel[b-h2tsock0xa] {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.experiments-empty[b-h2tsock0xa] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.experiments-cell-key[b-h2tsock0xa] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.experiments-key[b-h2tsock0xa] {
    font-family: var(--mud-typography-monospace-family, monospace);
    font-weight: 600;
}

[b-h2tsock0xa] .experiments-table td {
    vertical-align: middle;
}
/* /Components/Pages/LiveOps/FeatureFlags.razor.rz.scp.css */
.flags-page[b-sf8mzt5jrb] {
    max-width: 920px;
}

.flags-panel[b-sf8mzt5jrb] {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.flags-subsection[b-sf8mzt5jrb] {
    padding: 0.5rem 1rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-background-grey);
}

.flags-section-label[b-sf8mzt5jrb] {
    letter-spacing: 0.08em;
    font-weight: 600;
}

.flags-empty[b-sf8mzt5jrb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.flags-cell-key[b-sf8mzt5jrb] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.flags-key[b-sf8mzt5jrb] {
    font-family: var(--mud-typography-monospace-family, monospace);
    font-weight: 600;
}

[b-sf8mzt5jrb] .flags-table td {
    vertical-align: middle;
}
/* /Components/Pages/LiveOps/Handshake.razor.rz.scp.css */
.handshake-page[b-iy7li3d1l0] {
    max-width: 720px;
}

.handshake-panel[b-iy7li3d1l0] {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.handshake-subsection[b-iy7li3d1l0] {
    padding: 1rem 1.25rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-background-grey);
}

.handshake-section-label[b-iy7li3d1l0] {
    letter-spacing: 0.08em;
    font-weight: 600;
}

.handshake-diff[b-iy7li3d1l0] {
    font-family: var(--mud-typography-monospace-family, monospace);
}
/* /Components/Pages/LiveOps/Inbox.razor.rz.scp.css */
.inbox-page[b-ki8h5em1ld] {
    max-width: 960px;
}

.inbox-panel[b-ki8h5em1ld] {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.inbox-empty[b-ki8h5em1ld] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.inbox-cell-title[b-ki8h5em1ld] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.inbox-title[b-ki8h5em1ld] {
    font-weight: 600;
}

[b-ki8h5em1ld] .inbox-table td {
    vertical-align: middle;
}
/* /Components/Pages/LiveOps/Players.razor.rz.scp.css */
.players-page .players-panel[b-z4ks3caiga] {
    padding: 1.25rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 12px;
}

.players-page .players-list-tabs[b-z4ks3caiga] {
    overflow: hidden;
}

.players-empty[b-z4ks3caiga] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 2rem 1rem;
    text-align: center;
}

.players-header-card[b-z4ks3caiga] {
    padding: 1.25rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 12px;
}

.players-search[b-z4ks3caiga] {
    padding: 1rem 1.25rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 12px;
}

.players-header-identity[b-z4ks3caiga] {
    flex: 1;
    min-width: 0;
}

.players-identity-ids[b-z4ks3caiga] {
    width: 100%;
}

.players-id-row[b-z4ks3caiga] {
    width: 100%;
}

.players-id-label[b-z4ks3caiga] {
    flex: 0 0 5.5rem;
}

.players-id-value[b-z4ks3caiga] {
    flex: 1;
    min-width: 0;
    word-break: break-all;
    font-size: 0.875rem;
}
/* /Components/Pages/LiveOps/RewardGroupsTab.razor.rz.scp.css */
.reward-groups-pager[b-2h5w6301y3] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    margin-top: 0.25rem;
}

.reward-groups-pager__size[b-2h5w6301y3] {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.reward-groups-pager__size-btn[b-2h5w6301y3] {
    min-width: auto;
    font-size: 0.75rem;
    text-transform: none;
    color: var(--mud-palette-text-secondary);
}
/* /Components/Pages/LiveOps/Store.razor.rz.scp.css */
.store-tabs-shell[b-lcridc7016] {
    overflow: hidden;
}
/* /Components/Pages/Login.razor.rz.scp.css */
.login-page[b-0xrfa6zg3b] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding-top: 48px;
    padding-bottom: 48px;
}

.login-panel[b-0xrfa6zg3b] {
    background: #181a1f;
    border: 1px solid #2b3038;
    border-radius: 6px;
    padding: 28px;
}
/* /Components/Pages/Prototypes/Design.razor.rz.scp.css */
.design-banner[b-u3aa7kvhqy] {
    padding: 0.75rem 1rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-background-gray);
}
/* /Components/Pages/Prototypes/Gates.razor.rz.scp.css */
.gates-page[b-hgvddm8fzh] {
    max-width: 1100px;
}

/* MudPaper is a child component — ::deep pierces scoped CSS isolation. */
[b-hgvddm8fzh] .gates-panel {
    padding: 1.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

[b-hgvddm8fzh] .gates-table td {
    vertical-align: middle;
}
/* /Components/Pages/Prototypes/Portfolio.razor.rz.scp.css */
.portfolio-page[b-crparqanc5] {
    max-width: 1680px;
}
/* /Components/Pages/Prototypes/PortfolioBoardTab.razor.rz.scp.css */
.board-board[b-j01rwqk6hq] {
    display: grid;
    /* Idea columns then the five stages; they wrap rather than shrink past readability. */
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.5rem;
    align-items: start;
}

/* MudPaper roots are child components — scoped selectors need ::deep to match. */
[b-j01rwqk6hq] .board-column {
    padding: 0.5rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-background-gray);
    min-height: 6rem;
}

[b-j01rwqk6hq] .board-empty {
    padding: 0.5rem 0;
    text-align: center;
}

/* Same shape as the Insights tab tip cards: a solid border, a heavier top edge in the tone colour,
   and a tint of that tone behind the card. */
[b-j01rwqk6hq] .board-card {
    padding: 0.5rem 0.625rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-top-width: 3px;
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

/* The tint is a gradient layer, not the background colour, so the card stays opaque over the
   column behind it. */
[b-j01rwqk6hq] .board-card-tone-green {
    border-color: rgba(61, 185, 138, 0.4);
    border-top-color: #3DB98A;
    background-image: linear-gradient(rgba(61, 185, 138, 0.08), rgba(61, 185, 138, 0.08));
}

[b-j01rwqk6hq] .board-card-tone-yellow {
    border-color: rgba(255, 184, 77, 0.4);
    border-top-color: #FFB84D;
    background-image: linear-gradient(rgba(255, 184, 77, 0.08), rgba(255, 184, 77, 0.08));
}

[b-j01rwqk6hq] .board-card-tone-red {
    border-color: rgba(255, 87, 87, 0.4);
    border-top-color: #FF5757;
    background-image: linear-gradient(rgba(255, 87, 87, 0.08), rgba(255, 87, 87, 0.08));
}

[b-j01rwqk6hq] .board-card-title {
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
}

[b-j01rwqk6hq] .board-card-stars {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    line-height: 1;
}

[b-j01rwqk6hq] .board-card-stars .mud-icon-root {
    font-size: 0.875rem;
    width: 0.875rem;
    height: 0.875rem;
    color: inherit;
}

[b-j01rwqk6hq] .board-card-killed {
    opacity: 0.6;
}

/* Double-click target that walks a card through the colour bands. */
.board-card-toner[b-j01rwqk6hq] {
    cursor: pointer;
    min-width: 0;
}
/* /Components/Pages/Prototypes/PortfolioInsightsTab.razor.rz.scp.css */
[b-u9y59ueon3] .insight-color-green {
    color: #3DB98A !important;
}

[b-u9y59ueon3] .insight-color-yellow {
    color: #FFB84D !important;
}

[b-u9y59ueon3] .insight-color-red {
    color: #FF5757 !important;
}

/* MudPaper roots are child components — scoped selectors need ::deep to match. */
[b-u9y59ueon3] .insight-signal {
    padding: 1rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-background-gray);
    height: 100%;
}

[b-u9y59ueon3] .insights-table td {
    vertical-align: middle;
}

[b-u9y59ueon3] .insights-table tbody td {
    border-bottom: 1px solid var(--mud-palette-lines-default);
}
/* /Components/Pages/Prototypes/PortfolioMetricStrip.razor.rz.scp.css */
.metric-strip[b-nrqqo263nr] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding-top: 0.15rem;
}

.metric-chip[b-nrqqo263nr] {
    display: inline-flex;
    align-items: center;
    height: 1.375rem;
    padding: 0 0.5rem;
    border-radius: 1rem;
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}
/* /Components/Pages/Prototypes/PortfolioScorecardTab.razor.rz.scp.css */
.scorecard-panel[b-m1dxuke6bf] {
    padding: 1.25rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

.scorecard-verdict[b-m1dxuke6bf] {
    padding: 1.25rem;
    border: 1px solid var(--mud-palette-lines-default);
    border-left-width: 4px;
    border-radius: var(--mud-default-borderradius);
    background-color: var(--mud-palette-surface);
}

/* The verdict banner is the one place a colour carries meaning on this page. Criterion rows are
   coloured by result rather than by value, because metric direction makes value-colouring a trap. */
.scorecard-verdict-promote[b-m1dxuke6bf] {
    border-left-color: var(--mud-palette-success);
}

.scorecard-verdict-hold[b-m1dxuke6bf] {
    border-left-color: var(--mud-palette-info);
}

.scorecard-verdict-iterate[b-m1dxuke6bf] {
    border-left-color: var(--mud-palette-warning);
}

.scorecard-verdict-kill[b-m1dxuke6bf] {
    border-left-color: var(--mud-palette-error);
}

[b-m1dxuke6bf] .scorecard-table td {
    vertical-align: middle;
}
/* /Components/Pages/Register.razor.rz.scp.css */
.register-page[b-uxji83io6y] {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    padding-top: 48px;
    padding-bottom: 48px;
}

.register-panel[b-uxji83io6y] {
    background: #181a1f;
    border: 1px solid #2b3038;
    border-radius: 6px;
    padding: 28px;
}
/* /Components/Pages/ResetPassword.razor.rz.scp.css */
.reset-page[b-0ji4cv836z] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding-top: 48px;
    padding-bottom: 48px;
}

.reset-panel[b-0ji4cv836z] {
    background: #181a1f;
    border: 1px solid #2b3038;
    border-radius: 6px;
    padding: 28px;
}
/* /Components/Pages/Settings/Account.razor.rz.scp.css */
.account-settings-page[b-guawnrdsi6] {
    max-width: 960px;
}

.account-settings-tabs-shell[b-guawnrdsi6] {
    background: #181a1f;
    border-color: #2b3038;
}

.account-settings-section-header[b-guawnrdsi6] {
    margin-bottom: 20px;
}

.account-settings-form[b-guawnrdsi6] {
    max-width: 480px;
}
/* /Components/Pages/Settings/AccountTwoFactorTab.razor.rz.scp.css */
.two-factor-section[b-ovubuzl6nn] {
    padding: 20px;
}

.two-factor-qr[b-ovubuzl6nn] {
    display: flex;
    justify-content: center;
}

/* Rendered at twelve pixels a module and scaled down here, so every module stays a whole number of
   source pixels and the code reads cleanly. */
.two-factor-qr img[b-ovubuzl6nn] {
    width: 200px;
    height: 200px;
    image-rendering: pixelated;
    background: #ffffff;
    padding: 8px;
    border-radius: 4px;
}

.two-factor-recovery-code[b-ovubuzl6nn] {
    font-family: monospace;
    letter-spacing: 0.08em;
    min-width: 120px;
}
/* /Components/Promotion/PromoteContentDialog.razor.rz.scp.css */
.promote-dialog[b-yplxth65am] {
    min-width: min(640px, 90vw);
}
/* /Components/Rewards/RewardItemRowsEditor.razor.rz.scp.css */
.reward-items-grid[b-ezeb8evn3y] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.reward-items-header[b-ezeb8evn3y],
.reward-items-row[b-ezeb8evn3y] {
    display: grid;
    gap: 8px;
    align-items: start;
}

.reward-items-grid-with-chance .reward-items-header[b-ezeb8evn3y],
.reward-items-grid-with-chance .reward-items-row[b-ezeb8evn3y] {
    grid-template-columns: minmax(104px, 0.9fr) minmax(140px, 1.5fr) minmax(84px, 0.65fr) minmax(92px, 0.7fr) 32px;
}

.reward-items-grid-no-chance .reward-items-header[b-ezeb8evn3y],
.reward-items-grid-no-chance .reward-items-row[b-ezeb8evn3y] {
    grid-template-columns: minmax(104px, 0.9fr) minmax(140px, 1.5fr) minmax(84px, 0.65fr) 32px;
}

.reward-items-header[b-ezeb8evn3y] {
    padding: 0 8px;
}

.reward-items-row[b-ezeb8evn3y] {
    padding: 8px;
    border: 1px solid var(--mud-palette-divider);
    border-radius: 8px;
    background: var(--mud-palette-surface);
}

.reward-item-actions[b-ezeb8evn3y] {
    display: flex;
    justify-content: flex-end;
    padding-top: 2px;
}

.reward-item-empty-cell[b-ezeb8evn3y] {
    min-height: 1px;
}

.reward-item-attributes[b-ezeb8evn3y] {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-top: 8px;
    border-top: 1px solid var(--mud-palette-divider);
}

.reward-attribute-row[b-ezeb8evn3y] {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr) 32px;
    gap: 8px;
    align-items: start;
}

.reward-attribute-row-schema[b-ezeb8evn3y] {
    grid-template-columns: minmax(120px, 1fr) minmax(160px, 1.4fr);
}

.reward-items-grid[b-ezeb8evn3y]  .mud-input-control {
    margin-top: 0;
    margin-bottom: 0;
}

.reward-items-grid[b-ezeb8evn3y]  .mud-input-control > .mud-input-control-input-container {
    margin-top: 0;
}

@media (max-width: 720px) {
    .reward-items-header[b-ezeb8evn3y] {
        display: none;
    }

    .reward-items-grid-with-chance .reward-items-row[b-ezeb8evn3y],
    .reward-items-grid-no-chance .reward-items-row[b-ezeb8evn3y] {
        grid-template-columns: 1fr;
    }

    .reward-item-actions[b-ezeb8evn3y] {
        justify-content: flex-start;
        padding-top: 0;
    }

    .reward-attribute-row[b-ezeb8evn3y],
    .reward-attribute-row-schema[b-ezeb8evn3y] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Shared/VlitzLogo.razor.rz.scp.css */
.vlitz-logo[b-zg4ipdslx6] {
    display: block;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    flex-shrink: 0;
    /* Centred on the cross axis: vertically in the app bar's row. A flex parent would otherwise
       stretch an auto-width image and distort the artwork. */
    align-self: center;
}

/* For a flex column, where the cross axis is horizontal and centring would break the left edge. */
.vlitz-logo-start[b-zg4ipdslx6] {
    align-self: flex-start;
}
/* /Components/Workflows/WorkflowCanvas.razor.rz.scp.css */
.wf-canvas[b-r4t9bvhqb7] {
    position: relative;
    min-height: 520px;
    height: 100%;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, 0.04) 1px, transparent 1px),
        linear-gradient(rgba(0, 0, 0, 0.04) 1px, transparent 1px);
    background-size: 24px 24px;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 8px;
    overflow: auto;
}

.wf-edges[b-r4t9bvhqb7] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.wf-edge[b-r4t9bvhqb7] {
    fill: none;
    stroke: #6b7280;
    stroke-width: 2;
    pointer-events: stroke;
    cursor: pointer;
}

.wf-edge-selected[b-r4t9bvhqb7] {
    stroke: var(--mud-palette-primary);
    stroke-width: 3;
}

.wf-edge-draft[b-r4t9bvhqb7] {
    stroke-dasharray: 6 4;
    stroke: var(--mud-palette-primary);
}

.wf-edge-label[b-r4t9bvhqb7] {
    fill: #4b5563;
    font-size: 11px;
    pointer-events: none;
}

.wf-node[b-r4t9bvhqb7] {
    position: absolute;
    width: 180px;
    min-height: 72px;
    box-sizing: border-box;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid var(--mud-palette-lines-default);
    background: var(--mud-palette-surface);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    cursor: grab;
    user-select: none;
    touch-action: none;
}

.wf-node-dragging[b-r4t9bvhqb7] {
    cursor: grabbing;
    z-index: 2;
    opacity: 0.95;
}

.wf-node-selected[b-r4t9bvhqb7] {
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--mud-palette-primary) 35%, transparent);
}

.wf-node-title[b-r4t9bvhqb7] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--mud-palette-text-secondary);
}

.wf-node-subtitle[b-r4t9bvhqb7] {
    font-size: 0.85rem;
    font-weight: 600;
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wf-node-id[b-r4t9bvhqb7] {
    font-size: 0.65rem;
    color: var(--mud-palette-text-disabled);
    margin-top: 4px;
}

.wf-port[b-r4t9bvhqb7] {
    position: absolute;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid var(--mud-palette-primary);
    background: var(--mud-palette-surface);
    padding: 0;
    cursor: crosshair;
}

.wf-port-out[b-r4t9bvhqb7] {
    right: -7px;
    top: calc(50% - 6px);
}

.wf-port-in[b-r4t9bvhqb7] {
    left: -7px;
    top: calc(50% - 6px);
}

.wf-node-trigger[b-r4t9bvhqb7] {
    border-left: 4px solid #2563eb;
}

.wf-node-prompt[b-r4t9bvhqb7] {
    border-left: 4px solid #7c3aed;
}

.wf-node-mcptool[b-r4t9bvhqb7] {
    border-left: 4px solid #059669;
}

.wf-node-approval[b-r4t9bvhqb7] {
    border-left: 4px solid #d97706;
}

.wf-node-condition[b-r4t9bvhqb7] {
    border-left: 4px solid #db2777;
}
