/* ── Z3U5 Custom CAPTCHA Widget ────────────────────────────────────────────
   Fonts  : Poppins (labels, input) · Orbitron (question number)
   Colors : matches site theme — primary #00d4ff · secondary #ff0080
            dark bg #0a0a0a · light bg #1a1a1a
   ─────────────────────────────────────────────────────────────────────── */

/* ── Dark theme (admin login) ─────────────────────────────────────────── */
.captcha-widget {
    background: rgba(0, 212, 255, 0.04);
    border: 1px solid rgba(0, 212, 255, 0.2);
    border-radius: 10px;
    padding: 14px 16px;
    margin: 16px 0;
    transition: border-color 0.25s, box-shadow 0.25s;
    font-family: 'Poppins', sans-serif;
}

.captcha-widget:focus-within {
    border-color: rgba(0, 212, 255, 0.6);
    box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.1);
}

.captcha-label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(0, 212, 255, 0.6);
    margin-bottom: 10px;
}

.captcha-icon { font-size: 0.9rem; }

.captcha-challenge {
    display: flex;
    align-items: center;
    gap: 12px;
}

.captcha-question {
    font-family: 'Orbitron', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #00d4ff;
    letter-spacing: 0.06em;
    white-space: nowrap;
    min-width: 90px;
    text-shadow: 0 0 12px rgba(0, 212, 255, 0.35);
}

.captcha-input {
    flex: 1;
    padding: 9px 12px;
    border-radius: 7px;
    border: 1px solid rgba(0, 212, 255, 0.25);
    background: rgba(0, 0, 0, 0.4);
    color: #ffffff;
    font-family: 'Poppins', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    -moz-appearance: textfield;
    appearance: textfield;
}
.captcha-input::-webkit-inner-spin-button,
.captcha-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.captcha-input::placeholder {
    font-family: 'Poppins', sans-serif;
    color: rgba(255, 255, 255, 0.25);
}

.captcha-input:focus {
    border-color: #00d4ff;
    box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.15);
}

.captcha-input.captcha-shake {
    animation: captchaShake 0.35s ease;
    border-color: #ff0080 !important;
    box-shadow: 0 0 0 3px rgba(255, 0, 128, 0.15) !important;
}

.captcha-error {
    margin-top: 8px;
    font-family: 'Poppins', sans-serif;
    font-size: 0.76rem;
    font-weight: 500;
    color: #ff0080;
    display: flex;
    align-items: center;
    gap: 5px;
}

@keyframes captchaShake {
    0%,100% { transform: translateX(0); }
    20%      { transform: translateX(-6px); }
    40%      { transform: translateX(6px); }
    60%      { transform: translateX(-4px); }
    80%      { transform: translateX(4px); }
}

/* ── Light theme (public booking & contact forms on index.php) ─────────── */
.captcha-widget.captcha-light {
    background: rgba(0, 212, 255, 0.05);
    border-color: rgba(0, 212, 255, 0.3);
}

.captcha-widget.captcha-light:focus-within {
    border-color: #00d4ff;
    box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.12);
}

.captcha-widget.captcha-light .captcha-label {
    color: rgba(0, 212, 255, 0.75);
}

.captcha-widget.captcha-light .captcha-question {
    color: #00d4ff;
    text-shadow: none;
}

.captcha-widget.captcha-light .captcha-input {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(0, 212, 255, 0.35);
    color: #ffffff;
}

.captcha-widget.captcha-light .captcha-input::placeholder {
    color: rgba(255, 255, 255, 0.25);
}

.captcha-widget.captcha-light .captcha-input:focus {
    border-color: #00d4ff;
    box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.15);
}

.captcha-widget.captcha-light .captcha-input.captcha-shake {
    border-color: #ff0080 !important;
    box-shadow: 0 0 0 3px rgba(255, 0, 128, 0.12) !important;
}

.captcha-widget.captcha-light .captcha-error {
    color: #ff0080;
}