:root {
  --bg: #f4f7f5;
  --surface: #ffffff;
  --surface-soft: #f8faf9;
  --line: #e3ebe6;
  --text: #17221b;
  --muted: #708077;
  --green: #2f7d4f;
  --green-soft: #e7f4ec;
  --blue: #2e78c7;
  --blue-soft: #e9f2fb;
  --amber: #bc7a1f;
  --amber-soft: #fff2dc;
  --red: #c74f4f;
  --red-soft: #fdeaea;
  --violet: #7059bd;
  --violet-soft: #f0ecfb;
  --shadow: 0 12px 35px rgba(31, 55, 42, .07);
  --radius-lg: 18px;
  --radius-md: 14px;
  --radius-sm: 10px;
  --sidebar: 258px;
  --sidebar-collapsed: 86px;
  --transition: 180ms ease;
  --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; font-family: var(--font); background: var(--bg); color: var(--text); }
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
.hidden { display: none !important; }
.status-dot { width: 9px; height: 9px; border-radius: 999px; display: inline-block; background: #9da7a1; }
.status-dot.online { background: #3ca66b; box-shadow: 0 0 0 4px rgba(60,166,107,.12); }
.status-dot.offline { background: var(--red); box-shadow: 0 0 0 4px rgba(199,79,79,.1); }
