:root {
  color-scheme: light;
  --bg: #eef1f4;
  --surface: #ffffff;
  --surface-soft: #f7f8fa;
  --surface-hover: #f1f3f6;
  --sidebar: #f7f7f8;
  --line: #e5e8ec;
  --line-strong: #d9dde3;
  --text: #222a34;
  --muted: #8b929b;
  --muted-2: #a7adb5;
  --blue: #5f7ed8;
  --blue-soft: #dcecff;
  --green: #53bd62;
  --green-soft: #dcf5df;
  --orange: #f29b38;
  --pink: #ff4f87;
  --danger: #ef5b63;
  --shadow: 0 12px 35px rgba(35, 47, 63, .08);
  --sidebar-width: 280px;
  --chat-size: 290px;
  --dock-height: 62px;
}

* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; }
body { margin: 0; overflow: hidden; background: var(--bg); color: var(--text); font: 14px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; }
button, input { font: inherit; }
button { border: 0; cursor: pointer; color: inherit; }
button:disabled { opacity: .5; cursor: wait; }
input { outline: none; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.eyebrow { font-size: 10px; letter-spacing: 1.7px; font-weight: 800; color: var(--blue); }
.accent { color: var(--blue); }

/* v30 — [hidden] всегда должен скрывать элемент, даже если компонент задаёт display */
[hidden] {
  display: none !important;
}
