/* /Components/Cases/CaseDrawer.razor.rz.scp.css */
.drawer-scrim[b-b1hw3utpw6] {
    position: fixed;
    inset: 0;
    background: rgba(22, 34, 40, 0.34);
    z-index: 60;
    animation: overlayIn .18s ease;
}

.case-drawer[b-b1hw3utpw6] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(420px, 100vw);
    background: var(--c-surface);
    border-left: 1px solid var(--c-border);
    box-shadow: -8px 0 24px rgba(15, 30, 40, 0.08);
    display: flex;
    flex-direction: column;
    z-index: 70;
}

.drawer-header[b-b1hw3utpw6] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--c-border-soft);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.drawer-header h3[b-b1hw3utpw6] {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--c-text-primary);
}

.case-status[b-b1hw3utpw6] {
    display: inline-block;
    margin-top: 5px;
    font-size: 11px;
    font-weight: var(--weight-semibold);
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--c-surface-muted);
    color: var(--c-text-secondary);
}

.case-status-ready[b-b1hw3utpw6] { background: var(--c-success-light); color: var(--c-success-text); }
.case-status-summaryreview[b-b1hw3utpw6] { background: var(--c-warning-light); color: var(--c-warning-text); }
.case-status-failed[b-b1hw3utpw6] { background: var(--c-error-light); color: var(--c-error); }
.case-status-draft[b-b1hw3utpw6],
.case-status-processing[b-b1hw3utpw6] {
    background: var(--c-accent-light); color: var(--c-accent-text);
    animation: status-pulse-b-b1hw3utpw6 1.6s ease-in-out infinite;
}

.btn-icon[b-b1hw3utpw6] {
    background: none;
    border: 0;
    color: var(--c-text-muted);
    padding: 4px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
}

.btn-icon:hover[b-b1hw3utpw6] { color: var(--c-text-primary); }

.drawer-body[b-b1hw3utpw6] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.upload-zone[b-b1hw3utpw6] {
    position: relative;
    border: 2px dashed #cbd5d8;
    border-radius: var(--radius-card);
    padding: 24px 16px;
    text-align: center;
    color: var(--c-text-secondary);
    background: var(--c-bg);
    transition: border-color 0.15s, background 0.15s;
}

.upload-zone.drag-over[b-b1hw3utpw6] {
    border-color: var(--c-accent);
    background: var(--c-accent-light);
}

.upload-zone.busy[b-b1hw3utpw6] {
    opacity: 0.6;
    pointer-events: none;
}

.upload-zone.busy .upload-input[b-b1hw3utpw6] {
    cursor: not-allowed;
}

.upload-zone p[b-b1hw3utpw6] { margin: 0 0 6px 0; font-size: 14px; }
.upload-zone small[b-b1hw3utpw6] { color: var(--c-text-muted); }

.upload-input[b-b1hw3utpw6] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.upload-error[b-b1hw3utpw6] {
    background: var(--c-error-light);
    color: var(--c-error);
    padding: 8px 12px;
    border-radius: var(--radius-md);
    font-size: 13px;
}

.empty-state[b-b1hw3utpw6] {
    color: var(--c-text-muted);
    font-size: 13px;
    text-align: center;
    padding: 24px 0;
}

.document-list[b-b1hw3utpw6] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.document-item[b-b1hw3utpw6] {
    display: flex;
    align-items: center;
    padding: 11px 13px;
    border: 1px solid var(--c-border-card);
    border-radius: var(--radius-card);
    gap: 11px;
    background: var(--c-surface);
}

/* Mono extension badge (prototype "source" rows). */
.document-ext[b-b1hw3utpw6] {
    width: 30px; height: 30px; flex: 0 0 30px;
    border-radius: 7px;
    background: #f1f5f6;
    color: #7c8a92;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-mono);
    font-size: 10px;
}

.document-meta[b-b1hw3utpw6] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.document-name[b-b1hw3utpw6] {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--c-text-body);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.document-status[b-b1hw3utpw6] {
    align-self: flex-start;
    font-size: 10.5px;
    font-weight: var(--weight-semibold);
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--c-surface-muted);
    color: var(--c-text-secondary);
}

.status-clean[b-b1hw3utpw6] { background: var(--c-success-light); color: var(--c-success-text); }
.status-needsreview[b-b1hw3utpw6] { background: var(--c-warning-light); color: var(--c-warning-text); }
.status-failed[b-b1hw3utpw6] { background: var(--c-error-light); color: var(--c-error); }
.status-extracting[b-b1hw3utpw6],
.status-analyzing[b-b1hw3utpw6],
.status-uploaded[b-b1hw3utpw6] {
    background: var(--c-accent-light);
    color: var(--c-accent-text);
    animation: status-pulse-b-b1hw3utpw6 1.6s ease-in-out infinite;
}

/* Visible "something is happening" cue while sanitizer/red-team run for
   minutes on a CPU-bound local LLM — without it the badge looks frozen. */
@keyframes status-pulse-b-b1hw3utpw6 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.55; }
}

.document-error[b-b1hw3utpw6] {
    color: var(--c-error);
    font-weight: 600;
    cursor: help;
}

.document-actions[b-b1hw3utpw6] {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

.btn-primary-sm[b-b1hw3utpw6],
.btn-ghost-sm[b-b1hw3utpw6] {
    border: 0;
    border-radius: var(--radius-sm);
    padding: 5px 11px;
    font-size: 12px;
    cursor: pointer;
}

.btn-primary-sm[b-b1hw3utpw6] {
    background: var(--c-accent);
    color: white;
    font-weight: var(--weight-medium);
}

.btn-primary-sm:hover[b-b1hw3utpw6] { background: var(--c-accent-hover); }

.btn-ghost-sm[b-b1hw3utpw6] {
    background: transparent;
    color: var(--c-text-muted);
    font-size: 16px;
    line-height: 1;
}

.btn-ghost-sm:hover[b-b1hw3utpw6] { color: var(--c-error); }
/* /Components/Cases/ReviewDialog.razor.rz.scp.css */
.modal-scrim[b-lq7eyztj12] {
    position: fixed;
    inset: 0;
    background: rgba(22, 34, 40, 0.34);
    z-index: 80;
    animation: overlayIn .18s ease;
}

.review-modal[b-lq7eyztj12] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(720px, calc(100vw - 32px));
    max-height: calc(100vh - 48px);
    background: var(--c-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-modal);
    display: flex;
    flex-direction: column;
    z-index: 90;
    animation: fadeUp .22s ease;
}

.modal-header[b-lq7eyztj12] {
    padding: 18px 22px;
    border-bottom: 1px solid var(--c-border-soft);
}

