.fei-signup-page {
    background: var(--fei-page-bg, #eef4ff);
    border-radius: 16px;
    padding: 20px 12px;
}

.fei-signup-shell {
    max-width: 720px;
    margin: 0 auto;
    background: var(--fei-card-bg, #fff);
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 16px 32px rgba(9, 31, 63, 0.1);
}

.fei-signup-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.fei-signup-title {
    margin: 0;
    font-size: 34px;
    line-height: 1.08;
    color: #101722;
}

.fei-signup-intro {
    margin: 0 0 16px;
    color: #34456f;
    text-align: center;
    line-height: 1.5;
}

.fei-signup-login-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    text-decoration: none;
    background: #05056d;
    color: #fff;
    font-weight: 700;
    padding: 10px 14px;
    white-space: nowrap;
}

.fei-signup-logo-wrap {
    margin: 4px 0 14px;
    text-align: center;
}

.fei-signup-logo {
    width: min(100%, 340px);
    height: auto;
    display: inline-block;
}

.fei-signup-form {
    display: grid;
    gap: 12px;
}

.fei-signup-mode-banner {
    border: 1px solid #cad2e0;
    border-radius: 10px;
    padding: 10px 12px;
    background: #f3f8ff;
    color: #11224a;
    font-weight: 700;
}

.fei-signup-form label {
    display: grid;
    gap: 6px;
    font-weight: 600;
}

.fei-signup-form input,
.fei-signup-form select,
.fei-signup-form textarea {
    width: 100%;
    border: 1px solid #cad2e0;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 15px;
}

.fei-signup-form button {
    border: 0;
    border-radius: 10px;
    background: var(--fei-primary, #05056d);
    color: #fff;
    padding: 12px;
    font-size: 15px;
    font-weight: 700;
}

.fei-signup-contact { margin: 18px 0 0; text-align: center; color: #34456f; }
.fei-signup-contact a { color: var(--fei-primary, #05056d); font-weight: 700; }

.fei-signup-auth-box {
    border: 1px solid #cad2e0;
    border-radius: 12px;
    padding: 12px;
    background: #f7fbff;
    display: grid;
    gap: 10px;
}

.fei-signup-auth-box h3 {
    margin: 0;
    font-size: 18px;
    color: #11224a;
}

.fei-signup-auth-box p {
    margin: 0;
    color: #34456f;
    font-size: 13px;
}

@media (max-width: 640px) {
    .fei-signup-header {
        flex-direction: column;
        align-items: flex-start;
    }
    .fei-signup-title {
        font-size: 30px;
    }
}

.fei-signup-status {
    margin-top: 12px;
    font-weight: 700;
}

.fei-pwa-download {
    margin-top: 16px;
    border: 1px solid #cad2e0;
    border-radius: 12px;
    padding: 14px;
    background: #f7fbff;
}

.fei-pwa-download h2 {
    margin: 0 0 8px;
}

.fei-vendor-open-link {
    display: inline-block;
    margin-top: 6px;
    background: #05056d;
    color: #fff;
    text-decoration: none;
    padding: 10px 14px;
    border-radius: 10px;
    font-weight: 700;
}

.fei-install-help {
    margin-top: 10px;
    color: #334;
    font-size: 13px;
}

.fei-card-on-file-box {
    border: 1px solid #cad2e0;
    border-radius: 12px;
    padding: 12px;
    background: #f8fbff;
}

.fei-card-on-file-box h3 {
    margin: 0 0 8px;
}

.fei-card-on-file-box.is-readonly {
    opacity: 0.7;
}

.fei-check-line {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.fei-signup-warning {
    color: #9f1d1d;
    font-weight: 700;
}

#fei-manual-card {
    min-height: 92px;
    border: 1px solid #cad2e0;
    border-radius: 10px;
    padding: 10px 12px;
    background: #fff;
}

.fei-manual-status {
    margin-top: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #334;
}


/* Mobile-first manual signup cleanup */
.fei-locked-date {
    background: #f1f5f9 !important;
    color: #334155 !important;
    cursor: not-allowed;
}
.fei-event-date-help {
    margin-top: -4px;
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}
@media (max-width: 640px) {
    .fei-signup-page { padding: 0; border-radius: 0; }
    .fei-signup-shell { border-radius: 0; box-shadow: none; padding: 16px; }
    .fei-signup-title { font-size: 28px; }
    .fei-signup-form input,
    .fei-signup-form select,
    .fei-signup-form textarea,
    .fei-signup-form button,
    .fei-vendor-open-link { min-height: 48px; font-size: 16px; }
}

.fei-signup-header-single { justify-content: center; text-align: center; }

.fei-login-setup-note{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:14px;padding:12px 14px;font-size:13px;line-height:1.4;margin-bottom:4px;}


/* 1.18.5 required vendor identity/contact fields and responsibility notice */
.fei-payment-responsibility {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #bfdbfe;
}
.fei-required-mark {
    color: #b91c1c;
    font-weight: 900;
}

.fei-signup-location {
    display: grid;
    gap: 10px;
    border: 2px solid #9fc9ba;
    border-radius: 14px;
    padding: 14px;
    background: #f0fbf7;
    color: #123f34;
}

.fei-signup-location[hidden] {
    display: none !important;
}

.fei-signup-location-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.fei-signup-location-icon {
    font-size: 24px;
    line-height: 1;
}

.fei-signup-location h2,
.fei-signup-location p {
    margin: 0;
}

.fei-signup-location h2 {
    color: #073f33;
    font-size: 19px;
}

.fei-signup-location p,
.fei-signup-location-status {
    margin-top: 4px;
    font-size: 13px;
    line-height: 1.4;
}

.fei-signup-location-confirm {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: start;
    gap: 8px !important;
}

.fei-signup-location-confirm input {
    width: 22px;
    height: 22px;
    margin: 0;
}

.fei-signup-location-btn {
    background: #087a5f !important;
}

.fei-signup-location-btn:disabled {
    background: #91a6a0 !important;
    cursor: not-allowed;
}

.fei-signup-location.is-captured {
    border-color: #087a5f;
    background: #e2f8ef;
}

.fei-signup-location.is-captured .fei-signup-location-status {
    color: #07543f;
    font-weight: 800;
}

/* 1.19.8: one company signup can create separately billed booth accounts. */
.fei-multi-booth-section {
    display: grid;
    gap: 12px;
    border: 1px solid #cad2e0;
    border-radius: 14px;
    padding: 14px;
    background: #f7f9fc;
}

.fei-multi-booth-heading,
.fei-booth-account-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.fei-multi-booth-heading h2,
.fei-multi-booth-heading p,
.fei-booth-account-head strong,
.fei-booth-account-head span {
    margin: 0;
}

.fei-multi-booth-heading h2 { color: #101722; font-size: 21px; }
.fei-multi-booth-heading p { color: #526078; font-size: 13px; line-height: 1.4; margin-top: 3px; }
.fei-booth-count { flex: 0 0 auto; border-radius: 999px; background: #e7e9ff; color: #05056d; padding: 5px 9px; font-size: 12px; font-weight: 800; }
.fei-signup-booths { display: grid; gap: 12px; }
.fei-booth-account { display: grid; gap: 11px; border: 2px solid #d7deea; border-radius: 14px; padding: 13px; background: #fff; }
.fei-booth-account-head strong,
.fei-booth-account-head span { display: block; }
.fei-booth-account-head strong { color: #05056d; font-size: 18px; }
.fei-booth-account-head span { color: #526078; font-size: 12px; margin-top: 2px; }
.fei-remove-booth { width: auto !important; min-height: 40px; padding: 8px 11px !important; background: #fff !important; border: 1px solid #b91c1c !important; color: #991b1b !important; }
.fei-remove-booth[hidden] { display: none !important; }
.fei-add-booth { width: 100%; border: 2px dashed #05056d !important; background: #fff !important; color: #05056d !important; }
.fei-booth-account .fei-signup-location h3 { color: #073f33; font-size: 18px; margin: 0; }
.fei-booth-account.is-invalid { border-color: #b91c1c; }

@media (max-width: 480px) {
    .fei-multi-booth-heading { display: grid; }
    .fei-booth-count { justify-self: start; }
    .fei-booth-account { padding: 12px; }
}
