/* plink — baner zgody na statystyki (spec 024, F4; spec 039, F11).

   Reguły mieszkały w landing.css, którego `/app` nie ładuje — na najważniejszej
   stronie serwisu baner lądował jako zwykły blok pod stopką, a `focus()` na jego
   przycisku przewijał świeżo otwartą aplikację o 195 px, chowając zakładki modułów
   nad krawędzią ekranu.

   Osobny plik, dokładany przez ten sam znacznik co `consent.js` (spec 021,
   `core/analytics.py`), rozwiązuje to raz na zawsze: baner i jego wygląd pojawiają
   się razem — na każdej stronie, która może o zgodę zapytać, i tylko wtedy, gdy
   analityka jest w ogóle włączona. Kolory i cienie biorą się ze zmiennych motywu,
   więc plik działa tak samo w szacie aplikacji, jak i strony głównej. */

.consent {
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 80;
  width: min(100% - 32px, 720px);
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: var(--shadow);
  padding: 18px 22px;
}

.consent-text { flex: 1; min-width: 240px; font-size: 0.92rem; }

.consent-text strong { font-family: var(--font-display); font-size: 1rem; }

.consent-text p { margin: 4px 0 0; color: var(--text-muted); }

.consent-text a { color: var(--accent); }

.consent-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.consent-actions .btn-primary,
.consent-actions .btn-secondary {
  min-width: 0;
  padding: 11px 20px;
  font-size: 0.92rem;
}

@media (max-width: 700px) {
  .consent { bottom: 0; border-radius: 20px 20px 0 0; width: 100%; }
  .consent-actions { width: 100%; }
  .consent-actions button { flex: 1; }
}