.modal-header h3[b-lq7eyztj12] {
    margin: 0 0 4px 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--c-text-primary);
}

.document-filename[b-lq7eyztj12] {
    font-size: 12px;
    color: var(--c-text-muted);
    font-family: var(--font-mono);
}

.modal-body[b-lq7eyztj12] {
    padding: 16px 22px;
    overflow-y: auto;
    flex: 1;
}

.modal-hint[b-lq7eyztj12] {
    font-size: 13px;
    color: var(--c-text-body);
    margin: 0 0 12px 0;
    line-height: 1.5;
}

.depersonalized-text[b-lq7eyztj12] {
    background: var(--c-bg);
    border: 1px solid var(--c-border-card);
    border-radius: var(--radius-md);
    padding: 13px 15px;
    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.5;
    color: var(--c-text-body);
    white-space: pre-wrap;
    word-wrap: break-word;
    margin: 0;
    max-height: 360px;
    overflow-y: auto;
}

.modal-error[b-lq7eyztj12] {
    margin-top: 12px;
    padding: 8px 12px;
    background: var(--c-error-light);
    color: var(--c-error);
    border-radius: var(--radius-md);
    font-size: 13px;
}

.modal-footer[b-lq7eyztj12] {
    padding: 13px 22px;
    border-top: 1px solid var(--c-border-soft);
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.btn-ghost[b-lq7eyztj12],
.btn-primary[b-lq7eyztj12],
.btn-danger[b-lq7eyztj12] {
    border: 0;
    padding: 9px 15px;
    border-radius: var(--radius-md);
    font-size: 13px;
    font-weight: var(--weight-medium);
    cursor: pointer;
}

.btn-ghost[b-lq7eyztj12] {
    background: transparent;
    color: var(--c-text-secondary);
}
.btn-ghost:hover[b-lq7eyztj12] { background: var(--c-hover); }

.btn-primary[b-lq7eyztj12] {
    background: var(--c-accent);
    color: white;
}
.btn-primary:hover:not(:disabled)[b-lq7eyztj12] { background: var(--c-accent-hover); }

.btn-danger[b-lq7eyztj12] {
    background: var(--c-error-light);
    color: var(--c-error);
}
.btn-danger:hover:not(:disabled)[b-lq7eyztj12] { background: oklch(0.9 0.06 25); }

button:disabled[b-lq7eyztj12] { opacity: 0.5; cursor: not-allowed; }
/* /Components/ChatInput.razor.rz.scp.css */
.chat-input-container[b-1p9olv3o1k] { display: flex; align-items: flex-end; gap: var(--sp-2); }

/* Border and radius live on the wrapper so the outline stays continuous when the
   textarea shows a vertical scrollbar (native controls often eat the field's
   own border in the scrollbar corners). */
.input-wrapper[b-1p9olv3o1k] {
    flex: 1;
    position: relative;
    border: 1px solid var(--c-border-input);
    border-radius: var(--radius-lg);
    background: var(--c-bg);
    transition: border-color .15s, box-shadow .15s;
    overflow: hidden;
}
.input-wrapper:focus-within[b-1p9olv3o1k] {
    border-color: oklch(0.72 0.06 205);
    box-shadow: 0 0 0 3px var(--c-accent-light);
}
.input-wrapper:has(.input-box:disabled)[b-1p9olv3o1k] {
    background: var(--c-surface-muted);
}

.input-box[b-1p9olv3o1k] {
    width: 100%;
    border: none;
    border-radius: 0;
    padding: var(--sp-2) var(--sp-3);
    padding-right: 5.5rem;
    font-size: var(--text-sm); font-family: var(--font-sans);
    line-height: var(--leading-relaxed); resize: none;
    min-height: 44px; max-height: 220px; overflow-y: auto;
    box-sizing: border-box;
    background: transparent;
    color: var(--c-text-primary);
}
.input-box:focus[b-1p9olv3o1k] { outline: none; }
/* app.css applies :focus-visible box-shadow globally; overflow:hidden on the
   wrapper clips most of that ring and leaves a blue sliver at the bottom. */
.input-box:focus-visible[b-1p9olv3o1k] { box-shadow: none; }
.input-box:disabled[b-1p9olv3o1k] { color: var(--c-text-muted); }

.char-counter[b-1p9olv3o1k] { position: absolute; bottom: 6px; right: 10px; font-size: var(--text-xs); color: var(--c-text-muted); pointer-events: none; }
.char-counter.near-limit[b-1p9olv3o1k] { color: var(--c-error); font-weight: var(--weight-medium); }

/* Compact square action button (prototype: 34px, radius 9px). */
.btn-send[b-1p9olv3o1k] {
    flex-shrink: 0; width: 44px; height: 44px;
    border-radius: var(--radius-md);
    background: var(--c-accent); color: #fff; border: none;
    cursor: pointer; line-height: 0;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
    align-self: flex-end;
}
.btn-send:hover:not(:disabled)[b-1p9olv3o1k] { background: var(--c-accent-hover); }
.btn-send:disabled[b-1p9olv3o1k] { background: var(--c-border-input); cursor: default; }

.btn-stop[b-1p9olv3o1k] {
    flex-shrink: 0; width: 44px; height: 44px;
    border-radius: var(--radius-md);
    background: var(--c-surface); color: var(--c-text-secondary);
    border: 1px solid var(--c-border-input);
    cursor: pointer; line-height: 0;
    display: flex; align-items: center; justify-content: center;
    transition: background .1s, border-color .1s;
    align-self: flex-end;
}
.btn-stop:hover[b-1p9olv3o1k] { background: var(--c-hover); border-color: var(--c-text-muted); }
/* /Components/ConfirmModal.razor.rz.scp.css */
.modal-backdrop[b-24f7xwta8i] {
    position: fixed; inset: 0;
    background: rgba(22,34,40,.34);
    display: flex; align-items: center; justify-content: center;
    z-index: 1000;
    animation: overlayIn .18s ease;
}
.modal-box[b-24f7xwta8i] {
    background: var(--c-surface); border-radius: var(--radius-xl);
    padding: var(--sp-6);
    max-width: 380px; width: 90%;
    box-shadow: var(--shadow-modal);
    animation: fadeUp .22s ease;
}
.modal-message[b-24f7xwta8i] { font-size: 0.938rem; font-weight: var(--weight-semibold); color: var(--c-text-primary); margin: 0 0 var(--sp-1); }
.modal-warning[b-24f7xwta8i] { font-size: var(--text-sm); color: var(--c-text-muted); margin: 0 0 var(--sp-4); }
.modal-actions[b-24f7xwta8i] { display: flex; gap: var(--sp-2); justify-content: flex-end; }
.btn-modal-cancel[b-24f7xwta8i] {
    padding: var(--sp-2) var(--sp-4); border: 1px solid var(--c-border-input);
    border-radius: var(--radius-md); background: var(--c-surface);
    color: var(--c-text-secondary); font-size: var(--text-sm); cursor: pointer;
    transition: background .1s;
}
.btn-modal-cancel:hover[b-24f7xwta8i] { background: var(--c-hover); }
.btn-modal-confirm[b-24f7xwta8i] {
    padding: var(--sp-2) var(--sp-4); border: none;
    border-radius: var(--radius-md); background: var(--c-error);
    color: #fff; font-size: var(--text-sm); cursor: pointer;
    font-weight: var(--weight-semibold); transition: background .1s;
}
.btn-modal-confirm:hover[b-24f7xwta8i] { background: oklch(0.5 0.16 25); }
/* /Components/ConversationList.razor.rz.scp.css */
.conv-loading[b-jpktgupyfk],.conv-error[b-jpktgupyfk] { padding: var(--sp-4) var(--sp-3); font-size: var(--text-xs); color: var(--c-text-muted); text-align: center; }
.conv-error[b-jpktgupyfk] { color: var(--c-error); }

.conv-empty[b-jpktgupyfk] { padding: var(--sp-8) var(--sp-4); text-align: center; color: var(--c-text-muted); font-size: var(--text-sm); line-height: var(--leading-relaxed); }
.conv-empty-hint[b-jpktgupyfk] { margin-top: var(--sp-2); color: var(--c-text-label); }

.conv-list[b-jpktgupyfk] { list-style: none; margin: 0; padding: var(--sp-1) 10px var(--sp-3); }

.conv-item[b-jpktgupyfk] {
    position: relative;
    /* Reserve right space for the absolute-positioned delete button so the
       title's ellipsis never lands underneath it (the button is invisible
       by default and appears on hover — without this padding the "…" and
       the trash icon would overlap when revealed). */
    padding: 9px calc(11px + 1.5rem) 9px 13px;
    margin-bottom: 2px;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background .1s;
    user-select: none;
}
.conv-item:hover[b-jpktgupyfk] { background: var(--c-sidebar-hover); }
.conv-item.active[b-jpktgupyfk] { background: var(--c-sidebar-active); }

/* 3px accent bar on the active row (prototype: inset from the row edges). */
.conv-item.active[b-jpktgupyfk]::before {
    content: '';
    position: absolute;
    left: 0; top: 8px; bottom: 8px;
    width: 3px;
    border-radius: 3px;
    background: var(--c-sidebar-accent);
}

.conv-title[b-jpktgupyfk] {
    display: block;
    font-size: 0.813rem;
    font-weight: var(--weight-semibold);
    color: var(--c-sidebar-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.conv-item.active .conv-title[b-jpktgupyfk] { color: var(--c-accent-text); }

.conv-time[b-jpktgupyfk] {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.657rem;
    color: var(--c-sidebar-text-muted);
    margin-top: 2px;
}

.btn-delete-row[b-jpktgupyfk] {
    position: absolute; right: var(--sp-2); top: 50%; transform: translateY(-50%);
    background: none; border: none; color: var(--c-sidebar-text-muted);
    cursor: pointer; font-size: var(--text-xs); padding: var(--sp-1) var(--sp-2);
    border-radius: var(--radius-sm); opacity: 0; transition: opacity .1s, background .1s, color .1s;
}
.conv-item:hover .btn-delete-row[b-jpktgupyfk] { opacity: 1; }
.btn-delete-row:hover[b-jpktgupyfk] { background: var(--c-error-light); color: var(--c-error); }
/* /Components/MessageBubble.razor.rz.scp.css */
.bubble[b-ez61q2pxw6] { display: flex; flex-direction: column; max-width: 80%; gap: var(--sp-1); animation: fadeUp .25s ease; }

/* User
   `scroll-margin-top` provides breathing room when the bubble is anchored
   to the viewport top after the user sends a message. */
.bubble-user[b-ez61q2pxw6] { align-self: flex-end; align-items: flex-end; max-width: 86%; scroll-margin-top: var(--sp-4); }
.bubble-user .bubble-content[b-ez61q2pxw6] {
    background: var(--c-accent); color: #fff;
    border-radius: 14px 14px 4px 14px;
    padding: 10px 13px;
}
.bubble-text[b-ez61q2pxw6] { white-space: pre-wrap; word-break: break-word; font-size: var(--text-sm); line-height: var(--leading-normal); }

/* Assistant — flat text, no bubble (prototype). */
.bubble-assistant[b-ez61q2pxw6] { align-self: flex-start; align-items: flex-start; max-width: 90%; }
.bubble-assistant .bubble-content[b-ez61q2pxw6] {
    background: transparent; color: var(--c-text-body);
    padding: var(--sp-1) 0;
    font-size: var(--text-sm); line-height: var(--leading-normal);
}

/* Markdown typography */
.bubble-assistant .bubble-content[b-ez61q2pxw6]  p { margin: 0 0 .5em; }
.bubble-assistant .bubble-content[b-ez61q2pxw6]  p:last-child { margin-bottom: 0; }
.bubble-assistant .bubble-content[b-ez61q2pxw6]  ul,.bubble-assistant .bubble-content[b-ez61q2pxw6]  ol { padding-left: 1.4em; margin: .25em 0 .5em; }
.bubble-assistant .bubble-content[b-ez61q2pxw6]  li { margin-bottom: .2em; }
.bubble-assistant .bubble-content[b-ez61q2pxw6]  strong { font-weight: var(--weight-semibold); }
.bubble-assistant .bubble-content[b-ez61q2pxw6]  h1,.bubble-assistant .bubble-content[b-ez61q2pxw6]  h2,.bubble-assistant .bubble-content[b-ez61q2pxw6]  h3 { margin: .75em 0 .35em; font-size: var(--text-base); }

/* Inline code */
.bubble-assistant .bubble-content[b-ez61q2pxw6]  code {
    font-family: var(--font-mono);
    font-size: .82em; background: var(--c-surface-muted);
    border-radius: var(--radius-sm); padding: 1px 4px;
    color: var(--c-accent-text); border: 1px solid var(--c-border-soft);
}

/* Code blocks */
.bubble-assistant .bubble-content[b-ez61q2pxw6]  pre {
    background: #1e2030; border-radius: var(--radius-md);
    padding: var(--sp-3) var(--sp-4);
    overflow-x: auto; margin: var(--sp-2) 0;
    position: relative; box-shadow: var(--shadow-xs);
}
.bubble-assistant .bubble-content[b-ez61q2pxw6]  pre code {
    background: none; color: #e0e0f0; padding: 0;
    font-size: .82em; line-height: 1.55; border: none;
}

/* Copy button injected by JS */
.bubble-assistant .bubble-content[b-ez61q2pxw6]  .code-copy-btn {
    position: absolute; top: var(--sp-2); right: var(--sp-2);
    background: rgba(255,255,255,.08); color: #aaa;
    border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius-sm);
    padding: 4px 6px; line-height: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    opacity: 0; transition: opacity .15s;
}
.bubble-assistant .bubble-content[b-ez61q2pxw6]  pre:hover .code-copy-btn { opacity: 1; }
.bubble-assistant .bubble-content[b-ez61q2pxw6]  .code-copy-btn:hover { background: rgba(255,255,255,.15); color: #fff; }

/* Metadata row */
.bubble-actions[b-ez61q2pxw6] { display: flex; align-items: center; gap: var(--sp-2); opacity: 0; transition: opacity .15s; padding: 0 var(--sp-1); }
.bubble:hover .bubble-actions[b-ez61q2pxw6] { opacity: 1; }
.bubble-time[b-ez61q2pxw6] { font-size: var(--text-xs); color: var(--c-text-muted); }
.btn-copy-msg[b-ez61q2pxw6] { background: none; border: none; color: var(--c-text-muted); cursor: pointer; line-height: 0; padding: 2px var(--sp-1); border-radius: var(--radius-sm); transition: color .1s; }
.btn-copy-msg:hover[b-ez61q2pxw6] { color: var(--c-text-secondary); }
/* /Components/PiiWarningBanner.razor.rz.scp.css */
.pii-banner[b-okc9yw9tja] {
    display: flex; align-items: center; gap: var(--sp-3);
    padding: var(--sp-2) var(--sp-6);
    background: var(--c-warning-light);
    border-bottom: 1px solid oklch(0.88 0.06 80);
    font-size: var(--text-xs); color: oklch(0.42 0.09 60); flex-shrink: 0;
}
.pii-icon[b-okc9yw9tja] { font-size: .9rem; flex-shrink: 0; }
.pii-text[b-okc9yw9tja] { flex: 1; line-height: var(--leading-normal); }
.pii-dismiss[b-okc9yw9tja] {
    background: none; border: none; color: oklch(0.48 0.1 55);
    cursor: pointer; font-size: var(--text-sm);
    padding: var(--sp-1) var(--sp-2); border-radius: var(--radius-sm);
    flex-shrink: 0; line-height: 1; transition: background .1s;
}
.pii-dismiss:hover[b-okc9yw9tja] { background: oklch(0.9 0.06 80); }
/* /Components/Surfaces/CaseIntakeFormSurface.razor.rz.scp.css */
.surface-intake[b-n0a7aj93iz] { display: flex; flex-direction: column; gap: var(--sp-3); }
.surface-section[b-n0a7aj93iz] { margin: 0; }
.surface-label[b-n0a7aj93iz] {
    margin: 0 0 var(--sp-1);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--c-text-muted);
}
.surface-label-warn[b-n0a7aj93iz] { color: var(--c-warning-text); }
.surface-hero[b-n0a7aj93iz] { padding-bottom: var(--sp-2); border-bottom: 1px solid var(--c-border); }
.surface-complaint[b-n0a7aj93iz] {
    margin: 0;
    font-size: var(--text-base);
    font-weight: var(--weight-semibold);
    color: var(--c-text-primary);
    line-height: var(--leading-relaxed);
}
.surface-list[b-n0a7aj93iz] {
    margin: 0;
    padding-left: 1.2em;
    font-size: var(--text-sm);
    color: var(--c-text-primary);
    line-height: var(--leading-relaxed);
}
.surface-list li[b-n0a7aj93iz] { margin-bottom: var(--sp-1); }
.surface-list-warn li[b-n0a7aj93iz]::marker { color: var(--c-warning); }
.surface-list-questions li[b-n0a7aj93iz]::marker { color: var(--c-accent); }
.surface-actions[b-n0a7aj93iz] { margin-top: var(--sp-2); }
.btn-surface-continue[b-n0a7aj93iz] {
    font: inherit;
    font-size: var(--text-sm);
    font-weight: var(--weight-semibold);
    padding: var(--sp-2) var(--sp-4);
    border-radius: var(--radius-md);
    border: none;
    background: var(--c-accent);
    color: #fff;
    cursor: pointer;
    transition: background .15s;
}
.btn-surface-continue:hover[b-n0a7aj93iz] { background: var(--c-accent-hover); }
/* /Components/Surfaces/SurfaceRouter.razor.rz.scp.css */
.surface-md-fallback :deep p[b-uv33s8buze] { margin: 0 0 .5em; }
.surface-md-fallback :deep p:last-child[b-uv33s8buze] { margin-bottom: 0; }
.surface-md-fallback :deep ul[b-uv33s8buze],
.surface-md-fallback :deep ol[b-uv33s8buze] { padding-left: 1.4em; margin: .25em 0 .5em; }
.surface-md-fallback :deep li[b-uv33s8buze] { margin-bottom: .2em; }
.surface-md-fallback :deep strong[b-uv33s8buze] { font-weight: var(--weight-semibold); }
.surface-md-fallback :deep h1[b-uv33s8buze],
.surface-md-fallback :deep h2[b-uv33s8buze],
.surface-md-fallback :deep h3[b-uv33s8buze] { margin: .75em 0 .35em; font-size: var(--text-base); }
.surface-md-fallback :deep code[b-uv33s8buze] {
    font-family: var(--font-mono);
    font-size: .82em; background: var(--c-surface-muted);
    border-radius: var(--radius-sm); padding: 1px 4px;
    color: var(--c-accent-text); border: 1px solid var(--c-border-soft);
}
.surface-md-fallback :deep pre[b-uv33s8buze] {
    background: #1e2030; border-radius: var(--radius-md);
    padding: var(--sp-3) var(--sp-4);
    overflow-x: auto; margin: var(--sp-2) 0;
}
/* /Components/Surfaces/TreatmentSummarySurface.razor.rz.scp.css */
.surface-treatment[b-dl23u1nkvf] { display: flex; flex-direction: column; gap: var(--sp-3); }
.surface-section[b-dl23u1nkvf] { margin: 0; }
.surface-label[b-dl23u1nkvf] {
    margin: 0 0 var(--sp-1);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--c-text-muted);
}
.surface-label-warn[b-dl23u1nkvf] { color: var(--c-warning-text); }
.surface-list[b-dl23u1nkvf] {
    margin: 0;
    padding-left: 1.2em;
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);
}
.surface-list li[b-dl23u1nkvf] { margin-bottom: var(--sp-1); }
.surface-list-warn li[b-dl23u1nkvf]::marker { color: var(--c-warning); }

