:root{font-family:Inter,system-ui,sans-serif;color:#141721;background:#f5f6fa;--p:#6255e7;--green:#059669;--red:#e5483d;--orange:#d97706}*{box-sizing:border-box}body{margin:0}.loading{padding:40px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f3f1ff,#f8fafc)}.login-card,.card{background:white;border:1px solid #e4e7ef;border-radius:18px;box-shadow:0 8px 24px #1f29370d}.login-card{width:min(420px,calc(100vw - 32px));padding:32px}.login h1{margin:0 0 8px}.muted{color:#778095}.access-note{font-size:12px;margin:18px 0 0}.field{display:grid;gap:7px;margin:18px 0}.field input,.field select{width:100%;padding:12px 14px;border:1px solid #dce0e9;border-radius:10px;font:inherit}.btn{border:0;border-radius:10px;padding:11px 15px;font-weight:700;cursor:pointer}.primary{background:var(--p);color:white}.danger{background:#fee2e2;color:#991b1b}.error{color:#b91c1c;margin-top:12px}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.side{background:white;border-right:1px solid #e4e7ef;padding:22px 14px}.brand{font-size:20px;font-weight:800;padding:0 10px 24px}.nav{display:grid;gap:6px}.nav button{background:none;border:0;text-align:left;padding:11px;border-radius:9px;color:#596174;font:inherit;cursor:pointer}.nav button.active{background:#eeecff;color:var(--p);font-weight:700}.main{padding:26px;min-width:0}.top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.filters{display:flex;gap:8px}.filters select{padding:9px;border:1px solid #dce0e9;border-radius:9px}.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{padding:20px}.kpi span{color:#778095}.kpi b{display:block;font-size:26px;margin-top:10px}.charts{grid-template-columns:1fr 1fr;margin-top:16px}.chart{padding:20px;min-height:360px}.chart canvas{max-height:300px}.table-card{margin-top:16px;overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:13px;text-align:left;border-bottom:1px solid #edf0f5}th{color:#7b8497;font-size:12px;text-transform:uppercase}.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px}.modal{position:fixed;inset:0;background:#11182788;display:grid;place-items:center;padding:20px}.modal-box{background:white;border-radius:18px;padding:24px;width:min(560px,100%);max-height:90vh;overflow:auto}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hidden{display:none!important}@media(max-width:900px){.shell{grid-template-columns:1fr}.side{border:0;border-bottom:1px solid #e4e7ef}.nav{grid-template-columns:repeat(4,1fr)}.kpis,.charts{grid-template-columns:1fr 1fr}}@media(max-width:580px){.main{padding:16px}.kpis,.charts,.row{grid-template-columns:1fr}.top{align-items:flex-start}.nav{grid-template-columns:1fr 1fr}}

/* v5.2.0 — recuperação de conta */
.login-card>.link-btn.login-back{margin:-4px 0 16px}.login-card .btn.primary{width:100%;justify-content:center}.login-links{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}.link-btn{border:0;background:transparent;color:var(--p);font:inherit;font-size:12px;font-weight:700;padding:4px 0;cursor:pointer;text-align:left}.link-btn:hover{text-decoration:underline}.email-hint{margin:18px 0;padding:16px;border-radius:12px;background:#f3f1ff;border:1px solid #e4e0ff;text-align:center;font-size:18px;font-weight:800;letter-spacing:.02em}.login-card .error:empty{display:none}.login-card .error{font-size:12px;line-height:1.45}.login-card .btn{display:inline-flex;align-items:center;justify-content:center}

.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:8px}.login-brand h1{margin:0}.login-brand-logo{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#635bff,#9b7bff);display:grid;place-items:center;color:#fff;box-shadow:0 8px 20px rgba(98,85,231,.24);flex:0 0 auto}.login-brand-logo svg{width:25px;height:25px}

/* v5.2.7 — recuperação em etapas, inspirada em provedores modernos */
.recovery-method-list{display:grid;gap:10px;margin:18px 0}
.recovery-method{display:flex;gap:12px;align-items:center;border:1px solid var(--border,#d8deea);border-radius:14px;padding:14px 16px;background:var(--card-2,#f7f8fc)}
.recovery-method input{width:18px;height:18px;margin:0}
.recovery-method span,.recovery-method.future span:last-child{display:grid;gap:3px}
.recovery-method small{color:var(--muted,#7a849a)}
.recovery-method.future{opacity:.55;display:flex;gap:12px;align-items:center;border:1px dashed var(--border,#d8deea);border-radius:14px;padding:14px 16px}
.method-dot{width:18px;height:18px;border:2px solid var(--muted,#7a849a);border-radius:50%}

/* v5.3.0 — passkeys e segunda etapa no login */
.passkey-login-btn{width:100%;margin-top:10px;background:#f3f4f8;color:#343849;border:1px solid #e0e3eb}.passkey-login-btn:hover{background:#eceef5}.mfa-switch{display:block;margin:14px auto 0;text-align:center}.recovery-method.selected{border-color:var(--p);box-shadow:0 0 0 2px #6255e71a}
.login-language{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:20px;color:#778095;font-size:11px}.login-language select{width:auto!important;padding:6px 8px!important;border-radius:8px!important;font-size:11px!important}

/* v5.5.2 — código de seis dígitos */
.otp-code{position:relative;width:100%;cursor:text}.otp-real{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:.01!important;z-index:2;cursor:text}.otp-boxes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.otp-boxes span{height:54px;border:1.5px solid #dce0e9;border-radius:11px;background:#fff;display:grid;place-items:center;font-size:23px;font-weight:750;color:#171923;transition:border-color .15s,box-shadow .15s,background .15s}.otp-boxes span.active{border-color:#398ad7;box-shadow:0 0 0 2px #398ad72e}.otp-boxes span.filled{background:#fafaff}@media(max-width:420px){.otp-boxes{gap:6px}.otp-boxes span{height:48px;border-radius:9px;font-size:20px}}
