:root {
  --bg: #f5f5f8;
  --bg-alt: #f3f4f6;
  --surface: #ffffff;

  --border-subtle: #e5e7eb;
  --border-strong: #d1d5db;

  --text-main: #111827;
  --text-soft: #4b5563;
  --text-muted: #6b7280;

  --accent: #2563eb;
  --accent-soft: #dbeafe;
  --accent-soft-strong: #bfdbfe;

  --success: #10b981;
  --rating: #fbbf24;

  --radius-lg: 16px;
  --radius-md: 12px;
  --radius-pill: 999px;

  --shadow-soft: 0 10px 30px rgba(15, 23, 42, 0.08);

  --container-max: 1160px;

  --transition-fast: 0.16s cubic-bezier(.2, .8, .2, 1);

  --fs-hero: clamp(32px, 3vw, 40px);
  --fs-sub: clamp(16px, 2vw, 18px);

  --color-primary: var(--accent);
  --color-primary-600: #1d4ed8;
  --color-primary-700: #1e40af;

  --color-secondary: var(--rating);
  --color-secondary-600: #f59e0b;

  --color-accent: var(--success);
  --color-error: #ef4444;

  --color-bg: var(--bg);
  --color-surface: var(--surface);
  --color-header: rgba(255, 255, 255, 0.96);

  --color-text: var(--text-main);
  --color-text-muted: var(--text-muted);
  --color-border: var(--border-subtle);
  --color-chip: var(--bg-alt);
  --surface-soft: #f9fafb;
  --surface-strong: #e5e7eb;
  --surface-glass: rgba(255, 255, 255, 0.92);
  --surface-glass-strong: rgba(255, 255, 255, 0.96);
  --surface-glass-border: rgba(229, 231, 235, 0.65);
  --text-on-dark: #f9fafb;
  --text-placeholder: #9ca3af;
  --status-danger-bg: #fee2e2;
  --status-danger-border: #fecaca;
  --status-danger-text: #b91c1c;
  --status-warning-bg: #fffbeb;
  --status-warning-border: #facc15;
  --status-warning-text: #92400e;
  --status-success-bg: #ecfdf5;
  --status-success-border: #6ee7b7;
  --status-success-text: #047857;
  --toast-bg: #111827;
  --toast-text: #f9fafb;
  --overlay-dark: rgba(15, 23, 42, 0.7);
  --overlay-dark-border: rgba(148, 163, 184, 0.55);
  --overlay-dark-soft: rgba(15, 23, 42, 0.55);
  --overlay-dark-strong: rgba(15, 23, 42, 0.75);
  --modal-dark-bg: #0b1220;
  --modal-dark-control: rgba(15, 23, 42, 0.55);
  --modal-dark-control-hover: rgba(15, 23, 42, 0.75);
  --modal-dark-border: rgba(148, 163, 184, 0.35);

  --shadow-card: var(--shadow-soft);
  --shadow-card-hover: 0 14px 40px rgba(15, 23, 42, 0.14);
  --shadow-primary-hover: 0 12px 30px rgba(37, 99, 235, 0.22);

  --radius-xs: 10px;
  --radius-sm: 12px;
  --radius-xl: 20px;

  --container: var(--container-max);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 40px;
  --space-9: 56px;
  --space-10: 80px;

  --font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fs-xs: 12px;
  --fs-sm: 13px;
  --fs-md: 14px;
  --fs-lg: 16px;
  --fs-xl: 18px;
  --fs-2xl: 22px;
  --fs-3xl: 28px;
  --type-h1: 40px;
  --type-h2: 26px;
  --type-h3: 22px;
  --type-lead: 16px;
  --type-body: 14px;
  --type-small: 13px;
  --type-xs: 12px;
  --type-micro: 11px;
  --lh-h1: 1.1;
  --lh-h2: 1.2;
  --lh-h3: 1.2;
  --lh-lead: 1.55;
  --lh-body: 1.6;
  --lh-small: 1.5;
  --lh-xs: 1.4;
  --lh-micro: 1.3;
  --btn-height: 40px;
  --btn-padding-x: 16px;
  --btn-radius: 999px;
  --btn-font-size: 13px;
  --btn-font-weight: 600;
  --btn-lg-height: 52px;
  --btn-lg-padding-x: 32px;
  --btn-lg-radius: 999px;
  --btn-sm-height: 34px;
  --btn-sm-padding-x: 12px;
  --btn-sm-radius: 999px;
  --btn-sm-font-size: 12px;
  --input-height: 48px;
  --input-padding-x: 16px;
  --input-radius: 12px;
  --input-font-size: 14px;
  --input-search-height: 54px;
  --input-search-padding-x: 18px;
  --input-search-radius: 999px;
  --placeholder-font-size: 14px;
  --placeholder-font-size-sm: 12px;
  --placeholder-lh: 1.4;
  --badge-font-size: 12px;
  --badge-padding-y: 6px;
  --badge-padding-x: 10px;
  --badge-radius: 999px;
  --chip-height: 32px;
  --chip-padding-x: 12px;
  --chip-radius: 999px;
  --chip-font-size: 12px;

  --lh: 1.6;
}

