.complaint-filing-form .field-required,
.complaint-filing-form .field-optional,
.complaint-filing-form .field-locked {
  display: inline-flex;
  margin-inline-start: .35rem;
  padding: .12rem .42rem;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 800;
  line-height: 1.25;
  vertical-align: middle;
}
.complaint-filing-form .field-required { color: #9f2d20; background: #fff0ec; }
.complaint-filing-form .field-optional { color: var(--bims-muted, #66756f); background: var(--bims-surface-soft, #f0f6f3); }
.complaint-filing-form .field-locked { color: #075f4a; background: #e4f7ef; }
.complaint-field-key { margin: 0 0 .35rem; color: var(--bims-muted, #66756f); }
.complaint-validation-summary { margin-bottom: 1rem; }
.complaint-validation-summary ul { margin: .55rem 0 0; padding-inline-start: 1.25rem; }
.complaint-validation-summary a { color: inherit; text-decoration: underline; }
.complaint-filing-form [aria-invalid="true"] { border-color: #c9382b !important; box-shadow: 0 0 0 3px rgba(201,56,43,.13); }
.public-combo-panel [role="option"].is-keyboard-active { outline: 3px solid var(--bims-primary, #087d5b); outline-offset: -3px; background: var(--bims-surface-soft, #edf8f3); }
.complaint-filing-form .public-combo { position: relative; }
.complaint-filing-form [data-public-subdivision] { padding-inline-end: 3rem; }
.public-combo-toggle {
  position: absolute;
  inset-block: .28rem;
  inset-inline-end: .28rem;
  z-index: 2;
  display: grid;
  width: 2.45rem;
  place-items: center;
  border: 0;
  border-inline-start: 1px solid var(--bims-border, #bed8ce);
  border-radius: 0 10px 10px 0;
  background: var(--bims-surface-soft, #edf8f3);
  color: var(--bims-primary, #087d5b);
  cursor: pointer;
  font-size: 1.15rem;
}
.public-combo-toggle:hover,
.public-combo-toggle:focus-visible { background: #daf2e7; outline: 3px solid rgba(8,125,91,.18); }
.public-combo-toggle span { display: block; transition: transform .15s ease; }
.public-combo-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.public-combo-toggle:disabled { cursor: not-allowed; opacity: .55; }
.complaint-choice-fieldset {
  min-width: 0;
  margin: 0;
  padding: .9rem;
  border: 1px solid var(--bims-border, #bed8ce);
  border-radius: 16px;
  background: var(--bims-surface-soft, #f6faf8);
}
.complaint-choice-fieldset > legend { padding-inline: .35rem; }
.complaint-choice-grid { display: grid; gap: .65rem; }
.complaint-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.complaint-priority-grid,
.complaint-time-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.complaint-binary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.complaint-choice-card { position: relative; display: block !important; min-width: 0; cursor: pointer; }
.complaint-choice-card > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.complaint-choice-card > span {
  display: flex;
  min-height: 3.55rem;
  height: 100%;
  flex-direction: column;
  justify-content: center;
  gap: .22rem;
  padding: .72rem .85rem;
  border: 1px solid var(--bims-border, #bed8ce);
  border-radius: 13px;
  background: var(--bims-surface, #fff);
  color: var(--bims-text, #102d24);
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease;
}
.complaint-choice-card > span strong { font-size: .88rem; line-height: 1.22; }
.complaint-choice-card > span small { color: var(--bims-muted, #66756f); line-height: 1.3; }
.complaint-choice-card:hover > span { border-color: var(--bims-primary, #087d5b); transform: translateY(-1px); }
.complaint-choice-card > input:focus-visible + span { outline: 3px solid rgba(8,125,91,.2); outline-offset: 2px; }
.complaint-choice-card > input:checked + span {
  border-color: var(--bims-primary, #087d5b);
  background: #e5f7ef;
  box-shadow: inset 0 0 0 1px var(--bims-primary, #087d5b), 0 6px 16px rgba(7,93,70,.1);
}
.complaint-choice-card > input:checked + span::after {
  content: "Selected";
  align-self: flex-start;
  margin-top: .15rem;
  padding: .08rem .38rem;
  border-radius: 999px;
  background: var(--bims-primary, #087d5b);
  color: #fff;
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .02em;
}
.complaint-priority-emergency > input:checked + span { border-color: #c9382b; background: #fff0ec; box-shadow: inset 0 0 0 1px #c9382b, 0 6px 16px rgba(201,56,43,.1); }
.complaint-priority-emergency > input:checked + span::after { background: #b62f23; }
.complaint-emergency-triage[hidden], .incident-known-fields[hidden] { display: none !important; }
.complaint-emergency-triage { display: grid; gap: .9rem; border: 1px solid #e7a099; border-radius: 16px; padding: 1rem; background: #fff8f6; }
.complaint-safety-question { display: grid; gap: .55rem; }
.complaint-safety-question > strong { line-height: 1.35; }
.complaint-emergency-call { display: none; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem 1rem; align-items: center; padding: .85rem; border: 1px solid #e7776b; border-radius: 14px; background: #fff0ec; }
.complaint-emergency-triage:has([data-emergency-danger-choice][value="yes"]:checked) .complaint-emergency-call { display: grid; }
.complaint-emergency-call[hidden] { display: none !important; }
.complaint-emergency-call > div { display: grid; gap: .15rem; }
.complaint-emergency-call > div span { color: #71322a; font-size: .86rem; line-height: 1.35; }
.complaint-emergency-confirm { grid-column: 1 / -1; display: flex !important; align-items: flex-start; gap: .55rem; margin: 0; font-weight: 750; }
.complaint-emergency-confirm input { margin-top: .18rem; }
.complaint-safety-note { border-top: 1px solid rgba(201,56,43,.16); padding-top: .65rem; }
.complaint-safety-note summary { cursor: pointer; font-weight: 800; }
.complaint-safety-note label { display: grid !important; gap: .4rem; margin-top: .65rem; }
.complaint-incident-moment { border: 1px solid var(--bims-border, #bed8ce); border-radius: 16px; padding: 1rem; }
.incident-known-fields { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; }
.incident-known-fields { margin-top: .8rem; }
.incident-known-fields label { min-width: min(100%, 14rem); flex: 1; }
.complaint-photo-preflight ul { list-style: none; margin: .65rem 0; padding: 0; display: grid; gap: .4rem; }
.complaint-photo-preflight li { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; padding: .45rem .6rem; background: var(--bims-surface-soft, #f2f8f5); border-radius: 10px; overflow-wrap: anywhere; }
.complaint-photo-preflight li button { margin-inline-start: auto; }
.complaint-photo-preflight .field-error { color: #a62c21; font-weight: 700; }
.complaint-review { margin-top: 1rem; border: 1px solid var(--bims-border, #bed8ce); border-radius: 14px; padding: .8rem 1rem; background: var(--bims-surface-soft, #f6faf8); }
.complaint-review summary { cursor: pointer; font-weight: 800; }
.complaint-review dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.complaint-review dl div { padding: .6rem; border-radius: 10px; background: var(--bims-surface, #fff); }
.complaint-review dt { color: var(--bims-muted, #66756f); font-size: .78rem; }
.complaint-review dd { margin: .15rem 0 0; font-weight: 750; overflow-wrap: anywhere; }
.complaint-eligibility-checklist { margin: .75rem 0 0; padding-inline-start: 1.3rem; }
.complaint-draft-notice { margin-bottom: 1rem; }
@media (max-width: 760px) {
  .complaint-review dl { grid-template-columns: 1fr; }
  .complaint-category-grid,
  .complaint-priority-grid,
  .complaint-time-grid,
  .complaint-binary-grid { grid-template-columns: 1fr; }
  .incident-known-fields { display: grid; }
  .complaint-emergency-call { grid-template-columns: 1fr; }
  .complaint-emergency-confirm { grid-column: auto; }
}
