/* ═══════════════════════════════════════════════════════════
   QR Quest — sygnatura „MIEJSKA EKSPEDYCJA" (styl: ekspedycja)
   Wierne odtworzenie designu z `Design Frontend Aplikacja v1/`
   na istniejących ekranach gracza. Wszystko scope'owane pod
   [data-style="ekspedycja"] — nowoczesny/zabawny nietknięte.
   Tokeny --qq-* definiuje css/qq-design.css (design system);
   JS (game.js applyBranding) nadpisuje akcent i tokeny stylu
   z superpanelu (branding.tokens).
   ═══════════════════════════════════════════════════════════ */

/* ── 1. MOSTEK TOKENÓW: legacy ← qq ─────────────────────────
   Stare komponenty (toast/modal/hints/skan/mapa…) czytają
   --bg/--ink/--line…, więc spinamy je z paletą qq — jedna
   zmiana tokenu przemalowuje CAŁOŚĆ. */
:root[data-style="ekspedycja"] {
  /* domyślny akcent sygnatury (pomarańcz szlaku) — ekrany bez gry (nolink…);
     applyBranding() nadpisuje inline akcentem gry po załadowaniu configu */
  --accent: #e8590c;
  --accent-rgb: 232, 89, 12;
  --accent-dark: rgb(139, 53, 7);
  --bg: var(--qq-bg);
  --surface-1: var(--qq-surface);
  --surface-2: #f5f0e6;
  --ink: 33, 29, 24;
  --text: #4a443c;
  --text-dim: rgba(33, 29, 24, 0.65);
  --text-faint: rgba(33, 29, 24, 0.55);
  --line: #e7e0d3;
  --line-soft: #efe9dd;
  --success: var(--qq-acc2);

  /* typografia: wszystko sans (Archivo) + mono do „terenowych" etykiet */
  --serif: var(--qq-font-sans);
  --sans: var(--qq-font-sans);
  --fs-display: 2.125rem;             /* 34px — display epilogu */
  --ls-caps: 0.14em;
  --ls-caps-wide: 0.16em;

  /* promienie qq (nadpisywalne presetem radius z tokenów stylu) */
  --r-sm: var(--qq-r-sm);
  --r-md: var(--qq-r-md);
  --r-lg: var(--qq-r-lg);
}

/* Tryb ciemny ekspedycji — inwersja neutralnych, akcenty zostają */
:root[data-mode="dark"][data-style="ekspedycja"] {
  --qq-bg: #14120f;
  --qq-surface: #201d17;
  --surface-2: #282318;
  --ink: 250, 247, 242;
  --text: #d8d3c8;
  --text-dim: rgba(250, 247, 242, 0.65);
  --text-faint: rgba(250, 247, 242, 0.45);
  --line: #3a342a;
  --line-soft: #2c2721;
  --qq-line: rgba(250, 247, 242, 0.14);
  --qq-line-2: rgba(250, 247, 242, 0.25);
  --qq-dashed: rgba(250, 247, 242, 0.35);
}

/* Elementy dekoracyjne ekspedycji — w markupie na stałe, widoczne tylko tu */
.qq-hero-ph, .qq-version, .qq-icon-circle, .qq-briefing-hero { display: none; }

/* ── 2. TYPOGRAFIA ─────────────────────────────────────────── */
:root[data-style="ekspedycja"] h1,
:root[data-style="ekspedycja"] h2,
:root[data-style="ekspedycja"] h3 { font-weight: 800; letter-spacing: -0.01em; }
:root[data-style="ekspedycja"] h1 em,
:root[data-style="ekspedycja"] h2 em,
:root[data-style="ekspedycja"] .game-display em { font-style: normal; color: var(--qq-acc); }