[data-theme="dark"] {
  --bg: #0f1115;
  --bg-alt: #171b23;
  --surface: #1c222c;

  --border-subtle: #2a3240;
  --border-strong: #3a465a;

  --text-main: #e6e9ef;
  --text-soft: #c7d0dd;
  --text-muted: #9aa6b2;

  --accent: #4f8cff;
  --accent-soft: #1f2f4a;
  --accent-soft-strong: #2a3d60;

  --success: #22c55e;
  --rating: #fbbf24;

  --shadow-soft: 0 12px 34px rgba(0, 0, 0, 0.45);

  --color-primary: var(--accent);
  --color-primary-600: #2d6df5;
  --color-primary-700: #1f55d4;

  --color-secondary: var(--rating);
  --color-secondary-600: #d97706;

  --color-accent: var(--success);
  --color-error: #f87171;

  --color-bg: var(--bg);
  --color-surface: var(--surface);
  --color-header: rgba(15, 17, 21, 0.96);

  --color-text: var(--text-main);
  --color-text-muted: var(--text-muted);
  --color-border: var(--border-subtle);
  --color-chip: #202733;
  --surface-soft: #1f2734;
  --surface-strong: #2a3240;
  --surface-glass: rgba(28, 34, 44, 0.85);
  --surface-glass-strong: rgba(28, 34, 44, 0.92);
  --surface-glass-border: rgba(42, 50, 64, 0.9);
  --text-on-dark: #f9fafb;
  --text-placeholder: var(--text-muted);
  --status-danger-bg: rgba(248, 113, 113, 0.18);
  --status-danger-border: rgba(248, 113, 113, 0.4);
  --status-danger-text: #fecaca;
  --status-warning-bg: rgba(245, 158, 11, 0.18);
  --status-warning-border: rgba(245, 158, 11, 0.4);
  --status-warning-text: #fcd34d;
  --status-success-bg: rgba(34, 197, 94, 0.18);
  --status-success-border: rgba(34, 197, 94, 0.4);
  --status-success-text: #86efac;
  --toast-bg: #1f2734;
  --toast-text: var(--text-main);
  --overlay-dark: rgba(0, 0, 0, 0.6);
  --overlay-dark-border: rgba(148, 163, 184, 0.35);
  --overlay-dark-soft: rgba(0, 0, 0, 0.5);
  --overlay-dark-strong: rgba(0, 0, 0, 0.72);
  --modal-dark-bg: #0b1220;
  --modal-dark-control: rgba(0, 0, 0, 0.55);
  --modal-dark-control-hover: rgba(0, 0, 0, 0.7);
  --modal-dark-border: rgba(148, 163, 184, 0.35);

  --shadow-card: 0 14px 40px rgba(0, 0, 0, 0.5);
  --shadow-card-hover: 0 18px 48px rgba(0, 0, 0, 0.6);
  --shadow-primary-hover: 0 12px 30px rgba(79, 140, 255, 0.35);
}

html[data-theme="dark"] {
  color-scheme: dark;
}

* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}

body {
  margin: 0;
  color: var(--text-main);
  font-family: var(--font-family);
  line-height: var(--lh);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select {
  font: inherit;
  color: inherit;
}

img {
  max-width: 100%;
  display: block;
}

.container {
  width: min(var(--container-max), 100% - 32px);
  margin: 0 auto;
}

.page {
  padding: 18px 0 24px;
}

@media (max-width: 820px) {
  :root {
    --type-h1: 30px;
    --type-h2: 22px;
    --type-h3: 18px;
    --type-lead: 15px;
    --type-small: 12px;
    --type-micro: 11px;
    --lh-h1: 1.15;
    --lh-h3: 1.25;
    --lh-lead: 1.5;
    --btn-padding-x: 14px;
    --btn-lg-padding-x: 24px;
    --btn-sm-height: 32px;
    --btn-sm-padding-x: 12px;
    --input-padding-x: 14px;
    --input-radius: 12px;
    --input-search-height: 50px;
    --input-search-padding-x: 16px;
    --input-search-radius: 999px;
    --placeholder-font-size: 13px;
    --chip-height: 30px;
    --chip-padding-x: 10px;
  }
}

@media (max-width: 640px) {
  .container {
    width: min(var(--container-max), 100% - 24px);
  }
}