.treatment-header[b-dl23u1nkvf] {
    padding-bottom: var(--sp-2);
    border-bottom: 1px solid var(--c-border);
}
.treatment-label[b-dl23u1nkvf] {
    display: block;
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--c-text-muted);
    margin-bottom: var(--sp-1);
}
.treatment-condition[b-dl23u1nkvf] {
    margin: 0;
    font-size: var(--text-base);
    font-weight: var(--weight-semibold);
    color: var(--c-text-primary);
    line-height: var(--leading-relaxed);
}
.treatment-options[b-dl23u1nkvf] { display: flex; flex-direction: column; gap: var(--sp-2); }
.treatment-option-card[b-dl23u1nkvf] {
    background: var(--c-surface);
    border: 1px solid var(--c-border-card);
    border-radius: var(--radius-card);
    padding: var(--sp-3) var(--sp-4);
}
.option-name[b-dl23u1nkvf] { margin: 0 0 var(--sp-1); font-size: var(--text-sm); font-weight: var(--weight-semibold); }
.option-indication[b-dl23u1nkvf] { margin: 0 0 var(--sp-1); font-size: var(--text-sm); color: var(--c-text-secondary); }
.option-caveats[b-dl23u1nkvf] {
    margin: 0;
    padding-left: 1.2em;
    font-size: var(--text-sm);
    color: var(--c-text-primary);
}
.treatment-disclaimer[b-dl23u1nkvf] {
    margin-top: var(--sp-1);
    padding-top: var(--sp-2);
    border-top: 1px solid var(--c-border);
    font-size: var(--text-xs);
    color: var(--c-text-muted);
    line-height: var(--leading-relaxed);
}
/* /Components/TestBuildBanner.razor.rz.scp.css */
.test-build-banner[b-ccsmo2zrcq] {
    display: flex; align-items: center; gap: var(--sp-3);
    padding: var(--sp-2) var(--sp-6);
    background: var(--c-warning-light);
    border-bottom: 1px solid oklch(0.88 0.06 80);
    font-size: var(--text-xs); color: oklch(0.42 0.09 60); flex-shrink: 0;
    line-height: var(--leading-normal);
}

