/* EDITED IN PLACE (10/11, docs/GRADES-ON-PAGES.md: generators are retired for built pages). This file is no longer
   generated: mocks/src/safety/make_css.py made its first build and now refuses to overwrite it without --force.
   Edit the rules here; tools/css_lint.py guards them (a rule two pages share goes in core.css). The note below is history. */
/* TG safety.css: Safety page only (merged direction, 10/8). Generated by mocks/src/safety/make_css.py:
   the rules the live TownTapestry Safety pages use (css_audit on the Exeter, Boulder, Bethesda and New York renders),
   minus those already in core.css, @media wrappers kept; then the merged page's additions (prefix sfm-). */
.sf-dotwrap{border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;background:#fff}
.sf-dots{width:100%;height:auto;display:block}
.sf-dots circle{fill:#dfe3e8}
.sf-dots circle.p{fill:#2f74d0}
.sf-dots circle.v{fill:#e0763a}
.sf-trends{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.sf-map .nbmap .o.sf-ga, .sf-sw.sf-ga{fill:#bfe6cd;background:#bfe6cd}
.sf-map .nbmap .o.sf-gb, .sf-sw.sf-gb{fill:#dcebb5;background:#dcebb5}
.sf-map .nbmap .o.sf-gc, .sf-sw.sf-gc{fill:#f6ddb3;background:#f6ddb3}
.sf-map .nbmap .o.sf-gd, .sf-sw.sf-gd{fill:#f3c6b2;background:#f3c6b2}
.sf-map .nbmap .o.sf-gn, .sf-sw.sf-gn{fill:#eef0f3;background:#eef0f3}
.sf-map .nbmap a:hover .o{filter:brightness(.93)}
.sf-name{font-size:18px;letter-spacing:-.015em;margin-top:6px}
.sf-911{background:linear-gradient(160deg,#fdecec,#fff 60%);border-color:#f5d0d0}
.sf-911 .kick{color:var(--bad)}
.sf-big{font-size:46px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--bad);margin-top:6px}
@media (max-width:900px){
  .sf-trends{grid-template-columns:1fr}
}
@media (max-width:640px){
  .sf-tw .tbl{min-width:0;font-size:13.5px}
  .sf-tw .yr{display:none}
  .sf-map .nbl:not(.me){font-size:10px}
  .sf-big{font-size:40px}
      }

.sf-pt-sub{font-size:13.5px;color:var(--muted);margin:4px 0 14px}
.sf-pt-bars{display:grid;gap:6px}
.sf-pt-row{display:grid;grid-template-columns:40px 1fr 48px;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.sf-pt-row i{display:block;height:14px;border-radius:4px;background:var(--accent);opacity:.35;min-width:2px}
.sf-pt-row i.v{background:#e0763a}
.sf-pt-row em{font-style:normal;font-size:12px;color:var(--faint)}
.sf-pt-row.now i{opacity:1}
.sf-pt-row.now span, .sf-pt-row.now b{font-weight:700;color:var(--ink)}
.sf-pt-row b{text-align:right;font-weight:600}
.sf-pt-cap{font-size:12.5px;color:var(--muted);margin:6px 0 16px}
.tbl tr.sf-ref td{color:var(--muted);font-style:italic;border-top:1px solid var(--line)}

/* ===== merged-page additions ===== */
/* the "≈" on a badge when the likely range crosses a letter */
.sfm-ap{font-weight:700;color:var(--ink-2);margin-right:4px}
.sfm-method{margin:14px 0 0;font-size:14px}
.gx .gb-note{margin-top:12px}
/* small line charts in the live look: the town in the accent color, comparisons gray, U.S. dashed */
.sfm-chart svg{display:block;width:100%;height:auto;overflow:visible}
.sfm-grid{stroke:var(--hair);stroke-width:1}
.sfm-ax{font:12px var(--sans);fill:var(--faint)}
.sfm-ln{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.sfm-ln.me{stroke:var(--accent)} .sfm-ln.st{stroke:var(--faint)} .sfm-ln.us{stroke:var(--faint);stroke-dasharray:4 4}
.sfm-pt circle{stroke:var(--bg);stroke-width:2}
.sfm-pt.me circle{fill:var(--accent)} .sfm-pt.st circle{fill:var(--faint)} .sfm-pt.us circle{fill:var(--bg);stroke:var(--faint)}
.sfm-pt circle.hit{fill:transparent;stroke:none}
.sfm-dl{font:600 12px var(--sans);fill:var(--muted)} .sfm-dl.me{fill:var(--accent-ink)}
.legend i.sfm-k{width:14px;height:3px;border-radius:2px;vertical-align:middle;background:var(--faint)}
.legend i.sfm-k.me{background:var(--accent)} .legend i.sfm-k.us{background:repeating-linear-gradient(90deg,var(--faint) 0 4px,transparent 4px 7px)}
/* grade badges in tables sit on the text's center line */
.hz-tw .tbl td, .sf-tw .tbl td{vertical-align:middle}
.hz-tw .tbl .badge.xs{vertical-align:middle}
.chip .badge.xs{vertical-align:middle}
/* On the roads (described, not graded) */
.sfm-road p{margin:0 0 12px;font-size:15px;line-height:1.6;color:var(--ink-2);max-width:62ch}