/* etykiety „terenowe" → mono (kickery, eyebrow, liczniki, podpisy) */
:root[data-style="ekspedycja"] .eyebrow,
:root[data-style="ekspedycja"] .brand-eyebrow,
:root[data-style="ekspedycja"] .task-kicker,
:root[data-style="ekspedycja"] .tl-kicker,
:root[data-style="ekspedycja"] .tl-pts,
:root[data-style="ekspedycja"] .briefing-greeting,
:root[data-style="ekspedycja"] .briefing-section-label,
:root[data-style="ekspedycja"] .challenge-label,
:root[data-style="ekspedycja"] .desc-card .label,
:root[data-style="ekspedycja"] .divider,
:root[data-style="ekspedycja"] .taskqr-manual-label,
:root[data-style="ekspedycja"] .task-attempts,
:root[data-style="ekspedycja"] .score,
:root[data-style="ekspedycja"] .timer-chip,
:root[data-style="ekspedycja"] .progress-label,
:root[data-style="ekspedycja"] .view-header h2,
:root[data-style="ekspedycja"] .finish-hero .trophy,
:root[data-style="ekspedycja"] .finish-gallery-label,
:root[data-style="ekspedycja"] .finish-summary-item .pts,
:root[data-style="ekspedycja"] .finish-score-item .label,
:root[data-style="ekspedycja"] .hint-btn,
:root[data-style="ekspedycja"] .hint-revealed .hint-tag,
:root[data-style="ekspedycja"] .footer-link,
:root[data-style="ekspedycja"] .scan-top-bar .title,
:root[data-style="ekspedycja"] .map-top-bar .title,
:root[data-style="ekspedycja"] .map-legend,
:root[data-style="ekspedycja"] .steps-title {
  font-family: var(--qq-font-mono);
}
:root[data-style="ekspedycja"] .brand-eyebrow { color: var(--qq-acc); }
:root[data-style="ekspedycja"] .brand-eyebrow span { color: inherit; }

