body.modal-aberto { overflow:hidden; }
.drive-modal { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; }
.drive-modal[hidden] { display:none; }
.drive-modal-overlay { position:absolute; inset:0; background:rgba(0,30,48,.72); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.drive-modal-box { position:relative; width:min(460px,100%); max-height:calc(100vh - 40px); overflow:auto; padding:34px 30px 26px; border-radius:24px; color:var(--seriedade); background:#fff; box-shadow:0 30px 70px rgba(0,30,48,.4); animation:drive-modal-entrada .28s var(--ease-drive); }
.drive-modal-box:focus { outline:none; }
@keyframes drive-modal-entrada { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:none; } }
.drive-modal-fechar { position:absolute; top:14px; right:14px; display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%; color:var(--inteligencia); background:var(--cyan-tint); }
.drive-modal-fechar:hover { background:var(--cyan-soft); }
.drive-modal-box h3 { margin:0 0 6px; padding-right:40px; color:var(--inteligencia); font-size:24px; font-weight:600; letter-spacing:-.02em; line-height:1.2; }
.drive-modal-texto { margin:0 0 20px; color:var(--text-muted); font-size:14px; line-height:1.55; }
.drive-modal-form .drive-button { width:100%; }
.drive-modal-form .drive-button:disabled { cursor:progress; opacity:.7; }
.drive-modal-fallback { width:100%; margin-top:10px; min-height:46px; border:1.5px solid var(--inteligencia); border-radius:16px; color:var(--inteligencia); background:transparent; font-size:14px; font-weight:600; }
.drive-modal-fallback[hidden] { display:none; }
.drive-modal-sucesso { display:flex; flex-direction:column; align-items:center; gap:8px; padding:24px 0 10px; text-align:center; }
.drive-modal-sucesso[hidden] { display:none; }
.drive-modal-sucesso svg { color:var(--produtividade); }
.drive-modal-sucesso h4 { margin:0; color:var(--inteligencia); font-size:22px; }
.drive-modal-sucesso p { margin:0; color:var(--text-muted); font-size:14px; }
@media (max-width:767px) {
  .drive-modal { align-items:end; padding:0; }
  .drive-modal-box { width:100%; max-height:92vh; padding:30px 20px 22px; border-radius:24px 24px 0 0; }
}
