/* =============================================================
   Rollin Host 2026 — Auth (login + cadastro)
   Mobile-first, app-like, glassmorphism + gradient mesh
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

:root {
    --rh-bg-light: #fafafc;
    --rh-bg-dark:  #0a0014;
    --rh-card-light: rgba(255, 255, 255, 0.85);
    --rh-card-dark:  rgba(21, 0, 43, 0.65);
    --rh-text:       #0d0a1f;
    --rh-text-dim:   rgba(13, 10, 31, 0.62);
    --rh-text-mute:  rgba(13, 10, 31, 0.42);
    --rh-border:     rgba(13, 10, 31, 0.08);
    --rh-purple:     #8a2bd6;
    --rh-purple-deep:#6a1ab0;
    --rh-cyan:       #01fad5;
    --rh-cyan-deep:  #00b89e;
    --rh-grad: linear-gradient(135deg, #8a2bd6 0%, #6a1ab0 100%);
    --rh-grad-bright: linear-gradient(135deg, #8a2bd6 0%, #01fad5 100%);
}

[data-theme="dark"] {
    --rh-text:      #ffffff;
    --rh-text-dim:  rgba(255, 255, 255, 0.65);
    --rh-text-mute: rgba(255, 255, 255, 0.4);
    --rh-border:    rgba(255, 255, 255, 0.08);
}

/* === Chat Nikko: mantém disponível pra capturar leads === */
/* Na auth o chat aparece SE o JS rollin-chat.js carregar — é importante pra
   leads. Esconde só elementos que injetam INLINE sem CSS (mobile-app menu). */
body:has(.rh-auth-page) .rollin-mobile-app,
body:has(.rh-auth-page) .rollin-mobile-nav,
body:has(.rh-auth-page) .rh-mobile-bar,
body:has(.rh-auth-page) .rollin-feed {
    display: none !important;
}
/* Remove o wrapper do WHMCS (rollin-main-inner) nas páginas auth —
   ele tem padding e max-width que criam a faixa branca ao redor do card */
body:has(.rh-auth-page) .rollin-main,
body:has(.rh-auth-page) .rollin-main-inner {
    padding: 0 !important;
    max-width: none !important;
    background: transparent !important;
    display: contents !important;
}
/* Chat Nikko (se renderizar) fica em z-index 9999 e na posição correta */
body:has(.rh-auth-page) #rollin-ai-launcher,
body:has(.rh-auth-page) [class*="rollin-chat-launcher"] {
    position: fixed !important;
    z-index: 9999 !important;
    bottom: 20px !important;
    right: 20px !important;
    /* SEM overflow:hidden — corta a badge que fica posicionada
       em top:-8px; right:-8px (fora do círculo do launcher) */
    overflow: visible !important;
}
/* Cancela qualquer transform em filhos (ícone fica fixo na elipse) */
body:has(.rh-auth-page) #rollin-ai-launcher:hover *,
body:has(.rh-auth-page) #rollin-ai-launcher *,
body:has(.rh-auth-page) [class*="rollin-chat-launcher"]:hover *,
body:has(.rh-auth-page) [class*="rollin-chat-launcher"] svg,
body:has(.rh-auth-page) [class*="rollin-chat-launcher"] img {
    transform: none !important;
    animation: none !important;
}

/* Cancela ANIMAÇÃO DO LAUNCHER inteiro no hover (era translateY+scale) */
.rollin-chat-launcher,
.rollin-chat-launcher:hover,
.rollin-chat-launcher:focus,
.rollin-chat-launcher:active,
#rollin-ai-launcher,
#rollin-ai-launcher:hover {
    transform: none !important;
    scale: 1 !important;
}
.rollin-chat-launcher:hover {
    /* Mantém só sombra mais forte no hover (sem mover) */
    box-shadow: 0 16px 40px rgba(138,43,214,0.65) !important;
}
.rollin-chat-launcher-icon {
    transform: none !important;
    transition: none !important;
}

/* === SVG/IMG SAFETY NET — GLOBAL, prioritário, evita explosão === */
/* HARD CAP em TODO svg/img da página de login/cadastro */
body:has(.rh-auth-page) svg,
body:has(.rh-auth-page) img:not(.rh-auth-nav-logo):not(.rh-auth-footer-logo) {
    max-width: 48px !important;
    max-height: 48px !important;
}
body:has(.rh-auth-page) svg:not([width]):not([height]) {
    width: 1em !important;
    height: 1em !important;
}
/* Logos do nav/footer mantêm tamanho próprio (mas com cap) */
body:has(.rh-auth-page) .rh-auth-nav-logo {
    max-width: 160px !important;
    max-height: 28px !important;
    width: auto !important;
    height: 26px !important;
}
body:has(.rh-auth-page) .rh-auth-footer-logo {
    max-width: 180px !important;
    max-height: 30px !important;
    width: auto !important;
    height: 28px !important;
}
/* QUALQUER SVG/img dentro de .rh-auth-page sem dimensão fica 1em (não explode) */
.rh-auth-page svg:not([width]):not([height]),
.rh-auth-page img:not([width]):not([height]) {
    width: 1em !important;
    height: 1em !important;
}
.rh-auth-page svg[width][height] {
    width: attr(width px, 16px) !important;
    height: attr(height px, 16px) !important;
}
.rh-auth-nav img,
.rh-auth-footer img,
.rh-auth-page img,
.rh-auth-card img {
    max-width: 100% !important;
    max-height: 100px !important;
    height: auto !important;
    display: inline-block;
}
/* Hard cap em SVGs (qualquer SVG não pode passar de 48px) */
.rh-auth-page svg,
.rh-auth-nav svg,
.rh-auth-footer svg,
.rh-auth-chat-bubble svg {
    max-width: 48px !important;
    max-height: 48px !important;
}
.rh-auth-nav-logo,
.rh-auth-nav-logo-light,
.rh-auth-nav-logo-dark {
    height: 26px !important;
    width: auto !important;
    max-width: 160px !important;
}
.rh-auth-footer-logo,
.rh-auth-footer-logo-light,
.rh-auth-footer-logo-dark {
    height: 28px !important;
    width: auto !important;
    max-width: 180px !important;
}
.rh-auth-nav svg,
.rh-auth-footer svg,
.rh-auth-page svg,
.rh-auth-card svg,
.rh-auth-chat-bubble svg {
    max-width: 100%;
    flex-shrink: 0;
    vertical-align: middle;
}
[data-lucide]:not([data-lucide=""]),
svg.lucide,
svg[class*="lucide-"] {
    width: 1em !important;
    height: 1em !important;
    max-width: 1em !important;
    max-height: 1em !important;
    stroke: currentColor;
    fill: none;
    flex-shrink: 0;
    vertical-align: middle;
    display: inline-block;
}
[data-lucide]:empty {
    visibility: hidden;
    width: 1em;
    height: 1em;
    display: inline-block;
}
[data-lucide] svg { visibility: visible; }

body.rollin-body:has(.rh-auth-page) {
    background: var(--rh-bg-light);
    overflow-x: hidden;
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    -webkit-font-smoothing: antialiased;
    background-image:
        radial-gradient(circle at 18% 12%, rgba(138, 43, 214, 0.10) 0%, transparent 45%),
        radial-gradient(circle at 82% 88%, rgba(1, 250, 213, 0.08) 0%, transparent 45%);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    /* sem background-attachment:fixed — em documentos > 100vh isso prende o
       gradient ao viewport e o restante fica com a cor sólida (corte branco) */
    min-height: 100vh;
    margin: 0 !important;
    padding: 0 !important;
    /* display:block — layout normal de documento.
       .rh-auth-page cresce com o conteúdo e o footer cai abaixo naturalmente.
       O seletor body > .rh-auth-page{flex} nunca casava pois auth-page está
       aninhada dentro de .rollin-main > .rollin-main-inner no DOM. */
    display: block;
}
html:has(.rh-auth-page) { margin: 0 !important; padding: 0 !important; }