.test-build-banner-icon[b-ccsmo2zrcq] { font-size: .95rem; flex-shrink: 0; }

.test-build-banner-text[b-ccsmo2zrcq] { flex: 1; min-width: 0; }

.test-build-banner-sub[b-ccsmo2zrcq] {
    display: inline; margin-left: var(--sp-2);
    color: oklch(0.48 0.1 55); font-style: italic;
}

@media (max-width: 640px) {
    .test-build-banner-sub[b-ccsmo2zrcq] { display: block; margin-left: 0; }
}
/* /Layout/MainLayout.razor.rz.scp.css */
.app-shell[b-nrx3f3qgtf] { display: flex; height: 100vh; overflow: hidden; }

.sidebar[b-nrx3f3qgtf] {
    width: 250px; min-width: 250px;
    background: var(--c-sidebar-bg);
    border-right: 1px solid var(--c-border);
    color: var(--c-sidebar-text);
    display: flex; flex-direction: column;
    height: 100vh; overflow: hidden;
}

.sidebar-header[b-nrx3f3qgtf] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 var(--sp-4);
    border-bottom: 1px solid var(--c-sidebar-border);
    flex-shrink: 0; min-height: 58px;
}

.app-brand[b-nrx3f3qgtf] { display: flex; align-items: center; gap: 11px; min-width: 0; }

