/* EliteTon AI — ui-system.css
   Подключать ПОСЛЕ style.css и minimal.css, ДО rtl.css.
   Цвета и радиусы тем (gold / minimal) не трогает: берёт их из существующих
   --gold, --radius-*, --border-subtle и т.д., поэтому работает в обеих темах. */

:root {
    /* ---------- Типографика: единая шкала ---------- */
    --fs-2xs: 11px;   /* подписи, бейджи (минимум во всём интерфейсе) */
    --fs-xs: 12px;    /* вторичный текст */
    --fs-sm: 13px;    /* мелкие элементы управления */
    --fs-md: 14px;    /* кнопки, поля, списки */
    --fs-base: 15px;  /* основной текст сообщений */
    --fs-lg: 16px;
    --fs-xl: 18px;    /* заголовки блоков */
    --fs-2xl: 20px;
    --fs-3xl: 24px;
    --fs-4xl: 28px;
    --fs-5xl: 32px;
    --fs-6xl: 36px;   /* заголовки экранов входа */

    --lh-tight: 1.25;
    --lh-base: 1.5;

    /* ---------- Скругления ---------- */
    /* sm / md / lg / xl приходят из темы (style.css / minimal.css) */
    --radius-xs: 4px;

    /* ---------- Отступы (шаг 4px) ---------- */
    --sp-1: 4px;
    --sp-2: 8px;
    --sp-3: 12px;
    --sp-4: 16px;
    --sp-5: 24px;
    --sp-6: 32px;

    /* ---------- Элементы управления ---------- */
    --control-h: 44px;      /* минимальная зона нажатия на телефоне */
    --control-h-sm: 36px;
    --control-pad-x: 16px;
    --focus-ring: 0 0 0 2px var(--bg-deep), 0 0 0 4px var(--gold);

    /* ---------- Семантические цвета (из существующих значений) ---------- */
    --danger-strong: #dc2626;
    --danger-soft: #f87171;
    --success-soft: #4ade80;
}

/* ---------- Базовая кнопка ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    min-height: var(--control-h);
    padding: 0 var(--control-pad-x);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--text-primary);
    font-family: inherit;
    font-size: var(--fs-md);
    font-weight: 500;
    line-height: var(--lh-tight);
    cursor: pointer;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease;
}
.btn:hover { background: rgba(255, 255, 255, 0.06); border-color: var(--border-gold); }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn--sm { min-height: var(--control-h-sm); padding: 0 var(--sp-3); font-size: var(--fs-sm); }

.btn--primary {
    background: linear-gradient(135deg, var(--gold), var(--gold-bright));
    border-color: transparent;
    color: #0a0a0a;
    font-weight: 600;
}
.btn--primary:hover { background: linear-gradient(135deg, var(--gold), var(--gold-bright)); filter: brightness(1.08); }

.btn--ghost { border-color: transparent; }
.btn--danger { color: var(--danger-soft); border-color: rgba(239, 68, 68, 0.35); }
.btn--danger:hover { background: rgba(239, 68, 68, 0.12); border-color: var(--danger); }

.btn--icon {
    width: var(--control-h);
    padding: 0;
    border-radius: 50%;
}
.btn--icon.btn--sm { width: var(--control-h-sm); }

/* ---------- Видимый фокус с клавиатуры ---------- */
:where(button, a, input, textarea, select, [role="button"]):focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}

/* ---------- Мобильная версия: зоны нажатия и читаемость ---------- */
@media (max-width: 600px) {
    .btn { min-height: var(--control-h); }
    .topbar-dots-btn { width: var(--control-h); height: var(--control-h); }
}