/* Força Poppins em TUDO dentro das páginas auth (inclusive elementos
   herdados de Bootstrap/WHMCS que vêm com font próprias) */
body:has(.rh-auth-page),
body:has(.rh-auth-page) *,
body:has(.rh-auth-page) input,
body:has(.rh-auth-page) button,
body:has(.rh-auth-page) select,
body:has(.rh-auth-page) textarea,
body:has(.rh-auth-page) label,
body:has(.rh-auth-page) a,
body:has(.rh-auth-page) span,
body:has(.rh-auth-page) p,
body:has(.rh-auth-page) h1,
body:has(.rh-auth-page) h2,
body:has(.rh-auth-page) h3,
body:has(.rh-auth-page) h4,
body:has(.rh-auth-page) h5,
body:has(.rh-auth-page) h6 {
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}
/* Exceto code/monospace que mantém fonte própria */
body:has(.rh-auth-page) code,
body:has(.rh-auth-page) pre,
body:has(.rh-auth-page) [class*="mono"] {
    font-family: 'SF Mono', Monaco, Consolas, monospace !important;
}
[data-theme="dark"] body.rollin-body:has(.rh-auth-page) {
    background-color: var(--rh-bg-dark);
    background-image:
        radial-gradient(circle at 18% 12%, rgba(138, 43, 214, 0.22) 0%, transparent 45%),
        radial-gradient(circle at 82% 88%, rgba(1, 250, 213, 0.12) 0%, transparent 45%),
        radial-gradient(circle at 50% 50%, rgba(138, 43, 214, 0.08) 0%, transparent 60%);
    background-attachment: fixed;
    color: #fff;
}

/* === NAV PÚBLICO === */
.rh-auth-nav {
    position: sticky;
    top: 0;
    z-index: 30;
    padding: 14px 28px;
    /* Transparente no topo — sem ilha branca contrastando com o gradient mesh */
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: 1px solid rgba(13, 10, 31, 0.06);  /* separador bem discreto */
    transition: padding 280ms cubic-bezier(.32,.72,0,1), background 240ms ease, backdrop-filter 240ms ease, border-color 240ms ease;
}
[data-theme="dark"] .rh-auth-nav {
    background: transparent;
    border-bottom-color: rgba(255, 255, 255, 0.06);
}
/* Quando rolar a página, ganha blur sutil pra legibilidade do conteúdo atrás */
.rh-auth-nav.rh-auth-nav-scrolled {
    padding: 8px 28px;
    background: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(12px) saturate(140%);
    -webkit-backdrop-filter: blur(12px) saturate(140%);
    border-bottom-color: rgba(13, 10, 31, 0.08);
}
[data-theme="dark"] .rh-auth-nav.rh-auth-nav-scrolled {
    background: rgba(10, 0, 20, 0.55);
    border-bottom-color: rgba(255, 255, 255, 0.08);
}
.rh-auth-nav-glow {
    position: absolute;
    left: 0; right: 0; bottom: -1px; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(138,43,214,0.5), rgba(1,250,213,0.5), transparent);
    opacity: 0;
    transition: opacity 400ms ease;
}
.rh-auth-nav-scrolled .rh-auth-nav-glow { opacity: 1; }
.rh-auth-nav-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.rh-auth-nav-brand { display: inline-flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.rh-auth-nav-logo { height: 26px; width: auto; }
.rh-auth-nav-logo-light { display: block !important; }
.rh-auth-nav-logo-dark { display: none !important; }
[data-theme="dark"] .rh-auth-nav-logo-light { display: none !important; }
[data-theme="dark"] .rh-auth-nav-logo-dark { display: block !important; }

.rh-auth-nav-links { display: flex; align-items: center; gap: 4px; flex: 1; justify-content: center; }
.rh-auth-nav-link {
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--rh-text-dim);
    text-decoration: none;
    border-radius: 8px;
    transition: all 180ms ease;
}
.rh-auth-nav-link:hover {
    color: var(--rh-text);
    background: rgba(138, 43, 214, 0.06);
    text-decoration: none;
}

.rh-auth-nav-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.rh-auth-theme-toggle {
    width: 36px; height: 36px;
    border-radius: 10px;
    border: 1px solid var(--rh-border);
    background: transparent;
    color: var(--rh-text-dim);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 180ms ease;
    padding: 0;
}
.rh-auth-theme-toggle:hover {
    color: var(--rh-purple);
    border-color: rgba(138, 43, 214, 0.3);
    background: rgba(138, 43, 214, 0.05);
}
.rh-auth-theme-sun { display: block; }
.rh-auth-theme-moon { display: none; }
[data-theme="dark"] .rh-auth-theme-sun { display: none; }
[data-theme="dark"] .rh-auth-theme-moon { display: block; }

.rh-auth-nav-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--rh-text-dim);
    text-decoration: none;
    border: 1px solid var(--rh-border);
    border-radius: 999px;
    transition: all 180ms ease;
}
.rh-auth-nav-back:hover {
    color: var(--rh-text);
    border-color: rgba(138, 43, 214, 0.4);
    text-decoration: none;
    transform: translateX(-2px);
}

/* === PÁGINA AUTH === */
.rh-auth-page {
    padding: 64px 20px;
    position: relative;
    overflow: visible;
    background: transparent;
}

/* Esconde as orbs problemáticas (mantém compatibilidade com TPL) */
.rh-auth-bg,
.rh-auth-bg-orb,
.rh-auth-bg-grid { display: none !important; }

/* === CARD CENTRAL === */
.rh-auth-card-wrap {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 460px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.rh-auth-card-wrap-register { max-width: 560px; }

.rh-auth-card {
    background: var(--rh-card-light);
    border: 1px solid var(--rh-border);
    border-radius: 22px;
    padding: 36px 32px;
    box-shadow:
        0 1px 2px rgba(13, 10, 31, 0.04),
        0 24px 64px rgba(13, 10, 31, 0.10),
        inset 0 1px 0 rgba(255, 255, 255, 0.6);
    position: relative;
    /* backdrop-filter no ::before — card não cria stacking context,
       dropdown do intl-tel-input consegue escapar */
}
.rh-auth-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
    z-index: 0;
    pointer-events: none;
}
.rh-auth-card > * { position: relative; z-index: 1; }
[data-theme="dark"] .rh-auth-card {
    background: var(--rh-card-dark);
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.3),
        0 24px 64px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.rh-auth-card::before {
    content: '';
    position: absolute;
    top: -1px; left: -1px; right: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(138,43,214,0.6), rgba(1,250,213,0.6), transparent);
    pointer-events: none;
}
/* === SWITCH ACCOUNT — lista de contas / avatar === */
.rh-account-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.rh-account-item {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 14px 16px;
    background: rgba(13,10,31,0.02);
    border: 1.5px solid var(--rh-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: left;
    transition: border-color 180ms ease, background 180ms ease, transform 120ms ease;
    font-family: inherit;
    color: var(--rh-text);
}
.rh-account-item:hover {
    border-color: var(--rh-purple);
    background: rgba(138, 43, 214, 0.04);
}
.rh-account-item:active { transform: scale(0.99); }
.rh-account-item.is-loading { opacity: 0.6; pointer-events: none; }
.rh-account-item-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
[data-theme="dark"] .rh-account-item {
    background: rgba(255,255,255,0.03);
    color: rgba(255,255,255,0.92);
}
[data-theme="dark"] .rh-account-item:hover {
    background: rgba(138,43,214,0.16);
    border-color: rgba(138,43,214,0.6);
}

.rh-account-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #8a2bd6, #6a1ab0);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 17px;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(138,43,214,0.30);
}
.rh-account-avatar-lg { width: 56px; height: 56px; font-size: 22px; }