.app-logo-badge[b-nrx3f3qgtf] {
    width: 28px; height: 28px; flex-shrink: 0;
    border-radius: 8px;
    background: var(--c-accent);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 14px;
}

.app-brand-text[b-nrx3f3qgtf] { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.app-name[b-nrx3f3qgtf] {
    font-size: var(--text-sm); font-weight: var(--weight-semibold);
    letter-spacing: -0.01em; color: var(--c-text-primary);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.app-tagline[b-nrx3f3qgtf] {
    font-family: var(--font-mono);
    font-size: 0.657rem;
    color: var(--c-text-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.btn-new-chat[b-nrx3f3qgtf] {
    background: transparent;
    border: none;
    color: var(--c-accent);
    border-radius: var(--radius-sm);
    padding: var(--sp-2);
    cursor: pointer; line-height: 0;
    transition: background .15s, color .15s;
    flex-shrink: 0;
}
.btn-new-chat:hover:not(:disabled)[b-nrx3f3qgtf] { background: var(--c-accent-light); color: var(--c-accent-hover); }
.btn-new-chat:disabled[b-nrx3f3qgtf] { opacity: .45; cursor: default; }

.sidebar-section-label[b-nrx3f3qgtf] {
    padding: var(--sp-4) var(--sp-4) var(--sp-1);
    font-size: 0.657rem;
    font-weight: var(--weight-semibold);
    color: var(--c-text-label);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.sidebar-body[b-nrx3f3qgtf] { flex: 1; overflow-y: auto; overflow-x: hidden; }

.sidebar-footer[b-nrx3f3qgtf] {
    padding: var(--sp-3) var(--sp-4);
    font-size: var(--text-xs);
    color: var(--c-sidebar-text-muted);
    border-top: 1px solid var(--c-sidebar-border);
    flex-shrink: 0;
}

.user-row[b-nrx3f3qgtf] {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    margin-bottom: var(--sp-2);
}
.user-avatar[b-nrx3f3qgtf] {
    width: 32px; height: 32px; flex-shrink: 0;
    border-radius: var(--radius-full);
    background: #dfe6e9;
    color: #556168;
    display: flex; align-items: center; justify-content: center;
    font-weight: var(--weight-semibold); font-size: var(--text-xs);
}
.user-name[b-nrx3f3qgtf] {
    flex: 1;
    min-width: 0;
    font-size: 0.781rem;
    font-weight: var(--weight-semibold);
    color: var(--c-sidebar-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.btn-logout[b-nrx3f3qgtf] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--sp-1);
    color: var(--c-sidebar-text-muted);
    background: transparent;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
}
.btn-logout:hover:not(:disabled)[b-nrx3f3qgtf] {
    color: var(--c-text-secondary);
    background: var(--c-sidebar-hover);
}
.btn-logout:disabled[b-nrx3f3qgtf] { opacity: 0.5; cursor: not-allowed; }

.footer-sep[b-nrx3f3qgtf] { margin: 0 .35rem; }

.footer-meta[b-nrx3f3qgtf] {
    font-family: var(--font-mono);
    font-size: 0.657rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.main-content[b-nrx3f3qgtf] { flex: 1; overflow-y: auto; background: var(--c-surface); display: flex; flex-direction: column; min-width: 0; }

@media (max-width: 1024px) { .sidebar[b-nrx3f3qgtf] { width: 240px; min-width: 240px; } }
@media (max-width: 640px) { .sidebar[b-nrx3f3qgtf] { display: none; } }
/* /Pages/Chat.razor.rz.scp.css */
.chat-page[b-px4zjrvedw] { display: flex; flex-direction: column; height: 100%; overflow: hidden; background: var(--c-bg); }

.chat-header[b-px4zjrvedw] {
    display: flex; align-items: center; gap: var(--sp-3);
    padding: 0 22px;
    border-bottom: 1px solid var(--c-border);
    background: var(--c-surface); flex-shrink: 0; min-height: 58px;
}
/* `min-width: 0` is required so the flex child can shrink below its
   intrinsic content width — without it, a long nowrap title pushes the
   delete button out and the ellipsis never kicks in. */
.chat-header-title[b-px4zjrvedw] { flex: 1 1 0; min-width: 0; font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--c-text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.btn-delete-conv[b-px4zjrvedw] { background: none; border: none; color: var(--c-text-muted); cursor: pointer; line-height: 0; padding: var(--sp-2); border-radius: var(--radius-sm); flex-shrink: 0; transition: background .15s, color .15s; }
.btn-delete-conv:hover[b-px4zjrvedw] { background: var(--c-error-light); color: var(--c-error); }

/* Case button — neutral outline pill by default; when a case is attached it
   turns into the green "de-identified" pill from the prototype. */
.case-button[b-px4zjrvedw] {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--c-surface); color: var(--c-text-secondary);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    padding: 6px 11px;
    font-size: 0.719rem; font-weight: var(--weight-medium);
    cursor: pointer; flex-shrink: 0;
    transition: background .15s, color .15s, border-color .15s;
}
.case-button:hover[b-px4zjrvedw] { background: var(--c-hover); color: var(--c-text-primary); }
.case-button.attached[b-px4zjrvedw] {
    border-color: oklch(0.9 0.04 160);
    color: oklch(0.5 0.07 160);
    background: oklch(0.96 0.03 160);
}
.case-button.attached[b-px4zjrvedw]::before {
    content: ''; width: 6px; height: 6px; border-radius: 50%;
    background: oklch(0.6 0.12 160); flex-shrink: 0;
}
.case-button.attached:hover[b-px4zjrvedw] { background: oklch(0.94 0.04 160); }

.system-marker[b-px4zjrvedw] {
    align-self: center;
    color: var(--c-accent-text);
    background: var(--c-accent-light);
    border: 1px solid var(--c-accent-border);
    border-radius: var(--radius-full, 999px);
    padding: var(--sp-1) var(--sp-4);
    font-size: var(--text-xs);
    max-width: 80%;
    text-align: center;
}

/* `scroll-behavior` is set per-call from JS (instant on open, smooth on stream).
   `overflow-anchor: none` disables the browser's automatic scroll anchoring,
   which during streaming would otherwise pin the viewport to a stale node and
   fight our auto-scroll. */
.messages-area[b-px4zjrvedw] { flex: 1; overflow-y: auto; overflow-anchor: none; padding: var(--sp-6) var(--sp-6); display: flex; flex-direction: column; gap: var(--sp-4); }

.chat-empty[b-px4zjrvedw] { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; gap: var(--sp-2); text-align: center; }
.chat-empty-icon[b-px4zjrvedw] { color: var(--c-accent-border); margin-bottom: var(--sp-2); }
.chat-empty-title[b-px4zjrvedw] { font-size: var(--text-base); font-weight: var(--weight-semibold); color: var(--c-text-body); }
.chat-empty-sub[b-px4zjrvedw] { font-size: var(--text-sm); color: var(--c-text-muted); }
.chat-error[b-px4zjrvedw] { align-self: center; background: var(--c-error-light); color: var(--c-error); border: 1px solid oklch(0.85 0.06 25); border-radius: var(--radius-md); padding: var(--sp-2) var(--sp-4); font-size: var(--text-sm); }

/* Skeleton */
.skeleton-wrap[b-px4zjrvedw] { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-2) 0; }
.skeleton[b-px4zjrvedw] { background: linear-gradient(90deg, #eef2f3 25%, #e4e9eb 50%, #eef2f3 75%); background-size: 200% 100%; animation: chat-shimmer-b-px4zjrvedw 1.4s infinite; border-radius: var(--radius-md); height: 1rem; }
.skeleton-long[b-px4zjrvedw] { width: 75%; }
.skeleton-medium[b-px4zjrvedw] { width: 55%; }
.skeleton-short[b-px4zjrvedw] { width: 35%; }
@keyframes chat-shimmer-b-px4zjrvedw { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Active turn — wraps the typing indicator / streaming bubble during a turn.
   `min-height` reserves vertical space so the user message above can be
   anchored to the top of the viewport while the reply still has room to
   stream into the visible area. Without it, AnchorUser would clamp at
   maxScroll for short messages in long chats and the pill would mis-fire. */
.active-turn[b-px4zjrvedw] { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-4); min-height: max(60vh, 400px); }

/* Typing */
.typing-indicator[b-px4zjrvedw] { align-self: flex-start; display: flex; gap: var(--sp-1); padding: var(--sp-3) var(--sp-4); background: var(--c-surface); border-radius: var(--radius-xl) var(--radius-xl) var(--radius-xl) var(--radius-sm); border: 1px solid var(--c-border); box-shadow: var(--shadow-xs); }
.typing-indicator span[b-px4zjrvedw] { width: 6px; height: 6px; border-radius: var(--radius-full); background: var(--c-text-muted); animation: chat-bounce-b-px4zjrvedw 1.2s infinite; }
.typing-indicator span:nth-child(2)[b-px4zjrvedw] { animation-delay: .2s; }
.typing-indicator span:nth-child(3)[b-px4zjrvedw] { animation-delay: .4s; }
@keyframes chat-bounce-b-px4zjrvedw { 0%,80%,100% { transform: translateY(0); } 40% { transform: translateY(-5px); } }

/* Composer hosts the input + the floating "Jump to latest" pill.
   `position: relative` anchors the pill against the input regardless of
   the input's height (which auto-grows up to 220px). */
.composer[b-px4zjrvedw] { position: relative; flex-shrink: 0; }

.input-area[b-px4zjrvedw] { padding: var(--sp-3) var(--sp-6) 14px; border-top: 1px solid var(--c-border); background: var(--c-surface); }

.composer-disclaimer[b-px4zjrvedw] {
    margin: var(--sp-2) 0 0;
    font-size: 0.625rem;
    line-height: 1.4;
    color: #aab4b9;
    text-align: center;
}

/* Floating pill — sits just above the input area, centered. */
.jump-to-latest[b-px4zjrvedw] {
    position: absolute;
    left: 50%;
    bottom: 100%;
    transform: translateX(-50%);
    margin-bottom: var(--sp-3);
    z-index: 5;
    display: inline-flex; align-items: center; gap: var(--sp-1);
    background: var(--c-surface);
    color: var(--c-text-secondary);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-full, 999px);
    padding: var(--sp-1) var(--sp-3);
    font-size: var(--text-xs);
    font-weight: var(--weight-medium);
    line-height: 1;
    cursor: pointer;
    box-shadow: var(--shadow-md);
    transition: background .15s, color .15s, transform .15s;
    animation: jump-pill-in-b-px4zjrvedw .18s ease-out;
}
.jump-to-latest:hover[b-px4zjrvedw] { background: var(--c-surface-muted, var(--c-surface)); color: var(--c-text-primary); }
.jump-to-latest:active[b-px4zjrvedw] { transform: translateX(-50%) translateY(1px); }
.jump-to-latest svg[b-px4zjrvedw] { display: block; }
@keyframes jump-pill-in-b-px4zjrvedw {
    from { opacity: 0; transform: translateX(-50%) translateY(4px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
/* /Pages/Login.razor.rz.scp.css */
.login-split[b-66eqpydmj3] {
    flex: 1;
    display: flex;
    min-height: 100vh;
    background: var(--c-bg);
    color: var(--c-text-primary);
}

/* ── Left: brand panel ── */
.login-brand-panel[b-66eqpydmj3] {
    width: 44%;
    flex: 0 0 44%;
    background: linear-gradient(160deg, oklch(0.36 0.05 215), oklch(0.46 0.07 205));
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 44px 48px;
}

.login-brand[b-66eqpydmj3] { display: flex; align-items: center; gap: 12px; }
.login-logo-badge[b-66eqpydmj3] {
    width: 34px; height: 34px;
    border-radius: 9px;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .22);
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 16px;
}
.login-brand-text[b-66eqpydmj3] { display: flex; flex-direction: column; line-height: 1.15; }
.login-brand-name[b-66eqpydmj3] { font-weight: 600; font-size: 15px; letter-spacing: -0.01em; }
.login-brand-tagline[b-66eqpydmj3] { font-family: var(--font-mono); font-size: 11px; opacity: .7; }

.login-pitch[b-66eqpydmj3] { max-width: 420px; }
.login-pitch-title[b-66eqpydmj3] {
    font-size: 30px;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.25;
    margin: 0 0 14px;
}
.login-pitch-sub[b-66eqpydmj3] {
    font-size: 14px;
    line-height: 1.6;
    opacity: .82;
    margin: 0 0 26px;
}
.login-features[b-66eqpydmj3] { display: flex; flex-direction: column; gap: 10px; }
.login-feature[b-66eqpydmj3] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    opacity: .85;
    line-height: 1.4;
}
.login-feature-icon[b-66eqpydmj3] {
    width: 22px; height: 22px; flex-shrink: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, .13);
    display: flex; align-items: center; justify-content: center;
    font-size: 11px;
}

.login-copyright[b-66eqpydmj3] {
    font-size: 11px;
    opacity: .55;
    font-family: var(--font-mono);
}

/* ── Right: form ── */
.login-form-panel[b-66eqpydmj3] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    overflow-y: auto;
}

.login-form[b-66eqpydmj3] {
    width: 380px;
    max-width: 100%;
    animation: fadeUp .4s ease;
}

h1[b-66eqpydmj3] {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--c-text-primary);
    margin: 0 0 6px;
}
.login-form-sub[b-66eqpydmj3] {
    font-size: 13px;
    color: var(--c-text-muted);
    margin: 0 0 26px;
}

.field[b-66eqpydmj3] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-bottom: 16px;
}
.field-label[b-66eqpydmj3] {
    font-size: 12px;
    font-weight: var(--weight-semibold);
    color: var(--c-text-secondary);
}
.field-input[b-66eqpydmj3] {
    width: 100%;
    padding: 12px 15px;
    font-family: inherit;
    font-size: 14px;
    color: var(--c-text-primary);
    background: var(--c-surface);
    border: 1px solid var(--c-border-input);
    border-radius: 11px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.field-input:focus[b-66eqpydmj3] {
    border-color: oklch(0.72 0.06 205);
    box-shadow: 0 0 0 3px var(--c-accent-light);
}
.field-input:disabled[b-66eqpydmj3] {
    background: var(--c-surface-muted);
    cursor: not-allowed;
}

/* Password field with the show/hide toggle overlaid on the right. */
.field-password[b-66eqpydmj3] { position: relative; }
.field-password .field-input[b-66eqpydmj3] { padding-right: 5.5rem; }
.field-password-toggle[b-66eqpydmj3] {
    position: absolute;
    top: 50%; right: 8px;
    transform: translateY(-50%);
    border: none; background: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 12px;
    color: var(--c-text-muted);
    padding: 6px 8px;
    border-radius: var(--radius-sm);
    transition: color .15s;
}
.field-password-toggle:hover[b-66eqpydmj3] { color: var(--c-text-secondary); }

[b-66eqpydmj3] .validation-message {
    font-size: var(--text-xs);
    color: var(--c-error);
}

.login-error[b-66eqpydmj3] {
    padding: 10px 13px;
    margin-bottom: 16px;
    font-size: var(--text-sm);
    color: var(--c-error);
    background: var(--c-error-light);
    border: 1px solid oklch(0.85 0.06 25);
    border-radius: 11px;
}

.btn-signin[b-66eqpydmj3] {
    width: 100%;
    margin-top: 4px;
    padding: 13px;
    font-family: inherit;
    font-size: 14px;
    font-weight: var(--weight-semibold);
    color: #fff;
    background: var(--c-accent);
    border: none;
    border-radius: 11px;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(20, 60, 70, .18);
    transition: background 0.15s ease;
}
.btn-signin:hover:not(:disabled)[b-66eqpydmj3] { background: var(--c-accent-hover); }
.btn-signin:disabled[b-66eqpydmj3] { opacity: 0.65; cursor: not-allowed; }

.login-footnote[b-66eqpydmj3] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--c-border-soft);
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--c-text-muted);
}
.login-footnote-icon[b-66eqpydmj3] { flex-shrink: 0; color: var(--c-text-label); margin-top: 1px; }

/* Below the split threshold, drop the brand panel and center the form. */
@media (max-width: 900px) {
    .login-brand-panel[b-66eqpydmj3] { display: none; }
}
/* /Pages/StyleGuide.razor.rz.scp.css */
.sg-page[b-veti0hy2gp] {
    max-width: 860px;
    margin: 0 auto;
    padding: var(--sp-8) var(--sp-6);
    font-family: var(--font-sans);
}

.sg-heading[b-veti0hy2gp] {
    font-size: var(--text-2xl);
    font-weight: var(--weight-semibold);
    color: var(--c-text-primary);
    margin-bottom: var(--sp-1);
}

.sg-sub[b-veti0hy2gp] {
    font-size: var(--text-sm);
    color: var(--c-text-muted);
    margin-bottom: var(--sp-8);
}

.sg-section[b-veti0hy2gp] { margin-bottom: var(--sp-8); }

.sg-section-title[b-veti0hy2gp] {
    font-size: var(--text-lg);
    font-weight: var(--weight-semibold);
    color: var(--c-text-primary);
    margin-bottom: var(--sp-4);
    padding-bottom: var(--sp-2);
    border-bottom: 1px solid var(--c-border);
}

.sg-group-title[b-veti0hy2gp] {
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    color: var(--c-text-secondary);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin: var(--sp-4) 0 var(--sp-2);
}

.sg-desc[b-veti0hy2gp] { font-size: var(--text-sm); color: var(--c-text-secondary); margin-bottom: var(--sp-3); }

/* ── Swatches ──────────────────────────────────────────────────────────── */

.sg-swatches[b-veti0hy2gp] { display: flex; flex-wrap: wrap; gap: var(--sp-2); }

.sg-swatch[b-veti0hy2gp] {
    width: 120px;
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-xs);
}

