:root {
  --bg: #f4f5f7;
  --sidebar: #17181c;
  --sidebar-hover: #22242a;
  --sidebar-active: #292c34;
  --sidebar-text: #c8c9d1;
  --sidebar-muted: #8b8d98;
  --sidebar-width: 240px;
  --header: #ffffff;
  --header-h: 54px;
  --card: #ffffff;
  --border: #e4e6eb;
  --border-strong: #dfe1e5;
  --text: #1f2328;
  --secondary: #6b7280;
  --muted: #8b909a;
  --primary: #6f42c1;
  --primary-hover: #5e35b1;
  --primary-soft: #f3eefe;
  --success: #198754;
  --success-soft: #e8f6ee;
  --danger: #dc3545;
  --danger-soft: #fdecee;
  --warning: #f59e0b;
  --warning-soft: #fff6e5;
  --info: #0d6efd;
  --info-soft: #e8f1ff;
  --chk-border: #d1d5db;
  --shadow: 0 1px 2px rgba(16, 18, 27, 0.04);
  --radius: 6px;
  --radius-sm: 4px;
  --font: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fs: 13px;
  --fs-sm: 12px;
  --fs-xs: 11px;
  --title: 16px;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: var(--fs);
  color: var(--text);
  background: var(--bg);
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button { cursor: pointer; }
::selection { background: #e6dcf8; }
