:root,
[data-theme="light"] {
    --bg-page: #f7f7f8;
    --bg-page-accent: #ececf1;
    --bg-card: #ffffff;
    --bg-input: #ffffff;
    --bg-input-focus: #ffffff;
    --bg-button-secondary: #f4f4f4;
    --bg-captcha: #f0f0f0;

    --text-primary: #0d0d0d;
    --text-secondary: #5d5d5d;
    --text-muted: #8e8e8e;
    --text-inverse: #ffffff;

    --border-subtle: #e5e5e5;
    --border-input: #d9d9d9;
    --border-focus: #0d0d0d;

    --btn-primary-bg: #0d0d0d;
    --btn-primary-hover: #333333;

    --shadow-card: 0 12px 40px rgba(15, 23, 42, 0.08);
    --shadow-soft: 0 2px 8px rgba(15, 23, 42, 0.04);

    --alert-error-bg: #fef2f2;
    --alert-error-border: #fecaca;
    --alert-error-text: #b91c1c;

    --logo-color: #0d0d0d;
    --captcha-text: #0d0d0d;
    --captcha-noise: #d4d4d4;
}

[data-theme="dark"] {
    --bg-page: #212121;
    --bg-page-accent: #2a2a2a;
    --bg-card: #2f2f2f;
    --bg-input: #3a3a3a;
    --bg-input-focus: #3a3a3a;
    --bg-button-secondary: #3a3a3a;
    --bg-captcha: #2a2a2a;

    --text-primary: #ececec;
    --text-secondary: #b4b4b4;
    --text-muted: #888888;
    --text-inverse: #0d0d0d;

    --border-subtle: #424242;
    --border-input: #525252;
    --border-focus: #ececec;

    --btn-primary-bg: #ffffff;
    --btn-primary-hover: #e5e5e5;

    --shadow-card: 0 12px 40px rgba(0, 0, 0, 0.35);
    --shadow-soft: 0 2px 8px rgba(0, 0, 0, 0.2);

    --alert-error-bg: rgba(239, 68, 68, 0.15);
    --alert-error-border: rgba(239, 68, 68, 0.4);
    --alert-error-text: #fca5a5;

    --logo-color: #ececec;
    --captcha-text: #ececec;
    --captcha-noise: #555555;
}

html {
    color-scheme: light;
}

html[data-theme="dark"] {
    color-scheme: dark;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html,
body {
    height: 100%;
}

body {
    font-family: Tahoma, "Segoe UI", Arial, sans-serif;
    background: var(--bg-page);
    color: var(--text-primary);
    line-height: 1.5;
    transition: background-color 0.25s ease, color 0.25s ease;
}
