/* Canto inferior direito; não recalibra botões fixos nem adiciona safe-area. */
.triobum-snackbars{position:fixed;inset:auto 0 0 auto;z-index:2147483647;box-sizing:border-box;width:min(412px,100vw);max-width:100vw;max-height:100dvh;margin:0;padding:16px;border:0;background:transparent;display:flex;flex-direction:column;gap:10px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;font-family:inherit;}
.triobum-snackbars[hidden]{display:none!important}
.triobum-snackbars::backdrop{background:transparent;pointer-events:none}
.triobum-snackbar{--snackbar-background:#fff;--snackbar-text:#000;--snackbar-border:#dce0e3;position:relative;display:flex;align-items:flex-start;gap:15px;flex:none;box-sizing:border-box;width:100%;min-width:0;padding:16.25px 17.5px 18.75px 20px;border:1.25px solid var(--snackbar-border);border-radius:10px;box-shadow:0 6.25px 22.5px rgba(0,0,0,.12);background:var(--snackbar-background);color:var(--snackbar-text);font-family:inherit;font-size:17.5px;font-weight:700;line-height:1.4;isolation:isolate;overflow:hidden;}
.triobum-snackbar[data-type="error"]{--snackbar-background:#fff1f2;--snackbar-text:#b42318;--snackbar-border:#fda29b}
.triobum-snackbar[data-type="warning"]{--snackbar-background:#fffaeb;--snackbar-text:#9a6700;--snackbar-border:#f7d58b}
.triobum-snackbar-copy{flex:1;min-width:0;margin:0;padding:0;color:inherit;font:inherit;overflow-wrap:anywhere}
.triobum-snackbar-close{display:flex;align-items:center;justify-content:center;flex:none;box-sizing:border-box;width:32.5px;height:32.5px;margin:-3.75px -3.75px 0 0;padding:0;border:0;border-radius:5px;background:transparent;color:inherit;font:inherit;font-size:26.25px;line-height:1;cursor:pointer}
.triobum-snackbar-close:hover{background:rgba(0,0,0,.06)}
.triobum-snackbar-close:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.triobum-snackbar-progress{position:absolute;left:0;right:0;bottom:0;height:3.75px;background:var(--snackbar-text);transform:scaleX(1);transform-origin:left;pointer-events:none}
.triobum-snackbar-announcer{position:absolute;width:1px;height:1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:700px){.triobum-snackbars{padding:12px;width:min(404px,100vw)}.triobum-snackbar{font-size:16.25px}}

/* Movimentos independentes: recorte não disputa transform com a acomodação. */
.triobum-snackbar{
  animation:var(--snackbar-reveal-name,none) 300ms linear var(--snackbar-reveal-delay,0ms) both,
    var(--snackbar-layout-name,none) 180ms ease-out var(--snackbar-layout-delay,0ms) both;
}
.triobum-snackbar[data-snackbar-reveal="enter"]{--snackbar-reveal-name:tb-snackbar-enter}
.triobum-snackbar[data-snackbar-reveal="exit"]{--snackbar-reveal-name:tb-snackbar-exit}
.triobum-snackbar[data-snackbar-layout]{--snackbar-layout-name:tb-snackbar-layout}
.triobum-snackbar-progress[data-snackbar-progress]{
  animation:tb-snackbar-progress var(--snackbar-progress-duration,5000ms) linear forwards;
}
.triobum-snackbar-progress[data-snackbar-progress="paused"]{animation-play-state:paused}
@keyframes tb-snackbar-enter{
  from{clip-path:inset(-20px -24px calc(100% + 20px) -24px)}
  to{clip-path:inset(-20px -24px -24px -24px)}
}
@keyframes tb-snackbar-exit{
  from{clip-path:var(--snackbar-exit-clip,inset(-20px -24px -24px -24px))}
  to{clip-path:inset(-20px -24px calc(100% + 20px) -24px)}
}
@keyframes tb-snackbar-layout{
  from{transform:translateY(var(--snackbar-shift,0px))}
  to{transform:translateY(0px)}
}
@keyframes tb-snackbar-progress{
  from{transform:scaleX(var(--snackbar-progress-from,1))}
  to{transform:scaleX(0)}
}
@media(prefers-reduced-motion:reduce){
  .triobum-snackbar{animation:none}
}
