[data-theme='fm-light'] {
    color-scheme: light;

    --color-primary: oklch(53.99% 0.191 257.48);
    --color-primary-content: oklch(100% 0 0);

    --color-secondary: oklch(49.39% 0.199 291.99);
    --color-secondary-content: oklch(100% 0 0);

    --color-accent: oklch(69.87% 0.161 57.64);
    --color-accent-content: oklch(100% 0 0);

    --color-neutral: oklch(53.1% 0.017 251.29);
    --color-neutral-content: oklch(100% 0 0);

    --color-base-100: oklch(100% 0 0);
    --color-base-200: oklch(97.82% 0.003 247.86);
    --color-base-300: oklch(87.58% 0.012 247.97);
    --color-base-content: oklch(25.42% 0.011 254.04);

    --color-success: oklch(52.44% 0.14 148.04);
    --color-success-content: oklch(100% 0 0);
    --color-error: oklch(55.17% 0.205 24.53);
    --color-error-content: oklch(100% 0 0);
    --color-warning: oklch(55.42% 0.117 75.01);
    --color-warning-content: oklch(100% 0 0);
    --color-info: oklch(54.78% 0.19 256.96);
    --color-info-content: oklch(100% 0 0);

    --radius-box: 0.5rem;
    --radius-field: 0.375rem;
    --radius-selector: 1.9rem;
    --border: 1px;
}

[data-theme='fm-dark'] {
    color-scheme: dark;

    --color-primary: oklch(71.53% 0.152 253.31);
    --color-primary-content: oklch(18.5% 0.016 256.83);

    --color-secondary: oklch(49.39% 0.199 291.99);
    --color-secondary-content: oklch(100% 0 0);

    --color-accent: oklch(69.87% 0.161 57.64);
    --color-accent-content: oklch(100% 0 0);

    --color-neutral: oklch(66.25% 0.018 250.92);
    --color-neutral-content: oklch(18.5% 0.016 256.83);

    --color-base-100: oklch(17.63% 0.014 258.36);
    --color-base-200: oklch(22.02% 0.016 256.82);
    --color-base-300: oklch(33% 0.015 252.31);
    --color-base-content: oklch(94.25% 0.011 243.66);

    --color-success: oklch(69.51% 0.181 145.62);
    --color-success-content: oklch(17.63% 0.014 258.36);
    --color-error: oklch(66.51% 0.205 26.96);
    --color-error-content: oklch(17.63% 0.014 258.36);
    --color-warning: oklch(71.96% 0.14 79.91);
    --color-warning-content: oklch(17.63% 0.014 258.36);
    --color-info: oklch(69.6% 0.15 253.16);
    --color-info-content: oklch(17.63% 0.014 258.36);

    --radius-box: 0.5rem;
    --radius-field: 0.375rem;
    --radius-selector: 1.9rem;
    --border: 1px;
}

/* Prose typography — used on legal/content pages */
.prose {
    color: var(--color-base-content);
    line-height: 1.75;
    font-size: 0.9375rem;
}

.prose h1 {
    font-size: 1.875rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 1.5rem;
    color: var(--color-base-content);
}

.prose h2 {
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.4;
    margin-top: 2.5rem;
    margin-bottom: 0.625rem;
    color: var(--color-base-content);
    padding-bottom: 0.375rem;
    border-bottom: 1px solid var(--color-base-300);
}

.prose h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
    color: var(--color-base-content);
}

.prose p {
    margin-bottom: 1rem;
}

.prose .lead {
    font-size: 0.875rem;
    opacity: 0.65;
    margin-bottom: 2rem;
}

.prose ul {
    list-style-type: disc;
    padding-left: 1.5rem;
    margin-bottom: 1rem;
}

.prose ol {
    list-style-type: decimal;
    padding-left: 1.5rem;
    margin-bottom: 1rem;
}

.prose li {
    margin-bottom: 0.375rem;
}

.prose a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.prose a:hover {
    opacity: 0.8;
}

.prose strong {
    font-weight: 600;
}

.prose table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.5rem;
    font-size: 0.875rem;
}

.prose thead tr {
    border-bottom: 2px solid var(--color-base-300);
}

.prose th {
    text-align: left;
    padding: 0.5rem 0.75rem;
    font-weight: 600;
}

.prose td {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--color-base-300);
    vertical-align: top;
}

.prose tr:last-child td {
    border-bottom: none;
}
