/* childcare-report.css — child care site-selection report (childcare-report.html, js/childcare-report.js).
   Colors come from the tokens in pages.css, so dark mode follows automatically. Prefix: cr-. */
.cr-page main { padding-top: 18px; padding-bottom: 40px; }
.cr-page .card { margin: 14px 0; min-width: 0; }
.cr-page h1 { margin: 4px 0 6px; font-size: 1.7rem; overflow-wrap: anywhere; }
.cr-page h2 { font-size: 1.12rem; margin: 0 0 8px; }
.cr-page h3 { font-size: .98rem; margin: 14px 0 6px; color: var(--ink); }
.cr-stamp { display: inline-block; margin: 6px 0; padding: 6px 10px; border-radius: 8px; background: var(--warn-bg); border: 1px solid var(--warn-border);
  color: var(--warn-text); font-weight: 700; font-size: .86rem; max-width: 100%; box-sizing: border-box; }

.cr-pick { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.cr-pick label.field { flex: 1 1 180px; min-width: 0; }
.cr-pick label.cr-addr { flex: 2 1 280px; }
.cr-pick input, .cr-pick select { min-width: 0; width: 100%; box-sizing: border-box; }
.cr-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.cr-page .btn-sm { padding: 7px 12px; font-size: .84rem; }
#cr-status { margin: 8px 0; }
#cr-status:empty { display: none; }

.cr-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.cr-head h2 { margin: 0; }
.cr-free { display: inline-block; font-size: .74rem; font-weight: 700; color: var(--good); background: var(--good-bg); border-radius: 999px; padding: 2px 9px; }
.cr-place { margin: 8px 0 10px; overflow-wrap: anywhere; }
.cr-gap-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 14px; align-items: stretch; }
.cr-map { height: 340px; min-width: 0; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); z-index: 0; }
.cr-indicator { min-width: 0; padding: 16px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2);
  display: flex; flex-direction: column; justify-content: center; }
.cr-indicator p { margin: 4px 0; overflow-wrap: anywhere; }
.cr-ratio { font-size: 1.55rem; font-weight: 800; color: var(--ink); line-height: 1.15; }
.cr-ratio:empty, .cr-ratio-sub:empty { display: none; }
.cr-ratio-sub { font-size: .84rem; color: var(--muted); }
.cr-verdict { font-size: 1.05rem; font-weight: 800; }
.cr-vnote { font-size: .84rem; color: var(--muted); }
.cr-v-desert { border-left: 6px solid var(--bad); }
.cr-v-desert .cr-verdict { color: var(--bad); }
.cr-v-maybe { border-left: 6px solid var(--gold); }
.cr-v-maybe .cr-verdict { color: var(--warn-text); }
.cr-v-ok { border-left: 6px solid var(--good); }
.cr-v-ok .cr-verdict { color: var(--good); }
.cr-v-na { border-left: 6px solid var(--border); }

.cr-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 12px 0 6px; }
.cr-tile { padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); min-width: 0; }
.cr-tile b { display: block; font-size: 1.25rem; color: var(--ink); font-variant-numeric: tabular-nums; }
.cr-tile span { display: block; font-size: .8rem; font-weight: 600; color: var(--text); }
.cr-tile small { display: block; font-size: .72rem; color: var(--muted); margin-top: 2px; overflow-wrap: anywhere; }
.cr-compare { font-weight: 600; margin: 8px 0 4px; }
.cr-def { font-size: .8rem; }
.cr-def a, .cr-src a { overflow-wrap: anywhere; }

