blob: 1049c9310240930776a429efdc359f9e82dff89e [file]
/* ============================================================================
Error surface — full-screen error boundary
----------------------------------------------------------------------------
Split out of chat-header.css (#546 PR2, relocate — zero visual change).
Holds the renderer error boundary (`.maka-error-*`). The old inert
`fake` backend banner was removed by #1032 (folded into the hard-only
session health notice above the composer). */
.maka-error-surface {
position: fixed;
inset: 0;
z-index: var(--z-overlay);
display: grid;
place-items: center;
padding: var(--space-8);
background: var(--background);
}
.maka-error-card {
display: grid;
grid-template-columns: 32px minmax(0, 1fr);
align-items: start;
gap: var(--space-3);
max-width: 520px;
padding: var(--space-3) var(--space-4);
border: var(--border-width-hairline) solid oklch(from var(--destructive) l c h / 0.3);
background: var(--background-elevated);
box-shadow: var(--shadow-modal);
}
.maka-error-icon {
width: 32px;
height: 32px;
display: grid;
place-items: center;
/* Square icon plate — ratio-governed, see --radius-plate. */
border-radius: var(--radius-plate);
background: oklch(from var(--destructive) l c h / 0.10);
color: var(--destructive-text);
}
.maka-error-copy {
display: grid;
gap: var(--space-1-5);
}
.maka-error-copy h2 {
margin: 0;
color: var(--foreground);
font-size: var(--font-size-ui);
font-weight: var(--font-weight-semibold);
}
.maka-error-copy p {
margin: 0;
color: var(--foreground-secondary);
font-size: var(--font-size-ui);
line-height: var(--leading-normal);
max-width: 56ch;
}
.maka-error-stack {
margin: var(--space-1) 0 0;
max-height: 220px;
padding: var(--space-2-5) var(--space-3);
border: var(--border-width-hairline) solid var(--border);
border-radius: var(--radius-surface);
background: var(--foreground-3);
color: var(--foreground-secondary);
overflow: auto;
font-family: var(--font-mono);
font-size: var(--font-size-caption);
line-height: var(--leading-normal);
white-space: pre-wrap;
word-break: break-word;
}
.maka-error-actions {
display: flex;
align-items: center;
gap: var(--space-2);
margin-top: var(--space-1-5);
}
.maka-error-copy-action[data-copy-state="pending"] {
cursor: progress;
}
.maka-error-copy-action[data-copy-state="failed"] {
color: var(--destructive);
border-color: oklch(from var(--destructive) l c h / 0.35);
}
.maka-error-copy-status {
color: var(--destructive-text);
}