/* OWNER-APPROVED DESIGN: changes require an explicit owner request.
 * See CART-TOAST-DESIGN.md. Keep independent of generated CSS. */
.dn-cart-toast {
  position: fixed;
  bottom: calc(24px + env(safe-area-inset-bottom));
  left: 50%;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 14px;
  width: max-content;
  max-width: min(580px, calc(100% - 24px));
  box-sizing: border-box;
  padding: 16px;
  border: 1px solid #bbdfc5;
  border-radius: 12px;
  background: #effaf2;
  color: #24733d;
  box-shadow: 0 8px 30px #132d201a;
  font-family: inherit;
  opacity: 0;
  transform: translate(-50%, 12px);
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none;
}
.dn-cart-toast.is-visible { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.dn-cart-toast p { margin: 0; min-width: 0; font-size: 15px; font-weight: 600; line-height: 1.8; overflow-wrap: anywhere; }
.dn-cart-toast-icon { display: grid; place-items: center; flex: 0 0 28px; height: 28px; border: 2px solid #329252; border-radius: 50%; font-size: 18px; }
.dn-cart-toast-link { flex-shrink: 0; padding: 10px 16px; border-radius: 8px; background: #1c2824; color: #fff; font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.dn-cart-toast-link:hover { background: #30483a; color: #fff; }
.dn-cart-toast-close { flex: 0 0 32px; height: 32px; padding: 0; border: 0; background: transparent; color: #497554; font: inherit; font-size: 26px; cursor: pointer; }
.dn-cart-toast :focus-visible { outline: 2px solid #24733d; outline-offset: 3px; }
@media (max-width: 480px) {
  .dn-cart-toast { gap: 8px; padding: 12px; flex-wrap: wrap; }
  .dn-cart-toast p { flex: 1; font-size: 14px; }
  .dn-cart-toast-close { order: 2; }
  .dn-cart-toast-link { order: 3; margin-right: 36px; }
}
@media (prefers-reduced-motion: reduce) { .dn-cart-toast { transition: none; } }
