:root {
  --blue-950: #001846;
  --blue-900: #001b4d;
  --blue-850: #06205c;
  --blue-800: #09266e;
  --blue-700: #0057d8;
  --blue-600: #1468ee;
  --blue-100: #eef5ff;
  --red-500: #e51c2a;
  --red-600: #c91422;
  --green-500: #16a34a;
  --orange-500: #f97316;
  --purple-500: #7c3aed;
  --text: #101828;
  --muted: #667085;
  --muted-2: #8a94a6;
  --line: #e5eaf2;
  --line-strong: #d7deea;
  --surface: #ffffff;
  --surface-soft: #f8fbff;
  --page: #f7f9fc;
  --shadow-soft: 0 16px 40px rgba(0, 24, 70, .08);
  --shadow-card: 0 22px 60px rgba(0, 24, 70, .12);
  --shadow-deep: 0 30px 80px rgba(0, 24, 70, .18);
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --focus: 0 0 0 4px rgba(0, 87, 216, .16);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  background: var(--page);
  scroll-behavior: smooth;
}

body {
  background:
    radial-gradient(circle at 16% 0%, rgba(0, 87, 216, .08), transparent 34%),
    radial-gradient(circle at 88% 12%, rgba(229, 28, 42, .06), transparent 26%),
    linear-gradient(180deg, #ffffff 0%, #f6f8fc 52%, #eef3fa 100%);
  color: var(--text);
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
  min-height: 100vh;
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; }

/* Header institucional */
.top-header {
  align-items: center;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(229, 234, 242, .9);
  box-shadow: 0 8px 26px rgba(0, 24, 70, .05);
  display: flex;
  justify-content: center;
  min-height: 68px;
  padding: 12px clamp(20px, 4vw, 72px);
  position: relative;
  width: 100%;
  z-index: 20;
}

.logo-security,
.logo-para {
  align-items: center;
  display: inline-flex;
  gap: 10px;
}

.logo-security {
  left: clamp(20px, 4vw, 72px);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.logo-security__shield,
.denuncia-header__crest,
.footer__shield {
  background: linear-gradient(145deg, #00153d, #0b3891 75%);
  border-radius: 13px 13px 17px 17px;
  display: block;
  height: 34px;
  position: relative;
  width: 28px;
}

.logo-security__shield::before,
.denuncia-header__crest::before,
.footer__shield::before {
  background: var(--red-500);
  border-radius: 999px;
  content: "";
  height: 8px;
  position: absolute;
  right: 6px;
  top: 18px;
  transform: rotate(35deg);
  width: 8px;
}

.logo-security__shield::after,
.denuncia-header__crest::after,
.footer__shield::after {
  border: 2px solid rgba(255, 255, 255, .92);
  border-right-color: transparent;
  border-top-color: transparent;
  border-radius: 50%;
  content: "";
  height: 12px;
  left: 6px;
  position: absolute;
  top: 8px;
  transform: rotate(-20deg);
  width: 12px;
}

.logo-security__text,
.logo-para__text {
  display: flex;
  flex-direction: column;
  line-height: 1.04;
}

.logo-security strong,
.logo-security span {
  color: var(--blue-950);
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .01em;
}

.logo-para__mark {
  display: grid;
  gap: 2px;
  grid-template-columns: 16px 16px;
  grid-template-rows: 12px 12px;
  transform: skew(-7deg);
}

.logo-para__mark::before,
.logo-para__mark::after {
  content: "";
  display: block;
}
.logo-para__mark::before { background: var(--red-500); grid-column: 1; grid-row: 2; }
.logo-para__mark::after { background: #0b5aaa; grid-column: 2; grid-row: 1; }
.logo-para strong {
  color: #1550a3;
  font-size: clamp(1.55rem, 2.2vw, 2.15rem);
  font-weight: 950;
  letter-spacing: .01em;
  line-height: .86;
}
.logo-para span {
  color: var(--red-500);
  font-size: .42rem;
  font-weight: 950;
  letter-spacing: .32rem;
  padding-left: 3px;
}

/* Home */
.page {
  margin: 0 auto;
  max-width: 1580px;
  padding: 20px clamp(20px, 4vw, 72px) 36px;
  width: 100%;
}

.hero {
  background:
    radial-gradient(circle at 84% 20%, rgba(255, 255, 255, .16), transparent 18%),
    radial-gradient(circle at 60% 60%, rgba(0, 87, 216, .32), transparent 32%),
    linear-gradient(110deg, #001235 0%, #001846 47%, #061f5a 100%);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 32px;
  box-shadow: var(--shadow-deep);
  color: #fff;
  min-height: clamp(278px, 22vw, 340px);
  overflow: hidden;
  padding: clamp(30px, 4vw, 58px) clamp(28px, 5vw, 76px);
  position: relative;
  width: 100%;
}

.hero::before {
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 34px 34px;
  content: "";
  inset: 0;
  opacity: .5;
  position: absolute;
}

.hero__content {
  max-width: min(62vw, 780px);
  position: relative;
  z-index: 2;
}
.hero__tag,
.section-eyebrow,
.step-badge {
  align-items: center;
  color: #ffccd1;
  display: inline-flex;
  font-size: .75rem;
  font-weight: 950;
  gap: 8px;
  letter-spacing: .08em;
  margin-bottom: 10px;
  text-transform: uppercase;
}
.hero__tag::before,
.section-eyebrow::before,
.step-badge::before {
  background: currentColor;
  border-radius: 999px;
  content: "";
  height: 7px;
  width: 7px;
}
.hero h1 {
  color: #fff;
  font-size: clamp(2.75rem, 5vw, 5.2rem);
  font-weight: 950;
  letter-spacing: -.055em;
  line-height: .93;
  margin-bottom: 14px;
}
.hero p {
  color: rgba(255, 255, 255, .9);
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  font-weight: 760;
  line-height: 1.42;
  margin-bottom: 20px;
}
.hero__whatsapp-label {
  background: linear-gradient(135deg, var(--red-500), #ff3a48);
  border-radius: 12px;
  box-shadow: 0 18px 42px rgba(229, 28, 42, .34);
  color: #fff;
  display: inline-block;
  font-size: clamp(1.18rem, 2.4vw, 2.08rem);
  font-weight: 950;
  letter-spacing: .02em;
  line-height: 1;
  margin-bottom: 16px;
  padding: 14px clamp(18px, 2.4vw, 32px);
}
.hero__phone {
  align-items: center;
  display: flex;
  gap: clamp(14px, 1.8vw, 24px);
}
.hero__phone strong {
  color: #fff;
  font-size: clamp(2.1rem, 4.2vw, 4.4rem);
  font-weight: 950;
  letter-spacing: -.04em;
  line-height: .9;
  white-space: nowrap;
}
.whatsapp-icon {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='4.5' d='M32 7.5c-14 0-25.2 10.8-25.2 24.1 0 5 1.6 9.7 4.4 13.5L7.7 57l12.4-3.3c3.6 2 7.7 3.1 11.9 3.1 14 0 25.2-10.8 25.2-24.1S46 7.5 32 7.5Z'/%3E%3Cpath fill='%23fff' d='M44.8 38.6c.8.4 1.1 1.3.8 2.1-1.1 3.4-3.7 4.5-6.9 3.5-9.6-2.9-15.5-8.8-18.4-18.4-1-3.2.1-5.8 3.5-6.9.8-.3 1.7 0 2.1.8l3.1 5.4c.4.8.2 1.7-.5 2.2l-2.1 1.7c2 3.7 4.8 6.5 8.5 8.5l1.7-2.1c.6-.7 1.5-.9 2.2-.5l5.4 3.1Z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  display: block;
  flex: 0 0 auto;
  height: clamp(52px, 5vw, 76px);
  width: clamp(52px, 5vw, 76px);
}
.hero__visual {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}
.hero__orb {
  border-radius: 999px;
  filter: blur(2px);
  position: absolute;
}
.hero__orb--one {
  background: rgba(0, 87, 216, .24);
  height: 280px;
  right: 180px;
  top: 18px;
  width: 280px;
}
.hero__orb--two {
  background: rgba(229, 28, 42, .14);
  bottom: -80px;
  height: 250px;
  right: -20px;
  width: 250px;
}
.hero__shield {
  border: 8px solid rgba(255, 255, 255, .1);
  border-radius: 48px 48px 58px 58px;
  height: clamp(140px, 15vw, 218px);
  opacity: .85;
  position: absolute;
  right: clamp(250px, 23vw, 390px);
  top: 48px;
  transform: rotate(45deg);
  width: clamp(140px, 15vw, 218px);
}
.hero__shield::after {
  background: rgba(255, 255, 255, .12);
  border-radius: 22px 22px 22px 8px;
  content: "";
  height: 44%;
  left: 36%;
  position: absolute;
  top: 30%;
  width: 18%;
}
.hero__assistant-card {
  align-items: center;
  background: rgba(255, 255, 255, .11);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 26px;
  bottom: 34px;
  box-shadow: 0 24px 54px rgba(0, 0, 0, .2);
  display: flex;
  gap: 12px;
  padding: 14px 18px;
  position: absolute;
  right: clamp(30px, 6vw, 88px);
}
.assistant-card__face {
  background:
    radial-gradient(circle at 50% 38%, #ffd0a0 0 28px, transparent 29px),
    linear-gradient(180deg, #23242b 0 48%, #d5362f 49% 100%);
  border-radius: 999px;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.3);
  display: block;
  height: 54px;
  width: 54px;
}
.assistant-card__label {
  color: #fff;
  font-size: .86rem;
  font-weight: 900;
  white-space: nowrap;
}

.workspace {
  align-items: start;
  display: grid;
  gap: clamp(24px, 3vw, 40px);
  grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
  padding: 28px 0 0;
}
.main-panel {
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(255,255,255,.72);
  border-radius: var(--radius-xl);
  box-shadow: 0 20px 60px rgba(0, 24, 70, .06);
  padding: clamp(28px, 4vw, 58px);
  text-align: center;
}
.section-eyebrow { color: var(--blue-700); justify-content: center; margin-bottom: 12px; }
.main-panel h2 {
  color: #090f1d;
  font-size: clamp(1.08rem, 1.55vw, 1.55rem);
  font-weight: 950;
  letter-spacing: .015em;
  line-height: 1.26;
  margin: 0 auto clamp(26px, 3vw, 44px);
  max-width: 920px;
}
.action-grid {
  display: grid;
  gap: clamp(18px, 2.8vw, 36px);
  grid-template-columns: repeat(2, minmax(250px, 360px));
  justify-content: center;
}
.action-card {
  align-items: center;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(213, 222, 235, .86);
  border-radius: 26px;
  box-shadow: 0 18px 42px rgba(0, 24, 70, .08);
  color: inherit;
  display: grid;
  gap: 18px;
  grid-template-columns: 72px minmax(0, 1fr) 20px;
  min-height: 138px;
  padding: 24px;
  text-align: left;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.action-card:hover,
.action-card:focus-visible {
  background: #fff;
  border-color: rgba(0, 87, 216, .28);
  box-shadow: 0 28px 60px rgba(0, 24, 70, .14);
  outline: none;
  transform: translateY(-3px);
}
.action-card__icon {
  align-items: center;
  background: var(--blue-100);
  border-radius: 22px;
  display: flex;
  height: 72px;
  justify-content: center;
  position: relative;
  width: 72px;
}
.action-card--register .action-card__icon { background: #fff2f3; color: var(--red-500); }
.action-card--consult .action-card__icon { background: #edf5ff; color: #1550a3; }
.action-card__icon::before {
  background: currentColor;
  content: "";
  height: 34px;
  mask: var(--icon) center/contain no-repeat;
  -webkit-mask: var(--icon) center/contain no-repeat;
  width: 34px;
}
.action-card--register .action-card__icon::before { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 20h16v-2H4v2Zm3.2-4.4 8.9-8.9 1.2 1.2-8.9 8.9H7.2v-1.2Zm10.1-13L5.2 14.7 4 20l5.3-1.2L21.4 6.7a2 2 0 0 0 0-2.8l-1.3-1.3a2 2 0 0 0-2.8 0Z'/%3E%3C/svg%3E"); }
.action-card--consult .action-card__icon::before { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 4a6.5 6.5 0 0 0 0 13 6.5 6.5 0 0 0 5.1-10.5A6.5 6.5 0 0 0 10.5 4Zm0 2a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9Zm5.9 9 4.3 4.3-1.4 1.4-4.3-4.3 1.4-1.4Z'/%3E%3C/svg%3E"); }
.action-card__copy { display: grid; gap: 8px; }
.action-card__copy strong { color: var(--text); font-size: 1.05rem; font-weight: 950; }
.action-card__copy span { color: var(--muted); font-size: .9rem; font-weight: 760; line-height: 1.35; }
.action-card__arrow {
  color: var(--blue-700);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
}

.consult-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
  margin: 26px auto 0;
  max-width: 760px;
  padding: 22px;
  text-align: left;
}
.consult-panel__label { color: var(--text); display: block; font-size: .88rem; font-weight: 900; margin-bottom: 8px; }
.consult-panel__row { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr) 58px; }
.consult-panel__input {
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  color: var(--text);
  min-height: 56px;
  outline: 0;
  padding: 0 16px;
}
.consult-panel__input:focus { border-color: var(--blue-700); box-shadow: var(--focus); }
.consult-panel__button {
  background: linear-gradient(135deg, var(--blue-950), var(--blue-700));
  border: 0;
  border-radius: 16px;
  position: relative;
}
.consult-panel__button::before {
  border: 3px solid #fff;
  border-radius: 50%;
  content: "";
  height: 18px;
  left: 17px;
  position: absolute;
  top: 15px;
  width: 18px;
}
.consult-panel__button::after {
  background: #fff;
  border-radius: 99px;
  content: "";
  height: 11px;
  left: 35px;
  position: absolute;
  top: 34px;
  transform: rotate(45deg);
  width: 3px;
}
.consult-panel__message, .submit-message { color: var(--muted); font-size: .9rem; font-weight: 800; margin-top: 12px; min-height: 20px; }
.consult-panel__message[data-type="error"], .submit-message[data-type="error"] { color: var(--red-500); }
.consult-result {
  background: #f8fbff;
  border: 1px solid var(--line);
  border-radius: 18px;
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding: 18px;
}
.consult-result p { color: var(--text); font-size: .95rem; font-weight: 850; }

.sidebar { display: flex; flex-direction: column; gap: 18px; }
.info-card,
.denuncia-shell {
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(213, 222, 235, .86);
  box-shadow: var(--shadow-soft);
}
.info-card {
  border-radius: 26px;
  padding: 22px;
}
.info-card__head {
  align-items: center;
  display: flex;
  gap: 12px;
  margin-bottom: 14px;
}
.info-card__icon {
  align-items: center;
  background: var(--blue-100);
  border-radius: 16px;
  color: var(--blue-700);
  display: flex;
  height: 48px;
  justify-content: center;
  width: 48px;
}
.info-card__icon::before {
  background: currentColor;
  content: "";
  height: 25px;
  mask: var(--icon) center/contain no-repeat;
  -webkit-mask: var(--icon) center/contain no-repeat;
  width: 25px;
}
.info-card__icon--notice::before { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 22a2.5 2.5 0 0 0 2.45-2h-4.9A2.5 2.5 0 0 0 12 22ZM19 17V11a7 7 0 1 0-14 0v6l-2 2h18l-2-2Zm-2.5 0h-9v-6a4.5 4.5 0 1 1 9 0v6Z'/%3E%3C/svg%3E"); }
.info-card__icon--about::before { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2 4 5.5v6.1c0 5 3.4 9.7 8 10.9 4.6-1.2 8-5.9 8-10.9V5.5L12 2Zm0 2.2 6 2.6v4.8c0 4-2.5 7.6-6 8.7-3.5-1.1-6-4.7-6-8.7V6.8l6-2.6Zm-1 5.3h2v2h-2v-2Zm0 3.5h2v5h-2v-5Z'/%3E%3C/svg%3E"); }
.info-card h2 { color: var(--text); font-size: 1.05rem; font-weight: 950; }
.notice { background: #f9fbff; border: 1px solid var(--line); border-radius: 18px; padding: 16px; }
.notice p, .info-card--about p { color: var(--text); font-size: .9rem; font-weight: 730; line-height: 1.45; }
.notice span { color: var(--muted); display: block; font-size: .82rem; margin-top: 4px; }
.info-card--about ul { display: grid; gap: 10px; list-style: none; margin: 18px 0; }
.info-card--about li { color: var(--text); font-size: .88rem; font-weight: 850; padding-left: 30px; position: relative; }
.info-card--about li::before { background: #eaf2ff; border-radius: 9px; color: var(--blue-700); content: "✓"; font-weight: 950; height: 20px; left: 0; line-height: 20px; position: absolute; text-align: center; top: -1px; width: 20px; }
.privacy-button {
  align-items: center;
  background: linear-gradient(180deg, #ffffff 0%, #f1f6ff 100%);
  border: 1px solid #dbe7f7;
  border-radius: 16px;
  color: var(--blue-950);
  display: flex;
  font-size: .9rem;
  font-weight: 950;
  justify-content: center;
  padding: 14px 16px;
  text-align: center;
}
.footer {
  align-items: center;
  display: flex;
  gap: 22px;
  grid-column: 1;
  justify-content: space-between;
  margin-top: 6px;
}
.footer__government { align-items: center; color: var(--blue-950); display: flex; gap: 12px; font-size: .66rem; font-weight: 950; line-height: 1.05; }
.footer__seal { background: radial-gradient(circle, #fff 0 18%, #d9272e 19% 34%, transparent 35%), conic-gradient(from 20deg, #cfaa40, #e7c76e, #2d8b53, #cfaa40); border-radius: 50%; box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .7); display: block; height: 54px; width: 54px; }
.footer__security { align-items: center; display: flex; gap: 14px; max-width: 680px; }
.footer__shield { background: #eaf2ff; flex: 0 0 auto; }
.footer__shield::before { background: var(--red-500); }
.footer__shield::after { border-color: var(--blue-700); border-right-color: transparent; border-top-color: transparent; }
.footer__security p { color: #101828; display: flex; flex-direction: column; font-size: .82rem; font-weight: 700; line-height: 1.38; }
.footer__security strong { font-size: .92rem; font-weight: 950; }

/* Nova denúncia */
.new-report-page {
  background:
    radial-gradient(circle at 15% 0%, rgba(0, 87, 216, .14), transparent 34%),
    radial-gradient(circle at 92% 8%, rgba(229, 28, 42, .08), transparent 24%),
    linear-gradient(180deg, #eef3fa 0%, #f7f9fc 38%, #ffffff 100%);
}
.new-report {
  min-height: 100vh;
  padding: clamp(22px, 3vw, 48px);
}
.denuncia-shell {
  border-radius: 32px;
  margin: 0 auto;
  max-width: 1280px;
  overflow: hidden;
}
.denuncia-header {
  align-items: center;
  background:
    radial-gradient(circle at 83% 22%, rgba(0, 87, 216, .34), transparent 30%),
    linear-gradient(102deg, #001235, #001846 55%, #08256c 100%);
  color: #fff;
  display: grid;
  gap: 18px;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 94px;
  padding: 20px clamp(22px, 4vw, 44px);
  position: relative;
}
.denuncia-header::after {
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 28px 28px;
  content: "";
  inset: 0;
  opacity: .7;
  pointer-events: none;
  position: absolute;
}
.denuncia-back,
.denuncia-header__title,
.denuncia-header__crest { position: relative; z-index: 1; }
.denuncia-back {
  align-items: center;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  gap: 8px;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  transition: background .2s ease, transform .2s ease;
}
.denuncia-back:hover, .denuncia-back:focus-visible { background: rgba(255,255,255,.18); outline: none; transform: translateX(-2px); }
.denuncia-back strong { font-size: .9rem; font-weight: 900; }
.denuncia-header__title span { color: #cad7ff; display: block; font-size: .8rem; font-weight: 850; letter-spacing: .06em; margin-bottom: 4px; text-transform: uppercase; }
.denuncia-header__title h1 { color: #fff; font-size: clamp(1.42rem, 2.2vw, 2.25rem); font-weight: 950; line-height: 1; }
.denuncia-header__crest { background: rgba(255, 255, 255, .13); border: 1px solid rgba(255, 255, 255, .22); height: 48px; width: 40px; }

.stepper {
  background: linear-gradient(180deg, #ffffff 0%, #f9fbff 100%);
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  padding: 22px clamp(24px, 4vw, 58px) 20px;
}
.stepper__item {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-direction: column;
  font-size: .86rem;
  font-weight: 900;
  gap: 9px;
  min-width: 0;
  position: relative;
  text-align: center;
}
.stepper__item:not(:last-child)::after {
  background: var(--line);
  content: "";
  height: 3px;
  left: calc(50% + 24px);
  position: absolute;
  right: calc(-50% + 24px);
  top: 19px;
  z-index: 0;
}
.stepper__item.is-complete:not(:last-child)::after { background: linear-gradient(90deg, var(--blue-700), rgba(0,87,216,.28)); }
.stepper__item span {
  align-items: center;
  background: #eef1f6;
  border: 1px solid #d9e1ec;
  border-radius: 999px;
  color: var(--muted);
  display: flex;
  flex: 0 0 auto;
  font-size: .9rem;
  font-weight: 950;
  height: 42px;
  justify-content: center;
  position: relative;
  width: 42px;
  z-index: 1;
}
.stepper__item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stepper__item.is-active { color: var(--blue-700); }
.stepper__item.is-active span, .stepper__item.is-complete span { background: var(--blue-700); border-color: var(--blue-700); box-shadow: 0 10px 24px rgba(0, 87, 216, .22); color: #fff; }
.stepper__item.is-complete { color: var(--text); }
.stepper__item.is-complete span { font-size: 0; }
.stepper__item.is-complete span::before { content: "✓"; font-size: 1.08rem; }

.denuncia-form {
  margin: 0 auto;
  max-width: 1180px;
  padding: clamp(28px, 4vw, 56px);
}
.form-step { display: none; }
.form-step.is-active { animation: stepIn .22s ease-out; display: block; }
@keyframes stepIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.step-copy { margin-bottom: 24px; max-width: 780px; }
.step-copy--compact { margin-bottom: 22px; }
.step-badge { color: var(--blue-700); margin-bottom: 10px; }
.step-copy h2 { color: var(--text); font-size: clamp(1.65rem, 3vw, 2.8rem); font-weight: 950; letter-spacing: -.04em; line-height: 1.02; margin-bottom: 10px; }
.step-copy p { color: var(--muted); font-size: clamp(.98rem, 1.2vw, 1.08rem); font-weight: 720; line-height: 1.52; }

.field {
  display: grid;
  gap: 8px;
  min-width: 0;
  position: relative;
  width: 100%;
}
.field > span,
.category-area__label {
  color: var(--text);
  display: block;
  font-size: .88rem;
  font-weight: 900;
  letter-spacing: -.01em;
}
.category-area__label small { color: var(--muted); font-weight: 760; }
.field input,
.field textarea {
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 17px;
  box-shadow: 0 1px 0 rgba(16, 24, 40, .02);
  color: var(--text);
  outline: 0;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
  width: 100%;
}
.field input { min-height: 54px; padding: 0 16px; }
.field textarea { min-height: 225px; padding: 16px 18px 42px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder, .consult-panel__input::placeholder { color: #98a2b3; }
.field input:focus, .field textarea:focus { border-color: var(--blue-700); box-shadow: var(--focus); }
.field small {
  bottom: 12px;
  color: var(--muted-2);
  display: block;
  font-size: .78rem;
  font-weight: 850;
  position: absolute;
  right: 16px;
  text-align: right;
}
.field:not(.field--textarea) small { bottom: 12px; }
.field--reference { margin-top: 18px; }

.category-area { margin-top: 22px; }
.category-group {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  margin-top: 12px;
}
.category-button {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(0, 24, 70, .05);
  color: var(--text);
  display: flex;
  gap: 10px;
  justify-content: center;
  min-height: 58px;
  padding: 0 14px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.category-button:hover, .category-button:focus-visible { border-color: rgba(0, 87, 216, .3); box-shadow: 0 18px 36px rgba(0, 24, 70, .08); outline: none; transform: translateY(-2px); }
.category-button.is-selected { background: var(--blue-100); border-color: var(--blue-700); color: var(--blue-700); }
.category-button strong { font-size: .92rem; font-weight: 900; }
.category-icon {
  align-items: center;
  background: currentColor;
  display: block;
  height: 24px;
  mask: var(--icon) center/contain no-repeat;
  -webkit-mask: var(--icon) center/contain no-repeat;
  width: 24px;
}
.category-button--drug { color: #159447; }
.category-button--theft { color: #ea7a18; }
.category-button--violence { color: #e1495b; }
.category-button--weapon { color: #7c3aed; }
.category-button--other { color: #606878; }
.category-button--drug .category-icon { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2c2.4 3.2 2.4 6.4 0 9.6C9.6 8.4 9.6 5.2 12 2Zm.9 11.2c3.8-2.7 7.1-2.8 9.9-.4-3.4 1.9-6.7 2-9.9.4Zm-1.8 0c-3.2 1.6-6.5 1.5-9.9-.4 2.8-2.4 6.1-2.3 9.9.4ZM12 13.8c1.9 2.6 1.8 5.4 0 8.2-1.8-2.8-1.9-5.6 0-8.2Z'/%3E%3C/svg%3E"); }
.category-button--theft .category-icon { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 9a5 5 0 0 1 10 0h1.5A2.5 2.5 0 0 1 21 11.5V19a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3v-7.5A2.5 2.5 0 0 1 5.5 9H7Zm2 0h6a3 3 0 0 0-6 0Zm-2.5 5.5a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0Zm8 0a1.5 1.5 0 1 0 3 0 1.5 1.5 0 0 0-3 0ZM7 4l2 2H5l2-2Zm10 0 2 2h-4l2-2Z'/%3E%3C/svg%3E"); }
.category-button--violence .category-icon { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 3a2 2 0 0 1 2 2v6h1V4a2 2 0 0 1 4 0v7h1V6a2 2 0 0 1 4 0v7c0 4.4-3.6 8-8 8H9.5c-1.5 0-2.9-.8-3.6-2.1L2.4 13a2 2 0 0 1 3.4-2.1L7 12.7V5a2 2 0 0 1 1-1.7Z'/%3E%3C/svg%3E"); }
.category-button--weapon .category-icon { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8h15.5c1.4 0 2.5 1.1 2.5 2.5V12h-4.5l-1.3 2H12v3a3 3 0 0 1-6 0v-3H4.5A1.5 1.5 0 0 1 3 12.5V8Zm5 6v3a1 1 0 1 0 2 0v-3H8Zm-1-4v2h9l.7-1H19v-.5a.5.5 0 0 0-.5-.5H7Z'/%3E%3C/svg%3E"); }
.category-button--other .category-icon { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 12a2 2 0 1 0 0 .01V12Zm7 0a2 2 0 1 0 0 .01V12Zm7 0a2 2 0 1 0 0 .01V12Z'/%3E%3C/svg%3E"); }
.category-button.is-selected .category-icon { background: currentColor; }
.inline-alert {
  align-items: flex-start;
  background: #eef5ff;
  border: 1px solid #d7e8ff;
  border-radius: 18px;
  color: var(--text);
  display: flex;
  gap: 12px;
  font-size: .94rem;
  font-weight: 820;
  line-height: 1.42;
  margin-top: 22px;
  padding: 16px 18px;
}
.inline-alert > span {
  background: var(--blue-700);
  border-radius: 999px;
  color: #fff;
  flex: 0 0 auto;
  height: 24px;
  margin-top: -1px;
  position: relative;
  width: 24px;
}
.inline-alert > span::after { content: "i"; font-weight: 950; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -52%); }

.location-layout {
  align-items: stretch;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(520px, 1.1fr) minmax(380px, .9fr);
}
.map-card {
  background: linear-gradient(180deg, rgba(30, 41, 59, .98), rgba(15, 23, 42, .99));
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 28px;
  box-shadow: 0 28px 68px rgba(15, 23, 42, .2);
  min-width: 0;
  overflow: hidden;
  padding: 18px;
  position: relative;
}
.map-toolbar { align-items: center; display: flex; gap: 14px; justify-content: space-between; margin-bottom: 16px; }
.map-toolbar strong { color: #fff; display: block; font-size: 1rem; font-weight: 950; }
.map-toolbar span { color: #cbd5e1; display: block; font-size: .82rem; font-weight: 720; line-height: 1.35; margin-top: 3px; }
.map-locate {
  align-items: center;
  background: rgba(0, 87, 216, .98);
  border: 1px solid rgba(147, 197, 253, .32);
  border-radius: 999px;
  box-shadow: 0 14px 28px rgba(0, 87, 216, .28);
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 8px;
  font-size: .84rem;
  font-weight: 950;
  min-height: 44px;
  padding: 0 16px;
}
.map-locate span {
  background: #fff;
  display: block;
  height: 18px;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2h2v2.1A8 8 0 0 1 19.9 10H22v2h-2.1A8 8 0 0 1 14 17.9V20h-2v-2.1A8 8 0 0 1 6.1 12H4v-2h2.1A8 8 0 0 1 12 4.1V2Zm1 4.1V8h-2V6.1A6 6 0 0 0 8.1 10H10v2H8.1A6 6 0 0 0 11 15.9V14h2v1.9A6 6 0 0 0 15.9 12H14v-2h1.9A6 6 0 0 0 13 6.1Z'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2h2v2.1A8 8 0 0 1 19.9 10H22v2h-2.1A8 8 0 0 1 14 17.9V20h-2v-2.1A8 8 0 0 1 6.1 12H4v-2h2.1A8 8 0 0 1 12 4.1V2Zm1 4.1V8h-2V6.1A6 6 0 0 0 8.1 10H10v2H8.1A6 6 0 0 0 11 15.9V14h2v1.9A6 6 0 0 0 15.9 12H14v-2h1.9A6 6 0 0 0 13 6.1Z'/%3E%3C/svg%3E") center/contain no-repeat;
  width: 18px;
}
.map-placeholder {
  background:
    radial-gradient(circle at 32% 30%, rgba(0, 87, 216, .32), transparent 24%),
    linear-gradient(135deg, #111827, #0f172a 52%, #111827);
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 24px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
  display: grid;
  min-height: 430px;
  overflow: hidden;
  place-items: center;
  position: relative;
  text-align: center;
}
.map-placeholder::before {
  background-image:
    linear-gradient(30deg, rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(120deg, rgba(255,255,255,.06) 2px, transparent 2px);
  background-size: 78px 78px, 120px 120px;
  content: "";
  inset: 0;
  opacity: .5;
  position: absolute;
  z-index: 1;
}
.map-placeholder::after {
  background: linear-gradient(180deg, rgba(15, 23, 42, .08), rgba(15, 23, 42, .44));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 420;
}
.map-placeholder.is-leaflet { display: block; }
.map-placeholder.is-leaflet::before { display: none; }
.leaflet-container { background: #0f172a; color: #e5edf8; font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif; }
.leaflet-tile-pane { filter: invert(.93) hue-rotate(178deg) saturate(.58) brightness(.66) contrast(1.18); }
.map-placeholder .leaflet-control-container + span,
.map-placeholder > span {
  background: var(--red-500);
  border: 6px solid #fff;
  border-radius: 50% 50% 50% 0;
  box-shadow: 0 8px 24px rgba(229, 28, 42, .28);
  height: 38px;
  position: relative;
  transform: rotate(-45deg);
  width: 38px;
  z-index: 3;
}
.map-placeholder > strong {
  background: rgba(15, 23, 42, .76);
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 999px;
  color: #f8fafc;
  font-size: .88rem;
  font-weight: 950;
  padding: 10px 16px;
  position: relative;
  z-index: 3;
}
.leaflet-control-zoom { border: 0 !important; box-shadow: 0 16px 34px rgba(0, 0, 0, .28); }
.leaflet-control-zoom a { background: rgba(15, 23, 42, .9) !important; border: 1px solid rgba(226, 232, 240, .16) !important; color: #fff !important; font-weight: 950; height: 40px !important; line-height: 38px !important; width: 40px !important; }
.leaflet-control-zoom-in { border-radius: 14px 14px 0 0 !important; }
.leaflet-control-zoom-out { border-radius: 0 0 14px 14px !important; }
.leaflet-control-attribution { background: rgba(15, 23, 42, .72) !important; border-radius: 12px 0 0 0; color: #cbd5e1 !important; font-size: .68rem; padding: 4px 8px !important; }
.leaflet-control-attribution a { color: #dbeafe !important; }
.premium-marker { background: transparent; border: 0; }
.premium-marker span { background: linear-gradient(160deg, #e51c2a, #ff6470); border: 4px solid #fff; border-radius: 50%; box-shadow: 0 0 0 12px rgba(229, 28, 42, .18), 0 0 34px rgba(229, 28, 42, .52), 0 16px 34px rgba(0, 0, 0, .35); display: block; height: 34px; position: relative; width: 34px; }
.premium-marker span::after { background: rgba(255, 255, 255, .92); border-radius: 50%; content: ""; height: 8px; left: 9px; position: absolute; top: 9px; width: 8px; }
.accuracy-halo { fill: #0057d8; fill-opacity: .18; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: rgba(15, 23, 42, .92); color: #fff; }
.location-summary {
  background: rgba(255, 255, 255, .96);
  border: 1px solid rgba(226, 232, 240, .86);
  border-radius: 20px;
  bottom: 106px;
  box-shadow: 0 24px 54px rgba(2, 6, 23, .24);
  display: grid;
  gap: 5px;
  left: 34px;
  max-width: min(440px, calc(100% - 68px));
  padding: 16px;
  position: absolute;
  right: 34px;
  z-index: 500;
}
.location-summary__eyebrow { color: var(--blue-700); font-size: .68rem; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.location-summary strong { color: var(--text); display: -webkit-box; font-size: .94rem; font-weight: 950; line-height: 1.28; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.location-summary small { color: var(--muted); font-size: .78rem; font-weight: 760; line-height: 1.35; }
.location-summary button { background: var(--blue-950); border: 0; border-radius: 14px; color: #fff; font-size: .84rem; font-weight: 950; margin-top: 8px; min-height: 42px; padding: 0 14px; }
.coordinate-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
.map-card .coordinate-grid .field > span { color: #e2e8f0; }
.map-card .coordinate-grid .field input { background: rgba(15, 23, 42, .72); border-color: rgba(148, 163, 184, .28); color: #f8fafc; }
.location-layout > .field-grid {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 28px;
  box-shadow: 0 22px 52px rgba(0, 24, 70, .08);
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  padding: 24px;
}
.field--wide { grid-column: 1 / -1; }

.upload-box {
  align-items: center;
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  border: 2px dashed #bdd0eb;
  border-radius: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
  min-height: 230px;
  padding: 34px;
  position: relative;
  text-align: center;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.upload-box:hover, .upload-box:focus-within { background: #fff; border-color: var(--blue-700); box-shadow: 0 18px 44px rgba(0, 87, 216, .08); }
.upload-box input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.upload-box__icon { align-items: center; background: #eaf2ff; border-radius: 22px; color: var(--blue-700); display: flex; height: 72px; justify-content: center; width: 72px; }
.upload-box__icon::before { background: currentColor; content: ""; height: 38px; mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3 7 8h3v6h4V8h3l-5-5ZM5 14v4a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3v-4h-2v4a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-4H5Z'/%3E%3C/svg%3E") center/contain no-repeat; -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3 7 8h3v6h4V8h3l-5-5ZM5 14v4a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3v-4h-2v4a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-4H5Z'/%3E%3C/svg%3E") center/contain no-repeat; width: 38px; }
.upload-box strong { color: var(--text); font-size: 1.08rem; font-weight: 950; }
.upload-box small { color: var(--muted); font-size: .9rem; font-weight: 760; line-height: 1.35; }
.file-list { display: grid; gap: 10px; list-style: none; margin: 16px 0 18px; }
.file-list li { align-items: center; background: #f8fbff; border: 1px solid var(--line); border-radius: 18px; color: var(--text); display: grid; gap: 12px; grid-template-columns: 40px minmax(0, 1fr) auto; padding: 12px; }
.file-list__icon { align-items: center; background: #eaf2ff; border-radius: 13px; color: var(--blue-700); display: flex; height: 40px; justify-content: center; width: 40px; }
.file-list__icon::before { content: "▣"; font-size: 1.05rem; font-weight: 950; }
.file-list__meta { min-width: 0; }
.file-list__meta span { color: var(--text); display: block; font-size: .92rem; font-weight: 900; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-list__meta small { color: var(--muted); font-size: .78rem; font-weight: 760; }
.file-list button { background: #fff; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); font-weight: 950; height: 34px; width: 34px; }

.review-grid { display: grid; gap: 14px; }
.review-card { align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 14px 36px rgba(0, 24, 70, .06); display: grid; gap: 16px; grid-template-columns: 56px minmax(0, 1fr) auto; padding: 18px; }
.review-card__icon { align-items: center; background: var(--blue-100); border-radius: 18px; color: var(--blue-700); display: flex; height: 56px; justify-content: center; width: 56px; }
.review-card__icon::before { background: currentColor; content: ""; height: 28px; mask: var(--icon) center/contain no-repeat; -webkit-mask: var(--icon) center/contain no-repeat; width: 28px; }
.review-card__icon--occurrence::before { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 3h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9l-6 4V5a2 2 0 0 1 2-2Zm1 3v11.3L8.4 15H19V6H6Zm2 2h8v2H8V8Zm0 4h6v2H8v-2Z'/%3E%3C/svg%3E"); }
.review-card__icon--place::before { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.3 7 13 7 13s7-7.7 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E"); }
.review-card__icon--files::before { --icon: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 2h8l4 4v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm7 1.5V7h3.5L13 3.5ZM8 11h8v2H8v-2Zm0 4h6v2H8v-2Z'/%3E%3C/svg%3E"); }
.review-card h3 { color: var(--text); font-size: 1rem; font-weight: 950; margin-bottom: 4px; }
.review-card p { color: var(--muted); font-size: .92rem; font-weight: 720; line-height: 1.45; }
.review-card button { background: #eef5ff; border: 1px solid #d7e8ff; border-radius: 999px; color: var(--blue-700); font-size: .86rem; font-weight: 950; padding: 9px 14px; }
.confirm-check { align-items: flex-start; background: #fff7f8; border: 1px solid #ffd9dd; border-radius: 18px; display: flex; gap: 12px; margin-top: 18px; padding: 16px; }
.confirm-check input { accent-color: var(--red-500); flex: 0 0 auto; height: 21px; margin-top: 1px; width: 21px; }
.confirm-check span { color: var(--text); font-size: .94rem; font-weight: 820; line-height: 1.42; }
.form-actions { border-top: 1px solid var(--line); display: flex; gap: 12px; justify-content: flex-end; margin-top: 30px; padding-top: 22px; }
.primary-button, .secondary-button { border-radius: 999px; font-weight: 950; min-height: 54px; padding: 0 26px; transition: transform .18s ease, box-shadow .18s ease; }
.primary-button { background: linear-gradient(135deg, var(--blue-950), var(--blue-700)); border: 1px solid var(--blue-950); box-shadow: 0 16px 34px rgba(0, 24, 70, .16); color: #fff; }
.primary-button.is-submit { background: linear-gradient(135deg, var(--red-600), var(--red-500)); border-color: var(--red-500); box-shadow: 0 16px 34px rgba(229, 28, 42, .22); }
.secondary-button { background: #fff; border: 1px solid #cdd7e6; color: var(--text); }
.primary-button:hover, .secondary-button:hover { transform: translateY(-1px); }

@media (min-width: 1181px) {
  .main-panel { grid-column: 1; grid-row: 1; }
  .sidebar { grid-column: 2; grid-row: 1 / span 2; }
  .footer { grid-column: 1; grid-row: 2; }
  .info-card--about { display: flex; flex: 1; flex-direction: column; }
  .info-card--about .privacy-button { margin-top: auto; }
}
@media (min-width: 1500px) { .workspace { grid-template-columns: minmax(0, 1fr) 460px; } }
@media (max-width: 1180px) {
  .workspace { grid-template-columns: 1fr; }
  .sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer { grid-column: 1; margin-top: 0; }
  .hero__assistant-card { display: none; }
  .location-layout { grid-template-columns: 1fr; }
  .map-placeholder { min-height: 380px; }
}
@media (max-width: 920px) {
  .category-group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .category-button:last-child { grid-column: 1 / -1; }
  .location-layout > .field-grid { grid-template-columns: 1fr; }
  .field--wide { grid-column: auto; }
}
@media (max-width: 820px) {
  .top-header { gap: 16px; justify-content: space-between; padding: 16px 18px; }
  .logo-security { left: auto; position: static; top: auto; transform: none; }
  .logo-security strong, .logo-security span { font-size: .68rem; }
  .logo-para span { letter-spacing: .22rem; }
  .page { padding: 14px 16px 26px; }
  .hero { border-radius: 26px; min-height: 0; padding: 28px 22px; }
  .hero__content { max-width: 100%; }
  .hero h1 { font-size: clamp(2.36rem, 11vw, 3.18rem); }
  .hero__phone { gap: 12px; }
  .hero__phone strong { font-size: clamp(2rem, 10vw, 2.76rem); white-space: normal; }
  .hero__visual { display: none; }
  .workspace { gap: 18px; }
  .main-panel { border-radius: 24px; padding: 26px 18px; }
  .action-grid { grid-template-columns: 1fr; }
  .action-card { grid-template-columns: 64px minmax(0, 1fr) 16px; min-height: 116px; padding: 18px; }
  .action-card__icon { border-radius: 20px; height: 64px; width: 64px; }
  .sidebar { grid-template-columns: 1fr; }
  .footer { align-items: center; flex-direction: column; text-align: center; }
  .footer__government, .footer__security { justify-content: center; }

  .new-report { padding: 0; }
  .denuncia-shell { border: 0; border-radius: 0; box-shadow: none; min-height: 100vh; width: 100%; }
  .denuncia-header { grid-template-columns: auto minmax(0, 1fr); min-height: 84px; padding: 16px 18px; }
  .denuncia-back { height: 42px; min-height: 42px; padding: 0 12px; }
  .denuncia-back strong { display: none; }
  .denuncia-header__title h1 { font-size: 1.42rem; }
  .denuncia-header__crest { height: 42px; width: 34px; }
  .stepper { gap: 0; overflow: hidden; padding: 14px 10px 12px; }
  .stepper__item { font-size: .66rem; gap: 7px; }
  .stepper__item span { height: 34px; width: 34px; }
  .stepper__item:not(:last-child)::after { left: calc(50% + 18px); right: calc(-50% + 18px); top: 16px; }
  .stepper__item strong { max-width: 76px; }
  .denuncia-form { max-width: none; padding: 22px 16px 28px; width: 100%; }
  .step-copy { margin-bottom: 20px; }
  .step-copy h2 { font-size: 1.72rem; }
  .field textarea { min-height: 192px; }
  .category-group { gap: 10px; grid-template-columns: 1fr 1fr; }
  .category-button { border-radius: 16px; min-height: 54px; padding: 0 12px; }
  .location-layout { gap: 16px; }
  .map-card { border-radius: 24px; padding: 14px; }
  .map-toolbar { align-items: stretch; flex-direction: column; }
  .map-locate { justify-content: center; width: 100%; }
  .map-placeholder { border-radius: 20px; min-height: 310px; }
  .location-summary { bottom: 94px; left: 24px; max-width: calc(100% - 48px); padding: 14px; right: 24px; }
  .coordinate-grid { grid-template-columns: 1fr; }
  .location-layout > .field-grid { border-radius: 24px; padding: 18px; }
  .upload-box { min-height: 210px; padding: 26px 18px; }
  .review-card { align-items: flex-start; grid-template-columns: 50px minmax(0, 1fr); padding: 16px; }
  .review-card button { grid-column: 2; justify-self: start; }
  .form-actions { background: rgba(255,255,255,.94); bottom: 0; flex-direction: column-reverse; margin: 26px -16px -28px; padding: 16px; position: sticky; z-index: 20; }
  .primary-button, .secondary-button { width: 100%; }
}
@media (max-width: 520px) {
  body { background: #f7f9fc; }
  .top-header { align-items: flex-start; flex-direction: column; }
  .logo-para strong { font-size: 2rem; }
  .logo-para span { letter-spacing: .2rem; }
  .hero__tag { font-size: .72rem; }
  .hero__whatsapp-label { border-radius: 10px; font-size: 1.12rem; line-height: 1.1; padding: 12px 14px; }
  .whatsapp-icon { height: 48px; width: 48px; }
  .hero__phone strong { font-size: 2.05rem; }
  .main-panel h2 { font-size: 1.02rem; }
  .consult-panel__row { grid-template-columns: minmax(0, 1fr); }
  .consult-panel__button { min-height: 54px; }
  .footer__government { flex-wrap: wrap; }
  .footer__security { flex-direction: column; }
  .denuncia-header { padding: 14px 14px; }
  .denuncia-header__title span { font-size: .66rem; }
  .stepper { padding-inline: 6px; }
  .stepper__item { font-size: .56rem; }
  .stepper__item span { height: 30px; width: 30px; }
  .stepper__item strong { max-width: 64px; }
  .denuncia-form { padding-left: 14px; padding-right: 14px; }
  .field input { min-height: 52px; }
  .category-group { grid-template-columns: 1fr; }
  .category-button:last-child { grid-column: auto; }
  .map-placeholder { min-height: 285px; }
  .location-summary { bottom: 88px; left: 18px; max-width: calc(100% - 36px); right: 18px; }
  .location-summary strong { font-size: .86rem; }
  .file-list li { grid-template-columns: 40px minmax(0, 1fr) 34px; }
}

/* Ajustes finos solicitados em 08/06 */
.top-header {
  gap: clamp(18px, 3vw, 34px);
  justify-content: center;
}
.logo-security {
  left: auto;
  position: static;
  top: auto;
  transform: none;
}
.logo-security__text {
  border-left: 1px solid rgba(0, 24, 70, .16);
  padding-left: clamp(14px, 2vw, 22px);
}
.logo-security strong,
.logo-security span {
  font-size: clamp(.66rem, .78vw, .82rem);
  letter-spacing: .015em;
}
.logo-para {
  gap: 12px;
}
.logo-para__mark {
  height: 34px;
  width: 42px;
}
.logo-para__text {
  --para-logo-width: clamp(82px, 7vw, 118px);
  align-items: stretch;
  display: flex;
  flex-direction: column;
  line-height: .9;
  width: var(--para-logo-width);
}
.logo-para__line {
  align-items: center;
  display: flex;
  justify-content: space-between;
  line-height: 1;
  width: 100%;
}
.logo-para__gov {
  color: var(--blue-950);
  font-size: clamp(.42rem, .44vw, .56rem);
  font-weight: 950;
  letter-spacing: 0;
  margin-bottom: 1px;
}
.logo-para strong {
  color: #1550a3;
  display: block;
  font-size: clamp(1.72rem, 2.45vw, 2.35rem);
  font-weight: 950;
  letter-spacing: -.035em;
  line-height: .78;
  text-align: center;
}
.logo-para__slogan {
  color: var(--red-500);
  font-size: clamp(.32rem, .34vw, .43rem);
  font-weight: 950;
  letter-spacing: 0;
  margin-top: 3px;
}
.logo-para span:not(.logo-para__mark):not(.logo-para__text):not(.logo-para__line) {
  letter-spacing: 0;
  padding-left: 0;
}
.denuncia-back {
  border: 0;
}
.field textarea[aria-invalid="true"] {
  border-color: var(--red-500);
  box-shadow: 0 0 0 4px rgba(229, 28, 42, .12);
}
.field-error {
  color: var(--red-500);
  font-size: .88rem;
  font-weight: 850;
  margin-top: 8px;
  min-height: 1.2em;
}
.category-group {
  grid-template-columns: repeat(5, minmax(96px, 1fr));
}
.category-button {
  color: var(--text);
  min-height: 54px;
}
.category-button strong {
  font-size: .96rem;
}
.category-icon,
.category-button .category-icon {
  display: none !important;
}
.category-button--drug,
.category-button--theft,
.category-button--violence,
.category-button--weapon,
.category-button--other {
  color: var(--text);
}
.category-button.is-selected {
  background: linear-gradient(180deg, #eef5ff, #ffffff);
  border-color: var(--blue-700);
  box-shadow: 0 14px 32px rgba(0, 87, 216, .12);
  color: var(--blue-700);
}
.location-layout > .field-grid--address {
  align-content: start;
  grid-template-columns: minmax(0, 1fr) minmax(110px, .46fr);
}
.field--cep { grid-column: 1; }
.field--number { grid-column: 2; }
.address-search {
  align-self: end;
  background: linear-gradient(135deg, var(--blue-950), var(--blue-700));
  border: 1px solid var(--blue-950);
  border-radius: 16px;
  box-shadow: 0 16px 32px rgba(0, 24, 70, .14);
  color: #fff;
  font-weight: 950;
  grid-column: 1 / -1;
  min-height: 52px;
  padding: 0 18px;
  transition: transform .18s ease, box-shadow .18s ease;
}
.address-search:hover,
.address-search:focus-visible {
  box-shadow: 0 18px 38px rgba(0, 87, 216, .18);
  outline: none;
  transform: translateY(-1px);
}
.map-card input[type="hidden"] {
  display: none;
}
.coordinate-grid {
  display: none !important;
}
@media (max-width: 820px) {
  .top-header {
    align-items: center;
    flex-direction: row;
    justify-content: space-between;
  }
  .logo-security__text {
    padding-left: 12px;
  }
  .logo-security strong,
  .logo-security span {
    font-size: .62rem;
  }
  .logo-para__text {
    --para-logo-width: 86px;
  }
  .logo-para__mark {
    height: 30px;
    width: 36px;
  }
  .logo-para strong {
    font-size: 1.72rem;
  }
  .logo-para__gov {
    font-size: .38rem;
  }
  .logo-para__slogan {
    font-size: .29rem;
  }
  .location-layout > .field-grid--address {
    grid-template-columns: 1fr 110px;
  }
  .address-search,
  .field--city,
  .field--district,
  .field--street,
  .field--complement {
    grid-column: 1 / -1;
  }
  .category-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .top-header {
    align-items: center;
    flex-direction: row;
    gap: 10px;
  }
  .logo-security__text {
    border-left: 0;
    padding-left: 0;
  }
  .logo-security strong,
  .logo-security span {
    font-size: .54rem;
  }
  .logo-para {
    gap: 8px;
  }
  .logo-para__text {
    --para-logo-width: 76px;
  }
  .logo-para strong {
    font-size: 1.52rem;
  }
  .logo-para__gov {
    font-size: .33rem;
  }
  .logo-para__slogan {
    font-size: .255rem;
  }
  .location-layout > .field-grid--address {
    grid-template-columns: minmax(0, 1fr);
  }
  .field--cep,
  .field--number,
  .address-search {
    grid-column: 1;
  }
}
.logo-para__line span {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  padding-left: 0;
}

/* Ajustes finais solicitados: header com logo oficial, footer Sobre o sistema e mapa compacto */
.top-header--brand-only {
  background: rgba(255, 255, 255, .96);
  justify-content: center !important;
  min-height: 112px;
  padding: 16px clamp(18px, 4vw, 72px) !important;
}
.brand-logo {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  max-width: min(94vw, 920px);
  width: 100%;
}
.brand-logo img {
  display: block;
  height: clamp(78px, 8vw, 108px);
  max-width: min(94vw, 760px);
  object-fit: contain;
  object-position: center;
  width: auto;
}
.footer--about {
  align-items: flex-start;
  display: grid;
  gap: 14px;
  margin-top: 0;
  text-align: left;
}
.footer--about p {
  color: var(--text);
  font-size: .95rem;
  font-weight: 740;
  line-height: 1.5;
  max-width: 760px;
}
.info-card--about ul,
.info-card--about .privacy-button {
  display: none !important;
}
.hero__assistant-card,
.assistant-card__face,
.assistant-card__label {
  display: none !important;
}
.map-placeholder.is-leaflet::after {
  z-index: 402;
}
.map-placeholder.is-leaflet .leaflet-pane,
.map-placeholder.is-leaflet .leaflet-control-container {
  z-index: 410;
}
.map-placeholder.is-leaflet .leaflet-marker-pane,
.map-placeholder.is-leaflet .leaflet-shadow-pane {
  z-index: 430;
}
.location-summary,
.location-summary--compact {
  align-items: center;
  background: rgba(15, 23, 42, .86);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(226, 232, 240, .18);
  border-radius: 18px;
  bottom: 18px !important;
  box-shadow: 0 18px 34px rgba(2, 6, 23, .28);
  display: grid;
  gap: 3px;
  left: 18px !important;
  max-width: none !important;
  padding: 10px 12px;
  pointer-events: none;
  position: absolute;
  right: 18px !important;
  z-index: 445;
}
.location-summary__eyebrow,
.location-summary small,
.location-summary button {
  display: none !important;
}
.location-summary__label {
  color: #93c5fd;
  display: block;
  font-size: .64rem;
  font-weight: 950;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}
.location-summary strong {
  color: #f8fafc;
  display: block;
  font-size: .82rem;
  font-weight: 850;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  -webkit-line-clamp: unset;
}
@media (min-width: 1181px) {
  .sidebar { grid-row: 1; }
  .footer--about { grid-column: 1; grid-row: 2; }
}
@media (max-width: 820px) {
  .top-header--brand-only {
    align-items: center !important;
    flex-direction: row !important;
    justify-content: center !important;
    min-height: 94px;
    padding: 14px 16px !important;
  }
  .brand-logo img {
    height: clamp(60px, 14vw, 76px);
    max-width: 92vw;
  }
  .footer--about {
    align-items: flex-start;
    text-align: left;
  }
  .location-summary,
  .location-summary--compact {
    bottom: 14px !important;
    left: 14px !important;
    padding: 9px 10px;
    right: 14px !important;
  }
  .location-summary strong { font-size: .78rem; }
}
@media (max-width: 520px) {
  .top-header--brand-only {
    gap: 0 !important;
    min-height: 82px;
  }
  .brand-logo img {
    height: clamp(52px, 16vw, 64px);
  }
}


/* Ajustes finais: remove ícone decorativo do header dos steps e corrige empilhamento/centralização do Leaflet. */
.denuncia-header__crest { display: none !important; }
.denuncia-header { grid-template-columns: auto minmax(0, 1fr) !important; }
.map-placeholder.is-leaflet .leaflet-pane { position: absolute !important; }
.map-placeholder.is-leaflet .leaflet-map-pane { z-index: 400 !important; }
.map-placeholder.is-leaflet .leaflet-tile-pane { z-index: 200 !important; }
.map-placeholder.is-leaflet .leaflet-overlay-pane { z-index: 420 !important; }
.map-placeholder.is-leaflet .leaflet-marker-pane { z-index: 650 !important; }
.map-placeholder.is-leaflet .leaflet-shadow-pane { z-index: 600 !important; }
.map-placeholder.is-leaflet .leaflet-popup-pane { z-index: 700 !important; }
.map-placeholder.is-leaflet .leaflet-tooltip-pane { z-index: 700 !important; }
.map-placeholder.is-leaflet .leaflet-control-container { position: absolute !important; inset: 0; z-index: 720 !important; pointer-events: none; }
.map-placeholder.is-leaflet .leaflet-control { pointer-events: auto; }
.leaflet-marker-icon.premium-marker { z-index: 660 !important; }
.location-summary.location-summary--compact { z-index: 740 !important; }

/* Ajustes solicitados: home em largura total, botões coloridos, footer total e tela final */
.workspace {
  grid-template-columns: 1fr !important;
  width: 100%;
}
.main-panel {
  grid-column: 1 / -1 !important;
  width: 100%;
}
.action-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}
.action-card.action-card--register,
.action-card.action-card--consult {
  border: 0;
  color: #fff;
  min-height: 150px;
}
.action-card.action-card--register {
  background:
    radial-gradient(circle at 90% 0%, rgba(255, 255, 255, .18), transparent 34%),
    linear-gradient(135deg, var(--red-600), var(--red-500));
  box-shadow: 0 24px 54px rgba(229, 28, 42, .24);
}
.action-card.action-card--consult {
  background:
    radial-gradient(circle at 90% 0%, rgba(255, 255, 255, .18), transparent 34%),
    linear-gradient(135deg, var(--blue-950), var(--blue-700));
  box-shadow: 0 24px 54px rgba(0, 87, 216, .24);
}
.action-card.action-card--register:hover,
.action-card.action-card--register:focus-visible {
  border: 0;
  box-shadow: 0 30px 66px rgba(229, 28, 42, .32);
}
.action-card.action-card--consult:hover,
.action-card.action-card--consult:focus-visible {
  border: 0;
  box-shadow: 0 30px 66px rgba(0, 87, 216, .32);
}
.action-card.action-card--register .action-card__icon,
.action-card.action-card--consult .action-card__icon {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}
.action-card.action-card--register .action-card__copy strong,
.action-card.action-card--register .action-card__copy span,
.action-card.action-card--register .action-card__arrow,
.action-card.action-card--consult .action-card__copy strong,
.action-card.action-card--consult .action-card__copy span,
.action-card.action-card--consult .action-card__arrow {
  color: #fff;
}
.action-card.action-card--register .action-card__copy span,
.action-card.action-card--consult .action-card__copy span {
  opacity: .9;
}
.consult-panel {
  max-width: none;
  width: 100%;
}
.sidebar {
  display: none !important;
}
.footer--about {
  grid-column: 1 / -1 !important;
  width: 100%;
}
.footer--about p {
  max-width: none;
}
.consult-panel__message[data-type="success"] {
  color: var(--green-500);
}

.success-screen {
  align-items: center;
  background:
    radial-gradient(circle at 50% 0%, rgba(0, 87, 216, .10), transparent 34%),
    #fff;
  border-radius: 0 0 var(--radius-xl) var(--radius-xl);
  display: grid;
  gap: 14px;
  justify-items: center;
  min-height: 520px;
  padding: clamp(36px, 7vw, 88px) clamp(20px, 5vw, 72px);
  text-align: center;
}
.success-screen[hidden] {
  display: none !important;
}
.success-screen__icon {
  align-items: center;
  background: linear-gradient(135deg, var(--green-500), #22c55e);
  border-radius: 999px;
  box-shadow: 0 20px 44px rgba(22, 163, 74, .24);
  color: #fff;
  display: flex;
  height: 82px;
  justify-content: center;
  position: relative;
  width: 82px;
}
.success-screen__icon::before {
  border-bottom: 6px solid currentColor;
  border-left: 6px solid currentColor;
  content: "";
  height: 18px;
  transform: rotate(-45deg) translate(2px, -2px);
  width: 34px;
}
.success-screen__eyebrow {
  color: var(--green-500);
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.success-screen h2 {
  color: var(--text);
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 950;
  line-height: 1.06;
}
.success-screen p {
  color: var(--muted);
  font-size: 1rem;
  font-weight: 760;
  line-height: 1.5;
  max-width: 560px;
}
.success-screen__protocol {
  background: #f8fbff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: var(--shadow-soft);
  display: grid;
  gap: 8px;
  margin-top: 8px;
  min-width: min(100%, 420px);
  padding: 20px 24px;
}
.success-screen__protocol span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.success-screen__protocol strong {
  color: var(--blue-950);
  font-size: clamp(1.7rem, 5vw, 2.8rem);
  font-weight: 950;
  line-height: 1;
}
.success-screen__button {
  align-items: center;
  background: linear-gradient(135deg, var(--blue-950), var(--blue-700));
  border-radius: 999px;
  box-shadow: 0 16px 34px rgba(0, 24, 70, .18);
  color: #fff;
  display: inline-flex;
  font-size: 1rem;
  font-weight: 950;
  justify-content: center;
  margin-top: 10px;
  min-height: 56px;
  padding: 0 30px;
}

@media (max-width: 820px) {
  .action-grid {
    grid-template-columns: 1fr;
  }
  .action-card.action-card--register,
  .action-card.action-card--consult {
    min-height: 118px;
  }
  .success-screen {
    border-radius: 0;
    min-height: calc(100vh - 84px);
    padding: 34px 18px 48px;
  }
  .success-screen__button,
  .success-screen__protocol {
    width: 100%;
  }
}


/* Ajustes finais: sucesso mobile compacto e botão de busca com texto */
.consult-panel__button span {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

@media (max-width: 820px) {
  .success-screen {
    align-content: start !important;
    border-radius: 0 !important;
    gap: 12px !important;
    min-height: auto !important;
    padding: 24px 16px 22px !important;
  }
  .success-screen__icon {
    height: 64px !important;
    margin: 6px auto 4px !important;
    width: 64px !important;
  }
  .success-screen__icon::before {
    border-bottom-width: 5px !important;
    border-left-width: 5px !important;
    height: 14px !important;
    width: 28px !important;
  }
  .success-screen__eyebrow {
    font-size: .68rem !important;
    letter-spacing: .12em !important;
    margin-top: 2px !important;
  }
  .success-screen h2 {
    font-size: clamp(1.45rem, 7vw, 1.72rem) !important;
    line-height: 1.08 !important;
    margin: 8px auto 2px !important;
    max-width: 330px !important;
  }
  .success-screen p {
    font-size: .9rem !important;
    line-height: 1.45 !important;
    margin: 4px auto 6px !important;
    max-width: 320px !important;
  }
  .success-screen__protocol {
    border-radius: 18px !important;
    gap: 6px !important;
    margin-top: 8px !important;
    padding: 16px 18px !important;
  }
  .success-screen__protocol span {
    font-size: .7rem !important;
  }
  .success-screen__protocol strong {
    font-size: 1.7rem !important;
  }
  .success-screen__button {
    margin-top: 8px !important;
    min-height: 54px !important;
  }
}

@media (max-width: 520px) {
  .consult-panel__button {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 54px;
    width: 100%;
  }
  .consult-panel__button::before,
  .consult-panel__button::after {
    display: none !important;
  }
  .consult-panel__button span {
    clip: auto;
    color: #fff;
    font-size: .95rem;
    font-weight: 950;
    height: auto;
    letter-spacing: .01em;
    margin: 0;
    overflow: visible;
    position: static;
    white-space: normal;
    width: auto;
  }
  .address-search {
    align-items: center;
    display: inline-flex;
    font-size: 0 !important;
    justify-content: center;
    text-align: center;
  }
  .address-search::after {
    content: "Procurar";
    font-size: .95rem;
    font-weight: 950;
  }
  .success-screen {
    gap: 10px !important;
    padding: 20px 16px 18px !important;
  }
  .success-screen__icon {
    height: 58px !important;
    margin-top: 4px !important;
    width: 58px !important;
  }
  .success-screen h2 {
    font-size: 1.48rem !important;
  }
  .success-screen__protocol {
    margin-top: 6px !important;
  }
}

@media (max-height: 700px) and (max-width: 520px) {
  .success-screen {
    gap: 8px !important;
    padding-bottom: 14px !important;
    padding-top: 16px !important;
  }
  .success-screen__icon {
    height: 52px !important;
    width: 52px !important;
  }
  .success-screen h2 {
    font-size: 1.36rem !important;
    margin-top: 4px !important;
  }
  .success-screen p {
    font-size: .84rem !important;
  }
  .success-screen__protocol {
    padding: 13px 16px !important;
  }
}
