:root {
  --tagline-font-size: 13px;
  --tagline-letter-spacing: 0.08em;
  --tagline-opacity: 0.85;
  --bg-primary: #070b12;
  --bg-elevated-token: #0c1220;
  --bg-surface-token: #0f1728;
  --bg-surface-alt: #131d31;
  --bg-surface-strong: #18233a;
  --bg-glass-token: rgba(17, 27, 44, 0.72);
  --text-primary: #edf2ff;
  --text-secondary: #99a7c4;
  --text-tertiary: #7f8ca6;
  --border-subtle: rgba(157, 181, 222, 0.17);
  --border-emphasis: rgba(157, 181, 222, 0.32);
  --accent: #68b4ff;
  --accent-strong: #2d88ff;
  --accent-soft: rgba(104, 180, 255, 0.16);
  --accent-rgb: 104, 180, 255;
  --bg-glow-a: #16223a;
  --bg-glow-b: #1f2f4d;
  --success-token: #46d99f;
  --success-rgb: 70, 217, 159;
  --danger-token: #ff7f90;
  --danger-rgb: 255, 127, 144;
  --warning-token: #f5ca78;
  --warning-rgb: 245, 202, 120;
  --bg: var(--bg-primary);
  --bg-elevated: var(--bg-elevated-token);
  --surface-1: var(--bg-surface-token);
  --surface-2: var(--bg-surface-alt);
  --surface-3: var(--bg-surface-strong);
  --surface-glass: var(--bg-glass-token);
  --text: var(--text-primary);
  --text-muted: var(--text-secondary);
  --text-soft: var(--text-tertiary);
  --line: var(--border-subtle);
  --line-strong: var(--border-emphasis);
  --brand: var(--accent);
  --brand-strong: var(--accent-strong);
  --text-main: var(--text-primary);
  --text-strong: var(--text-primary);
  --text-hi: var(--text-primary);
  --accent-2: color-mix(in srgb, var(--accent) 42%, white 58%);
  --positive: var(--success-token);
  --negative: var(--danger-token);
  --warning: var(--warning-token);
  --panel-nav-start: #161f35;
  --panel-nav-end: #0c1424;
  --panel-shell-start: #172238;
  --panel-shell-end: #0d1728;
  --panel-soft: rgba(12, 19, 33, 0.82);
  --panel-elevated: rgba(16, 25, 42, 0.86);
  --panel-strong: rgba(23, 36, 58, 0.9);
  --field-bg: #0c1628;
  --field-focus-bg: #12203a;
  --chip-bg: rgba(255, 255, 255, 0.03);
  --chip-hover-bg: rgba(255, 255, 255, 0.06);
  --hero-start: #1a2741;
  --hero-end: #0c1728;
  --map-shell-start: #15233d;
  --map-shell-end: #0b1627;
  --accent-grad-start: #89c9ff;
  --accent-grad-end: #4f90ec;
  --surface-card: var(--panel-elevated);
  --surface-card-soft: var(--panel-soft);
  --surface-card-strong: var(--panel-strong);
  --surface-border-faint: rgba(255, 255, 255, 0.05);
  --surface-border-soft: rgba(255, 255, 255, 0.08);
  --surface-border-strong: rgba(var(--accent-rgb), 0.34);
  --accent-border-subtle: rgba(var(--accent-rgb), 0.24);
  --accent-border-soft: rgba(var(--accent-rgb), 0.42);
  --accent-border-strong: rgba(var(--accent-rgb), 0.62);
  --focus-ring: 0 0 0 3px rgba(var(--accent-rgb), 0.14);
  --focus-ring-strong: 0 0 0 3px rgba(var(--accent-rgb), 0.2);
  --status-positive-bg: rgba(var(--success-rgb), 0.14);
  --status-positive-bg-strong: rgba(var(--success-rgb), 0.24);
  --status-positive-border: rgba(var(--success-rgb), 0.32);
  --status-positive-text: color-mix(in srgb, var(--positive) 30%, white 70%);
  --status-warning-bg: rgba(var(--warning-rgb), 0.14);
  --status-warning-bg-strong: rgba(var(--warning-rgb), 0.22);
  --status-warning-border: rgba(var(--warning-rgb), 0.3);
  --status-warning-text: color-mix(in srgb, var(--warning) 24%, white 76%);
  --status-negative-bg: rgba(var(--danger-rgb), 0.14);
  --status-negative-bg-strong: rgba(var(--danger-rgb), 0.24);
  --status-negative-border: rgba(var(--danger-rgb), 0.32);
  --status-negative-text: color-mix(in srgb, var(--negative) 26%, white 74%);
  --viz-primary-start: var(--accent-grad-start);
  --viz-primary-end: var(--accent-grad-end);
  --viz-positive-start: color-mix(in srgb, var(--positive) 72%, white 28%);
  --viz-positive-end: color-mix(in srgb, var(--positive) 74%, black 26%);
  --viz-warning-start: color-mix(in srgb, var(--warning) 74%, white 26%);
  --viz-warning-end: color-mix(in srgb, var(--warning) 70%, black 30%);
  --viz-negative-start: color-mix(in srgb, var(--negative) 74%, white 26%);
  --viz-negative-end: color-mix(in srgb, var(--negative) 70%, black 30%);
  --radius-pill: 999px;
  --control-height-sm: 34px;
  --control-height-md: 41px;
  --control-height-lg: 50px;
  --dur-fast: 140ms ease;
  --dur: var(--dur-fast);
  --radius-xs: 10px;
  --radius-sm: 14px;
  --radius-md: 18px;
  --radius-lg: 24px;
  --shadow-soft: 0 18px 42px rgba(0, 0, 0, 0.34);
  --shadow-card: 0 8px 20px rgba(0, 0, 0, 0.24);
  --shadow-raised: 0 14px 30px rgba(0, 0, 0, 0.28);
  --space-1: 6px;
  --space-2: 10px;
  --space-3: 14px;
  --space-4: 18px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 42px;
  --space-8: 56px;
  --type-label: 11px;
  --type-meta: 12px;
  --type-body-sm: 13px;
  --type-body: 14px;
  --type-title-sm: 18px;
  --type-title-md: 22px;
  --type-title-lg: clamp(32px, 4vw, 44px);
  --type-kpi: clamp(26px, 2.4vw, 34px);
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  background:
    radial-gradient(circle at 18% 10%, var(--bg-glow-a) 0%, transparent 36%),
    radial-gradient(circle at 90% -5%, var(--bg-glow-b) 0%, transparent 30%),
    var(--bg);
  color: var(--text);
  font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
  min-height: 100%;
}

body {
  line-height: 1.42;
  letter-spacing: 0.01em;
}

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

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

button {
  border: 0;
  background: none;
  cursor: pointer;
}


