/* SharkCaptcha widget — self-hosted proof-of-work CAPTCHA.
   Theme-aware: follows the host page's light/dark, with sensible defaults. */
.sharkcaptcha{
  --sc-bg:#fafbfd; --sc-line:#d3dae6; --sc-line-strong:#c2cbdb;
  --sc-ink:#1d2536; --sc-muted:#5b6577; --sc-brand:#2b7de0;
  --sc-ok:#12b886; --sc-ok-ink:#0c8f6b;
  width:300px; max-width:100%;
  background:var(--sc-bg); border:1px solid var(--sc-line);
  border-radius:10px; padding:12px 14px;
  display:flex; align-items:center; gap:12px;
  font:15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--sc-ink); user-select:none; -webkit-font-smoothing:antialiased;
}
/* Theme is chosen per-widget via data-theme="light|dark|auto" (JS maps it to an
   sc-theme-* class). Light is the base default above. */

/* Explicit dark. */
.sharkcaptcha.sc-theme-dark{
  --sc-bg:#0f1521; --sc-line:#2a3446; --sc-line-strong:#3a465c;
  --sc-ink:#e7ecf5; --sc-muted:#9aa6bd; --sc-brand:#4f97ef;
  --sc-ok:#2ad19a; --sc-ok-ink:#37d6a2;
}
/* Auto — follow the visitor's OS preference. */
@media (prefers-color-scheme:dark){
  .sharkcaptcha.sc-theme-auto{
    --sc-bg:#0f1521; --sc-line:#2a3446; --sc-line-strong:#3a465c;
    --sc-ink:#e7ecf5; --sc-muted:#9aa6bd; --sc-brand:#4f97ef;
    --sc-ok:#2ad19a; --sc-ok-ink:#37d6a2;
  }
}

.sharkcaptcha *{box-sizing:border-box}
.sharkcaptcha .sc-box{width:26px;height:26px;flex:0 0 26px;position:relative;display:grid;place-items:center}
.sharkcaptcha .sc-check{
  appearance:none;-webkit-appearance:none;margin:0;width:24px;height:24px;
  border:2px solid var(--sc-line-strong);border-radius:5px;background:transparent;cursor:pointer;
  transition:border-color .15s ease;
}
.sharkcaptcha .sc-check:hover{border-color:var(--sc-brand)}
.sharkcaptcha .sc-check:focus-visible{outline:3px solid color-mix(in srgb,var(--sc-brand) 45%,transparent);outline-offset:2px}

.sharkcaptcha .sc-spin{width:24px;height:24px;display:none}
.sharkcaptcha .sc-spin circle{fill:var(--sc-ok)}
.sharkcaptcha.is-verifying .sc-spin{display:block;animation:sc-spin .9s linear infinite}
.sharkcaptcha.is-verifying .sc-check{display:none}
@keyframes sc-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.sharkcaptcha.is-verifying .sc-spin{animation-duration:2.4s}}

.sharkcaptcha .sc-ok{width:26px;height:26px;border-radius:50%;background:var(--sc-ok);display:none;place-items:center;color:#fff}
.sharkcaptcha .sc-ok svg{width:15px;height:15px}
.sharkcaptcha.is-success .sc-ok{display:grid}
.sharkcaptcha.is-success .sc-check{display:none}

.sharkcaptcha .sc-label{flex:1 1 auto;min-width:0}
.sharkcaptcha .sc-msg{display:none}
.sharkcaptcha.is-idle .sc-msg-idle{display:inline}
.sharkcaptcha.is-verifying .sc-msg-verify{display:inline}
.sharkcaptcha.is-success .sc-msg-success{display:inline;color:var(--sc-ok-ink);font-weight:600}
.sharkcaptcha.is-error .sc-msg-error{display:inline;color:#d6455d;font-weight:500;cursor:pointer;text-decoration:underline}

.sharkcaptcha .sc-brand{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto}
.sharkcaptcha .sc-brand img{height:26px;width:26px;display:block}
.sharkcaptcha .sc-brand .sc-nm{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--sc-muted);text-transform:uppercase;line-height:1}
.sharkcaptcha .sc-brand .sc-lk{font-size:9.5px;color:var(--sc-muted)}
.sharkcaptcha .sc-brand .sc-lk a{color:var(--sc-muted);text-decoration:none}
.sharkcaptcha .sc-brand .sc-lk a:hover{color:var(--sc-brand);text-decoration:underline}
