/* 🎯 Flick Accuracy Test Stylesheet (style.css) */

:root {
  --test-accent: #00f0ff;
  --test-accent-soft: rgba(0, 240, 255, 0.12);
  --test-accent-border: rgba(0, 240, 255, 0.3);
  --arena-bg: #060912;
  --arena-border: rgba(0, 240, 255, 0.2);
}

html.light {
  --arena-bg: #060912;
  --arena-border: rgba(0, 240, 255, 0.3);
}

/* ── CRISP WHITE AIM CURSOR ── */
.flick-aim-arena,
.flick-aim-arena canvas,
.flick-aim-arena *,
body:has(#panelTask.active),
body:has(#panelTask.active) * {
  cursor: var(--cursor-fps-crosshair) !important;
}

.top-header .restart-pill,
.top-header button {
  cursor: pointer !important;
}

/* ── FULLSCREEN FIT-TO-SCREEN ARENA DURING GAMEPLAY ── */
body:has(#panelTask.active) {
  overflow: hidden !important;
}

body:has(#panelTask.active) header.panda-header,
body:has(#panelTask.active) .panda-nav,
body:has(#panelTask.active) footer.panda-footer,
body:has(#panelTask.active) .t-ambient-glow,
body:has(#panelTask.active) .t-seo-container,
body:has(#panelTask.active) .t-nav {
  display: none !important;
}

body:has(#panelTask.active) .t-shell {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body:has(#panelTask.active) .t-card {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: #060912 !important;
  box-shadow: none !important;
  z-index: 9999 !important;
  overflow: hidden !important;
}

body:has(#panelTask.active) #panelTask,
body:has(#panelTask.active) .t-task {
  position: absolute !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  overflow: hidden !important;
}

/* Arena Container - Fills Entire Viewport */
.flick-aim-arena {
  position: absolute;
  inset: 0;
  width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background-color: #060912;
  box-shadow: none !important;
  overflow: hidden;
  user-select: none;
}

/* Subtle Vignette Overlay */
.flick-aim-arena::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 40%, rgba(4, 7, 13, 0.75) 100%);
  pointer-events: none;
  z-index: 2;
}

#webgl-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

#webgl-container canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

/* ── MINIMALIST TOP HUD: TIMER & RESTART ONLY (NO LIVE STATS) ── */
.top-header {
  position: absolute !important;
  top: 14px !important;
  left: 16px !important;
  right: 16px !important;
  width: calc(100% - 32px) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  z-index: 30 !important;
  pointer-events: none !important;
  font-family: var(--font-m, 'JetBrains Mono', monospace);
}

.top-header .round-pill,
.top-header .header-actions,
.top-header .restart-pill {
  pointer-events: auto;
}

.header-actions {
  display: flex !important;
  align-items: center !important;
  margin-left: auto !important;
  pointer-events: auto !important;
}

.round-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  background: rgba(13, 18, 28, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}

.pulse-dot {
  width: 7px;
  height: 7px;
  background: var(--test-accent);
  border-radius: 50%;
  box-shadow: 0 0 8px var(--test-accent);
  animation: pulseDot 1.4s infinite ease-in-out;
}

@keyframes pulseDot {
  0%, 100% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.25); opacity: 1; }
}

#level {
  margin: 0;
  font-family: var(--font-m, monospace);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #ffffff;
}

.restart-pill {
  pointer-events: auto;
  background: rgba(239, 68, 68, 0.12) !important;
  border: 1px solid rgba(239, 68, 68, 0.35) !important;
  color: #f87171 !important;
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  transition: all 0.15s ease;
  margin-left: auto !important;
}

.restart-pill:hover {
  background: rgba(239, 68, 68, 0.25) !important;
  border-color: #ef4444 !important;
  color: #ffffff !important;
}

/* ── CENTER RESET GUIDE OVERLAY (100% Source Match) ── */
.center-reset-guide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 8;
  background: rgba(7, 9, 14, 0.35);
  pointer-events: none;
  user-select: none;
}

.reset-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 36px;
  height: 36px;
  border: 2px dashed #00f0ff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: ringPulse 1.8s infinite ease-in-out;
  box-shadow: 0 0 14px rgba(0, 240, 255, 0.35);
  transition: all 0.12s ease-out;
  box-sizing: border-box;
}

