@import '_content/Corvenia.Yggdrasil.Module.Common/Corvenia.Yggdrasil.Module.Common.11j6ta1914.bundle.scp.css';
@import '_content/PSC.Blazor.Components.MarkdownEditor/PSC.Blazor.Components.MarkdownEditor.mlg14ggzcc.bundle.scp.css';

/* /Components/Canvas/AIChatCanvas.razor.rz.scp.css */
.ai-chat-canvas[b-kct9qvub0d] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--mud-palette-surface, #fff);
}

.ai-chat-canvas-header[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    flex-shrink: 0;
}

.ai-chat-canvas-title[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 8px;
}

.ai-chat-canvas-actions[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.ai-chat-canvas-frame[b-kct9qvub0d] {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    border: 0;
    background: #fff;
}

/* Shown while a window.yggdrasil.cql call is in flight. Hidden with display:none so the
   indeterminate animation is not running when idle. */
.ai-chat-canvas-cql-progress[b-kct9qvub0d] {
    display: none;
    flex-shrink: 0;
}

.ai-chat-canvas-cql-progress.is-active[b-kct9qvub0d] {
    display: block;
}

.ai-chat-canvas-empty[b-kct9qvub0d] {
    flex: 1 1 auto;
    min-height: 0;
    padding: 16px;
}

.canvas-loading-overlay[b-kct9qvub0d] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--mud-palette-background-grey) 0%, var(--mud-palette-surface) 100%);
    padding: 24px;
    animation: canvas-loading-fade-in-b-kct9qvub0d 0.3s ease-in-out;
}

@keyframes canvas-loading-fade-in-b-kct9qvub0d {
    from { opacity: 0; transform: scale(0.98); }
    to { opacity: 1; transform: scale(1); }
}

.canvas-loading-card[b-kct9qvub0d] {
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 12px;
    padding: 32px;
    max-width: 400px;
    width: 100%;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.canvas-building-progress[b-kct9qvub0d] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    width: 100%;
}

.ai-progress[b-kct9qvub0d] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font: 14px system-ui, sans-serif;
    color: var(--mud-palette-text-secondary, #666);
}

.ai-progress__dots[b-kct9qvub0d] {
    display: inline-flex;
    gap: 0.25rem;
}

.ai-progress__dots span[b-kct9qvub0d] {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.35;
    animation: ai-dot-pulse-b-kct9qvub0d 1.2s infinite ease-in-out;
}

.ai-progress__dots span:nth-child(2)[b-kct9qvub0d] {
    animation-delay: 0.15s;
}

.ai-progress__dots span:nth-child(3)[b-kct9qvub0d] {
    animation-delay: 0.3s;
}

@keyframes ai-dot-pulse-b-kct9qvub0d {
    0%, 80%, 100% {
        transform: scale(0.8);
        opacity: 0.3;
    }
    40% {
        transform: scale(1);
        opacity: 1;
    }
}

.ai-progress__text[b-kct9qvub0d] {
    min-width: 6ch;
}

/* Paired with .canvas-error-fix-bar below: same shape, warning palette, and border-bottom because
   this one sits above the iframe rather than under it. Both can be visible at once, and both keep
   flex-shrink: 0 so the iframe stays the only flexing child. */