/* ── 3. PRZYCISKI (mockup: sentence-case, bold, 44px+) ─────── */
:root[data-style="ekspedycja"] .btn {
  border-radius: var(--qq-r-lg);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 700;
  font-size: calc(16px * var(--qq-fs-scale, 1));
  min-height: 44px;
  padding: calc(15px * var(--qq-sp-scale, 1)) calc(20px * var(--qq-sp-scale, 1));
  transition: transform 0.18s cubic-bezier(0.2, 0.7, 0.3, 1), background 0.18s cubic-bezier(0.2, 0.7, 0.3, 1);
}
:root[data-style="ekspedycja"] .btn:active:not(:disabled) { transform: scale(0.98); opacity: 1; }
:root[data-style="ekspedycja"] .btn-primary {
  background: var(--qq-acc);
  color: var(--qq-on-acc, #fff);
  box-shadow: 0 4px 14px rgba(var(--accent-rgb), 0.28);
}
:root[data-style="ekspedycja"] .btn-primary:active:not(:disabled) { background: var(--qq-acc-press); }
:root[data-style="ekspedycja"] .btn-secondary {
  background: rgb(var(--ink));
  color: var(--bg);
  border: none;
}
:root[data-style="ekspedycja"] .btn-ghost {
  border: 1.5px solid var(--qq-line-2);
  color: rgb(var(--ink));
  font-weight: 600;
}

/* ── 4. POLA FORMULARZY (wypełnione boksy zamiast podkreśleń) ─ */
:root[data-style="ekspedycja"] .text-input,
:root[data-style="ekspedycja"] .challenge-input,
:root[data-style="ekspedycja"] .taskqr-manual-input {
  background: var(--surface-1);
  border: 1.5px solid var(--qq-line-2);
  border-radius: var(--qq-r-md);
  padding: calc(15px * var(--qq-sp-scale, 1)) calc(18px * var(--qq-sp-scale, 1));
  font-family: var(--qq-font-sans);
  font-weight: 600;
  font-size: 16px;                 /* 16px = brak zoomu na iOS */
  text-align: left;
  color: rgb(var(--ink));
}
:root[data-style="ekspedycja"] .text-input:focus,
:root[data-style="ekspedycja"] .challenge-input:focus,
:root[data-style="ekspedycja"] .taskqr-manual-input:focus {
  border-color: var(--qq-acc);
  box-shadow: none;
}
:root[data-style="ekspedycja"] .text-input::placeholder,
:root[data-style="ekspedycja"] .challenge-input::placeholder {
  font-style: normal;
  font-weight: 400;
}
:root[data-style="ekspedycja"] .challenge-input.num,
:root[data-style="ekspedycja"] .taskqr-manual-input {
  font-family: var(--qq-font-mono);
  letter-spacing: 0.14em;
  text-align: center;
}

/* ── 5. WELCOME (01 Start): górna strefa graficzna + CTA na dole ─ */
:root[data-style="ekspedycja"] .view[data-view="welcome"] { padding: 0; }
:root[data-style="ekspedycja"] .view[data-view="welcome"] .welcome-body {
  gap: 16px;
  justify-content: flex-start;
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 22px);
}
:root[data-style="ekspedycja"] .view[data-view="welcome"] .welcome-hero {
  margin: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
  position: relative;
}
:root[data-style="ekspedycja"] .view[data-view="welcome"] .welcome-hero::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 4px;
  background: var(--qq-acc);       /* pasek znakowania szlaku pod grafiką */
}
:root[data-style="ekspedycja"] .view[data-view="welcome"] .welcome-hero img {
  aspect-ratio: auto;
  height: 40vh;
}
/* bez grafiki gry → papierowy placeholder (mockup: qq-paper + underline) */
:root[data-style="ekspedycja"] .view[data-view="welcome"] .qq-hero-ph {
  display: block;
  align-self: stretch;   /* .welcome-body centruje dzieci — bez tego szerokość 0 */
  flex-shrink: 0;
  height: 40vh;
  background: repeating-linear-gradient(45deg, #e7e0d3, #e7e0d3 10px, #efe9dd 10px, #efe9dd 20px);
  border-bottom: 4px solid var(--qq-acc);
}
:root[data-mode="dark"][data-style="ekspedycja"] .view[data-view="welcome"] .qq-hero-ph {
  background: repeating-linear-gradient(45deg, #201d17, #201d17 10px, #282318 10px, #282318 20px);
}
:root[data-style="ekspedycja"] .view[data-view="welcome"].has-hero .qq-hero-ph { display: none; }
:root[data-style="ekspedycja"] .view[data-view="welcome"] .brand-intro {
  position: relative;
  z-index: 1;
  margin-top: -44px;               /* sygnet w połowie na grafice */
  padding: 0 22px;
}
:root[data-style="ekspedycja"] .view[data-view="welcome"] .brand-logo {
  border: 1.5px solid rgb(var(--ink));
  box-shadow: 0 0 0 5px var(--bg);
}
:root[data-style="ekspedycja"] .view[data-view="welcome"] .game-display {
  font-size: clamp(2.1rem, 8vw, 2.6rem);
  max-width: 340px;
}
:root[data-style="ekspedycja"] .view[data-view="welcome"] .intro { padding: 0 22px; }
:root[data-style="ekspedycja"] .view[data-view="welcome"] .welcome-actions {
  margin-top: auto;
  padding: 0 22px;
  max-width: none;
}
:root[data-style="ekspedycja"] .qq-version {
  display: block;
  font-family: var(--qq-font-mono);
  font-weight: 500;
  font-size: calc(10px * var(--qq-fs-scale, 1));
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-faint);
  text-align: center;
  margin-top: 4px;
}

/* ── 6. NICK (02A): okrąg-ikona + ghost/dark akcje ─────────── */
:root[data-style="ekspedycja"] .view[data-view="nick"] .qq-icon-circle {
  display: flex;
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border: 2px dashed var(--qq-acc2);
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  font-family: var(--qq-font-mono);
  font-size: calc(24px * var(--qq-fs-scale, 1));
  font-weight: 600;
  color: var(--qq-acc2);
}
:root[data-style="ekspedycja"] #nick-back-btn {
  background: transparent;
  color: rgb(var(--ink));
  border: 1.5px solid var(--qq-line-2);
  font-weight: 600;
  flex: 1;
}
:root[data-style="ekspedycja"] #nick-next-btn {
  flex: 2;
  background: rgb(var(--ink));   /* mockup 02A: „Dalej" ciemny, nie akcentowy */
  color: var(--bg);
  box-shadow: none;
}

