/* ============================================================
   真人对战（duel.html）
   ============================================================ */

.duel-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.duel-card{
  background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;
}
.duel-card-t{font-size:15px;font-weight:700;margin-bottom:6px}
.duel-card-p{font-size:12.5px;color:var(--muted);line-height:1.7;margin:0 0 12px}
.duel-join-row{display:flex;gap:9px}
.duel-code{
  flex:1;min-width:0;padding:9px 12px;border-radius:10px;border:1px solid var(--line);
  background:var(--panel-2);color:var(--text);font-size:16px;letter-spacing:6px;
  font-family:"SF Mono",Consolas,monospace;outline:none;
}
.duel-code:focus{border-color:var(--accent)}
.duel-err{
  margin-top:14px;padding:10px 14px;border-radius:10px;font-size:13px;
  border:1px solid rgba(255,123,114,.45);background:rgba(255,123,114,.1);color:var(--red);
}
.duel-err[hidden]{display:none}

/* 房间 */
.duel-topline{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-size:12.5px;color:var(--muted);margin:4px 0 16px;
}
.duel-topline b{color:var(--text);letter-spacing:2px;font-family:"SF Mono",Consolas,monospace}
.duel-state{margin-left:auto}
.duel-vs-wrap{
  display:grid;grid-template-columns:1fr 120px 1fr;gap:12px;align-items:stretch;
}
.duel-player{
  border:2px solid rgba(90,169,255,.55);border-radius:16px;
  background:linear-gradient(160deg,rgba(90,169,255,.12),rgba(90,169,255,.04));
  padding:16px 16px 14px;position:relative;min-height:132px;
}
/* 巅峰分 > 1800：彩色框（与巅峰榜一致） */
.duel-player.crown{
  border-color:rgba(167,139,250,.8);
  background:linear-gradient(135deg,rgba(255,95,109,.18),rgba(255,195,113,.18),rgba(71,207,115,.18),rgba(74,158,255,.18),rgba(167,139,250,.2));
  box-shadow:0 0 18px rgba(167,139,250,.28);
}
.duel-player.crown .dp-tag{
  background:rgba(167,139,250,.3);border-color:rgba(167,139,250,.65);color:#efe6ff;
}
.duel-player.ready{border-color:rgba(61,220,151,.7)}
/* 已准备角标 */
.dp-ready{
  position:absolute;right:12px;top:9px;font-size:11.5px;padding:2px 9px;border-radius:9px;
  background:rgba(61,220,151,.16);border:1px solid rgba(61,220,151,.55);color:var(--teal);
  font-weight:700;letter-spacing:.3px;
}
.dp-ready[hidden]{display:none}
.duel-player.empty{border-style:dashed;border-color:rgba(90,169,255,.4);opacity:.75}
html[data-theme="light"] .duel-player.crown{background:linear-gradient(135deg,rgba(255,95,109,.1),rgba(255,195,113,.1),rgba(71,207,115,.1),rgba(74,158,255,.1),rgba(167,139,250,.12))}
html[data-theme="light"] .duel-player.crown .dp-tag{color:#5b3fc4;background:rgba(167,139,250,.14)}
.duel-player .dp-tag{
  position:absolute;top:-10px;left:14px;font-size:11px;padding:1px 8px;border-radius:8px;
  background:rgba(90,169,255,.25);color:#bcdcff;border:1px solid rgba(90,169,255,.5);
}
html[data-theme="light"] .duel-player{background:linear-gradient(160deg,rgba(31,111,208,.08),rgba(31,111,208,.03))}
html[data-theme="light"] .duel-player .dp-tag{color:#1f6fd0;background:rgba(31,111,208,.12)}
.dp-name{font-size:17px;font-weight:700;margin:6px 0 10px;word-break:break-all}
.dp-stats{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--text-2)}
.dp-stats b{color:var(--text);font-size:13.5px}
.duel-vs{
  display:grid;place-items:center;font-size:34px;font-weight:900;font-style:italic;
  letter-spacing:2px;color:#8fd0ff;text-shadow:0 0 18px rgba(90,169,255,.55);
}
html[data-theme="light"] .duel-vs{color:#1f6fd0;text-shadow:0 0 14px rgba(31,111,208,.35)}

.duel-ready-row{display:flex;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}
.duel-hint{font-size:12px;color:var(--muted)}

/* 对战 HUD */
.duel-hud{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;
  padding:10px 14px;border-radius:12px;border:1px solid rgba(90,169,255,.35);
  background:rgba(90,169,255,.07);font-size:12.5px;color:var(--text-2)}
.hud-side{display:flex;align-items:center;gap:8px}
.hud-side.right{justify-content:flex-end}
.hud-side b{color:var(--text);font-size:17px;font-variant-numeric:tabular-nums}
.hud-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}
.hud-mid{display:flex;gap:10px;align-items:center;font-variant-numeric:tabular-nums}
.hud-timer{color:var(--amber);font-weight:700}
.hud-timer.urgent{color:var(--red)}

/* 对战中：四周蓝色高亮框 */
body.duel-live::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:200;border-radius:8px;
  border:3px solid rgba(90,169,255,.9);
  box-shadow:inset 0 0 34px rgba(90,169,255,.35), inset 0 0 8px rgba(90,169,255,.65);
  animation:duelPulse 1.8s ease-in-out infinite;
}
@keyframes duelPulse{0%,100%{opacity:.72}50%{opacity:1}}

.duel-auto{font-size:11.5px;color:var(--muted);margin:10px 0 0;letter-spacing:.3px}

@media (max-width:760px){  .duel-grid{grid-template-columns:1fr}
  .duel-vs-wrap{grid-template-columns:1fr;gap:10px}
  .duel-vs{font-size:26px;padding:2px 0}
  .duel-player{min-height:auto}
  .duel-hud{grid-template-columns:1fr auto;grid-auto-rows:auto}
  .hud-mid{grid-column:1 / -1;justify-content:center}
}
