/* ============================================================
   KK 免费滑块验证码 kk-slider.css
   简化版：滑到最右侧即通过；填充区域文字自动变白，保证清晰
   ============================================================ */

.kk-slider-captcha {
  position: relative;
  margin-bottom: 1rem;
  user-select: none;
  -webkit-user-select: none;
}

.kk-slider-track {
  position: relative;
  height: 46px;
  background: #f3f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  overflow: hidden;
  transition: background .2s, border-color .2s;
}

/* 已拖过的填充条 */
.kk-slider-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0;
  background: linear-gradient(90deg, #2563eb, #3b82f6);
}

/* 提示文字（未填充区域：深色，清晰可读） */
.kk-slider-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .3px;
  color: #475569;
  z-index: 2;
  pointer-events: none;
  padding: 0 14px;
  white-space: nowrap;
}

/* 填充区域内的文字：白色，只在填充宽度内显示（--kk-fill 由 JS 更新） */
.kk-slider-text-onfill {
  color: #ffffff;
  z-index: 3;
  clip-path: inset(0 calc(100% - var(--kk-fill, 0%)) 0 0);
}

/* 可拖动手柄 */
.kk-slider-handle {
  position: absolute;
  left: 0;
  top: 2px;
  width: 44px;
  height: 42px;
  background: #ffffff;
  border-radius: 9px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 2px 8px rgba(15, 23, 42, .16);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #2563eb;
  font-size: 16px;
  cursor: grab;
  z-index: 4;
  transition: color .2s, box-shadow .2s, border-color .2s;
  touch-action: none;
}
.kk-slider-handle:hover {
  box-shadow: 0 3px 12px rgba(37, 99, 235, .28);
  border-color: #bfdbfe;
}
.kk-slider-handle:active {
  cursor: grabbing;
  box-shadow: 0 2px 6px rgba(37, 99, 235, .3);
}

/* 验证成功 */
.kk-slider-done .kk-slider-track {
  background: #ecfdf5;
  border-color: #6ee7b7;
}
.kk-slider-done .kk-slider-fill {
  background: linear-gradient(90deg, #16a34a, #22c55e);
}
.kk-slider-done .kk-slider-text {
  color: #15803d;
  font-weight: 600;
}
.kk-slider-done .kk-slider-text-onfill {
  color: #ffffff;
}
.kk-slider-done .kk-slider-handle {
  color: #16a34a;
  border-color: #bbf7d0;
}

/* 验证失败（抖动） */
.kk-slider-fail .kk-slider-track {
  background: #fef2f2;
  border-color: #fca5a5;
}
.kk-slider-fail .kk-slider-fill {
  background: linear-gradient(90deg, #ef4444, #f87171);
}
.kk-slider-fail .kk-slider-text {
  color: #dc2626;
}
.kk-slider-fail .kk-slider-text-onfill {
  color: #ffffff;
}
.kk-slider-fail .kk-slider-handle {
  color: #ef4444;
  border-color: #fecaca;
}
.kk-slider-fail .kk-slider-captcha,
.kk-slider-fail {
  animation: kk-slider-shake .4s;
}
@keyframes kk-slider-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}

/* ============ 暗黑模式 ============ */
body.dark-open .kk-slider-track {
  background: #1e293b;
  border-color: #334155;
}
body.dark-open .kk-slider-text {
  color: #aab6c8;
}
body.dark-open .kk-slider-text-onfill {
  color: #ffffff;
}
body.dark-open .kk-slider-handle {
  background: #334155;
  border-color: #3f4d63;
  color: #60a5fa;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .4);
}
body.dark-open .kk-slider-handle:hover {
  border-color: #3b82f6;
}
body.dark-open .kk-slider-done .kk-slider-track {
  background: #052e16;
  border-color: #14532d;
}
body.dark-open .kk-slider-done .kk-slider-text {
  color: #4ade80;
}
body.dark-open .kk-slider-done .kk-slider-handle {
  color: #4ade80;
  border-color: #14532d;
}
body.dark-open .kk-slider-fail .kk-slider-track {
  background: #2a0f0f;
  border-color: #7f1d1d;
}
body.dark-open .kk-slider-fail .kk-slider-text {
  color: #f87171;
}
body.dark-open .kk-slider-fail .kk-slider-handle {
  color: #f87171;
  border-color: #7f1d1d;
}

/* ============ 手机端 ============ */
@media (max-width: 575.98px) {
  .kk-slider-track { height: 44px; }
  .kk-slider-handle { height: 40px; width: 42px; top: 2px; }
  .kk-slider-text { font-size: 13px; }
}
