/* ═══════════════════════════════════════════
   BubblePix — Design System (tema: vale mágico)
   Fundo de todas as telas = cenário pintado em código (js/cenario.js -> --cena).
   ═══════════════════════════════════════════ */

@font-face {
  font-family: 'Baloo 2';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/baloo-2-800-latin.woff2) format('woff2');
}

@font-face {
  font-family: 'Luckiest Guy';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/luckiest-guy-400-latin.woff2) format('woff2');
}

/* Inter servida daqui (nada do Google Fonts: o CSP do site so aceita o proprio dominio). */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/inter-400-latin.woff2) format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/inter-500-latin.woff2) format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/inter-600-latin.woff2) format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/inter-700-latin.woff2) format('woff2');
}

:root {
  --bg-primary: #1c0b38;
  --bg-secondary: rgba(22, 9, 46, 0.78);
  --bg-card: rgba(26, 11, 54, 0.72);
  --bg-input: rgba(10, 3, 26, 0.55);
  --border: rgba(214, 160, 255, 0.24);
  --border-focus: #b673ff;
  --text-primary: #fbf7ff;
  --text-secondary: #d9cbef;
  --text-muted: #a993c9;
  --accent: #8a5cff;
  --accent-2: #c24dff;
  --accent-hover: #a07bff;
  --accent-glow: rgba(138, 92, 255, 0.42);
  --gold: #ffc107;
  --gold-hover: #ffd54a;
  --gold-glow: rgba(255, 193, 7, 0.35);
  --green: #00e676;
  --green-glow: rgba(0, 230, 118, 0.22);
  --red: #ff5470;
  --red-glow: rgba(255, 84, 112, 0.2);
  --radius: 16px;
  --radius-sm: 12px;
  --font-display: 'Baloo 2', system-ui, sans-serif;
  --font-cartoon: 'Luckiest Guy', 'Baloo 2', sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --glass: rgba(24, 10, 50, 0.7);
  --glass-border: rgba(216, 74, 255, 0.3);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
/* `hidden` sempre esconde, mesmo em componente com display próprio (o selo do sino mostrava "0") */
[hidden] { display: none !important; }

/* a cor sólida fica só no html: fundo no body cobriria o cenário (camada z-index -1) */
html { background: var(--bg-primary); }

html, body {
  height: 100%;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  touch-action: manipulation;
}

/* cenário fixo atrás de tudo (camada própria: no iPhone background-attachment:fixed não funciona) */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  background: var(--cena, none) center / cover no-repeat, linear-gradient(180deg, #2a1258 0%, #7d47b2 55%, #3a1f5c 100%);
  pointer-events: none;
}

#app {
  min-height: 100%;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

button, a, input, select, label { touch-action: manipulation; }

/* ─── Typography ─── */
h1, h2, h3 { font-family: var(--font-display); font-weight: 800; line-height: 1.2; }
h1 { font-size: 2rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.15rem; }

a { color: #7fd9ff; text-decoration: none; }
a:hover { color: #b5ebff; }

.muted { color: var(--text-secondary); }

/* ─── Logo ─── */
.logo { display: block; width: 104px; height: auto; filter: drop-shadow(0 4px 10px rgba(20, 0, 50, 0.55)); }
.logo-lg { width: 168px; margin: 0 auto; }

/* ─── Layout ─── */
.container {
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  padding: 0 16px;
}

.page {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding-top: var(--safe-top);
  padding-bottom: calc(16px + var(--safe-bottom));
}

.page:has(> .bottom-nav) { padding-bottom: 0; }

.page-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
}

.page-header h1 { flex: 1; }

/* ─── Buttons ─── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border: none;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.2s, background 0.2s, color 0.2s;
  white-space: nowrap;
  text-decoration: none;
}

.btn:active { transform: scale(0.97); }

.btn-accent {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #fff;
  box-shadow: 0 8px 24px var(--accent-glow), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.btn-accent:hover { color: #fff; box-shadow: 0 10px 30px var(--accent-glow), inset 0 1px 0 rgba(255, 255, 255, 0.35); }

.btn-gold {
  background: linear-gradient(180deg, #ffe58a 0%, #ffc107 50%, #ff9800 100%);
  color: #3a1d00;
  box-shadow: 0 8px 24px var(--gold-glow), inset 0 2px 0 rgba(255, 255, 255, 0.55);
}
.btn-gold:hover { color: #3a1d00; }

/* botão principal verde (Jogar) */
.btn-play {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 18px 24px;
  font-family: var(--font-display);
  font-size: 1.2rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #052a12;
  background: linear-gradient(180deg, #7dffb4 0%, #19f07a 45%, #00c35a 100%);
  box-shadow: 0 10px 30px rgba(0, 255, 120, 0.4), inset 0 2px 0 rgba(255, 255, 255, 0.6), inset 0 -3px 0 rgba(0, 90, 40, 0.35);
}
.btn-play:hover { color: #052a12; }
.btn-play::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: -60%;
  width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.7), transparent);
  transform: skewX(-20deg);
  animation: btn-shine 4s ease-in-out infinite;
  pointer-events: none;
}

.btn-ghost {
  background: rgba(20, 8, 44, 0.55);
  color: var(--text-primary);
  border: 1px solid rgba(255, 255, 255, 0.28);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.btn-ghost:hover { border-color: rgba(255, 255, 255, 0.55); color: #fff; }

.btn-green {
  background: linear-gradient(180deg, #4dffa0, #00c35a);
  color: #052a12;
  box-shadow: 0 6px 20px var(--green-glow);
}

.btn-red {
  background: linear-gradient(180deg, #ff7a8e, #e0244a);
  color: #fff;
}

.btn-block { width: 100%; }
.btn-sm { padding: 8px 16px; font-size: 0.875rem; }
.btn-upper { text-transform: uppercase; letter-spacing: 0.06em; }

.btn:disabled {
  opacity: 0.6;
  cursor: progress;
  pointer-events: none;
}

/* ─── Forms ─── */
.form-group {
  margin-bottom: 14px;
}

.form-group label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-secondary);
}

.form-input {
  width: 100%;
  padding: 14px 16px;
  background: var(--bg-input);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 14px;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 16px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.form-input:focus {
  outline: none;
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px var(--accent-glow);
}

.form-input::placeholder { color: var(--text-muted); }

.pw-wrap { position: relative; }
.pw-wrap .form-input { padding-right: 48px; }
.pw-toggle {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-radius: 10px;
}

select.form-input {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23d9cbef'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}

/* ─── Cards (vidro) ─── */
.card {
  background: var(--glass);
  border: 1px solid var(--glass-border);
  border-radius: 20px;
  padding: 20px;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
}

.card + .card { margin-top: 12px; }

.card-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  margin-bottom: 12px;
  color: var(--text-secondary);
}

/* ─── Stats Grid ─── */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.stat-card {
  background: var(--glass);
  border: 1px solid var(--glass-border);
  border-radius: 18px;
  padding: 16px;
  text-align: center;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.stat-value {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--gold);
}

.stat-label {
  font-size: 0.75rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 4px;
}

/* ─── Table ─── */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

th, td {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}

th {
  font-weight: 600;
  color: var(--text-muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ─── Badge ─── */
.badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 100px;
  font-size: 0.75rem;
  font-weight: 600;
}

.badge-green { background: var(--green-glow); color: var(--green); }
.badge-red { background: var(--red-glow); color: var(--red); }
.badge-yellow { background: var(--gold-glow); color: var(--gold); }
.badge-gray { background: rgba(169, 147, 201, 0.15); color: var(--text-muted); }

/* ─── Alert ─── */
.alert {
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
  margin-bottom: 16px;
}
.alert-error { background: rgba(80, 6, 30, 0.85); color: #ffd0d8; border: 1px solid rgba(255, 84, 112, 0.55); }
.alert-success { background: rgba(4, 60, 34, 0.85); color: #b8ffd8; border: 1px solid rgba(0, 230, 118, 0.45); }

/* ─── Tabs ─── */
.tabs {
  display: flex;
  gap: 4px;
  padding: 4px;
  background: var(--bg-input);
  border-radius: 999px;
  margin-bottom: 16px;
}

.tab {
  flex: 1;
  padding: 8px 12px;
  background: transparent;
  border: none;
  border-radius: 999px;
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.tab.active {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #fff;
  box-shadow: 0 4px 14px var(--accent-glow);
}

/* ─── Modal ─── */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 2, 26, 0.62);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  padding: 16px;
}

.modal {
  background: var(--glass);
  border: 1px solid var(--glass-border);
  border-radius: 24px;
  padding: 24px;
  max-width: 420px;
  width: 100%;
  text-align: center;
}

/* ═══════════ Jogo ═══════════ */
.game-page {
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 50;
  background: transparent;
}

/* resgate liberado: borda da tela acende em dourado (fixo, sem piscar) */
.game-page.cashout-ready::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 70;
  box-shadow: inset 0 0 42px 10px rgba(255, 179, 0, 0.3), inset 0 0 90px 24px rgba(255, 193, 7, 0.14);
}

.game-hud {
  width: 100%;
  max-width: 480px;
  padding: 10px 12px 4px;
  padding-top: calc(10px + var(--safe-top));
  touch-action: none;
}

.game-hud-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 6px;
}

.hud-corner {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  justify-self: start;
  padding: 3px 10px 3px 6px;
  border-radius: 999px;
  background: rgba(8, 4, 30, 0.35);
  color: #ffbf5c;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(0.85rem, 3.6vw, 1.05rem);
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.65), 0 2px 8px rgba(0, 0, 0, 0.45);
}
.hud-corner--right { justify-self: end; flex-direction: row-reverse; padding: 3px 6px 3px 10px; }
.hud-corner .ico { width: 20px; height: 20px; flex: none; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.4)); }

.hud-score {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.5rem, 7vw, 2.3rem);
  line-height: 1;
  text-align: center;
  letter-spacing: -0.02em;
  color: var(--green);
  -webkit-text-stroke: 1.2px rgba(10, 18, 35, 0.8);
  text-shadow: 0 2px 0 rgba(10, 18, 35, 0.75), 0 4px 14px rgba(0, 0, 0, 0.5), 0 2px 12px rgba(0, 230, 118, 0.4);
  transition: color 0.4s, text-shadow 0.4s;
  white-space: nowrap;
}
.hud-score.ready {
  color: var(--gold);
  text-shadow: 0 2px 0 rgba(10, 18, 35, 0.78), 0 4px 16px rgba(0, 0, 0, 0.52), 0 2px 14px rgba(255, 193, 7, 0.55);
}

