/* Componentes de interface compartilhados: avisos (toast), diálogo de confirmação e cartão de credenciais. */

/* ---- Avisos: ficam sempre visíveis no canto, mesmo com a página rolada ---- */
.flash-stack{position:fixed;top:14px;right:14px;z-index:1000;display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100vw - 28px))}
.flash-stack .flash{margin:0;position:relative;padding-right:40px;box-shadow:0 8px 24px rgba(10,30,20,.18);animation:flash-in .18s ease-out}
.flash-stack .flash.leaving{opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .2s}
.flash-close{position:absolute;top:6px;right:8px;background:transparent;border:0;font-size:20px;line-height:1;padding:2px 7px;color:inherit;opacity:.65;cursor:pointer;border-radius:6px}
.flash-close:hover{opacity:1;background:rgba(0,0,0,.07)}
.flash.warning{background:#fff4dc;color:#7a5210}
.flash.info{background:#e8f1fb;color:#1f4a78}
@keyframes flash-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(max-width:650px){.flash-stack{left:14px;right:14px;width:auto}}

/* ---- Diálogo de confirmação (substitui o confirm() do navegador) ---- */
dialog.confirm-dialog{border:0;border-radius:16px;padding:22px;width:92vw;max-width:440px;box-shadow:0 25px 60px rgba(10,30,20,.28);color:var(--ink,#111815);font:14px Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
dialog.confirm-dialog::backdrop{background:rgba(10,25,18,.55)}
.confirm-dialog h2{margin:0 0 8px;font-size:18px}
.confirm-dialog p{margin:0 0 20px;line-height:1.5;color:var(--muted,#69766f)}
.confirm-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.confirm-actions button{min-height:40px;padding:9px 16px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer}
.confirm-actions .confirm-cancel{background:#fff;border:1px solid var(--line,#dfe7e2);color:var(--ink,#111815)}
.confirm-actions .confirm-ok{border:0;color:#fff;background:var(--danger,#a33b3b)}
.confirm-actions .confirm-ok:hover{background:#8b2f2f}
.confirm-actions .confirm-ok.neutral{background:var(--accent,#0b6840)}
.confirm-actions .confirm-ok.neutral:hover{background:var(--accent-dark,#07512f)}
.confirm-actions button:focus-visible{outline:3px solid #9ad3b4;outline-offset:2px}

/* ---- Cartão da senha temporária ---- */
.credentials{border-color:#f0d9a8;background:#fffaf0}
.credentials h2{margin:0 0 6px}
.credentials p{margin:0 0 12px}
.cred-list{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0 0 14px}
.cred-list div{display:flex;flex-direction:column;gap:2px}
.cred-list dt{font-size:12px;font-weight:700;color:var(--muted,#69766f)}
.cred-list dd{margin:0}
.cred-list code{font-size:16px;padding:4px 8px;user-select:all}

@media (prefers-reduced-motion:reduce){.flash-stack .flash{animation:none}.flash-stack .flash.leaving{transition:none}}
