/* BloodCrimes — Stitch Design System Components
 * Wspólne komponenty wizualne oparte na tokenach Stitch (master_ui_kit_refined).
 * Zastosowanie: HUD, karty akcji, badge'e, paski, empty/error states, modale.
 */

/* ==================== */
/* BUTTONS              */
/* ==================== */
.bc-btn {
  border: 1px solid var(--bc-border-strong);
  border-radius: 0;
  font-family: var(--bc-font-display);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 0.6rem 1.2rem;
  text-transform: uppercase;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.bc-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.bc-btn-primary {
  background: var(--bc-crimson);
  border-color: var(--bc-crimson);
  color: #fff;
}
.bc-btn-primary:hover:not(:disabled) {
  background: var(--bc-crimson-hover);
  border-color: var(--bc-crimson-hover);
}
.bc-btn-secondary {
  background: transparent;
  border-color: var(--bc-border-strong);
  color: var(--bc-text);
}
.bc-btn-secondary:hover:not(:disabled) {
  background: var(--bc-surface-elevated);
}
.bc-btn-ghost {
  background: transparent;
  border-color: transparent;
  color: var(--bc-muted);
}
.bc-btn-ghost:hover:not(:disabled) {
  color: var(--bc-text);
}
.bc-btn-gold {
  background: var(--bc-gold);
  border-color: var(--bc-gold);
  color: #0B0C10;
}
.bc-btn-danger {
  background: var(--bc-danger);
  border-color: var(--bc-danger);
  color: #fff;
}
.bc-btn-block { width: 100%; }

/* ==================== */
/* CARDS / PANELS       */
/* ==================== */
.bc-card {
  background: var(--bc-surface);
  border: 1px solid var(--bc-border);
  border-radius: 0;
}
.bc-card-elevated {
  background: var(--bc-surface-elevated);
  border: 1px solid var(--bc-border);
  border-radius: 0;
}
.bc-card-elite {
  background: var(--bc-surface);
  border: 1px solid var(--bc-border);
  border-top: 2px solid var(--bc-gold);
  border-radius: 0;
  position: relative;
}
.bc-card-active {
  background: var(--bc-surface);
  border: 1px solid var(--bc-crimson);
  border-radius: 0;
  position: relative;
}
.bc-card-header {
  align-items: center;
  border-bottom: 1px solid var(--bc-border);
  display: flex;
  justify-content: space-between;
  padding: 0.9rem 1rem;
}
.bc-card-header h3, .bc-card-header .bc-card-title {
  font-family: var(--bc-font-display);
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0;
  text-transform: uppercase;
}
.bc-card-body { padding: 1rem; }

/* ==================== */
/* BADGES               */
/* ==================== */
.bc-badge {
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--bc-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  padding: 0.3rem 0.5rem;
  white-space: nowrap;
}
.bc-badge-money  { background: rgba(46, 125, 50, 0.15); color: #66BB6A; border: 1px solid rgba(46, 125, 50, 0.4); }
.bc-badge-gold   { background: rgba(201, 154, 56, 0.12); color: var(--bc-gold-light); border: 1px solid rgba(201, 154, 56, 0.4); }
.bc-badge-level  { background: rgba(167, 139, 250, 0.1); color: #A78BFA; border: 1px solid rgba(167, 139, 250, 0.35); }
.bc-badge-bonus  { background: rgba(2, 119, 189, 0.12); color: #4FC3F7; border: 1px solid rgba(2, 119, 189, 0.4); }
.bc-badge-heat   { background: rgba(239, 68, 68, 0.15); color: #F87171; border: 1px solid rgba(239, 68, 68, 0.45); }
.bc-badge-risk   { background: rgba(239, 68, 68, 0.12); color: #FCA5A5; border: 1px solid rgba(239, 68, 68, 0.35); }
.bc-badge-success{ background: rgba(46, 125, 50, 0.15); color: #66BB6A; border: 1px solid rgba(46, 125, 50, 0.4); }
.bc-badge-info   { background: rgba(2, 119, 189, 0.12); color: #4FC3F7; border: 1px solid rgba(2, 119, 189, 0.4); }
.bc-badge-muted  { background: rgba(163, 163, 163, 0.1); color: var(--bc-muted); border: 1px solid var(--bc-border-strong); }
.bc-badge-tier   { background: rgba(181, 18, 32, 0.15); color: #F87171; border: 1px solid rgba(181, 18, 32, 0.5); text-transform: uppercase; }

/* ==================== */
/* PROGRESS BARS        */
/* ==================== */
.bc-progress {
  background: var(--bc-surface-elevated);
  border-radius: 0;
  height: 4px;
  overflow: hidden;
  width: 100%;
}
.bc-progress > span {
  display: block;
  height: 100%;
  transition: width 0.3s ease;
}
.bc-progress-xp     > span { background: var(--bc-gold); }
.bc-progress-energy > span { background: var(--bc-crimson); }
.bc-progress-health > span { background: var(--bc-success); }
.bc-progress-heat   > span { background: var(--bc-danger); }
.bc-progress-rank   > span { background: var(--bc-gold-light); }

/* ==================== */
/* STAT TILES (HUD)     */
/* ==================== */
.bc-stat-tile {
  background: var(--bc-surface);
  border: 1px solid var(--bc-border);
  border-radius: 0;
  padding: 0.6rem 0.8rem;
  text-align: center;
}
.bc-stat-tile .bc-stat-tile-icon { color: var(--bc-muted); font-size: 1rem; margin-bottom: 0.3rem; }
.bc-stat-tile .bc-stat-tile-value {
  font-family: var(--bc-font-display);
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1;
}
.bc-stat-tile .bc-stat-tile-label {
  color: var(--bc-muted);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  margin-top: 0.3rem;
  text-transform: uppercase;
}

/* ==================== */
/* FEED (Activity Log)  */
/* ==================== */
.bc-feed {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.bc-feed-item {
  align-items: flex-start;
  display: flex;
  gap: 0.6rem;
}
.bc-feed-item .bc-feed-icon { font-size: 1rem; margin-top: 0.15rem; }
.bc-feed-item .bc-feed-text { font-size: 0.85rem; line-height: 1.4; }
.bc-feed-item .bc-feed-time { color: var(--bc-muted); font-size: 0.7rem; }

/* ==================== */
/* EMPTY / ERROR STATES */
/* ==================== */
.bc-empty-state, .bc-error-state {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 2rem 1rem;
  text-align: center;
}
.bc-empty-state .bc-empty-icon, .bc-error-state .bc-error-icon { font-size: 2rem; color: var(--bc-muted); }
.bc-error-state .bc-error-icon { color: var(--bc-danger); }
.bc-empty-state .bc-empty-title, .bc-error-state .bc-error-title {
  font-family: var(--bc-font-display);
  font-size: 1.1rem;
  font-weight: 700;
}
.bc-empty-state .bc-empty-sub, .bc-error-state .bc-error-sub { color: var(--bc-muted); font-size: 0.8rem; }
.bc-error-state .bc-error-code {
  color: var(--bc-muted);
  font-family: monospace;
  font-size: 0.7rem;
}

/* ==================== */
/* SKELETON             */
/* ==================== */
.bc-skeleton {
  animation: bc-skeleton-pulse 1.2s ease-in-out infinite;
  background: var(--bc-surface-elevated);
  border-radius: 0;
  display: inline-block;
  height: 1em;
  width: 100%;
}
@keyframes bc-skeleton-pulse {
  0%, 100% { opacity: 0.6; }
  50% { opacity: 0.3; }
}

/* ==================== */
/* RECOMMENDED ACTION   */
/* ==================== */
.bc-recommended {
  background: var(--bc-surface-elevated);
  border: 1px solid var(--bc-border);
  border-top: 1px solid var(--bc-crimson);
  border-radius: 0;
  padding: 1rem;
  position: relative;
}
.bc-recommended .bc-rec-label {
  color: var(--bc-muted);
  font-family: var(--bc-font-display);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  margin-bottom: 0.4rem;
  text-transform: uppercase;
}
.bc-recommended .bc-rec-title {
  font-family: var(--bc-font-display);
  font-size: 1.3rem;
  font-weight: 700;
}
.bc-recommended .bc-rec-meta { color: var(--bc-muted); font-size: 0.8rem; }
.bc-recommended .bc-rec-reward { color: var(--bc-success); font-family: var(--bc-font-display); font-size: 1.1rem; font-weight: 700; }

/* ==================== */
/* LIVE NETWORK         */
/* ==================== */
.bc-live-network {
  background: var(--bc-surface);
  border: 1px solid var(--bc-border);
  border-radius: 0;
  font-family: monospace;
  font-size: 0.75rem;
}
.bc-live-network .bc-live-item { color: var(--bc-muted); padding: 0.3rem 0.6rem; }
.bc-live-network .bc-live-item .bc-live-user { color: var(--bc-text); }
.bc-live-network .bc-live-item.bc-live-system { color: var(--bc-crimson-hover); }
.bc-live-network .bc-live-item.bc-live-info { color: var(--bc-info); }

/* ==================== */
/* TOOLTIP / LOCK       */
/* ==================== */
.bc-lock {
  align-items: center;
  color: var(--bc-muted);
  display: inline-flex;
  gap: 0.4rem;
}
.bc-lock .fa-lock { color: var(--bc-muted); font-size: 0.75rem; }
.bc-lock-tip {
  background: var(--bc-surface-elevated);
  border: 1px solid var(--bc-border-strong);
  color: var(--bc-text);
  font-size: 0.75rem;
  padding: 0.3rem 0.5rem;
  position: absolute;
  white-space: nowrap;
  z-index: 50;
}
/* ==================== */
/* HUD (top of sidebar) */
/* ==================== */
.bc-hud {
  border-bottom: 1px solid var(--bc-border);
  margin: 0 0.4rem 0.6rem;
  padding: 0.7rem 0.4rem;
}
.bc-hud-stats { display: flex; flex-direction: column; gap: 0.45rem; }
.bc-hud-group {
  align-items: center;
  display: flex;
  gap: 0.4rem;
}
.bc-hud-label {
  color: var(--bc-muted);
  font-family: var(--bc-font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  min-width: 34px;
}
.bc-hud-xp, .bc-hud-val {
  color: var(--bc-text);
  font-size: 0.68rem;
  font-weight: 600;
  min-width: 26px;
  text-align: right;
}
.bc-hud-currency {
  border-top: 1px solid var(--bc-border);
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin-top: 0.3rem;
  padding-top: 0.4rem;
}
.bc-hud-currency span { font-size: 0.78rem; }
.bc-hud-money { color: var(--bc-success); }
.bc-hud-gold { color: var(--bc-gold-light); }
.bc-hud-bank { color: var(--bc-info); }
.bc-hud-heat {
  color: var(--bc-danger);
  font-family: var(--bc-font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-top: 0.3rem;
  text-transform: uppercase;
}
.bc-hud-actions {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-top: 0.5rem;
}
.bc-hud-actions .bc-hud-icon {
  color: var(--bc-muted);
  font-size: 1rem;
  text-decoration: none;
}
.bc-hud-actions .bc-hud-icon:hover { color: var(--bc-text); }
.bc-hud-avatar {
  align-items: center;
  border: 1px solid var(--bc-border-strong);
  border-radius: 0;
  color: var(--bc-muted);
  display: flex;
  height: 30px;
  justify-content: center;
  overflow: hidden;
  width: 30px;
}
.bc-hud-avatar img { height: 100%; object-fit: cover; width: 100%; }

/* ==================== */
/* SIDEBAR GROUPS       */
/* ==================== */
.bc-sidebar-nav { padding-bottom: 1rem; }
.bc-sidebar-sep {
  border-top: 1px solid var(--bc-border);
  margin: 0.7rem 0.6rem;
}
.bc-sidebar-group-toggle {
  align-items: center;
  background: none;
  border: 0;
  color: var(--bc-text-muted);
  cursor: pointer;
  display: flex;
  font-family: var(--bc-font-display);
  font-size: 0.78rem;
  font-weight: 700;
  gap: 0.6rem;
  letter-spacing: 0.12em;
  padding: 0.45rem 0.7rem;
  text-align: left;
  text-transform: uppercase;
  width: 100%;
}
.bc-sidebar-group-toggle:hover { color: var(--bc-text); }
.bc-sidebar-group-toggle .bc-sidebar-group-caret { margin-left: auto; transition: transform 0.15s ease; }
.bc-sidebar-group-toggle.is-open .bc-sidebar-group-caret { transform: rotate(180deg); }
.bc-sidebar-group-items { display: flex; flex-direction: column; }
.bc-sidebar-link-sub { padding-left: 1.3rem; font-size: 0.85rem; }
.bc-sidebar-lock { color: var(--bc-muted); font-size: 0.7rem; margin-left: auto; }

/* ==================== */
/* MODULE HERO (atmo)   */
/* ==================== */
.bc-module-hero {
  background-color: var(--bc-bg);
  background-position: center right;
  background-repeat: no-repeat;
  background-size: cover;
  min-height: 240px;
  overflow: hidden;
  position: relative;
}
.bc-module-hero::before {
  background:
    linear-gradient(90deg, rgba(9,9,11,0.98) 0%, rgba(9,9,11,0.90) 45%, rgba(9,9,11,0.72) 100%),
    linear-gradient(0deg, rgba(9,9,11,1) 0%, rgba(9,9,11,0.10) 55%, rgba(9,9,11,0.40) 100%);
  content: "";
  inset: 0;
  position: absolute;
}
.bc-module-hero__content {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  justify-content: center;
  min-height: inherit;
  padding: 2rem 1.25rem;
  position: relative;
  z-index: 1;
}
.bc-module-hero--command { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/command-center/hero-desktop.avif'); }
.bc-module-hero--crimes  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/crimes/hero-desktop.avif'); }
.bc-module-hero--garage  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/garage/hero-desktop.avif'); }
.bc-module-hero--fight   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/fight/hero-desktop.avif'); }

@supports not (background-image: url('x.avif')) {
  .bc-module-hero--command { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/command-center/hero-desktop.webp'); }
  .bc-module-hero--crimes  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/crimes/hero-desktop.webp'); }
  .bc-module-hero--garage  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/garage/hero-desktop.webp'); }
  .bc-module-hero--fight   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/fight/hero-desktop.webp'); }
}

@media (max-width: 767px) {
  .bc-module-hero { min-height: 200px; }
  .bc-module-hero--command { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/command-center/hero-mobile.webp'); }
  .bc-module-hero--crimes  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/crimes/hero-mobile.webp'); }
  .bc-module-hero--garage  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/garage/hero-mobile.webp'); }
  .bc-module-hero--fight   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/fight/hero-mobile.webp'); }
}

@media (prefers-reduced-motion: reduce) {
  .bc-module-hero::before { transition: none; }
}

.bc-module-hero__kicker {
  color: var(--bc-gold);
  font-family: var(--bc-font-display);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.bc-module-hero__title {
  color: var(--bc-text);
  font-family: var(--bc-font-display);
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.1;
  margin: 0;
  text-transform: uppercase;
}
.bc-module-hero__desc {
  color: var(--bc-muted);
  font-size: 0.9rem;
  max-width: 520px;
}
.bc-module-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.bc-module-hero__cta {
  align-self: flex-start;
  margin-top: 0.5rem;
}

/* Subtle atmospheric layer inside an existing hero (no layout change). */
.bc-hero-atmo {
  background-color: var(--bc-bg);
  background-position: center right;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  isolation: isolate;
}
.bc-hero-atmo::before {
  background:
    linear-gradient(90deg, rgba(9,9,11,0.97) 0%, rgba(9,9,11,0.88) 50%, rgba(9,9,11,0.70) 100%);
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}
.bc-hero-atmo > * { position: relative; z-index: 1; }
.bc-hero-atmo--command { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/command-center/hero-desktop.webp'); }
.bc-hero-atmo--crimes  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/crimes/hero-desktop.webp'); }
.bc-hero-atmo--garage  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/garage/hero-desktop.webp'); }
.bc-hero-atmo--fight   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/fight/hero-desktop.webp'); }
@media (max-width: 767px) {
  .bc-hero-atmo--command { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/command-center/hero-mobile.webp'); }
  .bc-hero-atmo--crimes  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/crimes/hero-mobile.webp'); }
  .bc-hero-atmo--garage  { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/garage/hero-mobile.webp'); }
  .bc-hero-atmo--fight   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/v1/fight/hero-mobile.webp'); }
}

/* Atmospheric page header (bc-page-header with .bc-hero-atmo) */
.bc-page-header.bc-hero-atmo {
  min-height: 130px;
  padding: 1.2rem 1.4rem;
}
@media (max-width: 767px) {
  .bc-page-header.bc-hero-atmo { min-height: 100px; padding: 1rem 1.1rem; }
}

/* ==================== */
/* BADGE-MINI (shop)    */
/* ==================== */
.badge-mini {
  border-radius: 0;
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.2;
  margin: 0.15rem 0.2rem 0.15rem 0;
  padding: 0.28rem 0.45rem;
}
.shop-item .card-body .small {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

/* Live Network indicator */
.bc-live-dot {
  animation: bc-live-pulse 1.6s ease-in-out infinite;
  background: var(--bc-crimson);
  border-radius: 0;
  display: inline-block;
  height: 8px;
  width: 8px;
}
@keyframes bc-live-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
@media (prefers-reduced-motion: reduce) {
  .bc-live-dot { animation: none; }
}

/* ==================== */
/* PUBLIC PAGE HERO     */
/* ==================== */
/* Subtle atmosphere for public pages (/, /guest, /terms, /privacy).
 * Layer order: image → overlay → content. Overlay never blocks clicks. */
.bc-public-hero {
  background-color: var(--bc-bg);
  background-position: right center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  isolation: isolate;
}
.bc-public-hero::before {
  background:
    linear-gradient(90deg, rgba(9,9,11,0.90) 0%, rgba(9,9,11,0.80) 55%, rgba(9,9,11,0.60) 100%),
    linear-gradient(0deg, rgba(9,9,11,0.95) 0%, rgba(9,9,11,0.20) 60%, rgba(9,9,11,0.55) 100%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}
.bc-public-hero > * { position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) {
  .bc-public-hero { transition: none; }
}
/* Legal pages: near-opaque overlay for long text. */
.bc-public-hero--strong::before {
  background: linear-gradient(90deg, rgba(9,9,11,0.97) 0%, rgba(9,9,11,0.93) 60%, rgba(9,9,11,0.85) 100%);
}
@media (max-width: 767px) {
  .bc-public-hero::before {
    background: linear-gradient(90deg, rgba(9,9,11,0.95) 0%, rgba(9,9,11,0.88) 60%, rgba(9,9,11,0.80) 100%);
  }
}
/* Per-page backgrounds (AVIF first, WebP fallback). */
.bc-public-hero--index   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/index/hero-desktop.avif'); }
.bc-public-hero--guest   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/guest/hero-desktop.avif'); }
.bc-public-hero--terms   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/terms/hero-desktop.avif'); }
.bc-public-hero--privacy { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/privacy/hero-desktop.avif'); }
@supports not (background-image: url('x.avif')) {
  .bc-public-hero--index   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/index/hero-desktop.webp'); }
  .bc-public-hero--guest   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/guest/hero-desktop.webp'); }
  .bc-public-hero--terms   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/terms/hero-desktop.webp'); }
  .bc-public-hero--privacy { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/privacy/hero-desktop.webp'); }
}
@media (max-width: 767px) {
  .bc-public-hero--index   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/index/hero-mobile.webp'); }
  .bc-public-hero--guest   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/guest/hero-mobile.webp'); }
  .bc-public-hero--terms   { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/terms/hero-mobile.webp'); }
  .bc-public-hero--privacy { background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/privacy/hero-mobile.webp'); }
}

/* Landing index: apply the skyline image on the existing .bc-land-bg-photo
 * layer (keeps body gradient as fallback, no layout change). */
body.bc-public-hero--index .bc-land-bg-photo {
  background-image:
    radial-gradient(ellipse 80% 55% at 50% -10%, rgba(159, 18, 57, 0.25), transparent),
    url('https://assets.bloodcrimes.pl/backgrounds/public/index/hero-desktop.avif');
  background-position: right center;
}
@supports not (background-image: url('x.avif')) {
  body.bc-public-hero--index .bc-land-bg-photo {
    background-image:
      radial-gradient(ellipse 80% 55% at 50% -10%, rgba(159, 18, 57, 0.25), transparent),
      url('https://assets.bloodcrimes.pl/backgrounds/public/index/hero-desktop.webp');
  }
}
@media (max-width: 767px) {
  body.bc-public-hero--index .bc-land-bg-photo {
    background-image:
      radial-gradient(ellipse 80% 55% at 50% -10%, rgba(159, 18, 57, 0.25), transparent),
      url('https://assets.bloodcrimes.pl/backgrounds/public/index/hero-mobile.webp');
  }
}

/* Guest page: atmosphere on .bc-guest-body (override later shorthand). */
body.bc-guest-body.bc-public-hero--guest {
  background-color: var(--bc-bg) !important;
  background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/guest/hero-desktop.avif') !important;
  background-position: right center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}
@supports not (background-image: url('x.avif')) {
  body.bc-guest-body.bc-public-hero--guest {
    background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/guest/hero-desktop.webp') !important;
  }
}
@media (max-width: 767px) {
  body.bc-guest-body.bc-public-hero--guest {
    background-image: url('https://assets.bloodcrimes.pl/backgrounds/public/guest/hero-mobile.webp') !important;
  }
}

/* Terms / Privacy: apply legal-chamber / archive images on the landing bg
 * layer with a near-opaque overlay so long legal text stays readable. */
body.bc-public-hero--terms .bc-land-bg-photo {
  background-image:
    linear-gradient(0deg, rgba(9,9,11,0.97) 0%, rgba(9,9,11,0.90) 100%),
    url('https://assets.bloodcrimes.pl/backgrounds/public/terms/hero-desktop.avif');
  background-position: right center;
}
@supports not (background-image: url('x.avif')) {
  body.bc-public-hero--terms .bc-land-bg-photo {
    background-image:
      linear-gradient(0deg, rgba(9,9,11,0.97) 0%, rgba(9,9,11,0.90) 100%),
      url('https://assets.bloodcrimes.pl/backgrounds/public/terms/hero-desktop.webp');
  }
}
@media (max-width: 767px) {
  body.bc-public-hero--terms .bc-land-bg-photo {
    background-image:
      linear-gradient(0deg, rgba(9,9,11,0.97) 0%, rgba(9,9,11,0.90) 100%),
      url('https://assets.bloodcrimes.pl/backgrounds/public/terms/hero-mobile.webp');
  }
}

body.bc-public-hero--privacy .bc-land-bg-photo {
  background-image:
    linear-gradient(0deg, rgba(9,9,11,0.97) 0%, rgba(9,9,11,0.90) 100%),
    url('https://assets.bloodcrimes.pl/backgrounds/public/privacy/hero-desktop.avif');
  background-position: right center;
}
@supports not (background-image: url('x.avif')) {
  body.bc-public-hero--privacy .bc-land-bg-photo {
    background-image:
      linear-gradient(0deg, rgba(9,9,11,0.97) 0%, rgba(9,9,11,0.90) 100%),
      url('https://assets.bloodcrimes.pl/backgrounds/public/privacy/hero-desktop.webp');
  }
}
@media (max-width: 767px) {
  body.bc-public-hero--privacy .bc-land-bg-photo {
    background-image:
      linear-gradient(0deg, rgba(9,9,11,0.97) 0%, rgba(9,9,11,0.90) 100%),
      url('https://assets.bloodcrimes.pl/backgrounds/public/privacy/hero-mobile.webp');
  }
}

/* ── Mobile "More" slide-up panel (bc-shell) ────────────────── */
.bc-mobile-backdrop {
  background: rgba(0, 0, 0, 0.65);
  display: none;
  height: 100vh;
  left: 0;
  opacity: 0;
  position: fixed;
  top: 0;
  transition: opacity 0.2s ease;
  width: 100%;
  z-index: 1044;
}
.bc-mobile-backdrop.is-open {
  display: block;
  opacity: 1;
}
.bc-mobile-more {
  background: rgba(9, 9, 11, 0.98);
  border: 1px solid rgba(159, 18, 57, 0.28);
  border-bottom: none;
  border-radius: 1rem 1rem 0 0;
  bottom: 0;
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.6);
  left: 0;
  max-height: 72vh;
  overflow-y: auto;
  padding: 0.9rem 0.9rem calc(1.1rem + env(safe-area-inset-bottom));
  position: fixed;
  right: 0;
  transform: translateY(105%);
  transition: transform 0.22s ease;
  z-index: 1045;
}
.bc-mobile-more.is-open {
  transform: translateY(0);
}
.bc-mobile-more-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.bc-mobile-more-head span {
  color: #f4f4f5;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.bc-mobile-more-close {
  background: rgba(159, 18, 57, 0.18);
  border: 1px solid rgba(159, 18, 57, 0.35);
  border-radius: 0.6rem;
  color: #f4f4f5;
  font-size: 1rem;
  line-height: 1;
  padding: 0.35rem 0.65rem;
}
.bc-mobile-more-scroll {
  max-height: calc(72vh - 3rem);
  overflow-y: auto;
}
.bc-mobile-more-group {
  margin-bottom: 1rem;
}
.bc-mobile-more-group-label {
  color: rgba(244, 244, 245, 0.5);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
}
.bc-mobile-more-grid {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.bc-mobile-more-item {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0.7rem;
  color: rgba(244, 244, 245, 0.78);
  display: block;
  font-size: 0.66rem;
  padding: 0.6rem 0.25rem;
  text-align: center;
  text-decoration: none;
}
.bc-mobile-more-item i {
  display: block;
  font-size: 1.05rem;
  margin-bottom: 0.25rem;
}
.bc-mobile-more-item:hover,
.bc-mobile-more-item:focus,
.bc-mobile-more-item.is-active {
  background: rgba(159, 18, 57, 0.2);
  border-color: rgba(159, 18, 57, 0.4);
  color: #f4f4f5;
  text-decoration: none;
}
.bc-mobile-more-danger {
  color: rgba(244, 100, 100, 0.85);
}
.bc-mobile-more-danger:hover,
.bc-mobile-more-danger:focus {
  background: rgba(220, 38, 38, 0.2);
  border-color: rgba(220, 38, 38, 0.4);
  color: #fff;
}
