/*
 * Base styles – global HTML element defaults
 *
 * Uses semantic variables from theme.css.
 * Covers: box-sizing reset, body, and typography defaults.
 * Component and feature styles belong in app.css or scoped .razor.css files.
 */

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    line-height: var(--line-height-normal);
    margin: 0;
    background: var(--color-bg);
    color: var(--color-text);
}

/*
 * Suppress the browser default focus ring for programmatic and mouse-initiated
 * focus. :focus-visible remains active for keyboard-initiated focus so that
 * interactive controls (buttons, links, inputs) still show a visible ring
 * when navigated by keyboard.
 *
 * This specifically prevents the white outline that Blazor's FocusOnNavigate
 * sets on the first h1 after page navigation from appearing on initial render.
 */
:focus:not(:focus-visible) {
    outline: none;
}
