/* Primeiro acesso / criar conta */
.login-card.is-premium {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 4px rgba(63, 161, 16, 0.12), var(--shadow-xl);
}

.coop-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    color: var(--color-surface);
    padding: 0.375rem 1rem;
    border-radius: var(--radius-full);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.field-row .form-group { margin-bottom: 0; }

/* ── Register header ─────────────────────────────────── */
.register-header {
    text-align: center;
    margin-bottom: 1.5rem;
}

.register-logo {
    display: block;
    margin: 0 auto 0.875rem;
}

.register-badge-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 0.875rem;
}

/* ── Steps indicator ─────────────────────────────────── */
.steps-bar {
    display: flex;
    align-items: flex-start;
    margin-bottom: 1.75rem;
}

.steps-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    flex: 0 0 auto;
}

.steps-circle {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 700;
    border: 2px solid var(--color-light-gray);
    background: var(--color-surface);
    color: var(--color-medium);
    transition: all var(--transition-normal);
}

.steps-step.active .steps-circle {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

.steps-step.done .steps-circle {
    border-color: var(--color-primary);
    background: var(--color-primary-light);
    color: var(--color-primary);
}

.steps-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-medium);
    white-space: nowrap;
    transition: color var(--transition-normal);
}

.steps-step.active .steps-label,
.steps-step.done .steps-label {
    color: var(--color-primary);
}

.steps-line {
    flex: 1;
    height: 2px;
    background: var(--color-light-gray);
    margin-top: 17px;
    transition: background var(--transition-normal);
}

.steps-line.done {
    background: var(--color-primary);
}

/* ── Step panels ─────────────────────────────────────── */
.step-hidden {
    display: none;
}

/* ── Form helpers ────────────────────────────────────── */
.req-star {
    color: var(--color-alert);
}

.field-error {
    display: block;
    font-size: 0.8125rem;
    color: var(--color-alert);
    margin-top: 0.25rem;
}

.form-hint {
    display: block;
    font-size: 0.8125rem;
    color: var(--color-medium);
    margin-top: 0.25rem;
}

.form-control[readonly] {
    background: var(--color-lighter-gray);
    cursor: not-allowed;
}

/* ── CPF status ──────────────────────────────────────── */
.cpf-status {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8rem;
    font-weight: 600;
    margin-top: 0.375rem;
    transition: color var(--transition-fast);
}

.cpf-status--ok      { color: var(--color-primary); }
.cpf-status--err     { color: var(--color-alert); }
.cpf-status--loading { color: var(--color-medium); }

.form-control[readonly] {
    background-color: var(--color-lighter-gray);
    color: var(--color-dark);
    cursor: not-allowed;
}

/* ── Ícone de verificação dentro do input (conta, cpf, nome, e-mail) ── */
.verify-input-wrap { position: relative; }
.verify-input-wrap .form-control { padding-right: 2.5rem; }

.verify-icon {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    font-size: 1.15rem;
    pointer-events: none;
}

.verify-icon--ok      { color: var(--color-primary); }
.verify-icon--err     { color: var(--color-alert); }
.verify-icon--loading { color: var(--color-medium); }

.verify-icon--loading i {
    animation: cpfSpin 0.8s linear infinite;
}

.cpf-status--loading i {
    animation: cpfSpin 0.8s linear infinite;
}

@keyframes cpfSpin {
    to { transform: rotate(360deg); }
}

/* ── Terms ───────────────────────────────────────────── */
.register-terms-group {
    margin-bottom: 1.25rem;
}

.register-terms-text {
    font-size: 0.875rem;
    color: var(--color-medium);
}

/* ── Buttons ─────────────────────────────────────────── */
.register-btn-full {
    width: 100%;
    padding: 1rem;
    font-size: 1.0625rem;
    margin-top: 0.5rem;
}

.register-btn-row {
    display: flex;
    gap: 0.75rem;
}

.register-btn-submit {
    flex: 1;
}

/* ── Password input (olho + força + requisitos) ──────── */
.as-input-wrap { position: relative; }

.as-input {
    width: 100%;
    padding: 0.625rem 2.5rem 0.625rem 0.875rem;
    border: 1.5px solid var(--color-light-gray);
    border-radius: var(--radius-md);
    font-family: var(--font-family);
    font-size: 0.875rem;
    color: var(--color-dark);
    background: var(--color-surface);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    outline: none;
    box-sizing: border-box;
}
.as-input:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary-light);
}

.as-eye-btn {
    position: absolute;
    right: 0.625rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-medium);
    display: flex;
    align-items: center;
    font-size: 1.1rem;
    padding: 0.25rem;
    transition: color var(--transition-fast);
}
.as-eye-btn:hover { color: var(--color-dark); }

.as-strength { display: flex; align-items: center; gap: 0.625rem; margin-top: 0.3rem; }
.as-strength-bar {
    flex: 1;
    height: 5px;
    background: var(--color-lighter-gray);
    border-radius: var(--radius-full);
    overflow: hidden;
}
.as-strength-fill {
    height: 100%;
    border-radius: var(--radius-full);
    width: 0;
    transition: width var(--transition-fast), background var(--transition-fast);
}
.as-strength-fill--1 { width: 20%; background: var(--color-alert); }
.as-strength-fill--2 { width: 40%; background: #f59e0b; }
.as-strength-fill--3 { width: 60%; background: #f59e0b; }
.as-strength-fill--4 { width: 80%; background: var(--color-primary); }
.as-strength-fill--5 { width: 100%; background: var(--color-primary); }
.as-strength-label { font-size: 0.68rem; font-weight: 700; color: var(--color-medium); white-space: nowrap; }

.as-match-msg, .as-match-ok {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.75rem;
    font-weight: 600;
    margin-top: 0.2rem;
}
.as-match-msg { color: var(--color-alert); }
.as-match-ok  { color: var(--color-success); }

.as-reqs {
    background: var(--color-lighter-gray);
    border-radius: var(--radius-md);
    padding: 0.625rem 0.875rem;
    margin-bottom: 0.25rem;
}
.as-reqs-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-medium);
    margin-bottom: 0.375rem;
}
.as-reqs-list {
    list-style: none;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.3rem 1.25rem;
    padding: 0;
    margin: 0;
}
.as-req {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.75rem;
    color: var(--color-medium);
    transition: color var(--transition-fast);
}
.as-req i { font-size: 0.8rem; flex-shrink: 0; }
.as-req--ok { color: var(--color-success); }
.as-req--ok i::before { content: '\e2a3'; }

/* Espaçamento interno do step de senha mais compacto */
#step-3 .form-group { margin-bottom: 0.75rem; }
#step-3 .as-reqs    { margin-top: -0.25rem; }

.hidden { display: none !important; }

/* ── Login link ──────────────────────────────────────── */
.register-login-link {
    margin-top: 1.5rem;
    text-align: center;
    font-size: 0.875rem;
    color: var(--color-medium);
}

.register-login-link a {
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--color-primary);
    text-decoration: none;
}

.register-login-link a:hover {
    color: var(--color-primary-dark);
}
