/* Sign-Up Portal — additions on top of the Control Center's style.css */

.signup-wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 12px 0 8px;
}
.signup-card { max-width: 440px; }
.signup-card--wide { max-width: 600px; }
.signup-card h1 { margin-bottom: 10px; }
.signup-card .auth-logo { margin-bottom: 14px; }

.signup-eyebrow {
    text-align: center;
    margin: 0 0 18px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.signup-lead { text-align: center; color: var(--text-muted); font-size: 14px; line-height: 1.55; margin: 0 0 20px; }
.signup-lead strong { color: var(--text); word-break: break-word; }
.signup-hint { font-size: 12.5px; color: var(--text-muted); margin: 6px 0 0; line-height: 1.45; }
.signup-center { text-align: center; }
.signup-optional { font-weight: 400; color: var(--text-muted); }
.signup-footer { color: #a9bbd3; font-size: 12px; margin: 18px 0 0; text-align: center; }

/* ---- step indicator ---- */
.signup-steps {
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 4px;
    margin: 0 0 24px;
    padding: 0;
    counter-reset: none;
    position: relative;
}
.signup-steps::before {          /* connecting line */
    content: "";
    position: absolute;
    top: 13px; left: 12%; right: 12%;
    height: 2px;
    background: var(--border);
}
.signup-steps li {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    position: relative;
    font-size: 11.5px;
    color: var(--text-muted);
    text-align: center;
}
.signup-steps__dot {
    width: 28px; height: 28px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 13px;
    background: #fff;
    border: 2px solid var(--border);
    color: var(--text-muted);
}
.signup-steps li.is-current { color: var(--navy); font-weight: 700; }
.signup-steps li.is-current .signup-steps__dot { border-color: var(--navy); background: var(--navy); color: #fff; }
.signup-steps li.is-done .signup-steps__dot { border-color: var(--success); background: var(--success); color: #fff; }

/* ---- form bits ---- */
.signup-code-input {
    font-family: Consolas, Menlo, "Courier New", monospace;
    font-size: 28px !important;
    letter-spacing: .5em;
    text-align: center;
    padding: 12px 8px 12px calc(8px + .5em) !important;
}
.signup-readonly { background: #f3f5f8 !important; color: var(--text-muted) !important; }
.signup-verified {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    border-radius: 20px;
    background: var(--success-bg);
    color: var(--success);
    font-size: 11px;
    font-weight: 700;
}
.signup-divider {
    display: flex; align-items: center; gap: 12px;
    margin: 8px 0 16px;
    font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    color: var(--text-muted);
}
.signup-divider::before, .signup-divider::after { content: ""; flex: 1; height: 1px; background: var(--border); }

.signup-pw { position: relative; }
.signup-pw input { padding-right: 62px; }
.signup-pw__toggle {
    position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
    border: 0; background: transparent; color: var(--steel);
    font-size: 12px; font-weight: 700; cursor: pointer; padding: 6px 8px;
}
.signup-pw-rules { list-style: none; margin: -4px 0 20px; padding: 0; font-size: 12.5px; color: var(--text-muted); }
.signup-pw-rules li { padding-left: 22px; position: relative; margin: 3px 0; }
.signup-pw-rules li::before {
    content: "○"; position: absolute; left: 4px; top: 0; color: #9aa7b5;
}
.signup-pw-rules li.is-ok { color: var(--success); }
.signup-pw-rules li.is-ok::before { content: "✓"; color: var(--success); font-weight: 700; }

.signup-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.signup-actions-row {
    display: flex; justify-content: center; align-items: center; flex-wrap: wrap;
    gap: 8px; margin-top: 16px; font-size: 13px; color: var(--text-muted);
}
.signup-actions-row form { margin: 0; }
.signup-linkbtn {
    border: 0; background: none; padding: 0; cursor: pointer;
    color: var(--steel); font-size: 13px; font-family: inherit;
}
.signup-linkbtn:hover { text-decoration: underline; }
.signup-linkbtn:disabled { color: #9aa7b5; cursor: default; text-decoration: none; }

.signup-error-list { margin: 0; padding-left: 18px; }

/* ---- result screens ---- */
.signup-result { text-align: center; }
.signup-result__icon {
    width: 64px; height: 64px; margin: 4px auto 16px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 32px; font-weight: 700;
    background: var(--success-bg); color: var(--success);
}
.signup-result__icon--info { background: #e8f0fb; color: #1c4a7a; font-family: Georgia, serif; font-style: italic; }
.signup-result__icon--warn { background: var(--warning-bg); color: var(--warning-text); }

/* ---- admin review (review.php) ---- */
.signup-summary {
    display: grid; grid-template-columns: 130px 1fr; gap: 10px 14px;
    margin: 0 0 22px; padding: 16px 18px;
    background: #f4f7fb; border: 1px solid #dde5ef; border-radius: var(--radius);
    font-size: 14px;
}
.signup-summary dt { color: var(--text-muted); }
.signup-summary dd { margin: 0; font-weight: 600; word-break: break-word; }
.signup-btn-approve { background: var(--success); }
.signup-btn-approve:hover { background: #17692b; }
.signup-reject { margin-top: 20px; border-top: 1px solid var(--border); padding-top: 14px; }
.signup-reject summary { cursor: pointer; color: var(--danger); font-size: 13px; font-weight: 600; text-align: center; }
.signup-reject form { margin-top: 14px; }
.signup-check { display: flex; gap: 8px; align-items: center; font-weight: 400; font-size: 13px; margin: 0 0 14px; }
.signup-check input { width: auto; margin: 0; }

@media (max-width: 520px) {
    .auth-card.signup-card { padding: 28px 20px 24px; }
    .signup-steps__label { font-size: 10.5px; }
    .signup-summary { grid-template-columns: 1fr; gap: 2px; }
    .signup-summary dd { margin-bottom: 8px; }
}
