body { font-family: 'Inter', sans-serif; }
        ::-webkit-scrollbar { display: none; }

        /* Step indicator */
        .step-done  { background: #10B981; border-color: #10B981; color: #fff; }
        .step-active{ background: #4F46E5; border-color: #4F46E5; color: #fff;
                      box-shadow: 0 0 0 4px rgba(79,70,229,0.15); }
        .step-idle  { background: #fff; border-color: #cbd5e1; color: #94a3b8; }

        /* Password strength */
        .strength-bar { height:3px; background:#e2e8f0; border-radius:2px; overflow:hidden; margin-top:6px; }
        .strength-fill{ height:100%; border-radius:2px; width:0%; transition:width .3s,background .3s; }

        /* Spinner */
        .spinner { width:18px;height:18px;border:2px solid rgba(255,255,255,.35);
                   border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:none; }
        .btn-loading .spinner  { display:inline-block; }
        .btn-loading .btn-text { display:none; }
        @keyframes spin { to { transform:rotate(360deg); } }

        /* Confirm pop */
        @keyframes pop {
            0%  { transform:scale(.4); opacity:0; }
            100%{ transform:scale(1);  opacity:1; }
        }
        .pop-anim { animation: pop .45s cubic-bezier(.175,.885,.32,1.275); }

        /* Form input focus */
        input:focus, select:focus { outline:none; border-color:#4F46E5;
            box-shadow:0 0 0 3px rgba(79,70,229,.12); }
        input.err-input, select.err-input { border-color:#ef4444; background:#fef2f2; }

/* Payment method options */
.pay-option:has(input:checked) {
    border-color: #4F46E5;
    background: #eef2ff;
    box-shadow: 0 0 0 3px rgba(79,70,229,.12);
}

/* Honeypot: invisible to people, still fillable by bots.
   Deliberately not display:none — some bots skip those. */
.hp-field {
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}
