.feedback-launcher {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 90;
  min-height: 44px;
  padding: 11px 16px;
  border: 1px solid #b7d0c3;
  border-radius: 24px;
  background: #fff;
  color: #194d3a;
  font: 600 13px/1.3 system-ui, sans-serif;
  box-shadow: 0 4px 18px #183c2d1c;
  cursor: pointer;
}

.feedback-dialog {
  box-sizing: border-box;
  width: min(480px, calc(100% - 32px));
  max-width: calc(100% - 32px);
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  padding: 0;
  overflow-y: auto;
  border: 1px solid #c9dad0;
  border-radius: 16px;
  background: #fff;
  color: #163c2d;
  box-shadow: 0 16px 60px #0925193d;
  font: 15px/1.5 system-ui, sans-serif;
}

.feedback-dialog::backdrop { background: #0d241bbb; }
.feedback-dialog .feedback-inner { padding: 28px; }
.feedback-dialog .feedback-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.feedback-dialog .feedback-kicker { margin: 0; color: #47725d; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.feedback-dialog h2 { margin: 8px 0 0; font: 28px/1.15 Georgia, serif; letter-spacing: -.03em; }
.feedback-dialog p { margin: 12px 0; color: #52685d; }
.feedback-dialog .feedback-close { flex: none; min-width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; color: #52685d; font: 26px/1 system-ui, sans-serif; cursor: pointer; }

/* The surrounding pages use global grid rules for forms and form buttons. */
.feedback-dialog form { display: block; width: auto; margin: 0; padding: 0; }
.feedback-dialog form label { display: block; margin: 20px 0 7px; color: #163c2d; font-weight: 650; }
.feedback-dialog form textarea { display: block; box-sizing: border-box; width: 100%; min-height: 130px; padding: 12px; border: 1px solid #adc5b7; border-radius: 8px; resize: vertical; color: #163c2d; background: #fff; font: inherit; }
.feedback-dialog .feedback-note { font-size: 12px; color: #667b70; }
.feedback-dialog .feedback-status { margin: 10px 0 0; color: #9b3a2e; font-size: 13px; }
.feedback-dialog .feedback-success { color: #19563d; }
.feedback-dialog [hidden] { display: none !important; }
.feedback-dialog .feedback-actions { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.feedback-dialog .feedback-actions button { box-sizing: border-box; width: auto; min-height: 44px; height: auto; padding: 10px 15px; border-radius: 6px; font: 600 13px/1.3 system-ui, sans-serif; cursor: pointer; }
.feedback-dialog .feedback-actions .feedback-later { border: 1px solid #c9dad0; background: #fff; color: #315b47; }
.feedback-dialog .feedback-actions .feedback-send { border: 1px solid #19563d; background: #19563d; color: #fff; }
.feedback-dialog .feedback-actions .feedback-send:disabled { opacity: .55; cursor: wait; }
.feedback-dialog :focus-visible, .feedback-launcher:focus-visible { outline: 3px solid #c1a349; outline-offset: 3px; }

@media (max-width: 550px) {
  .feedback-launcher { right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); }
  .feedback-dialog .feedback-inner { padding: 22px; }
  .feedback-dialog h2 { font-size: 25px; }
  .feedback-dialog form textarea { min-height: 110px; }
}
