/* ── Сброс и базовые стили ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
* { -webkit-tap-highlight-color: transparent; }

html { height: 100%; }

body {
  font-family: var(--font);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  min-height: 100%;
}

a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

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

/* Полоса прокрутки */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #CBD5E1; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #94A3B8; }

[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #475569; }
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: #64748B; }

/* Заголовки страниц */
.page-title {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--color-text);
  margin-bottom: 4px;
}

.page-desc {
  font-size: 14px;
  color: var(--color-text-muted);
  margin-bottom: 32px;
}

/* Анимации входа */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes indeterminate {
  0%   { width: 0%; margin-left: 0%; }
  50%  { width: 50%; margin-left: 25%; }
  100% { width: 0%; margin-left: 100%; }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes agentPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%       { transform: scale(1.4); opacity: 0.6; }
}

@keyframes dustDelete {
  0%   { opacity: 1; transform: scale(1) translateY(0); }
  25%  { transform: scale(1.03) translateY(-4px); }
  100% { opacity: 0; transform: scale(0.6) translateY(20px) rotate(5deg); filter: blur(5px); }
}
