:root {
  --bg-base: #0e0e0e;
  --bg-panel: #1a1a1a;
  --bg-raised: #252525;
  --bg-selected: #0d3a3c;
  --border: #2e2e2e;
  --accent: #097479;
  --accent-bright: #0eb8c0;
  --text-primary: #eeeeee;
  --text-muted: #777777;
  --warn: #e87c2a;
  --danger: #c0392b;
  --status-online: #2ecc71;
  --status-offline: #444444;
  --status-busy: #0eb8c0;
  --status-warn: #e87c2a;
  --font-mono: "SF Mono", "Consolas", "Fira Mono", monospace;
}

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

[hidden] { display: none !important; }

html, body {
  height: 100%;
  background: var(--bg-base);
  color: var(--text-primary);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
  overscroll-behavior: none;
}

button {
  cursor: pointer;
  border: none;
  background: none;
  color: inherit;
  font: inherit;
}

input, select, textarea {
  font: inherit;
  color: inherit;
  background: var(--bg-raised);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px 12px;
  width: 100%;
  outline: none;
}

input:focus, select:focus {
  border-color: var(--accent-bright);
}

input.input-invalid {
  background: #7a1a1a;
  color: #f5c518;
  border-color: #c0392b;
}

input.input-invalid:focus {
  border-color: #e74c3c;
}

label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  display: block;
  margin-bottom: 6px;
}

.monospace {
  font-family: var(--font-mono);
  font-size: 12px;
}

a {
  color: var(--accent-bright);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 2px;
}