.reset-ring::after {
  content: '';
  width: 8px;
  height: 8px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 6px #00f0ff;
  transition: all 0.12s ease-out;
}

/* Green Ready State on Hover */
.reset-ring.ready {
  border-color: #00ff66 !important;
  border-style: solid !important;
  box-shadow: 0 0 24px #00ff66, inset 0 0 10px rgba(0, 255, 102, 0.5) !important;
  animation: none !important;
  transform: translate(-50%, -50%) scale(1.18);
}

.reset-ring.ready::after {
  background: #00ff66 !important;
  box-shadow: 0 0 10px #00ff66 !important;
}

.center-reset-guide.ready .reset-label {
  color: #00ff66 !important;
  text-shadow: 0 0 10px rgba(0, 255, 102, 0.7) !important;
}

.reset-label {
  position: absolute;
  top: calc(50% + 30px);
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-m, 'JetBrains Mono', monospace);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #00f0ff;
  text-shadow: 0 0 10px rgba(0, 240, 255, 0.6);
  white-space: nowrap;
  transition: all 0.12s ease-out;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
}

@keyframes ringPulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.9; }
  50% { transform: translate(-50%, -50%) scale(1.12); opacity: 0.6; }
}

/* ── VISUAL PREVIEW BOX IN INTRO PANEL ── */
.flick-preview-box {
  width: 100%;
  max-width: 320px;
  height: 150px;
  background: #060912;
  border: 1px solid var(--test-accent-border);
  border-radius: 12px;
  position: relative;
  overflow: hidden;
  margin: 16px auto 8px;
  box-shadow: inset 0 0 24px rgba(0, 240, 255, 0.08);
}

.flick-preview-center {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 22px;
  height: 22px;
  border: 1.5px dashed rgba(0, 240, 255, 0.6);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.flick-preview-target {
  position: absolute;
  width: 26px;
  height: 26px;
  background: #00f0ff;
  border-radius: 50%;
  box-shadow: 0 0 14px rgba(0, 240, 255, 0.8);
  transform: translate(-50%, -50%);
  animation: flickTargetCycle 5s linear infinite;
}

.flick-preview-click {
  position: absolute;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 5;
  color: #ffffff;
  animation: flickCursorCycle 5s linear infinite;
}

.flick-preview-click span {
  font-size: 20px;
  line-height: 1;
  display: block;
}

.flick-preview-caption {
  font-size: 12px;
  color: var(--text-muted, #94a3b8);
  text-align: center;
  margin-bottom: 16px;
}

@keyframes flickTargetCycle {
  0%, 15% { opacity: 0; transform: translate(-50%, -50%) scale(0.2); left: 78%; top: 32%; }
  18%, 42% { opacity: 1; transform: translate(-50%, -50%) scale(1); left: 78%; top: 32%; }
  45%, 65% { opacity: 0; transform: translate(-50%, -50%) scale(0.2); left: 22%; top: 68%; }
  68%, 92% { opacity: 1; transform: translate(-50%, -50%) scale(1); left: 22%; top: 68%; }
  95%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.2); left: 78%; top: 32%; }
}

@keyframes flickCursorCycle {
  0%, 15% { left: 50%; top: 50%; transform: translate(-35%, -15%) scale(1); }
  28% { left: 78%; top: 32%; transform: translate(-35%, -15%) scale(1); }
  32% { left: 78%; top: 32%; transform: translate(-35%, -15%) scale(0.82); }
  36% { left: 78%; top: 32%; transform: translate(-35%, -15%) scale(1); }
  50%, 65% { left: 50%; top: 50%; transform: translate(-35%, -15%) scale(1); }
  78% { left: 22%; top: 68%; transform: translate(-35%, -15%) scale(1); }
  82% { left: 22%; top: 68%; transform: translate(-35%, -15%) scale(0.82); }
  86% { left: 22%; top: 68%; transform: translate(-35%, -15%) scale(1); }
  100% { left: 50%; top: 50%; transform: translate(-35%, -15%) scale(1); }
}

/* ── BALANCED 4-METRIC TELEMETRY GRID ── */
.t-stats {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
}

@media (max-width: 680px) {
  .t-stats {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

