:root {
    --ink-950: #0A1220;
    --surface-50: #F6F9FC;
    --stroke: #E3EAF3;
    --text-900: #0E1726;
    --text-500: #5A6B82;
    --vix-500: #00C2B8;
    --vix-400: #2BE4D9;
    --font-display: 'Plus Jakarta Sans', system-ui, sans-serif;
    --font-body: 'DM Sans', system-ui, sans-serif;
    --radius-btn: 10px;
    --ink-950-rgb: 10, 18, 32;
    --vix-primary-dark: #0F766E;
    --text-sm: 14px;
    --space-3: 24px;
    --space-4: 32px;
}
html { -webkit-text-size-adjust: 100%; }
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; }
body {
    font-family: var(--font-body);
    background: var(--surface-50);
    color: var(--text-900);
}
button, a.btn-primary { touch-action: manipulation; -webkit-tap-highlight-color: rgba(0, 194, 184, 0.18); }
input, select, textarea { font-size: 16px; max-width: 100%; }
.font-sans { font-family: var(--font-body); }
.antialiased { -webkit-font-smoothing: antialiased; }
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.75rem;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--ink-950);
    background: var(--vix-500);
    border: 1px solid transparent;
    border-radius: var(--radius-btn);
    cursor: pointer;
    text-decoration: none;
}
.btn-primary:hover { background: var(--vix-400); }
.btn-primary--flat { box-shadow: none; }
@media (max-width: 720px) {
    .btn-primary { min-height: 48px; width: 100%; }
}
.ds-alert {
    padding: 0.85rem 1rem;
    border-radius: 0.5rem;
    font-size: 0.9rem;
    margin-bottom: 1rem;
}
.ds-alert--error { background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; }
.list-disc { padding-left: 1.1rem; }
.list-inside { list-style-position: inside; }
.space-y-1 > * + * { margin-top: 0.25rem; }
