/* Ledger 8.13 — the shell-rendered flash banner (_shell_flash.html).
 *
 * Loaded by BOTH staff shells. On app_base.html pages the var() tokens
 * resolve from the design system and every fallback below is inert; the
 * fallbacks exist solely for the legacy base.html shell, whose
 * style.css predates the semantic tokens — without them the banner
 * renders as an unstyled div exactly where a message matters most.
 * They mirror the app-token values, deliberately: one look, two shells.
 *
 * A banner, not a toast: an error a reviewer needs to read must not
 * remove itself. Dismiss is a plain node removal. */
.shell-flash {
    display: flex; align-items: baseline; gap: var(--sp-6);
    margin: 0 0 var(--sp-8); padding: var(--sp-5) var(--sp-7);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm, 6px);
    background: var(--info-bg, #e9f1f9);
    color: var(--text, #23262f);
    font-size: var(--fs-meta, 13px);
}
.shell-flash-text { flex: 1; }
.shell-flash-success {
    background: var(--success-bg, #eaf6ef);
    border-color: var(--success-line, #a8d8bf);
    color: var(--success, #1a7c4f);
}
.shell-flash-warning {
    background: var(--warning-bg, #fdf3e3);
    border-color: var(--warning-line, #e4b96b);
    color: var(--warning-strong, #8a520c);
}
.shell-flash-error {
    background: var(--danger-bg, #fdebe7);
    border-color: var(--danger-line, #eab3aa);
    color: var(--danger, #c0392b);
}
.shell-flash-close {
    border: 0; background: none; cursor: pointer; padding: 0 var(--sp-1);
    font-size: var(--fs-lg); line-height: 1; color: inherit; opacity: 0.7;
}
.shell-flash-close:hover { opacity: 1; }
.shell-flash-close:focus-visible {
    outline: 2px solid var(--primary); outline-offset: 2px;
}
