{"version":3,"file":"toast.css.cjs","names":[],"sources":["../../../src/feedback/toast/toast.css?inline"],"sourcesContent":["@layer refine.base {\n  :host {\n    --_position: var(--toast-position, fixed);\n    --_inset-top: var(--toast-inset-top, auto);\n    --_inset-bottom: var(--toast-inset-bottom, 1rem);\n    --_inset-right: var(--toast-inset-right, 1rem);\n    --_inset-left: var(--toast-inset-left, auto);\n    --_z-index: var(--toast-z-index, var(--z-toast));\n    --_max-width: var(--toast-max-width, 400px);\n    --_gap: var(--toast-gap, 0.5rem);\n\n    position: var(--_position);\n    inset: var(--_inset-top) var(--_inset-right) var(--_inset-bottom) var(--_inset-left);\n    z-index: var(--_z-index);\n    display: flex;\n    flex-direction: column;\n    gap: var(--_gap);\n    max-width: var(--_max-width);\n    pointer-events: none;\n  }\n\n  /* ── Position variants ────────────────────────────────────────────────── */\n\n  :host([position='top-left']) {\n    --_inset-top: 1rem;\n    --_inset-bottom: auto;\n    --_inset-left: 1rem;\n    --_inset-right: auto;\n  }\n\n  :host([position='top-center']) {\n    --_inset-top: 1rem;\n    --_inset-bottom: auto;\n    --_inset-left: 50%;\n    --_inset-right: auto;\n\n    transform: translateX(-50%);\n  }\n\n  :host([position='top-right']) {\n    --_inset-top: 1rem;\n    --_inset-bottom: auto;\n    --_inset-right: 1rem;\n    --_inset-left: auto;\n  }\n\n  :host([position='bottom-left']) {\n    --_inset-bottom: 1rem;\n    --_inset-left: 1rem;\n    --_inset-right: auto;\n    --_inset-top: auto;\n  }\n\n  :host([position='bottom-center']) {\n    --_inset-bottom: 1rem;\n    --_inset-left: 50%;\n    --_inset-right: auto;\n    --_inset-top: auto;\n\n    transform: translateX(-50%);\n  }\n\n  :host([position='bottom-right']) {\n    --_inset-bottom: 1rem;\n    --_inset-right: 1rem;\n    --_inset-left: auto;\n    --_inset-top: auto;\n  }\n\n  /* ── Container ────────────────────────────────────────────────────────── */\n\n  .toast-container {\n    display: grid;\n    grid-template-rows: 1fr;\n    grid-template-columns: 1fr;\n    row-gap: 0;\n    perspective: 1200px;\n    perspective-origin: center center;\n    transition: row-gap var(--transition-normal);\n  }\n\n  /* ARIA live regions are layout-transparent. */\n  .toast-live-region {\n    display: contents;\n  }\n\n  :host(.hovered) .toast-container {\n    row-gap: var(--_gap);\n  }\n\n  /* ── Wrapper (layout / stacking only — no animation) ─────────────────── */\n\n  /* .toast-wrapper owns: grid position, z-index, stacking transforms.       */\n\n  /* It never has opacity or transition set on it directly.                  */\n\n  /* This keeps stacking rules and animation rules on separate elements,     */\n\n  /* eliminating all specificity conflicts and !important usage.             */\n\n  :host(:not(.hovered)) .toast-wrapper {\n    grid-row: 1;\n    grid-column: 1;\n    align-self: end;\n  }\n\n  :host([position^='top']:not(.hovered)) .toast-wrapper {\n    align-self: start;\n  }\n\n  .toast-wrapper {\n    position: relative;\n    pointer-events: auto;\n    touch-action: pan-y;\n  }\n\n  /* Stacking (collapsed) — 3D perspective stack */\n  :host(:not(.hovered)) .toast-wrapper:nth-last-child(1) {\n    z-index: 3;\n    transform: translateY(0) scale(1);\n  }\n\n  :host(:not(.hovered)) .toast-wrapper:nth-last-child(2) {\n    z-index: 2;\n    pointer-events: none;\n    transform: translateY(-8px) scale(0.95);\n  }\n\n  :host(:not(.hovered)) .toast-wrapper:nth-last-child(3) {\n    z-index: 1;\n    pointer-events: none;\n    transform: translateY(-14px) scale(0.9);\n  }\n\n  :host(:not(.hovered)) .toast-wrapper:nth-last-child(n + 4) {\n    visibility: hidden;\n    pointer-events: none;\n  }\n\n  /* Top positions: reverse stacking direction */\n  :host([position^='top']) .toast-wrapper {\n    transform-origin: center top;\n  }\n\n  :host([position^='top']:not(.hovered)) .toast-wrapper:nth-last-child(2) {\n    transform: translateY(8px) scale(0.95);\n  }\n\n  :host([position^='top']:not(.hovered)) .toast-wrapper:nth-last-child(3) {\n    transform: translateY(14px) scale(0.9);\n  }\n\n  /* Expanded (hovered) — stacking transforms are released per wrapper */\n  :host(.hovered) .toast-wrapper {\n    z-index: auto;\n    visibility: visible;\n    grid-row: auto;\n    grid-column: 1;\n    align-self: stretch;\n    pointer-events: auto;\n    transform: none;\n  }\n\n  /* Staggered expand delays (applied to wrapper transform only) */\n  :host(.hovered) .toast-wrapper:nth-last-child(2) {\n    transition-delay: var(--duration-75);\n  }\n\n  :host(.hovered) .toast-wrapper:nth-last-child(3) {\n    transition-delay: var(--duration-100);\n  }\n\n  :host(.hovered) .toast-wrapper:nth-last-child(n + 4) {\n    transition-delay: var(--duration-150);\n  }\n\n  /* ── Inner (animation target only — no layout role) ──────────────────── */\n\n  /* .toast-inner owns: opacity, entry/exit transitions.                    */\n\n  /* It never participates in stacking (that's the wrapper's job).          */\n\n  /* Swipe gesture also animates .toast-inner to keep wrapper state clean.  */\n\n  .toast-inner {\n    position: relative;\n    opacity: 1;\n    transition: opacity var(--toast-exit-duration, 300ms) var(--ease-out);\n  }\n\n  /* Entry: snap to invisible with no transition, then rely on class removal to animate in */\n  .toast-inner.entering {\n    opacity: 0;\n    transition: none;\n  }\n\n  /* Exit: fade out — wrapper stays in-flow so grid doesn't snap shut prematurely */\n  .toast-inner.exiting {\n    pointer-events: none;\n    opacity: 0;\n  }\n\n  /* ── Alert inside toast ───────────────────────────────────────────────── */\n\n  ::slotted(ore-alert),\n  ore-alert {\n    --_motion-animation: none;\n    width: 100%;\n    margin: 0;\n    box-shadow: var(--shadow-lg);\n  }\n\n  /* ── Action buttons ───────────────────────────────────────────────────── */\n\n  .toast-actions {\n    display: flex;\n    gap: var(--size-4);\n    justify-content: flex-end;\n  }\n\n  /* ── Responsive: small screens ────────────────────────────────────────── */\n\n  @media (width <= 480px) {\n    :host {\n      --_max-width: calc(100vw - var(--size-4));\n      --_inset-right: var(--size-2);\n      --_inset-left: var(--size-2);\n    }\n\n    :host([position='top-center']),\n    :host([position='bottom-center']) {\n      --_inset-left: var(--size-2);\n\n      inset-inline-start: var(--size-2);\n      transform: none;\n    }\n  }\n}\n"],"mappings":""}