.cr-locked { padding: 14px; border: 1px dashed var(--border); border-radius: 12px; background: var(--surface-2); }
.cr-locked p { margin: 6px 0; }
.cr-price { font-size: 1.05rem; font-weight: 800; color: var(--ink); }
.cr-keyform { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.cr-keyform input { flex: 1 1 220px; min-width: 0; }
.cr-unlocked { color: var(--good); font-weight: 700; margin: 0; }

.cr-page ul.cr-list, .cr-page ol.cr-list { padding-left: 1.3em; margin: 6px 0; }
.cr-page .cr-list li { margin: 4px 0; overflow-wrap: anywhere; }
.cr-scroll { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
.cr-table { width: 100%; border-collapse: collapse; font-size: .84rem; font-variant-numeric: tabular-nums; }
.cr-table.cr-narrow { width: auto; min-width: 260px; }
.cr-table th, .cr-table td { padding: 6px 8px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; vertical-align: top; }
.cr-table th:first-child, .cr-table td:first-child { text-align: left; white-space: normal; min-width: 150px; }
.cr-table thead th { color: var(--muted); font-size: .74rem; font-weight: 700; white-space: normal; }
.cr-table tbody th { font-weight: 600; }
.cr-table .muted { font-weight: 400; font-size: .76rem; }
.cr-table tr.cr-total th, .cr-table tr.cr-total td { font-weight: 800; border-top: 2px solid var(--border); }
.cr-trend { font-size: .76rem; color: var(--muted); }
.cr-fh { margin-top: 10px; padding: 8px 10px; border-radius: 8px; background: var(--info-bg); border: 1px solid var(--info-border); color: var(--info-text); }
.cr-prepared { margin-top: 10px; font-size: .78rem; }
.cr-disclaimer p { margin: 6px 0; }

[data-theme="dark"] .cr-map .leaflet-control-attribution { background: rgba(18,31,45,.8); color: var(--muted); }
[data-theme="dark"] .cr-map .leaflet-control-attribution a { color: var(--accent); }
[data-theme="dark"] .cr-map .leaflet-bar a { background: var(--surface); color: var(--text); border-color: var(--border); }
[data-theme="dark"] .cr-map .leaflet-tooltip { background: var(--surface); color: var(--text); border-color: var(--border); }

@media (max-width: 760px) {
  .cr-gap-grid { grid-template-columns: minmax(0, 1fr); }
  .cr-map { height: 280px; }
}
@media (max-width: 520px) {
  .cr-page .wrap { padding: 0 12px; }
  .cr-page .card { padding: 14px; }
  .cr-page h1 { font-size: 1.35rem; }
  .cr-ratio { font-size: 1.3rem; }
  .cr-table { font-size: .78rem; }
  .cr-table th, .cr-table td { padding: 5px 5px; }
  .cr-table th:first-child, .cr-table td:first-child { min-width: 120px; }
  .cr-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media print {
  @page { margin: 0.55in; }
  .cr-page main { padding: 0; }
  .cr-page .card { margin: 0 0 8pt; padding: 8pt 10pt; border-radius: 6pt; break-inside: auto; }
  .cr-page h1 { font-size: 16pt; }
  .cr-page h2 { font-size: 12pt; break-after: avoid; }
  .cr-page h3 { font-size: 10pt; break-after: avoid; }
  .cr-pick, .cr-keyform, .cr-actions, .cr-cta { display: none !important; }
  .cr-gap { break-inside: avoid; }
  .cr-map { height: 3.2in; }
  .cr-map .leaflet-control-zoom { display: none; }
  .cr-paid-sec, .cr-method { break-before: page; }
  .cr-src, .cr-disclaimer { break-inside: avoid; }
  .cr-table { font-size: 7.5pt; }
  .cr-table th, .cr-table td { padding: 2pt 3pt; white-space: normal; }
  .cr-table th:first-child, .cr-table td:first-child { min-width: 0; }
  .cr-table tr { break-inside: avoid; }
  .cr-tiles { grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 5pt; }
  .cr-tile { padding: 5pt; }
  .cr-tile b { font-size: 11pt; }
  .cr-stamp { border-width: 1pt; }
  .cr-page .cr-src a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 7pt; color: #4A5868; overflow-wrap: anywhere; }
}
@media print and (min-width: 600px) {
  .cr-scroll { overflow: visible; }
  .cr-gap-grid { grid-template-columns: 3fr 2fr; }
}
