/* ===== TRIVIA TRIMAX — estilos compartidos ===== */
:root{
  --bg:#0a0a12; --card:rgba(255,255,255,.04); --card-br:rgba(255,255,255,.09);
  --orange:#ea7a2c; --orange2:#ffb347; --txt:#f3f0ea; --muted:#9a96a8;
  --green:#2ecc71; --red:#e74c3c;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:var(--txt);
  background:
    radial-gradient(1200px 700px at 80% -10%, rgba(234,122,44,.14), transparent 60%),
    radial-gradient(900px 600px at 0% 110%, rgba(155,89,182,.12), transparent 55%),
    var(--bg);
  min-height:100vh;-webkit-font-smoothing:antialiased}
.wrap{max-width:1180px;margin:0 auto;padding:20px;min-height:100vh;display:flex;flex-direction:column}
.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.logo{height:34px;opacity:.95}
.logo.lg{height:46px}
.owl{filter:drop-shadow(0 10px 30px rgba(234,122,44,.35));animation:float 3.5s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.muted{color:var(--muted)}
.hidden{display:none!important}

/* Inputs / botones */
.field{width:100%;max-width:340px;background:rgba(255,255,255,.06);border:1px solid var(--card-br);
  border-radius:14px;padding:15px 16px;color:var(--txt);font-size:17px;text-align:center;outline:none;margin:6px 0}
.field:focus{border-color:var(--orange)}
.btn{border:none;border-radius:14px;padding:14px 26px;font-weight:700;font-size:16px;cursor:pointer;
  background:linear-gradient(135deg,var(--orange),var(--orange2));color:#1a1208;transition:transform .12s,box-shadow .2s}
.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 22px rgba(234,122,44,.4)}
.btn:active{transform:translateY(0)}
.btn.ghost{background:rgba(255,255,255,.06);color:var(--txt);border:1px solid var(--card-br)}
.btn.danger{background:linear-gradient(135deg,#c0392b,#e74c3c);color:#fff}
.btn.sm{padding:9px 16px;font-size:14px}
.btn.block{width:100%;max-width:340px}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}

/* Código de sala */
.code-label{color:var(--muted);font-size:13px;letter-spacing:.2em;text-transform:uppercase}
.code{font-weight:800;letter-spacing:.16em;background:linear-gradient(135deg,var(--orange2),var(--orange));
  -webkit-background-clip:text;background-clip:text;color:transparent}

/* Opciones de pregunta */
.q-text{font-weight:700;line-height:1.3}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}
.opt{position:relative;border:none;border-radius:16px;padding:18px 16px;text-align:left;font-weight:600;color:#fff;
  cursor:pointer;transition:transform .12s,box-shadow .2s,filter .25s;display:flex;align-items:center;gap:12px;overflow:hidden}
.opt:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.35)}
.opt:disabled{cursor:default}
.opt .ico{width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.22);display:flex;
  align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.opt.c0{background:linear-gradient(135deg,#e74c3c,#c0392b)}
.opt.c1{background:linear-gradient(135deg,#3498db,#2471a3)}
.opt.c2{background:linear-gradient(135deg,#f1c40f,#d4ac0d);color:#2a2208}
.opt.c3{background:linear-gradient(135deg,#2ecc71,#229954)}
.opt.dim{filter:grayscale(.7) brightness(.45);transform:none}
.opt.right{outline:4px solid #fff;box-shadow:0 0 0 6px rgba(46,204,113,.5),0 0 40px rgba(46,204,113,.5);animation:rightPulse .6s}
@keyframes rightPulse{0%{transform:scale(1)}40%{transform:scale(1.04)}100%{transform:scale(1)}}
.opt.mine::after{content:'TÚ';position:absolute;right:10px;bottom:8px;font-size:10px;font-weight:800;
  letter-spacing:.1em;background:rgba(0,0,0,.35);padding:2px 7px;border-radius:999px}
.opt .dist{position:absolute;right:12px;top:10px;font-size:13px;background:rgba(0,0,0,.32);padding:2px 9px;border-radius:999px}
.cat-badge{font-size:12px;padding:4px 12px;border-radius:999px;background:rgba(234,122,44,.16);
  color:var(--orange2);border:1px solid rgba(234,122,44,.3);font-weight:600}

/* Cronómetro circular */
.timer-ring{position:relative;flex-shrink:0}
.timer-ring svg{transform:rotate(-90deg)}
.timer-ring .num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800}

/* Barra de respondidos */
.answered-bar{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px;width:100%}
.answered-fill{height:9px;border-radius:999px;background:rgba(255,255,255,.08);flex:1;overflow:hidden}
.answered-fill i{display:block;height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,var(--orange),var(--orange2));transition:width .4s}

/* Ranking */
.rank-list{display:flex;flex-direction:column;gap:9px;width:100%}
.rank-item{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.04);border:1px solid var(--card-br);
  border-radius:12px;padding:11px 15px;transition:transform .5s cubic-bezier(.2,.8,.2,1),background .3s}
.rank-item .pos{width:26px;font-weight:800;color:var(--muted);text-align:center}
.rank-item.top1{background:linear-gradient(135deg,rgba(241,196,15,.18),rgba(241,196,15,.05));border-color:rgba(241,196,15,.4)}
.rank-item.top1 .pos{color:#f1c40f}.rank-item.top2 .pos{color:#cbd5e1}.rank-item.top3 .pos{color:#d68910}
.rank-item .nm{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-item .sc{font-weight:800;color:var(--orange2);font-variant-numeric:tabular-nums}
.rank-item.me{outline:2px solid var(--orange)}

/* Pantalla de espera */
.standby{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.sb-big{font-weight:800;background:linear-gradient(135deg,var(--orange2),var(--orange));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.dots{display:flex;gap:11px;margin-top:8px}
.dots i{width:13px;height:13px;border-radius:50%;background:var(--orange2);animation:dotPulse 1.3s infinite ease-in-out}
.dots i:nth-child(2){animation-delay:.22s}.dots i:nth-child(3){animation-delay:.44s}
@keyframes dotPulse{0%,100%{transform:scale(.55);opacity:.35}50%{transform:scale(1);opacity:1}}

/* Feedback overlay */
.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:50;opacity:0;pointer-events:none}
.overlay.show{opacity:1;animation:fadeIn .25s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.fb-card{text-align:center;padding:34px 50px;border-radius:24px;backdrop-filter:blur(4px)}
.fb-card.ok{background:radial-gradient(circle,rgba(46,204,113,.22),rgba(10,10,18,.55))}
.fb-card.no{background:radial-gradient(circle,rgba(231,76,60,.22),rgba(10,10,18,.55))}
.fb-emoji{font-size:90px;animation:bounceIn .6s cubic-bezier(.2,1.5,.4,1)}
@keyframes bounceIn{0%{transform:scale(0) rotate(-30deg)}60%{transform:scale(1.25) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
.fb-title{font-size:38px;font-weight:800;margin-top:6px}
.fb-title.ok{color:var(--green)}.fb-title.no{color:var(--red)}
.fb-pts{font-size:20px;color:var(--orange2);font-weight:700;margin-top:4px}
/* Tarjeta especial de la pregunta de calentamiento (marca TRIMAX) */
.fb-card.practice{background:radial-gradient(circle,rgba(234,122,44,.30),rgba(10,10,18,.6));
  border:1px solid rgba(234,122,44,.45);box-shadow:0 0 60px rgba(234,122,44,.35)}
.fb-card.practice .fb-title{background:linear-gradient(135deg,var(--orange2),var(--orange));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.fb-brand{font-size:34px;font-weight:800;letter-spacing:.14em;margin-top:2px;
  background:linear-gradient(135deg,var(--orange2),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:bounceIn .6s .15s backwards}
.fb-sub{font-size:17px;color:var(--txt);font-weight:600;margin-top:12px;opacity:.95;animation:fadeIn .6s .4s backwards}

/* Podio */
.podium{display:flex;align-items:flex-end;gap:16px;justify-content:center}
.pod{display:flex;flex-direction:column;align-items:center;gap:8px;animation:rise .6s cubic-bezier(.2,1.2,.4,1) backwards}
.pod .av{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;color:#1a1208}
.pod .nm{font-weight:700;max-width:150px;text-align:center}
.pod .sc{color:var(--orange2);font-weight:700;font-size:14px}
.pod .bar{border-radius:14px 14px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;font-size:32px;font-weight:800}
.pod.p1 .av{background:linear-gradient(135deg,#f1c40f,#f39c12)}.pod.p1 .bar{height:170px;width:130px;background:linear-gradient(180deg,rgba(241,196,15,.35),rgba(241,196,15,.08))}
.pod.p2 .av{background:linear-gradient(135deg,#bdc3c7,#95a5a6)}.pod.p2 .bar{height:120px;width:130px;background:linear-gradient(180deg,rgba(189,195,199,.3),rgba(189,195,199,.06))}
.pod.p3 .av{background:linear-gradient(135deg,#e67e22,#d35400)}.pod.p3 .bar{height:88px;width:130px;background:linear-gradient(180deg,rgba(230,126,34,.3),rgba(230,126,34,.06))}
.pod.p1{order:2}.pod.p2{order:1}.pod.p3{order:3}
@keyframes rise{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}

/* Ruleta */
.wheel-box{position:relative}
.pointer{position:absolute;top:-8px;left:50%;transform:translateX(-50%);z-index:3;color:var(--orange2);
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}
.wheel{border-radius:50%;border:6px solid rgba(255,255,255,.1);box-shadow:0 0 50px rgba(234,122,44,.3);
  transition:transform 5.2s cubic-bezier(.12,.7,.05,1)}
.winner-name{font-weight:800;color:#f1c40f;animation:bounceIn .6s;text-align:center}

/* Confetti */
.confetti{position:fixed;width:10px;height:14px;top:-20px;z-index:60;pointer-events:none;border-radius:2px}
@keyframes fall{to{transform:translateY(105vh) rotate(720deg);opacity:.9}}

/* Status pill (control) */
.pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;padding:5px 12px;border-radius:999px;
  background:rgba(255,255,255,.06);border:1px solid var(--card-br)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.dot.off{background:var(--muted)}
.panel{background:var(--card);border:1px solid var(--card-br);border-radius:20px;padding:20px;backdrop-filter:blur(10px)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#1a1a28;border:1px solid var(--card-br);
  padding:12px 20px;border-radius:12px;z-index:80;opacity:0;transition:opacity .3s}
.toast.show{opacity:1}