.sg-swatch-color[b-veti0hy2gp] { height: 56px; width: 100%; }

.sg-swatch-label[b-veti0hy2gp] {
    padding: var(--sp-1) var(--sp-2);
    font-size: 0.65rem;
    font-family: var(--font-mono);
    color: var(--c-text-secondary);
    background: var(--c-surface);
    line-height: 1.3;
    word-break: break-all;
}

/* ── Typography ─────────────────────────────────────────────────────────── */

.sg-type-stack[b-veti0hy2gp] { display: flex; flex-direction: column; gap: var(--sp-3); }

.sg-type-row[b-veti0hy2gp] {
    display: flex;
    align-items: baseline;
    gap: var(--sp-4);
    padding: var(--sp-2) 0;
    border-bottom: 1px solid var(--c-border);
}

.sg-type-label[b-veti0hy2gp] {
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--c-text-muted);
    min-width: 160px;
    flex-shrink: 0;
}

/* ── Spacing ─────────────────────────────────────────────────────────────── */

.sg-spacing-stack[b-veti0hy2gp] { display: flex; flex-direction: column; gap: var(--sp-2); }

.sg-spacing-row[b-veti0hy2gp] {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
}

.sg-spacing-label[b-veti0hy2gp] {
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--c-text-muted);
    min-width: 120px;
}

