*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --font-sans: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'Cascadia Code', 'Consolas', monospace;

  --c-bg: #EEF0F6;
  --c-surface: #FFFFFF;
  --c-surface-alt: #F7F8FB;
  --c-border: #DDE1EC;
  --c-border-strong: #C4CAD8;

  --c-text: #0F1524;
  --c-text-2: #4A5568;
  --c-text-3: #8A96A8;

  --c-accent: #2563EB;
  --c-accent-hover: #1D4ED8;
  --c-accent-subtle: rgba(37, 99, 235, 0.07);
  --c-accent-border: rgba(37, 99, 235, 0.3);

  --c-success: #16A34A;
  --c-success-subtle: #F0FDF4;
  --c-success-border: #BBF7D0;

  --c-error: #DC2626;
  --c-error-subtle: #FEF2F2;
  --c-error-border: #FECACA;

  --c-warning: #CA8A04;
  --c-warning-subtle: #FEFCE8;
  --c-warning-border: #FDE68A;

  --c-header-bg: #0C0E18;
  --c-header-border: rgba(255, 255, 255, 0.07);
  --c-header-text: #F1F3F9;
  --c-header-text-2: #8892A4;

  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 10px;
  --r-xl: 14px;

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06), 0 1px 4px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.05);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.10);

  --transition: 140ms ease;
}

html {
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.5;
  color: var(--c-text);
  background: var(--c-bg);
  min-height: 100vh;
}

h1, h2, h3, h4 {
  font-weight: 600;
  line-height: 1.25;
  color: var(--c-text);
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
  line-height: 1;
}

input, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}

::selection {
  background: rgba(37, 99, 235, 0.15);
}

code {
  font-family: var(--font-mono);
}
