/* ── Skeleton shimmer ── */
.skeleton {
  background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 37%, #e2e8f0 63%);
  background-size: 400% 100%;
  animation: shimmer 1.2s infinite;
  border-radius: 8px;
  min-height: 110px;
}
[data-bs-theme="dark"] .skeleton {
  background: linear-gradient(90deg, #1e293b 25%, #273549 37%, #1e293b 63%);
  background-size: 400% 100%;
  animation: shimmer 1.2s infinite;
}
@keyframes shimmer {
  0%   { background-position: 100% 0; }
  100% { background-position: 0 0; }
}

/* ── Video player ── */
.player-wrap {
  position: relative;
  width: min(100%, 960px);
  margin: 0 auto 1rem;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: 10px;
  overflow: hidden;
}
#player { width: 100%; height: 100%; object-fit: contain; background: #000; display: block; }
video::-webkit-media-controls-fullscreen-button { display: none; }
video::-webkit-media-controls-enclosure { overflow: hidden; }
.fs-btn {
  position: absolute; right: 10px; top: 10px; z-index: 12;
  background: rgba(0,0,0,.5); color: #fff; border: 0;
  border-radius: 8px; padding: 6px 10px; cursor: pointer; font-weight: 600; font-size: .85rem;
}
.player-wrap:fullscreen,
.player-wrap:-webkit-full-screen { width: 100vw; height: 100vh; border-radius: 0; }

/* ── Payment tabs ── */
.pay-tabs { display: flex; border-bottom: 2px solid var(--bs-border-color); margin-bottom: 20px; }
.pay-tab  { padding: 10px 20px; cursor: pointer; font-weight: 500; border: none; background: none;
            color: var(--bs-secondary-color); border-bottom: 2px solid transparent;
            margin-bottom: -2px; transition: all .15s; }
.pay-tab:hover  { color: var(--bs-emphasis-color); }
.pay-tab.active { color: var(--bs-primary); border-bottom-color: var(--bs-primary); }
.pay-panel { display: none; }
.pay-panel.active { display: block; }

/* ── Wallet balance chip ── */
.balance-chip {
  display: inline-block; border-radius: 20px; padding: 4px 12px;
  font-size: .85rem; font-weight: 600;
  background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis);
  border: 1px solid var(--bs-success-border-subtle);
}
.balance-chip.low {
  background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis);
  border-color: var(--bs-warning-border-subtle);
}

/* ── Pay message ── */
.pay-msg { border-radius: 6px; padding: 10px 14px; font-size: .87rem; margin-top: 12px; display: none; }
.pay-msg.ok  { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); border: 1px solid var(--bs-success-border-subtle); }
.pay-msg.err { background: var(--bs-danger-bg-subtle);  color: var(--bs-danger-text-emphasis);  border: 1px solid var(--bs-danger-border-subtle); }
.pay-msg.show { display: block; }

/* ── Video card hover ── */
.video-card { cursor: pointer; transition: box-shadow .15s, transform .1s; }
.video-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.15) !important; transform: translateY(-2px); }
[data-bs-theme="dark"] .video-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.5) !important; }

/* ── Navbar brand color ── */
.navbar-brand { font-size: 1.15rem; }

/* ── Section heading accent ── */
.section-eyebrow {
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; color: var(--bs-primary); margin-bottom: .25rem;
}

/* ── Stat card ── */
.stat-card { border-radius: 12px; padding: 20px 24px; }
.stat-card .stat-value { font-size: 2rem; font-weight: 700; line-height: 1; }
.stat-card .stat-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; }

/* ── Provider button row ── */
.provider-btn { min-width: 130px; text-transform: capitalize; }

/* ── Admin table compact ── */
.tbl-compact th, .tbl-compact td { padding: .5rem .75rem; font-size: .82rem; }
.tbl-compact .mono { font-family: ui-monospace, monospace; }
.tbl-compact .ts { font-size: .75rem; color: var(--bs-secondary-color); white-space: nowrap; }
.tbl-compact .truncate { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Theme toggle button ── */
#themeToggle { font-size: 1rem; line-height: 1; padding: 4px 8px; }

/* ── Tagline sub-brand ── */
.brand-tagline { font-size: .72rem; opacity: .65; display: block; line-height: 1.2; }

/* ── Affiliate badges ── */
.badge-wallet  { background: var(--bs-info-bg-subtle);    color: var(--bs-info-text-emphasis); }
.badge-x402    { background: var(--bs-purple-bg-subtle, #f3e8ff); color: #7c3aed; }
.badge-fiat    { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); }
