/* AirOva — единая дизайн-система (все страницы: главная, лендинги стран, ЛК).
   Один источник токенов и базовых компонентов. Подключается первым, страничный CSS может уточнять. */

:root{
  color-scheme: light;
  /* поверхности — нейтральная светлая база (slate), без цветных подложек */
  --bg:#F7F8FA;
  --card:#FFFFFF;
  --card2:#FFFFFF;
  --line:#E6E8EE;
  --line2:#D8DDE6;
  /* текст: контраст ≥ 4.5:1 на белом и на --bg */
  --text:#0F172A;
  --muted:#475569;
  --faint:#5F6F88;
  --ink:#0F172A;
  --ink-2:#16213D;
  /* один акцент — сдержанный синий */
  --brand:#2B62DD;
  --brand-h:#1F4FC0;
  --brand2:#2B62DD;
  --brand-soft:#EAF0FD;
  --brand-line:#BFD0F5;
  /* семантика */
  --ok:#15803D;   --ok-soft:#DCFCE7;
  --warn:#B45309; --warn-soft:#FEF3C7;
  --err:#B91C1C;  --err-soft:#FEE2E2;
  --mint:#15803D;
  --gold:#B45309;
  /* градиент оставлен как алиас для старых страниц — один оттенок, без фиолетового */
  --grad:linear-gradient(135deg,#2F6BE6 0%,#2456C9 100%);
  --accent:#2B62DD;
  --accent2:#2B62DD;
  /* радиусы, тени, движение */
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:24px;
  --sh-sm:0 1px 2px rgba(15,23,42,.06);
  --sh-md:0 10px 30px -14px rgba(15,23,42,.18);
  --sh-lg:0 24px 60px -28px rgba(15,23,42,.28);
  --sh-brand:0 18px 40px -20px rgba(43,98,221,.45);
  --ease:cubic-bezier(.16,1,.3,1);
  --t-fast:150ms; --t-med:250ms; --t-slow:350ms;
  --font:'Geist',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --wrap:1160px;
}

html{scroll-padding-top:84px}
body{font-family:var(--font)}

/* Фон: почти нейтральный, лёгкий холодный свет сверху. */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;
  background:
    radial-gradient(1100px 600px at 85% -10%,rgba(43,98,221,.07),transparent 60%),
    radial-gradient(900px 500px at 0% 0%,rgba(15,23,42,.035),transparent 55%),
    var(--bg);
}

/* Доступность: видимый фокус с клавиатуры, ссылка «к содержимому». */
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--brand);outline-offset:2px;border-radius:6px;
}
.skip{position:absolute;left:12px;top:-60px;z-index:2000;background:var(--ink);color:#fff;padding:10px 14px;border-radius:10px;font-weight:600;font-size:14px;transition:top var(--t-fast)}
.skip:focus{top:12px}

/* Иконки: один набор (Lucide-подобные, stroke 1.75). Эмодзи как иконки не используются. */
.aic{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.22em;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* Тактильный отклик у кнопок действия. */
.btn:active,.buyw:active,#ghStick .go:active,.orow .buy:active{transform:scale(.98)}

/* Тосты-уведомления (общий компонент). */
.toast-wrap{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:var(--card2);border:1px solid var(--line2);color:var(--text);border-radius:var(--r-md);padding:11px 16px;font-size:14px;box-shadow:var(--sh-lg);opacity:0;transform:translateY(10px);transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease);max-width:90vw}
.toast.in{opacity:1;transform:none}
.toast.ok{border-color:rgba(21,128,61,.4)}
.toast.err{border-color:rgba(185,28,28,.4)}

/* Skeleton-загрузка (общий компонент): форма повторяет контент, без спиннера. */
.skel{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);min-height:120px}
.skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(15,23,42,.05),transparent);animation:egShim 1.3s infinite}
@keyframes egShim{100%{transform:translateX(100%)}}

/* Каскадное появление списков. */
@keyframes airIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.stagger>*{animation:airIn var(--t-slow) var(--ease) both;animation-delay:calc(var(--i,0)*50ms)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .skel::after{animation:none}
}

/* Инлайн-спиннер для кнопок (оплата, возврат) — чтобы процесс не выглядел зависшим. */
@keyframes ldr-spin{to{transform:rotate(360deg)}}
.ldr{display:inline-block;width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;margin-right:7px;animation:ldr-spin .6s linear infinite}
button[disabled]{cursor:progress}