.hud-progress {
  position: relative;
  overflow: hidden;
  width: min(220px, 58%);
  height: 10px;
  margin: 7px auto 0;
  border-radius: 999px;
  background: rgba(8, 20, 44, 0.48);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.35), 0 2px 10px rgba(0, 0, 0, 0.2);
}
.hud-progress-fill {
  height: 100%;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.6);
  transition: width 0.3s ease-out, background 0.3s;
}
.hud-progress.complete { border-color: rgba(255, 230, 120, 0.85); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.35), 0 0 14px rgba(255, 193, 7, 0.45); }
.hud-progress.complete .hud-progress-fill { background: linear-gradient(90deg, #ffc107, #ffe082); }
.hud-progress.complete::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 0%, rgba(255, 255, 255, 0.05) 30%, rgba(255, 255, 255, 0.75) 50%, rgba(255, 255, 255, 0.05) 70%, transparent 100%);
  transform: translateX(-140%);
  animation: progress-sweep 4s ease-in-out infinite;
}
@keyframes progress-sweep {
  0%, 70% { transform: translateX(-140%); }
  90%, 100% { transform: translateX(140%); }
}

.hud-demo {
  display: block;
  width: fit-content;
  margin: 6px auto 0;
  padding: 1px 10px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  color: #fff;
  background: rgba(138, 92, 255, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.35);
}