/* ── 7. BRIEFING (03 Intro): pasek graficzny + sticky CTA ──── */
/* wrappery są neutralne (display:contents) poza ekspedycją */
.briefing-scroll, .briefing-cta { display: contents; }

:root[data-style="ekspedycja"] .view[data-view="briefing"] { padding: 0; }
/* pasek ze zdjęciem głównym gry — powiela hero z ekranu startowego;
   :not([hidden]) konieczne, żeby atrybut hidden (brak zdjęcia) wygrywał */
:root[data-style="ekspedycja"] .view[data-view="briefing"] .qq-briefing-hero:not([hidden]) {
  display: block;
  flex-shrink: 0;
  height: 140px;
  overflow: hidden;
  border-bottom: 4px solid var(--qq-acc);
}
:root[data-style="ekspedycja"] .view[data-view="briefing"] .qq-briefing-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* gdy zdjęcie jest, papierowy placeholder znika */
:root[data-style="ekspedycja"] .view[data-view="briefing"] .qq-briefing-hero:not([hidden]) + .qq-hero-ph {
  display: none;
}
:root[data-style="ekspedycja"] .view[data-view="briefing"] .qq-hero-ph {
  display: block;
  flex-shrink: 0;
  height: 140px;
  background: repeating-linear-gradient(45deg, #e7e0d3, #e7e0d3 10px, #efe9dd 10px, #efe9dd 20px);
  border-bottom: 4px solid var(--qq-acc);
}
:root[data-mode="dark"][data-style="ekspedycja"] .view[data-view="briefing"] .qq-hero-ph {
  background: repeating-linear-gradient(45deg, #201d17, #201d17 10px, #282318 10px, #282318 20px);
}
:root[data-style="ekspedycja"] .briefing-body {
  max-width: none;
  gap: 0;
  min-height: 0;
}
:root[data-style="ekspedycja"] .briefing-scroll {
  display: flex;
  flex-direction: column;
  gap: 22px;
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 18px 22px 10px;
}
:root[data-style="ekspedycja"] .briefing-cta {
  display: block;
  position: relative;
  flex: none;
  padding: 12px 22px calc(env(safe-area-inset-bottom, 0px) + 16px);
}
:root[data-style="ekspedycja"] .briefing-cta::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: -28px;
  height: 28px;
  background: linear-gradient(to bottom, rgba(250, 247, 242, 0), var(--bg));
  pointer-events: none;
}
:root[data-style="ekspedycja"] .briefing-body h2::after { background: var(--qq-acc); }
/* kroki „jak grać": numerowane okręgi zamiast rzymskich liter */
:root[data-style="ekspedycja"] .briefing-section ul li { padding-left: 38px; }
:root[data-style="ekspedycja"] .briefing-section ul li::before {
  content: counter(howto);
  left: 0;
  top: 9px;
  width: 24px;
  height: 24px;
  background: rgb(var(--ink));
  color: var(--bg);
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--qq-font-mono);
  font-style: normal;
  font-size: calc(12px * var(--qq-fs-scale, 1));
  font-weight: 600;
}
:root[data-style="ekspedycja"] .briefing-section p { font-family: var(--qq-font-sans); }
:root[data-style="ekspedycja"] .briefing-hint {
  border-left: 3px solid var(--qq-acc);
  border-radius: 0 var(--qq-r-md) var(--qq-r-md) 0;
  font-style: normal;
}

