/* TV Kętrzyn 3.19.0 - aplikacja na telefon: pas zaproszenia, karty aplikacji, instrukcja, przycisk w pasku radia. */
.tvk-app-band { padding: clamp(28px, 4vw, 48px) 0; background: linear-gradient(180deg, var(--tvk-surface-blue, #edf3fb), var(--tvk-paper, #f5f7fa)); }
.tvk-app-band[hidden] { display: none !important; }
.tvk-app-band__inner { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.6fr); gap: clamp(18px, 3vw, 40px); align-items: center; }
.tvk-app-band--page .tvk-app-band__inner, .tvk-app-band--live .tvk-app-band__inner { grid-template-columns: minmax(0, 1fr); }
.tvk-app-band--live .tvk-app-band__inner { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.tvk-app-band__intro { display: grid; gap: 10px; justify-items: start; }
.tvk-app-band__intro .tvk-kicker { display: inline-flex; align-items: center; gap: 6px; }
.tvk-app-band__intro .tvk-kicker svg { width: 16px; height: 16px; }
.tvk-app-band__intro h2 { margin: 0; }
.tvk-app-band__dismiss { padding: 6px 2px; border: 0; background: none; color: var(--tvk-muted, #5d6d7f); font: inherit; font-size: .9rem; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.tvk-app-band__dismiss:hover, .tvk-app-band__dismiss:focus-visible { color: var(--tvk-ink, #10284a); }
.tvk-app-band__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; align-items: stretch; }
.tvk-app-card { display: flex; flex-direction: column; gap: 12px; height: 100%; min-width: 0; padding: 20px; border: 1px solid var(--tvk-line, rgba(20,36,58,.105)); border-radius: 18px; background: var(--tvk-paper-2, #fff); box-shadow: 0 10px 28px rgba(16, 40, 74, .07); }
.tvk-app-card[hidden] { display: none !important; }
.tvk-app-card__head { display: flex; align-items: center; gap: 14px; }
.tvk-app-card__icon { flex: none; width: 56px; height: 56px; border-radius: 14px; box-shadow: 0 6px 16px rgba(16, 40, 74, .22); }
.tvk-app-card__head h3 { margin: 0; font-size: 1.12rem; line-height: 1.25; color: var(--tvk-ink, #10284a); }
.tvk-app-card__text { margin: 0; color: var(--tvk-text, #14243a); line-height: 1.5; }
/* Przyciski zawsze na dole karty - karty obok siebie kończą się równo. */
.tvk-app-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: auto; padding-top: 4px; }
.tvk-app-card__install { display: inline-flex; align-items: center; gap: 8px; }
.tvk-app-card__install svg { width: 18px; height: 18px; }
.tvk-app-card__install.is-ready { box-shadow: 0 0 0 3px rgba(45, 104, 183, .22); }
.tvk-app-card__more { font-weight: 600; color: var(--tvk-water-strong, #21589f); text-underline-offset: 3px; }
.tvk-app-help { margin: 4px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--tvk-surface-blue, #edf3fb); color: var(--tvk-text, #14243a); font-size: .95rem; line-height: 1.5; }
.tvk-app-help[hidden] { display: none; }

/* Strona /aplikacja/ */
.tvk-app-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.tvk-app-step { padding: 20px; border: 1px solid var(--tvk-line, rgba(20,36,58,.105)); border-radius: 18px; background: var(--tvk-paper-2, #fff); }
.tvk-app-step h3 { margin: 0 0 10px; color: var(--tvk-ink, #10284a); }
.tvk-app-step ol { margin: 0; padding-left: 1.2em; display: grid; gap: 8px; line-height: 1.5; }
.tvk-app-qr { width: 156px; height: 156px; margin: 16px auto 0; padding: 10px; border-radius: 14px; background: #fff; border: 1px solid var(--tvk-line, rgba(20,36,58,.105)); }
.tvk-app-qr svg { display: block; width: 100%; height: 100%; }

/* Pasek Radia Kętrzyn: odtwarzacz w telefonie */
.tvk-radio-bar__app { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; color: #fff; font-size: .85rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.tvk-radio-bar__app svg { width: 16px; height: 16px; }
.tvk-radio-bar__app:hover, .tvk-radio-bar__app:focus-visible { background: rgba(255, 255, 255, .12); color: #fff; }
.tvk-radio-bar__app[hidden] { display: none !important; }

/* Stopka */
.tvk-footer-app { display: inline-flex; align-items: center; gap: 6px; }
.tvk-footer-app svg { width: 15px; height: 15px; }

@media (max-width: 960px) {
  .tvk-app-band__inner, .tvk-app-band--live .tvk-app-band__inner { grid-template-columns: minmax(0, 1fr); }
  .tvk-app-steps { grid-template-columns: minmax(0, 1fr); }
  .tvk-app-step--qr { display: none; }
}
@media (max-width: 720px) {
  .tvk-app-band__intro { justify-items: center; text-align: center; }
  .tvk-app-card { padding: 16px; }
  .tvk-app-card__icon { width: 48px; height: 48px; border-radius: 12px; }
  .tvk-app-card__install { width: 100%; justify-content: center; }
  .tvk-radio-bar__app span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .tvk-radio-bar__app { padding: 8px; }
}
@media (display-mode: standalone) {
  /* W zainstalowanej aplikacji serwisu zaproszenie do niej samej nie ma sensu (skrypt chowa je też bez tej reguły). */
  .tvk-app-card--site { display: none !important; }
}
/* Przycisk „Zainstaluj” czeka chwilę na gotowość przeglądarki (Android, komputer). */
.tvk-app-card__install.is-waiting, .tvk-radio-bar__app.is-waiting, .tvk-pa-button.is-waiting { opacity: .8; cursor: progress; }
