/**
 * GravityForms VIES BTW-nummer Validator — field styles
 */

:root {
    --gf-vies-valid:          #1a7f37;
    --gf-vies-valid-bg:       #dafbe1;
    --gf-vies-valid-border:   #82e0a0;
    --gf-vies-invalid:        #cf222e;
    --gf-vies-invalid-bg:     #fff0f0;
    --gf-vies-invalid-border: #ffb8b8;
    --gf-vies-warning:        #7d4e17;
    --gf-vies-warning-bg:     #fff8e6;
    --gf-vies-warning-border: #f5c842;
    --gf-vies-loading:        #57606a;
    --gf-vies-info-bg:        #f6f8fa;
    --gf-vies-info-border:    #d0d7de;
    --gf-vies-radius:         6px;
    --gf-vies-font-size:      0.84rem;
}

/* ---- Status message ---- */
.gf-vies-status {
    display: none;
    align-items: center;
    gap: 7px;
    margin-top: 10px !important;
    margin-bottom: 0 !important;
    padding: 8px 12px;
    border-radius: var(--gf-vies-radius);
    font-size: var(--gf-vies-font-size);
    line-height: 1.4;
    border: 1px solid transparent;
    box-sizing: border-box;
}

/* Only show when it has content */
.gf-vies-status.gf-vies-loading,
.gf-vies-status.gf-vies-valid,
.gf-vies-status.gf-vies-invalid,
.gf-vies-status.gf-vies-warning {
    display: flex;
}

.gf-vies-status.gf-vies-loading {
    color: var(--gf-vies-loading);
    background: #f3f4f6;
    border-color: #d1d5db;
    font-style: italic;
}

.gf-vies-status.gf-vies-valid {
    color: var(--gf-vies-valid);
    background: var(--gf-vies-valid-bg);
    border-color: var(--gf-vies-valid-border);
    font-weight: 600;
}

.gf-vies-status.gf-vies-invalid {
    color: var(--gf-vies-invalid);
    background: var(--gf-vies-invalid-bg);
    border-color: var(--gf-vies-invalid-border);
    font-weight: 600;
}

.gf-vies-status.gf-vies-warning {
    color: var(--gf-vies-warning);
    background: var(--gf-vies-warning-bg);
    border-color: var(--gf-vies-warning-border);
}

/* Icon badges */
.gf-vies-status::before {
    flex-shrink: 0;
    font-style: normal;
    font-weight: 700;
    font-size: 0.9em;
}
.gf-vies-status.gf-vies-valid::before   { content: '✓'; }
.gf-vies-status.gf-vies-invalid::before { content: '✕'; }
.gf-vies-status.gf-vies-warning::before { content: '⚠'; font-weight: normal; }
.gf-vies-status.gf-vies-loading::before {
    content: '';
    display: inline-block;
    width: 13px;
    height: 13px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: gf-vies-spin 0.65s linear infinite;
}

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

/* ---- Input border feedback ---- */
.ginput_container_vies_vat input.gf-vies-input {
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

/* Use :has() where supported; JS also adds classes for older browsers */
.ginput_container_vies_vat:has(.gf-vies-valid) input.gf-vies-input {
    border-color: var(--gf-vies-valid) !important;
    box-shadow: 0 0 0 2px rgba(26,127,55,0.15);
}

.ginput_container_vies_vat:has(.gf-vies-invalid) input.gf-vies-input {
    border-color: var(--gf-vies-invalid) !important;
    box-shadow: 0 0 0 2px rgba(207,34,46,0.15);
}

/* ---- Company info block ---- */
.gf-vies-company-info {
    margin-top: 8px;
    padding: 10px 13px;
    background: var(--gf-vies-info-bg);
    border: 1px solid var(--gf-vies-info-border);
    border-radius: var(--gf-vies-radius);
    font-size: var(--gf-vies-font-size);
    line-height: 1.6;
}

.gf-vies-company-info p {
    margin: 0 0 3px;
}
.gf-vies-company-info p:last-child {
    margin-bottom: 0;
}