/* ── 8. LISTA ZADAŃ (04): ciemny HUD + oś trasy + tabbar ───── */
:root[data-style="ekspedycja"] .tasks-header {
  background: var(--qq-hud-bg);
  padding: calc(env(safe-area-inset-top, 0px) + 12px * var(--qq-sp-scale, 1)) calc(18px * var(--qq-sp-scale, 1)) calc(14px * var(--qq-sp-scale, 1));
  gap: 8px;
}
:root[data-style="ekspedycja"] .tasks-header .eyebrow { color: var(--qq-hud-ink-2); }
:root[data-style="ekspedycja"] .tasks-header .eyebrow .acc { color: var(--qq-hud-ink); }
:root[data-style="ekspedycja"] .tasks-header h2 {
  color: var(--qq-hud-ink);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0;
}
:root[data-style="ekspedycja"] .tasks-header .score { color: var(--qq-acc); }
:root[data-style="ekspedycja"] .tasks-header .timer-chip {
  border: none;
  padding: 0;
  color: var(--qq-hud-ink);
  font-weight: 600;
  letter-spacing: 0.08em;
}
:root[data-style="ekspedycja"] .tasks-header .timer-chip.danger { color: #ff9d7a; }
:root[data-style="ekspedycja"] .tasks-header .progress-bar {
  height: 3px;
  border-radius: 2px;
  overflow: hidden;
  background: var(--qq-hud-track);
}
:root[data-style="ekspedycja"] .tasks-header .progress-fill { height: 100%; border-radius: 2px; background: var(--qq-acc); }
:root[data-style="ekspedycja"] .tasks-header .progress-label { color: var(--qq-hud-ink-2); }
:root[data-style="ekspedycja"] .tasks-header .progress-label .done { color: var(--qq-acc); }

/* oś trasy = dziennik wyprawy: przerywana ścieżka + numerowane stacje
   (01, 02, 03…) w monospace. Numer generuje CSS counter — bez zmian w JS. */
:root[data-style="ekspedycja"] .tl { padding-left: 44px; counter-reset: qq-station; }
:root[data-style="ekspedycja"] .tl::before {
  width: 2px;
  left: 13px;
  background: repeating-linear-gradient(180deg, var(--qq-dashed) 0 6px, transparent 6px 12px);
}
:root[data-style="ekspedycja"] .tl-item { counter-increment: qq-station; }
:root[data-style="ekspedycja"] .tl-dot {
  left: -44px; top: 11px;
  width: 28px; height: 22px;
  border-radius: 4px;
  border: 1.5px solid var(--text-faint);
  background: var(--surface-1);
  display: flex;
  align-items: center;
  justify-content: center;
}
:root[data-style="ekspedycja"] .tl-dot::before {
  content: counter(qq-station, decimal-leading-zero);
  font-family: var(--qq-font-mono);
  font-size: calc(11px * var(--qq-fs-scale, 1));
  font-weight: 500;
  letter-spacing: 0.03em;
  color: var(--text-faint);
}
:root[data-style="ekspedycja"] .tl-item.locked .tl-dot { border-style: dashed; background: transparent; }
:root[data-style="ekspedycja"] .tl-item.done-ok .tl-dot { background: var(--qq-acc2); border-color: var(--qq-acc2); }
:root[data-style="ekspedycja"] .tl-item.done-ok .tl-dot::before { color: #fff; }
:root[data-style="ekspedycja"] .tl-item.current .tl-dot {
  left: -46px; top: 10px;
  width: 32px; height: 26px;
  background: var(--qq-acc);
  border: 1.5px solid var(--qq-acc);
  box-shadow: none;
  animation: qq-pulse 2.4s infinite;
}
:root[data-style="ekspedycja"] .tl-item.current .tl-dot::before {
  color: #fff;
  font-weight: 600;
  font-size: calc(12px * var(--qq-fs-scale, 1));
}
:root[data-style="ekspedycja"] .tl-title { font-weight: 700; }
:root[data-style="ekspedycja"] .tl-item.current .tl-title { font-size: 1.3rem; font-weight: 800; }
:root[data-style="ekspedycja"] .tl-desc { font-style: normal; }
:root[data-style="ekspedycja"] .tl-cta {
  border-radius: var(--qq-r-lg);
  text-transform: none;
  letter-spacing: 0;
  font-size: calc(14px * var(--qq-fs-scale, 1));
  font-weight: 700;
  padding: 12px 18px;
}

/* stopka listy → tabbar z pionowymi separatorami */
:root[data-style="ekspedycja"] .tasks-footer {
  padding: 0 0 env(safe-area-inset-bottom, 0px);
  border-top: 1.5px solid var(--line);
  background: var(--surface-1);
}
:root[data-style="ekspedycja"] .footer-links { gap: 0; }
:root[data-style="ekspedycja"] .footer-link {
  flex: 1;
  padding: 13px 0;
  font-size: calc(11px * var(--qq-fs-scale, 1));
  letter-spacing: 0.12em;
}
:root[data-style="ekspedycja"] .footer-link + .footer-link { border-left: 1.5px solid var(--line); }

/* ── 9. ZADANIA (quiz / challenge / taskqr / photo) ────────── */
:root[data-style="ekspedycja"] .task-question {
  font-family: var(--qq-font-sans);
  font-weight: 700;
  font-size: calc(21px * var(--qq-fs-scale, 1));
  line-height: 1.25;
}
:root[data-style="ekspedycja"] .quiz-options { gap: 10px; }
:root[data-style="ekspedycja"] .quiz-option {
  background: var(--surface-1);
  border: 1.5px solid var(--line);
  border-radius: var(--qq-r-md);
  padding: 15px 16px;
  min-height: 44px;
  align-items: center;
  font-family: var(--qq-font-sans);
  font-size: calc(15px * var(--qq-fs-scale, 1));
  transition: transform 0.18s cubic-bezier(0.2, 0.7, 0.3, 1);
}
:root[data-style="ekspedycja"] .quiz-option:first-child { border-top: 1.5px solid var(--line); }
:root[data-style="ekspedycja"] .quiz-option:active { transform: scale(0.98); background: var(--surface-1); }
:root[data-style="ekspedycja"] .quiz-option.selected {
  background: var(--qq-acc-soft);
  border-color: var(--qq-acc);
  font-weight: 700;
}
:root[data-style="ekspedycja"] .quiz-option-letter {
  width: 24px;
  height: 24px;
  border: 2px solid var(--qq-dashed);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--qq-font-mono);
  font-style: normal;
  font-size: calc(11px * var(--qq-fs-scale, 1));
  font-weight: 600;
  text-transform: uppercase;
  color: var(--text-dim);
}
:root[data-style="ekspedycja"] .quiz-option.selected .quiz-option-letter {
  background: var(--qq-acc);
  border-color: var(--qq-acc);
  color: #fff;
}
/* mockup 04/05: „Zatwierdź" przy zadaniach ciemny (primary zostaje dla CTA startowych) */
:root[data-style="ekspedycja"] #quiz-submit-btn,
:root[data-style="ekspedycja"] #challenge-form .btn-primary {
  background: rgb(var(--ink));
  color: var(--bg);
  box-shadow: none;
}
:root[data-style="ekspedycja"] #quiz-submit-btn:active:not(:disabled),
:root[data-style="ekspedycja"] #challenge-form .btn-primary:active:not(:disabled) {
  background: rgb(var(--ink));
}
:root[data-style="ekspedycja"] .desc-card {
  background: var(--surface-1);
  border: 1.5px solid var(--line);
  border-radius: var(--qq-r-lg);
  padding: 16px 18px;
}
:root[data-style="ekspedycja"] .desc-card .text { font-family: var(--qq-font-sans); font-size: calc(15px * var(--qq-fs-scale, 1)); }
:root[data-style="ekspedycja"] .task-image {
  border: 1.5px solid var(--line);
  border-radius: var(--qq-r-xl, 16px);
}
:root[data-style="ekspedycja"] .photo-preview-wrap { border: 1.5px solid var(--line); border-radius: var(--qq-r-xl, 16px); }
:root[data-style="ekspedycja"] .photo-placeholder { font-family: var(--qq-font-sans); font-style: normal; }

