/* ============================================================
   Стили для PathCaptcha — Image Match Edition
   ============================================================ */
:root {
  /* Основная палитра с картинки */
  --kb-peach: #ED8F59;
  --kb-green: #4CAF50;
  --kb-blue-light: #B2DDEE;
  --kb-blue-mid: #64B5F6;
  --kb-gray: #CCCCCC;
  --kb-gray-dark: #999999;
  --kb-white: #FFFFFF;
  --kb-dark: #000000;
  --kb-top-green: #7ED321;

  /* Overlay */
  --kb-overlay-bg: color-mix(in srgb, var(--kb-white) 98%, var(--kb-blue-light));
  --kb-instruction-color: var(--kb-dark);

  /* Canvas */
  --kb-canvas-bg: var(--kb-white);
  --kb-canvas-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
  --kb-canvas-shadow-hover: 0 20px 48px rgba(0, 0, 0, 0.12);

  /* Старт */
  --kb-start-color: var(--kb-peach);
  --kb-start-stroke: var(--kb-white);
  --kb-start-ring-1: #E1F2FB;
  --kb-start-ring-2: #C2E4F6;
  
  /* Финиш */
  --kb-finish-color: var(--kb-green);
  --kb-finish-stroke: var(--kb-white);
  --kb-finish-glow: rgba(76, 175, 80, 0.5);

  /* Ложные пути */
  --kb-fake-path-color: var(--kb-gray);
  --kb-fake-ball-color: var(--kb-gray);
}

#kb-captcha-overlay {
  position: fixed;
  inset: 0;
  background: var(--kb-overlay-bg);
  z-index: 999999;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  font-family: 'Inter', Arial, sans-serif;
  opacity: 0;
  visibility: hidden;
  transform: scale(1);
  transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
              visibility 0.45s;
}

#kb-captcha-overlay.kb-visible {
  opacity: 1;
  visibility: visible;
}

.kb-captcha-instruction {
  color: var(--kb-instruction-color);
  font-size: clamp(13px, 4vw, 17px);
  margin-bottom: 24px;
  text-align: center;
  padding: 0 32px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: -0.01em;
}

#kb-captcha-canvas {
  border-radius: 20px;
  box-shadow: var(--kb-canvas-shadow);
  background: var(--kb-canvas-bg);
  border: none;
  cursor: grab;
  touch-action: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 120px);
}

#kb-captcha-canvas:hover {
  box-shadow: var(--kb-canvas-shadow-hover);
}

#kb-captcha-canvas:active {
  cursor: grabbing;
  transform: scale(0.99);
}

#kb-captcha-canvas.kb-error-shake {
  animation: kbShake 0.4s ease;
}

@keyframes kbShake {
  0%, 100% { transform: translateX(0); }
  20%      { transform: translateX(-6px); }
  40%      { transform: translateX(5px); }
  60%      { transform: translateX(-4px); }
  80%      { transform: translateX(3px); }
}