.canvas-permission-bar[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-shrink: 0;
    padding: 8px 12px;
    border-bottom: 1px solid var(--mud-palette-warning, #ff9800);
    background: color-mix(in srgb, var(--mud-palette-warning, #ff9800) 12%, var(--mud-palette-surface, #fff));
}

.canvas-permission-bar__content[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.canvas-permission-bar__message[b-kct9qvub0d] {
    color: var(--mud-palette-text-primary, #1e293b);
}

.canvas-permission-bar__actions[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.canvas-error-fix-bar[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-shrink: 0;
    padding: 8px 12px;
    border-top: 1px solid var(--mud-palette-error, #f44336);
    background: color-mix(in srgb, var(--mud-palette-error, #f44336) 8%, var(--mud-palette-surface, #fff));
}

.canvas-error-fix-bar__content[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.canvas-error-fix-bar__message[b-kct9qvub0d] {
    color: var(--mud-palette-text-primary, #1e293b);
}

.canvas-error-fix-bar__actions[b-kct9qvub0d] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}
/* /Components/ChatWindow/ChatAssistantContent.razor.rz.scp.css */
/* Intent: Shared assistant-output chrome for ChatWindow and AIChatSubagentDialog.
   Why: Blazor CSS isolation means dialog hosts never see ChatWindow.razor.css;
   keeping styles on ChatAssistantContent makes markdown/charts/cards identical.
*/

/* Markdown tables (moved with assistant-response chrome). */
.assistant-response[b-h2v7cyrc89]  .chat-markdown-table-wrap {
    display: block;
    overflow-x: auto;
    margin: 0.5em 0 0.75em;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    background: #fff;
    border-radius: 8px;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown table {
    width: max-content;
    max-width: none;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.8rem;
    table-layout: auto;
    background: #fff;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown th,
.assistant-response[b-h2v7cyrc89]  .chat-markdown td {
    border: 1px solid #e5e7eb;
    padding: 8px 16px;
    vertical-align: top;
    background: #fff;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown th:first-child,
.assistant-response[b-h2v7cyrc89]  .chat-markdown td:first-child {
    text-align: left;
    white-space: normal;
    min-width: 10rem;
    max-width: 14rem;
    padding-right: 1.5rem;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown th:not(:first-child),
.assistant-response[b-h2v7cyrc89]  .chat-markdown td:not(:first-child) {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    min-width: 7rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown thead th {
    background: #fff;
    font-weight: 600;
}

/* Markdown rendered inside AI chat bubbles */
.assistant-response[b-h2v7cyrc89] {
    min-width: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown {
    font-size: 0.875rem;
    line-height: 1.65;
    color: var(--mud-palette-text-primary, inherit);
    word-break: break-word;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown > :first-child {
    margin-top: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown > :last-child {
    margin-bottom: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown h1,
.assistant-response[b-h2v7cyrc89]  .chat-markdown h2,
.assistant-response[b-h2v7cyrc89]  .chat-markdown h3,
.assistant-response[b-h2v7cyrc89]  .chat-markdown h4 {
    margin: 0.9em 0 0.35em;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown h1 { font-size: 1.15rem; }
.assistant-response[b-h2v7cyrc89]  .chat-markdown h2 { font-size: 1.05rem; }
.assistant-response[b-h2v7cyrc89]  .chat-markdown h3 { font-size: 0.95rem; }
.assistant-response[b-h2v7cyrc89]  .chat-markdown h4 { font-size: 0.875rem; }

.assistant-response[b-h2v7cyrc89]  .chat-markdown p {
    margin: 0 0 0.7em;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown ul,
.assistant-response[b-h2v7cyrc89]  .chat-markdown ol {
    margin: 0.35em 0 0.7em 1.35em;
    padding: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown li {
    margin-bottom: 0.25em;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown li > p {
    margin: 0.2em 0 0.35em;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown code {
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 78%, var(--mud-palette-text-primary, #111827) 7%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-lines-default, #e2e8f0) 78%, var(--mud-palette-text-primary, #111827) 8%);
    border-radius: 5px;
    padding: 0.15em 0.4em;
    font-size: 0.82em;
    font-family: 'Cascadia Code', 'Fira Code', Consolas, monospace;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown pre {
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 90%, var(--mud-palette-dark, #111827) 10%);
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 10px;
    padding: 0.85em 1em;
    margin: 0.75em 0;
    overflow-x: auto;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown pre code {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.92em;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown blockquote {
    margin: 0.75em 0;
    padding: 0.7em 0.95em;
    border-left: 4px solid var(--mud-palette-primary, #1976d2);
    border-radius: 0 10px 10px 0;
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 90%, var(--mud-palette-primary, #1976d2) 10%);
    color: var(--mud-palette-text-secondary, #666);
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown blockquote > :last-child {
    margin-bottom: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown hr {
    border: none;
    border-top: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    margin: 1em 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown strong {
    font-weight: 700;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown a {
    color: var(--mud-palette-primary, #1976d2);
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.14em;
}

.assistant-response[b-h2v7cyrc89]  .chat-markdown img {
    max-width: 100%;
    border-radius: 8px;
}

/* ANALYSIS renderer */

.assistant-response[b-h2v7cyrc89]  .chat-analysis {
    margin: 0.55em 0 0.75em;
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 10px;
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 92%, var(--mud-palette-primary, #1976d2) 8%);
    overflow: hidden;
}

.assistant-response[b-h2v7cyrc89]  .chat-analysis-streaming {
    border-color: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 72%, var(--mud-palette-lines-default, #e2e8f0));
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 86%, var(--mud-palette-primary, #1976d2) 14%);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--mud-palette-primary, #1976d2) 18%, transparent),
        0 0 18px color-mix(in srgb, var(--mud-palette-primary, #1976d2) 18%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-analysis-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.45rem 0.7rem;
    cursor: pointer;
    user-select: none;
    color: var(--mud-palette-text-secondary, #666);
    font-size: 0.78em;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.assistant-response[b-h2v7cyrc89]  .chat-analysis-streaming .chat-analysis-title {
    background: linear-gradient(90deg, var(--mud-palette-primary, #1976d2), #0ff, var(--mud-palette-primary, #1976d2)) -100% / 200%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: chat-analysis-shimmer-b-h2v7cyrc89 2s linear infinite;
}

.assistant-response[b-h2v7cyrc89]  .chat-analysis-status {
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    color: var(--mud-palette-primary, #1976d2);
}

@keyframes chat-analysis-shimmer-b-h2v7cyrc89 {
    to {
        background-position: 100%;
    }
}

.assistant-response[b-h2v7cyrc89]  .chat-analysis-content {
    margin: 0;
    padding: 0.7rem;
    border-top: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 94%, var(--mud-palette-text-primary, #111827) 6%);
    color: var(--mud-palette-text-primary, #111827);
    word-break: break-word;
    overflow-x: auto;
}

.assistant-response[b-h2v7cyrc89]  pre.chat-analysis-content {
    font-family: 'Cascadia Code', 'Fira Code', Consolas, monospace;
    font-size: 0.78em;
    line-height: 1.45;
    white-space: pre-wrap;
}

.assistant-response[b-h2v7cyrc89]  div.chat-analysis-content.chat-markdown {
    font-size: 0.875rem;
    line-height: 1.65;
    white-space: normal;
}

/* ─── DIFF_TABLE renderer ─── */

.assistant-response[b-h2v7cyrc89]  .chat-diff-table-wrap {
    overflow-x: auto;
    margin: 0.6em 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85em;
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 6px;
    overflow: hidden;
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table thead th {
    background: var(--mud-palette-surface, #f8fafc);
    padding: 6px 10px;
    text-align: left;
    font-weight: 600;
    border-bottom: 2px solid var(--mud-palette-lines-default, #e2e8f0);
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table .chat-diff-op-col {
    width: 32px;
    text-align: center;
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table tbody td {
    padding: 5px 10px;
    border-bottom: 1px solid var(--mud-palette-lines-default, #e2e8f0);
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table tbody tr:last-child td {
    border-bottom: none;
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table .chat-diff-op-cell {
    text-align: center;
    font-weight: 700;
    font-size: 1.1em;
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-icon.diff-add {
    color: #2e7d32;
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-icon.diff-delete {
    color: #c62828;
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-icon.diff-modify {
    color: #e65100;
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table tr.diff-add {
    background: color-mix(in srgb, transparent 92%, #2e7d32 8%);
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table tr.diff-delete {
    background: color-mix(in srgb, transparent 92%, #c62828 8%);
}

.assistant-response[b-h2v7cyrc89]  .chat-diff-table tr.diff-modify {
    background: color-mix(in srgb, transparent 92%, #e65100 8%);
}

/* ─── MY_TASKS renderer (compact one-liners) ─── */

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-wrap {
    margin: 0.35em 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-list {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 1.6rem;
    padding: 0.15rem 0.35rem;
    border-radius: 0.25rem;
    border: 1px solid transparent;
    background: transparent;
    color: inherit;
    text-decoration: none;
    overflow: hidden;
    white-space: nowrap;
    line-height: 1.25;
    font-size: 0.8125rem;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-row--link {
    cursor: pointer;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-row--link:hover {
    background: var(--mud-palette-action-hover, rgba(0, 0, 0, 0.04));
    border-color: var(--mud-palette-lines-default, #e5e7eb);
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-chip {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    font-weight: 500;
    font-size: 0.65rem;
    height: 1.15rem;
    padding: 0 6px;
    border-radius: 999px;
    line-height: 1;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-chip-status.chat-my-tasks-status-pending {
    background-color: #fef3c7;
    color: var(--orange, #fd7e14);
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-chip-status.chat-my-tasks-status-failed {
    background-color: #fee2e2;
    color: var(--danger, #c62828);
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-chip-status.chat-my-tasks-status-info {
    background-color: #dbeafe;
    color: var(--blue, #1976d2);
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-chip-status.chat-my-tasks-status-approved {
    background-color: #d1fae5;
    color: var(--primary, #2e7d32);
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-chip-status.chat-my-tasks-status-default {
    background-color: #f3f4f6;
    color: #374151;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-title {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
    color: #1f2937;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-company {
    flex: 0 1 7.5rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #6b7280;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-type {
    flex-shrink: 0;
    max-width: 8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #9ca3af;
    font-size: 0.75rem;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-date {
    flex-shrink: 0;
    font-size: 0.7rem;
    color: #9ca3af;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-open {
    flex-shrink: 0;
    color: var(--mud-palette-primary, #1976d2);
    font-weight: 600;
}

.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-streaming,
.assistant-response[b-h2v7cyrc89]  .chat-my-tasks-empty {
    font-size: 0.85em;
    color: var(--mud-palette-text-secondary, #64748b);
    padding: 2px 0;
}

/* ─── MAPPING_IMPACT renderer ─── */

.assistant-response[b-h2v7cyrc89]  .chat-mapping-impact-wrap {
    margin: 0.6em 0;
    border: 1px solid #ef6c00;
    border-radius: 6px;
    overflow: hidden;
}

.assistant-response[b-h2v7cyrc89]  .chat-mapping-impact-warning {
    background: #fff3e0;
    color: #e65100;
    padding: 8px 12px;
    font-weight: 600;
    font-size: 0.85em;
}

.assistant-response[b-h2v7cyrc89]  .chat-mapping-impact-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82em;
}

.assistant-response[b-h2v7cyrc89]  .chat-mapping-impact-table thead th {
    background: #fff8e1;
    padding: 5px 10px;
    text-align: left;
    font-weight: 600;
    border-bottom: 1px solid #ffe0b2;
}

.assistant-response[b-h2v7cyrc89]  .chat-mapping-impact-table tbody td {
    padding: 4px 10px;
    border-bottom: 1px solid #ffe0b2;
}

.assistant-response[b-h2v7cyrc89]  .chat-mapping-impact-table tbody tr:last-child td {
    border-bottom: none;
}

/* ─── CHART renderer ─── */

.assistant-response[b-h2v7cyrc89]  .chat-chart-wrap {
    margin: 0.6em 0;
    max-width: 100%;
    width: 100%;
    min-width: 0;
    /* Why: overflow-x: auto makes overflow-y compute to auto too, so a ~1px ApexCharts
       rounding mismatch shows both scrollbars; clip instead (InsightEngine chart panels). */
    overflow: hidden;
}

.assistant-response[b-h2v7cyrc89]  .chat-chart-wrap .apexcharts-canvas {
    max-width: 100%;
}

.assistant-response[b-h2v7cyrc89]  .chat-chart-building {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.6em 0;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 88%, var(--mud-palette-primary, #1976d2) 12%);
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    font-size: 0.82em;
    color: var(--mud-palette-text-secondary, #666);
}

.assistant-response[b-h2v7cyrc89]  .chat-chart-error {
    margin: 0.6em 0;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    background: color-mix(in srgb, transparent 92%, #c62828 8%);
    border: 1px solid #ef9a9a;
    font-size: 0.82em;
    color: #c62828;
}

/* ─── MERMAID renderer ─── */

.assistant-response[b-h2v7cyrc89]  .chat-mermaid-wrap {
    margin: 0.6em 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: auto;
    border-radius: 8px;
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    background: var(--mud-palette-surface, #fff);
    padding: 0.75rem;
}

.assistant-response[b-h2v7cyrc89]  .chat-mermaid-target {
    display: inline-block;
    min-height: 2rem;
    min-width: min(100%, max-content);
}

.assistant-response[b-h2v7cyrc89]  .chat-mermaid-target svg {
    display: block;
    max-width: none;
    height: auto;
}

.assistant-response[b-h2v7cyrc89]  .chat-mermaid-error {
    margin: 0.6em 0;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    background: color-mix(in srgb, transparent 92%, #c62828 8%);
    border: 1px solid #ef9a9a;
    font-size: 0.82em;
    color: #c62828;
}

/* ─── TOOL_CONFIRM renderer ─── */

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-wrap {
    margin: 0.6em 0;
    border: 1px solid var(--mud-palette-warning, #ef6c00);
    border-radius: 8px;
    overflow: hidden;
    background: var(--mud-palette-background, #fff);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 8px 12px;
    background: color-mix(in srgb, var(--mud-palette-warning, #ef6c00) 14%, var(--mud-palette-surface, #fff8e1) 86%);
    color: var(--mud-palette-warning-darken, #e65100);
    font-weight: 600;
    font-size: 0.85em;
    border-bottom: 1px solid color-mix(in srgb, var(--mud-palette-warning, #ef6c00) 30%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning-icon {
    color: var(--mud-palette-warning, #ef6c00);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-summary {
    padding: 10px 12px 4px;
    font-size: 0.95em;
    font-weight: 600;
    color: var(--mud-palette-text-primary, inherit);
}

/* Why: the operation block is the part of the card that asks for more than this one call, so it
   sits above the impact detail and is visually the strongest thing after the summary. Users who
   skim to the buttons must still have crossed it. */
.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation {
    margin: 4px 12px 8px;
    padding: 8px 10px;
    border-left: 3px solid var(--mud-palette-warning, #ef6c00);
    background: color-mix(in srgb, var(--mud-palette-warning, #ef6c00) 8%, transparent);
    border-radius: 0 4px 4px 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation-label {
    font-size: 0.75em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--mud-palette-text-secondary, #666);
    margin-bottom: 4px;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation-body {
    font-size: 0.9em;
    font-weight: 600;
    line-height: 1.4;
    color: var(--mud-palette-text-primary, inherit);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation-changes {
    margin-top: 6px;
    font-size: 0.85em;
    line-height: 1.45;
    color: var(--mud-palette-text-primary, inherit);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation-changes .chat-markdown > :first-child {
    margin-top: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation-changes .chat-markdown > :last-child {
    margin-bottom: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation-changes .chat-markdown ul,
.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation-changes .chat-markdown ol {
    margin: 0.35em 0;
    padding-left: 1.25em;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-operation-note {
    margin-top: 6px;
    font-size: 0.78em;
    line-height: 1.4;
    color: var(--mud-palette-text-secondary, #666);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-inspection {
    margin: 0 12px 8px;
    padding: 8px 10px;
    border-left: 3px solid var(--mud-palette-info, #0288d1);
    background: var(--mud-palette-background-grey, rgba(0, 0, 0, 0.04));
    border-radius: 0 4px 4px 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-inspection-label {
    font-size: 0.75em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--mud-palette-text-secondary, #666);
    margin-bottom: 4px;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-inspection-body {
    font-size: 0.875em;
    line-height: 1.45;
    color: var(--mud-palette-text-primary, inherit);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-inspection-body .chat-markdown > :first-child {
    margin-top: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-inspection-body .chat-markdown > :last-child {
    margin-bottom: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-inspection-body .chat-markdown ul,
.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-inspection-body .chat-markdown ol {
    margin: 0.35em 0;
    padding-left: 1.25em;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-details {
    margin: 4px 12px 8px;
    font-size: 0.8em;
    color: var(--mud-palette-text-secondary, #666);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-details-summary {
    cursor: pointer;
    user-select: none;
    padding: 2px 0;
    color: var(--mud-palette-text-secondary, #666);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-details[open] .chat-tool-confirm-details-summary {
    margin-bottom: 4px;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-tool {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    margin: 2px 0 4px;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-tool-label {
    font-size: 0.75em;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--mud-palette-text-secondary, #888);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-tool-name {
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 80%, var(--mud-palette-text-primary, #111827) 6%);
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 4px;
    padding: 0.1em 0.4em;
    font-family: 'Cascadia Code', 'Fira Code', Consolas, monospace;
    font-size: 0.85em;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-args {
    margin: 4px 0 0;
    padding: 0.5rem 0.75rem;
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 92%, var(--mud-palette-text-primary, #111827) 4%);
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 6px;
    font-family: 'Cascadia Code', 'Fira Code', Consolas, monospace;
    font-size: 0.8em;
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 220px;
    overflow: auto;
}

/* Auto-accepted notice — a write that already ran under an approved operation. Deliberately
   quieter than a confirm card (success green, no border emphasis, no buttons): it reports, it
   does not ask. But it must still be unmissable, because it is the only record the user gets of
   what their operation approval actually did. */
.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-wrap {
    margin: 0.6em 0;
    border: 1px solid color-mix(in srgb, var(--mud-palette-success, #2e7d32) 40%, transparent);
    border-radius: 8px;
    overflow: hidden;
    background: var(--mud-palette-background, #fff);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-banner {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 6px 12px;
    background: color-mix(in srgb, var(--mud-palette-success, #2e7d32) 10%, var(--mud-palette-surface, #f1f8e9) 90%);
    color: var(--mud-palette-success-darken, #1b5e20);
    font-weight: 600;
    font-size: 0.8em;
    border-bottom: 1px solid color-mix(in srgb, var(--mud-palette-success, #2e7d32) 22%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-banner-icon {
    color: var(--mud-palette-success, #2e7d32);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-summary {
    padding: 8px 12px 2px;
    font-size: 0.92em;
    font-weight: 600;
    color: var(--mud-palette-text-primary, inherit);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-operation {
    padding: 0 12px 4px;
    font-size: 0.8em;
    color: var(--mud-palette-text-secondary, #666);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-operation-label {
    margin-right: 0.35em;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-operation-text {
    font-style: italic;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-justification {
    margin: 0 12px 8px;
    font-size: 0.85em;
    line-height: 1.45;
    color: var(--mud-palette-text-primary, inherit);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-justification .chat-markdown > :first-child {
    margin-top: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-justification .chat-markdown > :last-child {
    margin-bottom: 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-details {
    margin: 4px 12px 8px;
    font-size: 0.8em;
    color: var(--mud-palette-text-secondary, #666);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-details-summary {
    cursor: pointer;
    user-select: none;
    padding: 2px 0;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-args {
    margin: 4px 0 0;
    padding: 0.5rem 0.75rem;
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 92%, var(--mud-palette-text-primary, #111827) 4%);
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 6px;
    font-family: 'Cascadia Code', 'Fira Code', Consolas, monospace;
    font-size: 0.8em;
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 220px;
    overflow: auto;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-auto-approved-building {
    margin: 0.4em 0;
    font-size: 0.8em;
    font-style: italic;
    color: var(--mud-palette-text-secondary, #666);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 12px 12px;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning--approved {
    background: color-mix(in srgb, #2e7d32 14%, var(--mud-palette-surface, #f8fafc) 86%);
    color: #1b5e20;
    border-bottom-color: color-mix(in srgb, #2e7d32 30%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning--approved .chat-tool-confirm-warning-icon {
    color: #2e7d32;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning--denied {
    background: color-mix(in srgb, #c62828 14%, var(--mud-palette-surface, #f8fafc) 86%);
    color: #8b0000;
    border-bottom-color: color-mix(in srgb, #c62828 30%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning--denied .chat-tool-confirm-warning-icon {
    color: #c62828;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning--working {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, var(--mud-palette-surface, #f8fafc) 88%);
    color: var(--mud-palette-primary, #1976d2);
    border-bottom-color: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 30%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning--working .chat-tool-confirm-warning-icon {
    color: var(--mud-palette-primary, #1976d2);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning--stale {
    background: color-mix(in srgb, var(--mud-palette-text-secondary, #888) 12%, var(--mud-palette-surface, #f8fafc) 88%);
    color: var(--mud-palette-text-secondary, #666);
    border-bottom-color: color-mix(in srgb, var(--mud-palette-text-secondary, #888) 30%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-warning--stale .chat-tool-confirm-warning-icon {
    color: var(--mud-palette-text-secondary, #888);
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-status {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82em;
    font-weight: 600;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-status--approved {
    color: #2e7d32;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-status--denied {
    color: #c62828;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-status--stale {
    color: var(--mud-palette-text-secondary, #666);
    font-weight: 500;
}

.assistant-response[b-h2v7cyrc89]  .chat-tool-confirm-building {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.6em 0;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-warning, #ef6c00) 10%, var(--mud-palette-surface, #f8fafc) 90%);
    border: 1px dashed color-mix(in srgb, var(--mud-palette-warning, #ef6c00) 40%, transparent);
    font-size: 0.82em;
    color: var(--mud-palette-text-secondary, #666);
}

/* ─── USER_QUESTION renderer ─── */

.assistant-response[b-h2v7cyrc89]  .chat-user-question-wrap {
    margin: 0.6em 0;
    border: 1px solid color-mix(in srgb, var(--mud-palette-info, #0288d1) 40%, transparent);
    border-radius: 8px;
    overflow: hidden;
    background: var(--mud-palette-background, #fff);
}

/* Header bar */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-header {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 8px 12px;
    background: color-mix(in srgb, var(--mud-palette-info, #0288d1) 10%, var(--mud-palette-surface, #e3f2fd) 90%);
    color: var(--mud-palette-info-darken, #01579b);
    font-weight: 600;
    font-size: 0.82em;
    border-bottom: 1px solid color-mix(in srgb, var(--mud-palette-info, #0288d1) 22%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-header--answered {
    background: color-mix(in srgb, #2e7d32 10%, var(--mud-palette-surface, #f8fafc) 90%);
    color: #1b5e20;
    border-bottom-color: color-mix(in srgb, #2e7d32 22%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-header-icon {
    color: var(--mud-palette-info, #0288d1);
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-header--answered .chat-user-question-header-icon {
    color: #2e7d32;
}

/* Question text */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-text {
    padding: 10px 14px 8px;
    font-size: 0.93em;
    font-weight: 600;
    color: var(--mud-palette-text-primary, inherit);
    line-height: 1.45;
}

/* Option list */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-list {
    border-top: 1px solid color-mix(in srgb, var(--mud-palette-info, #0288d1) 15%, transparent);
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    cursor: pointer;
    border-bottom: 1px solid var(--mud-palette-lines-default, rgba(0,0,0,0.06));
    transition: background 0.1s;
    user-select: none;
    /* Reset label margins */
    margin: 0;
    font-weight: normal;
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-row:last-child {
    border-bottom: none;
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-row:not(.chat-user-question-option-row--disabled):hover {
    background: color-mix(in srgb, var(--mud-palette-info, #0288d1) 6%, var(--mud-palette-background, #fff) 94%);
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-row--selected {
    background: color-mix(in srgb, var(--mud-palette-info, #0288d1) 9%, var(--mud-palette-background, #fff) 91%);
    border-left: 3px solid var(--mud-palette-info, #0288d1);
    padding-left: 11px; /* compensate for the 3px border */
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-row--disabled {
    cursor: default;
    opacity: 0.7;
}

/* Number badge */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-num {
    min-width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--mud-palette-lines-default, rgba(0,0,0,0.08));
    color: var(--mud-palette-text-secondary, #666);
    font-size: 0.72em;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.1s, color 0.1s;
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-num--selected {
    background: var(--mud-palette-info, #0288d1);
    color: #fff;
}

/* Option text label */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-text {
    flex: 1;
    font-size: 0.9em;
    color: var(--mud-palette-text-primary, inherit);
    line-height: 1.4;
}

/* Free-text row specifics */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-option-freetext-label {
    font-size: 0.85em;
    color: var(--mud-palette-text-secondary, #666);
    flex-shrink: 0;
    white-space: nowrap;
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-freetext-input {
    flex: 1;
    min-width: 80px;
    border: none;
    border-bottom: 1px solid var(--mud-palette-lines-default, rgba(0,0,0,0.15));
    background: transparent;
    outline: none;
    font-size: 0.9em;
    font-family: inherit;
    color: var(--mud-palette-text-primary, inherit);
    padding: 1px 2px;
    transition: border-color 0.15s;
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-freetext-input:focus {
    border-bottom-color: var(--mud-palette-info, #0288d1);
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-freetext-input:disabled {
    opacity: 0.6;
    cursor: default;
}

/* Submit row */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-submit {
    display: flex;
    justify-content: flex-end;
    padding: 8px 14px 10px;
    border-top: 1px solid var(--mud-palette-lines-default, rgba(0,0,0,0.06));
}

/* Answered badge (frozen) */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-actions {
    padding: 8px 14px 10px;
}

.assistant-response[b-h2v7cyrc89]  .chat-user-question-answered-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82em;
    font-weight: 600;
    color: #2e7d32;
}

/* Streaming placeholder */
.assistant-response[b-h2v7cyrc89]  .chat-user-question-building {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.6em 0;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-info, #0288d1) 10%, var(--mud-palette-surface, #f8fafc) 90%);
    border: 1px dashed color-mix(in srgb, var(--mud-palette-info, #0288d1) 40%, transparent);
    font-size: 0.82em;
    color: var(--mud-palette-text-secondary, #666);
}
/* /Components/ChatWindow/ChatAssistantRun.razor.rz.scp.css */
/* Intent: AI-bubble wrap chrome shared by ChatWindow and AIChatSubagentDialog.
   Why: styles previously lived under ChatWindow / ::deep and never applied in dialogs. */

.chat-ai-message[b-hbeo463mvi] {
    background: #f3f4f6;
    border: 1px solid #f4ebeb;
    border-radius: 10px;
    padding: 0.5rem 1rem;
    color: #374151;
    font-size: 0.9rem;
    line-height: 1.62;
    width: 80%;
}

/* AI-bubble counterpart of the user-turn wrap: owns width/alignment so the hover toolbar
   can sit under the bubble without affecting its layout. */
.chat-ai-turn-wrap[b-hbeo463mvi] {
    align-self: flex-start;
    width: 80%;
    display: flex;
    flex-direction: column;
}

/* Higher specificity than consumers' `... ::deep .chat-ai-message` width rules, so the wrap
   owns the 80% width and the bubble fills it instead of nesting to 64%. */
.chat-ai-turn-wrap .chat-ai-message[b-hbeo463mvi] {
    width: 100%;
    max-width: 100%;
}

/* Reserved-height row so showing the toolbar on hover never shifts layout. */
.chat-ai-turn-toolbar[b-hbeo463mvi] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    height: 30px;
    margin-top: 2px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 120ms ease-in-out;
}

.chat-ai-turn-wrap:hover .chat-ai-turn-toolbar[b-hbeo463mvi],
.chat-ai-turn-wrap:focus-within .chat-ai-turn-toolbar[b-hbeo463mvi] {
    opacity: 1;
    pointer-events: auto;
}

.chat-ai-turn-toolbar .chat-turn-timestamp[b-hbeo463mvi] {
    font-size: 0.7rem;
    color: #9ca3af;
    white-space: nowrap;
    padding-left: 2px;
}

.chat-ai-turn-toolbar .chat-turn-toolbar-actions[b-hbeo463mvi] {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
}

.chat-ai-turn-toolbar[b-hbeo463mvi]  .mud-icon-button {
    padding: 4px;
}
/* /Components/ChatWindow/ChatCompactionPill.razor.rz.scp.css */
[b-zatx5bmh9l] .chat-compaction-pill {
    cursor: pointer;
    font-size: 0.75rem;
}
/* /Components/ChatWindow/ChatComposer.razor.rz.scp.css */
.chat-input-area[b-mw7yryrz9y] {
    flex-shrink: 0;
    padding: 10px;
    border-top: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    background: var(--mud-palette-surface, #f8fafc);
}

.context-usage-bar-container[b-mw7yryrz9y] {
    --context-instructions: #7c3aed;
    --context-skills: #0891b2;
    --context-tools: #d97706;
    --context-tool-use: #dc2626;
    --context-user: #16a34a;
    position: relative;
    width: 100%;
    margin-bottom: 4px;
    cursor: help;
    outline: none;
}

.context-usage-bar-row[b-mw7yryrz9y] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.context-usage-bar-track[b-mw7yryrz9y] {
    flex: 1 1 auto;
    min-width: 0;
    height: 4px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--mud-palette-action-disabled-background, #e0e0e0);
}

.context-usage-bar-metrics[b-mw7yryrz9y] {
    --context-metric-tokens-width: 8ch;
    --context-metric-percent-width: 6ch;
    display: grid;
    grid-template-columns: var(--context-metric-tokens-width) var(--context-metric-percent-width);
    gap: 6px;
    flex: 0 0 auto;
    font-size: 0.7rem;
    line-height: 1;
    color: var(--mud-palette-text-secondary, #64748b);
    user-select: none;
}

.context-usage-bar-fill[b-mw7yryrz9y] {
    display: flex;
    height: 100%;
    overflow: hidden;
    transition: width 0.3s ease;
}

.context-usage-bar-segment[b-mw7yryrz9y] {
    height: 100%;
    min-width: 0;
    transition: width 0.3s ease;
}

.context-usage-bar-segment--instructions[b-mw7yryrz9y],
.context-usage-legend-swatch--instructions[b-mw7yryrz9y] {
    background: var(--context-instructions);
}

.context-usage-bar-segment--skills[b-mw7yryrz9y],
.context-usage-legend-swatch--skills[b-mw7yryrz9y] {
    background: var(--context-skills);
}

.context-usage-bar-segment--tools[b-mw7yryrz9y],
.context-usage-legend-swatch--tools[b-mw7yryrz9y] {
    background: var(--context-tools);
}

.context-usage-bar-segment--tool-use[b-mw7yryrz9y],
.context-usage-legend-swatch--tool-use[b-mw7yryrz9y] {
    background: var(--context-tool-use);
}

.context-usage-bar-segment--user[b-mw7yryrz9y],
.context-usage-legend-swatch--user[b-mw7yryrz9y] {
    background: var(--context-user);
}

.context-usage-popover[b-mw7yryrz9y] {
    --context-metric-tokens-width: 8ch;
    --context-metric-percent-width: 6ch;
    position: absolute;
    z-index: 10;
    left: 50%;
    bottom: calc(100% + 8px);
    width: 220px;
    padding: 9px 10px;
    border: 1px solid var(--mud-palette-lines-default, #d7dde5);
    border-radius: 8px;
    background: var(--mud-palette-surface, #fff);
    color: var(--mud-palette-text-primary, #1f2937);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.16);
    font-size: 0.75rem;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, 4px);
    transition: opacity 0.12s ease, transform 0.12s ease;
}

.context-usage-popover--with-tokens[b-mw7yryrz9y] {
    /* Wide enough for "1,048,576 / 1,048,576" in the title token column. */
    --context-metric-tokens-width: 17ch;
    width: 320px;
}

.context-usage-metric-tokens[b-mw7yryrz9y],
.context-usage-metric-percent[b-mw7yryrz9y] {
    display: block;
    width: 100%;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.context-usage-popover[b-mw7yryrz9y]::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-right: 1px solid var(--mud-palette-lines-default, #d7dde5);
    border-bottom: 1px solid var(--mud-palette-lines-default, #d7dde5);
    background: var(--mud-palette-surface, #fff);
    transform: translate(-50%, -4px) rotate(45deg);
}

.context-usage-bar-container:hover .context-usage-popover[b-mw7yryrz9y],
.context-usage-bar-container:focus-visible .context-usage-popover[b-mw7yryrz9y] {
    opacity: 1;
    transform: translate(-50%, 0);
}

.context-usage-popover-title[b-mw7yryrz9y] {
    display: grid;
    grid-template-columns: 1fr var(--context-metric-percent-width);
    align-items: center;
    gap: 7px;
    padding-bottom: 6px;
    margin-bottom: 5px;
    border-bottom: 1px solid var(--mud-palette-lines-default, #e5e7eb);
}

.context-usage-popover-title.context-usage-legend-row--with-tokens[b-mw7yryrz9y] {
    grid-template-columns: 1fr var(--context-metric-tokens-width) var(--context-metric-percent-width);
}

.context-usage-popover-title-label[b-mw7yryrz9y] {
    min-width: 0;
}

.context-usage-legend-row[b-mw7yryrz9y] {
    display: grid;
    grid-template-columns: 8px 1fr var(--context-metric-percent-width);
    align-items: center;
    gap: 7px;
    min-height: 20px;
}

.context-usage-legend-row--with-tokens[b-mw7yryrz9y] {
    grid-template-columns: 8px 1fr var(--context-metric-tokens-width) var(--context-metric-percent-width);
}

.context-usage-legend-swatch[b-mw7yryrz9y] {
    width: 8px;
    height: 8px;
    border-radius: 2px;
}

.context-usage-popover-warning[b-mw7yryrz9y] {
    padding-top: 6px;
    margin-top: 5px;
    border-top: 1px solid var(--mud-palette-lines-default, #e5e7eb);
    color: var(--mud-palette-warning-darken, #b45309);
}

/* Queued messages stack. These rules moved here with the markup when the composer was split out of
   ChatWindow — Blazor scoped CSS is per-component, so the copies still in ChatWindow.razor.css no
   longer match these elements. */
.queued-messages-stack[b-mw7yryrz9y] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 8px;
    max-height: 180px;
    overflow-y: auto;
    padding: 2px;
}

.queued-message-item[b-mw7yryrz9y] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 12px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.85rem;
    transition: all 0.2s ease;
}

.queued-message-item--editing[b-mw7yryrz9y] {
    background: #fff7ed;
    border-color: #fed7aa;
    box-shadow: 0 0 0 1px #fed7aa;
}

/* Armed to steer: reads as "this one is going in early", distinct from the editing highlight. */
.queued-message-item--steering[b-mw7yryrz9y] {
    background: #fffbeb;
    border-color: var(--mud-palette-warning, #f59e0b);
    box-shadow: 0 0 0 1px var(--mud-palette-warning, #f59e0b);
}

.queued-message-text[b-mw7yryrz9y] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--mud-palette-text-primary, #1e293b);
}

.queued-message-actions[b-mw7yryrz9y] {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

/* Pending attachment chips live in this component after the composer split; the copies in
   ChatWindow.razor.css no longer match (Blazor scoped CSS is per-component). Without these
   rules the remove control is unstyled and easy to miss or mis-hit. */
.chat-pending-attachments[b-mw7yryrz9y] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.4rem;
}

.chat-pending-attachment[b-mw7yryrz9y] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.15rem 0.35rem 0.15rem 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, #fff 88%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 25%, #fff 75%);
    font-size: 0.72rem;
}

.chat-pending-attachment--processing[b-mw7yryrz9y] {
    opacity: 0.85;
}

.chat-pending-attachment-name[b-mw7yryrz9y] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 12rem;
}

.chat-pending-attachment-spinner[b-mw7yryrz9y] {
    width: 1rem !important;
    height: 1rem !important;
}

.chat-pending-attachment-remove[b-mw7yryrz9y] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0.1rem;
    margin: 0;
    color: inherit;
    opacity: 0.72;
    line-height: 1;
    border-radius: 999px;
}

.chat-pending-attachment-remove:hover:not(:disabled)[b-mw7yryrz9y] {
    opacity: 1;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, transparent);
}

.chat-pending-attachment-remove:disabled[b-mw7yryrz9y] {
    opacity: 0.35;
    cursor: default;
}

.chat-pending-attachment-remove[b-mw7yryrz9y]  .mud-icon-root {
    font-size: 1rem;
}

.chat-followup-wrap[b-mw7yryrz9y] {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 0.5rem;
    min-width: 0;
}

.chat-followup-wrap[b-mw7yryrz9y]  .mud-input-control {
    margin-top: 0;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}

.chat-attach-btn[b-mw7yryrz9y],
.chat-send-btn[b-mw7yryrz9y] {
    flex: 0 0 auto;
    width: 2.35rem;
    height: 2.35rem;
    border: none;
    border-radius: 10px;
    background: #f3f4f6;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.chat-attach-btn:hover:not(:disabled)[b-mw7yryrz9y],
.chat-send-btn:hover:not(:disabled)[b-mw7yryrz9y] {
    background: #eef2f7;
    box-shadow: none;
    opacity: 1;
}

.chat-attach-btn:disabled[b-mw7yryrz9y],
.chat-send-btn:disabled[b-mw7yryrz9y] {
    opacity: 0.4;
    cursor: default;
}

.chat-attach-btn[b-mw7yryrz9y]  .mud-icon-root {
    color: var(--mud-palette-text-secondary, #64748b) !important;
    font-size: 1.25rem;
}

.chat-send-btn--stop[b-mw7yryrz9y]  .mud-icon-root {
    color: var(--mud-palette-error, #d32f2f) !important;
}

.chat-send-btn[b-mw7yryrz9y]  .mud-icon-root {
    color: var(--orange) !important;
    font-size: 1.5rem;
}
/* /Components/ChatWindow/ChatDisclaimer.razor.rz.scp.css */
.chat-disclaimer[b-zs3s19madv] {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 4px;
    text-align: center;
}

.chat-disclaimer[b-zs3s19madv]  .chat-disclaimer-link {
    cursor: pointer;
}
/* /Components/ChatWindow/ChatThinkingPanel.razor.rz.scp.css */
.thinking-interstitial[b-i9zer0a62t] {
    padding: 2px 16px 6px;
    max-width: 92%;
}

.thinking-toggle[b-i9zer0a62t] {
    min-width: 0;
    padding-left: 0;
    justify-content: flex-start;
    text-transform: none;
}

.thinking-panel[b-i9zer0a62t] {
    --thinking-panel-background: var(--mud-palette-surface, #fff);
    background: var(--thinking-panel-background);
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.thinking-label[b-i9zer0a62t] {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.thinking-content[b-i9zer0a62t] {
    min-width: 0;
}

.thinking-content-inner[b-i9zer0a62t] {
    min-width: 0;
}

.thinking-content-scroll[b-i9zer0a62t] {
    min-width: 0;
}

.thinking-content--preview[b-i9zer0a62t] {
    --thinking-preview-line-height: 1.65;
    --thinking-preview-font-size: 0.875rem;
    --thinking-preview-visible-lines: 7;
    --thinking-preview-fade-lines: 4;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: calc(
        var(--thinking-preview-font-size) * var(--thinking-preview-line-height) * var(--thinking-preview-visible-lines));
    min-height: calc(
        var(--thinking-preview-font-size) * var(--thinking-preview-line-height) * var(--thinking-preview-visible-lines));
    max-height: calc(
        var(--thinking-preview-font-size) * var(--thinking-preview-line-height) * var(--thinking-preview-visible-lines));
    overflow: hidden;
    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(0, 0, 0, 0.35) 18%,
        rgba(0, 0, 0, 0.72) 34%,
        #000 50%,
        #000 100%);
    mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(0, 0, 0, 0.35) 18%,
        rgba(0, 0, 0, 0.72) 34%,
        #000 50%,
        #000 100%);
}

.thinking-content--preview .thinking-content-scroll[b-i9zer0a62t] {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex: 0 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
}

.thinking-content--preview .thinking-content-inner[b-i9zer0a62t] {
    flex: 0 0 auto;
    min-width: 0;
}

.thinking-panel--clickable[b-i9zer0a62t] {
    cursor: pointer;
}

.assistant-response[b-i9zer0a62t] {
    min-width: 0;
}

.assistant-response[b-i9zer0a62t]  .chat-markdown {
    font-size: 0.875rem;
    line-height: 1.65;
    color: var(--mud-palette-text-primary, inherit);
    word-break: break-word;
}

.assistant-response[b-i9zer0a62t]  .chat-markdown > :first-child {
    margin-top: 0;
}

.assistant-response[b-i9zer0a62t]  .chat-markdown > :last-child {
    margin-bottom: 0;
}
/* /Components/ChatWindow/ChatToolActivityPills.razor.rz.scp.css */
.tool-info-run[b-4kmydo0sns] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-left: 10px;
    width: 100%;
}

.tool-info-run--inline[b-4kmydo0sns] {
    margin: 0.35rem 0 0.55rem;
    width: auto;
}

.thinking-tool-run[b-4kmydo0sns] {
    margin-top: 8px;
    margin-left: 0;
    width: 100%;
}

.tool-info-run--bare[b-4kmydo0sns] {
    margin-left: 4px;
}

.tool-info-pill[b-4kmydo0sns] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: min(100%, 22rem);
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--mud-palette-surface, #fff);
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    color: var(--mud-palette-text-secondary, #64748b);
    font-size: 0.72rem;
    font-style: italic;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tool-info-pill--clickable[b-4kmydo0sns] {
    cursor: pointer;
    font-style: normal;
    text-align: left;
}

.tool-info-pill--clickable:hover[b-4kmydo0sns] {
    border-color: var(--mud-palette-primary, #594ae2);
    color: var(--mud-palette-text-primary, #1e293b);
}

.tool-info-pill--group[b-4kmydo0sns] {
    cursor: pointer;
    font-style: normal;
    font-weight: 500;
    text-align: left;
}

.tool-info-pill--group:hover[b-4kmydo0sns] {
    border-color: var(--mud-palette-primary, #594ae2);
    color: var(--mud-palette-text-primary, #1e293b);
}

.tool-info-pill__chevron[b-4kmydo0sns] {
    flex: 0 0 auto;
    font-size: 0.65rem;
    font-style: normal;
    line-height: 1;
    opacity: 0.7;
}

/* One-shot arrival flash when a pill enters in the running state: a glow ring that
   "hammers in" and settles. Plays only when the element mounts (or turns) running,
   so history-loaded pills stay quiet. */
@keyframes tool-pill-arrive-b-4kmydo0sns {
    0% {
        transform: scale(1.08);
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--mud-palette-primary, #594ae2) 50%, transparent),
                    0 0 14px color-mix(in srgb, var(--mud-palette-primary, #594ae2) 40%, transparent);
    }
    60% {
        transform: scale(0.99);
        box-shadow: 0 0 0 6px transparent,
                    0 0 2px transparent;
    }
    100% {
        transform: scale(1);
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04),
                    0 0 0 transparent;
    }
}

.tool-info-pill--running[b-4kmydo0sns] {
    border-color: color-mix(in srgb, var(--mud-palette-primary, #594ae2) 35%, var(--mud-palette-lines-default, #e2e8f0));
    animation: tool-pill-arrive-b-4kmydo0sns 0.85s cubic-bezier(0.25, 0.9, 0.3, 1) 1;
}

@media (prefers-reduced-motion: reduce) {
    .tool-info-pill--running[b-4kmydo0sns] {
        animation: none;
    }
}

.tool-info-pill__spinner[b-4kmydo0sns] {
    width: 12px !important;
    height: 12px !important;
    flex: 0 0 auto;
}

.tool-info-pill__label[b-4kmydo0sns] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* A running subagent delegation grows to two lines: the pill label, plus a live
   "what is it doing right now · elapsed" status that wraps onto its own row. */
.tool-info-pill--with-progress[b-4kmydo0sns] {
    max-width: min(100%, 30rem);
    flex-wrap: wrap;
    align-items: flex-start;
    padding-top: 4px;
    padding-bottom: 4px;
}

.tool-info-pill--with-progress .tool-info-pill__spinner[b-4kmydo0sns] {
    margin-top: 2px;
}

.tool-info-pill__progress[b-4kmydo0sns] {
    flex: 0 0 100%;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.66rem;
    font-style: normal;
    font-variant-numeric: tabular-nums;
    line-height: 1.3;
    opacity: 0.8;
}

/* Delegations below the first level are indented so the chain reads as a hierarchy. */
.tool-info-pill--nested[b-4kmydo0sns] {
    margin-left: 14px;
}

/* ── Full-width sub-agent delegation card ───────────────────────────────
   Own flex row so it never sits awkwardly beside other tool pills. */
.tool-info-delegation[b-4kmydo0sns] {
    position: relative;
    display: flex;
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    margin: 2px 0;
    padding: 8px 12px;
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #594ae2) 22%, var(--mud-palette-lines-default, #e2e8f0));
    background: color-mix(in srgb, var(--mud-palette-primary, #594ae2) 6%, var(--mud-palette-surface, #fff));
    color: var(--mud-palette-text-secondary, #64748b);
    font-size: 0.78rem;
    font-style: normal;
    line-height: 1.35;
    text-align: left;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.tool-info-delegation--clickable[b-4kmydo0sns] {
    cursor: pointer;
}

.tool-info-delegation--clickable:hover[b-4kmydo0sns] {
    border-color: color-mix(in srgb, var(--mud-palette-primary, #594ae2) 45%, var(--mud-palette-lines-default, #e2e8f0));
    color: var(--mud-palette-text-primary, #1e293b);
}

.tool-info-delegation--nested[b-4kmydo0sns] {
    margin-left: 14px;
    width: calc(100% - 14px);
}

.tool-info-delegation__row[b-4kmydo0sns] {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    width: 100%;
}

.tool-info-delegation__spinner[b-4kmydo0sns] {
    width: 14px !important;
    height: 14px !important;
    flex: 0 0 auto;
    margin-top: 14px;
}

.tool-info-delegation__done[b-4kmydo0sns] {
    flex: 0 0 auto;
    margin-top: 14px;
    width: 14px;
    height: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--mud-palette-success, #2e7d32);
    line-height: 1;
}

.tool-info-delegation__text[b-4kmydo0sns] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1 1 auto;
}

.tool-info-delegation__eyebrow[b-4kmydo0sns] {
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.72;
    line-height: 1.2;
}

.tool-info-delegation__title[b-4kmydo0sns] {
    position: relative;
    color: var(--mud-palette-text-primary, #1e293b);
    font-size: 0.82rem;
    font-weight: 600;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tool-info-delegation__detail[b-4kmydo0sns],
.tool-info-delegation__progress[b-4kmydo0sns] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.7rem;
    font-variant-numeric: tabular-nums;
    opacity: 0.85;
}

/* Continuous subtle scanlines while the child agent is running. */
.tool-info-delegation__rain[b-4kmydo0sns] {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    opacity: 0.18;
    background: repeating-linear-gradient(
        0deg,
        color-mix(in srgb, var(--mud-palette-primary, #594ae2) 14%, transparent) 0,
        color-mix(in srgb, var(--mud-palette-primary, #594ae2) 22%, transparent) 1px,
        transparent 3px
    );
    animation: tool-delegation-rain-b-4kmydo0sns 8s linear infinite;
}

@keyframes tool-delegation-rain-b-4kmydo0sns {
    0% { transform: translateY(-40%); }
    100% { transform: translateY(40%); }
}

/*
   Title glitch is one-shot only: remounted with --glitching when ProgressText changes.
   Why: a persistent ::before (infinite glitch) settles as a visible teal ghost overlay;
   the burst ends at opacity 0 so nothing is left behind.
*/
.tool-info-delegation__title--glitching[b-4kmydo0sns]::before {
    content: attr(data-text);
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    pointer-events: none;
    color: color-mix(in srgb, var(--mud-palette-primary, #594ae2) 80%, #0f0 20%);
    text-shadow: 0 0 4px color-mix(in srgb, var(--mud-palette-primary, #594ae2) 40%, transparent);
    animation: tool-delegation-glitch-burst-b-4kmydo0sns 0.7s ease-out 1 forwards;
}

/* One-shot border/glow kick remounted whenever ProgressText changes. */
.tool-info-delegation__activity-flash[b-4kmydo0sns] {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    border-radius: inherit;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--mud-palette-primary, #594ae2) 35%, transparent),
                0 0 18px color-mix(in srgb, var(--mud-palette-primary, #594ae2) 22%, transparent);
    animation: tool-delegation-activity-flash-b-4kmydo0sns 0.7s ease-out 1 forwards;
}

.tool-info-delegation__progress--pulse[b-4kmydo0sns] {
    animation: tool-delegation-progress-pulse-b-4kmydo0sns 0.7s ease-out 1;
}

@keyframes tool-delegation-activity-flash-b-4kmydo0sns {
    0% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes tool-delegation-glitch-burst-b-4kmydo0sns {
    0% {
        opacity: 1;
        clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
        transform: translate(-2px, -1px);
    }
    35% {
        opacity: 1;
        clip-path: polygon(0 0, 100% 0, 100% 18%, 0 18%);
        transform: translate(-3px, -2px);
    }
    65% {
        opacity: 0.85;
        clip-path: polygon(0 78%, 100% 78%, 100% 100%, 0 100%);
        transform: translate(3px, 2px);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 100% 0);
        transform: translate(0);
    }
}

@keyframes tool-delegation-progress-pulse-b-4kmydo0sns {
    0% {
        opacity: 1;
        color: var(--mud-palette-primary, #594ae2);
        transform: translateX(0);
    }
    35% {
        opacity: 1;
        transform: translateX(1px);
    }
    100% {
        opacity: 0.85;
        color: inherit;
        transform: translateX(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .tool-info-delegation__rain[b-4kmydo0sns],
    .tool-info-delegation__title--glitching[b-4kmydo0sns]::before,
    .tool-info-delegation__activity-flash[b-4kmydo0sns],
    .tool-info-delegation__progress--pulse[b-4kmydo0sns] {
        animation: none;
    }

    .tool-info-delegation__title--glitching[b-4kmydo0sns]::before,
    .tool-info-delegation__activity-flash[b-4kmydo0sns] {
        opacity: 0;
        content: none;
    }
}
/* /Components/ChatWindow/ChatUserTurn.razor.rz.scp.css */
/* Intent: User-bubble chrome shared by ChatWindow and AIChatSubagentDialog.
   Why: styles previously lived under ChatWindow ::deep and never applied in dialogs. */

.chat-user-turn[b-7xy90psd73] {
    align-self: flex-end;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 10px;
    color: #374151;
    font-size: 0.85rem;
    line-height: 1.45;
    padding: 0.5rem 1rem;
    word-break: break-word;
    width: 80%;
}

.chat-user-turn[b-7xy90psd73]  .chat-markdown p {
    margin: 0;
}

.chat-user-turn[b-7xy90psd73]  .chat-markdown p + p {
    margin-top: 0.5em;
}

/* Wrapper that owns the user bubble's width/alignment so the hover toolbar can sit under it.
   margin-left:auto right-aligns in both block and flex parents. */
.chat-user-turn-wrap[b-7xy90psd73] {
    align-self: flex-end;
    width: 80%;
    margin-left: auto;
    display: flex;
    flex-direction: column;
}

.chat-user-turn-wrap .chat-user-turn[b-7xy90psd73] {
    width: 100%;
    align-self: stretch;
}

/* Reserved-height row so showing the toolbar on hover never shifts layout. */
.chat-user-turn-toolbar[b-7xy90psd73] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    height: 30px;
    margin-top: 2px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 120ms ease-in-out;
}

.chat-user-turn-wrap:hover .chat-user-turn-toolbar[b-7xy90psd73],
.chat-user-turn-wrap:focus-within .chat-user-turn-toolbar[b-7xy90psd73] {
    opacity: 1;
    pointer-events: auto;
}

.chat-user-turn-toolbar .chat-turn-timestamp[b-7xy90psd73] {
    font-size: 0.7rem;
    color: #9ca3af;
    white-space: nowrap;
    padding-left: 2px;
}

.chat-user-turn-toolbar .chat-turn-toolbar-actions[b-7xy90psd73] {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
}

.chat-user-turn-toolbar[b-7xy90psd73]  .mud-icon-button {
    padding: 4px;
}

/* Branch selector for a message that was edited. Deliberately NOT hover-gated like the toolbar
   above: this is navigation, and a hidden "there is another version of this" would never be found. */
.chat-branch-nav[b-7xy90psd73] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 2px;
    margin-bottom: 2px;
    color: #6b7280;
    font-size: 0.72rem;
}

.chat-branch-nav-position[b-7xy90psd73] {
    font-variant-numeric: tabular-nums;
    min-width: 2.2em;
    text-align: center;
}

.chat-branch-nav[b-7xy90psd73]  .mud-icon-button {
    padding: 2px;
}

/* User-reported session feedback: user-side bubble in a distinct color with a label above. */
.chat-feedback-wrap[b-7xy90psd73] {
    align-self: flex-end;
    width: 80%;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.chat-feedback-label-row[b-7xy90psd73] {
    align-self: flex-end;
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding-right: 4px;
}

.chat-feedback-label[b-7xy90psd73] {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #7c3aed;
}

.chat-feedback-human-review[b-7xy90psd73] {
    font-size: 0.7rem;
    font-weight: 500;
    color: #b45309;
}

.chat-feedback-turn[b-7xy90psd73] {
    width: 100%;
    background: #f5f3ff;
    border: 1px solid #c4b5fd;
    color: #4c1d95;
}

.chat-feedback-toolbar[b-7xy90psd73] {
    align-self: flex-end;
    display: flex;
    align-items: center;
    gap: 4px;
    padding-right: 2px;
    opacity: 0.85;
}

.chat-feedback-toolbar[b-7xy90psd73]  .mud-icon-button {
    padding: 2px;
}

/* /Components/ChatWindow/ChatWindow.razor.rz.scp.css */
.chat-window[b-a04a696tgk] {
    /* background: var(--mud-palette-background, #fff); */
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 280px;
    max-height: 420px;
}

/* Side panel / full-column hosts: grow with parent flex; default max-height stays for compact embeds */
.chat-window.chat-window--fill[b-a04a696tgk] {
    max-height: none;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    align-self: stretch;
}

/* Embedded under a parent card: host removes outer border/radius via ::deep */
.chat-window--no-header[b-a04a696tgk] {
    min-height: 260px;
}

.chat-header[b-a04a696tgk] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* gap: 8px; */
    padding: 10px;
    /* border-bottom: 1px solid var(--mud-palette-lines-default, #e2e8f0); */
    gap: 0.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #f1f5f9;
}

.chat-header-leading[b-a04a696tgk] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.chat-header-actions[b-a04a696tgk] {
    flex-shrink: 0;
    align-self: flex-start;
}

/* .chat-header-icon-wrap {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 14%, var(--mud-palette-surface, #f8fafc) 86%);
    color: var(--mud-palette-primary, #1976d2);
}

.chat-header-icon-wrap ::deep .mud-icon-root {
    font-size: 1.15rem !important;
} */

.chat-header-text[b-a04a696tgk] {
    flex: 1;
    min-width: 0;
}

.chat-header-title[b-a04a696tgk] {
    font-weight: 600 !important;
    line-height: 1.3 !important;
    margin: 0 !important;
}

.chat-header-subtitle[b-a04a696tgk] {
    display: block;
    margin: 4px 0 0 !important;
    line-height: 1.35 !important;
}

.chat-placeholder[b-a04a696tgk] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.875rem;
    max-width: 22rem;
    margin-inline: auto;
    min-height: 12rem;
    padding-block: 1rem;
}

.chat-placeholder-icon-wrap[b-a04a696tgk] {
    flex-shrink: 0;
    display: flex;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 45px;
	padding: 0;
	margin: 0;
	border: 1px solid #ffb488;
	border-radius: 50%;
	background: linear-gradient(135deg, #ffeedf 0%, #ffb774 100%);
	box-shadow: 0 2px 8px rgba(255, 180, 136, 0.35);
}

.chat-placeholder-icon[b-a04a696tgk] {
    opacity: 0.92;
}

.chat-placeholder-text[b-a04a696tgk] {
    line-height: 1.55;
    margin: 0 !important;
}

.chat-turn-root[b-a04a696tgk] {
    display: contents;
}

.chat-messages[b-a04a696tgk] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    /* scrollbar-color: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 35%, transparent) transparent; */
}

/* Why: flex gap applies between every child; tool activity is grouped into one wrapping row. */

.chat-messages[b-a04a696tgk]::-webkit-scrollbar {
    width: 6px;
}

.chat-messages[b-a04a696tgk]::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 35%, transparent);
    border-radius: 999px;
}

.chat-messages[b-a04a696tgk]::-webkit-scrollbar-track {
    background: transparent;
}

/* Why: markdown tables + .assistant-response chrome -> ChatAssistantContent.razor.css;
   user-turn/feedback chrome -> ChatUserTurn.razor.css;
   AI message bubble + wrap/toolbar -> ChatAssistantRun.razor.css (shared with subagent dialog). */

.chat-ai-progress[b-a04a696tgk] {
    margin: 8px 0;
}

.ai-progress[b-a04a696tgk] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font: 14px system-ui, sans-serif;
    color: var(--mud-palette-text-secondary, #666);
}

.ai-progress__dots[b-a04a696tgk] {
    display: inline-flex;
    gap: 0.25rem;
}

.ai-progress__dots span[b-a04a696tgk] {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.35;
    animation: ai-dot-pulse-b-a04a696tgk 1.2s infinite ease-in-out;
}

.ai-progress__dots span:nth-child(2)[b-a04a696tgk] {
    animation-delay: 0.15s;
}

.ai-progress__dots span:nth-child(3)[b-a04a696tgk] {
    animation-delay: 0.3s;
}

@keyframes ai-dot-pulse-b-a04a696tgk {
    0%, 80%, 100% {
        transform: scale(0.8);
        opacity: 0.3;
    }
    40% {
        transform: scale(1);
        opacity: 1;
    }
}

.ai-progress__text[b-a04a696tgk] {
    min-width: 6ch;
}

.chat-log-bottom-content[b-a04a696tgk] {
    flex-shrink: 0;
    border-top: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 96%, var(--mud-palette-primary, #1976d2) 4%);
}

/* Branches left behind by a rewind have no message below them to carry a selector, so they are
   offered here instead. This strip is also the undo for a rewind. */
.chat-branch-continuations[b-a04a696tgk] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem;
    border-top: 1px dashed var(--mud-palette-lines-default, #e2e8f0);
    color: var(--mud-palette-text-secondary, #6b7280);
    font-size: 0.78rem;
}

.chat-branch-continuations-label[b-a04a696tgk] {
    flex: 1 1 auto;
}

/* A previewed rewind: nothing is written yet, so this reads as an in-progress edit rather than a
   state the conversation is already in. */
.chat-branch-pending-rewind[b-a04a696tgk] {
    border-top-style: solid;
    background: color-mix(in srgb, var(--mud-palette-surface, #f8fafc) 92%, var(--mud-palette-warning, #ff9800) 8%);
}

.chat-followup[b-a04a696tgk] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.2rem;
}

.chat-input-toolbar[b-a04a696tgk] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-top: 6px;
}

.chat-reasoning-effort-menu[b-a04a696tgk] {
    margin-left: auto;
    flex-shrink: 0;
}

.chat-reasoning-effort-trigger[b-a04a696tgk] {
    background: none;
    border: none;
    padding: 2px 4px;
    cursor: pointer;
    border-radius: 4px;
    line-height: 1.2;
}

.chat-reasoning-effort-trigger:hover:not(:disabled)[b-a04a696tgk] {
    background: color-mix(in srgb, var(--mud-palette-action-hover, #f3f4f6) 80%, transparent);
}

.chat-reasoning-effort-trigger:disabled[b-a04a696tgk] {
    opacity: 0.5;
    cursor: default;
}

.chat-reasoning-effort-trigger--locked[b-a04a696tgk] {
    cursor: default;
}

.chat-reasoning-effort-menu-item--selected[b-a04a696tgk] {
    font-weight: 600;
}

.chat-followup-wrap[b-a04a696tgk] {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.chat-window[b-a04a696tgk]  .chat-followup-wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.chat-followup-wrap[b-a04a696tgk]  .mud-input-control,
.chat-window[b-a04a696tgk]  .chat-followup-wrap .mud-input-control {
    margin-top: 0;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}

.chat-window[b-a04a696tgk]  .chat-attach-btn,
.chat-window[b-a04a696tgk]  .chat-send-btn {
    flex: 0 0 auto;
}

.chat-followup-wrap[b-a04a696tgk]  .mud-input-root {
    background: #fff;
    border-radius: 10px;
}

.chat-followup-wrap[b-a04a696tgk]  .mud-input-outlined-border {
    border-color: #e5e7eb !important;
    border-radius: 10px !important;
}

.chat-followup-wrap[b-a04a696tgk]  .mud-input-root:hover .mud-input-outlined-border,
.chat-followup-wrap[b-a04a696tgk]  .mud-input-root.mud-focused .mud-input-outlined-border {
    border-color: #fed7aa !important;
    box-shadow: 0 0 0 3px rgba(251, 146, 60, 0.12);
}

.chat-input-field[b-a04a696tgk]  textarea {
    line-height: 1.45;
    resize: none;
    overflow-y: auto !important;
}

.chat-user-message-text[b-a04a696tgk] {
    white-space: pre-wrap;
    word-break: break-word;
}

.chat-user-attachments[b-a04a696tgk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.35rem;
}

.chat-attachment-chip[b-a04a696tgk] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, #fff 88%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 25%, #fff 75%);
    font-size: 0.72rem;
}

.chat-attachment-chip--downloadable[b-a04a696tgk] {
    cursor: pointer;
    font: inherit;
    color: inherit;
    line-height: inherit;
}

.chat-attachment-chip--downloadable:hover[b-a04a696tgk] {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 20%, #fff 80%);
}

.chat-attachment-chip--downloadable:focus-visible[b-a04a696tgk] {
    outline: 2px solid var(--mud-palette-primary, #1976d2);
    outline-offset: 1px;
}

.chat-attachment-chip-label[b-a04a696tgk] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 12rem;
}

.chat-pending-attachments[b-a04a696tgk] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.chat-pending-attachment[b-a04a696tgk] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.15rem 0.35rem 0.15rem 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, #fff 88%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 25%, #fff 75%);
    font-size: 0.72rem;
}

.chat-pending-attachment--processing[b-a04a696tgk] {
    opacity: 0.85;
}

.chat-pending-attachment-name[b-a04a696tgk] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 12rem;
}

.chat-pending-attachment-spinner[b-a04a696tgk] {
    width: 1rem !important;
    height: 1rem !important;
}

.chat-pending-attachment-remove[b-a04a696tgk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
    margin: 0;
    color: inherit;
    opacity: 0.72;
    line-height: 1;
}

.chat-pending-attachment-remove:hover:not(:disabled)[b-a04a696tgk] {
    opacity: 1;
}

.chat-pending-attachment-remove:disabled[b-a04a696tgk] {
    opacity: 0.35;
    cursor: default;
}

.chat-drag-overlay[b-a04a696tgk] {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 10%, #fff 90%);
    border: 2px dashed color-mix(in srgb, var(--mud-palette-primary, #1976d2) 45%, #fff 55%);
    pointer-events: none;
}

.chat-tool-buttons[b-a04a696tgk] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.chat-tool-button[b-a04a696tgk] {
    border-radius: 8px;
}

.chat-tool-button--active[b-a04a696tgk] {
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--mud-palette-primary, #1976d2) 35%, transparent);
}

/* .assistant-response markdown/segment styles live on ChatAssistantContent.razor.css */


/* Queued messages stack styling */
.queued-messages-stack[b-a04a696tgk] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 8px;
    max-height: 180px;
    overflow-y: auto;
    padding: 2px;
}

.queued-message-item[b-a04a696tgk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 12px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    font-size: 0.85rem;
    transition: all 0.2s ease;
}

.queued-message-item--editing[b-a04a696tgk] {
    background: #fff7ed;
    border-color: #fed7aa;
    box-shadow: 0 0 0 1px #fed7aa;
}

.queued-message-text[b-a04a696tgk] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--mud-palette-text-primary, #1e293b);
}

.queued-message-actions[b-a04a696tgk] {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

/* /Components/Dialogs/AIChatSearchDialog.razor.rz.scp.css */
.chat-search-dialog[b-ptb43vh3u9] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 380px;
}

.chat-search-results[b-ptb43vh3u9] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 55vh;
    min-height: 300px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    padding-right: 2px;
}

.chat-search-state[b-ptb43vh3u9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    padding: 40px 16px;
    text-align: center;
    color: var(--mud-palette-text-secondary);
}

.chat-search-state[b-ptb43vh3u9]  .chat-search-state-icon {
    font-size: 2.5rem;
    opacity: 0.4;
    margin-bottom: 12px;
}

.chat-search-state p[b-ptb43vh3u9] {
    margin: 0 0 4px;
    font-weight: 500;
}

.chat-search-state small[b-ptb43vh3u9] {
    opacity: 0.7;
}

.chat-search-result[b-ptb43vh3u9] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #ffffff;
    color: inherit;
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.chat-search-result:hover[b-ptb43vh3u9],
.chat-search-result:focus-visible[b-ptb43vh3u9] {
    background: #eff6ff;
    border-color: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 40%, #e2e8f0);
    outline: none;
}

.chat-search-result-head[b-ptb43vh3u9] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-width: 0;
}

.chat-search-result-title[b-ptb43vh3u9] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
}

.chat-search-result-time[b-ptb43vh3u9] {
    flex-shrink: 0;
    font-size: 0.72rem;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
}

.chat-search-result-snippet[b-ptb43vh3u9] {
    font-size: 0.8rem;
    line-height: 1.45;
    color: #475569;
    overflow-wrap: anywhere;
}

.chat-search-result mark[b-ptb43vh3u9] {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 18%, #fff 82%);
    color: inherit;
    border-radius: 3px;
    padding: 0 1px;
    font-weight: 600;
}

.chat-search-result-meta[b-ptb43vh3u9] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.chat-search-result-tag[b-ptb43vh3u9] {
    display: inline-flex;
    align-items: center;
    padding: 1px 8px;
    border-radius: 999px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    color: #64748b;
    font-size: 0.68rem;
    font-weight: 600;
    white-space: nowrap;
}
/* /Components/Dialogs/AIChatSubagentDialog.razor.rz.scp.css */
.subagent-dialog-log[b-3qgyglrpr4] {
    max-height: min(70vh, 640px);
    overflow-y: auto;
    padding: 0.25rem 0.5rem;
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 8px;
    background: var(--mud-palette-background-grey, #f8fafc);
}

/* Live "what is it doing right now · elapsed" line beside the Working chip. */
.subagent-dialog-progress[b-3qgyglrpr4] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 24rem;
}
/* /Components/Dialogs/AITools/AiTestResultDetailDialog.razor.rz.scp.css */
.ai-test-result-text[b-u32rhylcn8] {
    max-height: 360px;
    overflow-y: auto;
    background: var(--mud-palette-background-gray);
    border-radius: 4px;
    padding: 12px;
    font-size: 0.85rem;
    white-space: pre-wrap;
    word-break: break-word;
    margin: 0;
}
/* /Components/Dialogs/AITools/AiTestRunResultsDialog.razor.rz.scp.css */
.summary-row-with-pagination[b-hi7ut4yk5i] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

[b-hi7ut4yk5i] .mud-table thead th {
    background-color: #f8f9fa !important;
    font-weight: 600 !important;
    color: #495057 !important;
    font-size: 0.9rem !important;
    padding: 8px 12px !important;
    border-bottom: 2px solid #dee2e6 !important;
    white-space: nowrap !important;
    user-select: none !important;
}

[b-hi7ut4yk5i] .mud-table tbody td {
    padding: 8px 12px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #dee2e6 !important;
}

[b-hi7ut4yk5i] .mud-table tbody tr:hover {
    background-color: #f8f9fa !important;
}

@media (max-width: 768px) {
    [b-hi7ut4yk5i] .mud-table thead th,
    [b-hi7ut4yk5i] .mud-table tbody td {
        padding: 8px !important;
        font-size: 0.875rem;
    }
}

.ai-test-log[b-hi7ut4yk5i] {
    max-height: 280px;
    overflow-y: auto;
    background: var(--mud-palette-background-gray);
    border-radius: 4px;
    padding: 12px;
    font-size: 0.78rem;
    white-space: pre-wrap;
    word-break: break-word;
    margin-bottom: 0;
}
/* /Components/Dialogs/AppActivityDetailDialog.razor.rz.scp.css */
.activity-detail-facts[b-87zu8dw1b9] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px 16px;
}

.activity-detail-fact[b-87zu8dw1b9] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.activity-detail-fact__label[b-87zu8dw1b9] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--mud-palette-text-secondary);
}

.activity-detail-fact__value[b-87zu8dw1b9] {
    font-size: 0.9rem;
    color: var(--mud-palette-text-primary);
    overflow-wrap: anywhere;
}

/* The statement is the point of this dialog: keep its own line breaks and indentation,
   and let it scroll rather than stretch the dialog to the width of one long batch. */
.activity-detail-cql[b-87zu8dw1b9] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8125rem;
    line-height: 1.45;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 12px;
    margin: 4px 0 0 0;
    max-height: 40vh;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
}
/* /Components/Files/AIChatSessionFilesPanel.razor.rz.scp.css */
.ai-chat-session-files-panel[b-av6s4yboze] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    padding: 10px 8px 12px;
    background: var(--mud-palette-surface, #fff);
    border-left: 1px solid var(--mud-palette-lines-default, #e2e8f0);
}

.ai-chat-session-files-panel__header[b-av6s4yboze] {
    flex: 0 0 auto;
    padding: 0 4px 8px;
}

.ai-chat-session-files-panel__title[b-av6s4yboze] {
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--mud-palette-text-secondary, #64748b);
}

.ai-chat-session-files-panel__empty[b-av6s4yboze] {
    padding: 8px 4px;
    color: var(--mud-palette-text-secondary, #64748b);
}

.ai-chat-session-files-panel__list[b-av6s4yboze] {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow: auto;
    min-height: 0;
    flex: 1 1 auto;
}

.ai-chat-session-files-panel__item[b-av6s4yboze] {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    padding: 6px 4px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.ai-chat-session-files-panel__item:hover[b-av6s4yboze] {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 8%, transparent);
}

.ai-chat-session-files-panel__name[b-av6s4yboze] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.8rem;
}
/* /Components/Pages/AIApps/AIApps.razor.rz.scp.css */
.page-header[b-3wco63xbjw] {
    padding-bottom: 7px;
    margin-bottom: 1rem;
    position: relative;
}

.page-header[b-3wco63xbjw]::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    right: 0;
    height: 1px;
    background-color: #e4e4e7;
    width: 100vw;
    margin-left: -50vw;
}

.page-header h5[b-3wco63xbjw] {
    color: #1f2937;
    font-weight: 600;
}

.page-subtitle[b-3wco63xbjw] {
    color: #64748b;
}

.filter-toolbar[b-3wco63xbjw] {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}

.filter-toolbar-row[b-3wco63xbjw] {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.filter-toolbar-fields[b-3wco63xbjw] {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex: 1 1 320px;
    flex-wrap: wrap;
    margin-right: auto;
    min-width: 0;
}

.filter-toolbar-search[b-3wco63xbjw] {
    flex: 2 1 220px;
    min-width: 200px;
    max-width: 360px;
}

.filter-toolbar-select[b-3wco63xbjw] {
    flex: 1 1 160px;
    min-width: 140px;
    max-width: 220px;
}

.filter-toolbar-pagination[b-3wco63xbjw] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
    margin-left: auto;
}

/* Table styling — targets MudTable on this page */
[b-3wco63xbjw] .mud-table thead th {
    background-color: #f8f9fa !important;
    font-weight: 600 !important;
    color: #495057 !important;
    font-size: 0.9rem !important;
    padding: 8px 12px !important;
    border-bottom: 2px solid #dee2e6 !important;
    white-space: nowrap !important;
    user-select: none !important;
}

[b-3wco63xbjw] .mud-table tbody td {
    padding: 8px 12px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #dee2e6 !important;
}

[b-3wco63xbjw] .mud-table tbody tr:hover {
    background-color: #f8f9fa !important;
}

.name-cell[b-3wco63xbjw] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.name-text[b-3wco63xbjw] {
    font-weight: 500;
    color: #1e293b;
}

[b-3wco63xbjw] .type-chip {
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: 6px;
}

[b-3wco63xbjw] .shared-chip {
    background: #dcfce7 !important;
    color: #166534 !important;
}

[b-3wco63xbjw] .private-chip {
    background: #dbeafe !important;
    color: #1e40af !important;
}

[b-3wco63xbjw] .unpublished-chip {
    background: #f1f5f9 !important;
    color: #475569 !important;
}

.menu-item-content[b-3wco63xbjw] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
}

.menu-item-icon[b-3wco63xbjw] {
    flex-shrink: 0;
}

.menu-item-text[b-3wco63xbjw] {
    flex: 1;
}

@media (max-width: 768px) {
    [b-3wco63xbjw] .mud-table thead th,
    [b-3wco63xbjw] .mud-table tbody td {
        padding: 8px !important;
        font-size: 0.875rem;
    }
}
/* /Components/Pages/AIChat.razor.rz.scp.css */
.ai-chat-page[b-myvw3bwatz] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: stretch;
    align-self: stretch;
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: 100%;
    overflow: hidden;
}

/* Embedded hosts (dialogs) have no sidebar, so the chat should hug the container edge. */
.ai-chat-page--embedded .chat-container[b-myvw3bwatz] {
    padding-left: 0;
}

/* --- Left sidebar --- */

.ai-chat-sidebar[b-myvw3bwatz] {
    /* Width comes from VerticalPercentSplit (cookie-backed %); fill the left pane host. */
    flex: 1 1 auto;
    width: 100%;
    max-width: none;
    min-width: 0;
    display: flex;
    flex-direction: column;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #ffffff;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 12px rgba(15, 23, 42, 0.04);
}

.ai-chat-sidebar-header[b-myvw3bwatz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 12px;
    border-bottom: 1px solid #f1f5f9;
    flex-shrink: 0;
    background: #fafbfc;
}

.ai-chat-sidebar-title-group[b-myvw3bwatz] {
    min-width: 0;
}

.ai-chat-sidebar-header h5[b-myvw3bwatz] {
    margin: 0;
    color: #0f172a;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.ai-chat-sidebar-header-actions[b-myvw3bwatz] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}

.ai-chat-sidebar[b-myvw3bwatz]  .new-chat-btn {
    flex-shrink: 0;
    border-radius: 8px;
    min-width: 0;
    padding-inline: 8px;
    text-transform: none;
}

.ai-chat-sidebar[b-myvw3bwatz]  .batch-mode-btn,
.ai-chat-sidebar[b-myvw3bwatz]  .collapse-history-btn {
    flex-shrink: 0;
    border-radius: 8px;
}

/* Minimized chat history: thin side rail with expand + new-chat actions. */
.ai-chat-main[b-myvw3bwatz] {
    display: flex;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    align-items: stretch;
    overflow: hidden;
}

.ai-chat-history-rail[b-myvw3bwatz] {
    flex: 0 0 auto;
    width: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px 2px;
    margin-right: 0;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 12px rgba(15, 23, 42, 0.04);
}

.ai-chat-history-rail[b-myvw3bwatz]  .expand-history-btn,
.ai-chat-history-rail[b-myvw3bwatz]  .rail-new-chat-btn {
    border-radius: 8px;
}

.ai-chat-main--history-collapsed .chat-container[b-myvw3bwatz] {
    padding-left: 10px;
}

.batch-delete-toolbar[b-myvw3bwatz] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding: 4px 10px;
    border-bottom: 1px solid #f1f5f9;
    background: #fafbfc;
}

.batch-delete-toolbar[b-myvw3bwatz]  .mud-checkbox {
    margin-right: 0;
}

.batch-delete-toolbar[b-myvw3bwatz]  .mud-checkbox .mud-typography {
    font-size: 0.75rem;
}

.batch-delete-count[b-myvw3bwatz] {
    flex: 1;
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
}

.batch-delete-toolbar[b-myvw3bwatz]  .batch-delete-btn {
    flex-shrink: 0;
    border-radius: 8px;
    text-transform: none;
    padding: 2px 10px;
}

[b-myvw3bwatz] .session-select-icon {
    flex-shrink: 0;
    margin-top: 2px;
}

.chat-session-list[b-myvw3bwatz]  .session-item--checked {
    background: #fef2f2;
    border-color: #fecaca;
}

.chat-session-list[b-myvw3bwatz]  .session-item--checked:hover,
.chat-session-list[b-myvw3bwatz]  .session-item--checked:focus-visible {
    background: #fee2e2;
}

.ai-chat-sidebar-search[b-myvw3bwatz] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    padding: 8px 10px;
    border-bottom: 1px solid #f1f5f9;
    background: #ffffff;
}

.ai-chat-sidebar-search[b-myvw3bwatz]  .chat-history-search {
    flex: 1;
    min-width: 0;
}

.ai-chat-sidebar-search[b-myvw3bwatz]  .deep-search-btn {
    flex-shrink: 0;
    border-radius: 8px;
}

.ai-chat-sidebar-search[b-myvw3bwatz]  .mud-input-control {
    margin-top: 0;
}

.ai-chat-sidebar-search[b-myvw3bwatz]  .mud-input-root {
    background: #ffffff;
    border-radius: 8px;
    font-size: 0.8rem;
}

.ai-chat-sidebar-search[b-myvw3bwatz]  .mud-input-outlined-border {
    border-color: #e2e8f0 !important;
    border-radius: 8px !important;
}

.ai-chat-sidebar-search[b-myvw3bwatz]  .mud-input-root:hover .mud-input-outlined-border,
.ai-chat-sidebar-search[b-myvw3bwatz]  .mud-input-root.mud-focused .mud-input-outlined-border {
    border-color: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 50%, #e2e8f0) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, transparent);
}

.chat-session-list[b-myvw3bwatz] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    padding: 0 8px 10px;
    scrollbar-width: thin;
}

.chat-session-list[b-myvw3bwatz]  .chat-session-mud-list {
    padding: 0;
}

.chat-session-list[b-myvw3bwatz]  .session-item {
    width: 100%;
    border: 1px solid transparent;
    border-left: 3px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    padding: 10px 10px;
    text-align: left;
    user-select: none;
    transition:
        background 150ms ease,
        border-color 150ms ease,
        box-shadow 150ms ease;
}

.chat-session-list[b-myvw3bwatz]  .session-item + .session-item {
    border-top-color: #f1f5f9;
}

.chat-session-list[b-myvw3bwatz]  .session-item:hover,
.chat-session-list[b-myvw3bwatz]  .session-item:focus-visible {
    background: #eff6ff;
    outline: none;
}

.chat-session-list[b-myvw3bwatz]  .session-item.active {
    background: #eff6ff;
    border-left-color: var(--mud-palette-primary, #1976d2);
    box-shadow: 0 1px 0 rgba(37, 99, 235, 0.06), 0 10px 24px rgba(37, 99, 235, 0.08);
}

.load-more-row[b-myvw3bwatz] {
    padding: 6px 2px 2px;
}

.load-more-row[b-myvw3bwatz]  .load-more-btn {
    border-radius: 8px;
    text-transform: none;
    font-size: 0.78rem;
}

.loading-indicator[b-myvw3bwatz] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    color: var(--mud-palette-text-secondary);
    font-size: 0.875rem;
    flex: 1;
}

.empty-state[b-myvw3bwatz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 16px;
    text-align: center;
    color: var(--mud-palette-text-secondary);
    flex: 1;
}

.empty-state--compact[b-myvw3bwatz] {
    justify-content: flex-start;
    padding-top: 36px;
}

.empty-state .empty-icon[b-myvw3bwatz] {
    font-size: 2.5rem;
    opacity: 0.4;
    margin-bottom: 12px;
}

.empty-state p[b-myvw3bwatz] {
    margin: 0 0 4px;
    font-weight: 500;
}

.empty-state small[b-myvw3bwatz] {
    opacity: 0.7;
}

.session-row[b-myvw3bwatz] {
    display: flex;
    align-items: flex-start;
    width: 100%;
    gap: 8px;
}

.session-info[b-myvw3bwatz] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.session-title[b-myvw3bwatz] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.32;
}

.session-time[b-myvw3bwatz] {
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-myvw3bwatz] .session-msg-count {
    flex-shrink: 0;
    min-width: 24px;
    height: 20px;
    margin-top: 1px;
    font-size: 0.7rem;
    font-weight: 600;
}

/* Chat is stalled waiting on the user. Pulses so it is noticeable from another conversation —
   this marker is the only place another session's "waiting" state is allowed to appear. */
[b-myvw3bwatz] .session-attention-icon {
    flex-shrink: 0;
    margin-top: 1px;
    animation: session-attention-pulse-b-myvw3bwatz 1.6s ease-in-out infinite;
}

.chat-session-list[b-myvw3bwatz]  .session-item--attention {
    border-left: 3px solid var(--mud-palette-warning, #ff9800);
}

@keyframes session-attention-pulse-b-myvw3bwatz {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0.35;
    }
}

/* This chat is still producing output. Full strength on the message that just arrived, then faded
   to nothing over 30s so a conversation that has gone quiet stops competing for attention. The
   decay is pure CSS — no per-second repaint from the server. */
.session-activity[b-myvw3bwatz] {
    display: inline-flex;
    flex-shrink: 0;
    margin-top: 2px;
}

/* Why two identical keyframes: a CSS animation restarts only when a NEW animation is created, and
   changing animation-name is the way to do that without recreating the element (which would reset
   the spinner's rotation and make it stutter). The row alternates between these on every message,
   so each one restarts the fade at full strength. */
.session-activity--fade-a[b-myvw3bwatz] {
    animation: session-activity-fade-a-b-myvw3bwatz 30s linear 1 forwards;
}

.session-activity--fade-b[b-myvw3bwatz] {
    animation: session-activity-fade-b-b-myvw3bwatz 30s linear 1 forwards;
}

/* ::deep: Class lands on MudProgressCircular's root (child-component scope). Size matches the
   tool-pill spinner so the list marker stays a small amber ring, not the default 24px control. */
[b-myvw3bwatz] .session-activity__spinner {
    width: 12px !important;
    height: 12px !important;
    flex: 0 0 auto;
}

@keyframes session-activity-fade-a-b-myvw3bwatz {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

@keyframes session-activity-fade-b-b-myvw3bwatz {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

/* The stream stopped and left a reply the user has not opened. Solid and still: this reports a
   state, it does not ask for anything — that is what .session-attention-icon is for. */
.session-unread-dot[b-myvw3bwatz] {
    /* Not optional: MudTooltip wraps this in an inline-block root, and width/height/margin do
       nothing on an inline span — the dot renders as a hairline without it. */
    display: inline-block;
    flex-shrink: 0;
    margin-top: 4px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--mud-palette-warning, #ffc107);
    /* #ffc107 is only ~1.6:1 against the sidebar's white, so give the dot a defined edge. */
    box-shadow: 0 0 0 1px var(--warning-text-color, #d68100);
}

.chat-session-list[b-myvw3bwatz]  .session-item--unread .session-title {
    font-weight: 700;
}

/* Respect users who ask the OS to reduce motion: keep the marker, drop the pulse. The fade is
   deliberately stopped at full strength rather than at its zero end — the marker still has to say
   "this chat is answering". */
@media (prefers-reduced-motion: reduce) {
    [b-myvw3bwatz] .session-attention-icon,
    .session-activity--fade-a[b-myvw3bwatz],
    .session-activity--fade-b[b-myvw3bwatz] {
        animation: none;
    }
}

.chat-session-list[b-myvw3bwatz]  .session-item.active .session-msg-count {
    background: var(--mud-palette-primary, #1976d2) !important;
    color: #ffffff !important;
}

/* --- Right chat/canvas area --- */

.conversation-workspace[b-myvw3bwatz] {
    /* Fill ai-chat-main / VerticalPercentSplit right pane. width:0 was for when this
       was a row flex sibling of the sidebar and collapses the chat to 0px now. */
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    background: transparent;
}

.conversation-workspace[b-myvw3bwatz]  .conversation-side-split,
.conversation-workspace[b-myvw3bwatz]  .conversation-files-canvas-split {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: 100%;
}

.chat-container[b-myvw3bwatz] {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-left: 14px;
}

.session-files-container[b-myvw3bwatz] {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    align-self: stretch;
    border-left: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    background: var(--mud-palette-surface, #fff);
}

.canvas-container[b-myvw3bwatz] {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: var(--mud-palette-surface, #fff);
}

/* ChatWindow inside the container should fill available space */
.chat-container[b-myvw3bwatz]  .chat-window {
    flex: 1;
    max-height: none;
    min-height: 0;
    height: 100%;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 18px 44px rgba(15, 23, 42, 0.06);
    backdrop-filter: blur(8px);
}

.chat-loading-panel[b-myvw3bwatz] {
    flex: 1;
    min-height: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 18px 44px rgba(15, 23, 42, 0.06);
    backdrop-filter: blur(8px);
}

.welcome-screen[b-myvw3bwatz] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 24px;
}

.welcome-content[b-myvw3bwatz] {
    position: relative;
    width: min(100%, 620px);
    overflow: hidden;
    text-align: center;
    padding: 56px 48px;
    border: 1px solid #e2e8f0;
    border-radius: 28px;
    background:
        radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, transparent) 0, transparent 18rem),
        linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(248, 250, 252, 0.92) 100%);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04), 0 24px 70px rgba(15, 23, 42, 0.08);
}

.welcome-content[b-myvw3bwatz]::before,
.welcome-content[b-myvw3bwatz]::after {
    content: "";
    position: absolute;
    pointer-events: none;
    border-radius: 999px;
}

.welcome-content[b-myvw3bwatz]::before {
    inset: 18px auto auto 18px;
    width: 74px;
    height: 74px;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 10%, transparent);
    filter: blur(10px);
}

.welcome-content[b-myvw3bwatz]::after {
    right: -36px;
    bottom: -48px;
    width: 180px;
    height: 180px;
    background: color-mix(in srgb, #f97316 14%, transparent);
    filter: blur(20px);
}

.welcome-orb[b-myvw3bwatz] {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 24px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.12);
}

.welcome-content h2[b-myvw3bwatz] {
    position: relative;
    z-index: 1;
    margin: 4px 0 12px;
    color: #0f172a;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 750;
    letter-spacing: -0.055em;
    line-height: 1.02;
}

.welcome-eyebrow[b-myvw3bwatz] {
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 8px;
    color: var(--mud-palette-primary, #1976d2);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.welcome-content p[b-myvw3bwatz] {
    position: relative;
    z-index: 1;
    max-width: 470px;
    margin: 0 auto 28px;
    color: var(--mud-palette-text-secondary);
    font-size: 1rem;
    line-height: 1.7;
}

.welcome-content[b-myvw3bwatz]  .welcome-cta {
    position: relative;
    z-index: 1;
    border-radius: 999px;
    padding-inline: 20px;
    text-transform: none;
    box-shadow: 0 12px 24px color-mix(in srgb, var(--mud-palette-primary, #1976d2) 18%, transparent);
}

[b-myvw3bwatz] .welcome-icon {
    height: 46px;
    width: 46px;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-header {
    padding: 14px 16px 12px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    border-bottom-color: #eef2f7;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-header-title {
    font-size: 0.95rem !important;
    letter-spacing: -0.015em;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-messages {
    padding: 16px;
    gap: 14px;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-ai-message {
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 0.5rem 1rem;
    color: #374151;
    font-size: 0.9rem;
    line-height: 1.62;
    width: 80%;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-user-turn {
    align-self: flex-end;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 10px;
    color: #374151;
    font-size: 0.85rem;
    line-height: 1.45;
    padding: 0.5rem 1rem;
    word-break: break-word;
    width: 80%;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-user-turn .chat-markdown p {
    margin: 0;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-user-turn .chat-markdown p + p {
    margin-top: 0.5em;
}

/* The wrap owns width/alignment (see ChatWindow.razor.css); the bubble fills it so the page's
   80% width rule above does not nest to 64%. */
.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-user-turn-wrap .chat-user-turn {
    width: 100%;
    align-self: stretch;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-ai-turn-wrap .chat-ai-message {
    width: 100%;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-attachment-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, #fff 88%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 25%, #fff 75%);
    font-size: 0.72rem;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-attachment-chip--downloadable {
    cursor: pointer;
    font: inherit;
    color: inherit;
    line-height: inherit;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-attachment-chip--downloadable:hover {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 20%, #fff 80%);
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-pending-attachment {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: 100%;
    padding: 0.15rem 0.35rem 0.15rem 0.45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, #fff 88%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 25%, #fff 75%);
    font-size: 0.72rem;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .tool-info-pill {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 8%, #f8fafc 92%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 18%, #e2e8f0 82%);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .tool-info-delegation {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 7%, #f8fafc 93%);
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 22%, #e2e8f0 78%);
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-input-area {
    margin: 0 12px 12px;
    padding: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 12px 34px rgba(15, 23, 42, 0.08);
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .context-usage-bar-container {
    margin-bottom: 8px;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-followup {
    gap: 0.55rem;
    margin-top: 0;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-followup-wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 0.6rem;
    min-width: 0;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-followup-wrap .mud-input-control {
    margin-top: 0;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-followup-wrap .mud-input-outlined-border {
    border-color: #e2e8f0 !important;
    border-radius: 14px !important;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-followup-wrap .mud-input-root:hover .mud-input-outlined-border,
.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-followup-wrap .mud-input-root.mud-focused .mud-input-outlined-border {
    border-color: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 55%, #e2e8f0) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--mud-palette-primary, #1976d2) 11%, transparent);
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-input-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 8px;
    min-height: 32px;
    flex-wrap: wrap;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-tool-buttons {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-tool-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
    height: 30px;
    padding: 0 11px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 18%, #dbe3ee 82%);
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 8%, #f1f5f9 92%);
    color: #475569;
    cursor: pointer;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    transition: background 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-tool-button:hover:not(:disabled) {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, #eef2f7 88%);
    border-color: #cbd5e1;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-tool-button:disabled {
    cursor: default;
    opacity: 0.55;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-tool-button--active {
    background: #eff6ff;
    border-color: #93c5fd;
    color: var(--mud-palette-primary, #1976d2);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.08);
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-reasoning-effort-menu {
    margin-left: 2px;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-reasoning-effort-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 18%, #dbe3ee 82%);
    border-radius: 999px;
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 8%, #f1f5f9 92%);
    color: #475569;
    transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-reasoning-effort-trigger::after {
    content: "";
    width: 0;
    height: 0;
    margin-left: 2px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid #94a3b8;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-reasoning-effort-trigger .mud-typography {
    color: #475569 !important;
    font-size: 0.76rem;
    font-weight: 650;
    line-height: 1;
}

.chat-container[b-myvw3bwatz]  .ai-chat-window .chat-reasoning-effort-trigger:hover:not(:disabled) {
    background: color-mix(in srgb, var(--mud-palette-primary, #1976d2) 12%, #eef2f7 88%);
    border-color: #cbd5e1;
    box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.04);
}

/* --- Responsive: stack on narrow viewports --- */

@media (max-width: 768px) {
    .ai-chat-page[b-myvw3bwatz] {
        flex-direction: column;
        height: auto;
        min-height: calc(100vh - 64px);
    }

    /* Embedded hosts keep the dialog's fixed height instead of growing with the viewport. */
    .ai-chat-page--embedded[b-myvw3bwatz] {
        height: 100%;
        min-height: 0;
    }

    .ai-chat-sidebar[b-myvw3bwatz] {
        flex: 0 0 auto;
        width: 100%;
        max-width: none;
        max-height: 35vh;
        border-right: none;
        border-bottom: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    }

    .chat-container[b-myvw3bwatz] {
        flex: 1 1 auto;
        width: 100%;
        min-height: 50vh;
        padding: 10px;
    }

    .conversation-workspace[b-myvw3bwatz] {
        flex: 1 1 auto;
        width: 100%;
        flex-direction: column;
        min-height: 50vh;
    }

    .conversation-workspace--canvas-open .chat-container[b-myvw3bwatz] {
        min-width: 0;
        min-height: 45vh;
    }

    .session-files-container[b-myvw3bwatz] {
        max-height: 30vh;
        border-left: none;
        border-top: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    }

    .canvas-container[b-myvw3bwatz] {
        flex: 0 0 45vh !important;
        width: 100% !important;
        min-width: 0;
        border-top: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    }

    .welcome-screen[b-myvw3bwatz] {
        padding: 12px;
    }

    .welcome-content[b-myvw3bwatz] {
        padding: 40px 24px;
        border-radius: 22px;
    }

    .chat-container[b-myvw3bwatz]  .ai-chat-window .chat-input-area {
        margin: 0 8px 8px;
        padding: 10px;
        border-radius: 16px;
    }
}

/* /Components/Pages/AIChatAdmin/AIChatAdmin.razor.rz.scp.css */
.page-header[b-8melt19lnk] {
    padding-bottom: 7px;
    margin-bottom: 1rem;
    position: relative;
}

.page-header[b-8melt19lnk]::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    right: 0;
    height: 1px;
    background-color: #e4e4e7;
    width: 100vw;
    margin-left: -50vw;
}

.page-header h5[b-8melt19lnk] {
    color: #1f2937;
    font-weight: 600;
}
.page-subtitle[b-8melt19lnk] {
    color: #64748b;
}

.summary-row-with-pagination[b-8melt19lnk] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* Table styling — targets MudTable on this page */
[b-8melt19lnk] .mud-table thead th {
    background-color: #f8f9fa !important;
    font-weight: 600 !important;
    color: #495057 !important;
    font-size: 0.9rem !important;
    padding: 8px 12px !important;
    border-bottom: 2px solid #dee2e6 !important;
    white-space: nowrap !important;
    user-select: none !important;
}

[b-8melt19lnk] .mud-table tbody td {
    padding: 8px 12px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #dee2e6 !important;
}

[b-8melt19lnk] .mud-table tbody tr:hover {
    background-color: #f8f9fa !important;
}

.name-cell[b-8melt19lnk] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.name-text[b-8melt19lnk] {
    font-weight: 500;
    color: #1e293b;
}

.ellipsis-cell[b-8melt19lnk] {
    display: block;
    max-width: 420px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.ellipsis-cell--narrow[b-8melt19lnk] {
    max-width: 260px;
}

[b-8melt19lnk] .type-chip {
    font-size: 0.75rem;
    font-weight: 500;
    background: #f1f5f9;
    color: #475569;
    border-radius: 6px;
}

.deleted-chip[b-8melt19lnk] {
    background: #fee2e2 !important;
    color: #991b1b !important;
}

.menu-item-content[b-8melt19lnk] { display: flex; align-items: center; gap: 12px; width: 100%; }
.menu-item-icon[b-8melt19lnk] { flex-shrink: 0; }
.menu-item-text[b-8melt19lnk] { flex: 1; }

@media (max-width: 768px) {
    [b-8melt19lnk] .mud-table thead th,
    [b-8melt19lnk] .mud-table tbody td {
        padding: 8px !important;
        font-size: 0.875rem;
    }
}
/* /Components/Pages/AITools/AiTestsPage.razor.rz.scp.css */
.summary-row-with-pagination[b-34hnu9vulx] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* Table styling — targets MudTable on this page */
[b-34hnu9vulx] .mud-table thead th {
    background-color: #f8f9fa !important;
    font-weight: 600 !important;
    color: #495057 !important;
    font-size: 0.9rem !important;
    padding: 8px 12px !important;
    border-bottom: 2px solid #dee2e6 !important;
    white-space: nowrap !important;
    user-select: none !important;
}

[b-34hnu9vulx] .mud-table tbody td {
    padding: 8px 12px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #dee2e6 !important;
}

[b-34hnu9vulx] .mud-table tbody tr:hover {
    background-color: #f8f9fa !important;
}

@media (max-width: 768px) {
    [b-34hnu9vulx] .mud-table thead th,
    [b-34hnu9vulx] .mud-table tbody td {
        padding: 8px !important;
        font-size: 0.875rem;
    }
}

.ai-test-log[b-34hnu9vulx] {
    max-height: 420px;
    overflow-y: auto;
    background: var(--mud-palette-background-gray);
    border-radius: 4px;
    padding: 12px;
    font-size: 0.78rem;
    white-space: pre-wrap;
    word-break: break-word;
    margin-bottom: 0;
}
/* /Components/Pages/AppActivity/AppActivityLog.razor.rz.scp.css */
.page-header[b-euhbc144ur] {
    padding-bottom: 7px;
    margin-bottom: 1rem;
    position: relative;
}

.page-header[b-euhbc144ur]::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    right: 0;
    height: 1px;
    background-color: #e4e4e7;
    width: 100vw;
    margin-left: -50vw;
}

.page-header h5[b-euhbc144ur] {
    color: #1f2937;
    font-weight: 600;
}

.page-subtitle[b-euhbc144ur] {
    color: #64748b;
}

.filter-toolbar-row[b-euhbc144ur] {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.filter-toolbar-fields[b-euhbc144ur] {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex: 1 1 320px;
    flex-wrap: wrap;
    margin-right: auto;
    min-width: 0;
}

.filter-toolbar-search[b-euhbc144ur] {
    flex: 2 1 220px;
    min-width: 200px;
    max-width: 360px;
}

.filter-toolbar-select[b-euhbc144ur] {
    flex: 1 1 160px;
    min-width: 140px;
    max-width: 220px;
}

.filter-toolbar-pagination[b-euhbc144ur] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
    margin-left: auto;
}

/* Table styling — targets MudTable on this page */
[b-euhbc144ur] .mud-table thead th {
    background-color: #f8f9fa !important;
    font-weight: 600 !important;
    color: #495057 !important;
    font-size: 0.9rem !important;
    padding: 8px 12px !important;
    border-bottom: 2px solid #dee2e6 !important;
    white-space: nowrap !important;
    user-select: none !important;
}

[b-euhbc144ur] .mud-table tbody td {
    padding: 8px 12px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #dee2e6 !important;
}

[b-euhbc144ur] .mud-table tbody tr:hover {
    background-color: #f8f9fa !important;
}

/* The statement is the widest column and the one people scan. Monospace keeps
   keywords aligned between rows; the clamp stops one long batch owning the grid. */
.cql-preview[b-euhbc144ur] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8125rem;
    color: #334155;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

[b-euhbc144ur] .type-chip {
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: 6px;
}

[b-euhbc144ur] .read-chip {
    background: #f1f5f9 !important;
    color: #475569 !important;
}

[b-euhbc144ur] .write-chip {
    background: #fef3c7 !important;
    color: #92400e !important;
}

@media (max-width: 768px) {
    [b-euhbc144ur] .mud-table thead th,
    [b-euhbc144ur] .mud-table tbody td {
        padding: 8px !important;
        font-size: 0.875rem;
    }

    /* Card layout: the statement gets to wrap rather than being clipped to nothing. */
    .cql-preview[b-euhbc144ur] {
        white-space: normal;
        word-break: break-word;
    }
}
/* /Components/Pages/AppViewer.razor.rz.scp.css */
.app-viewer-page[b-sazpl7ey5o] {
    height: calc(100vh - 96px);
    min-height: 520px;
    display: flex;
    flex-direction: column;
}

[b-sazpl7ey5o] .app-viewer-page .ai-chat-canvas {
    flex: 1 1 auto;
    min-height: 0;
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 12px;
    overflow: hidden;
}
/* /Components/Pages/TokenUsage/TokenUsage.razor.rz.scp.css */
.token-usage-page[b-1jjra0zpjn] {
    padding: 0.5rem 0 2rem;
}

.token-usage-eyebrow[b-1jjra0zpjn] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mud-palette-primary);
}

.token-usage-panel[b-1jjra0zpjn] {
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    background: var(--mud-palette-surface);
}

.token-usage-loading[b-1jjra0zpjn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 240px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
}

.token-usage-kpi-grid[b-1jjra0zpjn] {
    align-items: stretch;
}

.token-usage-kpi-grid > .mud-grid-item[b-1jjra0zpjn] {
    display: flex;
}

.token-kpi-card[b-1jjra0zpjn] {
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    flex: 1;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.token-kpi-label[b-1jjra0zpjn] {
    opacity: 0.75;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.token-kpi-value[b-1jjra0zpjn] {
    font-weight: 700;
}

.token-kpi-subtitle[b-1jjra0zpjn] {
    min-height: 1.25rem;
    margin-top: 0.25rem;
}

.token-kpi-card.accent-total[b-1jjra0zpjn] {
    border-left: 4px solid #6366f1;
}

.token-kpi-card.accent-users[b-1jjra0zpjn] {
    border-left: 4px solid #0ea5e9;
}

.token-kpi-card.accent-turns[b-1jjra0zpjn] {
    border-left: 4px solid #10b981;
}

.token-kpi-card.accent-split[b-1jjra0zpjn] {
    border-left: 4px solid #f59e0b;
}

.token-kpi-card.accent-cache[b-1jjra0zpjn] {
    border-left: 4px solid #8b5cf6;
}

.token-usage-tabs .custom-tab.active[b-1jjra0zpjn] {
    font-weight: 600;
}
/* /Components/Renderers/DataTableHost.razor.rz.scp.css */
/* Scoped styles for the chat data table snapshot component. */

/* Why: MudBlazor defaults .mud-table-container / .mud-table-root to width:100%, which
   stretches 2–3 column snapshots across the full chat pane. Size to content instead,
   cap at the parent width, and scroll horizontally when the table is wider. */
.chat-data-table-wrap[b-dnl1pwxo1j] {
    margin: 0.5rem 0;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: 8px;
    overflow-x: auto;
    width: fit-content;
    max-width: 100%;
}

.chat-data-table-wrap[b-dnl1pwxo1j]  .mud-table {
    box-shadow: none;
    width: auto;
}

.chat-data-table-wrap[b-dnl1pwxo1j]  .mud-table-container {
    width: auto;
    max-width: 100%;
}

.chat-data-table-wrap[b-dnl1pwxo1j]  .mud-table-root {
    width: max-content;
    table-layout: auto;
}

/* Why: dense MudTable cell padding is tight; keep clear gutters so adjacent numbers
   are not misread as one value when columns sit close together. */
.chat-data-table-wrap[b-dnl1pwxo1j]  .mud-table-root .mud-table-cell {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

.chat-data-table-header[b-dnl1pwxo1j] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.chat-data-table-toolbar-header[b-dnl1pwxo1j] {
    display: flex;
    align-items: flex-start;
    width: 100%;
}

.chat-data-table-toolbar-actions[b-dnl1pwxo1j] {
    display: flex;
    align-items: center;
    gap: 0.125rem;
}

.chat-data-table-search-row[b-dnl1pwxo1j] {
    width: 100%;
}

.chat-data-table-titles[b-dnl1pwxo1j] {
    display: flex;
    flex-direction: column;
}

.chat-data-table-search[b-dnl1pwxo1j] {
    width: min(18rem, 100%);
}

.chat-data-table-footer[b-dnl1pwxo1j] {
    padding: 0.35rem 0.75rem;
    font-size: 0.75rem;
    color: var(--mud-palette-text-secondary);
    border-top: 1px solid var(--mud-palette-lines-default);
}

.chat-data-table-info[b-dnl1pwxo1j] {
    margin: 0.5rem 0;
    padding: 0.5rem 0.75rem;
    border: 1px dashed var(--mud-palette-lines-default);
    border-radius: 8px;
    font-size: 0.85rem;
    color: var(--mud-palette-text-secondary);
}
/* /Components/Shared/MarkdownContentEditor.razor.rz.scp.css */
.markdown-content-editor[b-6sa9aj2w88] {
    isolation: isolate;
    position: relative;
    width: 100%;
    z-index: 0;
}

.markdown-content-editor-loading[b-6sa9aj2w88] {
    align-items: center;
    border: 1px solid var(--mud-palette-lines-default);
    border-radius: var(--mud-default-borderradius);
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    min-height: 250px;
    padding: 1rem;
}

.markdown-content-editor[b-6sa9aj2w88]  .EasyMDEContainer {
    width: 100%;
}

.markdown-content-editor[b-6sa9aj2w88]  .CodeMirror {
    border-radius: var(--mud-default-borderradius);
}

/* EasyMDE default toolbar uses Font Awesome 4 classes. Yggdrasil already ships
   Bootstrap Icons, so map those classes locally instead of loading another icon
   font at dialog open time. */
.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa {
    display: inline-block;
    font-family: bootstrap-icons !important;
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa::before {
    display: inline-block;
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-bold::before {
    content: "\f5f0";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-italic::before {
    content: "\f5f4";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-strikethrough::before {
    content: "\f5f5";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-header::before {
    content: "\f5f1";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-code::before {
    content: "\f2c6";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-quote-left::before {
    content: "\f6b0";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-list-ul::before {
    content: "\f478";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-list-ol::before {
    content: "\f475";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-eraser::before {
    content: "\f331";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-link::before {
    content: "\f470";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-picture-o::before {
    content: "\f42a";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-table::before {
    content: "\f5aa";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-minus::before {
    content: "\f426";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-eye::before {
    content: "\f341";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-columns::before {
    content: "\f460";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-question-circle::before {
    content: "\f505";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-undo::before {
    content: "\f117";
}

.markdown-content-editor[b-6sa9aj2w88]  .editor-toolbar .fa-repeat::before {
    content: "\f116";
}
/* /Components/Tools/AIChatPlanningTodoList.razor.rz.scp.css */
.planning-todo-panel[b-u0ugaoybii] {
    margin: 6px 10px;
    padding: 6px 8px;
    border: 1px solid var(--mud-palette-lines-default, #e2e8f0);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.05);
}

.planning-todo-panel--collapsed[b-u0ugaoybii] {
    padding: 4px 8px;
}

.planning-todo-header[b-u0ugaoybii] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 4px;
    cursor: pointer;
    user-select: none;
}

.planning-todo-header--collapsed[b-u0ugaoybii] {
    margin-bottom: 0;
}

.planning-todo-title[b-u0ugaoybii] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 1;
    min-width: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--mud-palette-text-secondary, #666);
}

.planning-todo-summary[b-u0ugaoybii] {
    margin-left: 4px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: normal;
    text-transform: none;
    color: var(--mud-palette-text-primary, #333);
    white-space: nowrap;
}

.planning-todo-count[b-u0ugaoybii] {
    flex-shrink: 0;
    height: 20px !important;
    font-size: 0.68rem !important;
}

.planning-todo-expand-icon[b-u0ugaoybii] {
    flex-shrink: 0;
    opacity: 0.65;
}

.planning-todo-items[b-u0ugaoybii] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 140px;
    overflow-y: auto;
    scrollbar-width: thin;
}

.planning-todo-item[b-u0ugaoybii] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 24px;
    padding: 1px 2px 1px 4px;
    border-radius: 6px;
    background: #fff;
}

.planning-todo-item--in-progress[b-u0ugaoybii] {
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary, #1976d2) 22%, var(--mud-palette-lines-default, #e2e8f0));
}

.planning-todo-item--done[b-u0ugaoybii] {
    opacity: 0.65;
}

.planning-todo-item--done .planning-todo-text[b-u0ugaoybii] {
    text-decoration: line-through;
}

.planning-todo-status-icon[b-u0ugaoybii] {
    flex-shrink: 0;
    font-size: 0.95rem !important;
    opacity: 0.75;
}

.planning-todo-item--in-progress .planning-todo-status-icon[b-u0ugaoybii] {
    color: var(--mud-palette-primary, #1976d2);
    opacity: 1;
}

.planning-todo-item--done .planning-todo-status-icon[b-u0ugaoybii] {
    color: #2e7d32;
    opacity: 1;
}

.planning-todo-text[b-u0ugaoybii] {
    flex: 1;
    min-width: 0;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