.game-stage {
  flex: 1;
  width: 100%;
  position: relative;
  min-height: 0;
  overflow: hidden;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}

.game-stage canvas {
  position: absolute;
  inset: 0;
  display: block;
}

.game-dock {
  width: 100%;
  max-width: 480px;
  padding: 8px 12px;
  padding-bottom: calc(12px + var(--safe-bottom));
  display: flex;
  gap: 10px;
  align-items: center;
}

.game-dock .cashout-btn { flex: 1; }

.game-icon-btn {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(16, 6, 40, 0.55);
  color: #fff;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  cursor: pointer;
}

.cashout-btn {
  position: relative;
  overflow: hidden;
  height: 56px;
  border-radius: 999px;
  border: none;
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  cursor: pointer;
}

/* travado: vidro escuro com letra dourada, legível (nada de cinza apagado) */
.cashout-btn.locked {
  background: rgba(20, 8, 46, 0.72);
  color: #ffd27a;
  border: 1.5px solid rgba(255, 193, 7, 0.55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3);
}

.cashout-btn.ready {
  background: linear-gradient(180deg, #fff09a 0%, #ffc107 48%, #ff9800 100%);
  color: #3a1d00;
  box-shadow: 0 8px 26px rgba(255, 193, 7, 0.5), inset 0 2px 0 rgba(255, 255, 255, 0.6), inset 0 -3px 0 rgba(150, 70, 0, 0.35);
}

/* um reflexo que passa a cada 4 s (sem pulsar) */
.cashout-btn.ready::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: -60%;
  width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.65), transparent);
  transform: skewX(-20deg);
  animation: btn-shine 4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes btn-shine {
  0%, 70% { left: -60%; }
  85%, 100% { left: 130%; }
}

.game-toast {
  position: fixed;
  bottom: calc(86px + var(--safe-bottom));
  left: 16px;
  right: 16px;
  z-index: 200;
  text-align: center;
  max-width: 440px;
  margin: 0 auto;
}

/* ─── Resultado ─── */
.result-modal {
  text-align: center;
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(44, 18, 92, 0.94), rgba(20, 8, 46, 0.96));
  border: 1px solid rgba(216, 74, 255, 0.4);
  border-radius: 26px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55), 0 0 32px rgba(140, 60, 220, 0.25);
}

.result-modal.is-win {
  border-color: rgba(255, 193, 7, 0.65);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55), 0 0 60px rgba(255, 193, 7, 0.25);
}

.result-badge {
  display: inline-block;
  font-family: var(--font-cartoon);
  font-size: 1.05rem;
  letter-spacing: 0.1em;
  padding: 7px 18px 4px;
  border-radius: 999px;
}

