/*
 * Cadastro do cliente (Cadastre-se) no visual do sistema (09/11/2026).
 * O arquivo antigo não existia no servidor: a página aparecia sem estilo.
 */
:root {
    --vc-p1: #1594a8; --vc-p2: #0c7a92; --vc-claro: #e3f4f6; --vc-texto: #0f3448; --vc-suave: #678190;
    --vc-borda: #e0ebed; --vc-fundo: #f4f8f9; --vc-erro: #a3283c; --vc-ok: #1f6b4d;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font-family: 'Nunito', 'Segoe UI', Roboto, Arial, sans-serif; color: var(--vc-texto);
    background: linear-gradient(180deg, #f6fbfb 0%, #f3f7f8 55%, #f5f2fb 100%); }
.vcadastro-page { min-height: 100vh; }
.vcadastro-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }

/* lado da arte */
.vcadastro-brand { position: relative; overflow: hidden; display: flex; align-items: flex-end; padding: 48px clamp(28px, 5vw, 72px);
    background: url(../img/dashboard/faixa-zen.jpg) 84% center / cover no-repeat; }
.vcadastro-brand::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0) 25%, rgba(244,248,249,.94) 100%); }
.vcadastro-brand__content { position: relative; z-index: 1; max-width: 460px; }
.vcadastro-logo img { width: 104px; height: auto; display: block; margin-bottom: 14px; }
.vcadastro-brand h1 { margin: 0 0 8px; font-size: clamp(26px, 3vw, 36px); line-height: 1.15; font-weight: 800; }
.vcadastro-brand p { margin: 0 0 18px; color: var(--vc-suave); line-height: 1.5; }
.vcadastro-security { display: flex; gap: 12px; align-items: flex-start; background: rgba(255,255,255,.9); border: 1px solid var(--vc-borda); border-radius: 14px; padding: 12px 14px; }
.vcadastro-security i { color: var(--vc-p1); }
.vcadastro-security strong { display: block; font-size: 14px; }
.vcadastro-security span { font-size: 13px; color: var(--vc-suave); line-height: 1.4; }

/* cartão do formulário */
.vcadastro-card { margin: 28px; align-self: center; background: #fff; border: 1px solid var(--vc-borda); border-radius: 22px; padding: 24px 28px 28px;
    box-shadow: 0 24px 60px -28px rgba(15,52,72,.35); max-width: 760px; width: calc(100% - 56px); justify-self: center; }
