/*
 * Application layout helpers and framework states. Component appearance belongs to Kagaku.UI
 * or the owning application's scoped styles.
 */

/* App-owned compositions, including custom capability forms, inherit the local shared spacing. */
.app-stack { display: flex; flex-direction: column; gap: var(--space-4); }
.app-row { display: flex; align-items: center; gap: var(--space-3); }
.app-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }

/* FocusOnNavigate moves focus to the heading; the ring would read as a selection, not a target. */
h1:focus {
    outline: none;
}

.validation-message {
    color: var(--danger-text);
    font-size: var(--text-sm);
}

/* ErrorBoundary's fallback content. */
.blazor-error-boundary {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    background: var(--danger-subtle);
    color: var(--text);
    border: 1px solid var(--danger);
    border-radius: var(--radius-md);
}

.blazor-error-boundary::after {
    content: "An error has occurred.";
}
