/* AUTO-BUILT by scripts/build-altcha-themes.mjs — ALTCHA v3 built-in themes + cap.bug.im custom. Do not edit by hand. */
[data-altcha-theme=aqua],altcha-widget[theme=aqua]{--altcha-checkbox-border-width:1.5px;--altcha-color-base:oklch(36.993% 0.14552 265.614);--altcha-color-base-content:oklch(96.183% 0.0235 227.909);--altcha-color-neutral:oklch(46.768% 0.15756 266.404);--altcha-color-neutral-content:var(--altcha-color-base-content);--altcha-color-primary:oklch(60.683% 0.10883 309.763);--altcha-color-primary-content:oklch(96.014% 0.0162 293.609);--altcha-border-color:light-dark(oklch(27.079% 0.14584 265.379),oklch(46.768% 0.15756 266.404));--altcha-input-background-color:light-dark(oklch(100% 0.00011 271.152),oklch(25.197% 0.00003 271.152));--altcha-input-color:light-dark(oklch(27.079% 0.14584 265.379),oklch(96.014% 0.0162 293.609));--altcha-switch-background-color:var(--altcha-input-background-color);--altcha-checkbox-border-color:var(--altcha-color-neutral);--altcha-spinner-color:var(--altcha-color-base-content)}
[data-altcha-theme=business],altcha-widget[theme=business]{--altcha-border-radius:6px;--altcha-border-width:0;--altcha-checkbox-border-width:1.5px;--altcha-color-base:light-dark(oklch(95.099% 0.00637 255.746),oklch(32.438% 0.02298 264.201));--altcha-color-base-content:light-dark(oklch(32.438% 0.02298 264.201),oklch(95.099% 0.00637 255.746));--altcha-input-background-color:light-dark(oklch(100% 0.00011 271.152),oklch(25.197% 0.00003 271.152))}
[data-altcha-theme=caramel],altcha-widget[theme=caramel]{--altcha-border-width:2px;--altcha-border-radius:12px;--altcha-border-color:var(--altcha-color-base-content);--altcha-color-base:light-dark(oklch(98.156% 0.01623 79.28),oklch(32.376% 0.03463 80.678));--altcha-color-base-content:light-dark(oklch(39.904% 0.12205 38.479),oklch(85.594% 0.05829 42.379));--altcha-checkbox-border-color:var(--altcha-color-base-content);--altcha-checkbox-border-width:var(--altcha-border-width);--altcha-input-background-color:light-dark(oklch(100% 0.00011 271.152),oklch(25.197% 0.00003 271.152));--altcha-checkbox-border-radius:50%;--altcha-popover-color:var(--altcha-border-color)}
[data-altcha-theme=cupcake],altcha-widget[theme=cupcake]{--altcha-border-width:2px;--altcha-border-radius:12px;--altcha-color-base:light-dark(oklch(97.816% 0.00342 38.025),oklch(21.06% 0.00803 17.645));--altcha-checkbox-border-color:light-dark(oklch(82.809% 0.10217 344.861),oklch(62.147% 0.1135 345.959));--altcha-checkbox-border-width:var(--altcha-border-width);--altcha-input-background-color:light-dark(oklch(100% 0.00011 271.152),oklch(25.197% 0.00003 271.152));--altcha-switch-background-color:var(--altcha-checkbox-border-color)}
[data-altcha-theme=cyberpunk],altcha-widget[theme=cyberpunk]{--altcha-border-color:var(--altcha-color-neutral);--altcha-border-width:2px;--altcha-border-radius:12px;--altcha-color-base:oklch(94.343% 0.17917 104.914);--altcha-color-base-content:oklch(23.042% 0.0647 269.34);--altcha-color-neutral:var(--altcha-color-base-content);--altcha-color-neutral-content:var(--altcha-color-base-content);--altcha-color-primary:oklch(69.603% 0.26545 340.482);--altcha-color-success:oklch(90.486% 0.15061 195.382);--altcha-color-success-content:var(--altcha-color-base-content);--altcha-checkbox-border-color:var(--altcha-color-neutral);--altcha-checkbox-border-width:var(--altcha-border-width);--altcha-input-background-color:light-dark(oklch(86.286% 0.16763 104.933),oklch(86.286% 0.16763 104.933));--altcha-input-color:var(--altcha-color-base-content);--altcha-switch-background-color:var(--altcha-input-background-color);--altcha-switch-toggle-color:var(--altcha-color-neutral);--altcha-popover-color:var(--altcha-border-color);--altcha-spinner-color:var(--altcha-color-base-content)}
[data-altcha-theme=lime],altcha-widget[theme=lime]{--altcha-color-base:oklch(98.65% 0.019 123.003);--altcha-color-base-content:oklch(27.44% 0.01383 131.799);--altcha-color-primary:oklch(77.94% 0.17114 110.922);--altcha-color-primary-content:var(--altcha-color-base-content);--altcha-color-neutral:oklch(76.243% 0.05879 130.835);--altcha-color-neutral-content:var(--altcha-color-base-content);--altcha-border-color:light-dark(oklch(76.243% 0.05879 130.835),oklch(98.884% 0.01122 128.94));--altcha-input-background-color:oklch(100% 0.00011 271.152);--altcha-input-color:var(--altcha-color-base-content);--altcha-spinner-color:var(--altcha-color-base-content)}
[data-altcha-theme=wireframe],altcha-widget[theme=wireframe]{--altcha-border-width:1px;--altcha-border-radius:0;--altcha-checkbox-border-radius:0;--altcha-input-border-radius:0;--altcha-color-neutral:light-dark(oklch(25.197% 0.00003 271.152),oklch(37.346% 0.00272 16.419));--altcha-color-neutral-content:light-dark(oklch(73.802% 0.00008 271.152),oklch(68.622% 0.00008 271.152));--altcha-switch-border-radius:4px;--altcha-switch-toggle-border-radius:2px;--altcha-switch-background-color:var(--altcha-color-neutral);--altcha-switch-toggle-color:var(--altcha-color-neutral-content);--altcha-spinner-color:var(--altcha-color-neutral-content)}

