
    /*
     * Bottom toast — save / quote / bug-report notices.
     * Fixed to the viewport so it never steals header height (Snapshot ↔ History parity).
     * Empty = opacity 0 + no pointer events (no layout jump either way).
     */
    .ds-status-banner {
      position: fixed;
      z-index: 45;
      left: 50%;
      bottom: max(var(--ds-space-4), calc(env(safe-area-inset-bottom, 0px) + 0.75rem));
      transform: translateX(-50%) translateY(0);
      width: min(28rem, calc(100vw - 2rem));
      margin: 0;
      padding: 0.65rem 1rem;
      box-sizing: border-box;
      font-size: var(--ds-text-caption);
      font-weight: var(--ds-weight-medium);
      line-height: 1.35;
      color: var(--ds-text);
      text-align: center;
      background: #fff;
      border: 1px solid var(--ds-border);
      border-radius: var(--ds-radius-md);
      box-shadow:
        0 4px 16px rgb(15 23 42 / 0.1),
        0 0 0 0.5px rgb(15 23 42 / 0.04);
      opacity: 1;
      /* Wrap long messages — do not ellipsize toast copy */
      overflow: visible;
      text-overflow: unset;
      white-space: normal;
      word-break: break-word;
      pointer-events: none;
      transition: opacity 0.22s ease, transform 0.22s ease;
    }
    .ds-status-banner.ds-status-banner--dismissible {
      pointer-events: auto;
      cursor: pointer;
    }
    .ds-status-banner.ds-status-banner--empty,
    .ds-status-banner.ds-status-banner--exiting {
      opacity: 0;
      transform: translateX(-50%) translateY(0.35rem);
      pointer-events: none;
    }
    .ds-status-banner.hidden {
      display: block !important;
      opacity: 0;
      pointer-events: none;
    }
    .ds-status-banner--success {
      color: var(--ds-brand-secondary);
      border-color: rgb(var(--ds-brand-hero-rgb) / 0.28);
    }
    .ds-status-banner--pending {
      color: var(--ds-text-muted);
    }
    .ds-status-banner--warning {
      color: var(--ds-text);
      border-color: rgb(var(--ds-brand-hero-rgb) / 0.35);
      background: #fffef8;
    }
    .ds-status-banner--error {
      color: var(--ds-amount-negative);
      border-color: rgb(var(--ds-amount-negative-rgb) / 0.35);
    }
