@font-face {
  font-family: "Barlow Condensed";
  src: url("fonts/BarlowCondensed-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
:root {
  color-scheme: light;
  --ink: #152b38;
  --muted: #52636d;
  --paper: #f3f5f4;
  --surface: #ffffff;
  --line: #d5dddc;
  --navy: #112d38;
  --teal: #086960;
  --teal-soft: #e5f2ed;
  --signal: #f6a43b;
  --green: #176444;
  --orange: #865000;
  --red: #a72c39;
  --radius: 14px;
  --body-font: "Segoe UI", system-ui, -apple-system, sans-serif;
  --display-font: "Barlow Condensed", "Arial Narrow", var(--body-font);
}
* { box-sizing: border-box; }
html { max-width: 100%; overflow-x: hidden; overflow-x: clip; scroll-padding-top: 110px; scrollbar-color: #8b9d9f var(--paper); }
body { margin: 0; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; color: var(--ink); background: var(--paper); font: 400 17px/1.6 var(--body-font); }
.public-body { max-width: 100%; overflow-x: hidden; overflow-x: clip; }
body > main { flex: 1; width: 100%; }
[hidden] { display: none !important; }
::selection { color: var(--ink); background: #ffcf85; }
input, select, textarea { caret-color: var(--teal); }
a { color: var(--teal); text-underline-offset: .22em; }
a:hover { text-decoration-thickness: 2px; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button, .primary-action { transition: background-color 160ms ease, color 160ms ease; }
button:disabled { cursor: not-allowed; opacity: .62; }
:focus-visible { outline: 3px solid #b05d00; outline-offset: 4px; }
main:focus { outline: none; }
h1, h2, h3 { color: var(--ink); text-wrap: balance; font-weight: 600; }
h1, h2 { font-family: var(--display-font); letter-spacing: -.015em; line-height: 1.08; }
h1 { font-size: clamp(2.75rem, 4.6vw, 4.5rem); }
h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
h3 { font-size: 1.2rem; line-height: 1.3; }
p { margin: 0 0 1.25rem; }
small { font-size: .875rem; }
svg { display: block; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea {
  display: block; width: 100%; min-width: 0; min-height: 50px; margin-top: 8px;
  border: 1px solid #92a3a8; border-radius: 7px; padding: 11px 12px;
  background: var(--surface); color: var(--ink); font-size: 1rem; line-height: 1.5;
}
input::placeholder, textarea::placeholder { color: #60717a; opacity: 1; }
select { padding-right: 30px; text-overflow: ellipsis; }
input:disabled, select:disabled, textarea:disabled { background: #eef1f0 !important; color: #5d6b71; opacity: 1; cursor: not-allowed; }
textarea { resize: vertical; min-height: 130px; }
label { font-size: 1rem; font-weight: 600; }
input[type=checkbox], input[type=radio] { width: 20px; height: 20px; accent-color: var(--teal); flex-shrink: 0; }
button[type=submit], .primary-action { min-height: 50px; border: 0; border-radius: 7px; padding: 13px 22px; color: #fff; background: var(--teal); font-size: 1rem; font-weight: 700; text-decoration: none; }
button[type=submit]:hover, .primary-action:hover { background: #054e48; }
.section-kicker, .home-kicker { color: var(--teal); font-size: 1rem; font-weight: 700; margin: 0 0 16px; }
.assessment-layout { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.35fr); gap: clamp(32px, 5vw, 72px); max-width: 1280px; margin: auto; padding: 64px 32px 88px; align-items: start; }
.assessment-intro { position: sticky; top: 124px; }
.assessment-intro h1, .track-copy h1 { margin: 0 0 24px; }
.assessment-intro h1 span, .track-copy h1 span { color: var(--teal); }
.assessment-intro > p, .track-copy > p { color: var(--muted); max-width: 42ch; font-size: 1.125rem; }
.flow-list { list-style: none; padding: 0; margin: 32px 0; display: grid; gap: 24px; }
.flow-list li { display: flex; gap: 16px; align-items: start; color: var(--muted); font-size: 1rem; }
.flow-list b { color: var(--teal); font: 600 1.6rem/1.2 var(--display-font); }
.flow-list strong { color: var(--ink); }
.trust-note { margin-top: 32px; background: var(--teal-soft); padding: 20px; border-radius: 10px; color: #245a4b; font-size: 1rem; }
.assessment-card, .track-panel { min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.card-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 28px 32px; background: var(--navy); color: #fff; }
.card-heading h2 { margin: 3px 0 0; color: #fff; }
.card-heading p { margin: 0; color: #c5d7d9; font-size: 1rem; }
.card-heading > span { font-size: .875rem; white-space: nowrap; color: #f7cf97; }
.survey-section { padding: 30px 32px; border-bottom: 1px solid var(--line); }
.status-first { background: linear-gradient(135deg, #f3fbfa 0%, #fffaf1 52%, #fff5f5 100%); box-shadow: inset 0 4px 0 #8da1a5; }
#rapidForm[data-legend="green"] .status-first { box-shadow: inset 0 4px 0 var(--green); }
#rapidForm[data-legend="orange"] .status-first { box-shadow: inset 0 4px 0 var(--orange); }
#rapidForm[data-legend="red"] .status-first { box-shadow: inset 0 4px 0 var(--red); }
.section-head { display: flex; gap: 16px; align-items: start; margin-bottom: 22px; }
.section-head > b { min-width: 30px; color: var(--teal); font: 600 1.75rem/1.2 var(--display-font); }
.section-head h3 { margin: 0 0 5px; }
.section-head p { margin: 0; color: var(--muted); font-size: 1rem; }
.legend-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.legend-choice { position: relative; display: block; }
.legend-choice input { position: absolute; top: 16px; right: 10px; margin: 0; }
.legend-choice > span { display: flex; flex-direction: column; gap: 3px; min-height: 103px; padding: 16px 10px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.legend-choice strong { font-size: 1.05rem; padding-right: 22px; }
.legend-choice small { font-size: .9rem; }
.legend-choice i { display: none; }
.legend-choice.green { color: var(--green); }
.legend-choice.orange { color: var(--orange); }
.legend-choice.red { color: var(--red); }
.legend-choice.green > span { background: #eff8f1; }
.legend-choice.orange > span { background: #fff7e8; }
.legend-choice.red > span { background: #fff1f1; }
.legend-choice input:checked + span { border: 2px solid currentColor; padding: 15px 9px; }
.legend-choice input:focus-visible + span { outline: 3px solid #b05d00; outline-offset: 4px; }
.legend-hint { padding: 14px 0 0; color: var(--muted); font-size: .9375rem; }
.legend-hint.green { color: var(--green); }
.legend-hint.orange { color: #895200; }
.legend-hint.red { color: var(--red); }
.form-grid { display: grid; gap: 22px 18px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid label, .block-label { display: block; min-width: 0; }
.situation-fields { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.situation-section[data-legend="green"] .situation-fields { border-top-color: #8cc9a8; }
.situation-section[data-legend="orange"] .situation-fields { border-top-color: #e7b35c; }
.situation-section[data-legend="red"] .situation-fields { border-top-color: #e28d97; }
.situation-check { display: flex !important; min-height: 52px; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: #f7f9f8; font-weight: 600; }
.situation-check input { margin: 0; }
.priority-details { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.priority-details > .field-note { margin: 0 0 18px; }
.block-label { margin-top: 24px; }
.provider-status, .field-note { margin: 16px 0 0; color: var(--muted); font-size: .9375rem; }
.student-details { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--line); }
.student-details fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.student-details legend { color: var(--ink); font-size: 1rem; font-weight: 700; }
.student-details fieldset > p { margin: 5px 0 13px; color: var(--muted); font-size: .9rem; }
.student-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.student-choice-grid label { display: flex; min-height: 50px; align-items: center; gap: 10px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 8px; background: #f7f9f8; cursor: pointer; font-weight: 650; }
.student-choice-grid label:has(input:checked) { border-color: var(--teal); background: var(--teal-soft); color: #07584f; }
.student-choice-grid input { margin: 0; }
.school-picker { margin-top: 16px; padding: 16px; border: 1px solid #b8d2cd; border-radius: 9px; background: #f4faf8; }
.school-picker[hidden] { display: none; }
.school-picker > label { display: block; }
.school-combobox { position: relative; display: block; margin-top: 7px; }
.school-combobox > input { margin-top: 0; padding-right: 40px; }
.school-combobox > input[aria-busy="true"] { background-image: linear-gradient(90deg, transparent, #d7efeb, transparent); background-size: 220% 100%; animation: school-search-pulse 1.1s linear infinite; }
.school-results { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; left: 0; max-height: 300px; overflow: auto; border: 1px solid #8da9aa; border-radius: 8px; background: #fff; box-shadow: 0 16px 38px rgba(7, 34, 45, .2); }
.school-results[hidden] { display: none; }
.school-result { display: block; padding: 11px 13px; cursor: pointer; }
.school-result + .school-result { border-top: 1px solid #dce6e6; }
.school-result strong, .school-result small { display: block; }
.school-result strong { color: var(--ink); font-size: .94rem; }
.school-result small { margin-top: 4px; color: var(--muted); font-size: .82rem; line-height: 1.4; }
.school-result:hover, .school-result[aria-selected="true"] { background: var(--teal-soft); }
.school-result:hover strong, .school-result[aria-selected="true"] strong { color: var(--teal); }
.school-status, .school-source-note { margin: 10px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.45; }
.school-source-note { margin-top: 4px; }
.school-source-note a { color: var(--teal); font-weight: 650; }
@keyframes school-search-pulse { to { background-position: -220% 0; } }
.measurement-note { display: block; margin-top: 8px; color: var(--muted); font-size: .875rem; font-weight: 400; line-height: 1.45; }
.legend-adaptive-note { padding: 7px 9px; border-radius: 6px; background: #f0f4f4; }
.situation-section[data-legend="green"] .legend-adaptive-note { background: #eff8f1; color: #245a4b; }
.situation-section[data-legend="orange"] .legend-adaptive-note { background: #fff7e8; color: #754800; }
.situation-section[data-legend="red"] .legend-adaptive-note { background: #fff1f1; color: #982c3b; }
.provider-status { padding: 14px; border-radius: 7px; background: var(--teal-soft); color: #245a4b; }
.inline-error, .field-error { color: var(--red); font-size: 1rem; margin-top: 10px; }
.location-retry { margin-top: 14px; background: #fff; color: var(--teal); border: 1px solid var(--teal); border-radius: 7px; min-height: 44px; padding: 9px 16px; font-weight: 600; }
.location-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: -2px 0 12px; padding: 16px; border: 1px solid #9bcfc5; border-radius: 9px; background: #f0faf7; }
.location-tools-copy { flex: 1 1 260px; }
.location-tools-copy strong { display: block; margin-bottom: 3px; color: #07584f; font-size: .95rem; }
.location-tools p { flex: 1 1 100%; margin: 0; color: #355a59; font-size: .92rem; }
.location-tools-copy p { font-size: .9rem; }
.current-location-button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 9px 15px; border: 1px solid var(--teal); border-radius: 7px; background: var(--teal); color: #fff; font-weight: 700; }
.current-location-button:hover { background: #07584f; }
.manual-location-choice { margin: 0 0 18px; color: var(--muted); font-size: .9rem; }
.manual-location-choice strong { color: var(--ink); }
.location-section .coordinate-status { margin-top: 16px; }
.geocode-attribution { margin: 5px 0 0; color: var(--muted); font-size: .8rem; }
.need-list { border: 0; margin: 24px 0 0; padding: 0; min-width: 0; }
.need-list legend { font-weight: 600; }
.need-list > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.need-list label, .toggle-row label { display: flex; gap: 10px; align-items: start; font-size: 1rem; font-weight: 400; padding: 8px 0; }
.need-list .check-all-needs { width: fit-content; margin-top: 10px; padding: 8px 12px; border: 1px solid #b8d2cd; border-radius: 7px; background: #f1f8f6; color: #164f49; font-weight: 650; }
.final-safety-section { background: #fffaf1; }
.final-safety-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.final-safety-options label { display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 12px 14px; border: 1px solid #dfc38d; border-radius: 8px; background: #fff; }
.evidence-drop { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; padding: 18px; border: 1px dashed #8b9d9f; border-radius: 8px; }
.evidence-drop.has-file { border-color: var(--green); background: #eff8f1; }
.evidence-drop.has-error { border-color: var(--red); background: #fff1f1; }
.evidence-status { min-height: 1.4em; margin-top: 5px; }
.evidence-drop.has-file .evidence-status { color: var(--green); }
.evidence-drop.has-error .evidence-status { color: var(--red); }
.evidence-drop strong, .evidence-drop small { display: block; }
.evidence-drop small { margin-top: 4px; color: var(--muted); font-weight: 400; }
.evidence-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.evidence-action { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 15px; overflow: hidden; border: 1px solid var(--teal); border-radius: 7px; background: var(--teal); color: #fff; font-weight: 650; cursor: pointer; }
.evidence-action.secondary { background: #fff; color: var(--teal); }
.evidence-action:hover { filter: brightness(.95); }
.evidence-action:focus-within { outline: 3px solid #b05d00; outline-offset: 3px; }
.evidence-action:focus-visible { outline: 3px solid #b05d00; outline-offset: 3px; }
.evidence-action input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
#evidenceCamera.native-camera-input { position: absolute; width: 1px; min-width: 1px; height: 1px; min-height: 1px; margin: 0; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.camera-dialog { width: min(720px, calc(100% - 28px)); max-width: none; padding: 0; overflow: hidden; border: 1px solid #506b73; border-radius: 12px; background: #f7faf9; color: var(--navy); box-shadow: 0 24px 80px rgba(4, 28, 39, .38); }
.camera-dialog::backdrop { background: rgba(3, 22, 31, .78); }
.camera-dialog header, .camera-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; }
.camera-dialog header { border-bottom: 1px solid #c8d5d7; }
.camera-dialog header h3, .camera-dialog header p { margin: 0; }
.camera-dialog header h3 { font-size: 1.35rem; }
.camera-dialog header p { margin-top: 3px; color: var(--muted); font-size: .9rem; }
.camera-dialog footer { justify-content: flex-end; border-top: 1px solid #c8d5d7; }
.camera-stage { position: relative; min-height: 260px; background: #071e29; }
.camera-stage video { display: block; width: 100%; height: min(62dvh, 520px); object-fit: contain; background: #071e29; }
.camera-stage p { position: absolute; right: 12px; bottom: 12px; left: 12px; margin: 0; padding: 9px 12px; border-radius: 6px; background: rgba(7, 30, 41, .86); color: #edf7f8; font-size: .9rem; }
.camera-close, .camera-cancel, .camera-capture { min-height: 42px; border-radius: 7px; font-weight: 650; }
.camera-close { width: 42px; padding: 0; border: 1px solid #aebfc2; background: #fff; color: var(--navy); font-size: 1.5rem; }
.camera-cancel { padding: 9px 15px; border: 1px solid #8ba0a5; background: #fff; color: var(--navy); }
.camera-capture { padding: 9px 18px; border: 1px solid var(--teal); background: var(--teal); color: #fff; }
.camera-capture:disabled { cursor: wait; opacity: .55; }
.camera-close:focus-visible, .camera-cancel:focus-visible, .camera-capture:focus-visible { outline: 3px solid #b05d00; outline-offset: 2px; }
.coordinate-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.coordinate-status { flex: 1 1 320px; margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.45; }
.coordinate-retry { min-height: 38px; padding: 7px 12px; border: 1px solid var(--teal); border-radius: 6px; background: #fff; color: var(--teal); font-weight: 650; }
.evidence-preview { position: relative; align-self: flex-start; width: fit-content; max-width: min(100%, 300px); margin-top: 8px; overflow: hidden; border-radius: 8px; line-height: 0; }
.evidence-preview img { display: block; width: auto; max-width: 100%; height: auto; max-height: 300px; object-fit: contain; border-radius: inherit; }
.evidence-coordinates { position: absolute; right: 8px; bottom: 8px; left: 8px; padding: 7px 9px; border-radius: 5px; background: rgba(7, 30, 41, .88); color: #f1f8fb; font-size: .75rem; font-weight: 650; line-height: 1.35; letter-spacing: .01em; text-align: center; }
.toggle-row { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 16px; }
.submit-area { padding: 28px 32px; background: #f7f9f8; }
.submit-area p { font-size: 1rem; color: var(--muted); }
.submit-area button { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.form-error, .notice { padding: 18px; margin: 24px; border-radius: 8px; font-size: 1rem; }
.form-error, .notice.error, .status-message.error { background: #ffeded; color: #9d2634; }
.notice.success { background: var(--teal-soft); color: var(--green); }
.notice.warning { background: #fff4d8; color: #6f4505; border: 1px solid #e5c77d; }
.rapid-confirmation { padding: 40px 32px; }
.rapid-confirmation > span { color: var(--green); font-size: 2.5rem; }
.rapid-confirmation h2 { margin: 16px 0; }
.rapid-confirmation > b { display: block; font-size: 1.3rem; overflow-wrap: anywhere; padding: 18px 0; }
.rapid-confirmation > div { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; }
.report-mail-status { margin: -18px 32px 32px; padding: 13px 15px; border: 1px solid #b9d8d0; border-radius: 8px; background: #eaf7f3; color: #11634f; font-size: .88rem; line-height: 1.45; }
.report-mail-status.needs-attention { border-color: #e4c680; background: #fff6df; color: #77500e; }
.track-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); max-width: 1240px; padding: 80px 32px 100px; margin: auto; gap: 56px; align-items: start; }
.track-copy { padding-top: 12px; }
.track-panel-heading { display: flex; align-items: start; gap: 16px; padding: 30px; border-bottom: 1px solid var(--line); }
.track-panel-heading > span { display: none; }
.track-panel-heading h2 { margin: 0 0 12px; }
.track-panel-heading p { color: var(--muted); font-size: 1rem; margin: 0; overflow-wrap: anywhere; }
.track-search { padding: 30px; }
.track-search > label::after { color: #b42335; content: " *"; font-weight: 900; }
.track-search > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.track-search button { width: 100%; }
.track-search button i { display: none; }
.track-search input { letter-spacing: .025em; }
.status-message, .tracked-card { margin: 0 30px 30px; }
.status-message { padding: 18px; border-radius: 8px; background: var(--paper); }
.status-message b { display: block; }
.status-banner { display: flex; gap: 16px; padding: 20px; border-radius: 8px; background: #e7f1f8; color: #204b6b; }
.status-banner h3 { margin: 4px 0 8px; color: inherit; }
.status-banner p { margin: 0; font-size: 1rem; }
.status-banner.amber { background: #fff3da; color: #7c5106; }
.status-banner.violet { background: #f0ecfa; color: #514077; }
.status-banner.green { background: var(--teal-soft); color: var(--green); }
.tracked-card dl { margin: 20px 0; }
.tracked-card dl > div { padding: 12px 0; border-bottom: 1px solid var(--line); }
.tracked-card dt { color: var(--muted); font-size: .9375rem; }
.tracked-card dd { margin: 3px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.public-update { padding: 20px; background: var(--paper); border-radius: 8px; font-size: 1rem; }
.public-update b { display: block; margin-bottom: 8px; }
.toast-region { position: fixed; bottom: 20px; right: 20px; z-index: 60; max-width: min(380px, calc(100% - 40px)); }
.toast { background: var(--navy); color: #fff; border-radius: 8px; padding: 16px 20px; margin-top: 8px; }
.legend-badge, .status-chip, .advisory-level { display: inline-block; border-radius: 6px; padding: 4px 10px; font-size: .875rem; font-weight: 600; }
.legend-badge.green, .status-chip.green, .advisory-level.green { background: #e5f3e9; color: var(--green); }
.legend-badge.orange, .status-chip.orange, .advisory-level.orange { background: #fff1d6; color: var(--orange); }
.legend-badge.red, .advisory-level.red { background: #ffe9eb; color: var(--red); }
.status-chip.blue { background: #e8f0fa; color: #265581; }
.status-chip.violet { background: #f0eafa; color: #634689; }
@media (max-width: 960px) {
  .assessment-layout, .track-layout { grid-template-columns: 1fr; max-width: 800px; padding-top: 40px; gap: 32px; }
  .assessment-intro { position: static; }
  .assessment-intro > p, .track-copy > p { max-width: 65ch; }
  .flow-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .flow-list li { flex-direction: column; gap: 8px; }
  .trust-note { margin-top: 24px; }
}
@media (max-width: 540px) {
  .camera-dialog { width: calc(100% - 16px); }
  .camera-dialog header, .camera-dialog footer { padding: 12px; }
  .camera-stage video { height: min(58dvh, 430px); }
  .evidence-preview { max-width: min(100%, 280px); }
  .evidence-preview img { max-height: 280px; }
  body { font-size: 1rem; }
  .assessment-layout, .track-layout { padding: 32px 16px 56px; }
  .assessment-intro h1 br, .track-copy h1 br { display: none; }
  .assessment-intro > p, .track-copy > p { font-size: 1rem; }
  .flow-list { display: flex; flex-direction: column; gap: 14px; margin: 24px 0; }
  .flow-list li { flex-direction: row; gap: 14px; }
  .card-heading, .survey-section, .submit-area { padding: 24px 20px; }
  .form-grid.two { grid-template-columns: minmax(0, 1fr); }
  .student-choice-grid { grid-template-columns: 1fr; }
  .school-picker { padding: 14px; }
  .legend-grid { gap: 8px; }
  .legend-choice input { position: static; margin: 12px 0 0 10px; }
  .legend-choice > span { margin-top: -36px; padding: 46px 8px 12px; min-height: 120px; }
  .legend-choice input:checked + span { padding: 45px 7px 11px; }
  .legend-choice strong { padding: 0; font-size: 1rem; }
  .legend-choice small { font-size: .875rem; }
  .need-list > div { grid-template-columns: 1fr; }
  .final-safety-options { grid-template-columns: 1fr; }
  .track-search, .track-panel-heading { padding: 24px 20px; }
  .status-message, .tracked-card { margin: 0 20px 24px; }
  .form-error, .notice { margin: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Report continuity and optional receipt controls */
.report-draft-notice {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin: 0;
  padding: 14px 18px;
  border-bottom: 1px solid #bcd8d2;
  background: #edf8f5;
  color: #214f4c;
}
.report-draft-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 9px; background: #d5eee8; color: #087468; }
.report-draft-icon::before { width: 21px; height: 21px; background: currentColor; content: ""; -webkit-mask: url("icons/tabler/copy-check.svg") center / contain no-repeat; mask: url("icons/tabler/copy-check.svg") center / contain no-repeat; }
.report-draft-notice strong, .report-draft-notice small { display: block; }
.report-draft-notice strong { color: #075e55; font-size: .94rem; line-height: 1.3; }
.report-draft-notice small { margin-top: 3px; color: #486b69; font-size: .78rem; line-height: 1.45; }
.report-draft-notice button { min-height: 38px; padding: 8px 11px; border: 1px solid #8ebcb4; border-radius: 7px; background: #fff; color: #075e55; font-size: .78rem; font-weight: 750; white-space: nowrap; }
.report-draft-notice button:hover { border-color: #087468; background: #e1f3ee; }
.email-receipt-choice { display: flex; align-items: start; gap: 12px; padding: 16px; border: 1px solid #b8cfcb; border-radius: 9px; background: #f5faf9; cursor: pointer; }
.email-receipt-choice:has(input:checked) { border-color: #087468; background: #e8f6f2; box-shadow: inset 3px 0 #087468; }
.email-receipt-choice input { margin-top: 2px; }
.email-receipt-choice strong, .email-receipt-choice small { display: block; }
.email-receipt-choice strong { color: #123a43; font-size: .98rem; }
.email-receipt-choice small { margin-top: 4px; color: #536c72; font-size: .84rem; font-weight: 400; line-height: 1.45; }
.email-address-fields { margin-top: 16px; padding: 16px; border-left: 3px solid #087468; background: #f7fbfa; }
.section-head h3 small, .block-label > small { color: var(--muted); font-family: var(--body-font); font-size: .76rem; font-weight: 500; }

@media (max-width: 600px) {
  .report-draft-notice { grid-template-columns: 34px minmax(0, 1fr); padding: 13px 16px; }
  .report-draft-icon { width: 34px; height: 34px; }
  .report-draft-notice button { grid-column: 2; justify-self: start; }
}

.consent-protected-fields { min-width: 0; margin: 0; padding: 0; border: 0; }
#rapidForm:not([data-privacy-consent="accepted"]) .consent-protected-fields { display: none; }
.report-consent-declined { margin: 24px; padding: clamp(24px, 5vw, 40px); border: 1px solid #d2dbda; border-radius: 12px; background: #f8faf9; }
.report-consent-declined h2 { margin: 0 0 12px; }
.report-consent-declined > p:not(.section-kicker) { max-width: 62ch; color: var(--muted); }
.report-consent-declined .consent-emergency-note { padding: 14px 16px; border-left: 4px solid var(--signal); background: #fff5df; color: #66430c; }
.report-consent-declined > div { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.report-consent-declined button, .report-consent-declined a { min-height: 46px; border-radius: 7px; padding: 10px 16px; font-weight: 700; }
.report-consent-declined button { border: 1px solid var(--teal); background: var(--teal); color: #fff; }
.report-consent-declined a { display: inline-flex; align-items: center; border: 1px solid #91a1a5; background: #fff; color: var(--navy); text-decoration: none; }
.consent-dialog-open { overflow: hidden; }
.report-consent-dialog { width: min(760px, calc(100vw - 32px)); min-width: 0; max-width: calc(100vw - 32px); max-height: min(90dvh, 860px); padding: 0; overflow: hidden; border: 1px solid #6e858b; border-radius: 14px; background: #fff; color: var(--ink); box-shadow: 0 28px 90px rgba(5, 28, 38, .35); }
.report-consent-dialog[open] { display: flex; flex-direction: column; }
.report-consent-dialog::backdrop { background: rgba(5, 25, 34, .78); backdrop-filter: blur(2px); }
.report-consent-dialog.is-fallback { position: fixed; inset: 5dvh auto auto 50%; z-index: 100; transform: translateX(-50%); }
.consent-dialog-header { display: flex; gap: 14px; align-items: center; padding: 20px 24px; background: var(--navy); color: #fff; }
.consent-dialog-header > div, .consent-dialog-body, .consent-dialog-body > * { min-width: 0; }
.consent-dialog-header img { flex: 0 0 auto; width: 52px; height: 52px; }
.consent-dialog-header p { margin: 0 0 2px; color: #9fdbd5; font-size: .875rem; font-weight: 700; }
.consent-dialog-header h2 { margin: 0; color: #fff; font-size: clamp(1.65rem, 4vw, 2.15rem); }
.consent-dialog-header h2:focus, .consent-dialog-header h2:focus-visible { outline: 0; box-shadow: none; }
.consent-dialog-body { flex: 1 1 auto; min-height: 0; max-height: none; padding: 22px 24px; overflow-y: auto; overscroll-behavior: contain; }
.consent-summary { margin-bottom: 18px; color: var(--muted); font-size: 1rem; }
.consent-key-points { margin: 0 0 18px; border: 1px solid #cbd7d6; border-radius: 10px; background: #f7faf9; }
.consent-key-points p { display: grid; grid-template-columns: minmax(150px, .36fr) minmax(0, 1fr); gap: 14px; margin: 0; padding: 12px 14px; }
.consent-key-points p + p { border-top: 1px solid #d7e0df; }
.consent-key-points strong { color: var(--navy); }
.consent-key-points span { color: var(--muted); overflow-wrap: anywhere; }
.consent-disclosure { border-top: 1px solid #cdd8d7; }
.consent-disclosure:last-of-type { border-bottom: 1px solid #cdd8d7; }
.consent-disclosure summary { min-height: 50px; padding: 13px 4px; color: var(--navy); font-weight: 750; cursor: pointer; }
.consent-disclosure summary::marker { color: var(--teal); }
.consent-disclosure > div { padding: 2px 4px 18px; color: var(--muted); }
.consent-disclosure h3 { margin: 16px 0 6px; color: var(--ink); font-size: 1rem; }
.consent-disclosure p, .consent-disclosure li { font-size: .95rem; line-height: 1.55; }
.consent-disclosure p { margin-bottom: 12px; }
.consent-disclosure ul { margin: 6px 0 14px; padding-left: 22px; }
.consent-policy-meta { color: #536a70; font-size: .875rem !important; }
.consent-confirmation { display: flex; gap: 12px; align-items: flex-start; margin-top: 20px; padding: 15px; border: 2px solid #76a79d; border-radius: 10px; background: #edf7f4; color: var(--ink); cursor: pointer; }
.consent-confirmation:focus-within { outline: 3px solid #b05d00; outline-offset: 3px; }
.consent-confirmation input { width: 22px; height: 22px; margin-top: 2px; }
.consent-confirmation span { font-size: .95rem; font-weight: 400; line-height: 1.5; }
.consent-confirmation strong { display: block; margin-bottom: 2px; }
.consent-error { margin: 8px 0 0; color: var(--red); font-size: .9rem; font-weight: 700; }
.consent-dialog-actions { display: flex; justify-content: flex-end; gap: 12px; padding: 16px 24px; border-top: 1px solid #ccd7d6; background: #f4f7f6; }
.consent-dialog-actions button { min-height: 48px; border-radius: 7px; padding: 10px 18px; font-weight: 750; }
.consent-decline { border: 1px solid #87999d; background: #fff; color: var(--navy); }
.consent-accept { border: 1px solid var(--teal); background: var(--teal); color: #fff; }
.consent-accept:hover:not(:disabled), .report-consent-declined button:hover { background: #054e48; }

@media (max-width: 540px) {
  .report-consent-dialog { width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); margin-inline: auto; border-radius: 12px; }
  .report-consent-dialog.is-fallback { inset: 8px 8px auto; width: auto; max-width: none; margin: 0; transform: none; }
  .consent-dialog-header { align-items: flex-start; gap: 10px; padding: 16px; }
  .consent-dialog-header img { width: 44px; height: 44px; }
  .consent-dialog-header h2 { font-size: clamp(1.45rem, 7.2vw, 1.75rem); overflow-wrap: anywhere; }
  .consent-dialog-body { max-height: none; padding: 18px 16px; }
  .consent-key-points p { grid-template-columns: 1fr; gap: 3px; }
  .consent-dialog-actions { display: grid; grid-template-columns: 1fr; gap: 8px; padding: 12px 16px; }
  .consent-dialog-actions button { width: 100%; padding-inline: 10px; font-size: .9rem; }
  .report-consent-declined { margin: 16px; padding: 22px 18px; }
  .report-consent-declined > div { align-items: stretch; flex-direction: column; }
  .report-consent-declined button, .report-consent-declined a { justify-content: center; width: 100%; }
}
