/* Extracted from parcel.css for the contamination tool — env card styles. */
:root{--ink:#11181f;--muted:#6b7683;--faint:#9aa4af;--good:#14857a;--line:#e4e2dd;--radius-md:12px}
/* Utilities & Systems card (sewer / water / gas / electric from NJDEP) */
.util-grid { display: flex; flex-direction: column; gap: 2px; }
.util-item { padding: 9px 0; border-bottom: 1px solid var(--line); }
.util-item:last-child { border-bottom: none; }
.util-head { display: flex; align-items: center; gap: 8px; }
.util-label { font-size: 13px; font-weight: 600; color: var(--muted); }
.util-val { margin-left: auto; font-size: 13.5px; font-weight: 700; color: var(--ink); text-align: right;
  display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 5px; }
.util-val.util-good { color: var(--good); }
.util-val.util-warn { color: #C2410C; }
.util-val.util-bad { color: #DC2626; }
.util-val.util-muted { color: var(--faint); font-weight: 600; }
.util-note { font-size: 11.5px; color: var(--muted); line-height: 1.45; margin: 3px 0 0 28px; }
/* Screening-card verdict chip: the card's answer without reading nine rows */
.card-sum { font-size: 12.5px; font-weight: 700; white-space: nowrap; color: var(--muted); flex-shrink: 1; min-width: 0; }
.card-sum.ok { color: #15803d; }
.card-sum.warn { color: #B45309; }
/* Water Quality row titles read darker than the generic muted util labels (Leo 2026-07-14) */
#waterq-body .util-label { color: var(--ink); font-weight: 700; }
.wq-data-link { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.wq-data-link:hover { text-decoration-thickness: 2px; }
/* Fire card: the intro .util-item already draws a bottom border — the first incident
   row's top border would double it (:first-of-type can't catch this; the intro div
   is also a div, so no .wq-vln is ever first-of-type there) */
.util-item + .wq-vln { border-top: none; }
/* Source-type badges: screening never visually outranks official records */
.src-badge { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; border-radius: 6px; padding: 1px 6px; margin-right: 4px; vertical-align: 1px; }
/* Environmental records mini-map */
.envrec-map { height: 240px; border-radius: var(--radius-md); overflow: hidden; margin-bottom: 12px; position: relative; z-index: 0; }
.env-legend { font-size: 11px; color: var(--muted); margin: -6px 0 10px; }
.env-legend b { font-weight: 700; }
/* expandable contaminated-site list inside the env card */
.kcs-list { margin: 10px 0 6px; display: flex; flex-direction: column; gap: 5px; }
.kcs-item { min-width: 0; }
.kcs-head { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; background: #f8fafc; border: 1px solid var(--line); border-radius: 8px; padding: 8px 11px; font-size: 12.5px; color: var(--ink); cursor: pointer; font-family: inherit; }
.kcs-head:hover { background: #f1f5f9; }
.kcs-dotc { width: 9px; height: 9px; border-radius: 50%; background: #dc2626; flex: none; }
.kcs-nm { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kcs-meta { margin-left: auto; color: var(--muted); font-size: 11.5px; white-space: nowrap; flex: none; }
.kcs-chev { flex: none; color: var(--muted); font-size: 11px; transition: transform .15s ease; }
.kcs-head.open .kcs-chev { transform: rotate(180deg); }
.kcs-det { margin: 3px 0 5px 10px; padding: 8px 12px 9px; font-size: 12.5px; line-height: 1.55; color: var(--ink); border-left: 2px solid #e2e8f0; }
.kcs-flags { margin: 6px 0 0 16px; padding: 0; }
.kcs-flags li { margin: 3px 0; }
.kcs-facts { margin-top: 8px; color: #334155; }
.kcs-clear { margin-top: 6px; color: #15803d; }
.kcs-case { margin-top: 6px; color: var(--muted); font-size: 11.5px; }
@media (max-width: 560px) { .kcs-meta { display: none; } }
.env-actions .envdocs-slot { margin-top:0; }
.envdocs-slot { margin-top:8px; }
.envdocs-check { display:inline-flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid #fed7aa; border-radius:9px; background:#fff7ed; color:#9a3412; font-size:12px; font-weight:750; }
.envdocs-check::before { content:''; width:10px; height:10px; border:2px solid #fdba74; border-top-color:#c2410c; border-radius:50%; animation:envdocsSpin .8s linear infinite; }
@keyframes envdocsSpin { to { transform:rotate(360deg); } }
.envdocs-btn { display:inline-flex; align-items:center; gap:7px; background:#1d4ed8; border:1px solid #1d4ed8; color:#fff; border-radius:9px; padding:8px 12px; font-size:12.5px; font-weight:780; text-decoration:none; box-shadow:0 1px 2px rgba(30,64,175,.16); transition:background .15s,border-color .15s,transform .15s; }
.envdocs-btn:hover { background:#1e40af; border-color:#1e40af; transform:translateY(-1px); }
.envdocs-btn.envdocs-tank { background:#92400e; border-color:#92400e; }
.envdocs-btn.envdocs-tank:hover { background:#78350f; border-color:#78350f; }
.envdocs-btn.envdocs-fallback { background:#fff7ed; border-color:#fdba74; color:#9a3412; box-shadow:none; }
.envdocs-btn.envdocs-fallback:hover { background:#ffedd5; border-color:#fb923c; }
.envdocs-btn b { font-size:12px; }
.envtank-list { display:flex; flex-direction:column; gap:5px; margin-top:9px; }
.envtank-item .kcs-head { background:#fffbeb; border-color:#fde68a; }
.envtank-item .kcs-head:hover { background:#fef3c7; }
.envtank-item .kcs-dotc { background:#f59e0b; }
.envtank-item .kcs-det { border-left-color:#fcd34d; }
.envtank-item .envdocs-slot { margin-top:7px; }
.envtank-status-note { display:flex; align-items:flex-start; gap:8px; max-width:680px; margin-top:8px; padding:8px 10px; border:1px solid #fde68a; border-radius:9px; background:#fffbeb; color:#78350f; font-size:11.5px; line-height:1.45; }
.envtank-status-note b { flex:0 0 auto; color:#92400e; }
.envtank-status-note span { color:#854d0e; }
@media (max-width:560px) { .envtank-status-note { display:block; } .envtank-status-note b { display:block; margin-bottom:2px; } }
.envgw-map { width:100%; height:270px; margin-top:10px; overflow:hidden; border:1px solid #cbd5e1; border-radius:12px; background:#e2e8f0; }
.envgw-map .leaflet-control-zoom a { color:#0f172a; }
.envgw-map-note { display:flex; flex-wrap:wrap; gap:14px; margin-top:7px; color:#64748b; font-size:10.5px; }
.envgw-map-note span:first-child b { color:#2563eb; }
.envgw-map-note span:nth-child(2) b { color:#0891b2; }
.envgw-panel { margin-top:9px; border:1px solid #bae6fd; border-radius:11px; background:#f8fdff; overflow:hidden; }
.envgw-panel summary { display:flex; align-items:center; gap:10px; padding:10px 12px; cursor:pointer; list-style:none; color:#0e7490; font-size:12px; font-weight:780; user-select:none; }
.envgw-panel summary::-webkit-details-marker { display:none; }
.envgw-panel summary:hover { background:#ecfeff; }
.envgw-panel summary b { margin-left:auto; font-size:18px; line-height:1; transition:transform .18s ease; }
.envgw-panel[open] summary { border-bottom:1px solid #cffafe; background:#ecfeff; }
.envgw-panel[open] summary b { transform:rotate(90deg); }
.envgw-panel-body { padding:0 10px 10px; }
.envgw-modal { position:fixed; inset:0; z-index:1400; display:none; align-items:center; justify-content:center; padding:18px; background:rgba(15,23,42,.58); }
.envgw-modal.open { display:flex; }
.envgw-dialog { width:100%; max-width:660px; max-height:min(86vh,760px); overflow:hidden; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.7); border-radius:18px; background:#f8fafc; box-shadow:0 28px 80px rgba(2,6,23,.38); }
.envgw-modal-head { display:flex; align-items:flex-start; gap:12px; padding:17px 19px 14px; border-bottom:1px solid #dbe4f0; background:linear-gradient(135deg,#fff,#ecfeff); }
.envgw-modal-kicker { margin-bottom:4px; color:#0e7490; font-size:10px; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.envgw-modal-title { color:var(--ink); font-size:18px; font-weight:820; line-height:1.25; }
.envgw-modal-x { width:31px; height:31px; margin-left:auto; border:0; border-radius:9px; flex:none; cursor:pointer; color:#475569; background:#f1f5f9; font-size:19px; line-height:1; }
.envgw-modal-x:hover { background:#e2e8f0; }
.envgw-modal-body { padding:15px 19px 18px; overflow-y:auto; }
.envgw-station-meta { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; }
.envgw-station-meta span { display:inline-flex; padding:6px 9px; border:1px solid #bae6fd; border-radius:999px; background:#f0f9ff; color:#334155; font-size:11px; }
.envgw-reading-group { margin-bottom:9px; padding:12px 13px; border:1px solid #e2e8f0; border-radius:12px; background:#fff; }
.envgw-reading-head { display:flex; align-items:center; gap:10px; margin-bottom:9px; }
.envgw-reading-head b { color:#164e63; font-size:12.5px; }
.envgw-reading-head span { margin-left:auto; color:#64748b; font-size:10.5px; }
.envgw-reading-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.envgw-reading-grid>div { min-width:0; padding:8px 9px; border-radius:9px; background:#f8fafc; }
.envgw-reading-grid span { display:block; overflow:hidden; color:#64748b; font-size:10.5px; text-overflow:ellipsis; white-space:nowrap; }
.envgw-reading-grid b { display:block; margin-top:2px; color:#0f172a; font-size:12.5px; }
.envgw-empty { margin:0; color:#64748b; font-size:11px; }
.envgw-context { margin:4px 0 11px; padding:11px 12px; border-radius:10px; color:#475569; background:#eef2f7; font-size:11.5px; line-height:1.5; }
.envrestrict-panel { margin-top:9px; overflow:hidden; border:1px solid #fdba74; border-radius:11px; background:#fffaf2; }
.envrestrict-panel summary { display:flex; align-items:center; gap:10px; padding:10px 12px; cursor:pointer; list-style:none; color:#9a3412; font-size:12px; font-weight:800; user-select:none; }
.envrestrict-panel summary::-webkit-details-marker { display:none; }
.envrestrict-panel summary:hover { background:#fff7ed; }
.envrestrict-panel summary b { margin-left:auto; font-size:16px; line-height:1; transition:transform .18s ease; }
.envrestrict-panel[open] summary { border-bottom:1px solid #fed7aa; background:#fff7ed; }
.envrestrict-panel[open] summary b { transform:rotate(180deg); }
.envrestrict-body { padding:12px; }
.envrestrict-body h4 { margin:0; color:#7c2d12; font-size:13px; }
.envrestrict-status { display:flex; flex-wrap:wrap; align-items:center; gap:7px 10px; margin-top:8px; padding:8px 9px; border-radius:9px; background:#ffedd5; color:#9a3412; font-size:10.5px; }
.envrestrict-status b { font-size:11.5px; }
.envrestrict-desc { margin:7px 0 11px; color:#475569; font-size:11.5px; line-height:1.55; }
.envrestrict-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.envrestrict-facts>div { min-width:0; padding:8px 9px; border:1px solid #ffedd5; border-radius:9px; background:#fff; }
.envrestrict-facts span,.envrestrict-chems>span { display:block; color:#64748b; font-size:9.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.envrestrict-facts b { display:block; margin-top:3px; overflow-wrap:anywhere; color:#1e293b; font-size:11.5px; }
.envrestrict-chems { margin-top:11px; }
.envrestrict-chems>div { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.envrestrict-chems b { padding:5px 8px; border:1px solid #fdba74; border-radius:999px; background:#fff; color:#9a3412; font-size:10.5px; font-weight:750; }
.envrestrict-empty { margin:10px 0 0; color:#64748b; font-size:11px; }
@media (max-width:560px) { .env-actions .envdocs-btn { width:100%; justify-content:center; } .envgw-map { height:225px; } .envgw-modal { padding:10px; } .envgw-dialog { max-height:90vh; border-radius:15px; } .envgw-modal-body { padding:13px 14px 16px; } .envgw-reading-grid { grid-template-columns:1fr; } .envrestrict-facts { grid-template-columns:1fr; } }
/* radar pulse marking the home on the env map — rings expand outward from the property */
.env-ping { pointer-events: none; }
.env-ping .ep-dot { position: absolute; left: -6px; top: -6px; width: 12px; height: 12px; border-radius: 50%; background: #2563eb; border: 2px solid #fff; box-shadow: 0 1px 6px rgba(0,0,0,.45); }
.env-ping .ep-ring { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(37,99,235,.9); opacity: 0; animation: epRing 3.2s cubic-bezier(0, .35, .55, 1) infinite; }
.env-ping .ep-ring:nth-child(2) { animation-delay: 1.07s; }
.env-ping .ep-ring:nth-child(3) { animation-delay: 2.14s; }
@keyframes epRing { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(16); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .envdocs-check::before { animation:none; } .env-ping .ep-ring { animation: none; transform: scale(6); opacity: .3; } .env-ping .ep-ring:nth-child(2) { transform: scale(11); opacity: .18; } .env-ping .ep-ring:nth-child(3) { display: none; } }
.fw-btn { position:relative; display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px; margin-left:3px; border:1px solid #93c5fd; border-radius:50%; background:#fff; padding:0; cursor:pointer; color:var(--accent); font-size:11px; font-weight:800; line-height:1; vertical-align:middle; }
.fw-btn::after { content:""; position:absolute; inset:-13px; }
.fw-btn:hover { background:#eff6ff; }
.fw-btn:focus-visible { outline:3px solid rgba(37,99,235,.25); outline-offset:2px; }
.fw-pop { margin-top:5px; }
.fw-pop[hidden] { display:none !important; }
.fw-pop p { font-size: 12.5px; color: var(--muted); line-height: 1.55; margin: 6px 0 2px; background: #f8fafc; border-left: 3px solid #c7d2fe; padding: 8px 10px; border-radius: 6px; }
#pd-stats > .fw-pop { grid-column:1/-1; margin:0; }
.an-more { background: none; border: none; color: #93c5fd; font-weight: 700; font-size: inherit; cursor: pointer; padding: 0; }
.util-septic-wrap .util-note { margin: 4px 0 0 0; }
.solar-detected .fw-pop p { color:#475569; background:#fff; border-left-color:#22c55e; }
/* Outdoor air: full-width summary + recent-history detail. The legacy .air-now,
   .air-chart and .util-grid markup remains supported while the richer layout lands. */
.air-layout {
  display:grid;
  grid-template-columns:minmax(250px,.82fr) minmax(0,1.18fr);
  gap:14px;
  width:100%;
  align-items:stretch;
}
.air-details > .util-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.air-details > .util-grid .util-item:nth-last-child(-n+2) { border-bottom:0; }
@media(max-width:720px) { .air-details>.util-grid,.air-details-grid {grid-template-columns:1fr 1fr} }
@media(max-width:430px) { .air-details>.util-grid,.air-details-grid {grid-template-columns:1fr} .air-details>.util-grid .util-item:nth-last-child(2) {border-bottom:1px solid var(--line)} }
.school-metrics > .fw-pop { grid-column:1/-1; margin:0; }
#card-census .census-stat-grid > .fw-pop { grid-column:1/-1; margin:0; }
/* Floating ⓘ explainer — one popover anchored to the tapped button (replaces in-place fw-pop) */
#fw-float { position: fixed; z-index: 3000; width: 340px; background: #fff; border: 1px solid var(--line, #e2e8f0); border-radius: 10px; box-shadow: 0 12px 32px rgba(15,23,42,.18); padding: 2px 12px; box-sizing: border-box; }
@media (max-width: 380px) { #fw-float { width: 300px; } }
#fw-float[hidden] { display: none; }
#fw-float p { font-size: 12.5px; color: var(--muted); line-height: 1.55; margin: 9px 0; }
#fw-float::before { content: ''; position: absolute; top: -5.5px; left: var(--fw-arrow-x, 24px); width: 10px; height: 10px; background: #fff; border-left: 1px solid var(--line, #e2e8f0); border-top: 1px solid var(--line, #e2e8f0); transform: translateX(-50%) rotate(45deg); }
#fw-float.above::before { top: auto; bottom: -5.5px; border: 0; border-right: 1px solid var(--line, #e2e8f0); border-bottom: 1px solid var(--line, #e2e8f0); }
/* Rules the extractor's selector filter missed (parcel.css line 1436) */
.env-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:9px; }
/* Tool-only: CORS-failure fallback appended under an unverifiable DocMiner link */
.envdocs-alt { margin-top:6px; }