.result-badge.win { background: rgba(255, 193, 7, 0.16); color: #ffe082; border: 1px solid rgba(255, 193, 7, 0.55); }
.result-badge.lose { background: rgba(255, 84, 112, 0.14); color: #ffb3c0; border: 1px solid rgba(255, 84, 112, 0.45); }

.result-value {
  font-family: var(--font-cartoon);
  font-size: 3rem;
  line-height: 1.1;
  margin: 16px 0 6px;
  -webkit-text-stroke: 2px rgba(40, 10, 0, 0.6);
  paint-order: stroke fill;
}

.result-value.win { color: var(--gold); text-shadow: 0 4px 0 #7a3a00, 0 0 30px var(--gold-glow); }
.result-value.lose { color: #ff8095; text-shadow: 0 4px 0 #5a0018; }

.result-note {
  color: var(--text-secondary);
  font-size: 0.92rem;
  margin-bottom: 14px;
}

.result-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 8px;
}

/* ─── Navbar ─── */
.navbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  padding-top: calc(10px + var(--safe-top));
  background: rgba(16, 6, 40, 0.55);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.navbar-brand {
  font-family: var(--font-cartoon);
  font-size: 1.35rem;
  letter-spacing: 0.02em;
  color: #7fd9ff;
  text-shadow: 0 2px 0 #250a4d;
}

.navbar-spacer { flex: 1; }
.navbar .logo { width: 84px; }

.navbar-balance,
.balance-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--gold);
  padding: 4px 12px 4px 6px;
  border-radius: 999px;
  background: rgba(8, 4, 30, 0.5);
  border: 1px solid rgba(255, 193, 7, 0.35);
}
.balance-chip .ico { width: 20px; height: 20px; }

/* ─── Bottom Nav ─── */
/* vai pro rodapé mesmo com pouco conteúdo e fica à vista ao rolar */
.bottom-nav {
  position: sticky;
  bottom: 0;
  z-index: 20;
  margin-top: auto;
  display: flex;
  background: rgba(16, 6, 40, 0.7);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-bottom: var(--safe-bottom);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.bottom-nav a {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 4px;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-muted);
  text-decoration: none;
  transition: color 0.2s;
}

.bottom-nav a.active { color: #ffd27a; }

.bottom-nav svg { width: 24px; height: 24px; }

/* ═══════════ Início (vitrine) ═══════════ */
.landing {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  padding: calc(10px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));
}

.landing-top {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.landing-actions { display: flex; gap: 8px; align-items: center; }
.landing-actions .btn { padding: 10px 16px; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.05em; }

.landing-title {
  margin: 10px 0 12px;
  font-family: var(--font-cartoon);
  font-weight: 400;
  font-size: clamp(1.25rem, 6vw, 1.7rem);
  text-align: center;
  letter-spacing: 0.02em;
  color: #fff;
  text-shadow: 0 3px 0 #250a4d, 0 6px 18px rgba(20, 0, 50, 0.6);
}
.landing-title span { color: #ffd23f; }

/* moldura neon com o jogo rodando sozinho */
.preview-frame {
  position: relative;
  /* medida pela altura para nunca perder a proporção de celular */
  height: min(56vh, calc((100vw - 32px) * 15.5 / 9), 620px);
  width: auto;
  max-width: 100%;
  aspect-ratio: 9 / 15.5;
  border-radius: 34px;
  padding: 4px;
  background: linear-gradient(160deg, #ff7ad9, #a55cff 45%, #5ee7ff);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25), 0 18px 50px rgba(30, 0, 70, 0.6), 0 0 36px rgba(216, 74, 255, 0.45);
}

.preview-screen {
  container-type: inline-size;
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 30px;
  background: var(--cena, none) center / cover, #2a1258;
  display: flex;
  flex-direction: column;
}

.preview-screen .game-hud { padding: 18px 8px 2px; }
.preview-screen .game-hud-top { gap: 3px; }
.preview-screen .hud-score { font-size: clamp(0.95rem, 5.4cqw, 1.45rem); }
.preview-screen .hud-corner { font-size: clamp(0.56rem, 3.3cqw, 0.78rem); padding: 2px 6px; }
.preview-screen .hud-corner .ico { display: none; }
.preview-screen .hud-progress { height: 7px; margin-top: 5px; }

.preview-stage {
  flex: 1;
  position: relative;
  min-height: 0;
  pointer-events: none;
}
.preview-stage canvas { position: absolute; inset: 0; display: block; }

.preview-label {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  padding: 4px 14px 2px;
  border-radius: 999px;
  font-family: var(--font-cartoon);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  color: #fff;
  background: #12052c;
  border: 2px solid #d84aff;
  white-space: nowrap;
}

.landing.logged .preview-frame { height: min(44vh, calc((100vw - 32px) * 15.5 / 9), 520px); }
.landing.logged .landing-cta { margin-top: 14px; gap: 10px; }
.landing.logged .bet-quick button { min-width: 0; padding: 7px 12px; font-size: 0.9rem; }

.landing-cta { width: 100%; margin-top: 20px; display: flex; flex-direction: column; align-items: center; gap: 12px; }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}
.link-arrow:hover { color: #fff; }

.bet-label {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--text-secondary);
  text-align: center;
}

.bet-quick {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}

.bet-quick button {
  min-width: 64px;
  padding: 8px 14px;
  background: rgba(16, 6, 40, 0.6);
  border: 1.5px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  color: var(--text-primary);
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 800;
  cursor: pointer;
  transition: all 0.2s;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.bet-quick button.active {
  border-color: #ffc107;
  color: #ffd54a;
  background: rgba(60, 30, 0, 0.55);
  box-shadow: 0 0 14px rgba(255, 193, 7, 0.35);
}

/* ─── Login e cadastro ─── */
.auth-page {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: calc(24px + var(--safe-top)) 16px calc(24px + var(--safe-bottom));
}

.auth-card {
  width: 100%;
  max-width: 420px;
  padding: 26px 22px;
  border-radius: 24px;
  background: rgba(24, 13, 46, 0.85);
  border: 1px solid rgba(216, 74, 255, 0.28);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45), 0 0 32px rgba(140, 60, 220, 0.22);
}

.auth-card h1 { font-size: 1.6rem; margin-bottom: 4px; }
.auth-card .muted { font-size: 0.95rem; margin-bottom: 22px; }
.auth-card .btn { margin-top: 6px; padding: 15px; text-transform: uppercase; letter-spacing: 0.06em; }

.auth-footer {
  text-align: center;
  margin-top: 18px;
  font-size: 0.9rem;
  color: var(--text-secondary);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ─── Painel ─── */
.panel-content {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
}

/* ─── Admin ─── */
.admin-nav {
  display: flex;
  gap: 6px;
  padding: 0 16px 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.admin-nav a {
  padding: 8px 16px;
  background: rgba(16, 6, 40, 0.6);
  border: 1px solid var(--border);
  border-radius: 100px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-secondary);
  white-space: nowrap;
  transition: all 0.2s;
}

.admin-nav a.active {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  border-color: transparent;
  color: #fff;
}

/* ─── Animations ─── */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.fade-in { animation: fadeIn 0.3s ease; }

@keyframes spin { to { transform: rotate(360deg); } }

.spinner {
  width: 32px;
  height: 32px;
  border: 3px solid var(--border);
  border-top-color: #ffc107;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  margin: 40px auto;
}

@media (prefers-reduced-motion: reduce) {
  .btn-play::after, .cashout-btn.ready::after, .hud-progress.complete::after { animation: none; display: none; }
  .fade-in { animation: none; }
}

/* ─── Scrollbar ─── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }

/* ─── Responsive ─── */
@media (min-width: 768px) {
  .container { max-width: 600px; }
  .stats-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ═══════════ Plataforma: folhas, carteira, depósito, indicar, bônus ═══════════ */
.ico-wrap { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.ico-wrap svg { display: block; }
.muted.vazio, .vazio { text-align: center; padding: 18px 8px; }
.dica { font-size: 0.82rem; color: var(--text-muted); margin: 6px 0 10px; }
.dica.centro, .centro { text-align: center; }
.rotulo { display: block; font-size: 0.85rem; font-weight: 600; color: var(--text-secondary); margin: 12px 0 6px; }
.carregando { text-align: center; color: var(--text-muted); padding: 18px; font-size: 0.9rem; }
.titulo-pagina { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.7rem; text-shadow: 0 3px 0 #250a4d; margin: 16px 0 12px; }
.pagina-miolo { padding-top: 4px; padding-bottom: 16px; display: flex; flex-direction: column; gap: 12px; }
.pagina-miolo > .card + .card { margin-top: 0; }
.link-simples { background: none; border: none; color: #b5ebff; font-weight: 600; margin: 14px auto 0; display: block; cursor: pointer; font-size: 0.92rem; }
.link-agente { justify-content: center; margin: 6px auto 0; }

/* folha (sobe de baixo no celular, centralizada no computador) */
body.com-folha { overflow: hidden; }
.folha-fundo {
  position: fixed; inset: 0; z-index: 300; display: flex; align-items: flex-end; justify-content: center;
  background: rgba(8, 2, 22, 0.62); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  animation: folha-fundo-in 0.18s ease-out;
}
.folha {
  position: relative; width: 100%; max-width: 480px; max-height: 92dvh; overflow-y: auto; -webkit-overflow-scrolling: touch;
  background: linear-gradient(180deg, rgba(40, 18, 84, 0.98), rgba(20, 8, 46, 0.99));
  border: 1px solid rgba(216, 74, 255, 0.35); border-bottom: none; border-radius: 26px 26px 0 0;
  padding: 8px 18px calc(22px + var(--safe-bottom));
  box-shadow: 0 -20px 60px rgba(0, 0, 0, 0.5); animation: folha-in 0.24s cubic-bezier(.2, .9, .3, 1.1);
}
.folha-fundo.saindo { animation: folha-fundo-out 0.18s ease-in forwards; }
.folha-fundo.saindo .folha { animation: folha-out 0.18s ease-in forwards; }
.folha-alca { width: 44px; height: 5px; border-radius: 99px; background: rgba(255, 255, 255, 0.28); margin: 2px auto 8px; }
.folha-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.folha-titulo { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.45rem; letter-spacing: 0.02em; text-shadow: 0 3px 0 #250a4d; }
.folha-fechar { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.25); background: rgba(255, 255, 255, 0.06); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: none; }
.folha-corpo { display: flex; flex-direction: column; gap: 10px; }
.folha-corpo > .btn-play, .folha-corpo .btn-play { width: 100%; }
@media (min-width: 640px) {
  .folha-fundo { align-items: center; }
  .folha { border-radius: 26px; border-bottom: 1px solid rgba(216, 74, 255, 0.35); padding-bottom: 22px; }
}
@keyframes folha-in { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes folha-out { to { transform: translateY(40px); opacity: 0; } }
@keyframes folha-fundo-in { from { opacity: 0; } }
@keyframes folha-fundo-out { to { opacity: 0; } }

/* aviso rápido */
.aviso-rapido {
  position: fixed; left: 50%; bottom: calc(92px + var(--safe-bottom)); z-index: 400; transform: translate(-50%, 20px);
  max-width: min(440px, calc(100vw - 32px)); padding: 12px 18px; border-radius: 16px; font-weight: 600; font-size: 0.92rem; text-align: center;
  background: rgba(20, 8, 46, 0.96); border: 1px solid rgba(255, 255, 255, 0.25); color: #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
  opacity: 0; pointer-events: none; transition: opacity 0.2s, transform 0.2s;
}
.aviso-rapido.visivel { opacity: 1; transform: translate(-50%, 0); }
.aviso-rapido.ok { border-color: rgba(0, 230, 118, 0.6); }
.aviso-rapido.erro { border-color: rgba(255, 84, 112, 0.7); background: rgba(70, 6, 28, 0.96); }

/* linhas de informação e listas */
.linha-info { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-radius: 14px; background: rgba(8, 3, 24, 0.45); border: 1px solid rgba(255, 255, 255, 0.1); color: var(--text-secondary); font-size: 0.92rem; width: 100%; text-align: left; }
.linha-info > span { flex: none; }
.linha-info b { color: #fff; overflow-wrap: anywhere; text-align: right; min-width: 0; }
.linha-info.clicavel { cursor: pointer; font: inherit; font-size: 0.92rem; }
.linha-info.clicavel b::after { content: ' ›'; color: var(--text-muted); }
.lista-linhas { display: flex; flex-direction: column; }
.linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 2px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.linha:last-child { border-bottom: none; }
.linha-texto { display: flex; flex-direction: column; min-width: 0; }
.linha-texto b { font-size: 0.95rem; }
.linha-texto small { color: var(--text-muted); font-size: 0.78rem; }
.linha-valor { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; white-space: nowrap; }
.linha-valor b.entra { color: var(--green); }
.linha-valor b.sai { color: #ff9aaa; }
.linha-valor b.muted { color: var(--text-muted); font-weight: 500; font-size: 0.82rem; }
.etiqueta { font-size: 0.72rem; font-weight: 700; padding: 3px 9px; border-radius: 99px; border: 1px solid; white-space: nowrap; }
.etiqueta.boa { color: #8dffbf; border-color: rgba(0, 230, 118, 0.5); background: rgba(0, 230, 118, 0.12); }
.etiqueta.espera { color: #ffd27a; border-color: rgba(255, 193, 7, 0.5); background: rgba(255, 193, 7, 0.12); }
.etiqueta.ruim { color: #ffb3c0; border-color: rgba(255, 84, 112, 0.5); background: rgba(255, 84, 112, 0.12); }
.etiqueta.neutra { color: var(--text-muted); border-color: rgba(255, 255, 255, 0.2); }

/* campos de dinheiro */
.campo-com-prefixo { display: flex; align-items: center; gap: 8px; background: var(--bg-input); border: 1px solid rgba(255, 255, 255, 0.16); border-radius: 14px; padding: 0 8px 0 14px; }
.campo-com-prefixo:focus-within { border-color: var(--border-focus); box-shadow: 0 0 0 3px var(--accent-glow); }
.campo-com-prefixo > span { font-family: var(--font-display); font-weight: 800; color: var(--gold); }
.campo-com-prefixo .form-input { border: none; background: transparent; box-shadow: none; padding-left: 0; }
.campo-dinheiro { font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; }

/* chip do saldo (toque abre o depósito) e sino */
.chip-depositar { cursor: pointer; font-size: 0.95rem; }
.chip-mais { width: 22px; height: 22px; border-radius: 50%; background: linear-gradient(180deg, #7dffb4, #00c35a); color: #052a12; font-weight: 900; display: inline-flex; align-items: center; justify-content: center; margin-left: 2px; }
.navbar .game-icon-btn, .landing-actions .game-icon-btn { flex: 0 0 44px; width: 44px; height: 44px; }
.sino { position: relative; }
.sino-badge { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 99px; background: #ff3d6a; color: #fff; font-size: 0.7rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; border: 2px solid #1c0b38; }
.landing.logged .landing-actions { gap: 6px; }

/* depósito */
.dep-saldo { text-align: center; color: var(--text-secondary); font-size: 0.9rem; }
.dep-saldo b { color: #fff; }
.faixa-bonus { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 16px; background: linear-gradient(135deg, rgba(255, 193, 7, 0.22), rgba(255, 120, 0, 0.12)); border: 1px solid rgba(255, 193, 7, 0.55); }
.faixa-bonus-pct { font-family: var(--font-cartoon); font-size: 1.6rem; color: var(--gold); text-shadow: 0 3px 0 #6a2e00; }
.faixa-bonus div { display: flex; flex-direction: column; font-size: 0.86rem; color: var(--text-secondary); }
.faixa-bonus b { color: #ffe082; }
.fichas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ficha { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 6px; border-radius: 16px; cursor: pointer; background: rgba(16, 6, 40, 0.65); border: 1.5px solid rgba(255, 255, 255, 0.2); color: #fff; font-family: var(--font-display); }
.ficha b { font-size: 1.1rem; font-weight: 800; }
.ficha small { font-size: 0.68rem; color: #8dffbf; font-weight: 700; font-family: var(--font-body); }
.ficha.com-bonus { border-color: rgba(0, 230, 118, 0.4); }
.ficha.marcada { border-color: #ffc107; background: rgba(70, 36, 0, 0.6); box-shadow: 0 0 16px rgba(255, 193, 7, 0.35); }
.regra-rollover { font-size: 0.8rem; color: var(--text-muted); text-align: center; line-height: 1.45; }
.pix-topo { display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; }
.pix-valor { font-family: var(--font-display); font-weight: 800; color: var(--gold); font-size: 1.3rem; }
.pix-qr-caixa { background: #fff; border-radius: 18px; padding: 12px; width: min(240px, 70vw); margin: 4px auto; }
.pix-qr { display: block; width: 100%; height: auto; image-rendering: pixelated; }
.pix-codigo { width: 100%; padding: 12px; border-radius: 14px; background: rgba(8, 3, 24, 0.6); border: 1px dashed rgba(255, 255, 255, 0.3); color: var(--text-secondary); font-family: ui-monospace, monospace; font-size: 0.72rem; overflow-wrap: anywhere; text-align: left; max-height: 84px; overflow: hidden; cursor: pointer; }
.pix-status { display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--text-secondary); font-size: 0.88rem; }
.ponto-vivo { width: 10px; height: 10px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 0 rgba(0, 230, 118, 0.6); animation: ponto-vivo 1.6s ease-out infinite; }
@keyframes ponto-vivo { 70% { box-shadow: 0 0 0 10px rgba(0, 230, 118, 0); } 100% { box-shadow: 0 0 0 0 rgba(0, 230, 118, 0); } }
.dep-pago { align-items: center; text-align: center; }
.dep-pago h3 { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.5rem; }
.pago-valor { font-family: var(--font-display); font-weight: 800; color: var(--green); font-size: 1.15rem; }
.pago-selo { margin: 4px auto; }
.dep-passo { display: flex; flex-direction: column; gap: 10px; }
.dep-passo[hidden] { display: none; }

/* gatilho do depósito: "FALTA POUCO!" */
.folha-oferta { border-color: rgba(255, 193, 7, 0.65); background: linear-gradient(180deg, rgba(70, 30, 110, 0.99), rgba(26, 8, 52, 0.99)); }
.oferta { display: flex; flex-direction: column; gap: 10px; text-align: center; }
.oferta-selo { align-self: center; font-family: var(--font-cartoon); font-size: 1.1rem; padding: 6px 16px 3px; border-radius: 99px; color: #3a1d00; background: linear-gradient(180deg, #fff09a, #ffc107 55%, #ff9800); box-shadow: 0 6px 18px rgba(255, 193, 7, 0.45); }
.oferta-sub { color: var(--text-secondary); }
.oferta-conta { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 6px; padding: 12px; border-radius: 16px; background: rgba(8, 3, 24, 0.5); }
.oferta-conta > div { display: flex; flex-direction: column; }
.oferta-conta small { font-size: 0.72rem; color: var(--text-muted); }
.oferta-conta b { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; }
.oferta-mais { color: var(--green); font-weight: 800; font-size: 0.9rem; }
.oferta-para { color: var(--gold); }
.oferta-joga { font-size: 1rem; color: var(--text-secondary); }
.oferta-joga b { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.5rem; color: var(--green); text-shadow: 0 2px 0 #053a1a; }

/* conta, saque */
.form-chave, .form-saque { display: flex; flex-direction: column; gap: 10px; }
.form-chave .form-group, .form-saque .form-group { margin-bottom: 0; }
.saldo-grande { display: flex; flex-direction: column; align-items: center; }
.saldo-grande small { color: var(--text-muted); }
.saldo-grande b { font-family: var(--font-display); font-weight: 800; font-size: 2rem; color: var(--green); }
.alerta-rollover { padding: 12px 14px; border-radius: 14px; background: rgba(255, 193, 7, 0.12); border: 1px solid rgba(255, 193, 7, 0.45); color: var(--text-secondary); font-size: 0.88rem; }
.alerta-rollover b { color: #ffd27a; }

/* carteira */
.carteira-hero, .comissao-hero { text-align: center; display: flex; flex-direction: column; gap: 6px; }
.carteira-hero small, .comissao-hero > small { color: var(--text-muted); }
.carteira-hero > b, .comissao-hero > b.grande { font-family: var(--font-cartoon); font-weight: 400; font-size: 2.4rem; color: var(--green); text-shadow: 0 3px 0 #053a1a, 0 0 22px rgba(0, 230, 118, 0.35); }
.carteira-botoes { display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; margin-top: 6px; }
.carteira-botoes .btn { padding: 15px 10px; }
.conta-cartao { display: flex; flex-direction: column; gap: 8px; }
.conta-cartao .card-title { margin-bottom: 4px; }
.comissao-numeros { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.comissao-numeros > div { padding: 10px; border-radius: 14px; background: rgba(8, 3, 24, 0.45); display: flex; flex-direction: column; }
.comissao-numeros small { color: var(--text-muted); font-size: 0.75rem; }
.comissao-numeros b { font-family: var(--font-display); font-weight: 800; }

/* indicar */
.convite { text-align: center; display: flex; flex-direction: column; gap: 10px; background: linear-gradient(160deg, rgba(138, 92, 255, 0.35), rgba(26, 11, 54, 0.75)); }
.convite h3 { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.5rem; text-shadow: 0 3px 0 #250a4d; }
.convite-link { width: 100%; padding: 12px; border-radius: 14px; border: 1px dashed rgba(255, 255, 255, 0.4); background: rgba(8, 3, 24, 0.55); color: #b5ebff; font-weight: 700; overflow-wrap: anywhere; cursor: pointer; font-size: 0.92rem; }
.convite-botoes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.funil { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; text-align: center; }
.funil > div { padding: 12px 6px; border-radius: 14px; background: rgba(8, 3, 24, 0.45); display: flex; flex-direction: column; }
.funil b { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.6rem; color: var(--gold); }
.funil small { color: var(--text-muted); font-size: 0.75rem; }

/* check-in */
.checkin { display: flex; flex-direction: column; gap: 12px; }
.checkin-dias { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.checkin-dia { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 4px; border-radius: 14px; background: rgba(8, 3, 24, 0.5); border: 1.5px solid rgba(255, 255, 255, 0.14); color: var(--text-secondary); }
.checkin-dia small { font-size: 0.68rem; color: var(--text-muted); }
.checkin-dia b { font-family: var(--font-display); font-weight: 800; color: #fff; font-size: 0.92rem; }
.checkin-dia.grande { grid-column: span 1; border-color: rgba(255, 193, 7, 0.5); }
.checkin-dia.hoje { border-color: #19f07a; background: rgba(0, 120, 60, 0.25); box-shadow: 0 0 14px rgba(0, 230, 118, 0.3); }
.checkin-dia.feito { opacity: 0.55; }
.checkin-ok { position: absolute; top: 4px; right: 6px; font-size: 0.62rem; color: var(--green); font-weight: 800; }

/* VIP */
.vip { display: flex; flex-direction: column; gap: 10px; }
.vip-topo { display: flex; align-items: center; gap: 12px; }
.vip-topo > div:nth-child(2) { flex: 1; display: flex; flex-direction: column; }
.vip-topo small { color: var(--text-muted); font-size: 0.75rem; }
.vip-topo b { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.35rem; }
.vip-pct { text-align: right; display: flex; flex-direction: column; }
.vip-pct b { color: var(--green); }
.vip-barra { height: 10px; border-radius: 99px; background: rgba(8, 20, 44, 0.6); border: 1px solid rgba(255, 255, 255, 0.3); overflow: hidden; }
.vip-barra i { display: block; height: 100%; background: linear-gradient(90deg, #ffc107, #ffe082); border-radius: 99px; }
.vip-bronze .vip-topo b { color: #f0a46a; } .vip-prata .vip-topo b { color: #e3e8f2; } .vip-ouro .vip-topo b { color: #ffd23f; } .vip-diamante .vip-topo b { color: #7fe3ff; }

/* notificações */
.lista-notificacoes { display: flex; flex-direction: column; gap: 8px; }
.notificacao { padding: 12px 14px; border-radius: 14px; background: rgba(8, 3, 24, 0.5); border: 1px solid rgba(255, 255, 255, 0.12); display: flex; flex-direction: column; gap: 4px; }
.notificacao.nova { border-color: rgba(255, 193, 7, 0.55); }
.notificacao p { color: var(--text-secondary); font-size: 0.9rem; white-space: pre-line; }
.notificacao small { color: var(--text-muted); font-size: 0.75rem; }

/* baú misterioso */
.bau-cartao { display: flex; flex-direction: column; gap: 10px; padding: 18px; border-radius: 20px; background: linear-gradient(160deg, rgba(120, 60, 10, 0.55), rgba(26, 11, 54, 0.85)); border: 1.5px solid rgba(255, 193, 7, 0.55); box-shadow: 0 0 26px rgba(255, 160, 40, 0.18); }
.bau-cartao.pronto { box-shadow: 0 0 30px rgba(255, 193, 7, 0.45); }
.bau-cabeca { display: flex; align-items: center; gap: 12px; }
.bau-cabeca h3 { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.3rem; color: #ffd23f; }
.bau-mini { width: 64px; flex: none; }
.bau-mini svg { width: 100%; height: auto; display: block; }
.bau-dias { display: flex; gap: 6px; justify-content: center; }
.bau-dias i { width: 26px; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, 0.15); }
.bau-dias i.feito { background: linear-gradient(90deg, #ffc107, #ffe082); }
.bau-segredo { display: flex; flex-direction: column; align-items: center; }
.bau-segredo small { color: var(--text-muted); font-size: 0.75rem; }
.bau-numero { font-family: var(--font-cartoon); font-weight: 400; font-size: 1.8rem; color: #ffe082; text-shadow: 0 3px 0 #6a2e00; font-variant-numeric: tabular-nums; }
.bau-aviso { text-align: center; color: var(--text-secondary); font-size: 0.88rem; }
.bau-historico { display: flex; flex-direction: column; gap: 6px; }
.bau-historico > small { color: var(--text-muted); }
.revela { position: fixed; inset: 0; z-index: 500; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: radial-gradient(circle at 50% 45%, #4a1f8a, #12052c 70%); padding: 24px; text-align: center; }
.revela-raios { position: absolute; width: 140vmax; height: 140vmax; background: repeating-conic-gradient(rgba(255, 210, 63, 0.14) 0 10deg, transparent 10deg 24deg); opacity: 0; transition: opacity 0.5s; pointer-events: none; }
.revela.aberta .revela-raios { opacity: 1; animation: raios-gira 14s linear infinite; }
@keyframes raios-gira { to { transform: rotate(360deg); } }
.revela-bau { position: relative; width: 180px; height: 170px; }
.revela-bau svg { position: absolute; left: 0; width: 100%; height: auto; }
.revela-bau .bau-corpo { bottom: 0; }
.revela-bau .bau-tampa { top: 22px; transition: transform 0.6s cubic-bezier(.2, .9, .3, 1.3), opacity 0.6s; }
.revela-bau.tremendo { animation: bau-treme 0.12s linear infinite; }
.revela-bau.aberto .bau-tampa { transform: translateY(-120px) rotate(-28deg); opacity: 0; }
@keyframes bau-treme { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
.revela-titulo { position: relative; font-family: var(--font-cartoon); font-size: 2rem; color: #fff; text-shadow: 0 4px 0 #250a4d; }
.revela-numero { position: relative; font-family: var(--font-cartoon); font-size: 3rem; color: #ffe082; text-shadow: 0 4px 0 #6a2e00, 0 0 30px rgba(255, 193, 7, 0.5); font-variant-numeric: tabular-nums; }
.revela .btn-play { position: relative; max-width: 320px; }
.semente { overflow-wrap: anywhere; font-family: ui-monospace, monospace; font-size: 0.7rem; margin-top: 10px; }

/* ─── Painel do agente (agente.html): mesmas peças do jogo, sem o menu de baixo ─── */
.chip-agente { display: inline-flex; flex-direction: column; align-items: flex-end; line-height: 1.1; padding: 4px 12px; border-radius: 14px; background: rgba(8, 4, 30, 0.5); border: 1px solid rgba(255, 193, 7, 0.35); }
.chip-agente small { font-size: 0.65rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.06em; }
.chip-agente b { font-family: var(--font-display); font-weight: 800; color: var(--gold); font-size: 0.95rem; }
.pagina-agente { padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
.funil-4 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 560px) { .funil-4 { grid-template-columns: repeat(4, 1fr); } }

@media (prefers-reduced-motion: reduce) {
  .folha, .folha-fundo, .revela-bau.tremendo, .revela.aberta .revela-raios, .ponto-vivo { animation: none !important; }
}
