:root {
  /* Palette */
  --color-bg: #f5f7fa;
  --color-surface: #ffffff;
  --color-surface-2: #fbfcfe;
  --color-text: #1f2430;
  --color-muted: #64748b;
  --color-faint: #94a3b8;
  --color-border: #e5e9f0;
  --color-primary: #2563eb;
  --color-primary-ink: #1d4ed8;

  /* Deep slate (sidebar + brand, matches login) */
  --ink: #0e1726;
  --ink-2: #16223a;
  --ink-line: #22304a;
  --on-ink: #e6ecf5;
  --on-ink-dim: #8698b5;

  /* Status */
  --status-healthy: #16a34a;
  --status-low: #f59e0b;
  --status-out: #dc2626;

  /* Type */
  --font-display: 'Montserrat', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;
  --font-mono: 'Space Mono', ui-monospace, monospace;
  --font: var(--font-body); /* back-compat alias */

  /* Space + shape */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 36px;
  --topbar-h: 64px; /* sticky top bar height (10px pad ×2 + 44px profile chip) */
  --radius: 8px;
  --radius-lg: 14px;
  --radius-full: 999px;
  --sidebar-w: 244px;

  /* Elevation */
  --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.05);
  --shadow-md: 0 8px 24px rgba(16, 24, 40, 0.08);
  --shadow-lg: 0 24px 60px rgba(16, 24, 40, 0.18);
}

* { box-sizing: border-box; }

html, body { height: 100%; }

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--color-text);
  margin: 0;
}

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

input, select, textarea {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 10px 12px;
  outline: none;
  transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 18%, transparent);
}
input::placeholder { color: var(--color-faint); }

/* Replace the cramped native select arrow with a custom chevron that has real
   right padding, applied to every <select> in the app. */
select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}

button { font-family: var(--font-body); cursor: pointer; }

::selection { background: color-mix(in srgb, var(--color-primary) 22%, transparent); }