/* podpowiedzi */
:root[data-style="ekspedycja"] .hint-btn {
  border: 1.5px dashed var(--qq-acc);
  border-radius: var(--qq-r-md);
  font-size: calc(11px * var(--qq-fs-scale, 1));
  letter-spacing: 0.12em;
}
:root[data-style="ekspedycja"] .hint-revealed {
  border-left: 3px solid var(--qq-acc);
  border-radius: 0 var(--qq-r-md) var(--qq-r-md) 0;
  font-family: var(--qq-font-sans);
  font-style: normal;
}

/* ── 10. SKANER (05): celownik i linia w akcencie ──────────── */
:root[data-style="ekspedycja"] .corner { width: 34px; height: 34px; }
:root[data-style="ekspedycja"] .corner::before,
:root[data-style="ekspedycja"] .corner::after { background: var(--qq-acc); border-radius: 2px; }
:root[data-style="ekspedycja"] .corner::before { height: 4px; width: 34px; }
:root[data-style="ekspedycja"] .corner::after { width: 4px; height: 34px; }
:root[data-style="ekspedycja"] .scan-line {
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--qq-acc), transparent);
}
:root[data-style="ekspedycja"] .scan-top-bar .title span { color: var(--qq-acc); opacity: 1; }
:root[data-style="ekspedycja"] .manual-token-form input {
  font-family: var(--qq-font-mono);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

/* ── 11. FINISZ (07 Epilog): karty statystyk + akcje ───────── */
:root[data-style="ekspedycja"] .finish-hero .trophy { color: var(--qq-acc); letter-spacing: 0.16em; }
:root[data-style="ekspedycja"] .finish-hero .nick { font-style: normal; }
:root[data-style="ekspedycja"] .finish-score-item {
  background: var(--surface-1);
  border: 1.5px solid var(--line);
  border-radius: var(--qq-r-lg);
  padding: 18px 14px;
}
:root[data-style="ekspedycja"] .finish-score-item .value {
  font-family: var(--qq-font-sans);
  font-weight: 800;
  font-size: calc(30px * var(--qq-fs-scale, 1));
}
:root[data-style="ekspedycja"] .finish-score-item:first-child .value { color: var(--qq-acc); }
:root[data-style="ekspedycja"] .finish-score-item .label { font-size: calc(10px * var(--qq-fs-scale, 1)); letter-spacing: 0.12em; }
:root[data-style="ekspedycja"] .finish-summary-item .title { font-family: var(--qq-font-sans); }
:root[data-style="ekspedycja"] .finish-gallery figcaption { font-family: var(--qq-font-sans); font-style: normal; }
:root[data-style="ekspedycja"] .finish-org-note { font-family: var(--qq-font-sans); font-style: normal; }
/* mockup: primary „Udostępnij", ghost „Zagraj od nowa" */
:root[data-style="ekspedycja"] #finish-share-btn {
  background: var(--qq-acc);
  color: #fff;
  border: none;
  box-shadow: 0 4px 14px rgba(var(--accent-rgb), 0.28);
}
:root[data-style="ekspedycja"] #finish-restart-btn {
  background: transparent;
  color: rgb(var(--ink));
  border: 1.5px solid var(--qq-line-2);
  font-weight: 600;
}

/* ── 12. TOAST / MODAL / MAPA — spójne detale ──────────────── */
:root[data-style="ekspedycja"] .toast { border-radius: var(--qq-r-lg); font-family: var(--qq-font-sans); }
:root[data-style="ekspedycja"] .modal-box { border: 1.5px solid rgb(var(--ink)); border-radius: var(--qq-r-lg); }
:root[data-style="ekspedycja"] .map-switch button,
:root[data-style="ekspedycja"] .poi-popup button { font-family: var(--qq-font-mono); }
:root[data-style="ekspedycja"] .poi-marker.done-ok { background: var(--qq-acc2); }
:root[data-style="ekspedycja"] #scan-perm-denied .steps { border-radius: var(--qq-r-lg); }
