/* One result component for the fire and housing modules. */
.ffs-feedback-slot { display: grid; gap: var(--space-3); min-width: 0; }
.ffs-feedback-slot:empty { display: none; }
.ffs-feedback-slot:not(:empty) { margin-block: var(--space-3); }
.ffs-feedback {
  --feedback-bg: var(--success-bg);
  --feedback-fg: var(--success-fg);
  --feedback-border: var(--success-border);
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 28px;
  align-items: start;
  gap: var(--space-3);
  padding: var(--space-4);
  background: var(--feedback-bg);
  color: var(--text);
  border: 1px solid var(--feedback-border);
  border-left: 3px solid var(--feedback-fg);
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-size: var(--control-text-size);
  font-weight: 400;
  line-height: 1.5;
  min-width: 0;
}
.ffs-feedback--error { --feedback-bg: var(--danger-bg); --feedback-fg: var(--danger-fg); --feedback-border: var(--danger-border); }
.ffs-feedback--warning { --feedback-bg: var(--warning-bg); --feedback-fg: var(--warning-fg); --feedback-border: var(--warning-border); }
.ffs-feedback--info { --feedback-bg: var(--info-bg); --feedback-fg: var(--info-fg); --feedback-border: var(--info-border); }
.ffs-feedback__icon { color: var(--feedback-fg); font-size: var(--font-size-lg); font-weight: 600; text-align: center; }
.ffs-feedback__content { min-width: 0; }
.ffs-feedback__title { color: var(--feedback-fg); font-size: var(--control-text-size); font-weight: 600; }
.ffs-feedback__message { margin: var(--space-1) 0 0; overflow-wrap: anywhere; white-space: pre-line; }
.ffs-feedback__close {
  appearance: none;
  border: 1px solid transparent;
  background: transparent;
  color: var(--feedback-fg);
  border-radius: var(--radius-sm);
  width: 28px;
  height: 28px;
  cursor: pointer;
  font: inherit;
  font-size: var(--font-size-lg);
}
.ffs-feedback__close:hover { border-color: var(--feedback-border); }
.ffs-feedback__close:focus-visible { outline: 2px solid var(--info-fg); outline-offset: 2px; }
.ffs-feedback__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.ffs-feedback-toasts {
  position: fixed;
  right: var(--space-5);
  bottom: var(--space-5);
  z-index: 12000;
  width: min(440px, calc(100vw - 32px));
  max-height: min(60vh, 600px);
  overflow-y: auto;
  display: grid;
  gap: var(--space-3);
  pointer-events: none;
}
.ffs-feedback-toasts .ffs-feedback { pointer-events: auto; box-shadow: var(--shadow-sm); }
.ffs-feedback-confirm { width: min(500px, calc(100vw - 32px)); }
.ffs-feedback-confirm .ffs-dialog__body p { margin: 0; overflow-wrap: anywhere; }
.ffs-feedback-confirm .ffs-dialog__footer { display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: flex-end; }
@media (max-width: 600px) {
  .ffs-feedback-toasts { left: var(--space-4); right: var(--space-4); bottom: max(var(--space-4), env(safe-area-inset-bottom)); width: auto; max-height: 50svh; }
  .ffs-feedback { padding: var(--space-3); gap: var(--space-2); }
}
