/* My Routine 2.9.3 — telas de cadastro e login (visual NEO). Só aparência; não toca nos dados do app. */
.auth-root[hidden]{display:none!important}
.auth-root{position:fixed;inset:0;z-index:3500;display:block;overflow-y:auto;overscroll-behavior:contain;color:#eaf1fa;
  background:radial-gradient(ellipse at 80% -10%,color-mix(in srgb,var(--acento,#ff3b4f) 20%,transparent),transparent 55%),radial-gradient(ellipse at 0% 100%,color-mix(in srgb,var(--acento2,#7c3aed) 14%,transparent),transparent 50%),var(--fundo,#0b0f17)}
.auth-shell{min-height:100%;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))}
.auth-card{width:min(100%,420px);background:var(--neo-surface,#151c29);border:1px solid var(--neo-stroke,#334155);border-radius:18px;padding:28px 22px;box-shadow:0 18px 60px #0009,0 0 40px var(--neo-glow,transparent);animation:auth-entra .45s cubic-bezier(.2,.7,.2,1) both}
.auth-card h1,.auth-card h2{margin:0 0 6px;font-size:clamp(1.45rem,5vw,1.8rem);letter-spacing:-.04em;line-height:1.15;color:#f4f7fc;outline:none}
.auth-logo{font-size:2.4rem;line-height:1;margin-bottom:10px;filter:drop-shadow(0 0 14px var(--neo-glow,transparent))}
.auth-sub{margin:0 0 20px;color:var(--neo-muted,#a8b7c9);line-height:1.5}
.auth-acoes{display:grid;gap:10px;margin-top:6px}
.auth-card form{display:grid;gap:14px}
.auth-campo{display:grid;gap:6px;font-size:.88rem;color:var(--neo-muted,#a8b7c9);font-weight:600}
.auth-campo input{width:100%;min-height:46px;padding:11px 13px;border-radius:11px;border:1px solid var(--neo-stroke,#334155);background:var(--neo-surface-2,#1a2433);color:#f4f7fc;font:inherit;font-size:16px}
.auth-campo input[aria-invalid=true]{border-color:#ff7b8a}
.auth-senha{position:relative;display:block}
.auth-senha input{padding-right:84px}
.auth-ver{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-height:44px;min-width:48px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--acento,#ff3b4f);font:inherit;font-size:.82rem;font-weight:700}
.auth-dica{margin:0;font-size:.78rem;font-weight:400;color:var(--neo-muted,#a8b7c9)}
.auth-erro-campo{margin:0;font-size:.8rem;font-weight:600;color:#ff9aa6}
.auth-erro-campo:empty,.auth-msg:empty{display:none}
.auth-msg{margin:0;padding:11px 13px;border-radius:11px;font-size:.9rem;line-height:1.45;border:1px solid var(--neo-stroke,#334155);background:var(--neo-surface-2,#1a2433)}
.auth-msg.erro{border-color:#ff7b8a;color:#ffc2c9}
.auth-msg.info{border-color:color-mix(in srgb,var(--acento,#ff3b4f) 50%,transparent);color:#eaf1fa}
.auth-btn{min-height:48px;padding:12px 16px;border-radius:12px;border:1px solid color-mix(in srgb,var(--acento,#ff3b4f) 60%,transparent);background:var(--botao,var(--acento,#ff3b4f));color:#fff;font:inherit;font-weight:800;box-shadow:0 4px 18px var(--neo-glow,transparent);cursor:pointer}
.auth-btn.secundario{background:transparent;color:#eaf1fa;border-color:var(--neo-stroke,#334155);box-shadow:none}
.auth-btn:disabled{opacity:.6;cursor:progress}
.auth-link{background:none;border:0;padding:10px 4px;min-height:44px;color:var(--acento,#ff3b4f);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.auth-rodape{margin-top:14px;text-align:center;font-size:.9rem;color:var(--neo-muted,#a8b7c9)}
.auth-nota{margin:18px 0 0;font-size:.75rem;color:var(--neo-muted,#a8b7c9);line-height:1.45;text-align:center}
.auth-card-carregando{text-align:center;display:grid;gap:14px;justify-items:center;padding:34px 22px}
.auth-card-carregando p{margin:0;color:var(--neo-muted,#a8b7c9)}
.auth-spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--neo-stroke,#334155);border-top-color:var(--acento,#ff3b4f);animation:auth-gira .8s linear infinite}
body.auth-gate{overflow:hidden}
body.auth-gate .container,body.auth-gate .navegacao-app,body.auth-gate .fe-overlay,body.auth-gate .celebracao{visibility:hidden!important}
.auth-conta .auth-conta-nome{margin:6px 0 2px;font-size:1.15rem;font-weight:800;color:#f4f7fc;overflow-wrap:anywhere}
.auth-conta .auth-conta-email{margin:0 0 10px;color:var(--neo-muted,#a8b7c9);font-size:.88rem;overflow-wrap:anywhere}
.auth-conta .auth-conta-aviso{margin:0 0 14px;font-size:.8rem;line-height:1.45;color:var(--neo-muted,#a8b7c9)}
.auth-conta .auth-btn{width:100%}
.auth-toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:1300;max-width:calc(100vw - 32px);padding:11px 16px;border-radius:12px;background:var(--neo-surface,#151c29);border:1px solid var(--acento,#ff3b4f);color:#f4f7fc;font-weight:700;box-shadow:0 8px 30px #0008;animation:auth-entra .3s ease both}
@keyframes auth-entra{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes auth-gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.auth-card,.auth-toast{animation:none}.auth-spinner{animation-duration:2.4s}}

/* ---------- 2.9.4 Cloud Sync ---------- */
.sync-box{margin:0 0 14px;padding:12px 13px;border-radius:12px;border:1px solid var(--neo-stroke,#334155);background:var(--neo-surface-2,#1a2433)}
.sync-box[data-estado=erro],.sync-box[data-estado=atencao],.sync-box[data-estado=cheio]{border-color:#ff7b8a}
.sync-box .sync-linha{margin:0 0 4px;font-weight:800;color:#f4f7fc;line-height:1.35}
.sync-box .sync-detalhe{margin:0 0 10px;font-size:.8rem;line-height:1.45;color:var(--neo-muted,#a8b7c9)}
.sync-box .sync-detalhe:empty{display:none}
.sync-acoes{display:grid;gap:8px}
.sync-acoes .auth-btn{width:100%}
.sync-acoes [hidden]{display:none}
#sync-banner{position:fixed;left:12px;right:12px;top:calc(env(safe-area-inset-top,0px) + 8px);z-index:1250;display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:12px;background:var(--neo-surface,#151c29);border:1px solid var(--acento,#ff3b4f);color:#f4f7fc;font-size:.88rem;font-weight:600;box-shadow:0 8px 30px #0008}
.sync-banner-btn{min-height:44px;min-width:44px;padding:0 14px;border-radius:10px;border:1px solid var(--acento,#ff3b4f);background:var(--botao,var(--acento,#ff3b4f));color:#fff;font:inherit;font-weight:800;cursor:pointer}
#sync-root:empty{display:none}
.sync-modal{position:fixed;inset:0;z-index:3400;display:grid;place-items:center;padding:16px;background:rgba(5,8,14,.82);overflow:auto}
.sync-caixa{width:min(480px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:20px 18px;border-radius:16px;background:var(--neo-surface,#151c29);border:1px solid var(--neo-stroke,#334155);color:#eaf1fa;display:grid;gap:12px}
.sync-caixa h2{margin:0;font-size:1.15rem}
.sync-caixa p{margin:0;line-height:1.5;font-size:.92rem}
.sync-botoes{display:grid;gap:8px;margin-top:4px}
.sync-conf-onde{font-weight:800}
.sync-conf-lado{padding:10px;border-radius:10px;border:1px solid var(--neo-stroke,#334155);background:var(--neo-surface-2,#1a2433)}
.sync-conf-lado pre{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem;max-height:140px;overflow:auto}
body.sync-aguardando .fe-overlay{visibility:hidden!important}
