* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
    min-height: 100vh;
    margin: 0;
    color: var(--text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--green-950); line-height: 1.12; letter-spacing: -.035em; }
h1 { margin-bottom: 0; font-size: clamp(1.65rem, 2.5vw, 2.25rem); }
h2 { margin-bottom: 0; font-size: clamp(1.03rem, 1.7vw, 1.28rem); }
h3 { margin-bottom: 0; font-size: 1rem; }
p { color: var(--muted); }
small { color: var(--muted); }
::selection { background: rgba(253, 228, 54, .55); color: var(--green-950); }

.app-body,
.auth-body,
.install-body {
    background:
        radial-gradient(circle at 8% 3%, rgba(253, 228, 54, .16), transparent 22%),
        radial-gradient(circle at 94% 5%, rgba(133, 187, 57, .11), transparent 22%),
        linear-gradient(135deg, #fbfcfa 0%, var(--cream) 58%, #f0f6ef 100%);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid rgba(253, 228, 54, .72);
    outline-offset: 2px;
}

body { overflow-wrap: break-word; }
button:disabled,
input:disabled,
select:disabled,
textarea:disabled { cursor: not-allowed; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