.rh-account-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
}
.rh-account-name {
    font-size: 14.5px;
    font-weight: 600;
    color: var(--rh-text);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rh-account-name small {
    font-weight: 500;
    color: var(--rh-text-mute);
    font-size: 12.5px;
}
.rh-account-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 12px;
    color: var(--rh-text-dim);
}
.rh-account-tag {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.rh-account-tag-owner {
    background: rgba(138,43,214,0.12);
    color: var(--rh-purple-deep);
    border: 1px solid rgba(138,43,214,0.25);
}
.rh-account-tag-closed {
    background: rgba(220,38,38,0.10);
    color: #b91c1c;
    border: 1px solid rgba(220,38,38,0.22);
}
[data-theme="dark"] .rh-account-tag-owner { color: #d8b8ff; }
[data-theme="dark"] .rh-account-tag-closed { color: #fca5a5; }

.rh-account-arrow {
    color: var(--rh-text-mute);
    flex-shrink: 0;
    transition: transform 180ms ease, color 180ms ease;
}
.rh-account-item:hover .rh-account-arrow {
    transform: translateX(3px);
    color: var(--rh-purple);
}

/* Forced switch — exibe a conta-alvo de forma destacada */
.rh-account-summary {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px;
    background: rgba(138,43,214,0.06);
    border: 1.5px solid rgba(138,43,214,0.18);
    border-radius: 14px;
    margin-bottom: 18px;
}
[data-theme="dark"] .rh-account-summary {
    background: rgba(138,43,214,0.10);
    border-color: rgba(138,43,214,0.30);
}

/* === VERIFY EMAIL — ícone circular grande no topo do card === */
.rh-verify-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    box-shadow: 0 8px 24px rgba(13,10,31,0.06), inset 0 1px 0 rgba(255,255,255,0.6);
}
.rh-verify-icon-success {
    background: linear-gradient(135deg, rgba(16,185,129,0.18), rgba(16,185,129,0.08));
    color: #047857;
    border: 1.5px solid rgba(16,185,129,0.32);
}
.rh-verify-icon-warning {
    background: linear-gradient(135deg, rgba(245,158,11,0.18), rgba(245,158,11,0.08));
    color: #b45309;
    border: 1.5px solid rgba(245,158,11,0.32);
}
.rh-verify-icon-danger {
    background: linear-gradient(135deg, rgba(220,38,38,0.18), rgba(220,38,38,0.08));
    color: #b91c1c;
    border: 1.5px solid rgba(220,38,38,0.32);
}
[data-theme="dark"] .rh-verify-icon-success { color: #6ee7b7; }
[data-theme="dark"] .rh-verify-icon-warning { color: #fcd34d; }
[data-theme="dark"] .rh-verify-icon-danger  { color: #fca5a5; }

.rh-verify-actions { gap: 12px !important; }
.rh-auth-card-hint {
    text-align: center;
    font-size: 13px;
    color: var(--rh-text-dim);
    margin: 0;
}

.rh-auth-card-head { margin-bottom: 24px; text-align: center !important; }
.rh-auth-card-head .rh-auth-card-eyebrow { margin: 0 auto 14px !important; display: inline-flex !important; }
.rh-auth-card-head .rh-auth-card-title { text-align: center !important; }
.rh-auth-card-head .rh-auth-card-subtitle {
    text-align: center !important;
    margin: 0 auto !important;
    max-width: 420px;
}
.rh-auth-card-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: rgba(138, 43, 214, 0.08);
    color: var(--rh-purple-deep);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 14px;
}
[data-theme="dark"] .rh-auth-card-eyebrow { background: rgba(138, 43, 214, 0.2); color: #d8b8ff; }
.rh-auth-card-pulse {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--rh-purple);
    box-shadow: 0 0 10px var(--rh-purple);
    animation: rh-pulse 2s ease-in-out infinite;
}
@keyframes rh-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.85); }
}
.rh-auth-card-title {
    font-size: 28px;
    font-weight: 800;
    color: var(--rh-text);
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0 0 8px;
}
[data-theme="dark"] .rh-auth-card-title { color: #fff; }
.rh-auth-card-subtitle { font-size: 14px; color: var(--rh-text-dim); line-height: 1.5; margin: 0; }

/* === PROGRESS DOTS === */
.rh-step-progress { margin: 4px 0 28px; }
.rh-step-progress-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    list-style: none;
    padding: 0;
    margin: 0;
    position: relative;
}
.rh-step-progress-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    position: relative;
    color: var(--rh-text-mute);
}
.rh-step-progress-item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 12px;
    left: calc(50% + 14px);
    right: calc(-50% + 14px);
    height: 2px;
    background: var(--rh-border);
    z-index: 0;
}
.rh-step-progress-item.is-completed:not(:last-child)::after,
.rh-step-progress-item.is-active:not(:last-child)::after {
    background: linear-gradient(90deg, var(--rh-purple), var(--rh-cyan));
}
.rh-step-progress-dot {
    width: 26px; height: 26px;
    border-radius: 50%;
    background: rgba(13, 10, 31, 0.06);
    color: var(--rh-text-mute);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11.5px;
    font-weight: 700;
    border: 2px solid transparent;
    transition: all 220ms ease;
    z-index: 1;
    position: relative;
}
[data-theme="dark"] .rh-step-progress-dot { background: rgba(255, 255, 255, 0.06); }
.rh-step-progress-item.is-active .rh-step-progress-dot {
    background: var(--rh-grad);
    color: #fff;
    border-color: rgba(138, 43, 214, 0.3);
    box-shadow: 0 0 0 4px rgba(138, 43, 214, 0.12), 0 4px 12px rgba(138, 43, 214, 0.32);
    transform: scale(1.05);
}
.rh-step-progress-item.is-completed .rh-step-progress-dot { background: var(--rh-cyan); color: var(--rh-text); }
.rh-step-progress-check { display: none; }
.rh-step-progress-item.is-completed .rh-step-progress-num { display: none; }
.rh-step-progress-item.is-completed .rh-step-progress-check { display: block; }
.rh-step-progress-label { font-size: 11px; font-weight: 600; letter-spacing: 0.02em; color: inherit; }
.rh-step-progress-item.is-active .rh-step-progress-label { color: var(--rh-purple-deep); }
[data-theme="dark"] .rh-step-progress-item.is-active .rh-step-progress-label { color: #d8b8ff; }
.rh-step-progress-item.is-completed .rh-step-progress-label { color: var(--rh-text); }
[data-theme="dark"] .rh-step-progress-item.is-completed .rh-step-progress-label { color: #fff; }

/* === STEPS === */
.rh-step {
    animation: rh-step-in 360ms cubic-bezier(.32,.72,0,1);
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.rh-step[hidden] { display: none !important; }
@keyframes rh-step-in {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}
.rh-step-head { margin-bottom: 18px; }
.rh-step-title { font-size: 18px; font-weight: 700; color: var(--rh-text); margin: 0 0 4px; letter-spacing: -0.015em; }
[data-theme="dark"] .rh-step-title { color: #fff; }
.rh-step-desc { font-size: 13px; color: var(--rh-text-dim); margin: 0; }

/* === FORM === */
.rh-auth-form { display: flex; flex-direction: column; gap: 28px; }
.rh-auth-field { display: flex; flex-direction: column; gap: 7px; }
.rh-auth-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rh-auth-label { font-size: 12px; font-weight: 600; color: var(--rh-text); margin: 0; }
[data-theme="dark"] .rh-auth-label { color: rgba(255, 255, 255, 0.85); }
.rh-auth-label-row { display: flex; justify-content: space-between; align-items: baseline; }
.rh-auth-link-mute { font-size: 11.5px; color: var(--rh-text-dim); text-decoration: none; font-weight: 500; }
.rh-auth-link-mute:hover { color: var(--rh-purple); text-decoration: none; }

.rh-auth-input-wrap { position: relative; display: flex; align-items: center; }
.rh-auth-input-icon {
    position: absolute;
    left: 18px;
    color: var(--rh-text-mute);
    pointer-events: none;
    transition: color 180ms ease;
    z-index: 1;
    width: 18px !important;
    height: 18px !important;
}
.rh-auth-input {
    width: 100%;
    padding: 14px 18px 14px 56px !important;     /* gap visível entre ícone e texto */
    background: rgba(13, 10, 31, 0.02);
    border: 1.5px solid var(--rh-border);
    border-radius: 12px;
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 14.5px;
    color: var(--rh-text);
    transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
    -webkit-appearance: none;
    appearance: none;
    line-height: 1.4;
    min-height: 52px;
    box-sizing: border-box;
}
[data-theme="dark"] .rh-auth-input { background: rgba(255, 255, 255, 0.04); color: #fff; }
.rh-auth-input.rh-auth-input-flat { padding-left: 18px !important; }
/* Input com botão de show/hide (senha) tem padding direito maior pro botão caber */
.rh-auth-input-wrap:has(.rh-auth-input-toggle) .rh-auth-input { padding-right: 56px !important; }

/* ============================================================
   intl-tel-input — campo telefone WHMCS
   Estratégia: o wrap vira display:block (sem flex) e o plugin
   controla tudo internamente como foi projetado.
   ============================================================ */

/* 1. Esconde o ícone SVG — o flag já cumpre esse papel */
.rh-auth-input-wrap:has(.intl-tel-input) .rh-auth-input-icon { display: none !important; }

/* 2. Wrap vira block — sem flex que briga com o position:absolute do flag */
.rh-auth-input-wrap:has(.intl-tel-input) {
    display: block !important;
    padding: 0 !important;
}

/* 3. intl-tel-input ocupa 100% do wrap */
.intl-tel-input { width: 100% !important; }

/* 4. Input — padding-left sincronizado com os valores do plugin (allow-dropdown + iti-sdc-*) */
.intl-tel-input input.rh-auth-input,
.intl-tel-input input[type="tel"].rh-auth-input,
.intl-tel-input input[type="text"].rh-auth-input {
    padding-top:    14px !important;
    padding-bottom: 14px !important;
    padding-right:  18px !important;
    padding-left:   100px !important; /* flag 78px + 22px de respiro */
    width: 100% !important;
}
/* ajuste para códigos mais longos */
.intl-tel-input.allow-dropdown.iti-sdc-4 input.rh-auth-input { padding-left: 108px !important; }
.intl-tel-input.allow-dropdown.iti-sdc-5 input.rh-auth-input { padding-left: 116px !important; }

/* 5. selected-flag — dimensão explícita para iti-sdc-3 (Brasil +55 = allow-dropdown) */
.intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 .selected-flag {
    width: 78px !important;
}
/* visual geral — sem tocar em display/height (plugin usa display:table) */
.intl-tel-input .selected-flag {
    background: rgba(13,10,31,0.03) !important;
    border-right: 1.5px solid var(--rh-border) !important;
    border-radius: 11px 0 0 11px !important;
    overflow: visible !important;
}
[data-theme="dark"] .intl-tel-input .selected-flag {
    background: rgba(255,255,255,0.05) !important;
    border-right-color: rgba(255,255,255,0.08) !important;
}
.intl-tel-input .selected-dial-code {
    font-size: 13px !important;
    color: var(--rh-text-dim) !important;
    font-family: 'Poppins', sans-serif !important;
}
.intl-tel-input .iti-arrow {
    border-top-color: var(--rh-text-mute) !important;
}

/* 6. Dropdown — z-index alto, posicionado pelo plugin nativamente */
.country-list {
    border: 1.5px solid var(--rh-border) !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 32px rgba(13,10,31,0.14) !important;
    background: #fff !important;
    max-height: 240px !important;
    overflow-y: auto !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: 13px !important;
    padding: 6px 0 !important;
    z-index: 99999 !important;
}
[data-theme="dark"] .country-list {
    background: #150030 !important;
    border-color: rgba(255,255,255,0.1) !important;
    color: #fff !important;
}
.country-list .country { padding: 8px 14px !important; }
.country-list .country:hover,
.country-list .country.highlight { background: rgba(138,43,214,0.08) !important; }
.country-list .divider { border-color: var(--rh-border) !important; margin: 4px 0 !important; }
.rh-auth-input::placeholder { color: var(--rh-text-mute); }
.rh-auth-input:focus {
    outline: none;
    border-color: var(--rh-purple);
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 0 0 0 4px rgba(138, 43, 214, 0.10);
}
[data-theme="dark"] .rh-auth-input:focus { background: rgba(255, 255, 255, 0.08); }
.rh-auth-input-wrap:focus-within .rh-auth-input-icon { color: var(--rh-purple); }
.rh-auth-input.rh-input-error { border-color: #dc2626; box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.10); }
.rh-field-error-msg { display: none; font-size: 11.5px; color: #dc2626; margin-top: 5px; padding-left: 2px; }
.rh-auth-field:has(.rh-input-error) .rh-field-error-msg { display: block; }
@keyframes rh-shake { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-5px)} 40%{transform:translateX(5px)} 60%{transform:translateX(-3px)} 80%{transform:translateX(3px)} }
.rh-auth-input.rh-input-error { animation: rh-shake .35s ease; }

/* === FLASH MESSAGES (erros/sucesso vindos do WHMCS) === */
.rh-auth-flash {
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 18px;
    border: 1px solid transparent;
}
.rh-auth-flash ul { margin: 0; padding-left: 18px; }
.rh-auth-flash ul li { margin: 2px 0; }
.rh-auth-flash-error {
    background: rgba(220, 38, 38, 0.08);
    border-color: rgba(220, 38, 38, 0.25);
    color: #b91c1c;
}
.rh-auth-flash-success {
    background: rgba(16, 185, 129, 0.08);
    border-color: rgba(16, 185, 129, 0.25);
    color: #047857;
}
.rh-auth-flash-warning {
    background: rgba(245, 158, 11, 0.08);
    border-color: rgba(245, 158, 11, 0.25);
    color: #b45309;
}
.rh-auth-flash-info {
    background: rgba(138, 43, 214, 0.08);
    border-color: rgba(138, 43, 214, 0.25);
    color: var(--rh-purple-deep);
}
[data-theme="dark"] .rh-auth-flash-error { color: #fca5a5; }
[data-theme="dark"] .rh-auth-flash-success { color: #6ee7b7; }
[data-theme="dark"] .rh-auth-flash-warning { color: #fcd34d; }
[data-theme="dark"] .rh-auth-flash-info { color: #d8b8ff; }

/* === BANNER "Confirme seu e-mail" — layout estruturado, sem emoji === */
.rh-verify-notice {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 16px 18px;
    background: linear-gradient(135deg, rgba(245,158,11,0.10), rgba(245,158,11,0.04));
    border: 1px solid rgba(245,158,11,0.28);
    border-radius: 14px;
    margin-bottom: 22px;
}
.rh-verify-notice-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(245,158,11,0.16);
    color: #b45309;
    display: flex;
    align-items: center;
    justify-content: center;
}
.rh-verify-notice-body { flex: 1; min-width: 0; }
.rh-verify-notice-title {
    font-size: 14.5px;
    font-weight: 700;
    color: #92400e;
    margin: 0 0 6px;
    letter-spacing: -0.01em;
    line-height: 1.3;
}
.rh-verify-notice-text {
    font-size: 13px;
    line-height: 1.55;
    color: #78350f;
    margin: 0 0 8px;
}
.rh-verify-notice-email {
    display: inline-block;
    padding: 2px 8px;
    background: rgba(245,158,11,0.20);
    border-radius: 6px;
    font-weight: 600;
    color: #92400e;
    font-size: 12.5px;
    word-break: break-all;
    font-family: inherit;
}
.rh-verify-notice-hint {
    font-size: 12px;
    color: #a16207;
    margin: 0;
    line-height: 1.5;
    padding-top: 4px;
    border-top: 1px dashed rgba(245,158,11,0.22);
    margin-top: 6px;
}
.rh-verify-notice-hint a {
    color: #92400e;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.rh-verify-notice-hint a:hover { color: #78350f; }

[data-theme="dark"] .rh-verify-notice {
    background: linear-gradient(135deg, rgba(245,158,11,0.14), rgba(245,158,11,0.06));
    border-color: rgba(245,158,11,0.32);
}
[data-theme="dark"] .rh-verify-notice-icon {
    background: rgba(245,158,11,0.22);
    color: #fcd34d;
}
[data-theme="dark"] .rh-verify-notice-title { color: #fde68a; }
[data-theme="dark"] .rh-verify-notice-text  { color: #fde68a; }
[data-theme="dark"] .rh-verify-notice-hint  { color: #fcd34d; border-top-color: rgba(245,158,11,0.30); }
[data-theme="dark"] .rh-verify-notice-hint a { color: #fef3c7; }
[data-theme="dark"] .rh-verify-notice-email {
    background: rgba(245,158,11,0.25);
    color: #fef3c7;
}

.rh-auth-input-toggle {
    position: absolute;
    right: 8px;
    width: 32px; height: 32px;
    border: none;
    background: transparent;
    color: var(--rh-text-mute);
    cursor: pointer;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 150ms ease;
    padding: 0;
}
.rh-auth-input-toggle:hover { background: rgba(138, 43, 214, 0.08); color: var(--rh-purple); }
.rh-auth-eye-hide { display: none; }
.rh-auth-input-toggle-on .rh-auth-eye-show { display: none; }
.rh-auth-input-toggle-on .rh-auth-eye-hide { display: block; }

.rh-auth-hint { font-size: 11.5px; color: var(--rh-text-mute); margin: 0; line-height: 1.4; }
.rh-auth-hint a { color: var(--rh-purple); text-decoration: none; font-weight: 600; }
.rh-auth-hint a:hover { text-decoration: underline; }

/* Campos customizados do WHMCS ($customfields) — herda estilo dos nossos inputs */
.rh-custom-fields { display: flex; flex-direction: column; gap: 28px; }
.rh-custom-fields input[type="text"],
.rh-custom-fields input[type="date"],
.rh-custom-fields input[type="number"],
.rh-custom-fields select,
.rh-custom-fields textarea {
    width: 100% !important;
    padding: 14px 18px !important;
    background: rgba(13, 10, 31, 0.02) !important;
    border: 1.5px solid var(--rh-border) !important;
    border-radius: 12px !important;
    font-family: 'Poppins', -apple-system, sans-serif !important;
    font-size: 14.5px !important;
    color: var(--rh-text) !important;
    min-height: 52px !important;
    box-sizing: border-box !important;
    transition: border-color 180ms ease, box-shadow 180ms ease !important;
    -webkit-appearance: none;
    appearance: none;
}
.rh-custom-fields input:focus,
.rh-custom-fields select:focus,
.rh-custom-fields textarea:focus {
    outline: none !important;
    border-color: var(--rh-purple) !important;
    box-shadow: 0 0 0 4px rgba(138, 43, 214, 0.12) !important;
}
[data-theme="dark"] .rh-custom-fields input,
[data-theme="dark"] .rh-custom-fields select,
[data-theme="dark"] .rh-custom-fields textarea {
    background: rgba(255,255,255,0.04) !important;
    color: #fff !important;
}
.rh-custom-fields small { font-size: 11.5px; color: var(--rh-text-mute); margin-top: 2px; display: block; }

.rh-auth-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-size: 13px;
    color: var(--rh-text-dim);
    line-height: 1.5;
    user-select: none;
}
.rh-auth-checkbox input { display: none; }
.rh-auth-checkbox-box {
    width: 18px; height: 18px;
    flex-shrink: 0;
    border: 1.5px solid var(--rh-border);
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.6);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 180ms ease;
    margin-top: 1px;
    color: transparent;
}
[data-theme="dark"] .rh-auth-checkbox-box { background: rgba(255, 255, 255, 0.04); }
.rh-auth-checkbox input:checked + .rh-auth-checkbox-box {
    background: var(--rh-grad);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 4px 12px rgba(138, 43, 214, 0.32);
}
.rh-auth-checkbox a { color: var(--rh-purple); text-decoration: none; font-weight: 600; }
.rh-auth-checkbox a:hover { text-decoration: underline; }

.rh-auth-submit {
    background: var(--rh-grad);
    color: #fff;
    border: none;
    border-radius: 12px;
    padding: 14px 22px;
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: transform 180ms cubic-bezier(.32,.72,0,1), box-shadow 180ms ease;
    box-shadow: 0 4px 14px rgba(138, 43, 214, 0.32), 0 1px 2px rgba(138, 43, 214, 0.20);
    width: 100%;
    min-height: 50px;
}
.rh-auth-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(138, 43, 214, 0.45), 0 1px 2px rgba(138, 43, 214, 0.25);
}
.rh-auth-submit:active { transform: translateY(0); }

.rh-step-actions { display: flex; gap: 12px; align-items: center; margin-top: 8px; }
.rh-step-actions .rh-auth-submit { flex: 1; }
.rh-step-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 13px 18px;
    background: transparent;
    border: 1.5px solid var(--rh-border);
    color: var(--rh-text-dim);
    border-radius: 12px;
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: all 180ms ease;
    min-height: 50px;
}
.rh-step-back:hover {
    border-color: rgba(138, 43, 214, 0.3);
    color: var(--rh-purple);
    background: rgba(138, 43, 214, 0.04);
    transform: translateX(-2px);
}

/* === PF/PJ TOGGLE === */
.rh-pfpj-fields { display: flex; flex-direction: column; gap: 24px; }
.rh-pfpj-fields[hidden] { display: none !important; }
.rh-pfpj-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rh-pfpj-option { cursor: pointer; }
.rh-pfpj-option input { display: none; }
.rh-pfpj-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 14px 16px;
    border: 1.5px solid var(--rh-border);
    border-radius: 12px;
    background: rgba(13, 10, 31, 0.02);
    transition: all 180ms ease;
    color: var(--rh-text-dim);
}
[data-theme="dark"] .rh-pfpj-card { background: rgba(255, 255, 255, 0.03); }
.rh-pfpj-card svg { color: var(--rh-text-mute); }
.rh-pfpj-card strong { font-size: 13.5px; font-weight: 700; color: var(--rh-text); }
[data-theme="dark"] .rh-pfpj-card strong { color: #fff; }
.rh-pfpj-card small { font-size: 11.5px; color: var(--rh-text-mute); }
.rh-pfpj-option input:checked + .rh-pfpj-card {
    border-color: var(--rh-purple);
    background: rgba(138, 43, 214, 0.08);
    color: var(--rh-purple-deep);
    box-shadow: 0 0 0 4px rgba(138, 43, 214, 0.06);
}
.rh-pfpj-option input:checked + .rh-pfpj-card svg { color: var(--rh-purple); }
[data-theme="dark"] .rh-pfpj-option input:checked + .rh-pfpj-card { background: rgba(138, 43, 214, 0.18); color: #d8b8ff; }

/* === PASSWORD STRENGTH === */
.rh-pwd-strength { display: flex; align-items: center; gap: 8px; margin-top: 8px; margin-bottom: 4px; }
.rh-pwd-strength-bars { display: flex; gap: 3px; flex: 1; }
.rh-pwd-strength-bars span { height: 4px; flex: 1; background: var(--rh-border); border-radius: 2px; transition: background 180ms ease; }
.rh-pwd-strength.is-weak .rh-pwd-strength-bars span:nth-child(-n+1) { background: #dc2626; }
.rh-pwd-strength.is-medium .rh-pwd-strength-bars span:nth-child(-n+2) { background: #f59e0b; }
.rh-pwd-strength.is-strong .rh-pwd-strength-bars span:nth-child(-n+3) { background: #19a366; }
.rh-pwd-strength.is-very-strong .rh-pwd-strength-bars span { background: var(--rh-cyan-deep); }
.rh-pwd-strength-label {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rh-text-mute);
    min-width: 60px;
    text-align: right;
}

/* === CEP === */
.rh-cep-field { position: relative; }
.rh-cep-status {
    position: absolute;
    right: 14px;
    font-size: 11px;
    color: var(--rh-text-mute);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.rh-cep-status.is-loading::before {
    content: '';
    width: 14px; height: 14px;
    border: 2px solid var(--rh-border);
    border-top-color: var(--rh-purple);
    border-radius: 50%;
    animation: rh-spin 600ms linear infinite;
}
.rh-cep-status.is-ok { color: #19a366; font-weight: 600; }
.rh-cep-status.is-error { color: #dc2626; font-weight: 600; }
@keyframes rh-spin { to { transform: rotate(360deg); } }

/* === REVIEW === */
.rh-review {
    background: rgba(13, 10, 31, 0.02);
    border: 1px solid var(--rh-border);
    border-radius: 14px;
    overflow: hidden;
    margin-bottom: 18px;
}
[data-theme="dark"] .rh-review { background: rgba(255, 255, 255, 0.02); }
.rh-review-item {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 12px;
    padding: 12px 16px;
    align-items: center;
    border-bottom: 1px solid var(--rh-border);
}
.rh-review-item:last-child { border-bottom: none; }
.rh-review-key { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--rh-text-mute); }
.rh-review-value { font-size: 13.5px; font-weight: 500; color: var(--rh-text); word-break: break-word; }
[data-theme="dark"] .rh-review-value { color: #fff; }

/* === SSO === */
.rh-auth-sso { margin-bottom: 14px; }
.rh-auth-sso .social-signin-btns { display: grid; gap: 8px; }
.rh-auth-sso .social-signin-btns .btn,
.rh-auth-sso .social-signin-btns button,
.rh-auth-sso .social-signin-btns a {
    width: 100% !important;
    padding: 12px 16px !important;
    border-radius: 12px !important;
    border: 1.5px solid var(--rh-border) !important;
    background: rgba(255, 255, 255, 0.6) !important;
    color: var(--rh-text) !important;
    font-weight: 600 !important;
    font-size: 13.5px !important;
    transition: all 180ms ease !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-height: 46px !important;
    box-shadow: none !important;
}
[data-theme="dark"] .rh-auth-sso .social-signin-btns .btn,
[data-theme="dark"] .rh-auth-sso .social-signin-btns button,
[data-theme="dark"] .rh-auth-sso .social-signin-btns a {
    background: rgba(255, 255, 255, 0.04) !important;
    color: #fff !important;
}
.rh-auth-sso .social-signin-btns .btn:hover,
.rh-auth-sso .social-signin-btns button:hover,
.rh-auth-sso .social-signin-btns a:hover {
    border-color: var(--rh-purple) !important;
    background: rgba(138, 43, 214, 0.06) !important;
    transform: translateY(-1px);
}
.rh-auth-sso .social-signin-btns img,
.rh-auth-sso .social-signin-btns svg { width: 18px !important; height: 18px !important; }

.rh-auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--rh-text-mute);
}
.rh-auth-divider::before, .rh-auth-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--rh-border);
}

/* Divider e SSO secundários (depois do form) — peso visual menor */
.rh-auth-divider-secondary {
    margin-top: 22px;
    margin-bottom: 14px;
    font-size: 10px;
    color: var(--rh-text-mute);
    opacity: 0.85;
}
.rh-auth-sso-secondary .social-signin-btns {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    max-width: 360px;
    margin: 0 auto !important;
}
/* Botões SSO: tamanho menor + sem mexer em cor/border (deixa nativos) */
.rh-auth-sso-secondary .social-signin-btns .btn,
.rh-auth-sso-secondary .social-signin-btns > a,
.rh-auth-sso-secondary .social-signin-btns > button {
    padding: 9px 14px !important;
    font-size: 12.5px !important;
    min-height: 40px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    gap: 8px !important;
    border-radius: 10px !important;
    /* Não toca em background-color/color/border — Bootstrap nativo cuida */
}
/* Ícones SSO compactos */
.rh-auth-sso-secondary .social-signin-btns .btn > img,
.rh-auth-sso-secondary .social-signin-btns .btn > svg,
.rh-auth-sso-secondary .social-signin-btns .btn > .fa,
.rh-auth-sso-secondary .social-signin-btns .btn > i,
.rh-auth-sso-secondary .social-signin-btns > a > img,
.rh-auth-sso-secondary .social-signin-btns > a > svg,
.rh-auth-sso-secondary .social-signin-btns > a > i {
    width: 16px !important;
    height: 16px !important;
    font-size: 14px !important;
    flex-shrink: 0 !important;
}
@media (max-width: 480px) {
    .rh-auth-sso-secondary .social-signin-btns {
        grid-template-columns: 1fr;
    }
}

/* === CARD FOOTER + TRUST === */
.rh-auth-card-foot {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--rh-border);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 13px;
    color: var(--rh-text-dim);
    flex-wrap: wrap;
}
.rh-auth-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--rh-purple);
    font-weight: 700;
    text-decoration: none;
    transition: gap 180ms ease;
}
.rh-auth-link:hover { color: var(--rh-purple); text-decoration: none; gap: 6px; }
[data-theme="dark"] .rh-auth-link { color: #d8b8ff; }

.rh-auth-trust { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; padding: 0 8px; }
.rh-auth-trust-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    color: var(--rh-text-mute);
    font-weight: 500;
}
.rh-auth-trust-item svg { color: var(--rh-purple); opacity: 0.7; }

/* === CHAT BUBBLE === */
.rh-auth-chat-bubble {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 40;
    background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
    color: #fff !important;
    padding: 12px 18px 12px 14px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.45), 0 1px 2px rgba(0, 0, 0, 0.1);
    transition: transform 180ms ease, box-shadow 180ms ease;
    animation: rh-chat-bounce 4s ease-in-out infinite;
}
.rh-auth-chat-bubble:hover {
    transform: translateY(-3px) scale(1.03);
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 12px 32px rgba(37, 211, 102, 0.6);
}
@keyframes rh-chat-bounce {
    0%, 90%, 100% { transform: translateY(0); }
    95% { transform: translateY(-4px); }
}

/* === FOOTER (adapta ao tema pra evitar contraste bruto com body) === */
.rh-auth-footer {
    background: #f5f3fa;
    color: rgba(13, 10, 31, 0.65);
    padding: 56px 24px 32px;
    margin-top: 0;
    position: relative;
    /* Garante full-width mesmo se algum parent tiver max-width */
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
}
.rh-auth-footer::before {
    content: '';
    position: absolute;
    top: -40px; left: 0; right: 0;
    height: 40px;
    background: linear-gradient(180deg, transparent, #f5f3fa);
    pointer-events: none;
}
[data-theme="dark"] .rh-auth-footer {
    background: linear-gradient(135deg, #110020 0%, #1a0033 100%);
    color: rgba(255, 255, 255, 0.65);
}
[data-theme="dark"] .rh-auth-footer::before {
    background: linear-gradient(180deg, transparent, #110020);
}
.rh-auth-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 32px;
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(13, 10, 31, 0.08);
}
[data-theme="dark"] .rh-auth-footer-inner { border-bottom-color: rgba(255, 255, 255, 0.08); }
.rh-auth-footer-brand { max-width: 320px; }
.rh-auth-footer-logo { display: block; margin-bottom: 14px; }
/* Footer adapta ao tema — light mode usa logo original, dark usa negative */
.rh-auth-footer-logo-light { display: block !important; }
.rh-auth-footer-logo-dark { display: none !important; }
[data-theme="dark"] .rh-auth-footer-logo-light { display: none !important; }
[data-theme="dark"] .rh-auth-footer-logo-dark { display: block !important; }
.rh-auth-footer-tagline { font-size: 13px; line-height: 1.55; color: rgba(13, 10, 31, 0.55); margin: 0; }
[data-theme="dark"] .rh-auth-footer-tagline { color: rgba(255, 255, 255, 0.55); }
.rh-auth-footer-cols { display: contents; }
.rh-auth-footer-col { display: flex; flex-direction: column; gap: 10px; }
.rh-auth-footer-col h6 {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: var(--rh-text);
    margin: 0 0 6px;
}
[data-theme="dark"] .rh-auth-footer-col h6 { color: #fff; }
.rh-auth-footer-col a {
    font-size: 13px;
    color: rgba(13, 10, 31, 0.55);
    text-decoration: none;
    transition: color 150ms ease;
}
[data-theme="dark"] .rh-auth-footer-col a { color: rgba(255, 255, 255, 0.55); }
.rh-auth-footer-col a:hover { color: var(--rh-purple); text-decoration: none; }
[data-theme="dark"] .rh-auth-footer-col a:hover { color: var(--rh-cyan); }
.rh-auth-footer-bottom {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 12px;
    color: rgba(13, 10, 31, 0.4);
    border-top: 1px solid rgba(13, 10, 31, 0.08);
    padding-top: 18px;
}
[data-theme="dark"] .rh-auth-footer-bottom {
    color: rgba(255, 255, 255, 0.4);
    border-top-color: rgba(255, 255, 255, 0.08);
}
.rh-auth-footer-status { display: inline-flex; align-items: center; gap: 6px; }
.rh-auth-footer-status-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 8px #22c55e;
    animation: rh-pulse 2s ease-in-out infinite;
}

/* === MOBILE === */
@media (max-width: 768px) {
    .rh-auth-nav { padding: 10px 16px; }
    .rh-auth-nav.rh-auth-nav-scrolled { padding: 8px 16px; }
    .rh-auth-nav-links { display: none; }
    .rh-auth-nav-back-label { display: none; }
    .rh-auth-nav-back {
        width: 36px; height: 36px;
        padding: 0;
        border-radius: 10px;
        justify-content: center;
    }

    .rh-auth-page { padding: 40px 14px 80px; }
    .rh-auth-card { padding: 26px 22px; border-radius: 18px; }
    .rh-auth-card-title { font-size: 24px; }
    .rh-auth-card-subtitle { font-size: 13px; }

    .rh-step-progress-list { grid-template-columns: repeat(4, 1fr); }
    .rh-step-progress-label { display: none; }
    .rh-step-progress-item:not(:last-child)::after {
        top: 13px;
        left: calc(50% + 13px);
        right: calc(-50% + 13px);
    }

    .rh-auth-field-row { grid-template-columns: 1fr; gap: 14px; }
    .rh-auth-field-row .rh-auth-field[style*="max-width"] { max-width: 100% !important; }

    .rh-pfpj-toggle { gap: 8px; }
    .rh-pfpj-card { padding: 12px; }

    .rh-auth-chat-bubble { bottom: 14px; right: 14px; padding: 12px; }
    .rh-auth-chat-label { display: none; }

    .rh-auth-footer { padding: 40px 18px 24px; margin-top: 40px; }
    .rh-auth-footer-inner { grid-template-columns: 1fr 1fr; gap: 28px 24px; }
    .rh-auth-footer-brand { grid-column: 1 / -1; }
    .rh-auth-footer-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }

    .rh-step-actions {
        position: sticky;
        bottom: 0;
        margin: 16px -22px -26px;
        padding: 14px 22px 16px;
        background: linear-gradient(180deg, transparent, rgba(255,255,255,0.96) 30%);
        backdrop-filter: blur(8px);
    }
    [data-theme="dark"] .rh-step-actions {
        background: linear-gradient(180deg, transparent, rgba(21,0,43,0.92) 30%);
    }
}

@media (max-width: 380px) {
    .rh-auth-card { padding: 22px 18px; }
    .rh-auth-card-title { font-size: 22px; }
    .rh-step-actions { gap: 8px; }
    .rh-step-back { padding: 12px 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .rh-auth-bg-orb,
    .rh-auth-card-pulse,
    .rh-auth-chat-bubble,
    .rh-auth-footer-status-dot,
    .rh-step { animation: none !important; }
}

/* =============================================================
   NUCLEAR FIXES (no fim do arquivo pra vencer cascata)
   ============================================================= */

/* INPUTS: padding-left forçado + line-height + box-sizing */
.rh-auth-card .rh-auth-input-wrap input.rh-auth-input,
.rh-auth-card form input.rh-auth-input,
form .rh-auth-input,
.rh-auth-page input.rh-auth-input,
body input.rh-auth-input {
    padding-left: 56px !important;
    padding-right: 18px !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    min-height: 52px !important;
    line-height: 1.5 !important;
    text-indent: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

/* Telefone (intl-tel-input) — DEVE vencer o nuclear acima.
   Especificidade (0,4,1) > nuclear (0,3,1). flag 78px + 22px de respiro = 100px */
.rh-auth-card .rh-auth-input-wrap .intl-tel-input input.rh-auth-input,
.rh-auth-card form .intl-tel-input input.rh-auth-input,
.rh-auth-page .intl-tel-input input.rh-auth-input,
body .intl-tel-input input.rh-auth-input {
    padding-left: 100px !important;
}
.rh-auth-card .rh-auth-input-wrap .intl-tel-input.allow-dropdown.iti-sdc-4 input.rh-auth-input,
.rh-auth-page .intl-tel-input.allow-dropdown.iti-sdc-4 input.rh-auth-input,
body .intl-tel-input.allow-dropdown.iti-sdc-4 input.rh-auth-input {
    padding-left: 108px !important;
}
.rh-auth-card .rh-auth-input-wrap .intl-tel-input.allow-dropdown.iti-sdc-5 input.rh-auth-input,
.rh-auth-page .intl-tel-input.allow-dropdown.iti-sdc-5 input.rh-auth-input,
body .intl-tel-input.allow-dropdown.iti-sdc-5 input.rh-auth-input {
    padding-left: 116px !important;
}

/* Wrappers/containers todos com width 100% e box-sizing */
.rh-auth-form,
.rh-auth-field,
.rh-auth-input-wrap,
.rh-auth-card-wrap,
.rh-step-actions {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* CTA Submit: alinhamento exato com inputs */
.rh-auth-card .rh-auth-submit,
.rh-step-actions .rh-auth-submit {
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 52px !important;
    margin: 0 !important;
}
/* Step actions: back + next ocupam linha cheia, distribuídos */
.rh-step-actions {
    display: flex !important;
    gap: 12px !important;
}
.rh-step-actions .rh-step-back {
    flex: 0 0 auto;
    box-sizing: border-box !important;
    min-height: 52px !important;
}
.rh-step-actions .rh-auth-submit { flex: 1 1 auto; }
/* Step 1 (sem Voltar): botão Continuar full-width centralizado */
.rh-step-actions-single .rh-auth-submit { width: 100% !important; }
.rh-auth-card .rh-auth-input-wrap input.rh-auth-input.rh-auth-input-flat,
.rh-auth-page input.rh-auth-input.rh-auth-input-flat {
    padding-left: 18px !important;
}
/* Ícones nos inputs em posição correta + tamanho fixo */
.rh-auth-input-wrap > .rh-auth-input-icon,
.rh-auth-page .rh-auth-input-icon,
svg.rh-auth-input-icon {
    position: absolute !important;
    left: 18px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 18px !important;
    height: 18px !important;
    pointer-events: none !important;
    z-index: 2 !important;
}
/* Botão olho (toggle senha) — posição fixa direita */
.rh-auth-input-wrap > .rh-auth-input-toggle {
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
}
/* Senha tem padding direito maior pro botão olho não colar */
input#inputPassword.rh-auth-input,
input#inputNewPassword1.rh-auth-input,
input#inputNewPassword2.rh-auth-input {
    padding-right: 56px !important;
}

/* CHAT LAUNCHER: zero animação no hover, ícone fixo + centralizado */
.rollin-chat-launcher,
.rollin-chat-launcher:hover,
.rollin-chat-launcher:focus,
.rollin-chat-launcher:active,
#rollin-ai-launcher,
#rollin-ai-launcher:hover {
    transform: none !important;
    scale: 1 !important;
    transition: box-shadow 200ms ease !important;
    animation: none !important;
    /* Garante centralização do filho (ícone) */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
}
.rollin-chat-launcher:hover {
    box-shadow: 0 16px 40px rgba(138,43,214,0.65) !important;
}

/* Ícone do launcher: centralização absoluta + compensa offset do viewBox do SVG */
.rollin-chat-launcher .rollin-chat-launcher-icon,
.rollin-chat-launcher img.rollin-chat-launcher-icon,
.rollin-chat-launcher > img,
.rollin-chat-launcher > svg {
    width: 28px !important;
    height: 28px !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    transform: translateX(2px) translateY(-1px) !important;  /* compensa offset do icon-rollin.svg */
    flex-shrink: 0 !important;
    display: block !important;
    pointer-events: none !important;
}

/* =============================================================
   SSO BUTTONS — VERSÃO FINAL: ícones via pseudo-element
   ============================================================= */

/* =============================================================
   SSO BUTTONS — minimal, deixa SDK Facebook + Google renderizarem
   Estrutura real:
   - <button.btn-facebook.fb-login-button> Facebook
   - <div.g_id_signin.btn-google>          Google (widget GIS)
   - + scripts/divs auxiliares (escondidos)
   ============================================================= */

/* Esconde tudo que NÃO é botão visível: scripts, divs vazias, etc. */
.rh-auth-sso-secondary .social-signin-btns > script,
.rh-auth-sso-secondary .social-signin-btns > template,
.rh-auth-sso-secondary .social-signin-btns > style,
.rh-auth-sso-secondary .social-signin-btns > div:not([class]),
.rh-auth-sso-secondary .social-signin-btns > div:empty {
    display: none !important;
}

/* Botão Facebook: substituímos visual do FB SDK */
.rh-auth-sso-secondary .social-signin-btns > .btn-facebook,
.rh-auth-sso-secondary .social-signin-btns > .fb-login-button {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 1.5px solid var(--rh-border) !important;
    outline: none !important;
    box-shadow: none !important;
    color: var(--rh-text-dim) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 10px 14px !important;
    min-height: 42px !important;
    /* font-size: 0 esconde text-node nativo, pseudo-elements restauram */
    font-size: 0 !important;
    font-weight: 500 !important;
    border-radius: 10px !important;
    line-height: 1.2 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    text-transform: none !important;
}

/* Esconde QUALQUER filho do Facebook button (img, span, svg, text-node) */
.rh-auth-sso-secondary .social-signin-btns > .btn-facebook > *,
.rh-auth-sso-secondary .social-signin-btns > .fb-login-button > * {
    display: none !important;
}

/* Ícone Facebook via ::before */
.rh-auth-sso-secondary .social-signin-btns > .btn-facebook::before {
    content: '' !important;
    display: inline-block !important;
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0 !important;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%231877F2' d='M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.413c0-3.017 1.79-4.683 4.533-4.683 1.313 0 2.686.235 2.686.235v2.97h-1.513c-1.49 0-1.953.93-1.953 1.886v2.262h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z'/></svg>") center/contain no-repeat !important;
}

/* Texto via ::after — texto curto pra caber lado a lado com o Google */
.rh-auth-sso-secondary .social-signin-btns > .btn-facebook::after {
    content: 'Facebook' !important;
    display: inline-block !important;
    font-size: 12.5px !important;  /* restaura font-size escondido no parent */
    font-weight: 500 !important;
    color: var(--rh-text-dim) !important;
    line-height: 1.2 !important;
}
[data-theme="dark"] .rh-auth-sso-secondary .social-signin-btns > .btn-facebook::after {
    color: rgba(255, 255, 255, 0.7) !important;
}

/* Container do Google: visual próprio, iframe do GIS fica invisível mas clicável em cima */
.rh-auth-sso-secondary .social-signin-btns > .g_id_signin,
.rh-auth-sso-secondary .social-signin-btns > .btn-google {
    border: 1.5px solid var(--rh-border) !important;
    border-radius: 10px !important;
    padding: 10px 14px !important;
    width: 100% !important;
    min-height: 42px !important;
    box-sizing: border-box !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: hidden !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    position: relative !important;
    cursor: pointer !important;
}
/* Ícone Google G colorido via ::before */
.rh-auth-sso-secondary .social-signin-btns > .g_id_signin::before,
.rh-auth-sso-secondary .social-signin-btns > .btn-google::before {
    content: '' !important;
    display: inline-block !important;
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0 !important;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%234285F4' d='M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z'/><path fill='%2334A853' d='M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z'/><path fill='%23FBBC05' d='M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l3.66-2.84z'/><path fill='%23EA4335' d='M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'/></svg>") center/contain no-repeat !important;
    pointer-events: none !important;
}
/* Texto "Google" via ::after — mesmo tamanho do Facebook */
.rh-auth-sso-secondary .social-signin-btns > .g_id_signin::after,
.rh-auth-sso-secondary .social-signin-btns > .btn-google::after {
    content: 'Google' !important;
    display: inline-block !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    color: var(--rh-text-dim) !important;
    line-height: 1.2 !important;
    pointer-events: none !important;
}
[data-theme="dark"] .rh-auth-sso-secondary .social-signin-btns > .g_id_signin::after,
[data-theme="dark"] .rh-auth-sso-secondary .social-signin-btns > .btn-google::after {
    color: rgba(255, 255, 255, 0.7) !important;
}
/* Iframe/div do GIS: invisível, cobre só o container, mantém clicabilidade */
.rh-auth-sso-secondary .social-signin-btns > .g_id_signin > *,
.rh-auth-sso-secondary .social-signin-btns > .btn-google > * {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    cursor: pointer !important;
    border: none !important;
    box-shadow: none !important;
    z-index: 1 !important;
}

/* Hover */
.rh-auth-sso-secondary .social-signin-btns > .btn-facebook:hover,
.rh-auth-sso-secondary .social-signin-btns > .g_id_signin:hover,
.rh-auth-sso-secondary .social-signin-btns > .btn-google:hover {
    border-color: rgba(138, 43, 214, 0.4) !important;
    background: rgba(138, 43, 214, 0.04) !important;
}

/* Remove pseudo-elements de outros seletores que poderiam duplicar ícones */
.rh-auth-sso-secondary .social-signin-btns > div:not(.btn-google):not(.g_id_signin)::before,
.rh-auth-sso-secondary .social-signin-btns > div:not(.btn-google):not(.g_id_signin)::after,
.rh-auth-sso-secondary .social-signin-btns > a::before,
.rh-auth-sso-secondary .social-signin-btns > a::after {
    display: none !important;
    content: none !important;
}
