.support-launcher {
  position: fixed;
  z-index: 1200;
  right: max(18px, env(safe-area-inset-right, 0px));
  bottom: calc(92px + env(safe-area-inset-bottom, 0px));
  width: 58px;
  height: 58px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(145deg, #ff4d8d, #e63a78);
  box-shadow: 0 16px 34px rgba(184, 46, 96, 0.3);
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.institutional-page .support-launcher {
  bottom: calc(22px + env(safe-area-inset-bottom, 0px));
}

.support-launcher:hover { transform: translateY(-2px); box-shadow: 0 20px 40px rgba(184, 46, 96, 0.35); }
.support-launcher:active { transform: scale(0.96); }
.support-launcher:focus-visible,
.support-widget button:focus-visible,
.support-widget input:focus-visible,
.support-widget textarea:focus-visible,
.support-widget a:focus-visible { outline: 3px solid rgba(255, 77, 141, 0.32); outline-offset: 3px; }

.support-widget {
  position: fixed;
  z-index: 1210;
  right: max(18px, env(safe-area-inset-right, 0px));
  bottom: calc(88px + env(safe-area-inset-bottom, 0px));
  width: min(390px, calc(100vw - 28px));
  /* 100vh primeiro como fallback: navegadores que não entendem 100dvh
     ignoram essa declaração (não a linha toda), então a de 100vh
     continua valendo em vez de max-height virar "none" e o widget
     crescer sem limite. */
  max-height: min(650px, calc(100vh - 110px));
  max-height: min(650px, calc(100dvh - 110px));
  overflow: hidden;
  /* Cabeçalho e abas com altura natural, corpo ocupa o resto e rola —
     evita depender de somar as alturas manualmente pra bater com o
     max-height acima (era isso que quebrava o scroll em certas telas). */
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(184, 46, 96, 0.1);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 28px 75px rgba(43, 42, 46, 0.23);
  opacity: 0;
  visibility: hidden;
  transform: translateY(18px) scale(0.98);
  transform-origin: bottom right;
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
}

.institutional-page .support-widget {
  bottom: calc(92px + env(safe-area-inset-bottom, 0px));
}

.support-widget.is-open { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }

.support-widget__hero {
  position: relative;
  flex: 0 0 auto;
  padding: 26px 24px 24px;
  color: #fff;
  background:
    radial-gradient(circle at 88% 12%, rgba(255,255,255,.25), transparent 24%),
    linear-gradient(145deg, #ff4d8d 0%, #e63a78 58%, #b82e60 100%);
}

.support-widget__brand {
  width: 52px;
  height: 52px;
  padding: 6px;
  border-radius: 17px;
  object-fit: contain;
  background: rgba(255,255,255,.94);
  box-shadow: 0 7px 20px rgba(107, 27, 58, 0.17);
}

.support-widget__close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: rgba(255,255,255,.18);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
}

.support-widget__title { margin-top: 18px; font-size: 1.65rem; line-height: 1.15; font-weight: 850; }
.support-widget__subtitle { margin-top: 9px; color: rgba(255,255,255,.9); font-size: 0.94rem; line-height: 1.55; }

.support-widget__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 18px;
  background: #fffaf8;
}
.support-widget__view[hidden] { display: none; }

.support-widget__card {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 16px;
  border: 1px solid rgba(43,42,46,.08);
  border-radius: 18px;
  color: #2b2a2e;
  text-align: left;
  text-decoration: none;
  background: #fff;
  box-shadow: 0 8px 22px rgba(43,42,46,.06);
  cursor: pointer;
}

.support-widget__card + .support-widget__card { margin-top: 12px; }
.support-widget__card:hover { border-color: rgba(255,77,141,.25); background: #fff7fa; }
.support-widget__card-icon { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; color: #e63a78; background: #fff0f5; }
.support-widget__card-copy { flex: 1; min-width: 0; }
.support-widget__card-title { display: block; font-weight: 800; }
.support-widget__card-text { display: block; margin-top: 3px; color: #6b6a70; font-size: 0.82rem; line-height: 1.4; }
.support-widget__card-arrow { color: #e63a78; font-size: 1.3rem; }

.support-widget__human-note {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin-bottom: 14px;
  padding: 11px 12px;
  border-radius: 14px;
  color: #57565c;
  background: #fff;
  font-size: 0.8rem;
  line-height: 1.45;
}

.support-form { display: grid; gap: 12px; }
.support-form label { display: grid; gap: 6px; color: #3b3940; font-size: 0.82rem; font-weight: 750; }
.support-form input,
.support-form textarea {
  width: 100%;
  border: 1px solid rgba(43,42,46,.13);
  border-radius: 14px;
  padding: 12px 13px;
  color: #2b2a2e;
  background: #fff;
  font: inherit;
  font-size: 16px;
}
.support-form textarea { min-height: 112px; resize: vertical; }
.support-form__submit {
  min-height: 52px;
  border: 0;
  border-radius: 15px;
  color: #fff;
  background: #e63a78;
  font-weight: 850;
  cursor: pointer;
}
.support-form__submit:hover { background: #b82e60; }
.support-form__status { min-height: 1.2em; color: #2f8f59; font-size: 0.79rem; line-height: 1.4; }

.support-widget__tabs {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid rgba(43,42,46,.07);
  background: #fff;
}
.support-widget__tab {
  min-height: 48px;
  border: 0;
  border-radius: 14px;
  color: #6b6a70;
  background: transparent;
  font-weight: 750;
  cursor: pointer;
}
.support-widget__tab.is-active { color: #e63a78; background: #fff0f5; }

@media (max-width: 520px) {
  .support-widget {
    right: 10px;
    bottom: calc(84px + env(safe-area-inset-bottom, 0px));
    width: calc(100vw - 20px);
    max-height: calc(100vh - 105px);
    max-height: calc(100dvh - 105px);
    border-radius: 24px;
  }
  .institutional-page .support-widget { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  .support-widget__hero { padding: 22px 20px 20px; }
  .support-widget__body { min-height: 230px; }
}

@media (prefers-reduced-motion: reduce) {
  .support-launcher, .support-widget { transition: none; }
}
