/* Email Spam Shield — Frontend Inline Validator UI */

.ess-indicator {
    display: block;
    font-size: 13px;
    margin-top: 5px;
    padding: 5px 10px;
    border-radius: 5px;
    font-weight: 500;
    line-height: 1.4;
    transition: opacity .2s;
}

.ess-indicator--checking {
    color: #555;
    background: #f0f0f0;
}
.ess-indicator--checking::before {
    content: '';
    display: inline-block;
    width: 10px; height: 10px;
    border: 2px solid #aaa;
    border-top-color: #555;
    border-radius: 50%;
    animation: ess-spin .7s linear infinite;
    margin-right: 6px;
    vertical-align: middle;
}

.ess-indicator--valid {
    color: #1a6b3c;
    background: #d4edda;
}
.ess-indicator--valid::before  { content: '✓  '; }

.ess-indicator--flagged {
    color: #856404;
    background: #fff3cd;
}
.ess-indicator--flagged::before { content: '⚠  '; }

.ess-indicator--blocked {
    color: #842029;
    background: #f8d7da;
    border: 1px solid #f5c2c7;
}
.ess-indicator--blocked::before { content: '✕  '; }

/* Shake animation on blocked submit attempt */
@keyframes ess-shake {
    0%, 100% { transform: translateX(0); }
    20%       { transform: translateX(-6px); }
    40%       { transform: translateX(6px); }
    60%       { transform: translateX(-4px); }
    80%       { transform: translateX(4px); }
}
.ess-shake { animation: ess-shake .5s ease; }

/* Highlight the blocked input field itself */
input[aria-invalid="true"] {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 3px rgba(220,53,69,.15) !important;
    outline: none;
}

@keyframes ess-spin {
    to { transform: rotate(360deg); }
}

/* Email Spam Shield — Honeypot field (must stay invisible to humans) */
.ess-hp-wrap {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    height: 0;
    width: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
}