.vcadastro-card__header h2 { margin: 6px 0 4px; font-size: 24px; font-weight: 800; }
.vcadastro-card__header p { margin: 0 0 16px; color: var(--vc-suave); }
.vcadastro-back { display: inline-flex; align-items: center; gap: 6px; color: var(--vc-p2); font-weight: 700; text-decoration: none; font-size: 14px; }
.vcadastro-back i { font-size: 18px; }
.vcadastro-alert { display: flex; gap: 10px; align-items: flex-start; border-radius: 12px; padding: 10px 12px; margin: 0 0 14px; font-size: 14px; }
.vcadastro-alert--error { background: #fff1f4; color: var(--vc-erro); border: 1px solid #f3c7d0; }

.vcadastro-section-title { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 12px; }
.vcadastro-section-title i { color: var(--vc-p1); background: var(--vc-claro); border-radius: 10px; padding: 6px; font-size: 20px; }
.vcadastro-section-title strong { display: block; font-size: 15px; }
.vcadastro-section-title span { font-size: 13px; color: var(--vc-suave); }

.vcadastro-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.vcadastro-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.vcadastro-field--wide { grid-column: 1 / -1; }
.vcadastro-field label { font-size: 13.5px; font-weight: 700; color: var(--vc-texto); }
.vcadastro-field input, .vcadastro-field select { width: 100%; height: 46px; padding: 0 12px; border: 1px solid var(--vc-borda); border-radius: 12px;
    background: var(--vc-fundo); color: var(--vc-texto); font: inherit; font-size: 15px; }
.vcadastro-field input:focus, .vcadastro-field select:focus { outline: none; border-color: var(--vc-p1); box-shadow: 0 0 0 3px rgba(21,148,168,.18); background: #fff; }
.vcadastro-field.has-error input, .vcadastro-field.has-error select { border-color: var(--vc-erro); background: #fff7f8; }
.field-error { color: var(--vc-erro); font-size: 12.5px; min-height: 0; }
.vcadastro-password { display: flex; gap: 6px; }
.vcadastro-password input { flex: 1; }
.vcadastro-password button { width: 46px; height: 46px; border: 1px solid var(--vc-borda); border-radius: 12px; background: #fff; color: var(--vc-p2); cursor: pointer; }
.password-rules { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 10px; font-size: 12.5px; color: var(--vc-suave); }
.password-rules li::before { content: '○ '; }
.password-rules li.is-valid { color: var(--vc-ok); }
.password-rules li.is-valid::before { content: '✓ '; }

.vcadastro-contact { display: grid; grid-template-columns: 1.4fr 1.2fr .6fr auto; gap: 10px; align-items: end; margin-bottom: 10px; }
.vcadastro-remove-contact { height: 46px; width: 46px; border: 1px solid var(--vc-borda); border-radius: 12px; background: #fff; color: var(--vc-erro); cursor: pointer; }
.vcadastro-add-contact { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; color: var(--vc-p2); font: inherit; font-weight: 700; cursor: pointer; padding: 4px 0; }

.vcadastro-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; flex-wrap: wrap; }
.vcadastro-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 14px; border: 0;
    font: inherit; font-weight: 800; font-size: 15.5px; text-decoration: none; cursor: pointer; }
.vcadastro-button--primary { background: linear-gradient(135deg, var(--vc-p1), var(--vc-p2)); color: #fff; box-shadow: 0 12px 24px -12px rgba(12,122,146,.7); }
.vcadastro-button--secondary { background: var(--vc-claro); color: var(--vc-p2); }
.vcadastro-button.is-loading { opacity: .7; cursor: wait; }
.vcadastro-button:focus-visible, .vcadastro-back:focus-visible { outline: 3px solid rgba(21,148,168,.35); outline-offset: 2px; }

/* aviso de cadastro feito */
.vcadastro-modal { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; background: rgba(15,52,72,.45); padding: 20px; z-index: 50; }
.vcadastro-modal.is-open { display: flex; }
.vcadastro-modal__box { background: #fff; border-radius: 22px; padding: 28px 24px; max-width: 400px; width: 100%; text-align: center; }
.vcadastro-modal__icon i { font-size: 54px; color: var(--vc-ok); }
.vcadastro-modal__box h2 { margin: 6px 0; }
.vcadastro-modal__box p { color: var(--vc-suave); }
.vcadastro-modal__box span { display: block; font-size: 13px; color: var(--vc-suave); margin-bottom: 16px; }

@media (max-width: 900px) {
    .vcadastro-shell { grid-template-columns: 1fr; }
    .vcadastro-brand { min-height: 210px; padding: 22px 18px 40px; }
    .vcadastro-brand p, .vcadastro-security { display: none; }
    .vcadastro-brand h1 { font-size: 24px; margin: 0; }
    .vcadastro-logo img { width: 78px; margin-bottom: 8px; }
    .vcadastro-card { margin: -24px 12px 24px; width: calc(100% - 24px); padding: 20px 16px 22px; position: relative; z-index: 2; }
    .vcadastro-grid { grid-template-columns: 1fr; }
    .vcadastro-contact { grid-template-columns: 1fr 1fr; }
    .vcadastro-field--ramal { grid-column: auto; }
    .vcadastro-actions .vcadastro-button { flex: 1; }
}

/* 10/11/2026: cadastro só pelo link da empresa */
.vcadastro-semlink { text-align: center; padding: 18px 8px 6px; }
.vcadastro-semlink > .material-icons { font-size: 44px; color: var(--vc-p1); background: var(--vc-claro); border-radius: 50%; padding: 14px; }
.vcadastro-semlink h3 { margin: 14px 0 8px; font-size: 21px; }
.vcadastro-semlink p { color: var(--vc-suave); line-height: 1.55; margin: 0 0 10px; }
.vcadastro-semlink .vcadastro-button { margin-top: 10px; }
.vcadastro-empresa-fixa { display: flex; align-items: center; gap: 8px; height: 46px; padding: 0 12px; border-radius: 12px; background: var(--vc-claro); color: var(--vc-p2); font-weight: 800; }