.sg-spacing-bar[b-veti0hy2gp] {
    height: 16px;
    background: var(--c-accent-light);
    border: 1px solid var(--c-accent);
    border-radius: var(--radius-sm);
}

/* ── Radius ──────────────────────────────────────────────────────────────── */

.sg-radius-row[b-veti0hy2gp] { display: flex; flex-wrap: wrap; gap: var(--sp-4); align-items: flex-end; }

.sg-radius-card[b-veti0hy2gp] {
    width: 80px; height: 56px;
    background: var(--c-accent-light);
    border: 2px solid var(--c-accent);
    display: flex; align-items: center; justify-content: center;
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--c-accent);
}

/* ── Shadows ─────────────────────────────────────────────────────────────── */

.sg-shadow-row[b-veti0hy2gp] { display: flex; flex-wrap: wrap; gap: var(--sp-6); align-items: center; margin-top: var(--sp-2); }

.sg-shadow-card[b-veti0hy2gp] {
    width: 80px; height: 56px;
    background: var(--c-surface);
    border-radius: var(--radius-md);
    display: flex; align-items: center; justify-content: center;
    font-size: var(--text-xs);
    font-family: var(--font-mono);
    color: var(--c-text-muted);
}

/* ── Focus demo ──────────────────────────────────────────────────────────── */

