* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-elevated) 100%);
    color: var(--color-text);
    font-family: var(--font-sans);
}


body {
    min-height: 100vh;
    margin: var(--space-0);
    background: transparent;
    color: var(--color-text);
    font-family: var(--font-sans);
    font-size: var(--font-size-md);
    line-height: var(--line-height-normal);
}

:focus:not(:focus-visible) {
    outline: none;
}

/* Soft Solina focus — no native browser ring. Form fields keep a clear ring. */
:focus-visible {
    outline: none;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--solina-focus-ring, var(--color-focus));
    outline-offset: var(--space-1);
}

a {
    color: inherit;
}

h1,
h2,
h3,
h4 {
    line-height: var(--line-height-tight);
}

h1 {
    font-size: clamp(var(--font-size-xl), 4vw, var(--font-size-3xl));
}

h2 {
    font-size: clamp(var(--font-size-lg), 3vw, var(--font-size-2xl));
}

.text-body {
    font-size: var(--font-size-md);
}

.text-meta,
.text-muted {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-normal);
}

[data-theme="dark"] .text-meta,
[data-theme="dark"] .text-muted {
    color: var(--color-text-secondary);
}

.container {
    width: min(100%, var(--container-lg));
    margin-inline: auto;
    padding-inline: var(--space-4);
}

.container-xl {
    width: min(100%, var(--container-xl));
}

.grid {
    display: grid;
    gap: var(--space-4);
}

.grid-responsive {
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.stack-sm {
    display: grid;
    gap: var(--space-2);
}

.stack-md {
    display: grid;
    gap: var(--space-4);
}

.stack-lg {
    display: grid;
    gap: var(--space-8);
}

.safe-overflow {
    min-width: var(--space-0);
    overflow: hidden;
}

.theme-preload {
    transition: none;
}

@media (max-width: 64rem) {
    .container {
        padding-inline: var(--space-3);
    }
}
