/* Shared action feedback. Loaded after the core shell to prevent stale toast styles. */
.action-toast-region {
  position: fixed;
  z-index: 1000;
  top: 24px;
  right: 20px;
  display: grid;
  width: min(430px, calc(100% - 40px));
  gap: 44px;
  pointer-events: none;
}

.public-body .action-toast-region,
.announcement-body .action-toast-region { top: 106px; }

.action-toast {
  position: relative;
  display: block;
  min-height: 0;
  margin-top: 32px;
  padding: 43px 48px 22px;
  overflow: visible;
  border: 1px solid #b9d5cf;
  border-radius: 18px;
  background: #fbfefd;
  color: #15313b;
  box-shadow: 0 20px 48px rgba(3, 31, 39, .18), 0 5px 14px rgba(3, 31, 39, .07);
  opacity: 0;
  pointer-events: auto;
  text-align: center;
  transform: translate3d(0, -12px, 0) scale(.985);
  transition: opacity 200ms ease, transform 340ms cubic-bezier(.2, .9, .25, 1);
}

.action-toast::after { display: none !important; content: none !important; animation: none !important; }
.action-toast.is-visible { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
.action-toast.is-leaving { opacity: 0; transform: translate3d(0, -8px, 0) scale(.985); transition-duration: 180ms; }

.action-toast-icon {
  position: absolute;
  top: -32px;
  left: 50%;
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 5px solid #fbfefd;
  border-radius: 50%;
  background: #087763;
  color: #fff;
  box-shadow: 0 8px 22px rgba(8, 119, 99, .28);
  transform: translateX(-50%);
}

.action-toast-icon::before {
  display: block;
  width: 36px;
  height: 36px;
  background: currentColor;
  content: "";
  -webkit-mask: url("icons/tabler/check.svg") center / contain no-repeat;
  mask: url("icons/tabler/check.svg") center / contain no-repeat;
}

.action-toast-icon svg { display: none; }
.action-toast-copy { min-width: 0; }
.action-toast strong, .action-toast span { display: block; }
.action-toast strong { margin: 0 0 6px; color: #075f50; font-size: 1.05rem; line-height: 1.3; }
.action-toast div > span { color: #4b636c; font-size: .9rem; line-height: 1.5; }

.action-toast button {
  position: absolute;
  top: 11px;
  right: 11px;
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #647d85;
  font: 400 1.3rem/1 var(--body-font);
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.action-toast button:hover { background: #e5f2ee; color: #075f50; transform: scale(1.04); }
.action-toast button:active { transform: scale(.96); }
.action-toast button:focus-visible { outline: 3px solid #d78318; outline-offset: 2px; }

@media (max-width: 560px) {
  .action-toast-region,
  .public-body .action-toast-region,
  .announcement-body .action-toast-region {
    top: auto;
    right: 12px;
    bottom: 100px;
    left: 12px;
    width: auto;
    transform: none;
  }

  .action-toast {
    margin-top: 30px;
    padding: 40px 40px 19px;
  }

  .action-toast-icon { top: -30px; width: 60px; height: 60px; }
  .action-toast-icon::before { width: 34px; height: 34px; }
  .action-toast strong { font-size: 1rem; }
  .action-toast div > span { font-size: .86rem; }
}

@media (prefers-reduced-motion: reduce) {
  .action-toast, .action-toast button { transition: none; }
}

/* Compact status card redesign. Kept last so it also replaces older shell toast rules. */
.action-toast-region {
  top: 24px;
  right: 20px;
  width: min(430px, calc(100% - 40px));
  gap: 12px;
}

.public-body .action-toast-region,
.announcement-body .action-toast-region { top: 106px; }

.action-toast {
  --toast-accent: #159873;
  --toast-accent-dark: #086c57;
  --toast-soft: #e8f7f2;
  --toast-border: #b9ddd2;
  --toast-icon: url("icons/tabler/check.svg");
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 44px;
  min-height: 82px;
  margin: 0;
  padding: 14px 0 14px 17px;
  overflow: hidden;
  border-color: var(--toast-border);
  border-radius: 12px;
  background: #fff;
  color: #18333d;
  box-shadow: 0 18px 42px rgba(4, 31, 40, .16), 0 4px 12px rgba(4, 31, 40, .08);
  text-align: left;
  transform: translate3d(18px, 0, 0) scale(.985);
  transition: opacity 180ms ease, transform 280ms cubic-bezier(.2, .8, .2, 1), box-shadow 180ms ease;
}

.action-toast::before {
  position: absolute;
  inset: 0 auto 0 0;
  display: block;
  width: 5px;
  background: var(--toast-accent);
  content: "";
}

.action-toast::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 5px;
  display: block !important;
  width: auto;
  height: 3px;
  background: var(--toast-accent);
  content: "" !important;
  opacity: .88;
  transform: scaleX(1);
  transform-origin: left center;
  animation: toast-countdown var(--toast-duration, 8000ms) linear forwards !important;
  animation-play-state: paused !important;
}

.action-toast-error {
  --toast-accent: #e0525e;
  --toast-accent-dark: #b72d3a;
  --toast-soft: #fff0f2;
  --toast-border: #f0c5ca;
  --toast-icon: url("icons/tabler/alert-triangle.svg");
}

.action-toast-warning {
  --toast-accent: #d7891f;
  --toast-accent-dark: #9a5d0c;
  --toast-soft: #fff6e5;
  --toast-border: #eed5a9;
  --toast-icon: url("icons/tabler/alert-triangle.svg");
}

.action-toast-info {
  --toast-accent: #347fba;
  --toast-accent-dark: #225e8d;
  --toast-soft: #eaf4fb;
  --toast-border: #bdd8eb;
}

.action-toast.is-visible { transform: translate3d(0, 0, 0) scale(1); }
.action-toast.is-visible::after { animation-play-state: running !important; }
.action-toast.is-paused::after { animation-play-state: paused !important; }
.action-toast.is-leaving {
  transform: translate3d(14px, 0, 0) scale(.985);
  transition-duration: 180ms;
}

.action-toast-icon {
  position: static;
  align-self: center;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--toast-soft);
  color: var(--toast-accent-dark);
  box-shadow: none;
  transform: none;
}

.action-toast-icon::before {
  width: 23px;
  height: 23px;
  -webkit-mask: var(--toast-icon) center / contain no-repeat;
  mask: var(--toast-icon) center / contain no-repeat;
}

.action-toast-copy {
  align-self: center;
  min-width: 0;
  padding: 0 14px 0 10px;
}

.action-toast-copy > strong,
.action-toast-copy > span { display: block; }

.action-toast-copy > strong {
  margin: 0 0 3px;
  color: var(--toast-accent-dark);
  font-size: 1rem;
  font-weight: 750;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.action-toast-copy > span {
  color: #516872;
  font-size: .9rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.action-toast button {
  position: static;
  align-self: stretch;
  width: 44px;
  min-width: 44px;
  height: auto;
  min-height: 44px;
  margin: -14px 0;
  border-left: 1px solid #e4ecef;
  border-radius: 0;
  background: transparent;
  color: #71858d;
  transform: none;
}

.action-toast button:hover {
  background: var(--toast-soft);
  color: var(--toast-accent-dark);
  transform: none;
}

.action-toast button:active { background: #e8eff1; transform: none; }
.action-toast button:focus-visible { outline-offset: -5px; }

@keyframes toast-countdown {
  to { transform: scaleX(0); }
}

@media (max-width: 560px) {
  .action-toast-region,
  .public-body .action-toast-region,
  .announcement-body .action-toast-region {
    top: 76px;
    right: 12px;
    bottom: auto;
    left: 12px;
    width: auto;
  }

  .action-toast {
    grid-template-columns: 46px minmax(0, 1fr) 44px;
    min-height: 80px;
    margin: 0;
    padding: 14px 0 14px 14px;
  }

  .action-toast-icon { top: auto; width: 40px; height: 40px; }
  .action-toast-icon::before { width: 23px; height: 23px; }
  .action-toast-copy { padding-right: 10px; }
  .action-toast-copy > strong { font-size: .96rem; }
  .action-toast-copy > span { font-size: .86rem; }
}

@media (prefers-reduced-motion: reduce) {
  .action-toast::after { animation: none !important; }
}