/* ===== cap.bug.im custom additions — appended after ALTCHA v3 built-in themes ===== *
 * ALTCHA v3 renders into LIGHT DOM (.altcha-logo / .altcha-footer are plain children of the
 * <altcha-widget> element), so we style/hide them with ordinary CSS. Built by
 * scripts/build-altcha-themes.mjs into public/altcha-themes.css (built-ins + this). */

/* The ALTCHA brand logo icon is dropped on every cap embed (replaced by the cap.bug.im attribution). */
.cap-captcha .altcha-logo {
  display: none !important;
}

/* "liquid-glass" — matches bug.im's form exactly: a single glass row holding a transparent widget
 * ([checkbox] 点击验证) on the left and a "cap.bug.im" wordmark tag (cap darker) on the right.
 * The widget's own footer is hidden; the tag is the attribution. Light/dark via color-scheme. */
.cap-captcha[data-cap-theme='liquid-glass'] {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  border-radius: 14px;
  background: light-dark(rgba(255, 255, 255, 0.5), rgba(38, 40, 48, 0.42));
  border: 1px solid light-dark(rgba(255, 255, 255, 0.85), rgba(255, 255, 255, 0.14));
  box-shadow:
    inset 0 1px 0 light-dark(rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.08)),
    0 10px 34px -8px rgba(20, 22, 30, 0.14);
  -webkit-backdrop-filter: blur(26px) saturate(185%);
  backdrop-filter: blur(26px) saturate(185%);
}
.cap-captcha[data-cap-theme='liquid-glass'] altcha-widget {
  flex: 1;
  min-width: 0;
  width: 100%;
  display: block;
  background: transparent;
  border: 0;
  --altcha-color-base: transparent;
  --altcha-color-base-content: light-dark(#16161a, #f4f5f7);
  --altcha-color-primary: #176b5c;
  --altcha-color-success: #176b5c;
  --altcha-color-neutral: light-dark(rgba(22, 22, 26, 0.62), rgba(244, 245, 247, 0.62));
  --altcha-checkbox-border-color: light-dark(rgba(22, 22, 26, 0.32), rgba(255, 255, 255, 0.34));
  --altcha-spinner-color: #176b5c;
  --altcha-border-width: 0;
  --altcha-max-width: 100%;
  --altcha-padding: 0;
}
/* ALTCHA's default 18px label reads oversized in the compact glass row — size it to match the host UI. */
.cap-captcha[data-cap-theme='liquid-glass'] altcha-widget label {
  font-size: 14px;
  line-height: 1.4;
}
.cap-captcha[data-cap-theme='liquid-glass'] .altcha-footer {
  display: none !important; /* the cap.bug.im tag is the attribution */
}

/* cap.bug.im wordmark tag (cap darker, .bug.im lighter) — mirrors the site nav wordmark. */
.cap-captcha .cap-tag {
  flex: none;
  font-size: 11px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.cap-captcha .cap-tag a {
  text-decoration: none;
}
.cap-captcha .cap-tag b {
  font-weight: 600;
  color: light-dark(#16161a, #f4f5f7);
}
.cap-captcha .cap-tag i {
  font-style: normal;
  color: light-dark(rgba(22, 22, 26, 0.4), rgba(244, 245, 247, 0.42));
}

/* ===== progress indicator (data-progress) =====
 * "spinner" (default): ALTCHA's own circle. "bar": a determinate fill pinned to the row's bottom edge
 * plus a % readout that takes over the cap.bug.im slot while verifying. NOTE: ALTCHA exposes no real
 * PoW progress, so the % is time-estimated (eases toward ~92%) and snaps to 100% on verification. */
.cap-captcha {
  position: relative;
}
.cap-captcha[data-progress='bar'] .cap-prog {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  border-radius: 3px;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.3s;
  background: light-dark(rgba(22, 22, 26, 0.08), rgba(255, 255, 255, 0.1));
}
.cap-captcha[data-progress='bar'].cap-verifying .cap-prog,
.cap-captcha[data-progress='bar'].cap-done .cap-prog {
  opacity: 1;
}
.cap-captcha[data-progress='bar'] .cap-prog-fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: 3px;
  background: var(--brand-green, #176b5c);
  transition: width 0.15s linear;
}
.cap-prog-pct {
  display: none;
  flex: none;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  color: var(--brand-green, #176b5c);
  white-space: nowrap;
}
.cap-captcha.cap-verifying .cap-prog-pct,
.cap-captcha.cap-done .cap-prog-pct {
  display: inline-block;
}
.cap-captcha[data-cap-theme='liquid-glass'].cap-verifying .cap-tag,
.cap-captcha[data-cap-theme='liquid-glass'].cap-done .cap-tag {
  display: none;
}
