/**
 * cdp-captcha.css — CDPCaptcha | Widget styles (flat, square, 1px navy border, light/dark/auto)
 * Version : 1.0.0 2026-10-13 — by CTPF (1082: initial release)
 * Infos   : Size via --cdp-captcha-width (default 320px) or data-width. Theme via data-theme="light|dark|auto".
 *           States via data-state: unactivated, requesting, solving, solved, completed, expired, error, reset, destroyed.
 */
.cdp-captcha {
    --cdp-captcha-width: 320px;
    --cdp-navy: #15224e;
    --cdp-red: #c40000;
    --cdp-green: #198754;
    --cdp-bg: #ffffff;
    --cdp-fg: #15224e;
    --cdp-line: #15224e;
    --cdp-track: #e6e9ef;
    box-sizing: border-box;
    display: flex;
    align-items: stretch;
    position: relative;
    width: var(--cdp-captcha-width);
    max-width: 100%;
    min-height: 64px;
    margin: 0;
    padding: 0;
    color: var(--cdp-fg);
    background: var(--cdp-bg);
    border: 1px solid var(--cdp-line);
    border-radius: 0;
    font: 400 14px/1.35 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    text-align: left;
    overflow: hidden;
}
.cdp-captcha[data-theme="dark"] {
    --cdp-bg: #15224e;
    --cdp-fg: #ffffff;
    --cdp-line: #15224e;
    --cdp-track: #2f435b;
}
@media (prefers-color-scheme: dark) {
    .cdp-captcha[data-theme="auto"] {
        --cdp-bg: #15224e;
        --cdp-fg: #ffffff;
        --cdp-line: #15224e;
        --cdp-track: #2f435b;
    }
}
.cdp-captcha * { box-sizing: border-box; }
.cdp-captcha__action {
    flex: 0 0 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    color: var(--cdp-fg);
    background: transparent;
    border: 0;
    border-right: 1px solid var(--cdp-line);
    border-radius: 0;
    cursor: pointer;
    font: inherit;
}
.cdp-captcha[data-theme="dark"] .cdp-captcha__action,
.cdp-captcha[data-theme="auto"] .cdp-captcha__action { border-right-color: rgba(255, 255, 255, .35); }
.cdp-captcha__action:disabled { cursor: default; }
.cdp-captcha__action:focus-visible { outline: 2px solid var(--cdp-red); outline-offset: -4px; }
.cdp-captcha__icon { display: block; width: 22px; height: 22px; }
.cdp-captcha__icon svg { display: block; width: 22px; height: 22px; }
.cdp-captcha__body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    min-width: 0;
    padding: 10px 12px 10px 12px;
}
.cdp-captcha__text { font-weight: 700; overflow-wrap: anywhere; }
.cdp-captcha__bar { height: 4px; background: var(--cdp-track); }
.cdp-captcha__fill { width: 0; height: 100%; background: var(--cdp-navy); transition: width 120ms linear; }
.cdp-captcha[data-theme="dark"] .cdp-captcha__fill,
.cdp-captcha[data-theme="auto"] .cdp-captcha__fill { background: #ffffff; }
.cdp-captcha__brand {
    position: absolute;
    right: 8px;
    bottom: 3px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    opacity: .75;
}
.cdp-captcha[data-state="completed"] { --cdp-line: #198754; }
.cdp-captcha[data-state="completed"] .cdp-captcha__action,
.cdp-captcha[data-state="completed"] .cdp-captcha__text { color: var(--cdp-green); }
.cdp-captcha[data-state="completed"] .cdp-captcha__fill { background: var(--cdp-green); }
.cdp-captcha[data-state="error"],
.cdp-captcha[data-state="expired"] { --cdp-line: #c40000; }
.cdp-captcha[data-state="error"] .cdp-captcha__action,
.cdp-captcha[data-state="error"] .cdp-captcha__text,
.cdp-captcha[data-state="expired"] .cdp-captcha__action,
.cdp-captcha[data-state="expired"] .cdp-captcha__text { color: var(--cdp-red); }
.cdp-captcha[data-theme="dark"][data-state="completed"] .cdp-captcha__action,
.cdp-captcha[data-theme="dark"][data-state="completed"] .cdp-captcha__text { color: #5fd38a; }
.cdp-captcha[data-theme="dark"][data-state="error"] .cdp-captcha__action,
.cdp-captcha[data-theme="dark"][data-state="error"] .cdp-captcha__text,
.cdp-captcha[data-theme="dark"][data-state="expired"] .cdp-captcha__action,
.cdp-captcha[data-theme="dark"][data-state="expired"] .cdp-captcha__text { color: #ff6b6b; }
.cdp-captcha__pulse { animation: cdp-captcha-pulse 900ms steps(2, end) infinite; }
@keyframes cdp-captcha-pulse { 0% { opacity: 1; } 50% { opacity: .25; } 100% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .cdp-captcha__pulse { animation: none; }
    .cdp-captcha__fill { transition: none; }
}
