/* Всё, что неудобно выражать утилитами Tailwind. */

/* Лента курса */
.marquee { overflow: hidden; white-space: nowrap; }
.marquee__track { display: inline-flex; gap: 3rem; padding-right: 3rem; animation: marquee 30s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* QR-заглушка: реальный QR не генерируем */
.qr-mock { background: repeating-conic-gradient(#0f172a 0 25%, #fff 0 50%) 0 0 / 12px 12px; }

/* Степпер мастера */
.step-dot { width: 2rem; height: 2rem; border-radius: 9999px; border: 2px solid #e3e8ef; background: #fff; color: #64748b; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: .875rem; flex-shrink: 0; }
.step-dot.is-active { border-color: #0b5cad; color: #0b5cad; }
.step-dot.is-done { background: #0b5cad; border-color: #0b5cad; color: #fff; }
.step-line { height: 2px; background: #e3e8ef; flex: 1; }
.step-line.is-done { background: #0b5cad; }

/* Чипы способов получения */
.chip { border: 1px solid #e3e8ef; border-radius: 9999px; padding: .5rem 1rem; font-weight: 500; background: #fff; }
.chip.is-active { border-color: #0b5cad; background: #e8f0fa; color: #0b5cad; }

/* Статусы ордера */
.status-dot { width: .75rem; height: .75rem; border-radius: 9999px; background: #e3e8ef; flex-shrink: 0; }
.status-row.is-active .status-dot { background: #0b5cad; box-shadow: 0 0 0 4px #e8f0fa; animation: pulse 1s infinite; }
.status-row.is-done .status-dot { background: #15803d; }
.status-row.is-done { color: #15803d; }
@keyframes pulse { 50% { box-shadow: 0 0 0 7px #e8f0fa; } }

/* Появление панели шага */
.fade-in { animation: fade .25s ease-out; }
@keyframes fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* FAQ на <details> */
details summary::-webkit-details-marker { display: none; }
details[open] .faq-icon { transform: rotate(45deg); }

@media (prefers-reduced-motion: reduce) {
  .marquee__track, .fade-in, .status-row.is-active .status-dot { animation: none; }
}

/* Атрибут hidden должен побеждать утилиты display */
[hidden] { display: none !important; }

/* Аудит: базовые состояния и доступность */
html { scroll-behavior: smooth; }
h1, h2, h3 { text-wrap: balance; }
a, button { transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .1s ease; }
:focus-visible { outline: 2px solid #0b5cad; outline-offset: 2px; border-radius: 4px; }
.skip-link { position: absolute; left: 1rem; top: -3rem; z-index: 50; background: #0b5cad; color: #fff; padding: .5rem .75rem; border-radius: .5rem; font-weight: 600; }
.skip-link:focus { top: 1rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } a, button { transition: none; } }
