@font-face { font-family:Figtree; src:url('/assets/fonts/Figtree.ttf') format('truetype'); font-weight:300 900; font-display:swap; }
@font-face { font-family:Inter; src:url('/assets/fonts/Inter.ttf') format('truetype'); font-weight:100 900; font-display:swap; }
:root {
  --fundo1:var(--primary-200); --fundo2:var(--primary-300);
  --roxo:var(--primary-50); --roxo-e:var(--primary-200);
  --ouro:var(--warning-50); --rosa:var(--secondary-pink-50); --ciano:var(--secondary-cyan-50);
  --verde:var(--success-50); --vermelho:var(--error-50);
  --texto:#fff; --suave:var(--primary-25); --cartao:rgba(124,58,237,.2); --aro:rgba(196,181,253,.35);
  --stroke-gradient:linear-gradient(135deg,rgba(164,74,206,.8),#0099cc);
}
body, button, input, select { font-family:Figtree,system-ui,sans-serif; }
button, a, input, select { touch-action:manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline:3px solid var(--warning-50); outline-offset:4px; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
.btn { border-radius:var(--radius-xl); }
.btn.pri { background:var(--secondary-pink-50); border:3px solid transparent; background:linear-gradient(var(--secondary-pink-50),var(--secondary-pink-50)) padding-box,var(--stroke-gradient) border-box; }
.btn.pri:hover { background:var(--secondary-pink-200); }
.cartao, .voto { border-radius:var(--radius-3xl); }
.entrada, .campo input { border-radius:var(--radius-xl); }
.cat-p, .cat-btn { border-radius:999px; }
.cron { border-radius:999px; }
.selo, .letra.sm { border-radius:999px; }
.aviso { border-radius:var(--radius-lg); }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } }
[hidden] { display:none!important; }
.game-exit-bar { display:flex; justify-content:flex-end; padding:8px 16px 0; }
.game-exit-bar button,.exit-dialog button { font:600 16px Figtree,sans-serif; color:white; padding:12px 20px; border-radius:var(--radius-xl); border:2px solid var(--primary-25); background:var(--primary-300); min-height:44px; }
body.tv .game-exit-bar { position:fixed; bottom:16px; right:16px; z-index:5; padding:0; }
body.phone:has(.game-exit-bar:not([hidden])) #app { min-height:calc(100vh - 60px); }
.exit-dialog { width:min(560px,calc(100vw - 32px)); margin:auto; padding:32px; border:2px solid var(--primary-25); border-radius:var(--radius-3xl); background:var(--primary-300); color:white; }
.exit-dialog::backdrop { background:rgba(15,23,42,.8); }
.exit-dialog h2 { font-size:28px; margin-bottom:16px; }.exit-dialog p { line-height:1.55; margin-bottom:24px; }
.exit-actions { display:flex; gap:12px; flex-wrap:wrap; }.exit-actions button { flex:1; }.exit-dialog .exit-confirm { background:var(--secondary-pink-200); }
.exit-error { color:var(--error-0); }.exit-dialog button:disabled { opacity:.5; }
.departed { max-width:440px; margin:auto; padding:24px; text-align:center; display:flex; flex-direction:column; gap:20px; }
.departed h1 { font-size:32px; }.departed p { line-height:1.55; }.departed form { display:flex; flex-direction:column; gap:12px; }.departed input { text-transform:uppercase; }
