/* Camada de login (acesso.js). Não altera nada das telas do app:
   só as esconde enquanto o <body> estiver "bloqueado". */

.ac-tela[hidden],.ac-usuario[hidden],.auth-card [hidden]{display:none !important;}
body.bloqueado .topo,
body.bloqueado .folha{display:none !important;}

/* ---------- telas de entrada ---------- */
.ac-tela{
  min-height:100vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;
  padding-top:calc(24px + env(safe-area-inset-top,0px));
  padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));
  background:linear-gradient(160deg,var(--vinho) 0%,var(--terracota) 100%);
}
#ac-carregando{background:var(--vinho);}
.loading-heart{width:64px;height:64px;animation:pulse 1.2s ease-in-out infinite;}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
.loading-text{margin-top:16px;color:var(--fundo);font-size:15px;letter-spacing:.06em;}

.auth-logo{text-align:center;margin-bottom:30px;}
.auth-logo h1{margin:0;font-size:24px;font-weight:400;color:#fff;line-height:1.25;}
.etiqueta-entrada{margin:6px 0 0;font-size:11px;letter-spacing:4px;color:rgba(255,255,255,.72);text-transform:uppercase;}
.logo-circulo{
  width:88px;height:88px;padding:13px;margin:0 auto 10px;
  background:var(--fundo);border-radius:50%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.logo-circulo img{width:100%;height:100%;object-fit:contain;}

.auth-card{
  width:100%;max-width:370px;
  background:#fff;border-radius:18px;padding:26px 22px;
  box-shadow:0 8px 40px rgba(0,0,0,.15);
}
.auth-tabs{display:flex;margin-bottom:22px;border-bottom:1.5px solid var(--borda);}
.auth-tab{
  flex:1;padding:10px;text-align:center;font-size:16px;color:var(--cinza);
  cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1.5px;
}
.auth-tab.active{color:var(--vinho);border-bottom-color:var(--vinho);}
.auth-field{margin-bottom:14px;}
.auth-field label{display:block;margin-bottom:5px;font-size:13px;letter-spacing:.04em;color:var(--cinza);}
.auth-field input{
  width:100%;padding:12px 14px;border:1px solid var(--borda);border-radius:10px;
  font-family:var(--serif);font-size:17px;color:var(--texto);outline:none;-webkit-appearance:none;
}
.auth-field input:focus{border-color:var(--terracota);}
.auth-btn{
  width:100%;padding:14px;margin-top:6px;
  background:var(--vinho);color:#fff;border:none;border-radius:10px;
  font-family:var(--serif);font-size:17px;cursor:pointer;
}
.auth-btn:disabled{opacity:.5;cursor:default;}
.auth-msg{margin:12px 0 0;min-height:18px;text-align:center;font-size:14px;}
.auth-msg.error{color:#B0342A;}
.auth-msg.success{color:#2E6B3E;}
.forgot-link{margin:14px 0 0;text-align:center;font-size:15px;}
.forgot-link a{color:var(--vinho);text-decoration:none;}
.forgot-link a:hover{text-decoration:underline;}
.tela-titulo{margin:0 0 12px;font-size:19px;}
.tela-texto{margin:0 0 18px;font-size:16px;color:var(--cinza);line-height:1.6;}

/* ---------- botão da conta (canto do topo, fora do cabeçalho) ---------- */
.ac-usuario{position:absolute;top:calc(20px + env(safe-area-inset-top,0px));right:16px;z-index:20;}
.user-btn{
  width:40px;height:40px;border-radius:50%;
  background:transparent;border:1px solid var(--borda);color:var(--terracota);
  font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.user-dropdown{
  position:absolute;top:48px;right:0;min-width:210px;display:none;
  background:#fff;border-radius:12px;padding:6px;box-shadow:0 4px 20px rgba(0,0,0,.15);
}
.user-dropdown.open{display:block;}
.user-email{padding:6px 10px 8px;border-bottom:1px solid var(--borda);font-size:13px;color:var(--cinza);word-break:break-all;}
.user-dropdown button{
  width:100%;padding:10px;background:none;border:none;border-radius:8px;text-align:left;
  font-family:var(--serif);font-size:16px;color:var(--texto);cursor:pointer;
}
.user-dropdown button:hover{background:var(--claro);}
.user-dropdown button.sair{color:#B0342A;}

/* ---------- trocar senha ---------- */
.modal-overlay{
  position:fixed;inset:0;z-index:60;padding:24px;display:none;
  align-items:center;justify-content:center;background:rgba(0,0,0,.45);
}
.modal-overlay.open{display:flex;}
.modal-card{width:100%;max-width:350px;background:#fff;border-radius:18px;padding:24px 22px;}
.modal-actions{display:flex;gap:10px;margin-top:6px;}
.modal-actions .auth-btn{flex:1;margin-top:0;}
.modal-cancel-btn{
  flex:1;padding:14px;background:none;border:1px solid var(--borda);border-radius:10px;
  font-family:var(--serif);font-size:16px;color:var(--cinza);cursor:pointer;
}

/* ---------- aviso ---------- */
.toast{
  position:fixed;bottom:24px;left:50%;z-index:70;
  transform:translateX(-50%) translateY(20px);opacity:0;transition:all .3s;
  background:var(--texto);color:#fff;padding:10px 20px;border-radius:20px;
  font-size:14px;white-space:nowrap;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