.sg-focus-demo[b-veti0hy2gp] {
    padding: var(--sp-2) var(--sp-6);
    background: var(--c-accent); color: #fff;
    border: none; border-radius: var(--radius-md);
    font-size: var(--text-sm); cursor: pointer;
    font-family: var(--font-sans);
}

/* ── Focus demos ─────────────────────────────────────────────────────────── */

.sg-btn-accent[b-veti0hy2gp] {
    padding: var(--sp-2) var(--sp-6);
    background: var(--c-accent); color: #fff;
    border: none; border-radius: var(--radius-md);
    font-size: var(--text-sm); cursor: pointer;
    font-family: var(--font-sans); font-weight: var(--weight-medium);
    transition: background .15s;
}
.sg-btn-accent:hover[b-veti0hy2gp] { background: var(--c-accent-hover); }

.sg-btn-ghost[b-veti0hy2gp] {
    padding: var(--sp-2) var(--sp-6);
    background: var(--c-surface);
    border: 1px solid var(--c-border-input);
    border-radius: var(--radius-md);
    font-size: var(--text-sm); cursor: pointer;
    color: var(--c-text-secondary);
    font-family: var(--font-sans);
    transition: background .15s;
}
.sg-btn-ghost:hover[b-veti0hy2gp] { background: var(--c-hover); }

.sg-input-demo[b-veti0hy2gp] {
    padding: var(--sp-2) var(--sp-3);
    border: 1px solid var(--c-border-input);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-family: var(--font-sans);
    color: var(--c-text-primary);
    background: var(--c-surface);
    transition: border-color .15s;
}
.sg-input-demo:focus[b-veti0hy2gp] { border-color: var(--c-accent); }

/* ── Bubble samples ──────────────────────────────────────────────────────── */

.sg-bubbles[b-veti0hy2gp] {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
    padding: var(--sp-4);
    background: var(--c-bg);
    border-radius: var(--radius-lg);
    border: 1px solid var(--c-border);
}
